openwrt/scripts
Paul Spooren a83b2af47f build: get_source_date_epoch allow external repos
The SOURCE_DATE_EPOCH variable is used to make builds reproducible even
if rebuild at different times. Instead of using the current timestamp,
the time of the last source change is used.

Created packages are `touch`ed with a specific timestamp so resulting
packages have the same checksums.

The `get_source_date_epoch.sh` script tries multiple ways (file, git,
hg) to determine the correct timestamp.

Until now the script would only consider the $TOPDIR instead of package
specific changes. Resulting in packages with same versions but different
timestamps, as $TOPDIR (openwrt.git) received changes not affecting
package versions. This results in warning/erros in `opkg` as the package
versions stay the same but checksums changed.

This commit adds an optional argument to get the `SOURCE_DATE_EPOCH` of
a specific path (e.g. package SOURCE) rather than the $TOPDIR. As a
consequence this allows granular but still reproducible timestamps.

As packages might be distributed over multiple repositories the check
for `.git/` becomes unfeasible. Instead tell `git` and `hg` to change
their working directories and automatically traverse the repo folder.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-08-31 11:18:06 +01:00
..
config build: mconf readme update 2020-07-07 19:47:24 +02:00
flashing scripts/flashing/flash.sh: remove trailing whitespaces 2020-05-24 14:44:00 +02:00
arm-magic.sh scripts/arm-magic.sh: switch to /bin/sh 2020-01-02 23:59:20 +01:00
brcmImage.pl
bundle-libraries.sh scripts: bundle-libraries: fix logic flaw 2018-08-29 14:19:43 +02:00
cfe-bin-header.py scripts: cfe-bin-header: fix shebang 2020-05-19 08:05:22 +02:00
cfe-partition-tag.py scripts: add CFE Partition Tags support 2020-05-21 19:11:24 +02:00
cfe-wfi-tag.py scripts: cfe-wfi-tag: fix shebang 2020-05-19 08:06:29 +02:00
checkpatch.pl scripts/checkpatch.pl: fix README.md file name after rename 2020-08-02 15:51:39 +02:00
clang-gcc-wrapper
clean-package.sh build: Fix directory symlinks not removed when cleaning STAGING_DIR 2020-03-01 21:35:59 +01:00
cleanfile
cleanpatch
combined-ext-image.sh
combined-image.sh
config.guess scripts: update config.guess and config.sub 2018-11-01 17:16:52 +01:00
config.rpath
config.sub scripts: update config.guess and config.sub 2018-11-01 17:16:52 +01:00
deptest.sh
diffconfig.sh
dl_cleanup.py
dl_github_archive.py scripts/dl_github_archive.py: fix python3 str, bytes confusion 2019-11-04 11:11:19 +00:00
download.pl Revert "scripts/download: add sources CDN as first mirror" 2020-08-24 15:55:14 +02:00
dump-target-info.pl scripts: Add Buildbot dump-target-info.pl script 2020-08-04 09:28:39 +02:00
env scripts/env: Fix 56f813674a scripts/env: use command -v instead of which 2020-07-12 13:29:28 +01:00
ext-toolchain.sh
feeds scripts/feeds: fix accepting "-" in feed type string 2019-09-15 19:54:03 +02:00
fixup-makefile.pl fixup-makefile.pl: fixup when PKG_SOURCE is defined elsewhere 2018-07-05 01:30:57 +08:00
functions.sh images: fix boot failures on NAND with small sub pages 2019-09-14 11:43:19 +02:00
gen_image_generic.sh scripts/gen_image_generic.sh: fix more shellcheck warnings 2020-07-11 14:42:32 +02:00
gen-dependencies.sh scripts/gen-dependencies.sh: use /bin/sh 2020-01-01 17:01:02 +01:00
get_source_date_epoch.sh build: get_source_date_epoch allow external repos 2020-08-31 11:18:06 +01:00
getver.sh
ipkg-build build: ipkg-build use fakeroot with PKG_FILE_MODES 2020-08-31 11:13:12 +01:00
ipkg-make-index.sh scripts: ipkg-make-index.sh: dereference symbolic links 2019-01-31 12:35:29 +01:00
ipkg-remove scripts: ipkg-remove: handle existing .ipk files without SourceName field 2019-01-21 16:35:40 +01:00
json_add_image_info.py build: store default/device packages in JSON 2020-06-30 23:21:10 +01:00
json_overview_image_info.py build,json: fix compatibility with Python 3.5 2020-07-13 22:45:04 +02:00
kconfig.pl
linksys-image.sh build: add a script for generating Linksys factory images 2019-01-26 21:43:07 +01:00
make-ipkg-dir.sh
md5sum
metadata.pm build: add option to mark devices as BROKEN 2020-07-30 21:49:07 +02:00
mkhash.c
mkits-qsdk-ipq-image.sh build: add helpers for generating QSDK sysupgrade compatible images 2019-02-25 17:36:16 +01:00
mkits.sh scripts/mkits.sh: fix use of printf 2020-07-11 18:46:53 +02:00
om-fwupgradecfg-gen.sh ar71xx: Skip more hashed blocks for OM2P(-HS) 64k variant 2018-09-10 10:01:58 +02:00
package-metadata.pl metadata: handle ABI version rebuild tracking for transient dependencies 2019-06-21 12:03:43 +02:00
pad_image
patch-kernel.sh
patch-specs.sh toolchain: Add GCC 9.1.0 release 2019-06-16 16:40:08 +02:00
portable_date.sh
qemustart scripts: fixup qemustart for new x86 image names 2020-03-21 10:36:00 +00:00
redboot-script.pl
relink-lib.sh
remote-gdb Fix handling of BUILD_SUFFIX in remote-gdb script 2019-09-01 18:38:05 +02:00
rstrip.sh scripts: rstrip.sh: allow rpath with sole $ORIGIN token 2018-12-19 15:36:05 +01:00
sercomm-crypto.py scripts: support Sercomm crypto 2020-06-02 08:37:54 +02:00
sercomm-partition-tag.py scripts: support Sercomm partition tags 2020-06-02 08:33:11 +02:00
sercomm-payload.py scripts: support Sercomm load tags 2020-06-02 13:06:42 +02:00
sign_images.sh build: add script to sign packages 2019-10-21 14:07:08 +02:00
slugimage.pl scripts: Replace obsolete POSIX tmpnam in slugimage.pl with File::Temp function 2018-06-05 10:07:42 -04:00
srecimage.pl
strip-kmod.sh scripts/strip-kmod.sh: harmonize leading whitespaces 2019-12-31 11:41:07 +01:00
symlink-tree.sh scripts/symlink-tree.sh: use /bin/sh 2019-12-31 11:43:15 +01:00
sysupgrade-tar.sh images: fix boot failures on NAND with small sub pages 2019-09-14 11:43:19 +02:00
target-metadata.pl build: add option to mark devices as BROKEN 2020-07-30 21:49:07 +02:00
time.pl scripts: time.pl: Don't print the time on stderr 2019-07-03 07:45:00 +02:00
timestamp.pl
ubinize-image.sh ubinize-image: set image sequence from SOURCE_DATE_EPOCH 2019-11-03 04:20:21 +01:00