#21344: PROVIDES doesn't work for opkg for ImageBuilder
------------------------+--------------------------------
Reporter: openwrt@… | Owner: developers
Type: defect | Status: new
Priority: normal | Milestone:
Component: packages | Version: Chaos Calmer 15.05
Resolution: | Keywords:
------------------------+--------------------------------
Comment (by openwrt@…):
Ok, the problem is not actually with opkg per se (whose code is not so bad
once you buckle down and read it), but with the ImageBuilder makefile
destroying the order of install.
That is, for a PROVIDES to not install the last found provider, another
provider must already be installed (e.g. be earlier in the opkg command
line). The recent changes created for the purpose of reproducible builds
broke that. Specifically on line 111 of target/imagebuild/files/Makefile,
there is:
BUILD_PACKAGES:=$(sort $(DEFAULT_PACKAGES) $(USER_PACKAGES)
$($(USER_PROFILE)_PACKAGES) kernel)
In order to allow the user to specify a different provider than the one
that opkg will select by default, it is necessary to preserve the order of
user supplied packages, for example by doing:
BUILD_PACKAGES:=$(USER_PACKAGES) $(sort $(DEFAULT_PACKAGES) $(foreach
profile,$(PROFILES_BUILD),$($(profile)_PACKAGES)) kernel)
Since it is quite easy for the user to ensure they always supply the
packages in the same order, if the user cares about reproducible builds
they can still make sure that they get them.
Also, it seems that creating a package that DEPENDS on a non-default
provider first (and it can't be select because that will produce a
recursive dependency warning) does NOT work, I suspect because in that
case the non-default provider is not already installed before the package
that depends on a PROVIDES and opkg only detects already installed
providers as satistfying the provides, not to be installed packages.
--
Ticket URL: <https://dev.openwrt.org/ticket/21344#comment:2>
OpenWrt <http://openwrt.org>
Opensource Wireless Router Technology
_______________________________________________
openwrt-tickets mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-tickets