summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/opkg
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/opkg')
-rw-r--r--meta/recipes-devtools/opkg/opkg-arch-config_1.0.bb3
-rw-r--r--meta/recipes-devtools/opkg/opkg/0001-libopkg-Use-libgen.h-to-provide-basename-API.patch62
-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"