In some cases there is a need for update-alternatives script which gets built within opkg-utils recipe into a standalone package. However, this causes to many unnecessary dependencies, including Python, bc, OpenSSL etc. to be built.
In this commit a standalone lightweight recipe for update-alternatives that shouldn't be dependent on nothing other than bash. https://bugzilla.yoctoproject.org/show_bug.cgi?id=8879 Signed-off-by: Gregor Zatko <[email protected]> --- .../conf/distro/include/default-providers.inc | 6 +-- meta/conf/layer.conf | 3 +- .../packagegroups/packagegroup-self-hosted.bb | 1 + .../opkg-utils/opkg-utils_0.4.2.bb | 25 +--------- .../update-alternatives_0.4.2.bb | 49 +++++++++++++++++++ 5 files changed, 56 insertions(+), 28 deletions(-) create mode 100644 meta/recipes-devtools/update-alternatives/update-alternatives_0.4.2.bb diff --git a/meta/conf/distro/include/default-providers.inc b/meta/conf/distro/include/default-providers.inc index ea88bd4876..035877af59 100644 --- a/meta/conf/distro/include/default-providers.inc +++ b/meta/conf/distro/include/default-providers.inc @@ -10,8 +10,8 @@ PREFERRED_PROVIDER_virtual/nativesdk-libgl ?= "nativesdk-mesa" PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa" PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa" PREFERRED_PROVIDER_virtual/mesa ?= "mesa" -PREFERRED_PROVIDER_virtual/update-alternatives ?= "opkg-utils" -PREFERRED_PROVIDER_virtual/update-alternatives-native ?= "opkg-utils-native" +PREFERRED_PROVIDER_virtual/update-alternatives ?= "update-alternatives" +PREFERRED_PROVIDER_virtual/update-alternatives-native ?= "update-alternatives-native" PREFERRED_PROVIDER_virtual/libx11 ?= "libx11" PREFERRED_PROVIDER_virtual/base-utils ?= "busybox" PREFERRED_PROVIDER_xf86-video-intel ?= "xf86-video-intel" @@ -21,7 +21,7 @@ PREFERRED_PROVIDER_virtual/make-native ?= "make-native" # # Default virtual runtime providers # -VIRTUAL-RUNTIME_update-alternatives ?= "update-alternatives-opkg" +VIRTUAL-RUNTIME_update-alternatives ?= "update-alternatives" VIRTUAL-RUNTIME_apm ?= "apm" VIRTUAL-RUNTIME_alsa-state ?= "alsa-state" VIRTUAL-RUNTIME_getopt ?= "util-linux-getopt" diff --git a/meta/conf/layer.conf b/meta/conf/layer.conf index da93d64e0a..85fb945f11 100644 --- a/meta/conf/layer.conf +++ b/meta/conf/layer.conf @@ -19,7 +19,6 @@ BBLAYERS_LAYERINDEX_NAME_core = "openembedded-core" # Set a variable to get to the top of the metadata location COREBASE = '${@os.path.normpath("${LAYERDIR}/../")}' -# opkg-utils is for update-alternatives :( SIGGEN_EXCLUDERECIPES_ABISAFE += " \ sysvinit-inittab \ busybox-inittab \ @@ -40,7 +39,7 @@ SIGGEN_EXCLUDERECIPES_ABISAFE += " \ shadow \ shadow-sysroot \ base-passwd \ - opkg-utils \ + update-alternatives \ gstreamer1.0-meta-base \ ca-certificates \ shared-mime-info \ diff --git a/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb b/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb index 9a70b189a4..4a494f1578 100644 --- a/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb +++ b/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb @@ -166,6 +166,7 @@ RDEPENDS_packagegroup-self-hosted-extended = "\ tcl \ texinfo \ unzip \ + update-alternatives \ usbutils \ watchdog \ wget \ diff --git a/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.2.bb b/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.2.bb index 9315240190..5ebe3d8e60 100644 --- a/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.2.bb +++ b/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.2.bb @@ -1,13 +1,11 @@ SUMMARY = "Additional utilities for the opkg package manager" -SUMMARY_update-alternatives-opkg = "Utility for managing the alternatives system" SECTION = "base" HOMEPAGE = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils" LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ file://opkg.py;beginline=2;endline=18;md5=ffa11ff3c15eb31c6a7ceaa00cc9f986" -PROVIDES += "${@bb.utils.contains('PACKAGECONFIG', 'update-alternatives', 'virtual/update-alternatives', '', d)}" -SRC_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/${BPN}/snapshot/${BPN}-${PV}.tar.gz \ +SRC_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/${BPN}/snapshot/${BPN}-${PV}.tar.gz \ file://fix-reproducibility.patch \ " UPSTREAM_CHECK_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/refs/" @@ -25,42 +23,23 @@ inherit perlnative PYTHONRDEPS = "python3 python3-shell python3-io python3-math python3-crypt python3-logging python3-fcntl python3-pickle python3-compression python3-stringold" PYTHONRDEPS_class-native = "" -PACKAGECONFIG = "python update-alternatives" +PACKAGECONFIG = "python" PACKAGECONFIG[python] = ",,,${PYTHONRDEPS}" -PACKAGECONFIG[update-alternatives] = ",,," do_install() { oe_runmake PREFIX=${prefix} DESTDIR=${D} install - if ! ${@bb.utils.contains('PACKAGECONFIG', 'update-alternatives', 'true', 'false', d)}; then - rm -f "${D}${bindir}/update-alternatives" - fi } do_install_append_class-target() { if ! ${@bb.utils.contains('PACKAGECONFIG', 'python', 'true', 'false', d)}; then grep -lZ "/usr/bin/env.*python" ${D}${bindir}/* | xargs -0 rm fi - - if [ -e "${D}${bindir}/update-alternatives" ]; then - sed -i ${D}${bindir}/update-alternatives -e 's,/usr/bin,${bindir},g; s,/usr/lib,${nonarch_libdir},g' - fi } # These are empty and will pull python3-dev into images where it wouldn't # have been otherwise, so don't generate them. PACKAGES_remove = "${PN}-dev ${PN}-staticdev" -PACKAGES =+ "update-alternatives-opkg" -FILES_update-alternatives-opkg = "${bindir}/update-alternatives" -RPROVIDES_update-alternatives-opkg = "update-alternatives update-alternatives-cworth" -RREPLACES_update-alternatives-opkg = "update-alternatives-cworth" -RCONFLICTS_update-alternatives-opkg = "update-alternatives-cworth" - -pkg_postrm_update-alternatives-opkg() { - rm -rf $D${nonarch_libdir}/opkg/alternatives - rmdir $D${nonarch_libdir}/opkg || true -} - BBCLASSEXTEND = "native nativesdk" CLEANBROKEN = "1" diff --git a/meta/recipes-devtools/update-alternatives/update-alternatives_0.4.2.bb b/meta/recipes-devtools/update-alternatives/update-alternatives_0.4.2.bb new file mode 100644 index 0000000000..8cbf8c4889 --- /dev/null +++ b/meta/recipes-devtools/update-alternatives/update-alternatives_0.4.2.bb @@ -0,0 +1,49 @@ +SUMMARY = "Utility for managing the alternatives system" +DESCRIPTION = "This program was inspired by the Debian update-alternatives program which is Copyright (C) 1995 Ian Jackson. This version of update-alternatives is command-line compatible with Debian's for a subset of the options, (only --install, --remove, and --help)" +SECTION = "base" +HOMEPAGE = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://opkg.py;beginline=2;endline=18;md5=ffa11ff3c15eb31c6a7ceaa00cc9f986" + +SRC_ARCHIVE_NAME = "opkg-utils" +SRC_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/${SRC_ARCHIVE_NAME}/snapshot/${SRC_ARCHIVE_NAME}-${PV}.tar.gz" +UPSTREAM_CHECK_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/refs/" +S = "${WORKDIR}/${SRC_ARCHIVE_NAME}-${PV}" + +SRC_URI[md5sum] = "cc210650644fcb9bba06ad5ec95a63ec" +SRC_URI[sha256sum] = "5929ad87d541789e0b82d626db01a1201ac48df6f49f2262fcfb86cf815e5d6c" + +TARGET_CC_ARCH += "${LDFLAGS}" + +RDEPENDS_${PN} += "bash" + +do_compile[noexec] = "1" + +do_install() { + + install -D -m 755 ${S}/update-alternatives ${D}${bindir}/update-alternatives +} + +do_install_append_class-target() { + + sed -i ${D}${bindir}/update-alternatives -e 's,/usr/bin,${bindir},g; s,/usr/lib,${nonarch_libdir},g' +} + +FILES_${PN} = "${bindir}/update-alternatives" +RPROVIDES_${PN} = "${PN} update-alternatives-cworth" +RREPLACES_${PN} = "update-alternatives-cworth" +RCONFLICTS_${PN} = "update-alternatives-cworth" + +PROVIDES_class-target += "virtual/update-alternatives" +RPROVIDES_${PN}_class-target += "update-alternatives" +PROVIDES_class-native += "virtual/update-alternatives-native" +RPROVIDES_${PN}_class-native += "update-alternatives-native" + +pkg_postrm_${PN}() { + + rm -rf $D${nonarch_libdir}/opkg/alternatives + rmdir $D${nonarch_libdir}/opkg || true +} + +BBCLASSEXTEND = "native nativesdk" -- 2.26.2
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#139111): https://lists.openembedded.org/g/openembedded-core/message/139111 Mute This Topic: https://lists.openembedded.org/mt/74635039/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
