[Reproducible-builds] GSoC 2015 Week 9: Move forward reproducible builds
Hello, This week I have been working on packages which are marked as affected by not_using_dh_builddeb [1]. Patches were submitted for the following packages: - Package: joe https://bugs.debian.org/793696 - Package: ldapvi https://bugs.debian.org/793702 - Package: leave https://bugs.debian.org/793694 - Package: libtnt https://bugs.debian.org/793695 - Package: lpe https://bugs.debian.org/793697 - Package: magicfilter https://bugs.debian.org/793698 - Package: mailfront https://bugs.debian.org/793699 - Package: mailto https://bugs.debian.org/793700 - Package: markdown https://bugs.debian.org/793701 - Package: mimefilter https://bugs.debian.org/793704 - Package: mime-support https://bugs.debian.org/793705 - Package: mpack https://bugs.debian.org/793706 - Package: netmaze https://bugs.debian.org/793731 - Package: netris https://bugs.debian.org/793707 - Package: nitpic https://bugs.debian.org/793708 - Package: pixmap https://bugs.debian.org/793709 - Package: postfix-gld https://bugs.debian.org/793710 - Package: qmail-run https://bugs.debian.org/793711 - Package: ratfor https://bugs.debian.org/793712 - Package: rbootd https://bugs.debian.org/793713 - Package: rockdodger https://bugs.debian.org/793714 - Package: rsbackup https://bugs.debian.org/793716 - Package: rungetty https://bugs.debian.org/793717 - Package: sauce https://bugs.debian.org/793718 - Package: sendfile https://bugs.debian.org/793719 - Package: sgmltools-lite https://bugs.debian.org/793720 - Package: signify https://bugs.debian.org/793721 - Package: slrnface https://bugs.debian.org/793722 - Package: socklog https://bugs.debian.org/793723 - Package: ssmtp https://bugs.debian.org/793724 - Package: supercat https://bugs.debian.org/793725 - Package: taggrepper https://bugs.debian.org/793726 - Package: tetradraw https://bugs.debian.org/793727 - Package: the https://bugs.debian.org/793728 - Package: tinydyndns https://bugs.debian.org/793729 - Package: trscripts https://bugs.debian.org/793730 I modified the description of the not_using_dh_builddeb issue [1] to describe the SOURCE_DATE_EPOCH environment variable [2] I backported a commit from doxygen upstream's git repository into the reproducible builds git and package repository [3]. I also modified the doxygen in the reproducible git repository to produce timezone independent timestamps by using UTC. Kind Regards, akira [1] https://reproducible.debian.net/issues/unstable/not_using_dh_builddeb_issue.html [2] https://wiki.debian.org/ReproducibleBuilds/TimestampsProposal [3] https://wiki.debian.org/ReproducibleBuilds/ExperimentalToolchain#doxygen signature.asc Description: OpenPGP digital signature ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
Re: [Reproducible-builds] [PATCH] Reproducible U-Boot build support, using SOURCE_DATE_EPOCH
Le lundi 20 juillet 2015 à 17:13 +0200, Heiko Schocher a écrit : Hello Paul, Am 20.07.2015 um 15:30 schrieb Paul Kocialkowski: I am just on the jump into my holidays, so I have not yet the time to test it ... I want to try it for all builds with the scripts I posted with my v2 ... but a first fast look into your patch looks nice, if it works, it is ok with me ... I am back aprox. july 5th. Okay, maybe I'll have a go at your scripts then! The idea to coordinate Uh.. I am just a script beginner, they are not perfect ... I got around testing your scripts with the latest version of my patch yesterday. The scripts look good, they get the job done. I tried building on all the supported ARM boards (grep CONFIG_ARM in configs/) and all boards appear to be reproducible. However, it turns out that when build with the -C and O= arguments (to indicate the source directory and to output objects in a separate directory), the binaries differed. However, running the second call of your scripts after moving the directory didn't result in a change. I have yet to figure out exactly what the differences are and what they are caused by. Maybe this can be done/added at travis.org ? See u-boot builds there: https://travis-ci.org/u-boot/u-boot/ with Debian developers would be to use their infrastructure to automatically test as many u-boot targets as possible in an automated and periodical manner (e.g. once a month), so that we can easily spot which target is broken or which commit introduced a regression. This sounds good ... feel free to trigger me, if I can help. bye, Heiko maybe a README entry would be fine ;-) Good point, that makes sense. I'll craft that in v2. I'll just wait for some more feedback before sending a new version. Thanks! It would be nice to have this tested on as many boards as possible to spot other areas that make the binaries not reproducible. However, I doubt this patch will evolve much and other fixes should be sent in subsequent patches. Signed-off-by: Paul Kocialkowski cont...@paulk.fr --- Makefile | 7 --- tools/default_image.c | 21 - 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 37cc4c3..71aeac7 100644 --- a/Makefile +++ b/Makefile @@ -1231,9 +1231,10 @@ define filechk_version.h endef define filechk_timestamp.h -(LC_ALL=C date +'#define U_BOOT_DATE %b %d %C%y'; \ -LC_ALL=C date +'#define U_BOOT_TIME %T'; \ -LC_ALL=C date +'#define U_BOOT_TZ %z') +(SOURCE_DATE=$${SOURCE_DATE_EPOCH:+@$$SOURCE_DATE_EPOCH}; \ +LC_ALL=C date -u -d $${SOURCE_DATE:-now} +'#define U_BOOT_DATE %b %d %C%y'; \ +LC_ALL=C date -u -d $${SOURCE_DATE:-now} +'#define U_BOOT_TIME %T'; \ +LC_ALL=C date -u -d $${SOURCE_DATE:-now} +'#define U_BOOT_TZ %z' ) endef $(version_h): include/config/uboot.release FORCE diff --git a/tools/default_image.c b/tools/default_image.c index cf5c0d4..18940af 100644 --- a/tools/default_image.c +++ b/tools/default_image.c @@ -88,6 +88,9 @@ static void image_set_header(void *ptr, struct stat *sbuf, int ifd, struct image_tool_params *params) { uint32_t checksum; +char *source_date_epoch; +struct tm *time_universal; +time_t time; image_header_t * hdr = (image_header_t *)ptr; @@ -96,9 +99,25 @@ static void image_set_header(void *ptr, struct stat *sbuf, int ifd, sizeof(image_header_t)), sbuf-st_size - sizeof(image_header_t)); +source_date_epoch = getenv(SOURCE_DATE_EPOCH); +if (source_date_epoch != NULL) { +time = (time_t) strtol(source_date_epoch, NULL, 10); + +time_universal = gmtime(time); +if (time_universal == NULL) { +fprintf(stderr, %s: SOURCE_DATE_EPOCH is not valid\n, +__func__); +time = 0; +} else { +time = mktime(time_universal); +} +} else { +time = sbuf-st_mtime; +} + /* Build new header */ image_set_magic(hdr, IH_MAGIC); -image_set_time(hdr, sbuf-st_mtime); +image_set_time(hdr, time); image_set_size(hdr, sbuf-st_size - sizeof(image_header_t)); image_set_load(hdr, params-addr); image_set_ep(hdr, params-ep); signature.asc Description: This is a digitally signed message part ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#793813: medicalterms: /usr/share/hunspell/de_med.dic is not reproducible (collation order based on build environment)
Source: medicalterms Version: 20110608-1 Severity: wishlist User: reproducible-builds@lists.alioth.debian.org Usertags: locale Hi medicalterms maintainers-- Today i noticed that usr/share/hunspell/de_med.dic gets created differently depending on the locale of the build environment: https://reproducible.debian.net/rb-pkg/unstable/amd64/medicalterms.html I suspect that the generation of this package should explicitly set the locale in question, even if LC_ALL is set by the environment. i see that Makefile.am has LANG=de_DE on line 85, but locale(7) suggests that LC_ALL would take precedence over LANG during collation. Regards, --dkg -- System Information: Debian Release: stretch/sid APT prefers testing APT policy: (500, 'testing'), (200, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.0.0-2-amd64 (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds