[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Builds not reproducible on armhf



On Mon, 20 May 2024, Mechtilde Stehmann wrote:

> There are several with FTBR. I found that the day of the *.poms s a date from
> 1970.

I’ve had a look at this. The files have various, *differing*,
timestamps within the month of January 1970, which in itself
is not proper.

It’s not a t64-related JDK bug: I tested…

import java.io.*;

class T1 {
        public static void main(String args[]) throws IOException {
                File sf = new File("T1.java");
                File df = new File("T1.out");
                System.out.println(sf.lastModified());
                InputStream is = new FileInputStream(sf);
                OutputStream os = new FileOutputStream(df);
                byte[] data = new byte[32768];
                int nbytes = is.read(data);
                os.write(data, 0, nbytes);
                os.close();
                is.close();
                df.setLastModified(sf.lastModified());
        }
}

… on armhf with OpenJDK 8, 17 and 21 (11 needs t64-transitioning).

Given the range of January 1970…

$ TZ=UTC date -d '1970-01-31T23:59:59Z' +%s
2678399
$ TZ=UTC date -d @2678399000
Sun Nov 15 23:43:20 UTC 2054

… it is entirely possible that someone confused time_t and
Java millis, so the timestamps are off by a factor of 1000.

-rw-r--r--···0·root·········(0)·root·········(0)·····1415·1970-01-06·08:03:05.000000·./usr/share/maven-repo/com/github/mangstadt/vinnie/2.0.2/vinnie-2.0.2.pom
-rw-r--r--···0·root·········(0)·root·········(0)·····1415·1970-01-03·13:27:14.000000·./usr/share/maven-repo/com/github/mangstadt/vinnie/2.0.2/vinnie-2.0.2.pom

-rw-r--r--···0·root·········(0)·root·········(0)·····1416·1970-01-09·01:36:03.000000·./usr/share/maven-repo/com/github/mangstadt/vinnie/debian/vinnie-debian.pom
-rw-r--r--···0·root·········(0)·root·········(0)·····1416·1970-01-04·21:40:23.000000·./usr/share/maven-repo/com/github/mangstadt/vinnie/debian/vinnie-debian.pom

$ for t in 1970-01-06T08:03:05 1970-01-03T13:27:14 \
    1970-01-09T01:36:03 1970-01-04T21:40:23; do \
	TZ=UTC date -d @$(TZ=UTC date -d "${t}Z" +%s)000; \
  done

Fri Aug 10 11:23:20 UTC 1984
Tue Jan  4 13:53:20 UTC 1977
Sat Feb  1 16:50:00 UTC 1992
Mon Sep  8 01:03:20 UTC 1980

Okaaay… So, maybe not so much. I *was* guessing something with
DEB_SOURCE_EPOCH vs. project.build.outputTimestamp, but that’s
apparently not it either.

So I fear someone’ll have to dig through all the various Maven-
related source packages…

FWIW, the 517-day-old .deb currently in the repo has…

-rw-r--r-- root/root      1415 2022-12-17 18:36 ./usr/share/maven-repo/com/github/mangstadt/vinnie/2.0.2/vinnie-2.0.2.pom

… which matches Sat, 17 Dec 2022 18:36:19 +0100 from d/changelog,
so something something reproducible-builds is still suspect.

Good luck with that,
//mirabilos
-- 
Infrastrukturexperte • Qvest Digital AG
Am Dickobskreuz 10, D-53121 Bonn • https://www.qvest-digital.com/
Telephon +49 228 54881-393 • Fax: +49 228 54881-235
HRB AG Bonn 18196 • USt-ID (VAT): DE274355441
Vorstand: Dr. Stefan Barth, Kai Ebenrett, Boris Esser, Alexander Steeg
Vorsitzender Aufsichtsrat: Peter Nöthen


Reply to: