[Reproducible-builds] Remaining reprotest variations

Ceridwen ceridwen.mailing.lists at gmail.com
Thu Jul 28 21:06:52 UTC 2016


> > 1. user_group.  The POSIX standard includes the notion of
> > user/group
> > ids, but the only ways it defines to change the uid/gid of
> > processes
> > are C functions.  Unfortunately, there's also nothing in the POSIX
> > standard for creating users, though at least `chown` is.  At the
> > moment, my plan is to use `useradd`, `groupadd`, `userdel`,
> > `groupdel`, and `su`.  (Using 'sudo' like prebuilder does is more
> > complicated and less likely to be supported everywhere.)  I'm going
> > to
> > set the ids to something like 20000.  This page,
> > http://bhami.com/rosetta.html, indicates that this won't work on
> > FreeBSD or MacOS X, and thatis supported by these pages,
> > http://www.math.utah.edu/~beebe/unix/g/groupadd.html and
> > http://www.math.utah.edu/~beebe/unix/u/useradd.html.
> >     - What works on FreeBSD/MacOS X?
> >     - Are there any other problems I'm likely to encounter using
> > `su`?
> If the code abstract user creation/removal depending on the system of
> the execution environment, we could implement (more) specific
> behaviors
> when required. Maybe that could be an answer: make it so experts in
> other operation system can easily add support?

This is already done: which context managers get executed depends on
whether a variation is implemented, which build it is (first or
second), whether reprotest has root on the given testbed, and what the
testbed's OS is.  I haven't written documentation for it yet, but it's
straightforward-ish to write a new Python context manager for a
specific case.

I'm going to go ahead and implement the time variation and a flag for
the possibly-system-breaking variations.

Ceridwen



More information about the Reproducible-builds mailing list