summaryrefslogtreecommitdiffstats
path: root/scripts
Commit message (Collapse)AuthorAgeFilesLines
* scripts: time.pl: Don't print the time on stderrAlban Bedel2019-07-031-1/+1
| | | | | | | | | Having the build time written on stderr make it appear with V=w although it is not an error or warning. Just write the time on stdout to have it part of the build log like all the rest, but not clutter the output when only warnings and errors should be shown. Signed-off-by: Alban Bedel <albeu@free.fr>
* scripts/feeds: add src-include methodBjørn Mork2019-07-011-11/+26
| | | | | | | | | | | | The src-include method allows recursive inclusion of feeds.conf snippets. This can for example be used for adding static local feeds to feeds.conf.default without ever having to update the local feeds.conf: src-include defaults feeds.conf.default src-link custom /usr/local/src/lede/custom Signed-off-by: Bjørn Mork <bjorn@mork.no>
* metadata: handle ABI version rebuild tracking for transient dependenciesJo-Philipp Wich2019-06-211-0/+12
| | | | | | | | | | | | Extend the packageauxvars database to keep a list of possible package dependencies for each provider, then utilize this information in buildroot to resolve the ABI version dependencies of dependent packages up to five levels deep. This should properly trigger rebuilds for packages indirectly depending on other packages whose ABI_VERSION changed. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* scripts/config: fix *c_shipped build depency trackingJonas Gorski2019-06-201-4/+4
| | | | | | | | | | | | | The Makefile was missing dependencies on *c_shipped, so changes never triggered a rebuild. Add these as optional dependencies so their absence isn't treated as an error. In addition, fix a typo preventing the zconf.lex.o from being removed on clean. Fixes: 9d5510a500a1 ("build: add new menuconfig code based on linux 3.9") Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> Acked-by: Jo-Philipp Wich <jo@mein.io>
* metadata: ensure one dependency provider to be y if a package is yJonas Gorski2019-06-201-2/+2
| | | | | | | | | | | | | | | | | | | | | | When there are multiple packages providing a meta-package, it is possible to to create a config where a package is selected as =y, but all of its dependency providers are just selected as =m. This is due to the selection statement being just config PACKAGE_foo select PACKAGE_bar if !PACKAGE_baz which is already fulfilled by PACKAGE_bar=m. Fix this by properly comparing the selection states: config PACKAGE_foo select PACKAGE_bar if PACKAGE_baz<PACKAGE_foo Also invert the select conditions to improve readability. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> [slightly reword commit message] Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* config: fix relational operators for bool and tristate symbolsNicolas Pitre2019-06-201-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 31847b67bec0 ("kconfig: allow use of relations other than (in)equality") it is possible to use relational operators in Kconfig statements. However, those operators give unexpected results when applied to bool/tristate values: (n < y) = y (correct) (m < y) = y (correct) (n < m) = n (wrong) This happens because relational operators process bool and tristate symbols as strings and m sorts before n. It makes little sense to do a lexicographical compare on bool and tristate values though. Documentation/kbuild/kconfig-language.txt states that expression can have a value of 'n', 'm' or 'y' (or 0, 1, 2 respectively for calculations). Let's make it so for relational comparisons with bool/tristate expressions as well and document them. If at least one symbol is an actual string then the lexicographical compare works just as before. Signed-off-by: Nicolas Pitre <nico@linaro.org> Acked-by: Randy Dunlap <rdunlap@infradead.org> Tested-by: Randy Dunlap <rdunlap@infradead.org> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> [rebased against OpenWrt kconfig, slightly reword commit message] (backported from upstream 9059a3493efea6492451430c7e2fa0af799a2abb) Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* config: regenerate *_shipped sourcesJonas Gorski2019-06-202-243/+302
| | | | | | | | | | | | The pregenerated `zconf.hash.c` and `zconf.lex.c` files have not been kept in sync with their respective `*.y` and `*.l` sources in the past causing our kconfig implementation to not recognize important kconfig grammer elements such as relational `<`, `<=`, `>` and `>=` operators. Fixes: 2d7e602381f3 ("scripts/config: sync with latest linux upstream") Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> [reword commit message] Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* toolchain: Add GCC 9.1.0 releaseJoseph Benden2019-06-161-1/+1
| | | | | | | | | | | | | Most of the patches are copied over from GCC 8.3. The following patches are backported from the GCC 9.X development branch: toolchain/gcc/patches/9.1.0/970-recompute-dom-fast-queries-before-vn.patch toolchain/gcc/patches/9.1.0/975-g++-ICE-with-generic-lambda.patch The specs file changed with gcc 9, now it contains "%@{L*}" instead of "%{L*}" in older GCC versions. Signed-off-by: Joseph Benden <joe@benden.us>
* build: add support to && in DEPENDSEneas U de Queiroz2019-05-311-2/+18
| | | | | | | | | | | | Adds support to && operand in DEPENDS. Also, fixes generation of || dependencies by scripts/package-metadata.pl. The precedence order from higher to lower is && then ||. Use of parentheses to change the order is not supported. As before, they are silently ignored. Use them for readability only. Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [DMARC removal]
* build: fix STAGING_DIR cleaning when filenames contain spacesJeffery To2019-05-171-0/+1
| | | | | | | | | | | | When looping through a package's STAGING_FILES_LIST (a list of file/directory paths delimited by newlines), if the path contains spaces, then the path will be split by the while loops, and the file/directory will not be deleted/removed. This sets the internal field separator to the newline only so that the entire path is considered when deleting/removing. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* build: add a config option for enabling a testing version of the target kernelFelix Fietkau2019-05-112-5/+13
| | | | | | | If the target supports a newer kernel version that is not used by default yet, it can be enabled with this option Signed-off-by: Felix Fietkau <nbd@nbd.name>
* scripts/qemustart: add notes on adding new optionsYousong Zhou2019-04-261-0/+5
| | | | Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
* scripts/qemustart: fix network device emulationYousong Zhou2019-04-261-11/+17
| | | | | | | | We only enabled pcnet driver for malta machine, and x86/legacy target was supposed to only support e1000 model Cc: Petr Štetiar <ynezz@true.cz> Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
* scripts/qemustart: no network by default and enable with -nYousong Zhou2019-04-261-5/+7
| | | | | | | | | | This should make it easier to set up and possibly provide a "work out of the box" experience for most test usage. Typical wan&lan networking setup is only two characters argument away. Cc: Petr Štetiar <ynezz@true.cz> Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com> Acked-by: Hans Dedecker <dedeckeh@gmail.com>
* scripts/qemustart: fix usage with networking supportHans Dedecker2019-04-241-4/+4
| | | | | | | | | | Commit 8bf500eb79 added support for qemu usage without networking support but broke networking support as -n and -z do not work with unquoted argument; fix this by quoting the arguments. Fixes 8bf500eb79 Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
* build: switch default target from ar71xx to ath79Kevin Darbyshire-Bryant2019-04-111-1/+1
| | | | | | | | | | | | | ar71xx is in the process of being deprecated as a target accepting new devices. The replacement target for the same hardware is DTS based ath79. Switch the default build target selection from ar71xx to ath79. This is intended to encourage DTS takeup & support for ath79 and longer term will also aid kernel upstream support. Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
* scripts/qemustart: Allow specifying custom rootfs for maltaPetr Štetiar2019-04-081-0/+11
| | | | | | | | Currently it's not possible to test boot squashfs root images, so this patch now allows this use case as well. Cc: Yousong Zhou <yszhou4tech@gmail.com> Signed-off-by: Petr Štetiar <ynezz@true.cz>
* scripts/qemustart: Allow specifying custom kernel for x86Petr Štetiar2019-04-081-1/+9
| | | | | | | | Currently it's not possible to test boot squashfs root images, so this patch now allows this use case as well. Cc: Yousong Zhou <yszhou4tech@gmail.com> Signed-off-by: Petr Štetiar <ynezz@true.cz>
* scripts/qemustart: Allow usage without networkingPetr Štetiar2019-04-081-10/+31
| | | | | | | | | | | For basic tests it's not necessary to have the networking setup and this allows testing as a normal user as well, without root privileges. So this patch adds `--no-network` long option or `-n` short option, which allows starting QEMU without network. Cc: Yousong Zhou <yszhou4tech@gmail.com> Signed-off-by: Petr Štetiar <ynezz@true.cz>
* IB: fix generating .profile.mk for profiles without metadataDaniel Golle2019-03-271-1/+1
| | | | | | Fixes d6fa04a437 ("IB: include SUPPORTED_DEVICES in 'make info' output") Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* scripts/gen_image_generic.sh: fail on errorsStijn Tintel2019-03-271-1/+1
| | | | | | | | | | | The script always exits with value 0, even if some of the commands fail. This can potentially create broken, unbootable images, e.g. when make_ext4fs fails due to TARGET_KERNEL_PARTSIZE being too small for the kernel. Avoid this by failing the script when any command fails. Acked-by: Jo-Philipp Wich <jo@mein.io> Acked-by: Petr Štetiar <ynezz@true.cz> Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
* IB: include SUPPORTED_DEVICES in 'make info' outputDaniel Golle2019-03-112-0/+5
| | | | Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* ib: display whether profile comes with image metadataDaniel Golle2019-03-062-0/+3
| | | | | | | | Having image metadata (and signature) appended is a condition for semi-automated sysupgrade, hence IB needs to be able to tell which images will end up with metadata. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* scripts: make eva_ramboot.py offset configurableDavid Bauer2019-02-281-11/+19
| | | | | | | | | | | | The current eva_ramboot.py script is currently only compatible with Lantiq based AVM devices. For IPQ40xx devices, the offset needs to be changed. Also an alignment is not necessary here. Adjust the script to be able to pass an optional offset to load the image to. In case no offset is provided, the script behaves exactly as before this commit. Signed-off-by: David Bauer <mail@david-bauer.net>
* build: add helpers for generating QSDK sysupgrade compatible imagesPiotr Dymacz2019-02-251-0/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qualcomm SDK (QSDK) sysupgrade compatible images for IPQ40xx, IPQ806x and IPQ807x use FIT format together with 'dumpimage' tool from U-Boot for verifying and extracting them. Based on 'images' sections names, corresponding mtd partitions are flashed. For example, in case of NOR-only boards, below mapping is used (section name -> mtd name): hlos* -> 0:HLOS rootfs* -> rootfs And for boards with NAND (kernel inside UBI): ubi* -> rootfs Above mappings come from unmodified QSDK sources and might be wrong for boards running custom or modified QSDK-based firmware. Some of vendors adjust them to meet their modified mtd layout or features like recovery or dual-image support. This adds simple script 'mkits-qsdk-ipq-image.sh' (based on 'mkits.sh') for generating FIT images tree source files, compatible with the QSDK sysupgrade format. Resulting images can be used for initial (factory -> OpenWrt) installation and would work both in CLI and GUI. The script is universal in a way it allows to include as many sections as needed. To make use of it, two generic/basic build recipes for NOR and NAND based boards are also included in 'image-commands.mk': Build/qsdk-ipq-factory-nand Build/qsdk-ipq-factory-nor Example usage for board with UBI in NAND: IMAGE/nand-factory.bin := append-ubi | qsdk-ipq-factory-nand Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* scripts/qemustart: allow machine selection with new option --machineYousong Zhou2019-02-221-6/+12
| | | | | | | | | | This can be used to set machine options like highmem=off for running old armvirt/32 kernel lacking LPAE support with QEMU version 3.0 or later [1] Armv7 guest fails to boot with qemu-3.0.0-1, https://bugzilla.redhat.com/show_bug.cgi?id=1633328#c5 Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
* scripts: ipkg-make-index.sh: dereference symbolic linksJo-Philipp Wich2019-01-311-1/+1
| | | | | | | | | | Use `stat -L` instead of `ls -l` to follow symbolic links when obtaining the file size of .ipk archives. Without this change, the size of the symlink, not the size of the target file is encoded in the package index file. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* build: fix STAGING_DIR cleaning for packagesJeffery To2019-01-301-1/+1
| | | | | | | | | | | | | | | | This fixes two issues with cleaning package files from STAGING_DIR: * CleanStaging currently can only remove files and not directories. This changes CleanStaging to use clean-package.sh, which does remove directories. * Because of the way directories are ordered in the staging files list, clean-package.sh currently tries (and fails) to remove parent directories before removing subdirectories. This changes clean-package.sh to process the staging files list in reverse, so that subdirectories are removed first. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* build: add a script for generating Linksys factory imagesOever González2019-01-261-0/+67
| | | | | | | | | | | | | This commit adds the 'Build/linksys-image' rule and the 'linksys-image.sh' script to the build system. This change is needed for generating factory images for the Linksys EA6350v3 device. Without this patch, only valid sysupgrade images can be generated. With this patch, users can flash the device without the need of physical access or disassembly. Signed-off-by: Ryan Pannell <ryan@osukl.com> Signed-off-by: Oever González <notengobattery@gmail.com>
* build: extend ABI_VERSION suffixing to providesJo-Philipp Wich2019-01-241-4/+10
| | | | | | | | | When a library package specifies additional provides, e.g. libncurses which provides libncursesw, we should also append the abi version suffix to each provide, since there may be more than one package providing the virtual library. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* scripts: ipkg-remove: handle existing .ipk files without SourceName fieldJo-Philipp Wich2019-01-211-0/+5
| | | | | | | | | | | | Package archives built before commit e6bcf1e4ac ("build: add ABI_VERSION to binary package names") lack the SourceName control file field which caused ipkg-remove to skip such archives. Add fallback code that matches the files by their basename followed by an underscore, similar to how the old cleanup code worked. Fixes: #2067 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* build: add ABI_VERSION to binary package namesJo-Philipp Wich2019-01-191-0/+15
| | | | | | | | | | | | | | | | | | | | | | Add the ABI_VERSION source makefile variable to the binary package basename and resolve source dependencies on packages with ABI_VERSION set to such expanded names. If for example a package specifies DEPENDS:=libopenssl while the OpenSSL Makefile specifies ABI_VERSION:=1.0.0, the resulting ipk control data dependency will be "Depends: libopenssl1.0.0" and the libopenssl ipk file will be called "libopenssl1.0.0_<version>_<arch>.ipk". The next time a library such as OpenSSL is updated to an incompatible version, the ABI_VERSION shall be changed accordingly to prevent opkg from simply upgrading to an incompatible library without considering the dependencies of already installed packages. Also introduce another "SourceName" control field which is required by the newly introduced "scritps/ipkg-remove" to determine the proper related .ipk files to delete upon buildroot package clean operations. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* build: expose ABI version in .packageauxvarsJo-Philipp Wich2019-01-192-0/+10
| | | | | | | Subdequent commits need this information to resolve the ABI version when computing binary ipk dependencies. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* build: rename .packagesubdirs to .packageauxvarsJo-Philipp Wich2019-01-191-3/+3
| | | | | | | | Subsequent commits will put more auxiliary information into this file, such as the per-package ABI version, so rename the metadata script subcommand and file names accordingly. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* build: Drop user/group ID/name from sysupgrade.tarSven Eckelmann2019-01-021-1/+1
| | | | | | | | | Tar will automatically record the user/group ID and name for files/directories. This reduces the reproducibility of the sysupgrade.tar because most of the people don't use the same username as the OpenWrt buildserver. Signed-off-by: Sven Eckelmann <sven@narfation.org>
* build: Use stable file ordering in sysupgrade.tarSven Eckelmann2019-01-021-1/+1
| | | | | | | | | | | | | The file ordering in the current sysupgrade depends on the order of file in a filesystem. This is often already in a sane (alphabetical order) but this is not always the case. For example, the OpenWrt build servers return a different ordering. This breaks the reproducibility of the sysupgrade tarballs significantly and also resulted in images which cannot be used for upgrades on devices like the OpenMesh A42/A62. Signed-off-by: Sven Eckelmann <sven@narfation.org>
* scripts: rstrip.sh: allow rpath with sole $ORIGIN tokenYorkie Liu2018-12-191-1/+1
| | | | | | | | | | | | | | 2efe776 introduces rpath checks with the commit message: > Remove all rpath entries which do not point to a location below /lib or > /usr/lib and which do not begin with '$ORIGIN'. However the implementation failed to support rpath entries with only the '$ORIGIN' token and no trailing slash, so allow these as well. Signed-off-by: Yorkie Liu <yazhong.liu@rokid.com> [reword commit message] Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* scripts/qemustart: more compact rand_mac()Yousong Zhou2018-12-171-1/+1
| | | | Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
* script: ipkg-build: honour $SOURCE_DATE_EPOCHJo-Philipp Wich2018-11-081-1/+5
| | | | | | | | | | | When the SOURCE_DATE_EPOCH environment variable is set, use it to override the timestamps of .ipk archive contents. This ensures that .ipk archives built in environments without SCM metadata (mainly the SDK) are reproducible between different runs. Ref: https://github.com/openwrt/packages/issues/6954 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* scripts: update config.guess and config.subHauke Mehrtens2018-11-012-1624/+1649
| | | | | | | | | | | | This updates these two files to commit 2fa97a8a0ed3 ("config.guess (amd64:CYGWIN*:*:*, x86_64:CYGWIN*:*:*): Set master") which is the current master of https://git.savannah.gnu.org/gitweb/?p=config.git;a=summary This contains updates for multiple architectures and will unbreak the build on the x32 ABI. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* ar71xx: Skip more hashed blocks for OM2P(-HS) 64k variantSven Eckelmann2018-09-101-1/+1
| | | | | | | | | | | | | | | | | | The OM2P(-HS)v4 got a variant which uses a slightly different flash. The standard versions used a flash with 256KB blocks which is no longer available. The replacement flash uses a flash with 64K blocks. The padding for the image rootfs is already for 64K and 256K and thus can be flashed on the device without any problems. Unfortunately, the bootloader will check $rootfs_size (rounded down to the nearest 64k block) minus 1x 64k. But it is now possible that the new JFFS2 rootfs_data starts even earlier and modifies the checked region. The check will then fail and the backup image (when available) will be booted. Just setting it to the same number of skipped blocks as other 64K models avoids this problem. Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
* scripts/ipkg-build: quash error messages when conffiles.resolved is emptyYousong Zhou2018-09-091-2/+4
| | | | | | | | | | | | | | | When Package/xx/conffiles only contains directories that are empty at package time, conffiles.resolved will be missing and the following error messages will appear in the build log. /home/yousong/git-repo/openwrt/openwrt/scripts/ipkg-build -c -o 0 -g 0 /home/yousong/git-repo/openwrt/openwrt/build_dir/target-mips_24kc_musl/linux-malta_be/openvswitch-2.10.0/ipkg-mips_24kc/openvswitch-common /home/yousong/git-repo/openwrt/openwrt/bin/packages/mips_24kc/packages mv: cannot stat 'CONTROL/conffiles.resolved': No such file or directory chmod: cannot access 'CONTROL/conffiles': No such file or directory It will not break the ipkg-build process. The change is merely cosmetic to not cause confusion when reading logs Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
* scripts/metadata.pm: avoid adding dup names in provides listYousong Zhou2018-09-091-0/+1
| | | | | | | | | | | | The need arises from building Open vSwitch kernel datapath modules, e.g. - kmod-openvswitch from Linux upstream - kmod-openvswitch-intree from openvswitch source code where both provides virtual package "kmod-openvswitch" for userspace packages to select and depend on Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
* build: add support for enabling the rootfs/boot partition size option via ↵Felix Fietkau2018-09-031-0/+2
| | | | | | target feature Signed-off-by: Felix Fietkau <nbd@nbd.name>
* scripts: bundle-libraries: fix logic flawJo-Philipp Wich2018-08-291-7/+6
| | | | | | | | | | | Previous refactoring of the script moved the LDSO detection into a file-not-exists condition, causing onyl the very first executable to get bundled. Solve the problem by unconditionally checking for LDSO again. Fixes: 9030a78a71 ("scripts: bundle-libraries: prevent loading host locales") Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* build: add mkrasimageDavid Bauer2018-08-281-196/+0
| | | | | | | | | | | | | | | The current make-ras.sh image generation script for the ZyXEL NBG6617 has portability issues with bash. Because of this, factory images are currently not built correctly by the OpenWRT buildbots. This commit replaces the make-ras.sh by C-written mkrasimage. The new mkrasimage is also compatible with other ZyXEL devices using the ras image-format. This is not tested with the NBG6616 but it correctly builds the header for ZyXEL factory image. Signed-off-by: David Bauer <mail@david-bauer.net>
* scripts: bundle-libraries: prevent loading host locales (FS#1803)Jo-Philipp Wich2018-08-271-5/+21
| | | | | | | | | | | | | Binary patch the bundled glibc library to inhibit loading of host locale archives in order to avoid triggering internal libc assertions when invoking shipped, bundled executables. The problem has been solved with upstream Glibc commit 0062ace229 ("Gracefully handle incompatible locale data") but we still need to deal with older Glibc binaries for some time to come. Fixes FS#1803 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* scripts: time.pl: avoid hard Time::HiRes dependencyJo-Philipp Wich2018-08-051-4/+27
| | | | | | | Use Time::HiRes when available and fallback to raw syscall interface when not. If that fails too, simply report 0, 0 as real time. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* build: remove GNU time dependencyJo-Philipp Wich2018-08-051-0/+42
| | | | | | | | | | Replace the GNU time program invocation with a simple Perl script reporting the timing values. Since we require Perl anyway for the build system, we can as well use that instead of requiring a random GNU utility rarely installed by default. Fixes: ff6e62b288 ("build: log time taken by each packages/steps") Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* config: Change conf.c remove compiler warningsPaul Schulz2018-07-301-6/+6
| | | | | | | | | | | | Compiler is producing the warning: warning: format not a string literal and no format arguments [-Wformat-security] This patch makes the format a literal string in printf statements. This with: gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3) in Ubuntu 18.04 Signed-off-by: Paul Schulz <paul@mawsonlakes.org>