For https://en.opensuse.org/openSUSE:Reproducible_Builds Now that this upstream RPM patch has landed in Factory https://build.opensuse.org/package/view_file/Base:System/rpm/0001-set-SOURCE... I propose to add in the openSUSE:Factory project config under Macros: %source_date_epoch_from_changelog Y %source_date_epoch_from_changelog will set the SOURCE_DATE_EPOCH environment variable to the date of the latest changelog entry and various tools will use that date instead of the 'current' date/time. gcc, cmake, asciidoc and many others. That helps to improve the overall reproducibility of packages. E.g. __DATE__ and __TIME__ preprocessor macros in .c files will then no more create differing binary rpms that trigger superfluous rebuilds of depending packages and waste mirror bandwidth. Also rpm itself will use it to set the "Build Date" field of the resulting package... but the "Signature" field remains as it was. Btw: there are two other macros I have in https://build.opensuse.org/project/prjconf/home:bmwiedemann:reproducible In a later stage, if/when we want to go for bit-identical builds, we can also set %_buildhost SOMECONSTANTSTRING but before, we probably want to add a way to find the actual buildhost in case it created faulty RPM packages. and then later %clamp_mtime_to_source_date_epoch Y which will make sure that packages contain no files with 'current' date. That one is known to have some negative effects on python packages with .pyc files which can be mostly avoided with such a patch https://github.com/python/cpython/pull/296 but it is still uncertain what other formats might be affected in similar ways. Ciao Bernhard M.