openwrt/include
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
..
site toolchain: add support of ARC architecture 2015-11-10 12:03:59 +00:00
autotools.mk autotools: use correct version for gettext FIXUP 2016-10-13 20:25:42 +02:00
cmake.mk build: use CXXFLAGS if defined 2016-10-13 17:04:43 +02:00
debug.mk include: remove trailing whitespaces 2015-03-29 07:29:18 +00:00
depends.mk include: remove trailing whitespaces 2015-03-29 07:29:18 +00:00
device_table.txt image: ensure that /dev/console exist in rootfs images 2013-08-27 12:02:58 +00:00
download.mk include/download.mk: Use -7e compression instead of -6 by default 2016-10-05 15:15:19 +02:00
feeds.mk build: move merged package directory from bin/ to staging_dir 2016-08-03 12:22:18 +02:00
hardening.mk hardening: make override variables more intuitive 2015-06-24 10:57:14 +00:00
host-build.mk include/host-build.mk: use STAGING_DIR_HOSTPKG 2016-11-01 12:11:14 +01:00
host.mk include: remove trailing whitespaces 2015-03-29 07:29:18 +00:00
image-commands.mk image: remove padding parameter from append-kernel/append-rootfs 2016-09-13 19:36:41 +02:00
image-legacy.mk image: don't modify file permissions before rootfs generation 2016-09-26 17:57:56 +02:00
image.mk config: ext4: drop option to set maximum number of inodes 2016-10-27 19:24:38 +02:00
kernel-build.mk build: fix regression on running make kernel_menuconfig 2016-10-04 17:51:49 +02:00
kernel-defaults.mk kernel: add STAGING_DIR_HOST/lib to host library search path 2016-09-29 13:35:11 +02:00
kernel-version.mk kernel: update kernel 4.4 to version 4.4.28 2016-10-31 16:33:53 +01:00
kernel.mk kernel: make the kernel build auto-clean the build dir like package builds 2016-08-05 14:17:08 +02:00
netfilter.mk netfilter: fix file conflicts between kmod-ipt- and kmod-nft- packages 2016-09-30 23:32:05 +02:00
nls.mk nls.mk: add -rpath-link when needed for NLS support 2015-09-07 08:03:34 +00:00
package-bin.mk include: remove trailing whitespaces 2015-03-29 07:29:18 +00:00
package-defaults.mk build: copy contents of 'src' folder to build dirs (if present) 2016-10-15 11:36:51 +02:00
package-dumpinfo.mk include: fix nonshared flag handling 2016-04-15 10:26:36 +02:00
package-ipkg.mk include: properly update .install stamp files 2016-11-02 01:01:35 +01:00
package-seccomp.mk include: add a seccomp filter install wrapper 2015-03-26 10:57:56 +00:00
package.mk build: fix cleaning configured stamp file 2016-10-15 11:36:51 +02:00
prereq-build.mk include: prereq-build.mk: improve gcp check 2016-10-11 10:07:25 +02:00
prereq.mk build: do not overwrite already existing host commands 2015-09-16 12:38:16 +00:00
quilt.mk kernel: make the kernel build auto-clean the build dir like package builds 2016-08-05 14:17:08 +02:00
rootfs.mk rootfs: fail on errors in postinst scripts 2016-09-26 17:57:58 +02:00
scan.awk build: propagate override information to .packageinfo 2015-02-09 12:09:31 +00:00
scan.mk build: leaving behind incomplete metadata files on cancelled builds 2016-10-04 16:01:41 +02:00
scons.mk build: use CXXFLAGS if defined 2016-10-13 17:04:43 +02:00
shell.sh include: remove trailing whitespaces 2015-03-29 07:29:18 +00:00
subdir.mk build: add logging for package host builds 2016-01-20 21:31:56 +00:00
target.mk ubox: move logd into ubox package 2016-08-23 12:19:23 +02:00
toolchain-build.mk include: remove trailing whitespaces 2015-03-29 07:29:18 +00:00
toplevel.mk sdk: predefine SOURCE_DATE_EPOCH 2016-10-21 12:43:45 +02:00
uclibc++.mk toolchain: eliminate the INSTALL_LIBSTDCPP config symbol and make c++ support mandatory - fixes recursive config symbol dependency issues 2013-05-09 20:50:49 +00:00
unpack.mk include: remove trailing whitespaces 2015-03-29 07:29:18 +00:00
verbose.mk build: tell users to do non-paralle builds on errors 2015-04-16 12:18:26 +00:00
version.mk sdk: predefine SOURCE_DATE_EPOCH 2016-10-21 12:43:45 +02:00