On Thu, 14 May 2015 15:45:01 +0200 Vincent Bernat <ber...@debian.org> wrote:
> ❦ 14 mai 2015 14:02 +0100, Neil Williams <codeh...@debian.org> : > > >> 1. Gitlab; > >> 2. Isolated build environment inside Docker containers (where we > >> usually do `git clone && mk-build-deps && debuild`); > >> 3. Aptly; > >> 4. Self-written Python scripts linking all these components; > > > > What is the reason for docker vs chroot, LVM snapshot or VM? > > It's hype! ;-) So can be ignored. Good. The remaining options are LVM snapshot, disposable chroot or a disposable VM. Those can be implemented in any number of ways but it needs to be a fresh, clean, predictable start to each build. > More seriously, but this needs some additional work, it should be > easier to manage persistent build dependencies. The first time you > build a package, it retrieves and install all deps. The second time, > the build environment is already here. That's a (serious) bug, not a feature. Either you want clean build environments or you are prepared to build in dirty ones, in which case there's little point using a container at all. A package cache is different, that's what pbuilder uses - that avoids the risk of stale packages being installed, not being updated and breaking the build. Either do it by uninstalling at the end of the build or by using a disposable container (LVM snapshot or pbuilder chroot). At all costs, avoid the false appeal of a dirty container which gets you none of the advantages and all of the problems of building on a developer box with no container at all. Were you thinking of a package cache or a dirty container? Any build system which allows for dependencies of a previous build to exist at the start of the next build is irretrievably broken and unfit for purpose. All you can allow to exist at the start of the build is build-essential. -- Neil Williams ============= http://www.linux.codehelp.co.uk/
pgpWx3GrNTS9p.pgp
Description: OpenPGP digital signature