diff options
author | Slávek Banko <slavek.banko@axis.cz> | 2020-03-21 10:44:48 +0100 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2020-03-23 17:30:42 +0100 |
commit | f0659a0437dbe9f6943c7429dd6651d165dfa1c3 (patch) | |
tree | a9ceb27c77c853562ac56049585c41f6d48cf53e | |
parent | ca613e7db0996d77aafcbecaa0805e83eb82cb2a (diff) | |
download | tde-cmake-f0659a0437dbe9f6943c7429dd6651d165dfa1c3.tar.gz tde-cmake-f0659a0437dbe9f6943c7429dd6651d165dfa1c3.zip |
tde_create_tarball: Add options to ensure reproducibility.
Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
(cherry picked from commit 6574bc5ae92f85d97705d1f41cf52709246122e5)
-rw-r--r-- | modules/TDEMacros.cmake | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/modules/TDEMacros.cmake b/modules/TDEMacros.cmake index 66aedf3..8478f2a 100644 --- a/modules/TDEMacros.cmake +++ b/modules/TDEMacros.cmake @@ -1951,6 +1951,13 @@ macro( tde_create_tarball ) string( REGEX REPLACE "^([^\n]*)\n.*" "\\1" TAR_VERSION "${TAR_VERSION}" ) if( "${TAR_VERSION}" MATCHES "GNU *tar" ) set( TAR_SETOWNER "--owner=root;--group=root" ) + set( TAR_REPRODUCIBLE "--pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime" ) + tde_read_src_metadata() + if( TDE_PKG_DATETIME ) + list( APPEND TAR_REPRODUCIBLE --mtime "${TDE_PKG_DATETIME}" ) + elseif( TDE_SCM_MODULE_DATETIME ) + list( APPEND TAR_REPRODUCIBLE --mtime "${TDE_SCM_MODULE_DATETIME}" ) + endif( ) elseif( "${TAR_VERSION}" MATCHES "bsd *tar" ) set( TAR_SETOWNER "--uname=root;--gname=root" ) else( ) @@ -1963,9 +1970,9 @@ macro( tde_create_tarball ) endif( ) if( _compression ) if( "${_compression}" STREQUAL "gzip" ) - set( _compression "-z" ) + set( TAR_COMPRESSION "|" ${_compression} "-n" ) else( ) - set( _compression "--use-compress-program=\"${_compression}\"" ) + set( TAR_COMPRESSION "|" ${_compression} ) endif( ) endif( ) @@ -1976,8 +1983,9 @@ macro( tde_create_tarball ) DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${_target}" ) add_custom_command( - COMMAND ${TAR_EXECUTABLE} cf ${CMAKE_CURRENT_BINARY_DIR}/${_target} - ${_compression} ${TAR_SETOWNER} -- ${_files} + COMMAND ${TAR_EXECUTABLE} cf - + ${TAR_SETOWNER} ${TAR_REPRODUCIBLE} -- ${_files} + ${TAR_COMPRESSION} > ${CMAKE_CURRENT_BINARY_DIR}/${_target} WORKING_DIRECTORY "${_sourcedir}" OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${_target}" DEPENDS ${_files_deps} |