Opened at 2009-07-21T03:44:53Z
Last modified at 2011-08-26T22:22:07Z
#769 closed defect
debian 'sid' package fails to run: pycryptopp-0.5.15 not available in debian form — at Version 3
Reported by: | warner | Owned by: | zooko |
---|---|---|---|
Priority: | critical | Milestone: | eventually |
Component: | packaging | Version: | 1.4.1 |
Keywords: | debian ubuntu foolscap zfec pycryptopp pyutil argparse zbase32 install | Cc: | blackdew@…, bdew, exarkun |
Launchpad Bug: |
Description (last modified by warner)
I just tried to run tahoe --version from a .deb I built from trunk (on my sid system), and it fails with the following error:
pkg_resources.VersionConflict: (pycryptopp 0.5.2-1 (/usr/lib/python2.5/site-packages), Requirement.parse('pycryptopp>=0.5.15'))
I've updated the debian/control files to make this requirement visible to the debian package manager (i.e. it should not let me install this tahoe), but apart from that, we need updated pycryptopp debs before we can release 1.5.0 . We need them for all of the same platforms for which we provide Tahoe debs: etch/edgy/feisty/gutsy/hardy/hardy-amd64 .
I think we're ok with zfec and foolscap packages.
Change History (3)
comment:1 Changed at 2009-07-21T13:26:36Z by zooko
comment:2 Changed at 2009-07-21T13:40:02Z by arthur
here is a copy of the debian files generated for i386 :
Content : pycryptopp_0.5.15-1.diff.gz pycryptopp_0.5.15-1.dsc pycryptopp_0.5.15-1_i386.build pycryptopp_0.5.15-1_i386.changes pycryptopp_0.5.15-1.tar.gz pycryptopp_0.5.15_i386.build pycryptopp_0.5.15.orig.tar.gz pycryptopp_0.5.15.tar.gz pycryptopp-0.5.15.tar.gz python-pycryptopp_0.5.15-1_i386.deb python-pycryptopp-dbg_0.5.15-1_i386.deb
comment:3 Changed at 2009-07-21T14:42:04Z by warner
- Description modified (diff)
I updated the tahoe debian/control rules to declare a dependency upon pycryptopp-0.5.15: the tahoe .debs now correctly refuse to install.
Zooko: I set up a bunch of "flappserver upload-file" services for uploading tahoe .debs to the repository on hanford (which gets mirrored to allmydata.org). Let's do the same for the pycryptopp debs.
In buildslave@hanford, do this one or more times:
flappserver add ~/.flappserver -C DIST/main/binary-i386 upload-file ~/tahoe-debs/dists/DIST/main/binary-i386
(setting DIST appropriately for each time)
Each time you run that, it will emit a furl. Copy this to the buildslave, stored in something like ~/main-deb.furl . Then add an upload step to the buildmaster config, which runs:
flappclient --furlfile ~/main-deb.furl upload-file ../pycryptopp*.deb
You should also copy the "tahoe-update-apt.furl" and have a step to update the APT index by running
flappclient --furlfile ~/tahoe-update-apt.furl run-command
(take a look at any of the tahoe deb builders for an example)
I don't know how you ought manage the variety of platforms, though. We build and host tahoe debs for etch/edgy/feisty/gutsy/hardy/hardy-amd64, so it'd be nice to provide pycryptopp debs for all of those. The tahoe .deb process only actually has rules for etch, lenny, and sid: basically we use the etch rules for the py2.4 platforms (etch and edgy), sid for sid, and lenny for everything else. But we run those rules on actual edgy/feisty/etc systems so they declare the right dependencies (in general you can't install a newer deb on an older system, because it will declare a dependency upon newer versions of libc, etc).
You'd need to find some similar mapping for pycryptopp, and create debs for all the same platforms we do for Tahoe. It sounds like you're only currently creating debs for one of those platforms (sid), and that .deb probably won't install on any of the earlier ones.
Whenever a new patch is committed to the pycryptopp repository, the buildbot builds new .deb packages for a couple of platforms -- Debian-unstable-i386 and Ubuntu-Jaunty-amd64:
http://allmydata.org/buildbot-pycryptopp/builders/BlackDew%20debian-unstable-i386/builds/10/steps/stdeb/logs/stdio
Probably the resulting .deb would work for you. How shall we arrange for it to be installed into an apt repository where your apt-get will find it?