unable to use pre-installed non-distutils-aware nevow #149
Labels
No Label
0.2.0
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.8.0
0.9.0
1.0.0
1.1.0
1.10.0
1.10.1
1.10.2
1.10a2
1.11.0
1.12.0
1.12.1
1.13.0
1.14.0
1.15.0
1.15.1
1.2.0
1.3.0
1.4.1
1.5.0
1.6.0
1.6.1
1.7.0
1.7.1
1.7β
1.8.0
1.8.1
1.8.2
1.8.3
1.8β
1.9.0
1.9.0-s3branch
1.9.0a1
1.9.0a2
1.9.0b1
1.9.1
1.9.2
1.9.2a1
LeastAuthority.com automation
blocker
cannot reproduce
cloud-branch
code
code-dirnodes
code-encoding
code-frontend
code-frontend-cli
code-frontend-ftp-sftp
code-frontend-magic-folder
code-frontend-web
code-mutable
code-network
code-nodeadmin
code-peerselection
code-storage
contrib
critical
defect
dev-infrastructure
documentation
duplicate
enhancement
fixed
invalid
major
minor
n/a
normal
operational
packaging
somebody else's problem
supercritical
task
trivial
unknown
was already fixed
website
wontfix
worksforme
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Reference: tahoe-lafs/trac-2024-07-25#149
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
I just tried to upgrade the tahoebs1 testnet nodes, and got the following error:
On this system, nevow is installed just fine:
The only problem is that it wasn't installed with an .egg (or an .egg-info).
Most modern debian python packages contain .egg-info files, to let setuptools
know that the package is available, but I think this nevow package is a bit
behind the times.
Is there any way to allow perfectly usable support libraries like this get
used? Note that this checking is being done by the generated setuptools
entry-point script: the bin/allmydata-tahoe that we wrote just tries to
import and run, rather than checking for existence before importing.
merging into #141
This is happening again, in the new 1.3.0 release. Zooko's looked at it briefly, and we believe that the problem is that we inadvertently started using the setuptools-generated entry point script as bin/tahoe, even in the debian package. When we made the changes in #141, we expected to keep using the non-setuptools bin/tahoe that comes in our source package.
The rough problem is that some platforms (Ubuntu/gutsy, in this case) do not include .egg-info files for all the libraries that Tahoe uses. There is code in _auto_deps.py to tolerate this at runtime (i.e. so you can 'import allmydata' without those .egg-info files), but the entry-point script is harder to satisfy.
So the fix will be to stop using the setuptools-generated entry point script in the debian package.
Some platforms have the necessary .egg-info files, so it might work (I believe that debian/sid is one of these).
Also see #630 for details about the kind of what-debian-platforms-are-we-compatible-with tests that we'd like to run automatically, to detect this sort of thing sooner in the future.
For gutsy debian packages, at least, it's sufficient to comment out the Nevow line in the egg-info/requires.txt file. We did that on our 'tahoecs2' gutsy machine and it seems to let the tahoe .deb run normally.
I changed the name of this ticket to emphasize that
.egg-info
files are not setuptools-specific. They are produced by default by distutils in all Python >= 2.5, and are the standard way for Python packages ("distributions") to declare their name and version number in a machine-parseable way. In the past some Linux distributions accidentally omitted the.egg-info
files, but that is becoming more and more rare as everyone got used to Python 2.5 and as the maintainers of Linux distributions eventually realized that these files are not setuptools-specific. It is an unfortunate naming problem that they are named.egg-info
even when the packages were produced by distutils without setuptools and were never packaged as eggs at any point in their entire development and deployment. Oh well. I think I'll open a ticket requesting that distutils automatically generate a symlink from ".pkg-info -> .egg-info" from now on...Anyway, all that is merely an aside that I wish to emphasize in order that it will sink in to everyone who sees this ticket! The real point of this comment is that the underlying source of this problem is that nevow in Gutsy doesn't come with a
.egg-info
file. This problem was fixed starting in Hardy -- nevow there comes with a.egg-info
file -- and presumably will remain fixed for all future versions of Ubuntu. So I'm closing this ticket as "wontfix" -- per discussion on #630 Ubuntu Hardy is the oldest version of Ubuntu on which new releases of Tahoe will have the runs-from-package property.unable to use pre-installed non-setuptools-aware nevowto unable to use pre-installed non-distutils-aware nevow(http://bugs.python.org/issue5480) # ".egg-info" => ".pkg-info"