[Pkg-libburnia-devel] Reproducible patches for libisoburn and libisofs
Chris Lamb
lamby at debian.org
Wed Aug 3 20:36:56 UTC 2016
> Is it really desirable/correct to override the timestamps of files when
> they get put into the ISO image ? I.e. isn't reproducible build supposed to
> be identical only if the input is identical ?
Good question. At least for modification times, I think we *could* go
with asking users to run something like:
$ find sourcedir/ -newermt '$SOURCE_DATE_EPOCH' -print0 |
xargs -0r touch --no-dereference --date='$SOURCE_DATE_EPOCH'
.. prior to building, but AIUI one cannot reliably set atime and
ctime so I ended up just overridding if-and-only-if SOURCE_DATE_EPOCH
is set.
> If desirable: What about other file attributes which might change without
> file content change ?
Such as? :) I didn't think that the ISO format really supported "much". I
mean, I doubt it supports extended attributes or selinux blah..
> Currently it seems to me that xorriso lacks only two features:
[..]
> This does not mean that i would not see the convenience of a single
> option which overrides all variable time stamps.
I would agree, but on the other hand I may be missing some other features
outside of my somewhat narrow usecase.
> With which xorriso commands (or xorriso -as mkisofs options) did you test
> whether the proposed changes suffice for reproducible ISOs ?
Nothing too fancy.
$ xorriso -as mkisofs \
--modification-date XXX \
[boot catalog stuff; am using syslinux] \
-isohybrid-mbr [..] \
-V blah -A blah
> > +time_t Xorriso__current_time()
> > ...
> > + if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0))
> > + || (errno != 0 && epoch == 0))
> > + return now;
>
> Since the application wants a constant time, shouldn't we return some
> constant default value in this case ? (Proposal for a value ? 1970 ?)
To be honest I now feel it should probably exit(EXIT_FAILURE), otherwise
we're just confusing users
> -------------------------------------------------------------------------
> > 0004-normalize-wday-yday.patch
> -------------------------------------------------------------------------
>
> Where did you get negative effects from not setting erg->wday , erg->yday ?
Only in the "Understanding timestring" log messages. (parse_exec.c &
opts_p_z.c). It's otherwise harmless as previously mentioned,
> The Unix time functions are tricky and the purpose of the timestamp might
> be the job of an id string when converted back to some time format.
> So it seems best to keep all significant struct members as they are now.
Ah, I didn't know. Thanks.
> > 0003-isohybrid-mbr.patch
[..]
> This weakens the weak random number even in the case of non-constant time:
Indeed I mentioned this in my notes, going on to say that its a terrible
PRNG in either case so it can hardly matter. ;)
Regards,
--
,''`.
: :' : Chris Lamb
`. `'` lamby at debian.org / chris-lamb.co.uk
`-
More information about the Pkg-libburnia-devel
mailing list