[Openembedded-architecture] Default opkg solver backend change to libsolv
Alejandro del Castillo
alejandro.delcastillo at ni.com
Mon Jan 30 23:17:34 UTC 2017
Before opkg 0.3.1, dependency solving was performed exclusively by an
internal recursive ad-hoc solver implementation. On version 0.3.1, an
alternative external solver backend was introduced, based on libsolv
[1]. Libsolv is a SAT solver library for package dependencies, faster
and vastly superior than opkg's internal solver. It's already the solver
behind Zypper and DMF.
On the current opkg release (0.3.4), I think the backend has had enough
runtime, and is robust enough to be used as the default on OE. Opkg
bugzilla tickets overwhelmingly are on the internal solver (internalsolv
tag) [2] and we can all benefit from moving away from it.
The only feature missing on the libsolv backend is support for "opkg
list-upgradable". I looked at the OE code and I believe the feature is
not being used. However, if this is a major issue, please speak up, as
there is an in-work changeset that implements support, which I could
make sure is included before the switch (if approved).
The other side-effect would be an increase of the disk footprint, due to
the dependency on libsolv. The increase amounts to < 200K for a few
platforms that I profiled:
x64 171K
qemuarm 141K
qemux86 184K
I want to put this proposal up for comments to see if everyone is OK
with the switch.
[1] https://github.com/openSUSE/libsolv
[2]
https://bugzilla.yoctoproject.org/buglist.cgi?product=opkg&component=opkg&resolution=---&list_id=591616
--
Cheers,
Alejandro
-- >8 --
Subject: [PATCH] opkg: enable libsolv backend by default
The libsolv backend is vastly superior than the currently enabled
internal ad-hoc solver. This change adds a dependency on libsolv, which
has an impact on footprint:
x64 171K
qemuarm 141K
qemux86 184K
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo at ni.com>
---
meta/recipes-devtools/opkg/opkg_0.3.4.bb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/recipes-devtools/opkg/opkg_0.3.4.bb
b/meta/recipes-devtools/opkg/opkg_0.3.4.bb
index 6ac9438..e298185 100644
--- a/meta/recipes-devtools/opkg/opkg_0.3.4.bb
+++ b/meta/recipes-devtools/opkg/opkg_0.3.4.bb
@@ -28,7 +28,7 @@ SYSTEMD_SERVICE_${PN} = "opkg-configure.service"
target_localstatedir := "${localstatedir}"
OPKGLIBDIR = "${target_localstatedir}/lib"
-PACKAGECONFIG ??= ""
+PACKAGECONFIG ??= "libsolv"
PACKAGECONFIG[gpg] = "--enable-gpg,--disable-gpg,gpgme libgpg-error,gnupg"
PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl"
--
2.7.4
More information about the Openembedded-architecture
mailing list