Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:gcomes.obs
eccodes
reproducible.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File reproducible.patch of Package eccodes
Author: Alastair McKinstry <mckinstry@debian.org> Description: Make builds bit-reproducible Last-Updated: 2016-10-27 Forwarded: https://software.ecmwf.int/issues/browse/SUP-1590 Index: eccodes-2.4.1/CMakeLists.txt =================================================================== --- eccodes-2.4.1.orig/CMakeLists.txt +++ eccodes-2.4.1/CMakeLists.txt @@ -137,6 +137,12 @@ ecbuild_add_option( FEATURE FORTRAN DESCRIPTION "Build the ecCodes Fortran interface" DEFAULT ON ) +ecbuild_add_option( FEATURE BIT_REPRODUCIBLE + DESCRIPTION "build bit-reproducible package" + DEFAULT ON + # Required for Debian, soon the world ... +) + # TODO Remove this after REQUIRED_LANGUAGES if( ENABLE_FORTRAN ) # will set EC_HAVE_FORTRAN with the result Index: eccodes-2.4.1/cmake/ecbuild_config.h.in =================================================================== --- eccodes-2.4.1.orig/cmake/ecbuild_config.h.in +++ eccodes-2.4.1/cmake/ecbuild_config.h.in @@ -25,14 +25,18 @@ /* config info */ -#define @PNAME@_OS_NAME "@CMAKE_SYSTEM@" +#define @PNAME@_OS_NAME "linux" #define @PNAME@_OS_BITS @EC_OS_BITS@ #define @PNAME@_OS_BITS_STR "@EC_OS_BITS@" #define @PNAME@_OS_STR "@EC_OS_NAME@.@EC_OS_BITS@" -#define @PNAME@_OS_VERSION "@CMAKE_SYSTEM_VERSION@" +#define @PNAME@_OS_VERSION "OBS" #define @PNAME@_SYS_PROCESSOR "@CMAKE_SYSTEM_PROCESSOR@" -#define @PNAME@_BUILD_TIMESTAMP "@EC_BUILD_TIMESTAMP@" +#ifndef HAVE_BIT_REPRODUCIBLE + #define @PNAME@_BUILD_TIMESTAMP "@EC_BUILD_TIMESTAMP@" +#else + #define @PNAME@_BUILD_TIMESTAMP "NO-TIMESTAMP-FOR-BIT_REPRODUCIBLE-BUILD" +#endif #define @PNAME@_BUILD_TYPE "@CMAKE_BUILD_TYPE@" #define @PNAME@_C_COMPILER_ID "@CMAKE_C_COMPILER_ID@" @@ -54,9 +58,6 @@ #define @PNAME@_INSTALL_LIB_DIR "@CMAKE_INSTALL_PREFIX@/@INSTALL_LIB_DIR@" #define @PNAME@_INSTALL_DATA_DIR "@CMAKE_INSTALL_PREFIX@/@INSTALL_DATA_DIR@" -#define @PNAME@_DEVELOPER_SRC_DIR "@CMAKE_SOURCE_DIR@" -#define @PNAME@_DEVELOPER_BIN_DIR "@CMAKE_BINARY_DIR@" - /* Fortran support */ #if @EC_HAVE_FORTRAN@ Index: eccodes-2.4.1/cmake/ecbuild_print_summary.cmake =================================================================== --- eccodes-2.4.1.orig/cmake/ecbuild_print_summary.cmake +++ eccodes-2.4.1/cmake/ecbuild_print_summary.cmake @@ -61,7 +61,9 @@ macro( ecbuild_print_summary ) ecbuild_info( "endiness : Little Endian -- IEEE [${IEEE_LE}]" ) endif() ecbuild_info( "build type : [${CMAKE_BUILD_TYPE}]" ) - ecbuild_info( "timestamp : [${EC_BUILD_TIMESTAMP}]" ) + if ( NOT HAVE_BIT_REPRODUCIBLE ) + ecbuild_info( "timestamp : [${EC_BUILD_TIMESTAMP}]" ) + endif() ecbuild_info( "install prefix : [${CMAKE_INSTALL_PREFIX}]" ) ecbuild_info( " bin dir : [${${PROJECT_NAME}_FULL_INSTALL_BIN_DIR}]" ) ecbuild_info( " lib dir : [${${PROJECT_NAME}_FULL_INSTALL_LIB_DIR}]" ) Index: eccodes-2.4.1/cmake/ecbuild_get_date.cmake =================================================================== --- eccodes-2.4.1.orig/cmake/ecbuild_get_date.cmake +++ eccodes-2.4.1/cmake/ecbuild_get_date.cmake @@ -20,12 +20,16 @@ ############################################################################## macro(ecbuild_get_date RESULT) + if (HAVE_BIT_REPRODUCIBLE) + ecbuild_info("date not included in bit-reproducible builds") + else() if(UNIX) execute_process(COMMAND "date" "+%d/%m/%Y" OUTPUT_VARIABLE ${RESULT}) string(REGEX REPLACE "(..)/(..)/(....).*" "\\3.\\2.\\1" ${RESULT} ${${RESULT}}) else() ecbuild_error("date not implemented") endif() + endif() endmacro(ecbuild_get_date) ############################################################################## @@ -42,11 +46,15 @@ endmacro(ecbuild_get_date) ############################################################################## macro(ecbuild_get_timestamp RESULT) + if (HAVE_BIT_REPRODUCIBLE) + ecbuild_info("timestamp not included in bit-reproducible builds") + else() if(UNIX) execute_process(COMMAND "date" "+%Y/%m/%d/%H/%M/%S" OUTPUT_VARIABLE _timestamp) string(REGEX REPLACE "(....)/(..)/(..)/(..)/(..)/(..).*" "\\1\\2\\3\\4\\5\\6" ${RESULT} ${_timestamp}) else() ecbuild_warn("This is NOT UNIX - timestamp not implemented") endif() + endif() endmacro(ecbuild_get_timestamp)
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor