openwrt-mirror/include
Michael Pratt fdfb848402
prereq-build: allow host command symlinks to update
This makes the prereq stage update the symlinks
installed into staging_dir/host/bin
by rearrainging the way they are verified.

Before, seeing or installing a symlink would result in
a successful exit code, and not installing a symlink
would result is a failed exit code. However,
that is not able to account for the difference
between existing good and bad links, or whether
the link would be the same if it was reinstalled,
because the check can match the program to a different path.

Instead, let a success exit code represent
identifying an existing symlink as exactly the same
as what would be installed if it did not exist,
and let a fail exit code represent
needing to install the symlink
or not having a match to the check criteria.

The failing exit code is caught by a new second attempt
for all of the check-* targets which will then indicate
to the user that there was an update by having a success
exit code when the check is run again and the link is the same.

When there is nothing to update, the checks will run only once.

This relies on the ls command to be POSIX-conformant with long format:
"path/to/link -> target/of/link"

Also, make sure the symlink is executable, not just a file,
and the directory only needs to be created once.

Fixes: #12610
Signed-off-by: Michael Pratt <mcpratt@pm.me>
(cherry picked from commit f75204036c)
2023-05-21 19:57:00 +02:00
..
site Revert "build: use config.site generated by autoconf-lean, drop hardcoded sitefiles" 2021-03-02 11:35:45 +00:00
autotools.mk autotools: add list of fake paths to tools 2023-05-04 06:07:26 +02:00
bpf.mk bpf: ignore missing LLVM bins on package for non compile steps 2023-01-19 00:29:09 +01:00
cmake.mk treewide: drop use of which 2022-01-17 09:14:26 +01:00
debug.mk build: use SPDX license tags 2021-02-05 14:54:47 +01:00
depends.mk build: make find_md5 reproducible with AUTOREMOVE 2022-09-30 22:26:51 +02:00
device_table.txt image: ensure that /dev/console exist in rootfs images 2013-08-27 12:02:58 +00:00
download.mk download: create immutable subversion checkout archive 2023-05-18 16:17:52 +02:00
feeds.mk build: ensure that dash isn't prepended twice to abi version suffix 2021-06-15 09:58:33 +02:00
hardened-ld-pie.specs build: add hardened builds with PIE (ASLR) support 2018-01-27 16:46:45 +01:00
hardening.mk build: use SPDX license tags 2021-02-05 14:54:47 +01:00
host-build.mk build: disable automake dependency tracking 2023-03-13 22:53:41 +01:00
image-commands.mk build: Allow specifying uImage time 2023-05-20 21:29:25 +02:00
image.mk build: Allow specifying uImage time 2023-05-20 21:29:25 +02:00
kernel-5.15 kernel: bump 5.15 to 5.15.112 2023-05-18 18:22:27 +02:00
kernel-build.mk build: make find_md5 reproducible with AUTOREMOVE 2022-09-30 22:26:51 +02:00
kernel-defaults.mk build: revert 54070a1 (all kernels are >= 5.10) 2023-05-21 14:25:52 +02:00
kernel-version.mk kernel: split kernel version to dedicated files 2022-01-13 23:46:39 +00:00
kernel.mk kernel: Make KERNEL_MAKEOPTS recursively expanded 2022-12-17 20:12:31 +01:00
logo.png include: update logo with better kerning 2021-01-18 09:31:39 -10:00
logo.svg include: update logo with better kerning 2021-01-18 09:31:39 -10:00
meson.mk tools/meson: update to 0.61.4 2022-04-09 15:56:04 +02:00
netfilter.mk netfilter: add kmod-nf-conntrack 2023-02-18 17:12:30 +01:00
nls.mk nls.mk: fixup cmake packages 2022-11-27 00:52:06 +01:00
openssl-module.mk openssl: add legacy provider 2023-04-05 08:24:49 -03:00
package-bin.mk build: allow package to be built for all variants 2021-11-15 00:38:46 +01:00
package-defaults.mk build: disable automake dependency tracking 2023-03-13 22:53:41 +01:00
package-dumpinfo.mk build: drop ABI version from metadata 2021-02-14 19:41:52 +01:00
package-ipkg.mk tools: build bash on macOS and use it for ipkg-build 2022-01-27 13:38:48 +01:00
package-seccomp.mk build: use SPDX license tags 2021-02-05 14:54:47 +01:00
package.mk build: remove backwards compatibility for PKG_USE_MIPS16 2023-05-12 13:06:14 +02:00
prereq-build.mk prereq-build: add check for true and false 2023-05-04 06:07:23 +02:00
prereq.mk prereq-build: allow host command symlinks to update 2023-05-21 19:57:00 +02:00
quilt.mk quilt.mk: fix typo in the Host section 2022-03-19 16:13:58 +01:00
rootfs.mk build: reduce cleanup binary calls in rootfs.mk 2020-12-05 22:07:00 -10:00
scan.awk build: propagate override information to .packageinfo 2015-02-09 12:09:31 +00:00
scan.mk treewide: derive host and hostpkg path from STAGING_DIR 2023-01-09 21:33:20 +01:00
shell.sh build: use mkhash to replace various quirky md5sum/openssl calls 2017-01-05 11:09:12 +01:00
subdir.mk build: allow package to be built for all variants 2021-11-15 00:38:46 +01:00
target.mk treewide: replace libustream-wolfssl with -mbedtls 2023-02-04 02:35:03 +01:00
toolchain-build.mk toolchain: fix dangling symlink to self in FixupLibdir 2022-07-01 19:17:36 +02:00
toplevel.mk treewide: derive host and hostpkg path from STAGING_DIR 2023-01-09 21:33:20 +01:00
trusted-firmware-a.mk trusted-firmware-a.mk: fix build with binutils 2.39+ 2023-01-21 11:55:23 +01:00
u-boot.mk u-boot.mk: add LOCALVERSION (explicitly specify OpenWrt build) 2022-02-28 23:54:52 +01:00
uclibc++.mk uclibc++: remove 2021-10-24 18:20:50 +02:00
unpack.mk include: use libdeflate's gzip to decompress 2023-01-17 21:40:18 +01:00
verbose.mk verbose.mk: print ERROR messages in non-verbose 2022-02-28 23:52:13 +01:00
version.mk OpenWrt v23.05: set branch defaults 2023-05-21 15:30:04 +02:00