Commit Graph

107 Commits

Author SHA1 Message Date
Michael Heimpold
2cb75cd8b9 build: allow defining license information per binary package
At the moment, license information can only be specified on a
"per source package" level while other metadata fields (e.g. maintainer)
can be given for each binary package. Apply the same logic for license
fields as well. This can be used e.g. in cases where a library is
distributed under some license while related tools are distributed
under a different one.

Signed-off-by: Michael Heimpold <mhei@heimpold.de>
2017-11-25 20:02:04 +01:00
Yousong Zhou
73bc636aba build: ipkg: new field Alternatives
It's a list of specs of the following form seprated by commas to
describe alternatives provided by this package

    <prio>:<path>:<altpath>

<path> will be a symbolic link to <altpath> of the highest <prio>

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
2017-05-02 22:10:51 +08:00
Felix Fietkau
1f22957247 build: clean up redundant touching of the package install info file
Instead of using a separate .clean stamp file, remove the install info
file on compile, then append the install package list afterwards

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-02-26 13:31:44 +01:00
Felix Fietkau
3cd7f43017 build: fix package build after deleting staging dir
Ensure that the <package>.provides files are always created

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-02-09 13:51:40 +01:00
Florian Fainelli
25e2cf392a package-ipkg: Do not fail build without base-files
If the base-files package is not selected, we will fail executing the
very first postinst script:

