aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2018-11-08 11:52:33 +0100
committerJo-Philipp Wich <jo@mein.io>2018-11-08 11:52:33 +0100
commitd157a76c67bcb821d3ec8dcd4312390ef129a95a (patch)
treebd2eebb740c5fb41939b9a04340526fb42cad4fc
parent559635dbb6983b4e95f167d0ac2d3a75af6d3102 (diff)
downloadupstream-d157a76c67bcb821d3ec8dcd4312390ef129a95a.tar.gz
upstream-d157a76c67bcb821d3ec8dcd4312390ef129a95a.tar.bz2
upstream-d157a76c67bcb821d3ec8dcd4312390ef129a95a.zip
script: ipkg-build: honour $SOURCE_DATE_EPOCH
When the SOURCE_DATE_EPOCH environment variable is set, use it to override the timestamps of .ipk archive contents. This ensures that .ipk archives built in environments without SCM metadata (mainly the SDK) are reproducible between different runs. Ref: https://github.com/openwrt/packages/issues/6954 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
-rwxr-xr-xscripts/ipkg-build6
1 files changed, 5 insertions, 1 deletions
diff --git a/scripts/ipkg-build b/scripts/ipkg-build
index e42da2ecbc..21127f3391 100755
--- a/scripts/ipkg-build
+++ b/scripts/ipkg-build
@@ -15,8 +15,12 @@ FIND="${FIND:-$(which gfind)}"
TAR="${TAR:-$(which tar)}"
GZIP="$(which gzip)"
+# try to use fixed source epoch
+if [ -n "$SOURCE_DATE_EPOCH" ]; then
+ TIMESTAMP=$(date --date="@$SOURCE_DATE_EPOCH")
+
# look up date of last commit
-if [ -d "$TOPDIR/.git" ]; then
+elif [ -d "$TOPDIR/.git" ]; then
GIT="$(which git)"
TIMESTAMP=$(cd $TOPDIR; $GIT log -1 -s --format=%ci)
elif [ -d "$TOPDIR/.svn" ]; then