OpenWrt Source Repository
Go to file
Jo-Philipp Wich b616aa6db7 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>
(cherry picked from commit bf5d32af2a)
2017-12-13 16:23:39 +01:00
.github Add Issue submission template (redirect to bugs.lede-project.org) 2016-09-01 09:01:04 -04:00
config build: allow specifying flow-control to grub on serial console 2017-12-13 14:59:27 +01:00
include netfilter: add iptables-mod-rpfilter package 2017-12-13 16:23:38 +01:00
package samba36: Remove legacy options 2017-12-13 16:23:39 +01:00
scripts scripts/package-metadata.pl: inhibit compile deps on missing build types 2017-12-13 16:23:39 +01:00
target imagebuilder: don't rewrite package list output 2017-12-13 16:00:57 +01:00
toolchain build: remove old kernel-headers build directories 2017-12-13 16:00:27 +01:00
tools tar: override symlink permissions 2017-12-13 15:48:33 +01:00
.gitattributes
.gitignore gitignore: add /overlay 2017-01-15 18:16:29 +01:00
BSDmakefile
Config.in
LICENSE
Makefile Makefile: ensure that BIN_DIR exists for diffconfig 2017-01-08 18:50:00 +01:00
README README: Update project README 2016-05-12 03:29:36 +02:00
feeds.conf.default LEDE v17.01.4: revert to branch defaults 2017-10-18 11:54:32 +03:00
rules.mk build: Pass -iremap gcc option as a single argument 2017-12-13 14:24:21 +01:00

README

This is the buildsystem for the LEDE Linux distribution.

Please use "make menuconfig" to choose your preferred
configuration for the toolchain and firmware.

You need to have installed gcc, binutils, bzip2, flex, python, perl, make,
find, grep, diff, unzip, gawk, getopt, subversion, libz-dev and libc headers.

Run "./scripts/feeds update -a" to get all the latest package definitions
defined in feeds.conf / feeds.conf.default respectively
and "./scripts/feeds install -a" to install symlinks of all of them into
package/feeds/.

Use "make menuconfig" to configure your image.

Simply running "make" will build your firmware.
It will download all sources, build the cross-compile toolchain, 
the kernel and all choosen applications.

To build your own firmware you need to have access to a Linux, BSD or MacOSX system
(case-sensitive filesystem required). Cygwin will not be supported because of
the lack of case sensitiveness in the file system.


Sunshine!
	Your LEDE Community
	http://www.lede-project.org