From fae7b0ddba4836d7b1b1d642bd4514ceab50ca09 Mon Sep 17 00:00:00 2001 From: Alex Stewart Date: Wed, 16 Dec 2020 14:00:56 -0600 Subject: opkg: upgrade to version 0.4.4 Include an upstream patch for 0.4.4 which fixes a test framework error that occurs on host systems with symlinked /tmp directories (like OE). (From OE-Core rev: 8064abb6664e16c6e0c63df3a466661f9b5b0d10) Signed-off-by: Alex Stewart Signed-off-by: Richard Purdie --- ...et-the-OS-negotiate-relative-package-dirs.patch | 43 +++++++++++++ meta/recipes-devtools/opkg/opkg_0.4.3.bb | 74 --------------------- meta/recipes-devtools/opkg/opkg_0.4.4.bb | 75 ++++++++++++++++++++++ 3 files changed, 118 insertions(+), 74 deletions(-) create mode 100644 meta/recipes-devtools/opkg/opkg/0001-tests-let-the-OS-negotiate-relative-package-dirs.patch delete mode 100644 meta/recipes-devtools/opkg/opkg_0.4.3.bb create mode 100644 meta/recipes-devtools/opkg/opkg_0.4.4.bb diff --git a/meta/recipes-devtools/opkg/opkg/0001-tests-let-the-OS-negotiate-relative-package-dirs.patch b/meta/recipes-devtools/opkg/opkg/0001-tests-let-the-OS-negotiate-relative-package-dirs.patch new file mode 100644 index 0000000000..33b7280e5a --- /dev/null +++ b/meta/recipes-devtools/opkg/opkg/0001-tests-let-the-OS-negotiate-relative-package-dirs.patch @@ -0,0 +1,43 @@ +From 4acda6d01c5abd33f1a1a3275fd695363f59473f Mon Sep 17 00:00:00 2001 +From: Alex Stewart +Date: Tue, 15 Dec 2020 15:17:54 -0600 +Subject: [opkg][opkg-0.4.4 PATCH] tests: let the OS negotiate relative package + dirs + +In cases where a regression test requires that a package be installed to +a subdirectory in the test feed, the opk.py module will attempt to +resolve the subdirectory and rebase it to the root of the test feed. + +This is unnecessary, since all operations which make use of the +subdirectory path do so from the perspective of the test feed already. +Further, the rebase implementation breaks in cases where the test feed +is beyond a symlink. + +Remove the resolve-and-rebase logic, and allow the OS to negotiate the +relative path. + +Upstream-Status: Submitted [https://groups.google.com/g/opkg-devel/c/dE1o7_OVQSY] + +Signed-off-by: Alex Stewart +--- + tests/opk.py | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/tests/opk.py b/tests/opk.py +index 692339567f72441766c8e658edc5bdf6a339f77d..711abacaeb328283e31524f6a49305fc7d39696a 100644 +--- a/tests/opk.py ++++ b/tests/opk.py +@@ -58,9 +58,7 @@ class Opk: + if 'Version' not in control.keys(): + control['Version'] = '1.0' + if subdirectory is not None: +- subdir = Path(subdirectory).resolve() +- opkdir = Path(cfg.opkdir) +- self._relative_dir = subdir.relative_to(opkdir) ++ self._relative_dir = Path(subdirectory) + else: + self._relative_dir = None + self.control = control +-- +2.29.2 + diff --git a/meta/recipes-devtools/opkg/opkg_0.4.3.bb b/meta/recipes-devtools/opkg/opkg_0.4.3.bb deleted file mode 100644 index 46b7aa2523..0000000000 --- a/meta/recipes-devtools/opkg/opkg_0.4.3.bb +++ /dev/null @@ -1,74 +0,0 @@ -SUMMARY = "Open Package Manager" -SUMMARY_libopkg = "Open Package Manager library" -SECTION = "base" -HOMEPAGE = "http://code.google.com/p/opkg/" -BUGTRACKER = "http://code.google.com/p/opkg/issues/list" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ - file://src/opkg.c;beginline=4;endline=18;md5=d6200b0f2b41dee278aa5fad333eecae" - -DEPENDS = "libarchive" - -PE = "1" - -SRC_URI = "http://downloads.yoctoproject.org/releases/${BPN}/${BPN}-${PV}.tar.gz \ - file://opkg.conf \ - file://0001-opkg_conf-create-opkg.lock-in-run-instead-of-var-run.patch \ - file://run-ptest \ -" - -SRC_URI[md5sum] = "86ec5eee9362aca0990994a402e077e9" -SRC_URI[sha256sum] = "dda452854bc0cd1334f7ba18a66003d1c12a98600c894111b56919b1ea434718" - -# This needs to be before ptest inherit, otherwise all ptest files end packaged -# in libopkg package if OPKGLIBDIR == libdir, because default -# PTEST_PATH ?= "${libdir}/${BPN}/ptest" -PACKAGES =+ "libopkg" - -inherit autotools pkgconfig ptest - -target_localstatedir := "${localstatedir}" -OPKGLIBDIR ??= "${target_localstatedir}/lib" - -PACKAGECONFIG ??= "libsolv" - -PACKAGECONFIG[gpg] = "--enable-gpg,--disable-gpg,\ - gnupg gpgme libgpg-error,\ - ${@ "gnupg" if ("native" in d.getVar("PN")) else "gnupg-gpg"}\ - " -PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl" -PACKAGECONFIG[ssl-curl] = "--enable-ssl-curl,--disable-ssl-curl,curl openssl" -PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" -PACKAGECONFIG[sha256] = "--enable-sha256,--disable-sha256" -PACKAGECONFIG[libsolv] = "--with-libsolv,--without-libsolv,libsolv" - -EXTRA_OECONF += " --disable-pathfinder" -EXTRA_OECONF_class-native = "--localstatedir=/${@os.path.relpath('${localstatedir}', '${STAGING_DIR_NATIVE}')} --sysconfdir=/${@os.path.relpath('${sysconfdir}', '${STAGING_DIR_NATIVE}')}" - -do_install_append () { - install -d ${D}${sysconfdir}/opkg - install -m 0644 ${WORKDIR}/opkg.conf ${D}${sysconfdir}/opkg/opkg.conf - echo "option lists_dir ${OPKGLIBDIR}/opkg/lists" >>${D}${sysconfdir}/opkg/opkg.conf - - # We need to create the lock directory - install -d ${D}${OPKGLIBDIR}/opkg -} - -do_install_ptest () { - sed -i -e '/@echo $^/d' ${D}${PTEST_PATH}/tests/Makefile - sed -i -e '/@PYTHONPATH=. $(PYTHON) $^/a\\t@if [ "$$?" != "0" ];then echo "FAIL:"$^;else echo "PASS:"$^;fi' ${D}${PTEST_PATH}/tests/Makefile -} - -RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} opkg-arch-config libarchive" -RDEPENDS_${PN}_class-native = "" -RDEPENDS_${PN}_class-nativesdk = "" -RDEPENDS_${PN}-ptest += "make binutils python3-core python3-compression" -RREPLACES_${PN} = "opkg-nogpg opkg-collateral" -RCONFLICTS_${PN} = "opkg-collateral" -RPROVIDES_${PN} = "opkg-collateral" - -FILES_libopkg = "${libdir}/*.so.* ${OPKGLIBDIR}/opkg/" - -BBCLASSEXTEND = "native nativesdk" - -CONFFILES_${PN} = "${sysconfdir}/opkg/opkg.conf" diff --git a/meta/recipes-devtools/opkg/opkg_0.4.4.bb b/meta/recipes-devtools/opkg/opkg_0.4.4.bb new file mode 100644 index 0000000000..f8034ca5fa --- /dev/null +++ b/meta/recipes-devtools/opkg/opkg_0.4.4.bb @@ -0,0 +1,75 @@ +SUMMARY = "Open Package Manager" +SUMMARY_libopkg = "Open Package Manager library" +SECTION = "base" +HOMEPAGE = "http://code.google.com/p/opkg/" +BUGTRACKER = "http://code.google.com/p/opkg/issues/list" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://src/opkg.c;beginline=4;endline=18;md5=d6200b0f2b41dee278aa5fad333eecae" + +DEPENDS = "libarchive" + +PE = "1" + +SRC_URI = "http://downloads.yoctoproject.org/releases/${BPN}/${BPN}-${PV}.tar.gz \ + file://opkg.conf \ + file://0001-opkg_conf-create-opkg.lock-in-run-instead-of-var-run.patch \ + file://0001-tests-let-the-OS-negotiate-relative-package-dirs.patch \ + file://run-ptest \ +" + +SRC_URI[md5sum] = "345900c1d4747d58455867f9fe88ca43" +SRC_URI[sha256sum] = "2217acc58b8eb31300631ebae75e222ebc700c9c1cf6408088705d19a472c839" + +# This needs to be before ptest inherit, otherwise all ptest files end packaged +# in libopkg package if OPKGLIBDIR == libdir, because default +# PTEST_PATH ?= "${libdir}/${BPN}/ptest" +PACKAGES =+ "libopkg" + +inherit autotools pkgconfig ptest + +target_localstatedir := "${localstatedir}" +OPKGLIBDIR ??= "${target_localstatedir}/lib" + +PACKAGECONFIG ??= "libsolv" + +PACKAGECONFIG[gpg] = "--enable-gpg,--disable-gpg,\ + gnupg gpgme libgpg-error,\ + ${@ "gnupg" if ("native" in d.getVar("PN")) else "gnupg-gpg"}\ + " +PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl" +PACKAGECONFIG[ssl-curl] = "--enable-ssl-curl,--disable-ssl-curl,curl openssl" +PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" +PACKAGECONFIG[sha256] = "--enable-sha256,--disable-sha256" +PACKAGECONFIG[libsolv] = "--with-libsolv,--without-libsolv,libsolv" + +EXTRA_OECONF += " --disable-pathfinder" +EXTRA_OECONF_class-native = "--localstatedir=/${@os.path.relpath('${localstatedir}', '${STAGING_DIR_NATIVE}')} --sysconfdir=/${@os.path.relpath('${sysconfdir}', '${STAGING_DIR_NATIVE}')}" + +do_install_append () { + install -d ${D}${sysconfdir}/opkg + install -m 0644 ${WORKDIR}/opkg.conf ${D}${sysconfdir}/opkg/opkg.conf + echo "option lists_dir ${OPKGLIBDIR}/opkg/lists" >>${D}${sysconfdir}/opkg/opkg.conf + + # We need to create the lock directory + install -d ${D}${OPKGLIBDIR}/opkg +} + +do_install_ptest () { + sed -i -e '/@echo $^/d' ${D}${PTEST_PATH}/tests/Makefile + sed -i -e '/@PYTHONPATH=. $(PYTHON) $^/a\\t@if [ "$$?" != "0" ];then echo "FAIL:"$^;else echo "PASS:"$^;fi' ${D}${PTEST_PATH}/tests/Makefile +} + +RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} opkg-arch-config libarchive" +RDEPENDS_${PN}_class-native = "" +RDEPENDS_${PN}_class-nativesdk = "" +RDEPENDS_${PN}-ptest += "make binutils python3-core python3-compression" +RREPLACES_${PN} = "opkg-nogpg opkg-collateral" +RCONFLICTS_${PN} = "opkg-collateral" +RPROVIDES_${PN} = "opkg-collateral" + +FILES_libopkg = "${libdir}/*.so.* ${OPKGLIBDIR}/opkg/" + +BBCLASSEXTEND = "native nativesdk" + +CONFFILES_${PN} = "${sysconfdir}/opkg/opkg.conf" -- cgit v1.2.3-54-g00ecf