tde_create_tarball: Add options to ensure reproducibility.

Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
pull/34/head
Slávek Banko 5 years ago
parent 1f4d4093ad
commit 6574bc5ae9
No known key found for this signature in database
GPG Key ID: 608F5293A04BE668

@ -1951,6 +1951,13 @@ macro( tde_create_tarball )
string( REGEX REPLACE "^([^\n]*)\n.*" "\\1" TAR_VERSION "${TAR_VERSION}" ) string( REGEX REPLACE "^([^\n]*)\n.*" "\\1" TAR_VERSION "${TAR_VERSION}" )
if( "${TAR_VERSION}" MATCHES "GNU *tar" ) if( "${TAR_VERSION}" MATCHES "GNU *tar" )
set( TAR_SETOWNER "--owner=root;--group=root" ) 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" ) elseif( "${TAR_VERSION}" MATCHES "bsd *tar" )
set( TAR_SETOWNER "--uname=root;--gname=root" ) set( TAR_SETOWNER "--uname=root;--gname=root" )
else( ) else( )
@ -1963,9 +1970,9 @@ macro( tde_create_tarball )
endif( ) endif( )
if( _compression ) if( _compression )
if( "${_compression}" STREQUAL "gzip" ) if( "${_compression}" STREQUAL "gzip" )
set( _compression "-z" ) set( TAR_COMPRESSION "|" ${_compression} "-n" )
else( ) else( )
set( _compression "--use-compress-program=\"${_compression}\"" ) set( TAR_COMPRESSION "|" ${_compression} )
endif( ) endif( )
endif( ) endif( )
@ -1976,8 +1983,9 @@ macro( tde_create_tarball )
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${_target}" ) DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${_target}" )
add_custom_command( add_custom_command(
COMMAND ${TAR_EXECUTABLE} cf ${CMAKE_CURRENT_BINARY_DIR}/${_target} COMMAND ${TAR_EXECUTABLE} cf -
${_compression} ${TAR_SETOWNER} -- ${_files} ${TAR_SETOWNER} ${TAR_REPRODUCIBLE} -- ${_files}
${TAR_COMPRESSION} > ${CMAKE_CURRENT_BINARY_DIR}/${_target}
WORKING_DIRECTORY "${_sourcedir}" WORKING_DIRECTORY "${_sourcedir}"
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${_target}" OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${_target}"
DEPENDS ${_files_deps} DEPENDS ${_files_deps}

Loading…
Cancel
Save