Christian Franke wrote: > A small step towards reproducible packaging... > > Currently only tested with upcoming smartmontools package - contains > only exe, man, doc files (no dll, lib, ...). Multiple cygport runs > produce binary identical distribution tarballs if SOURCE_DATE_EPOCH > (from the past) is specified in the cygport file. > A slightly enhanced patch is attached. For .gz files, 'gzip -n' is now used as suggested. Result from a test with the cygwin-3.4.8-1 source package: These two lines were added to cygwin.cygport:  VERSION="3.4.8"  RELEASE="1" +export SOURCE_DATE_EPOCH=$(date -d '2023-08-18 UTC' +%s) +export TZ=UTC (TZ=UTC is a workaround for a minor bug in SOURCE_DATE_EPOCH handling of gropdf) These distribution files are always identical: - cygwin-3.4.8-1-src.tar.xz - cygwin-doc-3.4.8-1.tar.xz These individual files differ if the build-path of multiple test-builds is always the same: - usr/bin/cygwin1.dll: -- Contains a build timestamp not based on '__DATE__ __TIME__'. Could be easily addressed in scripts/mkvers.sh. -- The PE Export Tables header contains a timestamp independent from the PE header. There is possibly no easy way to fix this without an extra tool (or further enhancing peflags). - usr/lib/lib*.a: -- Object file time timestamps differ. Could be addressed by adding 'ar' option 'D' (deterministic) in Makefiles and scripts/speclib. - usr/lib/debug/usr/bin/cygwin1.dll.dbg: As expected, because cygwin1.dll differ. If the build-path changes, more files differ (cygcheck.exe, ldd.exe, cygserver.exe) because __FILE__ is used and expands to an absolute path name. -- Regards, Christian