Opened at 2010-03-09T16:08:32Z
Closed at 2010-05-19T03:23:17Z
#988 closed defect (fixed)
Build fails when byte-compiling is disabled
| Reported by: | nero37 | Owned by: | somebody |
|---|---|---|---|
| Priority: | major | Milestone: | undecided |
| Component: | packaging | Version: | 1.6.0 |
| Keywords: | gentoo install setuptools distutils | Cc: | |
| Launchpad Bug: |
Description
I have written a gentoo ebuild to build and install tahoe on gentoo systems. In the latest version of python used in gentoo byte-compiling .py files to .pyc/.pyo has been disabled by default, as this functionality is automatically provided by the portage package manager itself when a python package is being installed.
Tahoe now fails to build, for example when building tahoe-1.6.1 with the follow;
python -B setup.py build
Not found: tahoe-deps
Not found: ../tahoe-deps
warning: build_py: byte-compiling is disabled, skipping.
warning: install_lib: byte-compiling is disabled, skipping.
Traceback (most recent call last):
File "setup.py", line 384, in <module>
**setup_args
File "/usr/lib64/python2.6/distutils/core.py", line 113, in setup
_setup_distribution = dist = klass(attrs)
File "/usr/lib64/python2.6/site-packages/setuptools/dist.py", line 221, in __init__
self.fetch_build_eggs(attrs.pop('setup_requires'))
File "/usr/lib64/python2.6/site-packages/setuptools/dist.py", line 245, in fetch_build_eggs
parse_requirements(requires), installer=self.fetch_build_egg
File "/usr/lib64/python2.6/site-packages/pkg_resources.py", line 538, in resolve
dist = best[req.key] = env.best_match(req, self, installer)
File "/usr/lib64/python2.6/site-packages/pkg_resources.py", line 780, in best_match
return self.obtain(req, installer) # try and download/install
File "/usr/lib64/python2.6/site-packages/pkg_resources.py", line 792, in obtain
return installer(requirement)
File "/usr/lib64/python2.6/site-packages/setuptools/dist.py", line 293, in fetch_build_egg
return cmd.easy_install(req)
File "/usr/lib64/python2.6/site-packages/setuptools/command/easy_install.py", line 471, in easy_install
return self.install_item(spec, dist.location, tmpdir, deps)
File "/usr/lib64/python2.6/site-packages/setuptools/command/easy_install.py", line 501, in install_item
dists = self.install_eggs(spec, download, tmpdir)
File "/usr/lib64/python2.6/site-packages/setuptools/command/easy_install.py", line 680, in install_eggs
return self.build_and_install(setup_script, setup_base)
File "/usr/lib64/python2.6/site-packages/setuptools/command/easy_install.py", line 962, in build_and_install
eggs.append(self.install_egg(dist.location, setup_base))
File "/usr/lib64/python2.6/site-packages/setuptools/command/easy_install.py", line 718, in install_egg
(os.path.basename(egg_path),os.path.dirname(destination)))
File "/usr/lib64/python2.6/distutils/cmd.py", line 358, in execute
util.execute(func, args, msg, dry_run=self.dry_run)
File "/usr/lib64/python2.6/distutils/util.py", line 399, in execute
apply(func, args)
File "/usr/lib64/python2.6/site-packages/setuptools/command/easy_install.py", line 1024, in unpack_and_compile
self.byte_compile(to_compile)
File "/usr/lib64/python2.6/site-packages/setuptools/command/easy_install.py", line 1036, in byte_compile
byte_compile(to_compile, optimize=0, force=1, dry_run=self.dry_run)
File "/usr/lib64/python2.6/distutils/util.py", line 453, in byte_compile
raise DistutilsByteCompileError('byte-compiling is disabled.')
distutils.errors.DistutilsByteCompileError: byte-compiling is disabled.
Change History (6)
comment:1 Changed at 2010-03-09T16:40:13Z by zooko
comment:2 Changed at 2010-03-09T19:11:09Z by zooko
P.S. I'm excited that you've written an ebuild for Tahoe-LAFS! There are (at least) two more steps to making Tahoe-LAFS be fully supported on Gentoo:
- Set up a buildbot: the How To Contribute A Buildbot page
- Get your ebuild included in the standard http://packages.gentoo.org .
Having a Gentoo buildbot would enable us to know whether changes we make have introduced a regression on Gentoo. If someone contributes a Gentoo buildbot and it proves itself to be a stable build machine then we will promote it to Supported Platform status. Being a Supported Platform means that we know the current version works on that platform, and we try not to break it with new improvements.
comment:3 Changed at 2010-04-04T00:04:14Z by davidsarah
- Component changed from unknown to packaging
- Keywords gentoo install added
- Owner changed from nobody to somebody
comment:4 Changed at 2010-04-04T00:04:55Z by davidsarah
- Keywords setuptools distutils added
comment:5 Changed at 2010-04-12T17:31:54Z by zooko
The next step is for someone to open a ticket against distutils, which is the real culprit here, and link that ticket this Tahoe-LAFS ticket and to the Gentoo ticket. Start here: http://bugs.python.org/ Thanks!
comment:6 Changed at 2010-05-19T03:23:17Z by zooko
- Resolution set to fixed
- Status changed from new to closed
This was http://bugs.python.org/issue7071 , fixed in http://svn.python.org/view?view=rev&revision=77376 . Note also that Gentoo backported the fix: http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-lang/python/ChangeLog?r1=1.441&r2=1.442

Thank you for the bug report. This is technically an issue in distutils, but some project (either the Tahoe-LAFS, distutils, setuptools, or distribute projects) need to figure out a work-around. The next step is to open a ticket against distutils on their tracker: http://bugs.python.org/ Please link to this ticket from that one.