[Reproducible-builds] Reproducible patches for libisoburn and libisofs

Thomas Schmitt scdbackup at gmx.net
Sat Aug 20 11:11:19 UTC 2016


Hi,

uploaded is

  http://www.gnu.org/software/xorriso/xorriso-1.4.5.tar.gz
  MD5 245708a0530741dcb2cc30ee4fadaa29
  Version timestamp :  2016.08.20.102601

Its -as mkisofs option --set_all_file_dates understands pseudo-timestamp
"set_to_mtime", which changes atime and ctime immediately before writing
begins.

It is implemented as -find action "set_to_mtime". Users who want to apply
it in finely controlled manner do outside mkisofs emulation:

  -find ...start_path... ...tests... -exec set_to_mtime --

I tested with debian-8.4.0-amd64-netinst.iso which has quite mixed
timestamps:

  $ for i in " " c u ; do ls -ld$i /mnt/iso/README.mirrors.html ; done
  -r--r--r-- 1 root root 181263 Mar 21 22:25 /mnt/iso/README.mirrors.html
  -r--r--r-- 1 root root 181263 Apr  2 16:43 /mnt/iso/README.mirrors.html
  -r--r--r-- 1 root root 181263 Mar 23 02:17 /mnt/iso/README.mirrors.html

After using it as input for

  xorriso -as mkisofs -o test.iso -R -J \
                      --set_all_file_dates set_to_mtime \
                      /mnt/iso

and mounting the resulting test.iso, i get:

  -r--r--r-- 1 root root 181263 Mar 21 22:25 /mnt/iso/README.mirrors.html
  -r--r--r-- 1 root root 181263 Mar 21 22:25 /mnt/iso/README.mirrors.html
  -r--r--r-- 1 root root 181263 Mar 21 22:25 /mnt/iso/README.mirrors.html

-------------------------------------------------------------------------

I did not change the interpretation of SOURCE_DATE_EPOCH yet.

If you decide for the newer proposal, then apply this change:

--- xorriso/parse_exec.c.orig        2016-08-16 15:15:26.786135631 +0200
+++ xorriso/parse_exec.c             2016-08-20 12:36:31.920225537 +0200
@@ -2584,7 +2584,7 @@ malformed:;
          1900 + gmt->tm_year, gmt->tm_mon + 1, gmt->tm_mday,
          gmt->tm_hour, gmt->tm_min, gmt->tm_sec);
  xorriso->gpt_guid_mode= 2; /* Disk GUID from vol_uuid */
- strcpy(xorriso->all_file_dates, xorriso->vol_uuid);
+ strcpy(xorriso->all_file_dates, "set_to_mtime");
  sprintf(xorriso->info_text,
          "Environment variable SOURCE_DATE_EPOCH encountered with value %s",
          sec_text);

and tell me to do the same.

(I still think that "Specification" in
   https://reproducible-builds.org/specs/source-date-epoch/
 would justify
   strcpy(xorriso->all_file_dates, xorriso->vol_uuid);
 but would need some addition before it justifies
   strcpy(xorriso->all_file_dates, "set_to_mtime");
)


Have a nice day :)

Thomas




More information about the Reproducible-builds mailing list