[tahoe-lafs-trac-stream] [Tahoe-LAFS] #630: automated tests of debian compatibility: run-from-source and run-from-.deb-package
Tahoe-LAFS
trac at tahoe-lafs.org
Tue Jul 8 16:43:06 UTC 2014
#630: automated tests of debian compatibility: run-from-source and run-from-.deb-
package
-----------------------------------------+------------------------------
Reporter: warner | Owner: somebody
Type: task | Status: closed
Priority: major | Milestone: undecided
Component: packaging | Version: 1.3.0
Resolution: somebody else's problem | Keywords: debian,packaging
Launchpad Bug: |
-----------------------------------------+------------------------------
Changes (by zooko):
* status: new => closed
* resolution: => somebody else's problem
Old 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:
>
> 1. generate a Tahoe .deb package
> 2. 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)
> 3. 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'
> 4. run 'tahoe --version' inside the chroot and make sure it succeeds
> 5. upload the .deb to the allmydata.org APT repository
New 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:
1. generate a Tahoe .deb package
2. 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)
3. 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'
4. run 'tahoe --version' inside the chroot and make sure it succeeds
5. upload the .deb to the allmydata.org APT repository
--
Comment:
We no longer maintain the debian packages -- that's performed by Debian
itself.
--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/630#comment:14>
Tahoe-LAFS <https://Tahoe-LAFS.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list