Hello community, here is the log from the commit of package fossil for openSUSE:Factory checked in at 2020-06-15 20:33:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/fossil (Old) and /work/SRC/openSUSE:Factory/.fossil.new.3606 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fossil" Mon Jun 15 20:33:31 2020 rev:25 rq:814710 version:2.11 Changes: -------- --- /work/SRC/openSUSE:Factory/fossil/fossil.changes 2020-05-28 09:16:15.644813857 +0200 +++ /work/SRC/openSUSE:Factory/.fossil.new.3606/fossil.changes 2020-06-15 20:33:49.483080814 +0200 @@ -1,0 +2,5 @@ +Thu Jun 11 19:27:25 UTC 2020 - Bernhard Wiedemann <bwiedem...@suse.com> + +- Add fossil-2.11-reproducible.patch to override build date (boo#1047218) + +------------------------------------------------------------------- New: ---- fossil-2.11-reproducible.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ fossil.spec ++++++ --- /var/tmp/diff_new_pack.tQOEqN/_old 2020-06-15 20:33:52.359091137 +0200 +++ /var/tmp/diff_new_pack.tQOEqN/_new 2020-06-15 20:33:52.359091137 +0200 @@ -30,6 +30,8 @@ URL: https://www.fossil-scm.org/ Source: https://www.fossil-scm.org/index.html/uv/%{name}-src-%{version}.tar.gz Patch1: fossil-2.7-remove_date_time.patch +# PATCH-FIX-UPSTREAM https://fossil-scm.org/fossil/info/1a894c08206f4c71bcc3 +Patch2: fossil-2.11-reproducible.patch BuildRequires: fuse-devel BuildRequires: gcc BuildRequires: openssl-devel @@ -53,9 +55,10 @@ # test package version and source version match grep -qFx %{version} VERSION %patch1 -p1 +%patch2 -p1 %build -export CFLAGS="%{optflags}" +export CFLAGS="%{optflags} -DFOSSIL_BUILD_EPOCH=${SOURCE_DATE_EPOCH:-42}" # FIXME: you should use the %%configure macro ./configure \ --prefix=%{_prefix} \ ++++++ fossil-2.11-reproducible.patch ++++++ Date: 2020-06-11 https://fossil-scm.org/fossil/info/99038b83b489dddb Index: src/mkversion.c ================================================================== --- a/src/mkversion.c +++ b/src/mkversion.c @@ -4,10 +4,38 @@ ** Call this program with three arguments: ** ** ./a.out manifest.uuid manifest VERSION ** ** Note that the manifest.uuid and manifest files are generated by Fossil. +** +** The output becomes the "VERSION.h" file. The output is a C-language +** header that contains #defines for various properties of the build: +** +** MANIFEST_UUID These values are text strings that +** MANIFEST_VERSION identify the Fossil check-in to which +** the source tree belongs. They do not +** take into account any uncommitted edits. +** +** FOSSIL_BUILD_HASH A hexadecimal string that is a strong hash +** of the MANIFEST_UUID together with the +** current time of the build. We normally want +** this to be different on each build, as the +** value is used to expire ETag: fields in +** HTTP requests. But if you need to do +** repeatable byte-for-byte identical builds, +** add the -DFOSSIL_BUILD_EPOCH=n option. +** +** MANIFEST_DATE The date/time of the source-code check-in +** MANIFEST_YEAR in various formats. +** MANIFEST_NUMERIC_DATE +** MANIFEST_NUMERIC_TIME +** +** RELEASE_VERSION The version number (from the VERSION source +** RELEASE_VERSION_NUMBER file) in various format. +** RELEASE_RESOURCE_VERSION +** +** New #defines may be added in the future. */ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <ctype.h> @@ -79,11 +107,16 @@ *z = 0; printf("#define MANIFEST_UUID \"%s\"\n",b); printf("#define MANIFEST_VERSION \"[%10.10s]\"\n",b); n = strlen(b); if( n + 50 < sizeof(b) ){ +#ifdef FOSSIL_BUILD_EPOCH +#define str(s) #s + sprintf(b+n, "%d", (int)strtoll(str(FOSSIL_BUILD_EPOCH), 0, 10)); +#else sprintf(b+n, "%d", (int)time(0)); +#endif hash(b,33,vx); printf("#define FOSSIL_BUILD_HASH \"%s\"\n", vx); } m = open_for_reading(argv[2]); while(b == fgets(b, sizeof(b)-1,m)){