You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openwrt/scripts
Jo-Philipp Wich bf5d32af2a scripts/package-metadata.pl: inhibit compile deps on missing build types
When a package declares a PKG_BUILD_DEPENDENCY or HOST_BUILD_DEPENDENCY on
a not existing build type, the metadata script will emit a reference to an
unresolvable build target in tmp/.packagedeps, causing the make process to
fail hard in a way not catchable by the IGNORE_ERRORS mechanism.

In a situation where a package "test-a" declares a build dependency
"PKG_BUILD_DEPENDS:=test-b/host" while the Makefile of "test-b" does not
implement a HostBuild, make fails with an unrecoverable error in the form:

    make[1]: Entering directory '...'
    make[1]: *** No rule to make target 'package/test-b/host/compile',
                 needed by 'package/test-a/compile'.  Stop.
    make[1]: Leaving directory '...'
    .../toplevel.mk:200: recipe for target 'package/test-a/compile' failed
    make: *** [package/test-a/compile] Error 2

Extend the metadata generation script to catch such unresolved references
and emit a visable warning upon detection.

After this change, the script will emit a warning similar to:

    WARNING: Makefile "package/test-a/Makefile" has a build dependency on
    "test-b/host" but "package/test-b/Makefile" does not implement a
    "host" build type

Fixes a global build cluster outage which occured after the "python-cffi"
feed package removed its HostBuild which the "python-cryptography" package
build-depended on.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
7 years ago
..
config scripts/config: properly handle select on symbols with unmet direct dependencies 8 years ago
flashing build: remove absolute path to perl and replace with /usr/bin/env perl 7 years ago
arm-magic.sh scripts/arm-magic.sh: make the generated kernels also include $IMG_PREFIX 9 years ago
brcmImage.pl scripts: avoid hard-coded paths in scripts 8 years ago
bundle-libraries.sh build: bundle-libraries.sh: do not override argv[0] in inner exec calls 7 years ago
checkpatch.pl build: remove absolute path to perl and replace with /usr/bin/env perl 7 years ago
clang-gcc-wrapper build: fix build on Mac OS X 10.9 11 years ago
clean-package.sh build: clean up stale files from a previous build when installing a package build to the staging dir 11 years ago
cleanfile build: remove absolute path to perl and replace with /usr/bin/env perl 7 years ago
cleanpatch build: remove absolute path to perl and replace with /usr/bin/env perl 7 years ago
combined-ext-image.sh build: use mkhash to replace various quirky md5sum/openssl calls 7 years ago
combined-image.sh scripts: make all scripts executable 7 years ago
config.guess update config.guess & config.sub 9 years ago
config.rpath add config.rpath and link it in autotools.mk if missing, some packages might need it, especially users of lib-link.m4 or iconv.m4 13 years ago
config.sub update config.guess & config.sub 9 years ago
deptest.sh scripts: avoid hard-coded paths in scripts 8 years ago
diffconfig.sh scripts/diffconfig.sh: fix output if TARGET_PER_DEVICE_ROOTFS is set 8 years ago
dl_cleanup.py dl_cleanup: Fix linux blacklist 9 years ago
download.pl scripts/download.pl: Adjust URLs 7 years ago
env env: allow passing a commit message on save 9 years ago
ext-toolchain.sh scripts: Probe external toolchains for libthread-db 7 years ago
feeds scripts/feeds: Reuse TOPDIR if defined in environment 7 years ago
fixup-makefile.pl build: add FIXUP option for make check 8 years ago
gen-dependencies.sh gen-dependencies.sh: fix handling variations in "file" output 7 years ago
gen_image_generic.sh scripts/gen_image_generic.sh: drop NOGRUB variable 7 years ago
get_source_date_epoch.sh scripts: get_source_date_epoch.sh: fix mercurial support, add mtime fallback 7 years ago
getver.sh scripts/getver.sh: append short git hash based on upstream commit 7 years ago
ipkg-build scripts: ipkg-build: do not require git or svn 8 years ago
ipkg-make-index.sh build: use mkhash to replace various quirky md5sum/openssl calls 7 years ago
kconfig.pl treewide: replace nbd@openwrt.org with nbd@nbd.name 8 years ago
make-ipkg-dir.sh branding: add LEDE branding 8 years ago
md5sum improve support for building on mac os x by improving detection of missing components 16 years ago
metadata.pm scripts/package-metadata.pl: parse and validate field Require-User 7 years ago
mkhash.c build: add a small standalone utility for calculating md5/sha256 hash 7 years ago
mkits.sh scripts: avoid hard-coded paths in scripts 8 years ago
om-fwupgradecfg-gen.sh scripts: make all scripts executable 7 years ago
package-metadata.pl scripts/package-metadata.pl: inhibit compile deps on missing build types 7 years ago
pad_image scripts: avoid hard-coded paths in scripts 8 years ago
patch-kernel.sh scripts/patch-kernel.sh: remove -E flag to preserve empty files touched by patches 9 years ago
patch-specs.sh patch-specs.sh: gcc 3.4.6 has an additional "(OpenWrt-2.0)" after the version tag, cope with that 12 years ago
portable_date.sh scripts: fix GNU data invocation 8 years ago
qemustart scripts/qemustart: initial version 7 years ago
redboot-script.pl scripts: avoid hard-coded paths in scripts 8 years ago
relink-lib.sh base-files: relink uclibc and libgcc libraries to remove leftovers of the statically linked initial libgcc saves a few kb and gets rid of unused not exported functions as well should also improve the reliability of mklibs 13 years ago
remote-gdb build: remove libc version suffix from build/staging directories 7 years ago
rstrip.sh rstrip.sh: fix handling variations in "file" output 7 years ago
slugimage.pl use #!/usr/bin/env perl instead of #!/usr/bin/perl in openwrt scripts (fixes #2998) 16 years ago
srecimage.pl treewide: replace jow@openwrt.org with jo@mein.io 8 years ago
strip-kmod.sh scripts/strip-kmod.sh: remove a few extra sections to slightly reduce kernel module size 8 years ago
symlink-tree.sh docs: remove all refrences in Makefiles/scripts 8 years ago
sysupgrade-tar.sh build: rename sysupgrade-nand to sysupgrade-tar 8 years ago
target-metadata.pl scripts: only generate config from feature flag if fully match 7 years ago
timestamp.pl fix timestamp checks for build system paths which have '.svn' in their directory name 14 years ago
ubinize-image.sh scripts/ubinize-image.sh: add support for adding custom partitions 8 years ago