[Reproducible-builds] Reproducible patches for libisoburn and libisofs

Thomas Schmitt scdbackup at gmx.net
Tue Aug 16 14:29:09 UTC 2016


Hi,

uploaded is

  http://www.gnu.org/software/xorriso/xorriso-1.4.5.tar.gz
  MD5 2e64a46b50c5192a0797e63dd3182b6a
  Version timestamp :  2016.08.16.131907

which obeys SOURCE_DATE_EPOCH by stating in its man pages

  ENVIRONMENT
    ...
    SOURCE_DATE_EPOCH  belongs to the specs of reproducible-builds.org.  It
    is supposed to be either undefined or to contain a decimal number which
    tells the seconds since january 1st 1970. If it contains a number, then
    it is used as time value to set the  default  of  --modification-date=,
    --gpt_disk_guid,  and  --set_all_file_dates.  Startup files and program
    options can override the effect of SOURCE_DATE_EPOCH.

Changeset:
  http://libburnia-project.org/changeset/5747


If you start xorriso in an environment with SOURCE_DATE_EPOCH it will react
as follows.

Issue a NOTE message about acceptable values and DEBUG messages about
the consequences:

  $ export SOURCE_DATE_EPOCH=1471290111
  $ xorriso -report_about all -as mkisofs ...
  ...
  xorriso : NOTE : Environment variable SOURCE_DATE_EPOCH encountered with value 1471290111
  xorriso : DEBUG : SOURCE_DATE_EPOCH : -volume_date uuid 2016081519415100
  xorriso : DEBUG : SOURCE_DATE_EPOCH : -volume_date all_file_dates 2016081519415100
  xorriso : DEBUG : SOURCE_DATE_EPOCH : -boot_image any volume_date_uuid
  ...

The DEBUG messages will not be visible by default.

Issue a SORRY message (mild error severity) on unacceptable values, go on
with ISO production, and end with non-zero exit value:

  $ export SOURCE_DATE_EPOCH=xyz1471290111
  $ xorriso -as mkisofs ...
  ...
  xorriso : SORRY : Malformed environment variable SOURCE_DATE_EPOCH encountered
  xorriso : HINT : Unset SOURCE_DATE_EPOCH before starting xorriso or see https://reproducible-builds.org/specs/source-date-epoch/
  ...
  $ echo $?
  32

The continued work and the exit value are consequences of default settings
  -abort_on FAILURE
  -return_with SORRY 32
It can be influenced by the user of xorriso in startup files or program
arguments:

  $ xorriso -abort_on sorry -as mkisofs ...
  ...
  xorriso : SORRY : Malformed environment variable SOURCE_DATE_EPOCH encountered
  xorriso : HINT : Unset SOURCE_DATE_EPOCH before starting xorriso or see https://reproducible-builds.org/specs/source-date-epoch/
  xorriso : aborting : -abort_on 'SORRY' encountered 'SORRY'
  $ echo $?
  5


I compared again the MD5s of two rebuild runs of my ISO collection.
All identical. All disk GUIDs the same. (Shudder.)

In another comparison the modification date of SOURCE_DATE_EPOCH was
overridden by program arguments. All identical. At least slight differences
between disk GUIDs. So this mixing is reproducible as expected.


Have a nice day :)

Thomas




More information about the Reproducible-builds mailing list