aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
Commit message (Collapse)AuthorAgeFilesLines
* scripts/dl_github_archieve.py: fix generating unreproducible tarChristian Marangi2023-01-121-1/+1
| | | | | | | | | | | | | | | | Allign dl_github_archieve.py to 8252511dc0b5a71e9e64b96f233a27ad73e28b7f change. On supported system the sigid bit is applied to files and tar archieve that on tar creation. This cause unreproducible tar for these system and these bit should be dropped to produce reproducible tar. Add the missing option following the command options used in other scripts. Fixes: 75ab064d2b38 ("build: download code from github using archive API") Suggested-by: Eneas U de Queiroz <cotequeiroz@gmail.com> Tested-by: Robert Marko <robimarko@gmail.com> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit 5f1758ef14575df4e86896526b1c2035c231899e)
* scripts: ext-toolchain: add support for muslChristian Marangi2022-12-041-2/+12
| | | | | | | | | Openwrt now supports only glibc and musl. Add support for musl and rework the libc check to handle the new config flags and correctly compile package basend on that. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit 7be01fe13b4517e5edb8a4818f437d60144cdcb4)
* scripts: ext-toolchain: add support for info.mk in probe_ccChristian Marangi2022-12-041-0/+7
| | | | | | | | Openwrt generate info.mk that contains the libc type. For probe_cc check if the file exist and parse directly it for LIBC type. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit 75311977f5ff64b491cb57ac713d75e0e410d786)
* scripts: ext-toolchain: actually probe libc type on config generationChristian Marangi2022-12-041-0/+1
| | | | | | | | | Currently we never call probe_cc before config generation, this cause the script to never actually detect the correct libc type. Call probe_cc before config generation to correctl set the .config file. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit ddeabc75ebe3151ff7da302cb1aae702b3ad7eba)
* scripts: ext-toolchain: add option to overwrite configChristian Marangi2022-12-041-4/+18
| | | | | | | | | It can be useful to overwrite an already generated config. Option are simply added at the end of the config and make defconfig will overwrite the relevant option with the new one. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit f4dd18ca39c42a324e34633c8ee553717531bc3b)
* scripts: ext-toolchain: fix wrong prefix in print_config generationChristian Marangi2022-12-041-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The parsed prefix in print_config is wrong and this produce broken generated .config that won't work with any external toolchain. Currently the prefix from a CC of 'arm-openwrt-linux-muslgnueabi-gcc-12.1.0' produce a prefix 'arm-openwrt-linux-muslgnueabi-gcc-' This is wrong as the real prefix should be 'arm-openwrt-linux-muslgnueabi-' This is probably caused by a change in how the toolchain is now handled that now append also the gcc version. Probably in ancient days the version wasn't part of the name and the prefix generation stripped the '-gcc' instead of the gcc version. Fix this and correctly strip the gcc version and the gcc suffix to correctly call toolchain bins. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit 53c293262fce844c8291ab82e6726a8489d3c57b)
* scripts: fix various typosJosh Soref2022-12-049-14/+14
| | | | | | | | | | | This only affects typos in comments or user-facing output. Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> [only picks changes to scripts, drop "commandline" replacement, fix case for "arbitrary", improve commit message] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> (cherry picked from commit 08622de7d66eb90038de54f34ab2fe2308424fd0) Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* scripts/ext-tools: introduce new script to install prebuilt toolsChristian Marangi2022-12-041-0/+98
| | | | | | | | | | | | | | | | Add a simple script to make it easier to install a prebuilt tools tar. Currently it will be used by our tools container and kernel workflow on github. Simple script that take a tar that contains prebuilt host tools, extract them and refresh the timestamps to skip recompilation of such host tools. By default it refresh timestamps of build_dir/host and staging_dir/host/stamp. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit 5428bdc2dfaa45bc7adc89c3b9224da7d21961d0)
* scripts/download.pl: fix downloads with wgetPetr Štetiar2022-09-211-2/+8
| | | | | | | | | | | | | | | | | | | | | Several users of wget for downloads (curl is not available in the system) have reported broken download functionality: wget --tries=5 --timeout=20 --output-document=- https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.10.142.tar.xz http://: Invalid host name. Thats all happening due to '' was passed as an argument, which got later expanded to http://. In the context of a list constructor '' is not nothing, it is an empty string element. So fix it by using () as it will yield "nothing" and thus not introduce an empty string element. Fixes: #10692 Fixes: 90c6e3aedf16 ("scripts: always check certificates") Signed-off-by: Jo-Philipp Wich <jo@mein.io> [shellwords() -> ()] Signed-off-by: Petr Štetiar <ynezz@true.cz> (cherry picked from commit 50a48faa1b8424e6b4b436b7118fffa2cba14b18)
* scripts/download.pl: silence can't exec curl warningPetr Štetiar2022-09-211-1/+1
| | | | | | | | | | | | When running build in verbose mode `make V=s` we can see a lot of following warnings when curl is not available in the system: Can't exec "curl": No such file or directory at scripts/download.pl line 77. So lets fix it by redirecting of the stderr to null hole. Signed-off-by: Petr Štetiar <ynezz@true.cz> (cherry picked from commit c836ca84e8f641e10a8349a8f9b7432b33d6cec1)
* scripts: always check certificatesJosh Roys2022-09-211-2/+4
| | | | | | | | | | | | | | | | | Remove flags from wget and curl instructing them to ignore bad server certificates. Although other mechanisms can protect against malicious modifications of downloads, other vectors of attack may be available to an adversary. TLS certificate verification can be disabled by turning oof the "Enable TLS certificate verification during package download" option enabled by default in the "Global build settings" in "make menuconfig" Signed-off-by: Josh Roys <roysjosh@gmail.com> [ add additional info on how to disable this option ] Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> Signed-off-by: Petr Štetiar <ynezz@true.cz> [backport] (cherry picked from commit 90c6e3aedf167b0ae1baf376e7800a631681e69a)
* scripts: xxdi.pl: add xxd -i compat modePetr Štetiar2022-09-211-18/+19
| | | | | | | | | | | | So it can serve as a standalone drop in replacement for xxd utility used currently mostly in U-Boot packages with `xxd -i` mode which outputs C include file style, with aim for byte to byte identical output, so the eventual difference in the generated output is easily spottable. Fixes: #10555 Signed-off-by: Petr Štetiar <ynezz@true.cz> Signed-off-by: Jo-Philipp Wich <jo@mein.io> [perl-fu] (cherry picked from commit 06e01e817ec6643a35beb9e6946689e9cc7d020a)
* scripts: xxdi.pl: remove File::Slurp dependencyJo-Philipp Wich2022-09-211-2/+17
| | | | | | | | In order to make it more portable. Signed-off-by: Jo-Philipp Wich <jo@mein.io> Signed-off-by: Petr Štetiar <ynezz@true.cz> (cherry picked from commit 8b278a76d90e3724815a5fde32be59f7796be1d8)
* scripts: add xxdi.plPetr Štetiar2022-09-211-0/+50
| | | | | | | | | | xxdi.pl is a Perl script that implements vim's 'xxd -i' mode so that packages do not have to use all of vim just to get this functionality. References: #10555 Source: https://github.com/gregkh/xxdi/blob/97a6bd5cee05d1b15851981ec38ef5a460ddfcb1/xxdi.pl Signed-off-by: Petr Štetiar <ynezz@true.cz> (cherry picked from commit 2117d04a3aaad3394c0afec799d9c43f8a09c2cf)
* feeds: use git-src-full to allow Git versioningPaul Spooren2022-08-281-2/+2
| | | | | | | | | | | | | | | | Both $(AUTORELEASE) and $(PKG_SRC_VERSION) (from luci.git) use the Git log to determine releases and package timestamps. Feeds are shallow cloned by default, resulting in an incomplete Git log and therefore different local package versions than offered upstream. This commits sets the default feeds to use `src-git-full` to solve that. Add fixes from "2b1d92f: scripts/feeds: silence git warning by selecting pull style" to `src-git-full` Signed-off-by: Paul Spooren <mail@aparcar.org> (cherry picked from commit 7fae1e5677e9bb4979c8d4ac99be4de6955b13d0)
* build,json: fix generation with empty profilesPaul Spooren2021-06-211-1/+1
| | | | | | | | | If the image generation doesn't add any profiles to the output the *profile merge* will fail. To avoid that set an empty profile as fallback. Signed-off-by: Paul Spooren <mail@aparcar.org> (cherry picked from commit fd0d9909bf50f114d5e7f7cedf53e542de878a2c)
* build: preserve profiles.json between buildsMoritz Warning2021-06-211-9/+23
| | | | | | | | | | | | | | Keep other profiles.json content if the data belongs to the current build version. Also useful for the ImageBuilder, which builds for a single model each time. Without this commit the profiles.json would only contain the latest build profile information. Signed-off-by: Moritz Warning <moritzwarning@web.de> [improve commit message] Signed-off-by: Paul Spooren <mail@aparcar.org> (cherry picked from commit a463b96241fbc2d142982387eaed9989e201ac7a)
* build,json: backport default_packages fixesPaul Spooren2021-03-251-3/+3
| | | | | | | | | | | | Remove duplicate packages by running in `target/linux/` rather than `target/linux/<target>/<subtarget>` and sort packages alphabetically. Squash commit of: 7880a64848 build,json: 3rd fixup of default_packages b36068d35d build,json: fixup fixup of arch_packages 1bf2b3fe90 build,json: fixup missing arch_packages Signed-off-by: Paul Spooren <mail@aparcar.org>
* build,json: fix duplicates in default_packagesPaul Spooren2021-03-231-1/+2
| | | | | | | | | | | | | | Calling without the DUMP=1 argument causes the target specific Makefile to be "included" again which adds the target specific packages twice, once on the actual run and once included from `include/target.mk`. This led to duplicate package entries, causing confusion in downstream projects using the generated JSON files. While at it, apply `black` style to Python script. Signed-off-by: Paul Spooren <mail@aparcar.org> (cherry picked from commit 7f4c2b1a4f9216218dced64794318f2197565c85)
* download: remove broken mirrorsDavid Bauer2021-02-241-2/+0
| | | | | | | These mirrors don't exist anymore. Remove them. Signed-off-by: David Bauer <mail@david-bauer.net> (cherry picked from commit f04e0074915f03249cdebb460d4dc92875091c63)
* scripts: getver.sh: fix version based on stable branchBaptiste Jonglez2021-02-211-1/+1
| | | | | | | | | | | | | | | When building from a local branch based off the "openwrt-21.02" branch, version computation is wrong, because the number of local commits is computed against master. As a result, it wrongly counts *all* commits since the beginning of the openwrt-21.02 branch as local commits. The fix is to compare to the openwrt-21.02 branch instead, which gives the expected result. A similar change had been applied to the openwrt-19.07 branch: 891022918d55 ("scripts: getver.sh: fix version based on stable branch") Signed-off-by: Baptiste Jonglez <git@bitsofnetworks.org>
* Mostly revert "build: add support for fixing up library soname"Felix Fietkau2021-02-151-73/+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: drop ABI version from metadataFelix Fietkau2021-02-142-16/+0
| | | | | | | 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-141-0/+73
| | | | | | | | | | 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>
* scripts: fix checkpatch.pl for changed license dirPaul Spooren2021-02-141-1/+1
| | | | | | | As multiple LICENSES are shipped and no longer just LICENSE, modify the OpenWrt tree detection in checkpatch.pl. Signed-off-by: Paul Spooren <mail@aparcar.org>
* treewide: unify OpenWrt hosted source via @OPENWRTPaul Spooren2021-02-051-0/+2
| | | | | | | | | | | 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>
* scripts: sources CDN as fallback in download.plPaul Spooren2021-01-271-1/+1
| | | | | | | | | In case the default sources for a package fail use the CDN rather than our own mirror. In case the CDN fails, fallback to our mirror. Also remove mirror1 which isn't available anymore. Signed-off-by: Paul Spooren <mail@aparcar.org>
* scripts: target-metadata don't add PROFILES twicePaul Spooren2021-01-141-1/+2
| | | | | | | | | | | | | | | Since 4ee3cf2b5a profiles with alternative vendor names may appear multiple times in `tmp/.targetinfo` or `.targetinfo` (for ImageBuilders). The `target-metadata.pl` script adds these profiles then twice to `PROFILE_NAMES` and the ImageBuilder show the profile twice when running `make info`. This patch removes duplicate profile IDs and only adds them once to `.profiles.mk`. Signed-off-by: Paul Spooren <mail@aparcar.org>
* scripts/feed: no warn on toolchain/linux overwritePaul Spooren2021-01-061-1/+3
| | | | | | | | | | | The recent 7f285d "scripts/feeds: warn when skipping core package override" floods SDK output with warning of overwriting "linux" and "toolchain" core packages. This should be ignored as these are not regular packages added via feeds. While at it slightly improve the warning string. Signed-off-by: Paul Spooren <mail@aparcar.org>
* build: drop clang wrapperKevin Darbyshire-Bryant2021-01-051-12/+0
| | | | | | | 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>
* scripts/qemustart: use squashfs instead of ext4Paul Spooren2021-01-011-1/+1
| | | | | | | | | The qemustart script currently picks the ext4 filesystem rather than squashfs, while the latter is default for nearly all OpenWrt targets. Change the default behaviour of qemustart to be in line with the rest. Signed-off-by: Paul Spooren <mail@aparcar.org>
* ipq40xx: add support for Plasma Cloud PA2200Marek Lindner2020-12-221-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Device specifications: * QCA IPQ4019 * 256 MB of RAM * 32 MB of SPI NOR flash (w25q256) - 2x 15 MB available; but one of the 15 MB regions is the recovery image * 2T2R 2.4 GHz - QCA4019 hw1.0 (SoC) - requires special BDF in QCA4019/hw1.0/board-2.bin with bus=ahb,bmi-chip-id=0,bmi-board-id=20,variant=PlasmaCloud-PA2200 * 2T2R 5 GHz (channel 36-64) - QCA9888 hw2.0 (PCI) - requires special BDF in QCA9888/hw2.0/board-2.bin bus=pci,bmi-chip-id=0,bmi-board-id=16,variant=PlasmaCloud-PA2200 * 2T2R 5 GHz (channel 100-165) - QCA4019 hw1.0 (SoC) - requires special BDF in QCA4019/hw1.0/board-2.bin with bus=ahb,bmi-chip-id=0,bmi-board-id=21,variant=PlasmaCloud-PA2200 * GPIO-LEDs for 2.4GHz, 5GHz-SoC and 5GHz-PCIE * GPIO-LEDs for power (orange) and status (blue) * 1x GPIO-button (reset) * TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX) * 2x gigabit ethernet - phy@mdio3: + Label: Ethernet 1 + gmac0 (ethaddr) in original firmware + used as LAN interface - phy@mdio4: + Label: Ethernet 2 + gmac1 (eth1addr) in original firmware + 802.3at POE+ + used as WAN interface * 12V 2A DC Flashing instructions: The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be used to transfer the factory image to the u-boot when the device boots up. Signed-off-by: Marek Lindner <marek.lindner@kaiwoo.ai> [sven@narfation.org: prepare commit message, rebase, use all LEDs, switch to dualboot_datachk upgrade script, use eth1 as designated WAN interface] Signed-off-by: Sven Eckelmann <sven@narfation.org>
* ipq40xx: add support for Plasma Cloud PA1200Marek Lindner2020-12-221-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Device specifications: * QCA IPQ4018 * 256 MB of RAM * 32 MB of SPI NOR flash (w25q256) - 2x 15 MB available; but one of the 15 MB regions is the recovery image * 2T2R 2.4 GHz - QCA4019 hw1.0 (SoC) - requires special BDF in QCA4019/hw1.0/board-2.bin with bus=ahb,bmi-chip-id=0,bmi-board-id=16,variant=PlasmaCloud-PA1200 * 2T2R 5 GHz - QCA4019 hw1.0 (SoC) - requires special BDF in QCA4019/hw1.0/board-2.bin with bus=ahb,bmi-chip-id=0,bmi-board-id=17,variant=PlasmaCloud-PA1200 * 3x GPIO-LEDs for status (cyan, purple, yellow) * 1x GPIO-button (reset) * 1x USB (xHCI) * TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX) * 2x gigabit ethernet - phy@mdio4: + Label: Ethernet 1 + gmac0 (ethaddr) in original firmware + used as LAN interface - phy@mdio3: + Label: Ethernet 2 + gmac1 (eth1addr) in original firmware + 802.3af/at POE(+) + used as WAN interface * 12V/24V 1A DC Flashing instructions: The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be used to transfer the factory image to the u-boot when the device boots up. Signed-off-by: Marek Lindner <marek.lindner@kaiwoo.ai> [sven@narfation.org: prepare commit message, rebase, use all LEDs, switch to dualboot_datachk upgrade script, use eth1 as designated WAN interface] Signed-off-by: Sven Eckelmann <sven@narfation.org>
* ath79: Add support for Plasma Cloud PA300Sven Eckelmann2020-12-221-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Device specifications: * Qualcomm/Atheros QCA9533 v2 * 650/600/217 MHz (CPU/DDR/AHB) * 64 MB of RAM * 16 MB of SPI NOR flash (mx25l12805d) - 2x 7 MB available; but one of the 7 MB regions is the recovery image * 2x 10/100 Mbps Ethernet * 2T2R 2.4 GHz Wi-Fi * multi-color LED (controlled via red/green/blue GPIOs) * 1x GPIO-button (reset) * external h/w watchdog (enabled by default) * TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX) * 2x fast ethernet - eth0 + Label: Ethernet 1 + 24V passive POE (mode B) + used as WAN interface - eth1 + Label: Ethernet 2 + 802.3af POE + builtin switch port 2 + used as LAN interface * 12-24V 1A DC * internal antennas Flashing instructions: The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be used to transfer the factory image to the u-boot when the device boots up. Signed-off-by: Sven Eckelmann <sven@narfation.org>
* images: Fix sysupgrade.tar for devices with NOR flashSven Eckelmann2020-12-221-1/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The NOR flash rootfs images stored in a sysupgrade.tar must end with the JFFS2 marker. Otherwise, devices like OpenMesh A42/A62 are not able to calculate the md5sum of the fixed squashfs part and store it inside the u-boot-env. But the commit ee76bd11bbe7 ("images: fix boot failures on NAND with small sub pages") adds up to 1020 0x00 bytes after the 0xdead0de EOF marker. The calculated md5sum will be wrong due do this change and u-boot will fail to boot the newly flashed device with a message like: Validating MD5Sum of 'vmlinux'... Passed! Validating MD5Sum of 'rootfs'... Failed! 583a1b7b54b8601efa64ade42742459b != 8850ee812dfd7638e94083329d5d2781 Data validation failed! and boot the old image again. Since the original change should not change the behavior of NOR images, just check for the deadc0de marker at the end of the squashfs-jffs2 image do avoid the problematic behavior for these images. Fixes: ee76bd11bbe7 ("images: fix boot failures on NAND with small sub pages") Signed-off-by: Sven Eckelmann <sven@narfation.org>
* scripts/om-fwupgradecfg-gen.sh: Generate checksum over whole squashfsSven Eckelmann2020-12-221-6/+3
| | | | | | | | | | | The rootfs is padded to the full block size by padjffs2 and a 4 byte magic value ("deadc0de") is added to the end. On first boot, the JFFS2 is replacing the "deadc0de" marker when the rootfs_data is initialized. The static part of the rootfs is therefore $rootfs_size - 4 and not $rootfs_size - 262144 - 4. Signed-off-by: Sven Eckelmann <sven@narfation.org>
* scripts/om-fwupgradecfg-gen.sh: Drop block alignment codeSven Eckelmann2020-12-221-5/+1
| | | | | | | The padding and block alignment is handled by the image build script and doesn't need to be duplicated in the fwupgrade.cfg build script. Signed-off-by: Sven Eckelmann <sven@narfation.org>
* scripts: add -N option to mkhash for printing without newlineINAGAKI Hiroshi2020-12-221-7/+13
| | | | | | Added "-N" option, it allow printing hash(es) without newline. Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
* 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>
* scripts/feeds: fix preference of package installKarel Kočí2020-12-091-16/+14
| | | | | | | | | | | | | | The previous behavior prefered same feed for dependent packages as initial package. This caused inconsitency in installation of packages. The difference was if two feeds provide same package (different version) there was different result if you executed install for that specific version compared to install for package depending on it from different feed. This ensures that preferred feed is propagated without change and selected feed is used only really for package it was selected for. Signed-off-by: Karel Kočí <karel.koci@nic.cz>
* scripts/feeds: warn when skipping core package overrideBrian Norris2020-12-091-1/+4
| | | | | | | | | | Otherwise, a n00b like myself can get quite confused when moving a package from core to feeds, for example. (Hint: one *really* needs to clear out the tmp/info/.packageinfo... entries for the stale package, but '-f' works as well.) Signed-off-by: Brian Norris <computersforpeace@gmail.com>
* build: mkhash on FreeBSDPiotr Stefaniak2020-11-271-0/+7
| | | | | | | | Apply patch from https://bugs.openwrt.org/index.php?do=details&task_id=971 in order to make it easier to build OpenWRT on FreeBSD. Signed-off-by: Piotr Stefaniak <pstef@freebsd.org>
* download.pl: properly cleanup intermediate .hash filePetr Štetiar2020-11-271-1/+1
| | | | | | | | | | It seems like after a build the /dl dir seems to now contain a .hash file for each source file due to inproper cleanup so fix it by removing those intermediate files before leaving the download action. Fixes: 4e19cbc55335 ("download: handle possibly invalid local tarballs") Reported-by: Hannu Nyman <hannu.nyman@iki.fi> Signed-off-by: Petr Štetiar <ynezz@true.cz>
* download: handle possibly invalid local tarballsPetr Štetiar2020-11-271-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently it's assumed, that already downloaded tarballs are always fine, so no checksum checking is performed and the tarball is used even if it might be corrupted. From now on, we're going to always check the downloaded tarballs before considering them valid. Steps to reproduce: 1. Remove cached tarball rm dl/libubox-2020-08-06-9e52171d.tar.xz 2. Download valid tarball again make package/libubox/download 3. Invalidate the tarball sed -i 's/PKG_MIRROR_HASH:=../PKG_MIRROR_HASH:=ff/' package/libs/libubox/Makefile 4. Now compile with corrupt tarball source make package/libubox/{clean,compile} Signed-off-by: Petr Štetiar <ynezz@true.cz>
* scripts/feeds: silence git warning by selecting pull styleHannu Nyman2020-11-261-2/+2
| | | | | | | Silence the warning in git 2.27 about undefined fast-forward style in git pull. Define "ff-only" as the style. Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
* scripts: add size_compare.shPaul Spooren2020-11-241-0/+151
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As package size changes are a continuous topic on the mailing list this scripts helps developers to compare their local package modifications against latest upstream. The script downloads the latest package indexes based on env variables or the `.config` file. The script compares the actual installed size (data.tar.gz) or the IPK package size. An example output is found below: ``` user@dawn:~/src/openwrt/openwrt$ ./scripts/size_compare.sh Compare packages of ath79/tiny/mips_24kc: dropbear busybox iw ubus Checking configuration difference % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 554 100 554 0 0 336 0 0:00:01 0:00:01 --:--:-- 336 --- start config diff --- --- /tmp/config.DDjwVh-LOCAL 2020-11-23 09:08:28.913203068 -1000 +++ /tmp/config.DDjwVh-UPSTREAM 2020-11-23 09:08:36.369240887 -1000 @@ -1,5 +1,9 @@ +CONFIG_ALL_KMODS=y +CONFIG_ALL_NONSHARED=y CONFIG_AUTOREBUILD=y +CONFIG_AUTOREMOVE=y --- 8< --- CONFIG_BINARY_FOLDER="" +CONFIG_BUILDBOT=y +CONFIG_TARGET_ALL_PROFILES=y CONFIG_TARGET_ROOTFS_DIR="" CONFIG_USE_SSTRIP=y CONFIG_USE_UCLIBCXX=y --- end config diff --- Checking installed size Fetching latest package indexes... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 80634 100 80634 0 0 33499 0 0:00:02 0:00:02 --:--:-- 33485 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 54082 100 54082 0 0 24252 0 0:00:02 0:00:02 --:--:-- 24252 Comparing package sizes... Change Local Remote Package +271 51386 51115 base-files +123 705241 705118 bnx2-firmware +86 17209 17123 fstools +22 47989 47967 procd +21 208311 208290 busybox +19 67181 67162 netifd ``` I plan to integrate this script into the CI so we have a summary how sizes change over different architectures. Signed-off-by: Paul Spooren <mail@aparcar.org>
* scripts: download.pl: retry download using filenameDavid Bauer2020-11-201-2/+6
| | | | | | | | | | | | | | | | With this commit, the download script will try downloading source files using the filename instead of the url-filename in case the previous download attempt using the url-filename failed. This is required, as the OpenWrt sources mirrors serve files using the filename files might be renamed to after downloading. If the original mirror for a file where url-filename and filename do not match goes down, the download failed prior to this patch. Further improvement can be done by performing this only for the OpenWrt sources mirrors. Signed-off-by: David Bauer <mail@david-bauer.net>
* scripts: add const_structs.checkpatch for checkpatch.plAdrian Schmutzler2020-11-181-0/+68
| | | | | | | | | | | | | | | | | | Kernel has separated the structs that are reported to be const in checkpatch.pl into a file of its own, const_structs.checkpatch. This file has been missing after the recent update of checkpatch.pl, leading to the following message: No structs that should be const will be found - file '/data/openwrt/scripts/const_structs.checkpatch': No such file or directory This commit adds the relevant file from v5.10-rc4. Fixes: 086ee09bbcac ("scripts: Update checkpatch.pl to 2020-06-11") Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* scripts: checkpatch.pl: suppress warnings about MAINTAINERSAdrian Schmutzler2020-11-181-1/+1
| | | | | | | | | | | | | | | | | | | The kernel expects changes to MAINTAINERS for all removed or added files, printing warnings like: WARNING: added, moved or deleted file(s), does MAINTAINERS need updating? #828: deleted file mode 100644 Since this does not apply to "our" files in OpenWrt repo, this warning should be disabled. This can be achieved easiest by setting $reported_maintainer_file to 1. While this is a hack that tricks the script into believing the proper MAINTAINERS changes have been made, it's the easiest solution as it does not require to touch any other code. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* scripts/kconfig.pl: allow regex syntax in filtering out config entriesFelix Fietkau2020-11-131-2/+9
| | | | | | | This will be used to filter out some autogenerated config values from the kernel config files Signed-off-by: Felix Fietkau <nbd@nbd.name>