Commit Graph

63 Commits

Author SHA1 Message Date
Paul Spooren
f4798d37f1 imagebuilder: add function to show manifest
Tested with 18.06.0-rc2/ar71xx/generic/tl-wdr4300-v1, image & list

This PR is based on the work of @fewckert[1] with slight improvements.

Add function `manifest` to show the manifest of the produced image,
before actually building it. The manifest contains an orderd list of
package name and version.

This is usefull to check package dependencies but also determine a
unique and reproducible image name before building the package. The
sysupgrade server[2] builds images on request with individual package
selection. To distignish between created images which contain differnt
packages, the EXTRA_IMAGE_NAME is set to a shortend hash of the
manifest's content. So far the image was renamed afterwards as the
manifests content was unknown, however this corrupts the signed
sha256sums. This patch allows a clean solution as to dtermine the
manifest in advance and set the EXTRA_IMAGE_NAME accordingly.

[1]: https://github.com/lede-project/source/pull/1591
[2]: https://github.com/aparcar/attendedsysupgrade-server

Signed-off-by: Paul Spooren <mail@aparcar.org>
(cherry-picked from commit 869b0d11db)
2018-07-30 16:33:57 +02:00
Matthias Schiffer
2fbf669730
imagebuilder: reuse rootfs preparation from rootfs.mk
In addition to removing redundant code, this fixes various issues in
IB-generated images that have been fixed in prepare_rootfs before,
including better handling of CONFIG_CLEAN_IPKG and enabling of initscripts
from FILES.

We also reuse the opkg macro and remove --force-... flags that have been
removed from rootfs.mk as well.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2018-03-07 09:59:08 +01:00
Daniel Golle
d80d1b6c42 imagebuilder: don't rewrite package list output
No longer rewrite opkg list output in package_list function, remove
the awk call in the pipe (which was intended for a single specific
use-case).

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2017-06-17 01:24:43 +02:00
Daniel Golle
1b555e1d2b imagebuilder: clean package_list
commit 19ac879954 (imagebuilder: add package_list function) introduced
a new function 'package_list' to the imagebuilder Makefile.
Unfortunately the package list was poluted by stdout noise of the
Makefile itself as well as opkg. Redirect those outputs to stderr to
make sure that the package_list returned doesn't contain progress
info output but really only packages.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2017-06-17 00:54:46 +02:00
Paul Spooren
19ac879954 imagebuilder: add package_list function
The imagebuilder can now list all available packages by using make
package_list. This is usefull for scripts to retrieve a list of all
packages with versions (and size)

Signed-off-by: Paul Spooren <paul@spooren.de>
[daniel@makrotopia.org: fixed commit message]
2017-06-15 00:36:08 +02:00
Felix Fietkau
9467ce42da build: get rid of host.mk
Defined required host related variables in toplevel.mk instead

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-02-26 13:31:44 +01:00
Jo-Philipp Wich
0d1765b4ba imagebuilder: make submake invocations less verbose
Use silent make invocations for sub-makes like build_image or checksum to
avoid bloating the IB output with non-status info.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2017-02-02 00:13:49 +01:00
Jo-Philipp Wich
6cb8e30837 imagebuilder: properly escape single quotes in device titles
The name "Plat'Home OpenBlocks AX3" causes the imagebuilders "make info"
command to fail with:

    bash: -c: line 0: syntax error near unexpected token `('
    bash: -c: line 0: `echo;  [...]'
    Makefile:99: recipe for target '_call_info' failed

Properly escape single quotes to avoid breaking the echo commands.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2017-01-26 10:16:32 +01:00
Jo-Philipp Wich
27854a0a84 build: add checksum target
Add a new "checksum" make target which generates an sha256sums file over the
image files produced in bin/targets/ and automatically call it during make
world after the package index generation.

The advantage of this new target is that it is guaranteed to run after the
images, the SDK and the ImageBuilder archives have been generated to ensure
that they all end up in the checksum file. Fixes FS#51.