make[3]: Leaving directory `/local/users/fainelli/openwrt/trunk'
cp -fpR
/local/users/fainelli/openwrt/trunk/build_dir/target-arm_xscale_musl-1.1.15_eabi/root-orion
/local/users/fainelli/openwrt/trunk/build_dir/target-arm_xscale_musl-1.1.15_eabi/root.orig-orion
./usr/lib/opkg/info/busybox.postinst: line 3:
/local/users/fainelli/openwrt/trunk/build_dir/target-arm_xscale_musl-1.1.15_eabi/root-orion/lib/functions.sh:
No such file or directory
./usr/lib/opkg/info/busybox.postinst: line 4: default_postinst: command
not found
postinst script ./usr/lib/opkg/info/busybox.postinst has failed with
exit code 127
make[2]: *** [package/install] Error 1

Check for the existence of lib/functions.sh, and if it does not exist,
just bail out gracefully.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2017-01-24 11:07:45 -08:00
Felix Fietkau
f784b3e195 build: fix regression in handling ABI_VERSION
The code was updated without changing $$@ into the proper target
filename

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-01-21 18:30:51 +01:00
Felix Fietkau
5aa03e16a7 build: disable CONFIG_AUTOREMOVE for packages/tools where QUILT is used
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-01-19 13:30:22 +01:00
Felix Fietkau
87d9e3462d build: stage unstripped packages inside PKG_BUILD_DIR
This makes the build slightly more efficient by avoiding the need to
re-stage packages on every full build run.

It is also necessary for the upcoming CONFIG_AUTOREMOVE feature

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-01-18 23:57:08 +01:00
Felix Fietkau
8aa93dafc8 build: write ABI_VERSION file when staging the package
The make target does not rewrite the file if the contents didn't
change. This causes make to always consider the target old.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-01-18 23:57:08 +01:00
Felix Fietkau
9228d1c066 build: introduce extra targets that contain only proper dependencies
This can be used to check if targets like prepare or compile are up to date

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-01-18 23:57:08 +01:00
Rafał Miłecki
b522292405 base-files: add support for overlaying rootfs content
This adds support for install-overlay define. When used in package it
allows installing files to a special directory that gets copied to the
root when installing it.
It allows overwriting files provided by other packages.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2016-12-20 09:35:36 +01:00
Felix Fietkau
64c386c566 build: remove stale .ipk files if package dir changes
If a package nonshared status is changed, a stale .ipk file might still
be present in the old package directory. Remove the .ipk file from all
package directories when building a new one (or explicitly running
clean)

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-11-08 10:49:51 +01:00
Jo-Philipp Wich
317b3556a4 include: properly update .install stamp files
Right now the $(PKG_INSTALL_STAMP) files are only written if a package is
selected as <*> but never deleted or emptied if the corresponding package
is getting deselected.

For ordinary packages this usually is no problem as the package/install
recipe performs its own check for enabled packages when assembling the
list of install stamp files to consider, but this logic might fail under
certain circumstances for packages providing multiple build variants.

In case of a multi-variant package, the buildroot first checks if any
of the variants is enabled, then resolves all variants of the common
source package and finally processes the corresponding .install stamp
files of all variants, relying on the assumption that only the selected
.install stamp file exists.

When an initially selected variant is getting deselected or changed from
<*> to <m> and another variant is marked as <*> instead, the .install
stamp file of the deselected variant remains unchanged and a second
.install stamp file for the newly selected variant is getting created,
causing the package/install recipe to pick up two .install stamps with
conflicting variants, leading to opkg file clashes.

This issue happens for example if package "ip" is set to <m> and package
"ip-full" to <*> -  the install command will eventually fail with:

     * check_conflicts_for: The following packages conflict with ip:
     * check_conflicts_for: 	ip-full *
     * opkg_install_cmd: Cannot install package ip.

In order to fix the problem, always process the removal requests or the
.install stamp files, even for deselected packages but only write the
package base name into the stamp file if the corresponding package is
marked as builtin.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-11-02 01:01:35 +01:00
Matthias Schiffer
ec041920b7
include/package-ipkg.mk: use TARGET_PATH_PKG in Package/*/install steps
Package/*/install was using a different PATH than all other steps like
Build/Install, which was confusing and easily led to mistakes.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2016-10-06 01:57:39 +02:00
Felix Fietkau
71d533eea9 package-ipkg: do not include feeds.mk at metadata dump time to speed up scanning
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-06-16 11:56:24 +02:00
Matthias Schiffer
3ee6c17cd1
package-ipkg.mk: fix Provides for packages with multiple PROVIDES entries
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2016-06-16 04:15:02 +02:00
Jo-Philipp Wich
d9ad55a609 include: remove unused FeedPackageDir macro arguments
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-04-22 12:02:53 +02:00
Jo-Philipp Wich
5170393f8c include: choose package output directory based on repository info
Use the new repository metadata field to choose the output directory of the
final package archives.

Non-sharable packages will be placed in the per-target package directory
while the rest will be placed in a per-repository sub directory within the
$OUTPUT_DIR/packages/$CPU_TYPE/ prefix.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-04-06 21:55:44 +02:00
Felix Fietkau
e597a4190e package-ipkg.mk: fix typo (patch from #19540)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 45568
2015-04-23 08:27:22 +00:00
Felix Fietkau
d600f9e957 package-ipkg.mk: fix typo
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 45194
2015-03-31 18:31:08 +00:00
Felix Fietkau
765c73f309 package-ipkg.mk: add missing semicolon (#19381)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 45193
2015-03-31 18:29:30 +00:00
Felix Fietkau
640318e620 build: ensure that preinst and postrm are executable (fixes #19372)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 45187
2015-03-31 15:13:27 +00:00
Felix Fietkau
55c5d10ca9 tools: replace ipkg-utils with a reduced ipkg-build variant in scripts/
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 45129
2015-03-29 07:35:26 +00:00
Felix Fietkau
61dd3c8013 build: make postinst/prerm scripts executable
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 45128
2015-03-29 07:35:19 +00:00
John Crispin
4a1d29c5fc Fix possible fail to check for dependencies
Few characters in filenames (a plus sign, a dot) can be interpreted
specially by grep. This can lead to the omission of missing package
dependency. For example if we would have "some.file.so" then it
matches also "some2file.so". -F switch off special meaning
of any character and -x match against whole line.

Signed-off-by: Sławomir Demeszko <s.demeszko@wireless-instruments.com>

SVN-Revision: 44247
2015-02-03 10:11:06 +00:00
Nicolas Thill
d8263c3025 include: don't use extended regex for deps checking
Closes: #18851

Signed-off-by: Nicolas Thill <nico@openwrt.org>

SVN-Revision: 44224
2015-01-31 08:15:46 +00:00
Jo-Philipp Wich
c3787d4c0c include: use anchored patterns for dependency checking
Anchor search pattern when testing dependencies, otherwise the check may
succeed in cases where it shouldn't, e.g. when matching "udp_tunnel.ko"
against "ip6_udp_tunnel.ko".

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

SVN-Revision: 44207
2015-01-29 21:59:17 +00:00
Jo-Philipp Wich
4de4827ddc include: unbreak conffiles, postinst & prerm exports
Changeset r43017 reworked the ipkg control metadata generation but broke
the export of conffiles, postinst and prerm defines.

Change the code back to rely on shvar and shexport, this is required to
properly output multiline contents.

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

SVN-Revision: 43041
2014-10-24 09:24:51 +00:00
Felix Fietkau
949ab1487f build: only print skipped packages that were selected
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 43023
2014-10-22 08:57:50 +00:00
Felix Fietkau
d8278dee4d kernel: use /bin/sh instead of bash to speed up processing of many kmod-* packages
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 43022
2014-10-22 08:57:45 +00:00
Felix Fietkau
d081edf7eb build: clean up and optimize ipkg control generator code
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 43017
2014-10-22 08:57:16 +00:00
Felix Fietkau
edc8e2022a build: optimize printing of disabled packages
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 43015
2014-10-22 08:57:07 +00:00
Felix Fietkau
c6ebce701e build: propagate package conflicts to opkg metadata
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 42771
2014-10-05 16:41:38 +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
John Crispin
d6dbc22bbc ipkg: add a default postinst/prerm script
the postinst script enables/starts the init.d scripts upon package installation
and installs the users required by the package.

the prerm script stops and disables the init.d scripts.

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 42470
2014-09-11 12:27:49 +00:00
John Crispin
285012d897 include: add a meta data field for required system user:group
this is in preparation of having services run as !root with
ACL'ed access to ubus.

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 42469
2014-09-11 12:27:26 +00:00
Jo-Philipp Wich
9aeb0cff11 build: fix removal of old .ipk files with CONFIG_PER_FEED_REPO
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 42090
2014-08-09 13:04:17 +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
28f44a4f91 include: remove SDK exception from package install targets
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 41459
2014-07-02 11:39:28 +00:00
Felix Fietkau
623825103e build: allow packages to declare ABI versions to detect necessary package rebuilds
If a package directly depends on another package that recently changed
its ABI version, it will be cleaned up and rebuilt (assuming quilt is
not used).

This helps with packages that have no stable ABI, e.g. libubox, ubus,
etc.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 39720
2014-02-23 17:32:04 +00:00
Felix Fietkau
f85c00c2df build: remove SourceFile and SourceURL from opkg metadata - they are useless without the corresponding openwrt package directory
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 39038
2013-12-13 10:40:19 +00:00
Jonas Gorski
8e12b39d5d build: print missing dependency error to stderr
Allow to see the actual error even when compiling with V=w/V=1 only.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 37388
2013-07-18 11:29:18 +00:00
Felix Fietkau
5d1c80f002 build: add required exports for dependency tracking
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 37387
2013-07-18 11:18:37 +00:00
Felix Fietkau
6640b83a3e build: add kernel modules to package provides info (along with shared libs)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 37385
2013-07-18 10:47:00 +00:00
Jonas Gorski
a48b04e8dc include/package-ipkg.mk: print warnings/errors to stderr
Makes warnings/errors visible when building with V=w/V=1.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 35715
2013-02-21 11:45:20 +00:00
Felix Fietkau
de707ac97e build: reduce the size of package metadata a bit to keep package list files smaller
SVN-Revision: 34871
2012-12-22 19:56:21 +00:00
Jo-Philipp Wich
d3e90ba7a7 buildroot: isolate the .install stamp files for build variants (#12279)
This fixes missing embedded packages if multiple build variants are selected in
the build config, e.g. missing ppp if CONFIG_PACKAGE_ppp=y and
CONFIG_PACKAGE_ppp-multilink=m .

SVN-Revision: 34106
2012-11-07 16:15:22 +00:00
Hamish Guthrie
81a3d9ba31 licensing: Add licensing metadata to many packages Two new variables are introduces to many packages, namely PKG_LICENSE and PKG_LICENSE_FILES - there may be more than one license applied to packages, and these are listed in the PKG_LICENSE variable and separated by spaces. All relevant license files are also added to the PKG_LICENSE_FILES variable, also space separated.
The licensing metadata is put into the bin/<platform>/packages/Packages file
for later parsing. A script for that is on it's way!

SVN-Revision: 33861
2012-10-19 15:34:28 +00:00
Felix Fietkau
44cd20b802 build: rework the package/install step - collect package install lists during package/compile, then install all packages at once
SVN-Revision: 33631
2012-10-06 16:01:06 +00:00
Jo-Philipp Wich
ec770abd0d package-ipkg.mk: flag packages as "ok" after install
By flagging compile-time-installed packages as "ok", they can be differentiated
from runtime-installed packages on the target later on.

SVN-Revision: 32739
2012-07-15 19:29:43 +00:00