aboutsummaryrefslogtreecommitdiffstats
path: root/target/imagebuilder/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* imagebuilder: fix broken image generation with external targetsPetr Štetiar2022-03-251-1/+1
| | | | | | | | | | | When using external targets there is a symlink being created for the target under target/linux which then becomes dangling under Image Builder. Fix it by dereferencing the possible symlink. Tested on IB with external target, ipq40xx and mvebu. Signed-off-by: Petr Štetiar <ynezz@true.cz> (cherry picked from commit 621f39d1f438bf95dbae667c575926fa16a6d797)
* imagebuilder: fix local packages/ folderPaul Spooren2021-11-051-1/+5
| | | | | | | | | | | | | | | This commit fixes commit "2999f810ff: build,IB: include kmods only in local builds" which cause the local packages/ folder only to be added for local builds but no longer for ImageBuilder created by the Buildbot. The commits intention was to use remote kmods repositories rather than storing them locally. Accidentally the entire handling of the local `packages/` was removed. Re-add the folder and include a README describing what it can be used for. Signed-off-by: Paul Spooren <mail@aparcar.org>
* imagebuilder: unset BINARY_FOLDER and DOWNLOAD_FOLDER in final archiveSven Roederer2021-05-081-0/+2
| | | | | | | | | | | | | | | | | | | | | Using these config-options to customize the folders used at build-time makes these folder settings appear in generated archive. This causes the imagebuilder to be not portable, as it's going to use the build-time folders on the new systems. Errors look like: mkdir: cannot create directory '/mnt/build': Permission denied Makefile:116: recipe for target '_call_image' failed make[2]: *** [_call_image] Error 1 Makefile:241: recipe for target 'image' failed make[1]: *** [image] Error 2 The build-time settings of these folders are passed into the archives via .config file. The expected behavior is that after unpacking the imagebuilder acts like these settings have their defaults, using intree folders. So unset the build-time settings. Signed-off-by: Sven Roederer <devel-sven@geroedel.de>
* imagebuilder: invoke bundle-libraries.sh w/o buildroot dirs in $PATHJo-Philipp Wich2020-12-291-1/+4
| | | | | | | | | | Invoke bundle-libraries.sh with any buildroot related directory entries removed from $PATH to avoid picking up cross versions of utilities like ldd which will not properly work when used against host executables. This should fix executable bundling for glibc-target imagebuilders. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* imagebuilder: fix partition signatureMatthew Gyurgyik2020-11-241-0/+2
| | | | | | | | | When building images with the imagebuilder, the partition signature never changes. The signature is generated by hashing SOURCE_DATE_EPOCH and LINUX_VERMAGIC which are undefined. Prepopulate these variables, as done by the SDK. Signed-off-by: Matthew Gyurgyik <matthew@gyurgyik.io>
* imagebuilder: add package signature verificationPaul Spooren2020-11-191-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ImageBuilder downloads pre-built packages and adds them to images. This process uses `opkg` which has the capability to verify package list signatures via `usign`, as enabled per default on running OpenWrt devices. Until now this was disabled for ImageBuilders because neither the `opkg` keys nor the `opkg-add` script was present during first packagelist update. To harden the ImageBuilder against *drive-by-download-attacks* both keys and verification script are added to the ImageBuilder allowing `opkg` to verify downloaded package indices. This commit adds `opkg-add` to the ImageBuilder scripts folder. The keys folder is added to ImageBuilder $TOPDIR to have an obvious place for users to store their own keys. The `option check_signature` is appended to the repositories.conf file. All of the above only happens if the Buildbot runs with the SIGNATURE_CHECK option. The keys stored in the ImageBuilder keys/ are the same as included in the openwrt-keyring package. To avoid the chicken-egg problem of downloading and verifying a package, containing signing keys, the keys are added during the ImageBuilder generation. They are same as in shipped images (stored at `/etc/opkg/keys/`). To allow a local package feed in which the user can add additional packages, a local set of `usign` and `ucert` keys is generated, same as building OpenWrt from source. The private key signs the local repository inside the packages/ folder. The local public key is added to the keys/ folder to be considered by `opkg` when updating repositories. This way a local package feed can be modified while requiring `opkg` to check signatures for remote feed, making HTTPS optional. The new option `ADD_LOCAL_KEY` allows to add the local key inside the created images, adding the advantage that sysupgrades can validate the ImageBuilders local key. Signed-off-by: Paul Spooren <mail@aparcar.org>
* imagebuilder: fix sstripPaul Spooren2020-11-091-1/+1
| | | | | | | | Without an absolute path to staging_dir/host/bin/sstrip the Makefile tries to run a host installed version of sstrip, which is likely not available. Signed-off-by: Paul Spooren <mail@aparcar.org>
* build,IB: include kmods only in local buildsPaul Spooren2020-10-301-10/+14
| | | | | | | | | | The buildbots generate a kmod archive which should be used instead of a local copy. This is possible due to the introduction of a kernelversion specific feed. This commit adds the ability of using only signed package feeds. Signed-off-by: Paul Spooren <mail@aparcar.org>
* imagebuilder: add missing libfakeroot filesPaul Spooren2020-09-291-0/+1
| | | | | | | The `libfakeroot` files are currently missing in the ImageBuilder. As `fakeroot` is always built, copy those files unconditionally. Signed-off-by: Paul Spooren <mail@aparcar.org>
* build: SDK/IB reproducible and faster compressionPaul Spooren2020-08-231-1/+4
| | | | | | | | | | Both IB and SDK now use the same logic for packing. This commit add reproducible multithread compression to the SDK and corrects the file mtime for both. Previously all files where just copied over from the build system, generating random mtimes. Signed-off-by: Paul Spooren <mail@aparcar.org>
* target/imagebuilder: use multi-thread support for xz compressionMartin Schiller2019-10-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | This speeds up the packing of the imagebuilder a lot: imagebuilder-T0.tar.xz real 0m25.199s user 2m45.967s sys 0m1.218s imagebuilder-T1.tar.xz real 2m02.543s user 2m02.418s sys 0m1.653s imagebuilder-T2.tar.xz real 1m03.684s user 1m59.931s sys 0m0.587s imagebuilder-T3.tar.xz real 0m48.033s user 2m02.904s sys 0m0.637s imagebuilder-T4.tar.xz real 0m38.963s user 2m15.521s sys 0m0.783s imagebuilder-T5.tar.xz real 0m37.994s user 2m21.461s sys 0m0.919s imagebuilder-T6.tar.xz real 0m39.524s user 2m48.115s sys 0m1.279s imagebuilder-T7.tar.xz real 0m34.061s user 2m45.097s sys 0m1.174s imagebuilder-T8.tar.xz real 0m27.286s user 2m55.449s sys 0m1.329s imagebuilder-T9.tar.xz real 0m25.205s user 2m44.894s sys 0m1.208s To keep the output reproducible in any case, we enforce a minimum amount of 2 threads. Signed-off-by: Martin Schiller <ms@dev.tdt.de> [refactored into reusable NPROC var, more verbose commit message] Signed-off-by: Petr Štetiar <ynezz@true.cz>
* imagebuilder: remove split patch dirs from imagebuilder archiveMatthias Schiffer2018-03-071-2/+3
| | | | Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
* imagebuilder: fix reference to removed VERSION_SED variableJo-Philipp Wich2018-02-021-1/+1
| | | | | Fixes: ff8e9a4ecb ("treewide: combine VERSION_SED and VERSION_SED_SCRIPT") Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* imagebuilder: fix bundling of DTS sourcesJo-Philipp Wich2017-05-141-3/+3
| | | | | | | | | | | | | | | Refer to LINUX_KARCH instead of ARCH when bundling DTS files in the image builder tarball. While we're at it, also dereference symbolic links when copying as some kernel architectures contain symbolic links in their DTS directories. This fixes aarch64 imagebuilders such as brcm2708/bcm2710 ones in particular as the kernel refers to "aarch64" as "arm64" internally. Ref: https://forum.lede-project.org/t/lede-image-builder-problem/3680 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* build: get rid of host.mkFelix Fietkau2017-02-261-1/+0
| | | | | | Defined required host related variables in toplevel.mk instead Signed-off-by: Felix Fietkau <nbd@nbd.name>
* build: introduce STAGING_DIR_IMAGEJo-Philipp Wich2017-01-271-0/+3
| | | | | | | | | | | Introduce a new location STAGING_DIR_IMAGE which is intended to be used by bootloader iamges and similar image-related artifacts. This directory is guaranteed to be persistent across kernel upgrades which might involve a removal of KERNEL_BUILD_DIR and is guranteed to be bundled with the image builder. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* imagebuilder: remove existing debug kernel imageFelix Fietkau2017-01-131-0/+1
| | | | | | Reduces tarball size and improves build time Signed-off-by: Felix Fietkau <nbd@nbd.name>
* imagebuilder: remove existing root filesystem imagesFelix Fietkau2017-01-131-0/+1
| | | | | | Reduces tarball size and improves build time Signed-off-by: Felix Fietkau <nbd@nbd.name>
* build: rework library bundlingJo-Philipp Wich2017-01-101-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rework the bundle-libraries.sh implementation to use a more robust approach for executing host binaries through the shipped ELF loader and libraries. The previous approach relied on symlinks pointing to a wrapper script which caused various issues, especially with multicall binaries as the original argv[0] name was not preserved through the ld.so invocation. Another down- side was the fact that the actual binaries got moved into another directory which caused executables to fail looking up resources with paths relative to the executable location. The new library wrapper implements the following improvements: - Instead of symlinks pointing to a common wrapper, each ELF executable is now replaced by a unqiue shell script which retains the original program name getting called - Instead of letting ld.so invoke the ELF executable directly, launch the final ELF binary through a helper program which fixes up the argv[0] argument for the target program - Support sharing a common location for the bundled libraries instead of having one copy in each directory containing wrapped binaries Finally modify the SDK build to wrap the staging_dir and toolchain binaries which allows to use the SDK on systems with a different glibc version. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* target/imagebuilder: Switch to xz compression instead of bz2Daniel Engberg2016-10-151-4/+4
| | | | | | | Switch to xz compression instead of using bz2. Saves about 20% of total size (ar71xx) Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
* target/{sdk,imagebuild}: Fix for symlink-treeDaniel Dickinson2016-09-301-1/+1
| | | | | | | | | With symlink tree some directories are just symlinked which means IB and SDK end up with a symlink instead of an actual directory; this fixes the missing files by dereferencesing the directories instead of copying the symlinks. Signed-off-by: Daniel Dickinson <lede@cshore.thecshore.com>
* IB/SDK/toolchain: use lower cases filenamesAlexander Couzens2016-06-011-1/+1
| | | | Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
* IB/SDK/toolchain: use VERSION_DIST_SANITIZED instead of VERSION_DISTAlexander Couzens2016-06-011-1/+1
| | | | | | VERSION_DIST can contains spaces which produces problems when used as file name Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
* imagebuilder: use correct package directory when bundling kmods and libcJo-Philipp Wich2016-04-221-2/+2
| | | | | | | | | | | The libc and kernel package files moved since the introduction of shared packages and the changed output directory layout. This causes the generated ImageBuilder archive to lack the necessary "libc" and "kernel" meta packages, leading to opkg install errors later on. Use the FeedPackageDir macro to figure out the proper source directory to use. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* imagebuilder: fix standalone operationJo-Philipp Wich2016-04-131-1/+2
| | | | | | Fix standalone ImageBuilders after the package layout rework. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* targets: Use configured distribution name for SDK, IB, and Toolchain tarball ↵Felix Fietkau2016-01-031-1/+1
| | | | | | | | | | | | names We allow to configure the version distribution name; let's also use it for the tarballs (SDK, ImageBuilder, and SDK). Signed-off-by: Daniel Dickinson <openwrt@daniel.thecshore.com> SVN-Revision: 48081
* feeds: use common macro "FeedSourcesAppend" to populate opkg configurationsJo-Philipp Wich2015-05-281-12/+2
| | | | | | | | | This introduces a common macro to assemble the correct url templates to avoid code duplication and have the feed config handling in a central place. Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 45799
* IB: use online repositoriesJo-Philipp Wich2015-05-271-0/+31
| | | | | | | | | | | | Change the IB packaging to only embed libc, kernel and kmod packages by default and generate repositories.conf to refer to the remote package repositories. Introduce a new config option CONFIG_IB_STANDALONE which restores the old behaviour of building self contained IB archives. Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 45772
* imagebuilder: align filename with SDKJo-Philipp Wich2015-02-071-5/+2
| | | | | | Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 44313
* imagebuilder: don't pregenerate package index, strip host binariesJo-Philipp Wich2015-02-061-2/+2
| | | | | | | | | | | | The package index is generated on first use anyway, therefore it makes no sense to continue shipping it. Also sstrip the bundled host binaries when packing the IB to save some additional space. Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 44293
* imagebuilder: use FreeBSD compatible tar invocationJo-Philipp Wich2015-02-061-1/+1
| | | | | | Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 44288
* build: add version number to filenamesJo-Philipp Wich2015-01-081-1/+1
| | | | | | | | | | | | This commit introduces a new option CONFIG_VERSION_FILENAMES which causes OpenWrt to embed the version number in generated image files, SDK- and ImageBuilder archives. The option is enabled by default if CONFIG_VERSIONOPT is set. Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 43869
* imagebuilder: fix typo that copied grub to the wrong folderJohn Crispin2014-07-241-2/+2
| | | | | | Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 41824
* imagebuilder: copy dts folderJohn Crispin2014-07-211-1/+5
| | | | | | Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 41790
* imagebuilder: x86 fails to build inside the imagebuilderJohn Crispin2014-07-101-1/+4
| | | | | | Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 41580
* target/imagebuilder: add missing package index (fixes #16675)Felix Fietkau2014-06-021-0/+1
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 40968
* imagebuilder: bundle dtc (#12953, #14741)Jo-Philipp Wich2014-05-141-0/+2
| | | | | | Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 40767
* derive system from hostcc to allow building inside a chrootJohn Crispin2012-08-221-2/+2
| | | | SVN-Revision: 33228
* use bundle-libraries.sh to install required host utilities into imagebuilder ↵Jo-Philipp Wich2012-08-151-1/+2
| | | | | | staging tree SVN-Revision: 33196
* add $(SUBTARGET) to the filename if availableJohn Crispin2012-05-301-1/+1
| | | | SVN-Revision: 32007
* don't overwrite version.mk, substitute REVISION insteadJo-Philipp Wich2012-04-171-2/+2
| | | | SVN-Revision: 31327
* populate repositories.conf from version.mkJo-Philipp Wich2012-04-121-1/+2
| | | | SVN-Revision: 31268
* copy kernel .config, needed by mkfs.jffs2 to detect compression capabilitiesJo-Philipp Wich2010-10-261-1/+3
| | | | SVN-Revision: 23639
* - sync with host opkg changes - get rid of autogenerated opkg.conf - utilize ↵Jo-Philipp Wich2010-09-121-1/+1
| | | | | | dl/ as package cache, useful for remote downloads SVN-Revision: 23039
* - add a helper script to generate opkg.conf, attempt to detect package ↵Jo-Philipp Wich2010-09-081-1/+4
| | | | | | architecture from packages/ - fix package defaults when no package override is given, IB previously aggregated the defautls of all profiles - introduce a repositories.conf, allows using remote opkg repositories in imagebuilder SVN-Revision: 22978
* - correctly copy .config when scripts/env is used in the buildroot - prevent ↵Jo-Philipp Wich2010-04-271-1/+2
| | | | | | user provides PACKAGES from overriding per-profile defaults SVN-Revision: 21213
* imagebuilder: various fixes * only copy host tools from ↵Nicolas Thill2010-03-301-7/+5
| | | | | | $(STAGING_DIR_HOST)/bin * remove more target patches, and also target files * combine the 3 find commands into a single one SVN-Revision: 20597
* imagebuilder: add REVISION variable (closes #6795)Gabor Juhos2010-03-081-1/+2
| | | | SVN-Revision: 20064
* get rid of $Id$ - it has never helped us and it has broken too many patches ;)Felix Fietkau2009-04-171-1/+0
| | | | SVN-Revision: 15242
* fix ImageBuilder (closes: #3863)Nicolas Thill2008-08-221-1/+2
| | | | SVN-Revision: 12370