diff options
Diffstat (limited to 'meta/recipes-devtools/opkg')
-rw-r--r-- | meta/recipes-devtools/opkg/opkg-arch-config_1.0.bb | 3 | ||||
-rw-r--r-- | meta/recipes-devtools/opkg/opkg/0001-libopkg-Use-libgen.h-to-provide-basename-API.patch | 62 | ||||
-rw-r--r-- | meta/recipes-devtools/opkg/opkg_0.6.3.bb (renamed from meta/recipes-devtools/opkg/opkg_0.4.5.bb) | 41 |
3 files changed, 82 insertions, 24 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 dc17de2e8e..726a259a8c 100644 --- a/meta/recipes-devtools/opkg/opkg-arch-config_1.0.bb +++ b/meta/recipes-devtools/opkg/opkg-arch-config_1.0.bb @@ -1,8 +1,7 @@ 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}" 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_0.4.5.bb b/meta/recipes-devtools/opkg/opkg_0.6.3.bb index ef18ccf63a..ef7c4f3a72 100644 --- a/meta/recipes-devtools/opkg/opkg_0.4.5.bb +++ b/meta/recipes-devtools/opkg/opkg_0.6.3.bb @@ -1,25 +1,25 @@ SUMMARY = "Open Package Manager" SUMMARY:libopkg = "Open Package Manager library" SECTION = "base" -HOMEPAGE = "http://code.google.com/p/opkg/" +HOMEPAGE = "https://git.yoctoproject.org/opkg/" DESCRIPTION = "Opkg is a lightweight package management system based on Ipkg." -BUGTRACKER = "http://code.google.com/p/opkg/issues/list" -LICENSE = "GPLv2+" +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" +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[md5sum] = "5dc41ad37d88803b5e0f456a9c5a0811" -SRC_URI[sha256sum] = "a1214a75fa34fb9228db8da47308e0e711b1c93fd8938cf164c10fd28eb50f1e" +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 @@ -39,17 +39,18 @@ PACKAGECONFIG[gpg] = "--enable-gpg,--disable-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}')}" +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 ${WORKDIR}/opkg.conf ${D}${sysconfdir}/opkg/opkg.conf - echo "option lists_dir ${OPKGLIBDIR}/opkg/lists" >>${D}${sysconfdir}/opkg/opkg.conf + 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 @@ -60,23 +61,19 @@ do_install_ptest () { sed -i -e '/@PYTHONPATH=. $(PYTHON) $^/a\\t@if [ "$$?" != "0" ];then echo "FAIL:"$^;else echo "PASS:"$^;fi' ${D}${PTEST_PATH}/tests/Makefile } -WARN_QA:append += "openssl-deprecation" -QAPKGTEST[openssl-deprecation] = "package_qa_check_openssl_deprecation" -def package_qa_check_openssl_deprecation (package, d, messages): - sane = True - +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 pkgconfig and 'openssl' in pkgconfig: - package_qa_add_message(messages, 'openssl-deprecation', '"openssl" in opkg.bb PACKAGECONFIG. Feed signature checking with OpenSSL will be deprecated in the next opkg release. Consider using GPG checking instead.') - sane = False - return sane + 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" +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" |