aboutsummaryrefslogtreecommitdiffstats
path: root/include
Commit message (Collapse)AuthorAgeFilesLines
* build: make zstd initramfs selectableFelix Fietkau2021-02-161-1/+1
| | | | | | fix typo in kernel initramfs zstd compression option Signed-off-by: Felix Fietkau <nbd@nbd.name>
* build: build kernel image before building modules/packagesFelix Fietkau2021-02-161-3/+3
| | | | | | | This is needed for linux 5.10, where modules.builtin is generated from vmlinux.o Signed-off-by: Felix Fietkau <nbd@nbd.name>
* build: IS_TTY is now set according to GNU Make's MAKE_TERMOUTR. Diez2021-02-151-1/+1
| | | | | | | | | | | | | | | The sender domain has a DMARC Reject/Quarantine policy which disallows sending mailing list messages using the original "From" header. To mitigate this problem, the original message has been wrapped automatically by the mailing list software. Fixes: FS#2086 The logic for IS_TTY was broken, because it was testing stdin instead of stdout. MAKE_TERMOUT was introduced in GNU Make version 4.1 (05 Oct 2014), so it should be available everywhere nowadays. Signed-off-by: R. Diez <rdiezmail-openwrt@yahoo.com>
* build/prereq: require make 4.1 or laterPaul Spooren2021-02-151-2/+2
| | | | | | | | | | | | FS#2086 "IS_TTY in the makefile is broken" reports flawed detection of stdout piping to a file. The issue describes how e.g. terminal color codes and up in log files if running make like `make > log.txt`. The proposed solution uses the make variable "MAKE_TERMOUT", which was introduced in make 4.1. All major distributions seem to updated to 4.1 or later, so this ideally dosen't break anything. Signed-off-by: Paul Spooren <mail@aparcar.org>
* build: fix getting ABI version for binary packages from the same source packageFelix Fietkau2021-02-151-1/+1
| | | | | | | We can't rely on the .version file being created yet, so use package variables to get it Signed-off-by: Felix Fietkau <nbd@nbd.name>
* build: filter out own packages on package version checkFelix Fietkau2021-02-151-2/+2
| | | | | | | This was accidentally dropped in 27a4a71c2408 ("metadata: handle ABI version rebuild tracking for transient dependencies") Signed-off-by: Felix Fietkau <nbd@nbd.name>
* build: only overwrite ABI version for provided packages when base version ↵Felix Fietkau2021-02-151-5/+5
| | | | | | | | changed Should avoid some spurious rebuilds Signed-off-by: Felix Fietkau <nbd@nbd.name>
* Mostly revert "build: add support for fixing up library soname"Felix Fietkau2021-02-152-7/+0
| | | | | | | | | This reverts commit b12288fa69b171f7c9405518c9bed3581a06f7ce. The patchelf approach is too fragile, and the only users of this have been converted to make patching unnecessary Leave the abi_version_str variable in place in rules.mk Signed-off-by: Felix Fietkau <nbd@nbd.name>
* build: add support for patching libtool to include ABI version in sonameFelix Fietkau2021-02-151-0/+10
| | | | | | Use the version from PKG_ABI_VERSION Signed-off-by: Felix Fietkau <nbd@nbd.name>
* build: drop ABI version from metadataFelix Fietkau2021-02-143-5/+9
| | | | | | | Preparation for supporting dynamic ABI versions that depend on the runtime configuration. Read the suffix from the staging dir pkginfo version files. Signed-off-by: Felix Fietkau <nbd@nbd.name>
* build: add support for fixing up library sonameFelix Fietkau2021-02-142-0/+7
| | | | | | | | | | This makes it possible to declare a package ABI_VERSION independent from the upstream soname by setting PKG_ABI_VERSION in the package makefile. The library filename is fixed up for files installed to packages and to the staging dir. References to the original from executables within the same package are also fixed up Signed-off-by: Felix Fietkau <nbd@nbd.name>
* build: fix ABI version rebuild dependencyFelix Fietkau2021-02-141-1/+1
| | | | | | | A stray comma was being appended to the last package version dependency, causing it to be missed for ABI version checks Signed-off-by: Felix Fietkau <nbd@nbd.name>
* kernel: bump 5.4 to 5.4.98John Audia2021-02-141-2/+2
| | | | | | | | | | | | | | | | | | | | Ran update_kernel.sh in a fresh clone without any existing toolchains. No manual changes needed. Build system: x86_64 Build-tested: bcm27xx/bcm2711, ipq806x/R7800 Run-tested: ipq806x/R7800 Compile-tested [*]: ath79/{generic,tiny}, ipq40xx, octeon, realtek, ramips/{mt7620,mt7621}, x86/64 Run-tested [*]: ath79/{generic,tiny}: WNDR3700v2 / TL-WR841N v7 octeon: EdgeRouter Lite ramips/{mt7620,mt7621}: Archer C2 v1 / DIR-878 A1, EAP235-Wall, R6800, RT-AC57U v1 No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us> Tested-by: Stijn Segers <foss@volatilesystems.org> [*]
* trusted-firmware-a: fix project name spellingDaniel Golle2021-02-131-1/+1
| | | | | | | The version string generated for ARM Trusted-Firmware-A was stated as "OpenWRT". Fix that by changing it to the exact spelling "OpenWrt" Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* kernel: bump 5.4 to 5.4.97John Audia2021-02-111-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Ran update_kernel.sh in a fresh clone without any existing toolchains. Manually rebased: bcm27xx 950-0267-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch bcm53xx 180-usb-xhci-add-support-for-performing-fake-doorbell.patch layerscape 302-dts-0008-arm64-dts-ls1046a-accumulated-change-to-ls1046a-boar.patch 820-usb-0016-MLK-16735-usb-host-add-XHCI_CDNS_HOST-flag.patch 820-usb-0018-MLK-18794-1-usb-host-xhci-add-.bus_suspend-override.patch Build system: x86_64 Build-tested: bcm27xx/bcm2711, ipq806x/R7800 Run-tested: ipq806x/R7800 No dmesg regressions/everything functional. Signed-off-by: John Audia <graysky@archlinux.us> [remove quilt comment, fix/adjust 820-usb-* layerscape patches] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* kernel: bump 5.4 to 5.4.96John Audia2021-02-081-2/+2
| | | | | | | | | | | | Ran update_kernel.sh in a fresh clone without any existing toolchains. Build system: x86_64 Build-tested: ipq806x/R7800, bcm27xx/bcm2711 Run-tested: ipq806x/R7800 Run-tested [*]: ramips/mt7621 (R6800, DIR-878 A1, EAP235-Wall) Signed-off-by: John Audia <graysky@archlinux.us> Tested-by: Stijn Segers <foss@volatilesystems.org> [*]
* treewide: unify OpenWrt hosted source via @OPENWRTPaul Spooren2021-02-051-1/+1
| | | | | | | | | | | Multiple sources are hosted on OpenWrts source server only. The source URLs to point to the server vary based on different epochs in OpenWrts history. Replace all by @OPENWRT which is an "empty" mirror, therefore using the fallback servers sources.cdn.openwrt.org and sources.openwrt.org. Signed-off-by: Paul Spooren <mail@aparcar.org>
* build: move elx-header into image-commands.mkYanase Yuki2021-02-051-0/+20
| | | | | | | ELECOM WAB-I1750-PS will need this in ath79, so move it to common Makefile. Signed-off-by: Yanase Yuki <dev@zpc.sakura.ne.jp>
* build: use SPDX license tagsPaul Spooren2021-02-0530-142/+57
| | | | | | | | | The license folder is a core part of OpenWrt and all GPL-2.0 licensed. Use SPDX license tags to allow machines to check licenses. Signed-off-by: Paul Spooren <mail@aparcar.org> [rebase, keep some Copyright lines, sharpen commit message] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* kernel: bump 5.4 to 5.4.95John Audia2021-02-041-2/+2
| | | | | | | | | | | | | | | Ran update_kernel.sh in a fresh clone without any existing toolchains. Removed upstreamed patches: imx6: 303-ARM-dts-imx6qdl-gw52xx-fix-duplicate-regulator-namin.patch Build system: x86_64 Build-tested: ipq806x/R7800, bcm27xx/bcm2711 Run-tested: ipq806x/R7800 No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us>
* trusted-firmware-a.mk: add PKG_CPE_IDDaniel Golle2021-02-041-0/+1
| | | | | | | Vulnerabilities of Trusted Firmware A are tracked as cpe:/a:arm:arm_trusted_firmware Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* kernel: bump 5.4 to 5.4.94John Audia2021-02-011-2/+2
| | | | | | | | | | | | All modification made by update_kernel.sh in a fresh clone without existing toolchains. Build-tested: bcm27xx/bcm2711, ipq806x/R7800, Run-tested: ipq806x/R7800 No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us>
* trusted-firmware-a.mk: pass package version as version identifierAndre Heider2021-01-301-0/+1
| | | | | | | Upon boot it now prints: NOTICE: BL1: v2.4(release):OpenWRT v2.4-1 (espressobin-v3-v5-1gb-2cs) (Marvell-devel-18.12.0) Signed-off-by: Andre Heider <a.heider@gmail.com>
* ramips: add support for ELECOM WRC-2533GHBK-IINAGAKI Hiroshi2021-01-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ELECOM WRC-2533GHBK-I is a 2.4/5 GHz band 11ac (Wi-Fi 5) router, based on MT7621A. Specification: - SoC : MediaTek MT7621A - RAM : DDR3 128 MiB - Flash : SPI-NOR 16 MiB - WLAN : 2.4/5 GHz 4T4R (2x MediaTek MT7615) - Ethernet : 10/100/1000 Mbps x5 - Switch : MediaTek MT7530 (SoC) - LED/keys : 4x/3x (2x buttons, 1x slide-switch) - UART : through-hole on PCB - J4: 3.3V, RX, GND, TX from SoC side - 57600n8 - Power : 12VDC, 1.5A Flash instruction using factory image: 1. Boot WRC-2533GHBK-I normally 2. Access to "http://192.168.2.1/" and open firmware update page ("ファームウェア更新") 3. Select the OpenWrt factory image and click apply ("適用") button 4. Wait ~150 seconds to complete flashing MAC addresses: LAN : BC:5C:4C:xx:xx:89 (Config, ethaddr (text)) WAN : BC:5C:4C:xx:xx:88 (Config, wanaddr (text)) 2.4GHz : BC:5C:4C:xx:xx:8A (Factory, 0x4 (hex)) 5GHz : BC:5C:4C:xx:xx:8B (Factory, 0x8004 (hex)) Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com> Reviewed-by: Sungbo Eo <mans0n@gorani.run>
* build: add elecom-product-header for ELECOM devicesINAGAKI Hiroshi2021-01-291-0/+12
| | | | | | | | | A header used in ELECOM WRC-300GHBK2-I and WRC-1750GHBK2-I/C is also used in ELECOM WRC-2533GHBK-I, so split the code to generate the header and move it to image-commands.mk to use from ramips target. Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com> Reviewed-by: Sungbo Eo <mans0n@gorani.run>
* base-files: remove execute bit and shebang from functions.shAdrian Schmutzler2021-01-291-2/+2
| | | | | | | | | | | /lib/functions.sh was executable for no obvious reason and its execute property was even checked in package-ipkg.mk just to source it afterwards. Remove the execute bit and shebang as this is clearly a library. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Reviewed-by: Philip Prindeville <philipp@redfish-solutions.com>
* kernel: bump 5.4 to 5.4.93John Audia2021-01-291-2/+2
| | | | | | | | | | | | | | | | | All modification made by update_kernel.sh in a fresh clone without existing toolchains. Build system: x86_64 Build-tested: ipq806x/R7800, bcm27xx/bcm2711 Run-tested: ipq806x/R7800 Compile-tested [*]: ath79/{tiny,generic}, ipq40xx, octeon, ramips/mt7621, realtek, x86/64 Run-tested [*]: ath79/generic, ipq40xx, octeon, ramips/mt7621 No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us> Tested-by: Stijn Segers <foss@volatilesystems.org> [*]
* kernel: bump 5.4 to 5.4.92John Audia2021-01-261-2/+2
| | | | | | | | | | | | | | | | | All modification made by update_kernel.sh in a fresh clone without existing toolchains. Build system: x86_64 Build-tested: ipq806x/R7800, bcm27xx/bcm2711 Run-tested: ipq806x/R7800 Compile-tested [*]: ath79/{tiny,generic}, ipq40xx, octeon, ramips/mt7621, realtek, x86/64. Run-tested [*]: ath79/generic, octeon, ramips/mt7621, realtek. No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us> Tested-by: Stijn Segers <foss@volatilesystems.org> [*]
* treewide: provide global default for SUPPORTED_DEVICESAdrian Schmutzler2021-01-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The majority of our targets provide a default value for the variable SUPPORTED_DEVICES, which is used in images to check against the compatible on a running device: SUPPORTED_DEVICES := $(subst _,$(comma),$(1)) At the moment, this is implemented in the Device/Default block of the individual targets or even subtargets. However, since we standardized device names and compatible in the recent past, almost all targets are following the same scheme now: device/image name: vendor_model compatible: vendor,model The equal redundant definitions are a symptom of this process. Consequently, this patch moves the definition to image.mk making it a global default. For the few targets not using the scheme above, SUPPORTED_DEVICES will be defined to a different value in Device/Default anyway, overwriting the default. In other words: This change is supposed to be cosmetic. This can be used as a global measure to get the current compatible with: $(firstword $(SUPPORTED_DEVICES)) (Though this is not precisely an achievement of this commit.) Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* kernel: bump 5.4 to 5.4.91John Audia2021-01-201-2/+2
| | | | | | | | | | | | | | All modification made by update_kernel.sh in a fresh clone without existing toolchains. Build system: x86_64 Build-tested: ipq806x/R7800, bcm27xx/bcm2711 Run-tested: ipq806x/R7800 No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us> Tested-by: Curtis Deptuck <curtdept@me.com> [x86/64]
* kernel: bump 5.4 to 5.4.90John Audia2021-01-191-2/+2
| | | | | | | | | | | | | | All modification made by update_kernel.sh in a fresh clone without existing toolchains. Build system: x86_64 Build-tested: ipq806x/R7800, bcm27xx/bcm2711 Run-tested: ipq806x/R7800 No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us> Tested-by: Curtis Deptuck <curtdept@me.com> [x86/64]
* include: update logo with better kerningPaul Spooren2021-01-182-453/+241
| | | | | | | | Kerning seems to be very off-putting for some people so the logo designer thankfully updated guidelines to something which is now considered final. Signed-off-by: Paul Spooren <mail@aparcar.org>
* kernel: bump 5.4 to 5.4.89John Audia2021-01-151-2/+2
| | | | | | | | | | | | | | All modification made by update_kernel.sh in a fresh clone without existing toolchains. Build system: x86_64 Build-tested: ipq806x/R7800, bcm27xx/bcm2711 Run-tested: ipq806x/R7800 No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us> Tested-by: Curtis Deptuck <curtdept@me.com> [x86/64]
* build/image: warn if missing qemu-img for VDI/VMDKPaul Spooren2021-01-101-2/+6
| | | | | | | | | | | | | | | Currently `qemu-img` is used to convert raw x86 images to VDI and VMDK images, used for virtual machines. Having `qemu-img` in tree requires us to maintain an ancient version of `qemu-utils`, which recently required extra work to compile with newer compiler version. This commit prints a warning message in case `qemu-img` is missing. As a next step the in-tree version of `qemu-img` can be removed. Signed-off-by: Paul Spooren <mail@aparcar.org>
* kernel-defaults: Manage the enabling/disabling of ZSTDFlorian Fainelli2021-01-091-0/+1
| | | | | | | | Linux 5.9 introduces support for ZSTD ramdisk and initrd compression, make sure we enable/disable the relevant options when building an initramfs enabled kernel. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
* kernel-defaults: Delete external source tree user_headersFlorian Fainelli2021-01-091-0/+1
| | | | | | | | | | When we use an external kernel tree which may not have been fully cleaned, there may be user_headers left which do not match the target architecture, leading to build failures for packages that do an explicit inclusion of user_headers (such as iproute2 or iptables). Make sure we delete them while preparing the directory. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
* kernel: bump 5.4 to 5.4.87John Audia2021-01-081-2/+2
| | | | | | | | | | | | | | | | | | All modification by update_kernel.sh. Build system: x86_64 Build-tested: ipq806x/R7800, bcm27xx/bcm2711 Run-tested: ipq806x/R7800 No dmesg regressions, everything functional Compile-tested [*]: ath79/{generic,tiny}, ipq40xx, octeon, ramips/mt7621, realtek, x86/64. Run-tested [*]: ramips/mt7621 (DIR-878 A1, R6800, RT-AC57U), octeon (EdgeRouter Lite). Signed-off-by: John Audia <graysky@archlinux.us> Tested-by: Stijn Segers <foss@volatilesystems.org> [*]
* build: use ccache -C for cleaning the cacheSven Wegener2021-01-061-2/+2
| | | | | | | | | | This keeps the configuration, like the size of the cache, and the statistics intact. Move the removal of the cache directory to the distclean target, but only delete the .ccache directory inside of our build tree, as we should not mess with a user-configured external ccache directory this destructively. Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
* build: drop clang wrapperKevin Darbyshire-Bryant2021-01-051-9/+1
| | | | | | | clang's gcc emulation does the right thing with -print-file-name now, drop the wrapper Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
* build: replace which with Bash command built-inPetr Štetiar2021-01-042-3/+3
| | | | | | | | | | | | | | | | | | | | | | | `which` utility is not shipped by default for example on recent Arch Linux and then any steps relying on its presence fails, like for example following Python3 prereq build check: $ python3 --version Python 3.9.1 $ make /bin/sh: line 1: which: command not found /bin/sh: line 1: which: command not found /bin/sh: line 1: which: command not found ... Checking 'python3'... failed. ... Fix this by switching to Bash builtin `command` which should provide same functionality. Fixes: FS#3525 Signed-off-by: Petr Štetiar <ynezz@true.cz>
* build: drop ccache variables from specific targetsSven Wegener2021-01-012-6/+0
| | | | | | | With commit 2ca084cc ("build: improve ccache support") these variables are being set globally and we don't need them for specific targets. Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
* kernel-build: fix STRIP_KERNEL_EXPORTS for 64-bit kernelsRui Salvaterra2021-01-011-1/+1
| | | | | | | | | | | While parsing the nm output, we need to account for the fact that 64-bit kernels have 64-bit wide addresses. While at it, replace the grep | sed combo with a single awk invocation and a stronger regex. Fixes: 2ef0acc5fcda557fa5aaad35d27cb8cf75be96d2 "kernel-build: fix STRIP_KERNEL_EXPORTS for recent kernels" Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
* kernel: bump 5.4 to 5.4.86Adrian Schmutzler2021-01-011-2/+2
| | | | | | | | | | | | | | | | | Removed upstreamed patches: pending-5.4/499-mtd-parser-cmdline-Fix-parsing-of-part-names-with-co.patch Manually merged: pending-5.4/611-netfilter_match_bypass_default_table.patch layerscape/302-dts-0112-arm64-dts-fsl-ls1028a-prepare-dts-for-overlay.patch Build-tested: ipq806x/R7800, bcm27xx/bcm2711, ath79/{generic,tiny}, ipq40xx, octeon, ramips/mt7621, realtek, x86/64 Run-tested: ipq806x/R7800, realtek Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Tested-by: John Audia <graysky@archlinux.us> Tested-by: Stijn Segers <foss@volatilesystems.org>
* build/prereq: merge ifndef IB block togetherPaul Spooren2020-12-311-5/+1
| | | | | | | | | Multiple prereq checks are only required within the build system but not for the ImageBuilder. These checks are excluded by using ifndef IB. This commit merges the three ifndef IB blocks together. Signed-off-by: Paul Spooren <mail@aparcar.org>
* kernel: bump 5.4 to 5.4.85John Audia2020-12-221-2/+2
| | | | | | | | | | | | | All modifications made by update_kernel.sh run in a fresh clone without any existing toolchains. Build system: x86_64 Build-tested: ipq806x/R7800, ath79/generic, bcm27xx/bcm2711 Run-tested: ipq806x/R7800 No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us>
* include/cmake.mk: Fix the bug in ccache supportHirokazu MORIKAWA2020-12-211-18/+14
| | | | | | | | | | Fix the bug in ccache support due to this change. https://github.com/openwrt/openwrt/commit/bfc433efd4a0c6875a92981d1bd2a5e3e60c61c6 The new cmake uses this for the wrapper. https://cmake.org/cmake/help/v3.19/prop_tgt/LANG_COMPILER_LAUNCHER.html Signed-off-by: Hirokazu MORIKAWA <morikw2@gmail.com>
* kernel: bump 5.4 to 5.4.83John Audia2020-12-151-2/+2
| | | | | | | | | | | | | | | | | | | Manually merged: layerscape/808-i2c-0011-i2c-imx-support-slave-mode-for-imx-I2C-driver.patch layerscape/808-i2c-0012-i2c-imx-correct-code-of-errata-A-010650-for-layersca.patch Remaining modifications made by update_kernel.sh Build system: x86_64 Build-tested: ipq806x/R7800, ath79/generic, bcm27xx/bcm2711, x86/64 [*], ramips/mt7621 [*], ath79/tiny [*], ipq40xx [*], octeon [*], realtek [*] Run-tested: ipq806x/R7800, ramips/mt7621 [*], octeon [*], realtek [*] No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us> Tested-by: Stijn Segers <foss@volatilesystems.org> [*]
* build/json: add filesystem informationPaul Spooren2020-12-131-0/+1
| | | | | | | | Some images are created using different filesystems, most popular squashfs and ext4. To allow downstream projects to distinguesh between those, add the `filesystem` information to created json files. Signed-off-by: Paul Spooren <mail@aparcar.org>
* kernel: bump 5.4 to 5.4.82John Audia2020-12-091-2/+2
| | | | | | | | | | | | | | | | Removed since included upstream and could be reverse-applied by quilt: backport-5.4/315-v5.10-usbnet-ipeth-fix-connectivity-with-ios-14.patch Remaining modifications made by update_kernel.sh Build system: x86_64 Build-tested: ipq806x/R7800, ath79/generic, bcm27xx/bcm2711 Run-tested: ipq806x/R7800 No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us> Tested-by: Curtis Deptuck <curtdept@me.com> [build/run x86_64]
* build: find_md5 list with mod time and sortedJohn Beckett2020-12-071-1/+1
| | | | | | | | | | | | | | | | | | | | It was observed that the MD5 would not change after source files had been modified, looking deeper into the build process it was discovered that find_md5 build function makes a list of the files being built and then passes the list to a summing utility on stdin. The resultant MD5 is of the file list, not the contents of the files. The MD5 would change if the ordering of the list changed, or items were removed or deleted. The proposed fix is to add the modification time after the filename and then sort the list to prevent find returning files in a different order falsely re-triggering a rebuild. The MD5 will now change when a file is modified or files are added/removed from the list. Using 'T@' to show time in epoch for timezone independent behaviour. Signed-off-by: John Beckett <john.beckett@net2edge.com>