diff options
author | Emil Velikov <emil.l.velikov@gmail.com> | 2022-02-01 14:01:32 +0000 |
---|---|---|
committer | Emil Velikov <emil.l.velikov@gmail.com> | 2022-02-01 18:29:08 +0000 |
commit | 48313bf31d92cfff175452101c787705e08c6560 (patch) | |
tree | dbc6c0493a7996ead2885b195eb6d3c04d3223b4 | |
parent | 2ca1750158dbd2058680b7e315ac76746e30fd0f (diff) | |
download | extra-cmake-modules-48313bf31d92cfff175452101c787705e08c6560.tar.gz extra-cmake-modules-48313bf31d92cfff175452101c787705e08c6560.tar.bz2 |
kde_package_app_templates: drop atime,ctime, consistently set mtime
As outlined in https://reproducible-builds.org/docs/archives/ to ensure
that tarballs are reproducible, one should honour SOURCE_DATE_EPOCH.
In the case it's not, fallback to date +%s, set the mtime.
Delete atime and ctime completely. No idea if this is better or worse.
Based on the patch by: Brendan Tildesley <mail@brendan.scot>
From: https://bugs.kde.org/show_bug.cgi?id=443532
v2: Emil
- Split from larger patch
- Fallback to date +%s
v3: Emil
- $ENV{...} to evaluate the variable
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
-rw-r--r-- | kde-modules/KDEPackageAppTemplates.cmake | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/kde-modules/KDEPackageAppTemplates.cmake b/kde-modules/KDEPackageAppTemplates.cmake index 9f50c665..8deb1731 100644 --- a/kde-modules/KDEPackageAppTemplates.cmake +++ b/kde-modules/KDEPackageAppTemplates.cmake @@ -114,6 +114,16 @@ function(kde_package_app_templates) add_custom_target(${_baseName} ALL DEPENDS ${_template}) if(GNU_TAR_FOUND) + # Honour SOURCE_DATE_EPOCH if set + if(DEFINED ENV{SOURCE_DATE_EPOCH}) + set(TIMESTAMP $ENV{SOURCE_DATE_EPOCH}) + else() + execute_process( + COMMAND "date" "+%s" + OUTPUT_VARIABLE TIMESTAMP + OUTPUT_STRIP_TRAILING_WHITESPACE) + endif() + # Make tar archive reproducible, the arguments are only available with GNU tar add_custom_command(OUTPUT ${_template} COMMAND ${_tar_executable} ARGS @@ -121,7 +131,8 @@ function(kde_package_app_templates) --sort=name --mode=go=rX,u+rw,a-s --numeric-owner --owner=0 --group=0 - --pax-option=exthdr.name=%d/PaxHeaders/%f,atime:=0,ctime:=0 + --mtime="@${TIMESTAMP}" + --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime -c -j -v -f ${_template} . WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${_templateName} DEPENDS ${_subdirs_entries} |