Source: ossim
Version: 1.8.16-3
Severity: wishlist
Tags: patch
User: [email protected]
Usertags: timestamps
Hi!
While working on the "reproducible builds" effort [1], we have noticed
that ossim could not be built reproducibly.
The attached patch removes extra timestamps from the build system:
* avoid_overwrite_build_date.patch: avoid overwrite OSSIM_BUILD_DATE
through TODAYS_DATE in CMakeLists.txt if OSSIM_BUILD_DATE was already
defined.
* debian-rules.patch: modify debian/rules to set the variable
OSSIM_BUILD_DATE in cmake command line.
Once applied, ossim can be built reproducibly in our current experimental
framework.
[1]: https://wiki.debian.org/ReproducibleBuilds
-- System Information:
Debian Release: stretch/sid
APT prefers testing-updates
APT policy: (500, 'testing-updates'), (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 3.16.0-4-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Description: Avoid overwrite build date.
Previous to use the current date to set the variable OSSIM_BUILD_DATE check if
it was already defined in command line.
Author: Juan Picca <[email protected]>
Last-Update: 2015-06-04
---
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -148,7 +148,9 @@ endif ( ZLIB_FOUND )
#---
# Call the OSSIM macros in OssimUtilities.cmake
#---
-TODAYS_DATE(OSSIM_BUILD_DATE)
+if ( NOT OSSIM_BUILD_DATE )
+ TODAYS_DATE(OSSIM_BUILD_DATE)
+endif()
SET(OSSIM_SVN_REVISION_NUMBER "UNKNOWN")
GET_SVN_REVISION()
if ( NOT ${Project_WC_REVISION} EQUAL 0 )
diff -ruNp ossim-1.8.16/debian/rules ossim-1.8.16.new/debian/rules
--- ossim-1.8.16/debian/rules 2014-11-02 10:12:44.000000000 -0200
+++ ossim-1.8.16.new/debian/rules 2015-06-04 15:45:25.611943209 -0300
@@ -1,5 +1,8 @@
#!/usr/bin/make -f
+LAST_CHANGE=$(shell dpkg-parsechangelog -S Date)
+BUILD_DATE=$(shell LC_ALL=C date -u "+%Y%m%d" -d "$(LAST_CHANGE)")
+
OSSIM_VERSION=$(shell dpkg-parsechangelog|grep Version:|cut -d' ' -f2|cut -d- -f1)
OSSIM_VERSION_TAG=$(subst .,_,$(OSSIM_VERSION))
@@ -21,6 +24,7 @@ endif
# Add here any variable or target overrides you need.
CMAKE_OPTS = \
-DCMAKE_INSTALL_PREFIX=/usr \
+ -DOSSIM_BUILD_DATE=$(BUILD_DATE) \
-DBUILD_OSSIM_FRAMEWORKS=ON \
-DBUILD_OSSIM_FREETYPE_SUPPORT=ON \
-DBUILD_OSSIM_ID_SUPPORT=ON \