diff options
Diffstat (limited to 'meta/recipes-devtools/opkg')
7 files changed, 159 insertions, 156 deletions
diff --git a/meta/recipes-devtools/opkg/opkg-arch-config_1.0.bb b/meta/recipes-devtools/opkg/opkg-arch-config_1.0.bb index 0c2dbc9e32..4db35c1092 100644 --- a/meta/recipes-devtools/opkg/opkg-arch-config_1.0.bb +++ b/meta/recipes-devtools/opkg/opkg-arch-config_1.0.bb @@ -1,10 +1,10 @@ SUMMARY = "Architecture-dependent configuration for opkg" -HOMEPAGE = "http://code.google.com/p/opkg/" +HOMEPAGE = "https://git.yoctoproject.org/opkg/" LICENSE = "MIT" PACKAGE_ARCH = "${MACHINE_ARCH}" -PR = "r1" -S = "${WORKDIR}" +S = "${WORKDIR}/sources" +UNPACKDIR = "${S}" do_compile() { mkdir -p ${S}/${sysconfdir}/opkg/ @@ -26,10 +26,10 @@ do_install () { install -m 0644 ${S}/${sysconfdir}/opkg/* ${D}${sysconfdir}/opkg/ } -FILES_${PN} = "${sysconfdir}/opkg/ " +FILES:${PN} = "${sysconfdir}/opkg/ " -CONFFILES_${PN} += "${sysconfdir}/opkg/arch.conf" +CONFFILES:${PN} += "${sysconfdir}/opkg/arch.conf" -RREPLACES_${PN} = "opkg-config-base" -RCONFLICTS_${PN} = "opkg-config-base" -RPROVIDES_${PN} = "opkg-config-base" +RREPLACES:${PN} = "opkg-config-base" +RCONFLICTS:${PN} = "opkg-config-base" +RPROVIDES:${PN} = "opkg-config-base" diff --git a/meta/recipes-devtools/opkg/opkg-keyrings_1.0.bb b/meta/recipes-devtools/opkg/opkg-keyrings_1.0.bb index 07e2402545..84aeb98068 100644 --- a/meta/recipes-devtools/opkg/opkg-keyrings_1.0.bb +++ b/meta/recipes-devtools/opkg/opkg-keyrings_1.0.bb @@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384 # Distro-specific keys can be added to this package in two ways: # # 1) In a .bbappend, add .gpg and/or .asc files to SRC_URI and install them to -# ${D}${datadir}/opkg/keyrings/ in a do_install_append function. These +# ${D}${datadir}/opkg/keyrings/ in a do_install:append function. These # files should not be named 'key-$name.gpg' to ensure they don't conflict # with keys exported as per (2). # @@ -30,12 +30,12 @@ do_install () { done } -FILES_${PN} = "${datadir}/opkg/keyrings" +FILES:${PN} = "${datadir}/opkg/keyrings" # We need 'opkg-key' to run the postinst script -RDEPENDS_${PN} = "opkg" +RDEPENDS:${PN} = "opkg" -pkg_postinst_ontarget_${PN} () { +pkg_postinst_ontarget:${PN} () { if test -x ${bindir}/opkg-key then ${bindir}/opkg-key populate diff --git a/meta/recipes-devtools/opkg/opkg/0001-libopkg-Use-libgen.h-to-provide-basename-API.patch b/meta/recipes-devtools/opkg/opkg/0001-libopkg-Use-libgen.h-to-provide-basename-API.patch new file mode 100644 index 0000000000..61581e752b --- /dev/null +++ b/meta/recipes-devtools/opkg/opkg/0001-libopkg-Use-libgen.h-to-provide-basename-API.patch @@ -0,0 +1,62 @@ +From 7a1c13a48cf020c40dda1721d5c2ffd95e8e669a Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 10 Dec 2023 19:39:29 -0800 +Subject: [PATCH v2] libopkg: Use libgen.h to provide basename API + +Also ensure that copy of filename is passed into archive_entry_set_pathname +so it can be operated upon by posix basename which expect non-const +character pointer as input. + +This became evident with latest musl where basename declaration was +dropped from string.h [1] + +[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7 + +Upstream-Status: Backport [74fc3a991f974095644897d18d43846b5f359dae] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- +v2: Do not override basename wholesale + + libopkg/opkg_archive.c | 6 ++++-- + libopkg/opkg_remove.c | 1 + + 2 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/libopkg/opkg_archive.c b/libopkg/opkg_archive.c +index 03a4afb..b099f5b 100644 +--- a/libopkg/opkg_archive.c ++++ b/libopkg/opkg_archive.c +@@ -20,6 +20,7 @@ + + #include <archive.h> + #include <archive_entry.h> ++#include <libgen.h> + #include <stdlib.h> + #include <stdio.h> + #include <string.h> +@@ -797,8 +798,9 @@ int gz_write_archive(const char *filename, const char *gz_filename) + } + + /* Remove path hierarchy, as we are only compressing a single file */ +- archive_entry_set_pathname(entry, basename(filename)); +- ++ char* tmp = xstrdup(filename); ++ archive_entry_set_pathname(entry, basename(tmp)); ++ free(tmp); + r = archive_write_header(a, entry); + if (r != ARCHIVE_OK) { + opkg_msg(ERROR, "Failed to create compressed file: '%s' : %s (errno=%d)", +diff --git a/libopkg/opkg_remove.c b/libopkg/opkg_remove.c +index 889c672..5254388 100644 +--- a/libopkg/opkg_remove.c ++++ b/libopkg/opkg_remove.c +@@ -20,6 +20,7 @@ + + #include "config.h" + ++#include <libgen.h> + #include <stdio.h> + #include <glob.h> + #include <unistd.h> +-- +2.43.0 + 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 deleted file mode 100644 index 33b7280e5a..0000000000 --- a/meta/recipes-devtools/opkg/opkg/0001-tests-let-the-OS-negotiate-relative-package-dirs.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 4acda6d01c5abd33f1a1a3275fd695363f59473f Mon Sep 17 00:00:00 2001 -From: Alex Stewart <alex.stewart@ni.com> -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 <alex.stewart@ni.com> ---- - 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/sourcedateepoch.patch b/meta/recipes-devtools/opkg/opkg/sourcedateepoch.patch deleted file mode 100644 index 4578fa33be..0000000000 --- a/meta/recipes-devtools/opkg/opkg/sourcedateepoch.patch +++ /dev/null @@ -1,24 +0,0 @@ -Having CLEAN_DATE come from the current date doesn't allow for build -reproducibility. Add the option of using SOURCE_DATE_EPOCH if set -which for OE, it will be. - -Upstream-Status: Pending -RP 2021/2/2 - -Index: opkg-0.4.4/configure.ac -=================================================================== ---- opkg-0.4.4.orig/configure.ac -+++ opkg-0.4.4/configure.ac -@@ -281,7 +281,11 @@ AC_FUNC_UTIME_NULL - AC_FUNC_VPRINTF - AC_CHECK_FUNCS([memmove memset mkdir regcomp strchr strcspn strdup strerror strndup strrchr strstr strtol strtoul sysinfo utime]) - --CLEAN_DATE=`date +"%B %Y" | tr -d '\n'` -+if ! test -z "$SOURCE_DATE_EPOCH" ; then -+ CLEAN_DATE=`LC_ALL=C date -d @$SOURCE_DATE_EPOCH +"%B %Y" | tr -d '\n'` -+else -+ CLEAN_DATE=`date +"%B %Y" | tr -d '\n'` -+fi - - AC_SUBST([CLEAN_DATE]) - diff --git a/meta/recipes-devtools/opkg/opkg_0.4.4.bb b/meta/recipes-devtools/opkg/opkg_0.4.4.bb deleted file mode 100644 index 9eca61be2a..0000000000 --- a/meta/recipes-devtools/opkg/opkg_0.4.4.bb +++ /dev/null @@ -1,77 +0,0 @@ -SUMMARY = "Open Package Manager" -SUMMARY_libopkg = "Open Package Manager library" -SECTION = "base" -HOMEPAGE = "http://code.google.com/p/opkg/" -DESCRIPTION = "Opkg is a lightweight package management system based on Ipkg." -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://sourcedateepoch.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" diff --git a/meta/recipes-devtools/opkg/opkg_0.6.3.bb b/meta/recipes-devtools/opkg/opkg_0.6.3.bb new file mode 100644 index 0000000000..ef7c4f3a72 --- /dev/null +++ b/meta/recipes-devtools/opkg/opkg_0.6.3.bb @@ -0,0 +1,85 @@ +SUMMARY = "Open Package Manager" +SUMMARY:libopkg = "Open Package Manager library" +SECTION = "base" +HOMEPAGE = "https://git.yoctoproject.org/opkg/" +DESCRIPTION = "Opkg is a lightweight package management system based on Ipkg." +BUGTRACKER = "https://bugzilla.yoctoproject.org/buglist.cgi?quicksearch=Product%3Aopkg" +LICENSE = "GPL-2.0-or-later" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://src/opkg.c;beginline=4;endline=18;md5=d6200b0f2b41dee278aa5fad333eecae" + +DEPENDS = "libarchive zstd" + +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-libopkg-Use-libgen.h-to-provide-basename-API.patch \ + file://run-ptest \ + " + +SRC_URI[sha256sum] = "f3938e359646b406c40d5d442a1467c7e72357f91ab822e442697529641e06de" + +# 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[sha256] = "--enable-sha256,--disable-sha256" +PACKAGECONFIG[libsolv] = "--with-libsolv,--without-libsolv,libsolv" + +EXTRA_OECONF = "--enable-zstd" +EXTRA_OECONF:append: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 ${UNPACKDIR}/opkg.conf ${D}${sysconfdir}/opkg/opkg.conf + echo "option lists_dir ${OPKGLIBDIR}/opkg/lists" >>${D}${sysconfdir}/opkg/opkg.conf + echo "option info_dir ${OPKGLIBDIR}/opkg/info" >>${D}${sysconfdir}/opkg/opkg.conf + echo "option status_file ${OPKGLIBDIR}/opkg/status" >>${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 +} + +WARN_QA:append = " internal-solver-deprecation" +QARECIPETEST[internal-solver-deprecation] = "qa_check_solver_deprecation" +def qa_check_solver_deprecation (pn, d, messages): + pkgconfig = (d.getVar("PACKAGECONFIG") or "").split() + + if "libsolv" not in pkgconfig: + oe.qa.handle_error("internal-solver-deprecation", "The opkg internal solver will be deprecated in future opkg releases. Consider enabling \"libsolv\" in PACKAGECONFIG.", d) + + +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 bash python3-crypt python3-io" +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" |