[rb-general] [FOSDEM16] Reproducible FreeBSD and variants

Holger Levsen holger at layer-acht.org
Fri Feb 12 15:04:40 CET 2016


Hi Steven,

(I believe) somehow your mail did not make it to the rb-general list, are you 
subscribed? (leaving full quoted context for that reason…)

On Donnerstag, 11. Februar 2016, Steven Chamberlain wrote:
> Holger Levsen wrote:
> > > I've been trying to get started testing Debian GNU/kFreeBSD package
> > > reproducibility (and I'd like it being mass-rebuilt anyway to find
> > > FTBFS or other bugs sooner).  Just a few weeks ago I got Jenkins
> > > working on kfreebsd (after porting some dependency) so it can run as a
> > > master or slave.
> > 
> > cool. what are the specs, roughly?
> 
> Currently this is a Core i7-980X, 24 GiB RAM, 2x 1.4TB disks.

nice

> It is a server I rent out for business uses, but outside office hours
> it was quite idle so I schedule jobs to run overnight and on weekends:
> some rebootstrap jobs, and rebuilding debian-installer per Git commit.
> I'd like to add reproducible jobs once I figure out how they work.

I'm not sure I'll be comfortable building "anything+everything" on this box 
then. ("rented for business uses")

The jenkins set up is not designed with security in mind, in the sense that I 
don't trust the box on *anything*, it's ok to produce QA results, but… I'm not 
comfortable giving it access to trusted machines. (even in jails, etc & YMMV, 
obviously…)

> I've decided to open up the Jenkins web interace now (except HTTP POST
> because I really don't trust its security!)
> http://jenkins.kfreebsd.eu/jenkins/

nice!

> I've put Jenkins master in its own separate chroot jail.  The jobs run
> one at a time, in another separate sid chroot jail.  Jails prevent
> access to files or devices of the host, and I can firewall their network
> access if I want to.
> 
> > I dont see us moving to DSA
> > maintained host. patches for that (="less sudo usage…") welcome ;)
> 
> This is a major concern for me at the moment, as I allow Jenkins to do
> many things on the host (outside of any jail) via sudo to set up the sid
> chroot.  I'm experimenting with better ways to do this.

well, things should probably work nicely in a jail where jenkins thinks it can 
do what it wants :-)

> I'd started out with sbuild, but it is incompatible with jails.  It was
> also really slow, and that's a major concern for me with the limited
> resources I have.  Optimizing is fun also.

I dont think I want to build reproducible Debian packages on one arch in a 
different way than on the others. So pbuilder for now (until we maybe switch 
to sbuild with the patch for reproducible rebuilds once we're rebuilding 
against sid…)

> With ZFS I can set sync=disabled on a whole chroot which is similar to
> using Linux 'eatmydata', and makes APT/dpkg stages run really fast.
> 
> I'm also trying ccache, and preserving the cache directory between job
> runs.  Hasn't helped much though.
> 
> What might be nice is if the host's sshd could set up so that, upon
> login as user 'jenkins', it would give a root shell in a freshly-created
> jail.  ZFS snapshots and clones could make that really fast.  In that
> kind of setup, Jenkins need not run on build machines (saving hundreds
> of MiB RAM).
> 
> Mostly I'd like to reduce the setup/teardown time so that a small
> package like 'hello' takes only the smallest amount of time to build.
> I think this is where most time would be wasted given how many small
> packages there are in the archive.

I don't think that time is *that* relevant as long as you use tmpfs (or 
something similar) and have enough RAM. maybe then it even becomes irrelevant 
:)

Also we have packages in the archive which build twice in <60s (on our amd64 
"hw"), while the average time is 8min. 

So currently we're building 60*24/8*32=5760 packages a day (/8 because average 
build time is 8min and *32 because we have 32 amd64 builders).

If you bring down the setup time to 0s you would "only" build 6560 packages a 
day (60*24/7*32), or 13.8% faster.

I suspect the numbers will look similar for armhf, but I'll leave that as an 
excercize for the reader :)


cheers,
	Holger
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 828 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.reproducible-builds.org/pipermail/rb-general/attachments/20160212/61a06ad4/attachment.sig>


More information about the rb-general mailing list