Opened at 2009-02-18T02:11:28Z
Last modified at 2014-07-08T16:43:06Z
#630 closed task
explain debian compatibility: run-from-source vs run-from-.deb-package — at Initial Version
Reported by: | warner | Owned by: | somebody |
---|---|---|---|
Priority: | major | Milestone: | undecided |
Component: | packaging | Version: | 1.3.0 |
Keywords: | debian, packaging | Cc: | tahoe-dev@… |
Launchpad Bug: |
Description
We should have a wiki page (perhaps InstallDetails) with a table. One one axis we'll have a list of debian/ubuntu releases: gutsy, intrepid, etch, sid. The other axis will have two values: "run-from-source" and "run-from-.deb". In each cell we'll either say "not compatible" (maybe with some hints for someone who wants to do the work to fix that), or "yes compatible" and a link to the buildbot that proves it.
The "run-from-source" form of compatibility means that you can download a tahoe tarball (or grab a darcs checkout) and run "python setup.py build" and then run "./bin/tahoe --version" successfully. This kind of build is allowed to download a variety of dependent libraries (or use ones from the tahoe-deps tarball). It has some minimal set of dependencies that cannot be installed via easy_install, like python itself, and either some glue libraries (python-openssl) or the binary and header packages for the C libraries that they link against (like openssl-dev).
The "run-from-package" form of compatibility means that you can download a .deb package from the APT repository on allmydata.org and then run "/usr/bin/tahoe --version" successfully. It also means that you can create .deb packages from a source tree with the "make deb-$ARCH-head" target (perhaps after installing a few extra packages, like build-essential and debhelper). This form is more strict, because it requires that tahoe work with the library versions that are present in the host environment, rather than replacing them with newer versions via easy_install. For example, Ubuntu "gutsy" includes simplejson-1.7.1, but the current version is 2.0.8 . If Tahoe required 2.0.x, then it would work in the "run-from-source" mode on gutsy, but not in the "run-from-package" mode.
To confirm run-from-package compatibility, we'd like to have a buildslave which tests installation and execution of a tahoe debian package, like so:
- generate a Tahoe .deb package
- use 'debootstrap' or 'dchroot' or 'schroot' to create a new chroot jail with a basic debian system installed. (this should probably cache the necessary packages, to run faster and reduce network traffic, since it will need the entire basic system on each build)
- modify the chroot environment to point /etc/apt/sources.list at a local web server, put the .deb in there, tell the chroot to 'apt-get install allmydata-tahoe'
- run 'tahoe --version' inside the chroot and make sure it succeeds
- upload the .deb to the allmydata.org APT repository