aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* bcm4908: Refresh kernel patchesHauke Mehrtens2022-12-061-24/+2430
| | | | | | | | | | Refresh the kernel patches for this target. No manual changes. Fixes: 45ac906c641 ("bcm4908: update DTS files with the latest changes") Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit b97e5ac785960c13199239dd4821dd53f3801da3) [ dropped 5.15 change not present in 22.03 ] Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* ucode: update to latest Git HEADJo-Philipp Wich2022-12-061-3/+3
| | | | | | | | | | | | | | | | | | 46d93c9 tests: fixup testcases 4c654df types: adjust double printing format eac2add compiler: fix bytecode for logical assignments of properties 3903b18 fs: add `realpath()` function 8366102 math: add isnan() function eef83d3 tests: relax sleep() test 394e901 lib: uc_json(): accept trailing whitespace when parsing strings 1867c8b uloop: terminate parent uloop in task child processes d2cc003 uci: auto-load package in `ctx.foreach()` and `ctx.get_first()` 6c5ee53 compiler: ensure that arrow functions with block bodies return no value fdc9b6a compiler: fix `??=`, `||=` and `&&=` logical assignment semantics 88dcca7 add cmake to install requires for debian Signed-off-by: Jo-Philipp Wich <jo@mein.io> (cherry picked from commit a4d67066e39bd93c7011c8e07b740a326e4e9803)
* mvebu: disable also wrt32x due to broken switchHannu Nyman2022-12-061-1/+0
| | | | | | | | | | | | | | | | | | | | WRT32x has identical hardware as WRT3200ACM, so handle the devices identically. Reference to: * FCC approval: WRT32x is a new name for WRT3200ACM hardware https://fccid.io/Q87-WRT3200ACM#Grant-TCB-5 FCC IDENTIFIER: | Q87-WRT3200ACM C2PC: - Adding a new model name: WRT32X; * Linux switch definition: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.15.y&id=2716777b4f21649fb907b4a4fb96e1c8d0a5ec16 MV88E6176 is mostly compatible to MV88E6352 and is documented in the same functional specification. Add support for it. Fixes: a0bae2fef8 "mvebu: cortexa9: disable devices using broken mv88e6176 switch" Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
* kernel: netconsole: add network console logging supportCatalin Toda2022-12-061-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Accessing the console on many devices is difficult. netconsole eases debugging on devices that crash after the network is up. Reference to the netconsole documentation in upstream Linux: <https://www.kernel.org/doc/html/latest/networking/netconsole.html> | |netconsole=[+][src-port]@[src-ip]/[<dev>],[tgt-port]@<tgt-ip>/[tgt-macaddr] | | where | + if present, enable extended console support | src-port source for UDP packets (defaults to 6665) | src-ip source IP to use (interface address) | dev network interface (eth0) | tgt-port port for logging agent (6666) | tgt-ip IP address for logging agent | tgt-macaddr ethernet MAC address for logging agent (broadcast) OpenWrt specific notes: OpenWrt's device userspace scripts are attaching the network interface (i.e. eth0) to a (virtual) bridge (br-lan) device. This will cause netconsole to report: |network logging stopped on interface eth0 as it is joining a master device (and unfortunately the traffic/logs to stop at this point) As a workaround, the netconsole module can be manually loaded again after the bridge has been setup with: insmod netconsole netconsole=@/br-lan,@192.168.1.x/MA:C... One way of catching errors before the handoff, try to append the /etc/modules.conf file with the following extra line: options netconsole netconsole=@/eth0,@192.168.1.x/MA:C... and install the kmod-netconsole (=y) into the base image. Signed-off-by: Catalin Toda <catalinii@yahoo.com> (Added commit message from PR, added links to documentation) Signed-off-by: Christian Lamparter <chunkeey@gmail.com> (cherry picked from commit 488b25f5ac5028923f67e3beade92dab0c2591f1)
* kernel: kmod-isdn4linux: Remove packageHauke Mehrtens2022-12-061-32/+0
| | | | | | | | The isdn4linux drivers and subsystem was removed in kernel 5.3, remove the kernel package also from OpenWrt. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit db55dea5fc047190af188f07018e99b0c7a4bdde)
* kernel: kmod-w1-slave-ds2760: Remove packageHauke Mehrtens2022-12-061-17/+0
| | | | | | | | | | | The w1_ds2760.ko driver was merged into the ds2760_battery.ko driver. The driver was removed and this package was never build any more. This happened with kernel 4.19. Remove this unused package. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit 5808973d141f488e06efe4749dbf651565fd5510)
* kernel: kmod-rtc-pt7c4338: Remove packageHauke Mehrtens2022-12-061-16/+0
| | | | | | | | | | The rtc-pt7c4338.ko was never upstream under this name, the driver was removed from OpenWrt some years ago, remove the kmod-rtc-pt7c4338 package too. Fixes: 74d00a8c3849 ("kernel: split patches folder up into backport, pending and hack folders") Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit 5ccf4dcf8864c1d940b65067d8c6f7c4e5858ae2)
* mvebu: cortexa9: disable devices using broken mv88e6176 switchPetr Štetiar2022-12-051-0/+4
| | | | | | | | | | | | | | | | | | | Several users have reported, that devices using mv88e6176 switch are seriously broken, basically turning that switch into a hub. Until fixed those devices should be disabled. I've used TOH with "Switch 88E6176" filter, which provided me with the following list of likely affected devices: * Linksys WRT1200AC v1/v2, WRT1900AC v1/v2 * SolidRun ClearFog Pro * Turris Omnia That device list more or less corresponds with the list of devices mentioned in the linked bug reports. References: https://github.com/openwrt/openwrt/issues/11077 Signed-off-by: Petr Štetiar <ynezz@true.cz>
* CI: trigger check also on build and check-kernel-patches workflow changeChristian Marangi2022-12-042-0/+6
| | | | | | | | | | Since kernel and packages workflow now use a shared build workflow, they also need to react on changes on these shared workflow. Fix this and add these shared workflow to the event paths to check. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit 644175c29ca11e0a008c58c82986045f738f5c6f)
* CI: build: fix matching for openwrt release branch for toolchain parsingChristian Marangi2022-12-041-6/+8
| | | | | | | | | | | | | | The current match logic doesn't handle test for push events related to stable release (example openwrt-22.03) but only fork with the related prefix (example openwrt-22.03-fixup) Fix wrong matching and while at it also add extra checks to other matching (check if the branch name actually start with the requested prefix) Fixes: e24a1e6f6d7f ("CI: build: add support for external toolchains from stable branch") Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit e3cf2b84e5f8708ca17d931ef60746516c8a2fe4)
* CI: fix matching for openwrt release branch for container selectionChristian Marangi2022-12-042-8/+12
| | | | | | | | | | | | | | The current match logic doesn't handle test for push events related to stable release (example openwrt-22.03) but only fork with the related prefix (example openwrt-22.03-fixup) Fix wrong matching and while at it also add extra checks to other matching (check if the branch name actually start with the requested prefix) Fixes: abe8a4824210 ("CI: build: add support for per branch tools container") Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit 65c3d19c4b28ccac0d08d916de0ffa4c0e7b3dc2)
* CI: build: add support to fallback to sdk for external toolchainChristian Marangi2022-12-041-8/+33
| | | | | | | | Add support to use sdk as external toolchain if the packaged external toolchain tar is not found on openwrt servers for build shared workflow. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit b59ac2a7d0ff427419e86bd38dea3d8910dd7926)
* CI: build: add support for external toolchains from stable branchChristian Marangi2022-12-041-2/+27
| | | | | | | | | | | | | | Add support to use external toolchains from stable branch if we are testing commit targeting stable openwrt branch in kernel and packages workflow. With pr the target branch is parsed and the right toolchain is used. To use the stable toolchain for local testing the branch needs to have the prefix openwrt-[0-9][0-9].[0-9][0-9]- (example openwrt-21.02-fixup) Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit e24a1e6f6d7f08fb766eb11b8008f8fc5b72d072)
* CI: build: add support for per branch tools containerChristian Marangi2022-12-042-2/+56
| | | | | | | | | | | | Add support in build shared workflow for per branch tools container. With pr the target branch is parsed and the right container is used. To use the stable container for local testing the branch needs to have the prefix openwrt-[0-9][0-9].[0-9][0-9]- (example openwrt-21.02-fixup) Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit abe8a4824210966e0899724bf4561a89216a1e36)
* CI: tools: support per branch tools containerChristian Marangi2022-12-041-1/+26
| | | | | | | | | | | | | | | | | | | | Add support to push per branch container tools. For anything not official stick to latest tag that correspond to test run from master. If we are testing something for one of the openwrt stable branch, parse the branch name or the tag and push dedicated tools containers. To use the stable container for local testing the branch needs to have the prefix openwrt-[0-9][0-9].[0-9][0-9] (example openwrt-21.02-fixup) Any branch that will match this pattern openwrt-[0-9][0-9].[0-9][0-9] will refresh the tools container with the matching tag. (example branch openwrt-22.03 -> tools:openwrt-22.03) (example branch openwrt-22.03-test -> tools:openwrt-22.03) Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit 75550771ae76fbcab4160e10b73287f918727384)
* CI: Build all boards and testing kernelHauke Mehrtens2022-12-042-0/+29
| | | | | | | | | This adds options to build all boards of a selected target and an additional option to build the testing kernel instead of the normal kernel. This can be used by other trigger work flows. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit cf361b85097216538dfac5ad7b22050390b0bc67)
* CI: Allow building with internal toolchainHauke Mehrtens2022-12-041-1/+20
| | | | | | | | | | | | This adds an option to build with internal toolchain. This can be used to build targets which are currently not build by the OpenWrt build bots and which needs their own toolchain build for every build. Building the toolchain takes about 30 minutes compared to using the external toolchain which takes some seconds. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit 08f5283392674fe874c7f441128319263ce0d171)
* CI: Extract the OpenWrt building to own sub workflowHauke Mehrtens2022-12-044-341/+331
| | | | | | | | | Extract the building of OpenWrt into an own workflow which is then triggered by the kernel.yml and packages.yml workflow with different inputs. This allows us to share much of the code of the workflow. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit 7c406a5f0837b0bfc293b723932695176a8ef6fe)
* CI: Simplify if conditionsHauke Mehrtens2022-12-042-2/+2
| | | | | | | There is no need to put a ${{ }} around the if conditions. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit ce343653c2618e1d335662b924c382c0192b7b46)
* CI: packages.yml: Fix usage of pre-build toolsHauke Mehrtens2022-12-041-0/+2
| | | | | | | | | | | Activate CONFIG_AUTOREMOVE to match the settings used to build the pre-build tools. This has to match the pre-build tools to not rebuild them. This prevents the tools being rebuild in packages.yml. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit 6645a019f88e2e6930fe63d1a51046a8e72445a0)
* CI: packages: Add github CI job to build all packagesHauke Mehrtens2022-12-041-0/+151
| | | | | | | | | | | | | | | | | | | | | This will build OpenWrt for MIPS malta BE and x86 64 Bit with all packages and kernel modules activated. It is triggered when something changes in the build system or when a package definition is changed. This task probably needs 90 minutes to execute, but I hope that it will find build problems in pull requests early. This intentionally does not activate the feeds, because building them too would take too long. We only build x86/64 and malta/be to save resources. I would like to detect build problems when a package is changed. We often had build breaks when a package version was increased sometime even in other packages which used it as a dependency. This is based on the .github/workflows/packages.yml workflow. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit b99d3778863d6ba67ee1ebda6fd42413062c6480)
* CI: kernel: fix deprecation of set-outputChristian Marangi2022-12-041-3/+3
| | | | | | | | | | From [0], github deprecated set-output with a better approach of appending variables to $GITHUB_OUTPUT [0] https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit 6d4bcadaa343cb969f370631a5ed5338306c056e)
* ci: kernel: trigger build check on changes in kernel.mk as wellPetr Štetiar2022-12-041-2/+2
| | | | | | | So we can QA more parts of kernel build process. Signed-off-by: Petr Štetiar <ynezz@true.cz> (cherry picked from commit 5e31c82bb506bff9c60c4d01791bea7a29e4a020)
* CI: kernel: check if patch are refreshed for each targetChristian Marangi2022-12-041-0/+71
| | | | | | | Enforce refreshed patch for each target with kernel pr tests. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit 689cfaeb7c37d7199f6e552bf32b0f996ea3040a)
* CI: bump actions/download,upload-artifact action to v3Christian Marangi2022-12-042-7/+7
| | | | | | | | Bump actions/download,upload-artifact action to v3 on every workflow to mute node deprecation warning. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit 77b24012db1d696ca87c03fa1bb8bdf2606119e7)
* CI: bump actions/checkout action to v3Christian Marangi2022-12-043-10/+10
| | | | | | | | Bump actions/checkout action to v3 on every workflow to mute node deprecation warning. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit 87c69d73bb4021bf3a26217b3a652ce262637b1e)
* CI: kernel: generate ccache cache on kernel pushChristian Marangi2022-12-041-0/+6
| | | | | | | | | | | | To actually use ccache cache on kernel test from pr, the kernel workflow has to be run first from a push action. This will permit as a side effect to test merged commits and catch commit that may cause regression in kernel compilation even outside the github system. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit 23e946d1aded1fc21125704c0819146d5772d72b)
* build: harden GitHub workflow permissionsAlex Low2022-12-044-0/+17
| | | | | | | | | | Grant pull-requests write permission to the labeler workflow and read-only to everything else. Signed-off-by: Alex Low <aleksandrosansan@gmail.com> [ wrap to 80 columns and fix wrong author as requested by author itself ] Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit 715259940776843d8799bc39de8eb50eb764189b)
* Revert "build: harden GitHub workflow permissions"Christian Marangi2022-12-043-13/+0
| | | | | | | | | This reverts commit 008e9a335dc32c4662aa56eb67487ddd777f2147. We now have the full CI backported to openwrt-22.03. We need to revert this subset and apply the full backport commit. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: kernel: use ccache to speedup workflowChristian Marangi2022-12-041-0/+17
| | | | | | | | | | | Use ccache to speedup kernel compilation. Ccache dir is cached across each build test. To refresh ccache directory we generate an hash of the kernel include files, that includes the kernel versions of every kernel supported and the kernel compile includes. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit 137ba15e6ef31534a2002a02e69b774232f0b040)
* CI: tools: compile tools with ccache support for tools containerChristian Marangi2022-12-041-1/+2
| | | | | | | | Enable ccache support for tools container, useful to speedup other workflow even more. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit 2781e3839e7f4f6132a2737ee9f988f40fa58d99)
* CI: Add workaround for github uppercase usernamesEdward Chow2022-12-042-2/+16
| | | | | | | | | | | | | The workflow defined in tools.yml and kernel.yml used to fail on forked repositories of contributers whose github username contains uppercase letters. A workaround mentioned in https://github.com/orgs/community/discussions/27086 and https://stackoverflow.com/questions/70326569/ is applied. Signed-off-by: Edward Chow <equu@openmail.cc> (cherry picked from commit c27b43956407f3adc3cc2693792acd6b40a01877)
* CI: use tools:latest container to speedup kernel workflowChristian Marangi2022-12-041-3/+12
| | | | | | | | Use tools:latest container with prebuilt host tools to speedup kernel compilation in kernel workflow. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit 5d09118f8e60fa151e03916f255f5511e197af68)
* CI: create Docker container containing compiled toolsPaul Spooren2022-12-042-0/+67
| | | | | | | | | | | | | | | Currently each Kernel compilation takes about 30 minutes of which 20 minutes are used to compile our tools. While the toolchain is downloaded and instantly ready the tools are missing. This commit starts uploading a Docker container including compiled tools which are ready to use. It is automatically updated whenever any tools are changed. Signed-off-by: Paul Spooren <mail@aparcar.org> Co-Developed-by: Christian Marangi <ansuelsmth@gmail.com> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit 25b65f548dfd93cae87781276bfff9a27cd3ebd4)
* CI: use buildbot container for buildingPaul Spooren2022-12-041-67/+50
| | | | | | | | | | | | | Instead of using a fresh Linux installation which is setup every time use the Buildbot container which is used for our own Buildbot infrastructure, too. While at it also tidy up the workflow to make it more consistent with other workflow. Signed-off-by: Paul Spooren <mail@aparcar.org> Co-Developed-by: Christian Marangi <ansuelsmth@gmail.com> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit 3b23227d43ec720f810e6e261945530f7bc549f0)
* ci: show build failures directly in job log outputPetr Štetiar2022-12-043-5/+20
| | | | | | | | | | | | | | | | | | | | | | Instead of waiting for complete workflow finish, then downloading the artifacts, unpacking them and inspecting them, lets try to make the build failure immediately visible in the log output: ====== Make errors from logs/target/linux/compile.txt ====== * Legacy (non-UHI/non-FIT) Boards * Support MIPS SEAD-3 boards (LEGACY_BOARD_SEAD3) [N/y/?] (NEW) Error in reading or end of file. make[6]: *** [scripts/kconfig/Makefile:77: syncconfig] Error 1 make[5]: *** [Makefile:616: syncconfig] Error 2 make[4]: *** [Makefile:736: include/config/auto.conf.cmd] Error 2 make[3]: *** [Makefile:24: build_dir/target-mipsel-openwrt-linux-musl_musl/linux-ramips_mt7620/linux-5.15.62/.modules] Error 2 make[2]: *** [Makefile:11: compile] Error 2 time: target/linux/compile#30.09#11.30#37.92 Signed-off-by: Petr Štetiar <ynezz@true.cz> (cherry picked from commit f4ca4187cde01a3e412f10657bec0790d3a4cd94)
* ci: move scripts into separate directoryPetr Štetiar2022-12-042-1/+1
| | | | | | | So it's clean and tidy. Signed-off-by: Petr Štetiar <ynezz@true.cz> (cherry picked from commit 63ed733d30153667d7d645ab0ee3f5614089c759)
* CI: package kmods in kernel workflowChristian Marangi2022-12-041-0/+5
| | | | | | | | Actually package kmods in kernel workflow to catch dependency error and other problem that may arise from kmods packaging. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit 0c45db5560df47a0344a21c2443a4f2889c42ac8)
* CI: kernel: Cache external toolchainChristian Marangi2022-12-041-2/+13
| | | | | | | | Cache external toolchain for each target to remove load from openwrt cdn server and make the external toolchain setup quicker. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit f522c27385d6f94e5dbcc3e84968f0e38609ff1c)
* CI: kernel: Build all kernel modulesHauke Mehrtens2022-12-041-0/+3
| | | | | | | | | Activate building all kernel modules. This builds all kernel modules from the core packages and the feeds. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit fed325f4633cb302a5f43c42285e8ab0fd144262)
* CI: kernel: Checkout feeds from githubHauke Mehrtens2022-12-041-0/+24
| | | | | | | | | | | | | | | Instead of cloning the feeds from the default location at git.openwrt.org use the github action to clone them directly from github. We saw some error messages when cloning from git.openwrt.org, probably related to some rate limiting applied. Cloning from github within a github action should work more stable. The "./scripts/feeds update -a" script will use the already checked out feed repositories and not clone them again from git.openwrt.org, but it will also not change the branch name. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit b120e78917099d46a25cc521998b917fdf08e388)
* CI: kernel: Show used OpenWrt configurationHauke Mehrtens2022-12-041-0/+5
| | | | | | | | | Show the configuration used to build OpenWrt before starting the build. This should make it easier for people to reproduce problems when it fails. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit 43afaf6149129a72a8f3e5d3d0d545e54ac81b3a)
* CI: kernel: Use downloads.cdn.openwrt.orgHauke Mehrtens2022-12-041-2/+2
| | | | | | | | Use downloads.cdn.openwrt.org to download the toolchain. This should reduce the load on the servers. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit 7b4daf00766620faac8212b46259064ca6e2c716)
* CI: kernel: Trigger workflow for more directoriesHauke Mehrtens2022-12-041-0/+2
| | | | | | | Trigger the kernel build workflow also for more directories. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit 546822775cd988360964687c0cb430d67bd5c617)
* CI: run inside the buildbot docker containerPaul Spooren2022-12-041-46/+24
| | | | | | | | | Run github actions insider buildbot docker container. Signed-off-by: Paul Spooren <mail@aparcar.org> [ run container under buildbot user ] Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit 8a77adb0485aeb40f6550eb7fcdb461b3eaffe58)
* CI: add Kernel compile testsPaul Spooren2022-12-041-0/+143
| | | | | | | | | | Add Github Actions yaml script to build test kernel PR changes for each target. Signed-off-by: Paul Spooren <mail@aparcar.org> [ add commit description ] Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit c17c931a90e5cb9613875a42ef8eace46be539f3)
* CI: usability improvements for toolsPaul Spooren2022-12-041-3/+13
| | | | | | | | | | * Always store build logs * Store .config as an artifact * Rename job to `tools-{ os }` for log archive without spaces * Run CI job on changes to the CI file itself Signed-off-by: Paul Spooren <mail@aparcar.org> (cherry picked from commit 80f79beb952dcb87d967a130d326cb1dd5a077ed)
* build: handle directory with whitespace in AUTOREMOVE cleanChristian Marangi2022-12-042-4/+4
| | | | | | | | | | Package with whitespace in their build directory are not correctly removed when CONFIG_AUTOREMOVE is enabled. This is caused by xargs that use whitespace as delimiters. To handle this use \0 as the delimiter and set find to use \0 as the delimiter. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit dccee21792b89031bcd801030de403f195d80278)
* 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)
* build: make find_md5 reproducible with AUTOREMOVEChristian Marangi2022-12-044-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | While experimenting with the AUTOREMOVE option in search of a way to use prebuilt host tools in different buildroot, it was discovered that the md5 generated by find_md5 in depends.mk is not reproducible. Currently the hash is generated by the path of the file in addition to the file mod time. Out of confusion, probably, there was an idea that such command was used on the package build_dir. Reality is that this command is run on the package files. (Makefile, patches, src) This is problematic because the package Makefile (for example) change at each git clone and base the hash on the Makefile mtime doesn't really reflect if the Makefile actually changes across a buildroot or not. A better approach is to generate an hash of each file and then generate an hash on the sort hash list. This way we remove the problem of git clone setting a wrong mtime while keeping the integrity of checking if a file changed for the package as any change will result in a different hash. Introduce a new kind of find_md5 function, find_md5_reproducible that apply this new logic and limit it only with AUTOREMOVE option set to prevent any kind of slowdown due to additional hash generation. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> (cherry picked from commit 53a08e37437972ba0a8fbf953a93a70a6b784ef4)