Uses sed to postprocess the OpenSSL digest output into an sha256sum command
compatible format.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-08-01 18:11:21 +02:00
Felix Fietkau
37e82e4e42 build: remove obsolete variables from opkg command
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-07-29 10:18:26 +02:00
Felix Fietkau
8265fdcc4d imagebuilder: strip DEVICE_ prefix from profiles (FS#55)
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-07-21 13:41:20 +02:00
Felix Fietkau
9ae952cf8c build: split scripts/metadata.pl into target-metadata.pl and package-metadata.pl
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-06-07 08:58:40 +02:00
Daniel Dickinson
9fd8e55132 imagebuilder: Fix sorting package list breaks opkg dependency handling for provides
When imagebuild sorts package lists it breaks opkg's ability to realize
that a providers for a Provides has already been installed, when the sort
results in the provider being later in the list of packages that a package
which depends on a Provides (and hence the provider is not yet installed
for opkg to realize the provider was available doesn't not handle the case
of a package that is to be installed satisfying a dependency, only one that
is already installed (or which it schedules to be installed, which in the
absence of an installed provider is whichever provider happens to be the
default)

Signed-off-by: Daniel Dickinson <openwrt@daniel.thecshore.com>
2016-05-18 23:53:01 +02:00
Felix Fietkau
80f4988da3 target/imagebuilder: fix using new device profiles
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-05-13 16:32:36 +02:00
Felix Fietkau
0a0bfc8507 images imagebuilder: Allow to add sanitized extra name
For final output image names allow user to add an
extra string (which is sanitized).  This is particularly
useful with ImageBuilder where you may generate multiple
images from the same base and for the same board,
with different package selections and additional files
(via FILES=).

Signed-off-by: Daniel Dickinson <openwrt@daniel.thecshore.com>

SVN-Revision: 48083
2016-01-03 14:44:56 +00:00
Jo-Philipp Wich
fb3fb9b6c1 imagebuilder: store package lists in cache directory
Force opkg to store the downloaded repository indizes into the cache
directory as well, this way the IB can be used in an offline setting
once all required files have been cached.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 46912
2015-09-14 16:57:03 +00:00
Felix Fietkau
add0c00c96 imagebuilder: run build prereq checks before building image to set up host commands properly
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 46840
2015-09-10 11:06:42 +00:00
John Crispin
096b3759a9 build: Prevent more gzip timestamps
To improve reproducibility, prevent the inclusion of timestamps
in the gzip header.

Signed-off-by: Reiner Herrmann <reiner@reiner-h.de>

SVN-Revision: 46361
2015-07-14 09:57:45 +00:00
Jo-Philipp Wich
11f05afd26 imagebuilder: create cache directory if needed (#18629)
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 45866
2015-06-01 06:15:39 +00:00
Jo-Philipp Wich
6c21bcaa65 IB: use online repositories
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
2015-05-27 11:22:20 +00:00
Jo-Philipp Wich
dffaf94d44 imagebuilder: fail with error if the passed profile name does not exist
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 43916
2015-01-10 18:19:59 +00:00
John Crispin
44249f71a8 postinst trigger: the new postinst trigger broke IB
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 42571
2014-09-16 11:56:19 +00:00
Felix Fietkau
7632358add imagebuilder: remove postinst files before generating image
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 42339
2014-08-31 11:06:31 +00:00
Jo-Philipp Wich
a720dd209f build: introduce per feed repository support
This changeset implements a new menuconfig option to generate separate
repositories for each enabled package feed instead of one monolithic one.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 42002
2014-08-05 11:24:24 +00:00
Jo-Philipp Wich
476ea2bcb4 imagebuilder: use file_copy to deploy files/ in the image generation phase
SVN-Revision: 34439
2012-12-02 12:20:43 +00:00
Jo-Philipp Wich
b73f22de1e imagebuilder: merge r25078 to align files/ handling with current buildroot
SVN-Revision: 34301
2012-11-22 19:46:54 +00:00
Felix Fietkau
7cb42738e6 package/index: filter out the libc package from the index
SVN-Revision: 32187
2012-06-11 01:29:11 +00:00
Felix Fietkau
fab5ee9566 imagebuilder: explicitly install the kernel .ipk before installing anything else, it is no longer part of the package index (fixes #11450)
SVN-Revision: 31711
2012-05-14 14:00:01 +00:00
Felix Fietkau
34ffb526a2 build: rework verbosity level selection
V=99 and V=1 are now deprecated in favor of a new verbosity class system,
though the old flags are still supported.
You can set the V variable on the command line (or OPENWRT_VERBOSE in the
environment) to one or more of the following characters:

- s: stdout+stderr (equal to the old V=99)
- c: commands (for build systems that suppress commands by default, e.g. kbuild)
- w: warnings/errors only (equal to the old V=1)

SVN-Revision: 31484
2012-04-26 17:53:56 +00:00
Gabor Juhos
faf17f197f ImageBuilder: respect the PROFILE parameter
Based on a patch from #10766

SVN-Revision: 29877
2012-01-24 09:47:20 +00:00
Jo-Philipp Wich
1e24383ae6 Various enhancements from Manuel Munz <freifunk@somakoma.de> - don't regenerate Package index unless the packagedir changes - remove opkg lists from rootfs, saves > 1MB uncompressed - don't direct errors on index creation into packagelist
SVN-Revision: 28205
2011-09-09 17:25:20 +00:00
Felix Fietkau
e5e17a1ce8 imagebuilder: clean opkg files if requested (patch from #9866)
SVN-Revision: 27872
2011-08-01 23:58:11 +00:00
Jo-Philipp Wich
c5a65a0373 Send ipkg-make-index.sh output to stdout
The "Generating index for package" created by ipkg-make-index only
clutter stderr and serve to push previous warnings/errors off-screen.
Instead, send to stdout.

Note:  This would send incorrect invocation messages to stdout as well.
If this is a concern, perhaps we could send them to FD 3, then send 3 to
2...

Signed-off-by: Kevin Locke <klocke@digitalenginesoftware.com>

SVN-Revision: 25678
2011-02-23 22:59:57 +00:00
Jo-Philipp Wich
d45c310c34 allow overriding BIN_DIR (#7412)
SVN-Revision: 23643
2010-10-26 14:15:52 +00:00
Jo-Philipp Wich
ea5904ff93 - sync with host opkg changes - get rid of autogenerated opkg.conf - utilize dl/ as package cache, useful for remote downloads
SVN-Revision: 23039
2010-09-12 22:04:09 +00:00
Jo-Philipp Wich
699876fa6b - add a helper script to generate opkg.conf, attempt to detect package 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
2010-09-08 00:36:35 +00:00
Jo-Philipp Wich
2c59d54a43 use --force-run-hooks for host opkg install
SVN-Revision: 22973
2010-09-07 21:22:07 +00:00
Jo-Philipp Wich
9d74fc3eb3 use opkg/host for package installation - speeds up rebuild operations - aligns generated package list format with the one created by opkg on the target - fixes broken dependency handling in imagebuilder
SVN-Revision: 22949
2010-09-06 02:15:46 +00:00
Jo-Philipp Wich
e47a8a001c revert r22372 and r22405, dependency on host libtool causes problems
SVN-Revision: 22406
2010-07-28 02:18:16 +00:00
Jo-Philipp Wich
8c1d9afc40 use host opkg for installing packages in buildroot and ImageBuilder
SVN-Revision: 22372
2010-07-23 19:49:19 +00:00
Jo-Philipp Wich
cdd44e7984 - correctly copy .config when scripts/env is used in the buildroot - prevent user provides PACKAGES from overriding per-profile defaults
SVN-Revision: 21213
2010-04-27 22:16:40 +00:00
Gabor Juhos
3ba43e6528 imagebuilder: add REVISION variable (closes #6795)
SVN-Revision: 20064
2010-03-08 17:00:46 +00:00
Jo-Philipp Wich
9b4005c58c fix custom package selection
SVN-Revision: 19623
2010-02-13 01:56:48 +00:00
Felix Fietkau
991a35c6a6 imagebuilder: accept empty profile names, some targets do not define profiles (thx, patrick)
SVN-Revision: 18117
2009-10-22 01:35:32 +00:00
Florian Fainelli
b1f1f7c5a9 remove board name hack (#5823)
SVN-Revision: 17652
2009-09-20 16:06:53 +00:00
Andy Boyett
9756b46d1a remove legacy 2.4-specific behavior, fixes IB on brcm-2.4
SVN-Revision: 16654
2009-07-02 07:24:56 +00:00
Andy Boyett
b728796706 fix profile package selection, packages from last parsed profile were accidentally installed
SVN-Revision: 16653
2009-07-02 07:24:50 +00:00
Nicolas Thill
3f8ac1680c fix initscripts activation (closes: #4037, #4745)
SVN-Revision: 15320
2009-04-21 11:20:25 +00:00
Nicolas Thill
be1a9ff41d fix ImageBuilder (closes: #3863)
SVN-Revision: 12370
2008-08-22 13:45:54 +00:00
Andy Boyett
6b045c7dc6 Generate gzipped package lists - Can be used by changing the src line in /etc/ipkg.conf to src/gz - Cannot be used by busybox ipkg
SVN-Revision: 11981
2008-07-29 03:36:11 +00:00