From patchwork Mon Dec 15 10:20:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adam Duskett X-Patchwork-Id: 76518 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 16340D5B170 for ; Mon, 15 Dec 2025 10:20:54 +0000 (UTC) Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.45237.1765794045383166035 for ; Mon, 15 Dec 2025 02:20:45 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=H8HhSSc5; spf=pass (domain: amarulasolutions.com, ip: 209.85.218.53, mailfrom: adam.duskett@amarulasolutions.com) Received: by mail-ej1-f53.google.com with SMTP id a640c23a62f3a-b735c1fe67aso56433066b.2 for ; Mon, 15 Dec 2025 02:20:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1765794044; x=1766398844; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=dweruoFS2hSzD89842ZkHTQ+jWI4ilFOHwDM6py/yME=; b=H8HhSSc5Vo0P+zzyf3BCiV/srjt7RuBBG7Em3nUEqlGMD/MjTReKUllkGaWQhkUzc2 NyE3PDkDmNsj2c0cwHnbIe2oksRFLDIxMOlOsD1H21+NQOpfBTKpv+mWM5qzPsXv3ZOM Xvfs9I8fPjXe5xyqa6wAC/akufn2oUxY52OxE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765794044; x=1766398844; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=dweruoFS2hSzD89842ZkHTQ+jWI4ilFOHwDM6py/yME=; b=LEYM2Sy8hZOkn3ZpVMf9J+8SmqamaQPojqHlhGYK0tvlVS6Dj3f8jtDGw0fg7xiQkN 5wlu+7l8TVvuEdatOW1RKaHlJ2lZrX3LgzLmMT2JnRRqQdCBXD4Wr54zKVZVzU14ozqG oTdkbQKFI3MdtSdGUUVZ1XRhQt1KThNEYV6v1VQ7YR3lyPxlycHlx146oL4vVmJrn5D4 bQun+aOVfTCs3rKXTe4sXDzR3SRdyTqt6pvzrm73zEK5s5IWeIahSL7gzYyC81hyZeEr 4yxwRkk5La2Ljup8hyPKM9EaaeO/y47XRU4phzp9UJxGfdMd2FVw1oYLHSdufdKTvkdp mmrw== X-Gm-Message-State: AOJu0YxfHlM56JtGPjcojFnzeWGIFHjiLAOvgXDa+EghXsgforXbQwCL HF7RQ0ZM3EkLNdsdUfVwOgdatt1v3XcLZaQbU2wzLNjtl04eS2gcGa1p3uw3QqxOulZ4nRHegCi INQMR X-Gm-Gg: AY/fxX5R+omiPTXfQ61WYnqnzCa5ExO9c7IR3kb0QqHtvsWqqu0Kyn7N+XzoX9RQrvk jDYUVfxX9Vp/LhrH053fZZmFgxkj3NRVjz/90O9Rj8WLinCDAtyQLzMMHO2AAfQt7eQm7cA5+iT ZZz48wRMiuRCOPj8JfweAtWFtwM2/aK0P3k+HpC6UPh2dX4kXzb3hjtEgZJ33OsK63l/E5nzrQu W1ox6IQmkVDGlTm17kvtexPzuxdeQbVYKzLdYZwrDj4FM5wUAb1FLSokBzr6wRzVcU0CJco/ZsX z6P/IQxz3MxjXzj6nX7pHvN3gL0s6E6AZqkY/2wrdBwEHyZJ5NsVAYcb/nche0MtxfgLF+7AFrl pvReE4LX24T8KLKMEuK5CWo171hTT29HObkD8ikvdIwBfl8gwUdpYKSXQBVv/d9v3lHD+j52fV7 +sMpylC0aB3EMdhjyoxpTOsT8XZ+ujmVMEmSUWHxMziUayuL/aNST2WpkeXF4AvEx3RyAGUuTLg b2bedjF+Suhe3BYJjGt/GzSnf7tmCypYGROF/Bs4mk7eD8rNbMds4zntQ== X-Google-Smtp-Source: AGHT+IEqJ3V8XMOYZvHBYGMyzolGYiqMGI2sEeRyHQDZ/g4220eIQe5TqVMCrZVjP5Qphcy8uusLnQ== X-Received: by 2002:a17:907:3f20:b0:b73:51f6:e070 with SMTP id a640c23a62f3a-b7d23aa416emr605064566b.7.1765794043664; Mon, 15 Dec 2025 02:20:43 -0800 (PST) Received: from adam.amarulasolutions.com (2001-1c00-8101-1200-3ddc-5bb8-0efa-16f1.cable.dynamic.v6.ziggo.nl. [2001:1c00:8101:1200:3ddc:5bb8:efa:16f1]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b7cfa51757asm1357193566b.45.2025.12.15.02.20.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 02:20:43 -0800 (PST) From: Adam Duskett To: openembedded-core@lists.openembedded.org Cc: Adam Duskett Subject: [PATCH v4 1/7] signing-keys.bb: Fix DISTRO_CODENAME truncation Date: Mon, 15 Dec 2025 11:20:35 +0100 Message-ID: <20251215102041.1630567-1-adam.duskett@amarulasolutions.com> X-Mailer: git-send-email 2.52.0 MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 15 Dec 2025 10:20:54 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/227717 If DISTRO_CODENAME is not set in the environment, bash quietly drops the string resulting in a key such as PACKAGEFEED-GPG-KEY-defaultsetup- However, when python calls self.d.getVar('DISTRO_CODENAME'), the resulting string is 'None', leading to a configuration file pointing to a key such as PACKAGEFEED-GPG-KEY-defaultsetup-None Add a default value in signing-keys.bb to set DISTRO_CODENAME to None if DISTRO_CODENAME is not set. Signed-off-by: Adam Duskett --- meta/recipes-core/meta/signing-keys.bb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meta/recipes-core/meta/signing-keys.bb b/meta/recipes-core/meta/signing-keys.bb index 94f4032911..c7713ed4a6 100644 --- a/meta/recipes-core/meta/signing-keys.bb +++ b/meta/recipes-core/meta/signing-keys.bb @@ -45,6 +45,10 @@ addtask get_public_keys before do_install do_get_public_keys[depends] += "gnupg-native:do_populate_sysroot" do_install () { + # Python evalutes an empty DISTRO_CODENAME to "None" which would cause mismatched files + # as the update config file would show GPG-KEY-${DISTRO}-None but the filename is + # installed as GPG-KEY-${DISTRO}- + DISTRO_CODENAME="${DISTRO_CODENAME:-None}" if [ -f "${B}/rpm-key" ]; then install -D -m 0644 "${B}/rpm-key" "${D}${sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-${DISTRO}-${DISTRO_CODENAME}" fi @@ -57,6 +61,7 @@ do_install () { } do_deploy () { + DISTRO_CODENAME="${DISTRO_CODENAME:-None}" if [ -f "${B}/rpm-key" ]; then install -D -m 0644 "${B}/rpm-key" "${DEPLOYDIR}/RPM-GPG-KEY-${DISTRO}-${DISTRO_CODENAME}" fi From patchwork Mon Dec 15 10:20:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adam Duskett X-Patchwork-Id: 76523 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4202DD5B174 for ; Mon, 15 Dec 2025 10:20:54 +0000 (UTC) Received: from mail-ej1-f46.google.com (mail-ej1-f46.google.com [209.85.218.46]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.45414.1765794045941081399 for ; Mon, 15 Dec 2025 02:20:46 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=KwgSrzk/; spf=pass (domain: amarulasolutions.com, ip: 209.85.218.46, mailfrom: adam.duskett@amarulasolutions.com) Received: by mail-ej1-f46.google.com with SMTP id a640c23a62f3a-b79f698aa91so58779266b.1 for ; Mon, 15 Dec 2025 02:20:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1765794044; x=1766398844; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6zk6gwaQfzuC7Z8mPtylj14JajUNqVWdxX4jr1MbhPI=; b=KwgSrzk/Jj+IJpma2ilWH9GxiLb3pd/aVovWTjA5+G7km9Y4RmvJBLINJ0aIHitPKm 7uROC3z6R5u6pRoqf8aodlwTQxUqWPe8hoKIg8dnCKEDi9ntqfSe8MLYny4XJklPygmf ft8n2KfnuUNa5NQ4v8NjhYdH3Q5EDO/BdLLWs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765794044; x=1766398844; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=6zk6gwaQfzuC7Z8mPtylj14JajUNqVWdxX4jr1MbhPI=; b=WtQNZG247Ryvw0zbdUETq/0pwE+ndPfa4uauJ7yjM9QUhd0pgCJ64nF+II9K5fipxs n0SjviN9WoWR2t2Rv0lVwqd+aoIwgbJdZysyVWWYosDzt/g9fNLX1+s1cDbtpsLhB9Te /m9n1TzvIVksYRH8IxL5uvrcAnaZAPaVEOUBJ5t+Wx56p9SSseJ+R8kTadeP4JQ7YKb5 gZKeLhkBKXfF9mTc9j7L7WzIbsdyefIdkjFhQR7zTMWAiXeJpK6KXcSRSwVOniqoODwp SsJU5zpbx0kHvUZALKHRLPqHBJD7WHt9/I8gCve+qSFpbBnk8iwqvigPrOz6eWL+je2Z xueQ== X-Gm-Message-State: AOJu0YwEcM/7bj2o/kFb6rE30KLewquIFDjCWabrxtEshFc6SztyzpI8 cMHITyiO7ZxRNVZqKiOAtK086co/JK3cdW7d7zefp+GvwhS9R3SPrqdCqTY7w0I8NxfMbsBdeBA QJ92y X-Gm-Gg: AY/fxX7FiO08BsJWF5KvGiPv4+SVmgrQ8YRC73EjrytUEknvV0V8cqXdvntfZtwi+Ef 5ourKWORf1vxMfnasc4YJXx6sed6yN9BPKv8def02Td+u3BoEybcPpaEyZb1VdDjgQkSmxttNBl sTQxrXo88ffl2fOjv4ql3EnXHeOW7AC/ikMaHowCFXhlMgw73IKp0vJ7w0KPstIyiPYcXPelBHn ejuLBjVf/t9vE3FofcZ9Vm/YcXIRhdBHB6cySgiotl845Ok7SKb6QvZqoqzIwt+FjXoBmaePZMF vqkqDBWbRhaUXieELI5Jki/oVv7H2sayIwqg8f40ltNhKjwIB05sViyxtiwhZCVCJ8u2+y+4qn0 uLjCeQKwJHOUsnVgoZykDsLBoiXJDgqAZee+AGHzIjXvKBw3Czs1ab/EoovSYu+V0D9LOKPRXaG qUpgn9iQgMuc47E1bPvSDns2KnjWqCwJr1KA/dQEgAmW5yG/hpyPy2LGeR4vi/Si/NCHmqLhwUu cibVB3s0mIwPSJu8gJNG9aJPosGfT/d25Tg3SBqhTCJ2rJptH53/rwFJA== X-Google-Smtp-Source: AGHT+IGT3twZanZHX1M/ujPbt3llR4I9Hl0LDBMdGNFHlanSczbSU++xNwDqrlPvP2AVdZ3rRx8DgQ== X-Received: by 2002:a17:907:72c8:b0:b79:fb42:111c with SMTP id a640c23a62f3a-b7d235afc32mr681374066b.1.1765794044294; Mon, 15 Dec 2025 02:20:44 -0800 (PST) Received: from adam.amarulasolutions.com (2001-1c00-8101-1200-3ddc-5bb8-0efa-16f1.cable.dynamic.v6.ziggo.nl. [2001:1c00:8101:1200:3ddc:5bb8:efa:16f1]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b7cfa51757asm1357193566b.45.2025.12.15.02.20.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 02:20:43 -0800 (PST) From: Adam Duskett To: openembedded-core@lists.openembedded.org Cc: Adam Duskett Subject: [PATCH v4 2/7] libtoml: new recipe Date: Mon, 15 Dec 2025 11:20:36 +0100 Message-ID: <20251215102041.1630567-2-adam.duskett@amarulasolutions.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251215102041.1630567-1-adam.duskett@amarulasolutions.com> References: <20251215102041.1630567-1-adam.duskett@amarulasolutions.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 15 Dec 2025 10:20:54 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/227718 DNF5 requires libtoml. As such, copy libtoml verbatim from meta-openembedded to openembedded-core. Signed-off-by: Adam Duskett --- meta/conf/distro/include/maintainers.inc | 1 + .../distro/include/ptest-packagelists.inc | 1 + .../0001-Remove-whitespace-in-operator.patch | 46 +++++++++++++++++++ .../libtoml11/files/run-ptest | 12 +++++ .../libtoml11/libtoml11_4.4.0.bb | 38 +++++++++++++++ 5 files changed, 98 insertions(+) create mode 100644 meta/recipes-devtools/libtoml11/files/0001-Remove-whitespace-in-operator.patch create mode 100755 meta/recipes-devtools/libtoml11/files/run-ptest create mode 100644 meta/recipes-devtools/libtoml11/libtoml11_4.4.0.bb diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc index 8971b9b552..da642ac3c5 100644 --- a/meta/conf/distro/include/maintainers.inc +++ b/meta/conf/distro/include/maintainers.inc @@ -405,6 +405,7 @@ RECIPE_MAINTAINER:pn-libsoup = "Unassigned " RECIPE_MAINTAINER:pn-libssh2 = "Unassigned " RECIPE_MAINTAINER:pn-libssp-nonshared = "Khem Raj " RECIPE_MAINTAINER:pn-libtasn1 = "Unassigned " +RECIPE_MAINTAINER:pn-libtoml11 = "Unassigned " RECIPE_MAINTAINER:pn-libtest-fatal-perl = "Tim Orling " RECIPE_MAINTAINER:pn-libtest-needs-perl = "Tim Orling " RECIPE_MAINTAINER:pn-libtest-warnings-perl = "Tim Orling " diff --git a/meta/conf/distro/include/ptest-packagelists.inc b/meta/conf/distro/include/ptest-packagelists.inc index 09613294d6..ec0e2d1637 100644 --- a/meta/conf/distro/include/ptest-packagelists.inc +++ b/meta/conf/distro/include/ptest-packagelists.inc @@ -40,6 +40,7 @@ PTESTS_FAST = "\ libtest-needs-perl \ libtest-warnings-perl \ libtimedate-perl \ + libtoml11 \ libtry-tiny-perl \ libusb1 \ libxml-namespacesupport-perl \ diff --git a/meta/recipes-devtools/libtoml11/files/0001-Remove-whitespace-in-operator.patch b/meta/recipes-devtools/libtoml11/files/0001-Remove-whitespace-in-operator.patch new file mode 100644 index 0000000000..c8c9922d55 --- /dev/null +++ b/meta/recipes-devtools/libtoml11/files/0001-Remove-whitespace-in-operator.patch @@ -0,0 +1,46 @@ +From dee78f822d8a5b985e565e5c1ef42a59557aa8fc Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 7 Mar 2025 11:35:46 -0800 +Subject: [PATCH] Remove whitespace in operator"" + +Clang 20+ errors about this whitespace. + +Fixes +include/toml11/impl/../fwd/literal_fwd.hpp:22:26: error: identifier '_toml' preceded by whitespace in a literal operator declaration is deprecated [-Werror,-Wdeprecated-literal-operator] +| 22 | ::toml::value operator"" _toml(const char* str, std::size_t len); +| | ~~~~~~~~~~~^~~~~ +| | operator""_toml + +Upstream-Status: Submitted [https://github.com/ToruNiina/toml11/pull/285] +Signed-off-by: Khem Raj +--- + include/toml11/fwd/literal_fwd.hpp | 2 +- + include/toml11/impl/literal_impl.hpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/include/toml11/fwd/literal_fwd.hpp b/include/toml11/fwd/literal_fwd.hpp +index e46612c..82f62b7 100644 +--- a/include/toml11/fwd/literal_fwd.hpp ++++ b/include/toml11/fwd/literal_fwd.hpp +@@ -19,7 +19,7 @@ inline namespace literals + inline namespace toml_literals + { + +-::toml::value operator"" _toml(const char* str, std::size_t len); ++::toml::value operator""_toml(const char* str, std::size_t len); + + #if defined(TOML11_HAS_CHAR8_T) + // value of u8"" literal has been changed from char to char8_t and char8_t is +diff --git a/include/toml11/impl/literal_impl.hpp b/include/toml11/impl/literal_impl.hpp +index e8298c2..067d4ed 100644 +--- a/include/toml11/impl/literal_impl.hpp ++++ b/include/toml11/impl/literal_impl.hpp +@@ -115,7 +115,7 @@ inline namespace toml_literals + { + + TOML11_INLINE ::toml::value +-operator"" _toml(const char* str, std::size_t len) ++operator""_toml(const char* str, std::size_t len) + { + if(len == 0) + { diff --git a/meta/recipes-devtools/libtoml11/files/run-ptest b/meta/recipes-devtools/libtoml11/files/run-ptest new file mode 100755 index 0000000000..9bc480aa7f --- /dev/null +++ b/meta/recipes-devtools/libtoml11/files/run-ptest @@ -0,0 +1,12 @@ +#!/bin/sh + +cd tests +for atest in test_* ; do + rm -rf tests.log + ./${atest} > tests.log 2>&1 + if [ $? = 0 ] ; then + echo "PASS: ${atest}" + else + echo "FAIL: ${atest}" + fi +done diff --git a/meta/recipes-devtools/libtoml11/libtoml11_4.4.0.bb b/meta/recipes-devtools/libtoml11/libtoml11_4.4.0.bb new file mode 100644 index 0000000000..38786b79ed --- /dev/null +++ b/meta/recipes-devtools/libtoml11/libtoml11_4.4.0.bb @@ -0,0 +1,38 @@ +SUMMARY = "TOML for Modern C++" +DESCRIPTION = "toml11 is a feature-rich TOML language library for \ + C++11/14/17/20." + +HOMEPAGE = "https://github.com/ToruNiina/toml11" + +SECTION = "libs" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=44d1fcf70c7aa6991533c38daf7befa3" + +PE = "1" + +SRCREV = "be08ba2be2a964edcdb3d3e3ea8d100abc26f286" +SRCREV_json = "8c391e04fe4195d8be862c97f38cfe10e2a3472e" +SRCREV_doctest = "ae7a13539fb71f270b87eb2e874fbac80bc8dda2" + +SRC_URI = "git://github.com/ToruNiina/toml11;branch=main;protocol=https \ + git://github.com/nlohmann/json;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/tests/extlib/json;name=json;branch=develop;protocol=https \ + git://github.com/doctest/doctest;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/tests/extlib/doctest;name=doctest;branch=master;protocol=https \ + file://0001-Remove-whitespace-in-operator.patch \ + file://run-ptest \ +" +SRCREV_FORMAT = "json_doctest" + + +inherit cmake ptest + +EXTRA_OECMAKE += "-DTOML11_PRECOMPILE=ON \ + -DTOML11_BUILD_TESTS=${@bb.utils.contains("DISTRO_FEATURES", "ptest", "ON", "OFF", d)} \ +" + +ALLOW_EMPTY:${PN} = "1" + +do_install_ptest () { + install -d ${D}${PTEST_PATH}/tests + cp -r ${B}/tests/test_* ${D}${PTEST_PATH}/tests +} From patchwork Mon Dec 15 10:20:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adam Duskett X-Patchwork-Id: 76521 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 34D6DD5B173 for ; Mon, 15 Dec 2025 10:20:54 +0000 (UTC) Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.54]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.45238.1765794046783139949 for ; Mon, 15 Dec 2025 02:20:47 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=qCutcnRN; spf=pass (domain: amarulasolutions.com, ip: 209.85.218.54, mailfrom: adam.duskett@amarulasolutions.com) Received: by mail-ej1-f54.google.com with SMTP id a640c23a62f3a-b735e96872eso64961466b.0 for ; Mon, 15 Dec 2025 02:20:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1765794045; x=1766398845; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=lfbymjVqmTRLCGavhA4WUXJdBy1KHmliPei8eahndYs=; b=qCutcnRNhsJNc5pOvCLcH4EeIHqwpOBEJ1ANukvPJDR5G6QidI6hMjUeClxpc4t2BS lIVizGEhbkvXYXeQYB4kqhatmX7eE/zAhB8oLDDbJcrvikUwDL1PFLHyJcPjFWAjHZcM p/KzzsyRVXAFvtHyAiFFsof1/2uYbAh+nBo4g= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765794045; x=1766398845; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=lfbymjVqmTRLCGavhA4WUXJdBy1KHmliPei8eahndYs=; b=Jsx+qhLHcWydeVsWZVk+4zvPxJGAhU2xahsLhuC8OroqRA/+MLx5Cph8vIHq45Ya9u 720Jv+/0AKtIb7xehkmGNJjpkg0oruKXIPPz6AoZfDzfmEAPDcJs76S4dfVlenwunvsL uIR8FKKfUNyVitPS3o/3ADw9+e+SbvZonmznK3u2ZpPzoypfXAHzwOmM6iO2x523iQdS jfRb5DmCvq77iz5zBJNIjuQEBnBWk0JdwKLfwIphbP7AhQrBqMPqhde8KKZs/QE/XIv8 aYd1+33KtW7zKNO4sLYKIDTRMhixhfMLBa8hrcn73pqHZaR+FxnXudtJYFwIlpYAQpT4 Htjw== X-Gm-Message-State: AOJu0Yz6LPdIJgt122NGbVsid7TSS1B76CL+TbiBFf9qNuc9G7sHbcYM aXrZQKUOVkU3lNsoZio1trYMqXf+ldTHGRKZVua81sKCAOBOuf6QTVX9qOBX2/MEO4qtU2UcD3G Ddr8K X-Gm-Gg: AY/fxX4COT8wSlQSkm5yqNkm3zqqpmnKbENTQzjjJNu7L5+MtFwYT9Sm6RZd+WFnIJd a+65wcl9gAHZXSP1qErP3rZLQx1eYUxZ2DWHw9hEjLbhI/4JVYxwTML495S3HhONFviGZPZemIy gehR0UKHc1yqfnkEp5jZ0lOMABR1wmP2btBlA44QxsQYniqGPRDzKBHom8xqH11ZPQQg0Zh8+zu HsWSvi0KbS80YRMxGhtxy/keVG/KAooPAsXlQsVoYnaoQ0+oabe9+1eZkY5AyCZNaedvFnK+hgA lbea0s6YFlNMtp2LWr78WW3+ZK61u2MCVKCC6h9ruM69dkx6+zXAxUMd7JQDjwbPp9QVr5fWLcF ar4tnjXJ0fxyTut7JwfxgoCZdEUrunxAbc5eAdboRmVifbr/nEyM8OosXxpyEvMSYqPlZjOG5ps 7uXtfksBzuooMpwxOjc+pY0RGqOfqBA7wnEdUMRo3xYOumrYs7MzUKFpOKW5ELfIJFteoInojrm xI0MIQd/QR7q9/yc6ZsE8NFnMulgppnvF5SOyy8JE1GVUUblSaXXTMScg== X-Google-Smtp-Source: AGHT+IGB3JxI7lGRnzuRztqZmlbisvIIM66mJKdDEjKgcrntNYowTCbbmS55h5kUmJVvU8GFA3kHWg== X-Received: by 2002:a17:907:8693:b0:b76:2667:7736 with SMTP id a640c23a62f3a-b7d23b6fbd5mr638199266b.4.1765794044997; Mon, 15 Dec 2025 02:20:44 -0800 (PST) Received: from adam.amarulasolutions.com (2001-1c00-8101-1200-3ddc-5bb8-0efa-16f1.cable.dynamic.v6.ziggo.nl. [2001:1c00:8101:1200:3ddc:5bb8:efa:16f1]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b7cfa51757asm1357193566b.45.2025.12.15.02.20.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 02:20:44 -0800 (PST) From: Adam Duskett To: openembedded-core@lists.openembedded.org Cc: Adam Duskett Subject: [PATCH v4 3/7] libtoml11: cleanup package to adhere to the recipe style guide Date: Mon, 15 Dec 2025 11:20:37 +0100 Message-ID: <20251215102041.1630567-3-adam.duskett@amarulasolutions.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251215102041.1630567-1-adam.duskett@amarulasolutions.com> References: <20251215102041.1630567-1-adam.duskett@amarulasolutions.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 15 Dec 2025 10:20:54 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/227719 - Add a BUGTRACKER link - Move SRCREV to below SRC_URI - Use gitsm instead of multiple git entries in the SRC_URI - Remove SRCEV_FORMAT as it is not needed. - Add a tag to the SRC_URI - Add a UPSTREAM_CHECK_GITTAGREGEX field - Use `PTEST_ENABLED 1` instead of `DISTRO_FEATURES ptest` - Change "Submitted" in 0001-Remove-whitespace-in-operator.patch to "Backport" with the appropraite link to the relevant commit hash. - Clean up run-ptest. - Add libtoml11 to maintainers.inc and ptest-packagelist.inc Signed-off-by: Adam Duskett Reviewed-by: Quentin Schulz --- V1 -> V2: Add this patch to the series .../0001-Remove-whitespace-in-operator.patch | 2 +- .../libtoml11/files/run-ptest | 15 +++++---- .../libtoml11/libtoml11_4.4.0.bb | 33 +++++++++---------- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/meta/recipes-devtools/libtoml11/files/0001-Remove-whitespace-in-operator.patch b/meta/recipes-devtools/libtoml11/files/0001-Remove-whitespace-in-operator.patch index c8c9922d55..9516ee5cb1 100644 --- a/meta/recipes-devtools/libtoml11/files/0001-Remove-whitespace-in-operator.patch +++ b/meta/recipes-devtools/libtoml11/files/0001-Remove-whitespace-in-operator.patch @@ -11,7 +11,7 @@ include/toml11/impl/../fwd/literal_fwd.hpp:22:26: error: identifier '_toml' prec | | ~~~~~~~~~~~^~~~~ | | operator""_toml -Upstream-Status: Submitted [https://github.com/ToruNiina/toml11/pull/285] +Upstream-Status: Backport [https://github.com/ToruNiina/toml11/commit/dee78f822d8a5b985e565e5c1ef42a59557aa8fc] Signed-off-by: Khem Raj --- include/toml11/fwd/literal_fwd.hpp | 2 +- diff --git a/meta/recipes-devtools/libtoml11/files/run-ptest b/meta/recipes-devtools/libtoml11/files/run-ptest index 9bc480aa7f..22d6f7e0e1 100755 --- a/meta/recipes-devtools/libtoml11/files/run-ptest +++ b/meta/recipes-devtools/libtoml11/files/run-ptest @@ -1,12 +1,13 @@ -#!/bin/sh +#!/usr/bin/env sh cd tests -for atest in test_* ; do - rm -rf tests.log - ./${atest} > tests.log 2>&1 - if [ $? = 0 ] ; then - echo "PASS: ${atest}" + +rm -rf tests.log + +for i in test_* ; do + if ./"${i}" >> tests.log 2>&1; then + echo "PASS: ${i}" else - echo "FAIL: ${atest}" + echo "FAIL: ${i}" fi done diff --git a/meta/recipes-devtools/libtoml11/libtoml11_4.4.0.bb b/meta/recipes-devtools/libtoml11/libtoml11_4.4.0.bb index 38786b79ed..c3b00511ae 100644 --- a/meta/recipes-devtools/libtoml11/libtoml11_4.4.0.bb +++ b/meta/recipes-devtools/libtoml11/libtoml11_4.4.0.bb @@ -1,9 +1,10 @@ SUMMARY = "TOML for Modern C++" -DESCRIPTION = "toml11 is a feature-rich TOML language library for \ - C++11/14/17/20." - +DESCRIPTION = "\ + toml11 is a feature-rich TOML language library for \ + C++11/14/17/20. \ +" HOMEPAGE = "https://github.com/ToruNiina/toml11" - +BUGTRACKER = "https://github.com/ToruNiina/toml11/issues" SECTION = "libs" LICENSE = "MIT" @@ -11,23 +12,19 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=44d1fcf70c7aa6991533c38daf7befa3" PE = "1" -SRCREV = "be08ba2be2a964edcdb3d3e3ea8d100abc26f286" -SRCREV_json = "8c391e04fe4195d8be862c97f38cfe10e2a3472e" -SRCREV_doctest = "ae7a13539fb71f270b87eb2e874fbac80bc8dda2" - -SRC_URI = "git://github.com/ToruNiina/toml11;branch=main;protocol=https \ - git://github.com/nlohmann/json;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/tests/extlib/json;name=json;branch=develop;protocol=https \ - git://github.com/doctest/doctest;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/tests/extlib/doctest;name=doctest;branch=master;protocol=https \ - file://0001-Remove-whitespace-in-operator.patch \ - file://run-ptest \ +SRC_URI = "\ + gitsm://github.com/ToruNiina/toml11.git;protocol=https;branch=main;tag=v${PV} \ + file://0001-Remove-whitespace-in-operator.patch \ + file://run-ptest \ " -SRCREV_FORMAT = "json_doctest" - +SRCREV = "be08ba2be2a964edcdb3d3e3ea8d100abc26f286" +UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+(\.\d+)+)" inherit cmake ptest -EXTRA_OECMAKE += "-DTOML11_PRECOMPILE=ON \ - -DTOML11_BUILD_TESTS=${@bb.utils.contains("DISTRO_FEATURES", "ptest", "ON", "OFF", d)} \ +EXTRA_OECMAKE += "\ + -DTOML11_PRECOMPILE=ON \ + -DTOML11_BUILD_TESTS=${@bb.utils.contains("PTEST_ENABLED", "1", "ON", "OFF", d)} \ " ALLOW_EMPTY:${PN} = "1" @@ -36,3 +33,5 @@ do_install_ptest () { install -d ${D}${PTEST_PATH}/tests cp -r ${B}/tests/test_* ${D}${PTEST_PATH}/tests } + +BBCLASSEXTEND = "native nativesdk" From patchwork Mon Dec 15 10:20:38 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adam Duskett X-Patchwork-Id: 76522 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 36BC9D5B175 for ; Mon, 15 Dec 2025 10:20:54 +0000 (UTC) Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.45415.1765794047332266513 for ; Mon, 15 Dec 2025 02:20:47 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=YBMzTCz4; spf=pass (domain: amarulasolutions.com, ip: 209.85.218.53, mailfrom: adam.duskett@amarulasolutions.com) Received: by mail-ej1-f53.google.com with SMTP id a640c23a62f3a-b735158ef24so53681866b.1 for ; Mon, 15 Dec 2025 02:20:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1765794046; x=1766398846; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Rr7gIuDm4NBc47Dk+FZvMdqdV+j8DGLfSt/7BpLfNlk=; b=YBMzTCz4X7vjotX5PPIW9+/zTersYwlM+swHREO4pVK96L9ylhnggdAq/rGZlOfevk 15C7BfYmKmaOViGNGZ3UPbeRO+XG/WYgbXe6X84iHRQe0eYoNM1hv0SRLIC4M4+SHcV6 UXx+qDwgA3xQh8WXMG9N+Eon59YtJT9lFxrsI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765794046; x=1766398846; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Rr7gIuDm4NBc47Dk+FZvMdqdV+j8DGLfSt/7BpLfNlk=; b=tJ3ovUS5FPusLd11FtCmk/8JRTizWw9YrOxidTFWkHkU3ft2EXxC5CXLgvNbSmWeYT kZi5xk/DeCACXZ3sQH2IoKjL7C3ww7boPJ3LLstNBpbBxsQzRzBfQ6MjIe/827rucR7m 85YFkkC8HdY3od+LcPCuUnroJc3tRhzVIP3gcgPYSD/7xsd4QeHFEsHMmGNmBOhgtpHU cLQrSGS6/JbD2n/VHCXGp+msTqbo3UUpL5p4eSA6JZqW6c7/XJDknKiWYGpVO32mOHss DuiZC8vLOTXc2DhaBJ8E/yjZ0Ir98fiQ94gl5sTMuwGgb/UHjiXp1ldFkH6kQQn/pLYx ip7g== X-Gm-Message-State: AOJu0YzHPn+VR9N+m5l9mGi4kbMKbtFUeaxJ+r/KbasncwnbxVUY4tpm 7dMZmpD2v5nfDj68rfquXMdFJlKasAfFHYjGNmpLSsjtS2TWmhS979yjE25xFsys71ARxlVa6Sv XB042 X-Gm-Gg: AY/fxX498AkcGFfaK8JlZGaLj7f9LnLI6XPG8+xrkwkwQeUyP1ykkBbSeg+uf0GZ7PW aDeBZeKPswzQcU9Oiam8xjcnIQ5hMtPU8qOs+zaO6jbgsgOz/RKUTmaeojYRyPtuYdzg/sHPVVX RSC8eWjUXoF0p33xoWwI0PJnWypRPud5zQhY1TNrTy5vMpRc0+Apz4kRPEtfmLtxeeriSUiZ7BI dAHiV7XLGV5+O2xD+Hb3Yx/Qp6AFPVaZr49xXuEBme6aCGAkHw4mIqgfwXDwRIfr2uutBqDIvNE oMZWF3kJeV0QdUoEsGHXVoyEHIxzne+gGZ2lMUmh5Z2EbJ3gkZbMchHXpAHz9vxgfDWzTHcXB12 yoF5nbiCNAGYtJNuoibNA1uftr1lkPCJojVtAGVeNly5p2IQ1kMT5NECHvaNKrjO9Jains9Sw1Q RHKze/sqRuo4SFJEaxpO/El5Jsj6EsvVYelikcplA8gWCD5vt0RRcB8JAwDpV/xqJf7sSCyXqk5 bL73meN2IXO2GQYRooRnn5ngMTYz8ptU5xkdKWYLR5ZtZA8WdqPlk/2zw== X-Google-Smtp-Source: AGHT+IFvjxiE2+2IIKnktZlRi9CvY25VEq3IyTjzAb5rMW6MQVvFZK4BXtfY8d3ZL4Qli2rdRGOXiQ== X-Received: by 2002:a17:906:dc91:b0:b76:d7ce:b017 with SMTP id a640c23a62f3a-b7d238ebd3cmr608175266b.4.1765794045729; Mon, 15 Dec 2025 02:20:45 -0800 (PST) Received: from adam.amarulasolutions.com (2001-1c00-8101-1200-3ddc-5bb8-0efa-16f1.cable.dynamic.v6.ziggo.nl. [2001:1c00:8101:1200:3ddc:5bb8:efa:16f1]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b7cfa51757asm1357193566b.45.2025.12.15.02.20.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 02:20:45 -0800 (PST) From: Adam Duskett To: openembedded-core@lists.openembedded.org Cc: Adam Duskett Subject: [PATCH v4 4/7] libsolv: explicitly enable comps for rpm packageconfig Date: Mon, 15 Dec 2025 11:20:38 +0100 Message-ID: <20251215102041.1630567-4-adam.duskett@amarulasolutions.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251215102041.1630567-1-adam.duskett@amarulasolutions.com> References: <20251215102041.1630567-1-adam.duskett@amarulasolutions.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 15 Dec 2025 10:20:54 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/227720 dnf5 requires solv/repo_comps.h Signed-off-by: Adam Duskett --- meta/recipes-extended/libsolv/libsolv_0.7.35.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/recipes-extended/libsolv/libsolv_0.7.35.bb b/meta/recipes-extended/libsolv/libsolv_0.7.35.bb index ec74308bb5..52bbc1c4a3 100644 --- a/meta/recipes-extended/libsolv/libsolv_0.7.35.bb +++ b/meta/recipes-extended/libsolv/libsolv_0.7.35.bb @@ -19,7 +19,7 @@ UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+(\.\d+)+)" inherit cmake PACKAGECONFIG ??= "${@bb.utils.contains('PACKAGE_CLASSES','package_rpm','rpm','',d)}" -PACKAGECONFIG[rpm] = "-DENABLE_RPMMD=ON -DENABLE_RPMDB=ON,,rpm" +PACKAGECONFIG[rpm] = "-DENABLE_RPMMD=ON -DENABLE_RPMDB=ON -DENABLE_COMPS=ON,,rpm" EXTRA_OECMAKE = "-DMULTI_SEMANTICS=ON -DENABLE_COMPLEX_DEPS=ON -DENABLE_ZSTD_COMPRESSION=ON -DENABLE_STATIC=ON" From patchwork Mon Dec 15 10:20:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adam Duskett X-Patchwork-Id: 76520 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 23509D5B172 for ; Mon, 15 Dec 2025 10:20:54 +0000 (UTC) Received: from mail-ej1-f41.google.com (mail-ej1-f41.google.com [209.85.218.41]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.45239.1765794047940448215 for ; Mon, 15 Dec 2025 02:20:48 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=EQ2OuX6Z; spf=pass (domain: amarulasolutions.com, ip: 209.85.218.41, mailfrom: adam.duskett@amarulasolutions.com) Received: by mail-ej1-f41.google.com with SMTP id a640c23a62f3a-b79f698aa91so58780366b.1 for ; Mon, 15 Dec 2025 02:20:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1765794046; x=1766398846; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=HhltgnRbBHNpSyqpXMGoxPaBoPgCIDBhVHh6giEa310=; b=EQ2OuX6Z6EfEhZqIxoiUxAp0/LbBXtelVyJP74dre3FOB1msmabKmIgqN45RW5eScw uFtRmasDi546FOYeqyuCvYrvXchLDD1IsZccXSHR03rcDhpCugpF2Iaqpkn3VBmBRiqN P9Etvp3RRr4SGUA8ea9mBZ3zo7ioguc013Uko= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765794046; x=1766398846; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=HhltgnRbBHNpSyqpXMGoxPaBoPgCIDBhVHh6giEa310=; b=ZZCSfEXr9tr+dC4mhXBc7QyQD6rbyhgSXUDQbqrVrw4RvsbZAmQRo2jQGLnYTV0Rfr L2+Xz02C5eyPDxSCGMtsy7gsb9/hUiR5S9JR6wRLuSh+5POqZ2kDRyxdykix4eAfoPV0 N39u0Ep8QNFcQZipRnAUDlkE+mxloy4kA8PiCPj+2ZEFAa+1PLPyIy3str9uxshLxeYu Ub/MOmYJVvLZuygjxtnypHuzb16BJFiztMv3/8bA2HeXKjYqKYh835Xudrps8UhKPNL3 d1T4iVz4d5bpn/Pqxl7rmqzpMvSZU+w/MRFP9iMpmMejKeDQOWDE+QtIwBu6cWIcN83X 6iPg== X-Gm-Message-State: AOJu0YyJtveXnb+1D8AB+Cb6zWO2BVkCWUNxOA+CED4ozahp2fQIXksM v0Z+h10NG+KSlu8+hSuchKgvBmYpT6j70kxDY9PkaT7PNyMSm2sFKSIPTx46PHUFnTQHstDNi7r wBhQS X-Gm-Gg: AY/fxX4uDCLMFBun0RIZ9qNn0hlO6RoHipWaaQ+igmorkCuK4B/ySO8MahZIu/+2Wxp rlDRg0O9cUzlv//2eB/9/4NDx6Vxv4WlK2sx+Grxhsi2QLP9vv5pEOMX10JlsXdmVAF4DsfoOet uBcdGh2qkAvYZmudsWOOmEeZXyf6RU+owdt0rcZN8AOh8WNqy8mk2gPZ8ar+EsdXlu3UOY6O47g gOT3M61mcWgZgzSnxBpHWHT5JEdcFsvi3GmV5CfBAeVPAFatiXHz5F2Q5jpNrmloqVuPSyB83fU KURE11aQcCJSHEscE9OrGUbPxH7MmV9UGadI088wj4zHDT4esnHchda6d6a8euLMPm2s3PHhjkA Cm0fKcutocTQMuzbVaPefmaIymiFqb4QRJEvst5r+L8jCdmp6RdyRex4ikg8Z8fYSK1zRPt0Agx +kj9dgD86xL2eYr8+hrPhG2YIN+QsMc3l4ZeEd4452nR7NIk8OHLpKayD1Y724DueHlTD2yJKTm ldaFZVmvXprrcSRTCWEiqsFfCzNlwASLxhuj05AaXG4u94xg2E5xUQRBA== X-Google-Smtp-Source: AGHT+IH8R6a3O7mp9uQRZtWtSbh6tgQ87gVP4t4OO82nw59QGxL7cjZDJXiM2u8JRQJr7yMX/AyHkQ== X-Received: by 2002:a17:907:7fa8:b0:b76:26bc:fb4a with SMTP id a640c23a62f3a-b7d238af004mr644867866b.4.1765794046290; Mon, 15 Dec 2025 02:20:46 -0800 (PST) Received: from adam.amarulasolutions.com (2001-1c00-8101-1200-3ddc-5bb8-0efa-16f1.cable.dynamic.v6.ziggo.nl. [2001:1c00:8101:1200:3ddc:5bb8:efa:16f1]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b7cfa51757asm1357193566b.45.2025.12.15.02.20.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 02:20:45 -0800 (PST) From: Adam Duskett To: openembedded-core@lists.openembedded.org Cc: Adam Duskett Subject: [PATCH v4 5/7] librepo: add PACKAGECONFIG[sequoia] Date: Mon, 15 Dec 2025 11:20:39 +0100 Message-ID: <20251215102041.1630567-5-adam.duskett@amarulasolutions.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251215102041.1630567-1-adam.duskett@amarulasolutions.com> References: <20251215102041.1630567-1-adam.duskett@amarulasolutions.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 15 Dec 2025 10:20:54 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/227721 Currently, librepo compiled with -DUSE_GPGME=ON (the default setting) causes dnf5 to fail importing repository keys. A very long writeup of the issue is linked below. [1] Add a new PACKAGECONFIG[sequoia] option which sets -DUSE_GPGME=OFF and adds rpm and rpm-sequoia to the dependency list which ensures dnf5 works with repository signing. 1: https://github.com/rpm-software-management/dnf5/issues/2539 Signed-off-by: Adam Duskett --- meta/recipes-devtools/librepo/librepo_1.20.0.bb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta/recipes-devtools/librepo/librepo_1.20.0.bb b/meta/recipes-devtools/librepo/librepo_1.20.0.bb index 6557dda43a..7a2e9e6b9b 100644 --- a/meta/recipes-devtools/librepo/librepo_1.20.0.bb +++ b/meta/recipes-devtools/librepo/librepo_1.20.0.bb @@ -15,6 +15,8 @@ DEPENDS = "curl glib-2.0 openssl attr gpgme libxml2" inherit cmake setuptools3-base pkgconfig +PACKAGECONFIG[sequoia] = "-DUSE_GPGME=OFF,-DUSE_GPGME=ON,rpm rpm-sequoia" + EXTRA_OECMAKE = " \ -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} \ -DPYTHON_DESIRED=3 \ From patchwork Mon Dec 15 10:20:40 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adam Duskett X-Patchwork-Id: 76524 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1AF4BD41D74 for ; Mon, 15 Dec 2025 10:20:54 +0000 (UTC) Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.45240.1765794049267942934 for ; Mon, 15 Dec 2025 02:20:49 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=d+MojN9M; spf=pass (domain: amarulasolutions.com, ip: 209.85.218.44, mailfrom: adam.duskett@amarulasolutions.com) Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-b735e96872eso64962866b.0 for ; Mon, 15 Dec 2025 02:20:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1765794048; x=1766398848; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hwQtC7rO3wVzJLK554YLqxN3wiY8sEoR/ljunBBOPxs=; b=d+MojN9M32jIp10RwS1PqFPIjKtGoGobnekFSqVGQvCgu/Pzrtmvg1nPn5kX80+Sh7 +bsl8ph/GxP1arCcX3WOyMizNhBfQUjfQRFhQAbkc8g3dnZz3Vl3WMjPE1qhLmnBZTpy kU66VJ0QWwobyNG52da5JDt0z3yXeEKajVLZo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765794048; x=1766398848; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=hwQtC7rO3wVzJLK554YLqxN3wiY8sEoR/ljunBBOPxs=; b=vJ1aRartdfivIr7OCwaCtJTk3xRAtCWagSPJ/2MAwTUMJdzTKl+JBJTxFMpPGifP6Z 5mSvZrhAiVFCU39VQEGryc4y00FRpUP7wD4lm6tDZNICKAu3gNtqBQzI659k96y2WGHu IJkuJhIik+9Wzq+wNBP1d6boNeNSjT2d6QMBZ8sCS5up9yf+4H6ayeKOfUl+gDXwHAwX AqxsMigEaT84qrbsnZ81904nNAHmmZgQzHeTMWtfN7ybRvPKmqAPbXQmX1ATZkj+Msi2 rPSRcHotSgGqOORC0oNK5EZol72a/o0a4LXA7xzFQ68upMHJddsOU+ZIxaC8yBo4IHwm YuaQ== X-Gm-Message-State: AOJu0YzP7FMajQ7jrLGc0JtmOX8CdxBz3Aq5nZ+rb+If566f4pYHVyMB ALewfV54tCPn1Q0i8ICodv5b2WGlUiDq6VkdAyaKhZfD1R71sdTkKPQX0j3YgvlQ1P5SDhoCE7j TiblS X-Gm-Gg: AY/fxX4UE/RarAynh8Rh+hF0W2EJi5s3aB3ZU68BiX7pOG78BI8zXFMpqQn0vHnjqyu oPUVTRaHikcSbjR8fBfW9Xfz6UDvE9GPq43hpKn6CCEZQEUTKIkJPkv7ti/2vgq8OzMJu0Wg2Vy NsVs264BA1VoYIktHJLmHeHIGJ20xx+2P7D3coobqopE++2Baz0fo6vTrU7riKOnSh3fNpKwam5 1hnQOGapulBOUmFf6HKuD2VisrIKwYYclu5WpiKsfWn5J3RE8/WD0Nz2jkykQ62Nu04QYiU3IGw /NBDcsVWE2bSu+p8wwLv9GXbVs6yoAY8608OxRAB3EQ4umHnHm1s1nr68CeXGW6eHs78i6zUwRL u7RWI2ioQ2bQFXrAIBI7thLasHFmz1zb0ImlHyhzlE7p4hI7vJSbwO2lJq9pYLLtmFTAbouejMs U7S0SRWKvaEsaDrGmxUU77X4RlBBqbra/w3iExtrbLK3p19HnljyjQYUqvdRz+bC6G9HwxeXOae hNNbMKjIsivVwozH+NwwGSDPOcV9qOptZa6NRv8aySHxuo9w5+ISPdSk6SkIne8/tm/ X-Google-Smtp-Source: AGHT+IHn4OwOi2sdIuZT9lbFF7IdD7wWN4+mml9vqBMMw53iGnN+KqFNXVIz8O+VBEX0oNHnMHBmwQ== X-Received: by 2002:a17:907:9689:b0:b77:18a3:cd2d with SMTP id a640c23a62f3a-b7d232e1e97mr560147966b.0.1765794047197; Mon, 15 Dec 2025 02:20:47 -0800 (PST) Received: from adam.amarulasolutions.com (2001-1c00-8101-1200-3ddc-5bb8-0efa-16f1.cable.dynamic.v6.ziggo.nl. [2001:1c00:8101:1200:3ddc:5bb8:efa:16f1]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b7cfa51757asm1357193566b.45.2025.12.15.02.20.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 02:20:46 -0800 (PST) From: Adam Duskett To: openembedded-core@lists.openembedded.org Cc: Adam Duskett Subject: [PATCH v4 6/7] dnf: Upgrade to 5.3.0.0 Date: Mon, 15 Dec 2025 11:20:40 +0100 Message-ID: <20251215102041.1630567-6-adam.duskett@amarulasolutions.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251215102041.1630567-1-adam.duskett@amarulasolutions.com> References: <20251215102041.1630567-1-adam.duskett@amarulasolutions.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 15 Dec 2025 10:20:54 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/227722 Completely rewritten in C++, there are several changes needed to facilitate moving from DNF4 to DNF5. Below are some significant items to note: - The "-v/--verbose" cli option is removed. As such, remove the argument everywhere it was called.[1] - the rpmverbosity cli option is replaced with --setopt=rpmverbosity - Change gpgcheck to pkg_gpgcheck as this is what the documentation recommends.[2] - --nogpgcheck is now --no-gpgchecks - --setopt=protect_running_kernel=False has to be set or else every dnf transaction complains that /boot/vmlinuz-${kernel_version} does not exist in /var/log/dnf5.log. There is an open issue on github[3] to enable the currently not-yet implemented `autocheck_running_kernel option`, but it has been open for quite some time and the protect_running_kernel option supresses the message. - Move --skip-broken to after the install argument as the global --skip-broken argument is removed. - /var/cache/dnf is replaced with /var/cache/libdnf5 - Add `features += 'PACKAGECONFIG:append:pn-rpm = " sequoia"\n'` `features += 'PACKAGECONFIG:append:pn-librepo = " sequoia"\n'` to test_testimage_dnf as librepo currently does not work with gpgme. While DNF5 has many config options, unfortunately, the majority of them depends on sdbus-c++, which is not included in OE-core. However, the package is included in meta-openembedded, so it's best to include the PACKAGECONFIG options in the recipe and leave them off. 1: https://github.com/rpm-software-management/dnf5/issues/464 2: https://dnf5.readthedocs.io/en/latest/dnf5.conf.5.html 3: https://github.com/rpm-software-management/dnf5/issues/1255 Signed-off-by: Adam Duskett --- V1 -> V2: - Fix CVE_PRODUCT issues [Gyorgy] - Add a tag to the SRC_URI [Gyorgy] - Removed the plugin-manifest PACKAGECONFIG and set -DWITH_PLUGIN_MANIFEST=OFF in EXTRA_OECMAKE - Removed do_install:append:${PN}-plugins [Gyorgy] - Fixed typo in SKIP_RECIPE[dnf] [Gyorgy] - Changed commit message subject to "dnf: Upgrade to 5.3.0.0" [Paul] V2 -> V3: - Moved --skip-broken to after the install argument to fix do_populate_sdk failures. [Mathieu Dubois-Briand] .../lib/oeqa/runtime/cases/dnf_runtime.py | 6 +- meta/conf/distro/include/maintainers.inc | 2 +- meta/lib/oe/package_manager/rpm/__init__.py | 17 +- meta/lib/oeqa/runtime/cases/dnf.py | 16 +- meta/lib/oeqa/selftest/cases/runtime_test.py | 5 + ...tly-install-tmpfiles.d-configuration.patch | 18 -- ...ode-etc-and-systemd-unit-directories.patch | 26 --- ...-hardcode-the-systemd-unit-directory.patch | 29 +++ .../0001-dnf-write-the-log-lock-to-root.patch | 29 --- .../0001-lock.py-fix-Exception-handling.patch | 62 ------ ...et-python-path-for-completion_helper.patch | 21 -- .../dnf/0002-cmake-set-CMP0190-to-OLD.patch | 51 +++++ ...0003-Do-not-hardcode-system_cachedir.patch | 36 ++++ ...004-add-support-for-gcc-12-and-below.patch | 96 +++++++++ ...Do-not-prepend-installroot-to-logdir.patch | 28 --- ...string-concatenation-errors-for-musl.patch | 100 +++++++++ .../0006-add-missing-headers-for-musl.patch | 41 ++++ .../0007-Define-FNM_EXTMATCH-for-musl.patch | 36 ++++ ...rm-arch-mapping-issues-for-qemuarmv5.patch | 59 ++++++ ...PYTHON_INSTALL_DIR-by-running-python.patch | 24 --- .../0030-Run-python-scripts-using-env.patch | 34 ---- meta/recipes-devtools/dnf/dnf_4.24.0.bb | 96 --------- meta/recipes-devtools/dnf/dnf_5.3.0.0.bb | 192 ++++++++++++++++++ 23 files changed, 668 insertions(+), 356 deletions(-) delete mode 100644 meta/recipes-devtools/dnf/dnf/0001-Corretly-install-tmpfiles.d-configuration.patch delete mode 100644 meta/recipes-devtools/dnf/dnf/0001-Do-not-hardcode-etc-and-systemd-unit-directories.patch create mode 100644 meta/recipes-devtools/dnf/dnf/0001-Do-not-hardcode-the-systemd-unit-directory.patch delete mode 100644 meta/recipes-devtools/dnf/dnf/0001-dnf-write-the-log-lock-to-root.patch delete mode 100644 meta/recipes-devtools/dnf/dnf/0001-lock.py-fix-Exception-handling.patch delete mode 100644 meta/recipes-devtools/dnf/dnf/0001-set-python-path-for-completion_helper.patch create mode 100644 meta/recipes-devtools/dnf/dnf/0002-cmake-set-CMP0190-to-OLD.patch create mode 100644 meta/recipes-devtools/dnf/dnf/0003-Do-not-hardcode-system_cachedir.patch create mode 100644 meta/recipes-devtools/dnf/dnf/0004-add-support-for-gcc-12-and-below.patch delete mode 100644 meta/recipes-devtools/dnf/dnf/0005-Do-not-prepend-installroot-to-logdir.patch create mode 100644 meta/recipes-devtools/dnf/dnf/0005-fix-string-concatenation-errors-for-musl.patch create mode 100644 meta/recipes-devtools/dnf/dnf/0006-add-missing-headers-for-musl.patch create mode 100644 meta/recipes-devtools/dnf/dnf/0007-Define-FNM_EXTMATCH-for-musl.patch create mode 100644 meta/recipes-devtools/dnf/dnf/0008-libdnf-fix-arm-arch-mapping-issues-for-qemuarmv5.patch delete mode 100644 meta/recipes-devtools/dnf/dnf/0029-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch delete mode 100644 meta/recipes-devtools/dnf/dnf/0030-Run-python-scripts-using-env.patch delete mode 100644 meta/recipes-devtools/dnf/dnf_4.24.0.bb create mode 100644 meta/recipes-devtools/dnf/dnf_5.3.0.0.bb diff --git a/meta-selftest/lib/oeqa/runtime/cases/dnf_runtime.py b/meta-selftest/lib/oeqa/runtime/cases/dnf_runtime.py index d2f0f88f7d..27158b5193 100644 --- a/meta-selftest/lib/oeqa/runtime/cases/dnf_runtime.py +++ b/meta-selftest/lib/oeqa/runtime/cases/dnf_runtime.py @@ -41,11 +41,11 @@ class DnfSelftest(DnfTest): import re # Use '-y' for non-interactive mode: automatically import the feed signing key - output_makecache = self.dnf('-vy makecache') + output_makecache = self.dnf('-y makecache') self.assertTrue(re.match(r".*Failed to synchronize cache", output_makecache, re.DOTALL) is None, msg = "dnf makecache failed to synchronize repo: %s" %(output_makecache)) self.assertTrue(re.match(r".*Metadata cache created", output_makecache, re.DOTALL) is not None, msg = "dnf makecache failed: %s" %(output_makecache)) - output_repoinfo = self.dnf('-v repoinfo') - matchobj = re.match(r".*Repo-pkgs\s*:\s*(?P[0-9]+)", output_repoinfo, re.DOTALL) + output_repoinfo = self.dnf('repoinfo') + matchobj = re.match(r".*Total packages\s*:\s*(?P[0-9]+)", output_repoinfo, re.DOTALL) self.assertTrue(matchobj is not None, msg = "Could not find the amount of packages in dnf repoinfo output: %s" %(output_repoinfo)) self.assertTrue(int(matchobj.group('n_pkgs')) > 0, msg = "Amount of remote packages is not more than zero: %s\n" %(output_repoinfo)) diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc index da642ac3c5..222c09acf5 100644 --- a/meta/conf/distro/include/maintainers.inc +++ b/meta/conf/distro/include/maintainers.inc @@ -155,7 +155,7 @@ RECIPE_MAINTAINER:pn-diffutils = "Chen Qi " RECIPE_MAINTAINER:pn-distcc = "Hongxu Jia " RECIPE_MAINTAINER:pn-distcc-config = "Yi Zhao " RECIPE_MAINTAINER:pn-dmidecode = "Unassigned " -RECIPE_MAINTAINER:pn-dnf = "Unassigned " +RECIPE_MAINTAINER:pn-dnf = "Adam Duskett " RECIPE_MAINTAINER:pn-docbook-xml-dtd4 = "Yi Zhao " RECIPE_MAINTAINER:pn-docbook-xsl-stylesheets = "Yi Zhao " RECIPE_MAINTAINER:pn-dos2unix = "Khem Raj " diff --git a/meta/lib/oe/package_manager/rpm/__init__.py b/meta/lib/oe/package_manager/rpm/__init__.py index 1d831745ff..d617ca0404 100644 --- a/meta/lib/oe/package_manager/rpm/__init__.py +++ b/meta/lib/oe/package_manager/rpm/__init__.py @@ -163,7 +163,7 @@ class RpmPM(PackageManager): gpg_opts += 'gpgkey=file://%s/pki/packagefeed-gpg/PACKAGEFEED-GPG-KEY-%s-%s\n' % (self.d.getVar('sysconfdir'), self.d.getVar('DISTRO'), self.d.getVar('DISTRO_CODENAME')) if self.d.getVar('RPM_SIGN_PACKAGES') != '1': - gpg_opts += 'gpgcheck=0\n' + gpg_opts += 'pkg_gpgcheck=0\n' bb.utils.mkdirhier(oe.path.join(self.target_rootfs, "etc", "yum.repos.d")) remote_uris = self.construct_uris(feed_uris.split(), feed_base_paths.split()) @@ -200,11 +200,11 @@ class RpmPM(PackageManager): package_exclude = self.d.getVar('PACKAGE_EXCLUDE') exclude_pkgs = (bad_recommendations.split() if bad_recommendations else []) + (package_exclude.split() if package_exclude else []) - output = self._invoke_dnf((["--skip-broken"] if attempt_only else []) + - (["-x", ",".join(exclude_pkgs)] if len(exclude_pkgs) > 0 else []) + + output = self._invoke_dnf((["-x", ",".join(exclude_pkgs)] if len(exclude_pkgs) > 0 else []) + (["--setopt=install_weak_deps=False"] if (hard_depends_only or self.d.getVar('NO_RECOMMENDATIONS') == "1") else []) + - (["--nogpgcheck"] if self.d.getVar('RPM_SIGN_PACKAGES') != '1' else ["--setopt=gpgcheck=True"]) + + (["--no-gpgchecks"] if self.d.getVar('RPM_SIGN_PACKAGES') != '1' else ["--setopt=pkg_gpgcheck=True"]) + ["install"] + + (["--skip-broken"] if attempt_only else []) + pkgs) failed_scriptlets_pkgnames = collections.OrderedDict() @@ -313,10 +313,15 @@ class RpmPM(PackageManager): def _invoke_dnf(self, dnf_args, fatal = True, print_output = True ): os.environ['RPM_ETCCONFIGDIR'] = self.target_rootfs + # Set XDG_CACHE_HOME to avoid dnf attempting to install oe-repo system cache to a /tmp/ directory on the host. + os.environ['XDG_CACHE_HOME'] = oe.path.join(os.path.join(self.target_rootfs, "var/cache/libdnf5")) + dnf_cmd = bb.utils.which(os.getenv('PATH'), "dnf") - standard_dnf_args = ["-v", "--rpmverbosity=info", "-y", - "-c", oe.path.join(self.target_rootfs, "etc/dnf/dnf.conf"), + standard_dnf_args = ["-y", + "--config", oe.path.join(self.target_rootfs, "etc/dnf/dnf.conf"), + "--setopt=rpmverbosity=info", "--setopt=reposdir=%s" %(oe.path.join(self.target_rootfs, "etc/yum.repos.d")), + "--setopt=pluginconfpath=%s" %(os.path.join(self.d.getVar('STAGING_DIR_NATIVE'), "etc/dnf/dnf.conf")), "--installroot=%s" % (self.target_rootfs), "--setopt=logdir=%s" % (self.d.getVar('T')) ] diff --git a/meta/lib/oeqa/runtime/cases/dnf.py b/meta/lib/oeqa/runtime/cases/dnf.py index 3ccb18ce83..1becc8d8a0 100644 --- a/meta/lib/oeqa/runtime/cases/dnf.py +++ b/meta/lib/oeqa/runtime/cases/dnf.py @@ -17,7 +17,7 @@ from oeqa.runtime.decorator.package import OEHasPackage class DnfTest(OERuntimeTestCase): def dnf(self, command, expected = 0): - command = 'dnf %s' % command + command = 'dnf --setopt=protect_running_kernel=False %s' % command status, output = self.target.run(command, 1500) message = os.linesep.join([command, output]) self.assertEqual(status, expected, message) @@ -48,7 +48,7 @@ class DnfBasicTest(DnfTest): @OETestDepends(['dnf.DnfBasicTest.test_dnf_help']) def test_dnf_history(self): - self.dnf('history') + self.dnf('history list') class DnfRepoTest(DnfTest): @@ -68,7 +68,7 @@ class DnfRepoTest(DnfTest): deploy_url = 'http://%s:%s/' %(self.target.server_ip, self.repo_server.port) cmdlinerepoopts = ["--repofrompath=oe-testimage-repo-%s,%s%s" %(arch, deploy_url, arch) for arch in pkgarchs] - output = self.dnf(" ".join(cmdlinerepoopts) + " --nogpgcheck " + command) + output = self.dnf(" ".join(cmdlinerepoopts) + " --no-gpgchecks " + command) return output @OETestDepends(['dnf.DnfBasicTest.test_dnf_help']) @@ -96,7 +96,7 @@ class DnfRepoTest(DnfTest): def test_dnf_install_from_disk(self): self.dnf_with_repo('remove -y dnf-test-dep') self.dnf_with_repo('install -y --downloadonly dnf-test-dep') - status, output = self.target.run('find /var/cache/dnf -name dnf-test-dep*rpm') + status, output = self.target.run('find /var/cache/libdnf5 -name dnf-test-dep*rpm') self.assertEqual(status, 0, output) self.dnf_with_repo('install -y %s' % output) @@ -134,8 +134,8 @@ class DnfRepoTest(DnfTest): self.target.run('cp -r /etc/dnf %s/etc' % rootpath, 1500) self.target.run('cp /bin/sh %s/bin' % rootpath, 1500) self.target.run('mount -o bind /dev %s/dev/' % rootpath, 1500) - self.dnf_with_repo('install --installroot=%s -v -y --rpmverbosity=debug busybox' % rootpath) - status, output = self.target.run('test -e %s/var/cache/dnf' % rootpath, 1500) + self.dnf_with_repo('install --installroot=%s -y busybox' % rootpath) + status, output = self.target.run('test -e %s/var/cache/libdnf5' % rootpath, 1500) self.assertEqual(0, status, output) status, output = self.target.run('test -e %s/bin/busybox' % rootpath, 1500) self.assertEqual(0, status, output) @@ -158,8 +158,8 @@ class DnfRepoTest(DnfTest): self.target.run('cp -r /etc/dnf %s/etc' % rootpath) self.target.run('cp /bin/busybox %s/bin/sh' % rootpath) self.target.run('mount -o bind /dev %s/dev/' % rootpath) - self.dnf_with_repo('install --installroot=%s -v -y --rpmverbosity=debug busybox' % rootpath) - status, output = self.target.run('test -e %s/var/cache/dnf' % rootpath) + self.dnf_with_repo('install --installroot=%s -y busybox' % rootpath) + status, output = self.target.run('test -e %s/var/cache/libdnf5' % rootpath) self.assertEqual(0, status, output) status, output = self.target.run('test -e %s/bin/busybox' % rootpath) self.assertEqual(0, status, output) diff --git a/meta/lib/oeqa/selftest/cases/runtime_test.py b/meta/lib/oeqa/selftest/cases/runtime_test.py index d58ffa80f5..f6d441b50a 100644 --- a/meta/lib/oeqa/selftest/cases/runtime_test.py +++ b/meta/lib/oeqa/selftest/cases/runtime_test.py @@ -163,6 +163,11 @@ TEST_RUNQEMUPARAMS += " slirp" features += 'EXTRA_IMAGE_FEATURES += "package-management"\n' features += 'PACKAGE_CLASSES = "package_rpm"\n' + # librepo and rpm require sequoia + # https://github.com/rpm-software-management/dnf5/issues/2539 + features += 'PACKAGECONFIG:append:pn-rpm = " sequoia"\n' + features += 'PACKAGECONFIG:append:pn-librepo = " sequoia"\n' + bitbake('gnupg-native -c addto_recipe_sysroot') # Enable package feed signing diff --git a/meta/recipes-devtools/dnf/dnf/0001-Corretly-install-tmpfiles.d-configuration.patch b/meta/recipes-devtools/dnf/dnf/0001-Corretly-install-tmpfiles.d-configuration.patch deleted file mode 100644 index fd942228b9..0000000000 --- a/meta/recipes-devtools/dnf/dnf/0001-Corretly-install-tmpfiles.d-configuration.patch +++ /dev/null @@ -1,18 +0,0 @@ -From f70eb308c837f2c944e23bb680a501a605004d65 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Thu, 26 Jan 2017 16:36:20 +0200 -Subject: [PATCH] Corretly install tmpfiles.d configuration - -Upstream-Status: Inappropriate [oe-core specific] -Signed-off-by: Alexander Kanavin ---- - etc/tmpfiles.d/CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/etc/tmpfiles.d/CMakeLists.txt b/etc/tmpfiles.d/CMakeLists.txt -index f69c773e..3eb6d0e8 100644 ---- a/etc/tmpfiles.d/CMakeLists.txt -+++ b/etc/tmpfiles.d/CMakeLists.txt -@@ -1 +1 @@ --INSTALL (FILES dnf.conf DESTINATION /usr/lib/tmpfiles.d/) -+INSTALL (FILES dnf.conf DESTINATION ${SYSCONFDIR}/tmpfiles.d/) diff --git a/meta/recipes-devtools/dnf/dnf/0001-Do-not-hardcode-etc-and-systemd-unit-directories.patch b/meta/recipes-devtools/dnf/dnf/0001-Do-not-hardcode-etc-and-systemd-unit-directories.patch deleted file mode 100644 index 9d978cdc5f..0000000000 --- a/meta/recipes-devtools/dnf/dnf/0001-Do-not-hardcode-etc-and-systemd-unit-directories.patch +++ /dev/null @@ -1,26 +0,0 @@ -From c2b2b91b58f4531d4baf0a01f5d868d71e577a84 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Thu, 26 Jan 2017 16:25:47 +0200 -Subject: [PATCH] Do not hardcode /etc and systemd unit directories - -Upstream-Status: Inappropriate [oe-core specific] -Signed-off-by: Alexander Kanavin ---- - CMakeLists.txt | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index e71e9517..8fcb2069 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -3,8 +3,8 @@ PROJECT (dnf NONE) - - INCLUDE (${CMAKE_SOURCE_DIR}/VERSION.cmake) - --SET( SYSCONFDIR /etc) --SET( SYSTEMD_DIR /usr/lib/systemd/system) -+SET( SYSCONFDIR ${CMAKE_INSTALL_SYSCONFDIR}) -+SET( SYSTEMD_DIR $ENV{systemd_system_unitdir}) - - IF (NOT PYTHON_DESIRED) - FIND_PACKAGE (PythonInterp REQUIRED) diff --git a/meta/recipes-devtools/dnf/dnf/0001-Do-not-hardcode-the-systemd-unit-directory.patch b/meta/recipes-devtools/dnf/dnf/0001-Do-not-hardcode-the-systemd-unit-directory.patch new file mode 100644 index 0000000000..f82a0fca3c --- /dev/null +++ b/meta/recipes-devtools/dnf/dnf/0001-Do-not-hardcode-the-systemd-unit-directory.patch @@ -0,0 +1,29 @@ +From c263a746dac19d140fb31d07f1c4d4cb96750666 Mon Sep 17 00:00:00 2001 +From: Adam Duskett +Date: Thu, 27 Nov 2025 11:07:48 +0100 +Subject: [PATCH] Do not hardcode the systemd unit directory + +Upstream-Status: Inappropriate [oe-core specific] + +Rebased for 5.3.0.0 +Signed-off-by: Adam Duskett +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 0507e30..0537e85 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -7,7 +7,7 @@ project(dnf5 LANGUAGES CXX C VERSION ${VERSION_PRIME}.${VERSION_MAJOR}.${VERSION + cmake_policy(VERSION ${CMAKE_VERSION}) + + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") +-set(SYSTEMD_DIR "/usr/lib/systemd/system") ++set(SYSTEMD_DIR $ENV{systemd_system_unitdir}) + + message("Building ${PROJECT_NAME} version ${PROJECT_VERSION}") + +-- +2.52.0 + diff --git a/meta/recipes-devtools/dnf/dnf/0001-dnf-write-the-log-lock-to-root.patch b/meta/recipes-devtools/dnf/dnf/0001-dnf-write-the-log-lock-to-root.patch deleted file mode 100644 index 18f9a30949..0000000000 --- a/meta/recipes-devtools/dnf/dnf/0001-dnf-write-the-log-lock-to-root.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 049e2832284ab883e185d9020c881518a68e6c38 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Tue, 28 Apr 2020 15:55:00 +0200 -Subject: [PATCH] dnf: write the log lock to root - -Writing it to /var/log appears to be racing with installation -of base-files, and if lock is created first, base-files -will refuse to install (due to the target directory -already existing, and base-files creating it as a symlink). - -Upstream-Status: Inappropriate [oe-core specific] -Signed-off-by: Alexander Kanavin ---- - dnf/logging.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dnf/logging.py b/dnf/logging.py -index ef0b25f3..94610af6 100644 ---- a/dnf/logging.py -+++ b/dnf/logging.py -@@ -118,7 +118,7 @@ class MultiprocessRotatingFileHandler(logging.handlers.RotatingFileHandler): - def __init__(self, filename, mode='a', maxBytes=0, backupCount=0, encoding=None, delay=False): - super(MultiprocessRotatingFileHandler, self).__init__( - filename, mode, maxBytes, backupCount, encoding, delay) -- self.rotate_lock = dnf.lock.build_log_lock("/var/log/", True) -+ self.rotate_lock = dnf.lock.build_log_lock("/", True) - - def emit(self, record): - while True: diff --git a/meta/recipes-devtools/dnf/dnf/0001-lock.py-fix-Exception-handling.patch b/meta/recipes-devtools/dnf/dnf/0001-lock.py-fix-Exception-handling.patch deleted file mode 100644 index 6bffe9af0a..0000000000 --- a/meta/recipes-devtools/dnf/dnf/0001-lock.py-fix-Exception-handling.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 3881757eabfde2ff54400ab127b106ab085d83f0 Mon Sep 17 00:00:00 2001 -From: Changqing Li -Date: Wed, 13 Mar 2024 11:22:05 +0800 -Subject: [PATCH] lock.py: fix Exception handling - -Before, when logdir is not writable, _try_lock will raise an Exception -like "Permission denied: '/var/log/log_lock.pid'", and in this case, -_unlock_thread will not be called and the variable count will not be -handled, it maybe cause log_lock.pid not be deleted in case like [1]. - -For [1], it is an cross compile case, when dnf install some packages to -rootfs, seems like some threads don't do chroot like work, some threads -do chroot like work. so for the threads don't do chroot, "Permission denied" -Exception happend, for the threads that do chroot, log_lock.pid will be -created under installroot/var/log/log_lock.pid, since variable count not -handled correct before, log_lock.pid may not be deleted correctly. - -So fixed like this, if _try_lock raise Exception, _unlock_thread first, -then raise the Exception. - -[1] https://github.com/rpm-software-management/dnf/issues/1963 - -Upstream-Status: Submitted [ https://github.com/rpm-software-management/dnf/pull/2065 ] - -Signed-off-by: Changqing Li ---- - dnf/lock.py | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - -diff --git a/dnf/lock.py b/dnf/lock.py -index 6817aac9..5718062a 100644 ---- a/dnf/lock.py -+++ b/dnf/lock.py -@@ -128,7 +128,11 @@ class ProcessLock(object): - self._lock_thread() - prev_pid = -1 - my_pid = os.getpid() -- pid = self._try_lock(my_pid) -+ try: -+ pid = self._try_lock(my_pid) -+ except Exception: -+ self._unlock_thread() -+ raise - while pid != my_pid: - if pid != -1: - if not self.blocking: -@@ -140,7 +144,11 @@ class ProcessLock(object): - logger.info(msg) - prev_pid = pid - time.sleep(1) -- pid = self._try_lock(my_pid) -+ try: -+ pid = self._try_lock(my_pid) -+ except Exception: -+ self._unlock_thread() -+ raise - - def __exit__(self, *exc_args): - if self.count == 1: --- -2.25.1 - diff --git a/meta/recipes-devtools/dnf/dnf/0001-set-python-path-for-completion_helper.patch b/meta/recipes-devtools/dnf/dnf/0001-set-python-path-for-completion_helper.patch deleted file mode 100644 index fcd970a7ae..0000000000 --- a/meta/recipes-devtools/dnf/dnf/0001-set-python-path-for-completion_helper.patch +++ /dev/null @@ -1,21 +0,0 @@ -From fa32c7dcabaa3c00d3620a3266e49629365c0cbe Mon Sep 17 00:00:00 2001 -From: Jeremy Puhlman -Date: Wed, 11 Mar 2020 22:10:02 +0000 -Subject: [PATCH] set python path for completion_helper - -Upstream-Status: Inappropriate [oe-core specific] -Signed-off-by: Jeremy Puhlman ---- - dnf/cli/completion_helper.py.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dnf/cli/completion_helper.py.in b/dnf/cli/completion_helper.py.in -index 0da0f2a2..9330d15b 100644 ---- a/dnf/cli/completion_helper.py.in -+++ b/dnf/cli/completion_helper.py.in -@@ -1,4 +1,4 @@ --#!@PYTHON_EXECUTABLE@ -+#!/usr/bin/env python3 - # - # This file is part of dnf. - # diff --git a/meta/recipes-devtools/dnf/dnf/0002-cmake-set-CMP0190-to-OLD.patch b/meta/recipes-devtools/dnf/dnf/0002-cmake-set-CMP0190-to-OLD.patch new file mode 100644 index 0000000000..3ac3923956 --- /dev/null +++ b/meta/recipes-devtools/dnf/dnf/0002-cmake-set-CMP0190-to-OLD.patch @@ -0,0 +1,51 @@ +From 8eb5a6208fd9edfa7796d974b2e5256b05ffe001 Mon Sep 17 00:00:00 2001 +From: Adam Duskett +Date: Thu, 27 Nov 2025 11:49:43 +0100 +Subject: [PATCH] cmake: set CMP0190 to OLD + +Starting with CMake 4.1, cross-compiling python3 requires setting +-DCMAKE_CROSSCOMPILING_EMULATOR which can be done by inheriting +cmake-qemu. However, this leads to the following error: +Interpreter: Cannot run the interpreter ".../python3-native/python3" + +This is due to the target sysroot python3 binary not being installed +because it can't be executed. + +Set CMP0190 to old to force the old behavior. + +https://cmake.org/cmake/help/latest/policy/CMP0190.html + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Adam Duskett +--- + bindings/python3/CMakeLists.txt | 1 + + libdnf5-plugins/python_plugins_loader/CMakeLists.txt | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/bindings/python3/CMakeLists.txt b/bindings/python3/CMakeLists.txt +index fa7033d..4bfa434 100644 +--- a/bindings/python3/CMakeLists.txt ++++ b/bindings/python3/CMakeLists.txt +@@ -6,6 +6,7 @@ endif() + message("Building bindings for python3") + + ++cmake_policy(SET CMP0190 OLD) + find_package(Python3 REQUIRED COMPONENTS Interpreter Development) + include_directories(${Python3_INCLUDE_DIRS}) + +diff --git a/libdnf5-plugins/python_plugins_loader/CMakeLists.txt b/libdnf5-plugins/python_plugins_loader/CMakeLists.txt +index 5454a5d..d4a9915 100644 +--- a/libdnf5-plugins/python_plugins_loader/CMakeLists.txt ++++ b/libdnf5-plugins/python_plugins_loader/CMakeLists.txt +@@ -6,6 +6,7 @@ if(NOT WITH_PYTHON_PLUGINS_LOADER) + return() + endif() + ++cmake_policy(SET CMP0190 OLD) + find_package(Python3 REQUIRED COMPONENTS Interpreter Development) + find_package(SWIG REQUIRED) + include_directories(${Python3_INCLUDE_DIRS}) +-- +2.52.0 + diff --git a/meta/recipes-devtools/dnf/dnf/0003-Do-not-hardcode-system_cachedir.patch b/meta/recipes-devtools/dnf/dnf/0003-Do-not-hardcode-system_cachedir.patch new file mode 100644 index 0000000000..825368b760 --- /dev/null +++ b/meta/recipes-devtools/dnf/dnf/0003-Do-not-hardcode-system_cachedir.patch @@ -0,0 +1,36 @@ +From d0718ed10c1c255850fff5922f533bceef10f659 Mon Sep 17 00:00:00 2001 +From: Adam Duskett +Date: Thu, 27 Nov 2025 11:50:20 +0100 +Subject: [PATCH] Do not hardcode system_cachedir + +Because dnf is ran in a fakeroot environment, the UID of the +"user" is 0, and the hardcoded paths to the host system are +attempted, leading to the following error: + +[log_check] DEBUG: Failed to expire repository cache in path "/var/cache/libdnf5/ + +Remove the check for geteuid() == 0 and rely only on the +user cache dir. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Adam Duskett +--- + libdnf5/conf/config_main.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libdnf5/conf/config_main.cpp b/libdnf5/conf/config_main.cpp +index a83e4a2..ebdea4d 100644 +--- a/libdnf5/conf/config_main.cpp ++++ b/libdnf5/conf/config_main.cpp +@@ -237,7 +237,7 @@ class ConfigMain::Impl { + // Repo main config + + OptionNumber retries{10}; +- OptionPath cachedir{geteuid() == 0 ? SYSTEM_CACHEDIR : libdnf5::xdg::get_user_cache_dir() / "libdnf5"}; ++ OptionPath cachedir{libdnf5::xdg::get_user_cache_dir() / "libdnf5"}; + OptionBool fastestmirror{false}; + OptionStringAppendList excludeenvs{std::vector{}}; + OptionStringAppendList excludegroups{std::vector{}}; +-- +2.52.0 + diff --git a/meta/recipes-devtools/dnf/dnf/0004-add-support-for-gcc-12-and-below.patch b/meta/recipes-devtools/dnf/dnf/0004-add-support-for-gcc-12-and-below.patch new file mode 100644 index 0000000000..e0684434b1 --- /dev/null +++ b/meta/recipes-devtools/dnf/dnf/0004-add-support-for-gcc-12-and-below.patch @@ -0,0 +1,96 @@ +From cb0a8fcf3676dcebc87880872ea5b4ddfadd9c5c Mon Sep 17 00:00:00 2001 +From: Adam Duskett +Date: Thu, 27 Nov 2025 11:08:41 +0100 +Subject: [PATCH] add support for gcc 12 and below + + - Add missing headers for gcc <= 12 + - Add support for libfmt if the format header is not found + +Note: This patch should be removed once the minimum GCC version +for Yocto is >= 13. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Adam Duskett +--- + libdnf5/CMakeLists.txt | 8 ++++++++ + libdnf5/base/goal_elements.cpp | 2 +- + libdnf5/conf/config_main.cpp | 8 ++++++++ + libdnf5/logger/memory_buffer_logger.cpp | 1 + + 4 files changed, 18 insertions(+), 1 deletion(-) + +diff --git a/libdnf5/CMakeLists.txt b/libdnf5/CMakeLists.txt +index fa4c9d1..06a1f01 100644 +--- a/libdnf5/CMakeLists.txt ++++ b/libdnf5/CMakeLists.txt +@@ -7,6 +7,9 @@ if (NOT WITH_MODULEMD) + list(REMOVE_ITEM LIBDNF5_SOURCES ${LIBDNF5_SOURCES_MODULES}) + endif() + ++include(CheckIncludeFileCXX) ++check_include_file_cxx("format" CXX_FORMAT_SUPPORT) ++ + # create config header file + configure_file("config.h.in" ${CMAKE_CURRENT_SOURCE_DIR}/conf/config.h) + +@@ -47,6 +50,11 @@ set_target_properties(libdnf5 PROPERTIES OUTPUT_NAME "dnf5") + set_target_properties(libdnf5 PROPERTIES SOVERSION ${DNF_SO_VERSION}) + # required to have dlopen symbol + target_link_libraries(libdnf5 PUBLIC ${CMAKE_DL_LIBS}) ++if (NOT CXX_FORMAT_SUPPORT) ++ find_package(fmt REQUIRED) ++ target_link_libraries(libdnf5_obj PRIVATE fmt::fmt) ++ target_compile_definitions(libdnf5_obj PUBLIC USE_FMTLIB) ++endif() + + # required by clang + target_link_libraries(libdnf5 PUBLIC stdc++) +diff --git a/libdnf5/base/goal_elements.cpp b/libdnf5/base/goal_elements.cpp +index 9caaf54..572f327 100644 +--- a/libdnf5/base/goal_elements.cpp ++++ b/libdnf5/base/goal_elements.cpp +@@ -17,7 +17,7 @@ + // You should have received a copy of the GNU Lesser General Public License + // along with libdnf. If not, see . + +- ++#include + #include "libdnf5/base/goal_elements.hpp" + + #include "libdnf5/common/exception.hpp" +diff --git a/libdnf5/conf/config_main.cpp b/libdnf5/conf/config_main.cpp +index ebdea4d..a93b545 100644 +--- a/libdnf5/conf/config_main.cpp ++++ b/libdnf5/conf/config_main.cpp +@@ -37,9 +37,17 @@ + #include + #include + #include ++#include + #include + #include + ++#ifdef USE_FMTLIB ++#include ++namespace std { ++ using fmt::format; ++} ++#endif ++ + namespace libdnf5 { + + /// @brief Converts a friendly bandwidth option to bytes +diff --git a/libdnf5/logger/memory_buffer_logger.cpp b/libdnf5/logger/memory_buffer_logger.cpp +index 85bf707..89307e9 100644 +--- a/libdnf5/logger/memory_buffer_logger.cpp ++++ b/libdnf5/logger/memory_buffer_logger.cpp +@@ -20,6 +20,7 @@ + #include "libdnf5/logger/memory_buffer_logger.hpp" + + #include ++#include + + namespace libdnf5 { + +-- +2.52.0 + diff --git a/meta/recipes-devtools/dnf/dnf/0005-Do-not-prepend-installroot-to-logdir.patch b/meta/recipes-devtools/dnf/dnf/0005-Do-not-prepend-installroot-to-logdir.patch deleted file mode 100644 index a1c58d6563..0000000000 --- a/meta/recipes-devtools/dnf/dnf/0005-Do-not-prepend-installroot-to-logdir.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 0e7fc4a8523aad616493e6ad33c509e1e530d852 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Wed, 11 Jan 2017 15:10:13 +0200 -Subject: [PATCH] Do not prepend installroot to logdir. - -This would otherwise write the logs into rootfs/var/log -(whereas we want them in $T), -and will break installation of base-files rpm. - -Upstream-Status: Inappropriate [oe-core specific] -Signed-off-by: Alexander Kanavin ---- - dnf/cli/cli.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dnf/cli/cli.py b/dnf/cli/cli.py -index d3844df3..ac080f79 100644 ---- a/dnf/cli/cli.py -+++ b/dnf/cli/cli.py -@@ -954,7 +954,7 @@ class Cli(object): - logger.warning(_("Unable to detect release version (use '--releasever' to specify " - "release version)")) - -- for opt in ('cachedir', 'logdir', 'persistdir'): -+ for opt in ('cachedir', 'persistdir'): - conf.prepend_installroot(opt) - - self.base._logging._setup_from_dnf_conf(conf) diff --git a/meta/recipes-devtools/dnf/dnf/0005-fix-string-concatenation-errors-for-musl.patch b/meta/recipes-devtools/dnf/dnf/0005-fix-string-concatenation-errors-for-musl.patch new file mode 100644 index 0000000000..537cf1fa5d --- /dev/null +++ b/meta/recipes-devtools/dnf/dnf/0005-fix-string-concatenation-errors-for-musl.patch @@ -0,0 +1,100 @@ +From 9ffae0be82214e80d3476bce53efc7c9fc23f494 Mon Sep 17 00:00:00 2001 +From: Adam Duskett +Date: Thu, 27 Nov 2025 11:53:43 +0100 +Subject: [PATCH] fix string concatenation errors for musl + +Glibc uses some fancy overloading to ensure strchr returns a const char * +if a char * is passed as an argument. However, musl does not, which leads +to several `error: no matching function for call to 'std::__cxx11::basic_string::basic_string(const char*&, char*&)'` +errors. + +Change the variables declaration to const auto * const to fix +the problem. + +Upstream-Status: Backport [https://github.com/rpm-software-management/dnf5/commit/5902c3b4e90410df2c604e429ec03f72137c9b19] +Signed-off-by: Adam Duskett +--- + dnf5-plugins/config-manager_plugin/addrepo.cpp | 2 +- + dnf5-plugins/config-manager_plugin/setopt.cpp | 2 +- + dnf5-plugins/config-manager_plugin/setvar.cpp | 2 +- + dnf5/main.cpp | 4 ++-- + dnf5daemon-client/main.cpp | 2 +- + 5 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/dnf5-plugins/config-manager_plugin/addrepo.cpp b/dnf5-plugins/config-manager_plugin/addrepo.cpp +index 18437be2..6ee99338 100644 +--- a/dnf5-plugins/config-manager_plugin/addrepo.cpp ++++ b/dnf5-plugins/config-manager_plugin/addrepo.cpp +@@ -163,7 +163,7 @@ void ConfigManagerAddRepoCommand::set_argument_parser() { + [[maybe_unused]] cli::ArgumentParser::NamedArg * arg, + [[maybe_unused]] const char * option, + const char * value) { +- auto val = strchr(value + 1, '='); ++ const auto * const val = strchr(value + 1, '='); + if (!val) { + throw cli::ArgumentParserError( + M_("{}: Badly formatted argument value \"{}\""), std::string{"set"}, std::string{value}); +diff --git a/dnf5-plugins/config-manager_plugin/setopt.cpp b/dnf5-plugins/config-manager_plugin/setopt.cpp +index 97fe89d7..973431e2 100644 +--- a/dnf5-plugins/config-manager_plugin/setopt.cpp ++++ b/dnf5-plugins/config-manager_plugin/setopt.cpp +@@ -77,7 +77,7 @@ void ConfigManagerSetOptCommand::set_argument_parser() { + const char * const argv[]) { + for (int i = 0; i < argc; ++i) { + auto value = argv[i]; +- auto val = strchr(value + 1, '='); ++ const auto * const val = strchr(value + 1, '='); + if (!val) { + throw cli::ArgumentParserError( + M_("{}: Badly formatted argument value \"{}\""), std::string{"optval"}, std::string{value}); +diff --git a/dnf5-plugins/config-manager_plugin/setvar.cpp b/dnf5-plugins/config-manager_plugin/setvar.cpp +index d6361642..62722b5f 100644 +--- a/dnf5-plugins/config-manager_plugin/setvar.cpp ++++ b/dnf5-plugins/config-manager_plugin/setvar.cpp +@@ -43,7 +43,7 @@ void ConfigManagerSetVarCommand::set_argument_parser() { + [this, &ctx]([[maybe_unused]] cli::ArgumentParser::PositionalArg * arg, int argc, const char * const argv[]) { + for (int i = 0; i < argc; ++i) { + auto value = argv[i]; +- auto val = strchr(value + 1, '='); ++ const auto * const val = strchr(value + 1, '='); + if (!val) { + throw cli::ArgumentParserError( + M_("{}: Badly formatted argument value \"{}\""), std::string{"varval"}, std::string{value}); +diff --git a/dnf5/main.cpp b/dnf5/main.cpp +index 9f102b26..f51b8094 100644 +--- a/dnf5/main.cpp ++++ b/dnf5/main.cpp +@@ -243,7 +243,7 @@ void RootCommand::set_argument_parser() { + setopt->set_parse_hook_func( + [&ctx]( + [[maybe_unused]] ArgumentParser::NamedArg * arg, [[maybe_unused]] const char * option, const char * value) { +- auto val = strchr(value + 1, '='); ++ const auto * const val = strchr(value + 1, '='); + if (!val) { + throw libdnf5::cli::ArgumentParserError( + M_("{}: Badly formatted argument value \"{}\""), std::string{"setopt"}, std::string(value)); +@@ -282,7 +282,7 @@ void RootCommand::set_argument_parser() { + setvar->set_parse_hook_func( + [&ctx]( + [[maybe_unused]] ArgumentParser::NamedArg * arg, [[maybe_unused]] const char * option, const char * value) { +- auto val = strchr(value + 1, '='); ++ const auto * const val = strchr(value + 1, '='); + if (!val) { + throw libdnf5::cli::ArgumentParserError( + M_("{}: Badly formatted argument value \"{}\""), std::string{"setvar"}, std::string(value)); +diff --git a/dnf5daemon-client/main.cpp b/dnf5daemon-client/main.cpp +index 385a32bd..dfd1ee05 100644 +--- a/dnf5daemon-client/main.cpp ++++ b/dnf5daemon-client/main.cpp +@@ -160,7 +160,7 @@ void RootCommand::set_argument_parser() { + [[maybe_unused]] libdnf5::cli::ArgumentParser::NamedArg * arg, + [[maybe_unused]] const char * option, + const char * value) { +- auto val = strchr(value + 1, '='); ++ const auto * const val = strchr(value + 1, '='); + if (!val) { + throw std::runtime_error(std::string("setopt: Badly formatted argument value") + value); + } +-- +2.52.0 + diff --git a/meta/recipes-devtools/dnf/dnf/0006-add-missing-headers-for-musl.patch b/meta/recipes-devtools/dnf/dnf/0006-add-missing-headers-for-musl.patch new file mode 100644 index 0000000000..dbe9304d4d --- /dev/null +++ b/meta/recipes-devtools/dnf/dnf/0006-add-missing-headers-for-musl.patch @@ -0,0 +1,41 @@ +From dbe4c82deca42b6fc13f5bce01b35c0406a73db2 Mon Sep 17 00:00:00 2001 +From: Adam Duskett +Date: Thu, 27 Nov 2025 11:54:40 +0100 +Subject: [PATCH] add missing headers for musl + +cstdint needs to be implicitly added for musl + +Upstream-Status: Backport [https://github.com/rpm-software-management/dnf5/commit/00e5077e041139fab8ffcabe099b858a9559178c] +Signed-off-by: Adam Duskett +--- + include/libdnf5-cli/utils/units.hpp | 1 + + libdnf5-cli/utils/utf8.cpp | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/include/libdnf5-cli/utils/units.hpp b/include/libdnf5-cli/utils/units.hpp +index 0ee19fa4..349fbd35 100644 +--- a/include/libdnf5-cli/utils/units.hpp ++++ b/include/libdnf5-cli/utils/units.hpp +@@ -23,6 +23,7 @@ + + #include "libdnf5-cli/defs.h" + ++#include + #include + #include + +diff --git a/libdnf5-cli/utils/utf8.cpp b/libdnf5-cli/utils/utf8.cpp +index ebeb59f0..d3e0464b 100644 +--- a/libdnf5-cli/utils/utf8.cpp ++++ b/libdnf5-cli/utils/utf8.cpp +@@ -21,6 +21,7 @@ + #include "utf8.hpp" + + #include ++#include + #include + #include + +-- +2.52.0 + diff --git a/meta/recipes-devtools/dnf/dnf/0007-Define-FNM_EXTMATCH-for-musl.patch b/meta/recipes-devtools/dnf/dnf/0007-Define-FNM_EXTMATCH-for-musl.patch new file mode 100644 index 0000000000..203785a5e1 --- /dev/null +++ b/meta/recipes-devtools/dnf/dnf/0007-Define-FNM_EXTMATCH-for-musl.patch @@ -0,0 +1,36 @@ +From 8c65576fb01d8a7bbe954dca8e9eb528795e0090 Mon Sep 17 00:00:00 2001 +From: Adam Duskett +Date: Thu, 27 Nov 2025 11:56:23 +0100 +Subject: [PATCH] Define FNM_EXTMATCH for musl + +Fixes the following compilation errors with musl that does not have +FNM_EXTMATCH defined: +``` +error: 'FNM_EXTMATCH' undeclared (first use in this +function); did you mean 'FNM_NOMATCH'? +``` + +Upstream-Status: Backport [https://github.com/rpm-software-management/dnf5/commit/3739c4a34db6e7abcd8b4faf0db7d5307f37d340] +Signed-off-by: Adam Duskett +--- + libdnf5/common/sack/match_string.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/libdnf5/common/sack/match_string.cpp b/libdnf5/common/sack/match_string.cpp +index 78cc4dde..c41894d1 100644 +--- a/libdnf5/common/sack/match_string.cpp ++++ b/libdnf5/common/sack/match_string.cpp +@@ -29,6 +29,10 @@ + #include + #include + ++// TODO: Implement proper FNM_EXTMATCH support to fix MUSL errors. ++#if !defined(FNM_EXTMATCH) ++#define FNM_EXTMATCH (0) ++#endif + + namespace libdnf5::sack { + +-- +2.52.0 + diff --git a/meta/recipes-devtools/dnf/dnf/0008-libdnf-fix-arm-arch-mapping-issues-for-qemuarmv5.patch b/meta/recipes-devtools/dnf/dnf/0008-libdnf-fix-arm-arch-mapping-issues-for-qemuarmv5.patch new file mode 100644 index 0000000000..213382a4df --- /dev/null +++ b/meta/recipes-devtools/dnf/dnf/0008-libdnf-fix-arm-arch-mapping-issues-for-qemuarmv5.patch @@ -0,0 +1,59 @@ +From 32e926c627a3d0e81ce14890464abc5e5be74558 Mon Sep 17 00:00:00 2001 +From: Adam Duskett +Date: Thu, 27 Nov 2025 11:48:43 +0100 +Subject: [PATCH] libdnf: fix arm arch mapping issues for qemuarmv5 + +We change the way rpm architectures work, we make the machine name the default +machine specific package architecture. + +This arm mapping code can work or in the case of qemuarmv5, it doesn't as it +creates armv5hl which doesn't exist and causes errrors. We can simply remove +it, we don't need it. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Richard Purdie + +Rebased for 5.3.0.0 +Signed-off-by: Adam Duskett +--- + libdnf5/utils/system.cpp | 24 ------------------------ + 1 file changed, 24 deletions(-) + +diff --git a/libdnf5/utils/system.cpp b/libdnf5/utils/system.cpp +index ecdc57e..35d8801 100644 +--- a/libdnf5/utils/system.cpp ++++ b/libdnf5/utils/system.cpp +@@ -52,30 +52,6 @@ std::string detect_arch() { + throw RuntimeError(M_("Failed to execute uname()")); + } + +- if (!strncmp(un.machine, "armv", 4)) { +- /* un.machine is armvXE, where X is version number and E is +- * endianness (b or l); we need to add modifiers such as +- * h (hardfloat), n (neon). Neon is a requirement of armv8 so +- * as far as rpm is concerned armv8l is the equivalent of armv7hnl +- * (or 7hnb) so we don't explicitly add 'n' for 8+ as it's expected. */ +- char endian = un.machine[strlen(un.machine) - 1]; +- char * modifier = un.machine + 5; +- while (isdigit(*modifier)) /* keep armv7, armv8, armv9, armv10, armv100, ... */ +- modifier++; +- if (getauxval(AT_HWCAP) & HWCAP_ARM_VFP) +- *modifier++ = 'h'; +- if ((atoi(un.machine + 4) == 7) && (getauxval(AT_HWCAP) & HWCAP_ARM_NEON)) +- *modifier++ = 'n'; +- *modifier++ = endian; +- *modifier = 0; +- } +-#ifdef __MIPSEL__ +- // support for little endian MIPS +- if (!strcmp(un.machine, "mips")) +- strcpy(un.machine, "mipsel"); +- else if (!strcmp(un.machine, "mips64")) +- strcpy(un.machine, "mips64el"); +-#endif + return un.machine; + } + +-- +2.52.0 + diff --git a/meta/recipes-devtools/dnf/dnf/0029-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch b/meta/recipes-devtools/dnf/dnf/0029-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch deleted file mode 100644 index 64ea7874d3..0000000000 --- a/meta/recipes-devtools/dnf/dnf/0029-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch +++ /dev/null @@ -1,24 +0,0 @@ -From d5b154ea69afdcd862299a0b7f255f6ece3686c6 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Fri, 30 Dec 2016 18:29:07 +0200 -Subject: [PATCH] Do not set PYTHON_INSTALL_DIR by running python - -Upstream-Status: Inappropriate [oe-core specific] -Signed-off-by: Alexander Kanavin ---- - CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 9e2e9e9e..2056089d 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -19,7 +19,7 @@ ELSE () - MESSAGE (FATAL_ERROR "Invalid PYTHON_DESIRED value: " ${PYTHON_DESIRED}) - ENDIF() - --EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from sysconfig import get_path; stdout.write(get_path('purelib'))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR) -+#EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from sysconfig import get_path; stdout.write(get_path('purelib'))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR) - MESSAGE(STATUS "Python install dir is ${PYTHON_INSTALL_DIR}") - - ADD_SUBDIRECTORY (dnf) diff --git a/meta/recipes-devtools/dnf/dnf/0030-Run-python-scripts-using-env.patch b/meta/recipes-devtools/dnf/dnf/0030-Run-python-scripts-using-env.patch deleted file mode 100644 index eb46113f3a..0000000000 --- a/meta/recipes-devtools/dnf/dnf/0030-Run-python-scripts-using-env.patch +++ /dev/null @@ -1,34 +0,0 @@ -From d3556767b84f3687743fdad0a88af0739d736ea9 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Fri, 30 Dec 2016 18:29:37 +0200 -Subject: [PATCH] Run python scripts using env - -Otherwise the build tools hardcode the python path into them. - -Upstream-Status: Inappropriate [oe-core specific] -Signed-off-by: Alexander Kanavin ---- - bin/dnf-automatic.in | 2 +- - bin/dnf.in | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/bin/dnf-automatic.in b/bin/dnf-automatic.in -index 17e35a05..28827e38 100755 ---- a/bin/dnf-automatic.in -+++ b/bin/dnf-automatic.in -@@ -1,4 +1,4 @@ --#!@PYTHON_EXECUTABLE@ -+#!/usr/bin/env python3 - # dnf-automatic executable. - # - # Copyright (C) 2014-2016 Red Hat, Inc. -diff --git a/bin/dnf.in b/bin/dnf.in -index 55ceb3f2..e38973c7 100755 ---- a/bin/dnf.in -+++ b/bin/dnf.in -@@ -1,4 +1,4 @@ --#!@PYTHON_EXECUTABLE@ -+#!/usr/bin/env python3 - # The dnf executable script. - # - # Copyright (C) 2012-2016 Red Hat, Inc. diff --git a/meta/recipes-devtools/dnf/dnf_4.24.0.bb b/meta/recipes-devtools/dnf/dnf_4.24.0.bb deleted file mode 100644 index d40b85c4b0..0000000000 --- a/meta/recipes-devtools/dnf/dnf_4.24.0.bb +++ /dev/null @@ -1,96 +0,0 @@ -SUMMARY = "Package manager forked from Yum, using libsolv as a dependency resolver" -DESCRIPTION = "Software package manager that installs, updates, and removes \ -packages on RPM-based Linux distributions. It automatically computes \ -dependencies and determines the actions required to install packages." -HOMEPAGE = "https://github.com/rpm-software-management/dnf" -LICENSE = "GPL-2.0-only" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://PACKAGE-LICENSING;md5=4a0548e303dbc77f067335b4d688e745 \ - " - -SRC_URI = "git://github.com/rpm-software-management/dnf.git;branch=master;protocol=https \ - file://0001-Corretly-install-tmpfiles.d-configuration.patch \ - file://0001-Do-not-hardcode-etc-and-systemd-unit-directories.patch \ - file://0005-Do-not-prepend-installroot-to-logdir.patch \ - file://0029-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \ - file://0030-Run-python-scripts-using-env.patch \ - file://0001-set-python-path-for-completion_helper.patch \ - file://0001-lock.py-fix-Exception-handling.patch \ - " - -SRC_URI:append:class-native = " file://0001-dnf-write-the-log-lock-to-root.patch" - -SRCREV = "e47634fbe3565d0580e89ec21adb7c1b308642ce" -UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+(\.\d+)+)" - -inherit cmake gettext bash-completion setuptools3-base systemd - -DEPENDS += "libdnf librepo libcomps" - -# manpages generation requires http://www.sphinx-doc.org/ -EXTRA_OECMAKE = " -DWITH_MAN=0 -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3" - -BBCLASSEXTEND = "native nativesdk" - -RDEPENDS:${PN} += " \ - python3-core \ - python3-codecs \ - python3-ctypes \ - python3-netclient \ - python3-email \ - python3-threading \ - python3-logging \ - python3-fcntl \ - librepo \ - python3-shell \ - libcomps \ - libdnf \ - python3-sqlite3 \ - python3-compression \ - python3-rpm \ - python3-json \ - python3-curses \ - python3-misc \ - " - -RDEPENDS:${PN}:class-native = "" - -RRECOMMENDS:${PN}:class-target += "gnupg" - -# Create a symlink called 'dnf' as 'make install' does not do it, but -# .spec file in dnf source tree does (and then Fedora and dnf documentation -# says that dnf binary is plain 'dnf'). -do_install:append() { - ln -rs ${D}/${bindir}/dnf-3 ${D}/${bindir}/dnf - ln -rs ${D}/${bindir}/dnf-automatic-3 ${D}/${bindir}/dnf-automatic -} - -# Direct dnf-native to read rpm configuration from our sysroot, not the one it was compiled in -do_install:append:class-native() { - create_wrapper ${D}/${bindir}/dnf \ - SEQUOIA_CRYPTO_POLICY=${STAGING_DATADIR_NATIVE}/crypto-policies/back-ends/rpm-sequoia.config \ - RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm \ - RPM_NO_CHROOT_FOR_SCRIPTS=1 -} - -do_install:append:class-nativesdk() { - create_wrapper ${D}/${bindir}/dnf \ - RPM_CONFIGDIR=${SDKPATHNATIVE}${libdir_nativesdk}/rpm \ - RPM_NO_CHROOT_FOR_SCRIPTS=1 -} - -SYSTEMD_SERVICE:${PN} = "dnf-makecache.service dnf-makecache.timer \ - dnf-automatic.service dnf-automatic.timer \ - dnf-automatic-download.service dnf-automatic-download.timer \ - dnf-automatic-install.service dnf-automatic-install.timer \ - dnf-automatic-notifyonly.service dnf-automatic-notifyonly.timer \ -" -SYSTEMD_AUTO_ENABLE ?= "disable" - -SKIP_RECIPE[dnf] ?= "${@bb.utils.contains('PACKAGE_CLASSES', 'package_rpm', '', 'does not build without package_rpm in PACKAGE_CLASSES due disabled rpm support in libsolv', d)}" - -# Packages for testing purposes -PACKAGES += "${PN}-test-main ${PN}-test-dep" -ALLOW_EMPTY:${PN}-test-main = "1" -ALLOW_EMPTY:${PN}-test-dep = "1" -RRECOMMENDS:${PN}-test-main = "${PN}-test-dep" diff --git a/meta/recipes-devtools/dnf/dnf_5.3.0.0.bb b/meta/recipes-devtools/dnf/dnf_5.3.0.0.bb new file mode 100644 index 0000000000..560b1f928a --- /dev/null +++ b/meta/recipes-devtools/dnf/dnf_5.3.0.0.bb @@ -0,0 +1,192 @@ +SUMMARY = "DNF package manager rewritten in C++, using libsolv as a dependency resolver" +DESCRIPTION = "\ + DNF5 is a command-line package manager that automates the process of \ + installing, upgrading, configuring, and removing computer programs in a \ + consistent manner. It supports RPM packages, modulemd modules, and comps \ + groups and environments. \ +" +HOMEPAGE = "https://github.com/rpm-software-management/dnf5" +BUGTRACKER = "https://github.com/rpm-software-management/dnf5/issues" +CVE_PRODUCT = "rpm:dnf5 rpm-software-management:dnf5" +SECTION = "base" + +LICENSE = "GPL-2.0-or-later & LGPL-2.1-only" +LIC_FILES_CHKSUM = "\ + file://COPYING.md;md5=9733192df318d0f806fd668b92ba0ba6 \ + file://gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://lgpl-2.1.txt;md5=4b54a1fd55a448865a0b32d41598759d \ +" + +DEPENDS = "\ + fmt \ + glib-2.0 \ + json-c \ + libcomps \ + libmodulemd \ + librepo \ + libsolv \ + libtoml11 \ + libxml2 \ + sqlite3 \ + util-linux \ +" + +SRC_URI = "\ + git://github.com/rpm-software-management/dnf5.git;protocol=https;branch=main;tag=${PV} \ + file://0002-cmake-set-CMP0190-to-OLD.patch \ + file://0003-Do-not-hardcode-system_cachedir.patch \ + file://0004-add-support-for-gcc-12-and-below.patch \ + file://0005-fix-string-concatenation-errors-for-musl.patch \ + file://0006-add-missing-headers-for-musl.patch \ + file://0007-Define-FNM_EXTMATCH-for-musl.patch \ + file://0008-libdnf-fix-arm-arch-mapping-issues-for-qemuarmv5.patch \ +" +SRC_URI:append:class-native = " file://0001-Do-not-hardcode-the-systemd-unit-directory.patch" +SRCREV = "c6a42c2e7e9ee0a04d46e6820a5962925a99b085" + +UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+(\.\d+)+)" + +inherit bash-completion cmake gettext pkgconfig siteinfo systemd +inherit_defer ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3targetconfig', '', d)} + +PACKAGECONFIG[dnfdaemon-client] = "-DWITH_DNF5DAEMON_CLIENT=ON,-DWITH_DNF5DAEMON_CLIENT=OFF,sdbus-c++" +PACKAGECONFIG[dnfdaemon-server] = "-DWITH_DNF5DAEMON_SERVER=ON,-DWITH_DNF5DAEMON_SERVER=OFF,sdbus-c++" +PACKAGECONFIG[plugins] = "-DWITH_DNF5_PLUGINS=ON,-DWITH_DNF5_PLUGINS=OFF,curl sdbus-c++ zlib" +PACKAGECONFIG[plugin-actions] = "-DWITH_PLUGIN_ACTIONS=ON,-DWITH_PLUGIN_ACTIONS=OFF" +PACKAGECONFIG[plugin-appstream] = "-DWITH_PLUGIN_APPSTREAM=ON,-DWITH_PLUGIN_APPSTREAM=OFF,appstream" +PACKAGECONFIG[plugin-expired-pgp-keys] = "-DWITH_PLUGIN_EXPIRED_PGP_KEYS=ON,-DWITH_PLUGIN_EXPIRED_PGP_KEYS=OFF,gnupg" +PACKAGECONFIG[plugin-local] = "-DWITH_PLUGIN_LOCAL=ON,-DWITH_PLUGIN_LOCAL=OFF" + +# sdbus-c++ and journalctl integration. +PACKAGECONFIG[systemd] = "-DWITH_SYSTEMD=ON,-DWITH_SYSTEMD=OFF,sdbus-c++" + +# build options - bindings +PACKAGECONFIG[python3] = "-DWITH_PYTHON3=ON,-DWITH_PYTHON3=OFF,python3 swig-native" + +# No sdbus-c++-native package. +PACKAGECONFIG:remove:class-native = "\ + dnfdaemon-client \ + dnfdaemon-server \ + plugins \ + plugin-manifest \ + systemd \ +" + +PACKAGE_BEFORE_PN += "\ + ${PN}-dnfdaemon-server \ + ${PN}-plugins \ + ${PN}-python3 \ +" + +# manpages generation requires http://www.sphinx-doc.org/ +EXTRA_OECMAKE:append = " \ + -DENABLE_SOLV_FOCUSNEW=ON \ + -DWITH_DNF5_OBSOLETES_DNF=OFF \ + -DWITH_DNF5=ON \ + -DWITH_GO=OFF \ + -DWITH_HTML=OFF \ + -DWITH_LIBDNF5_CLI=ON \ + -DWITH_MAN=OFF \ + -DWITH_PERL5=OFF \ + -DWITH_PLUGIN_RHSM=OFF \ + -DWITH_RUBY=OFF \ + -DWITH_TESTS=OFF \ + -DWITH_PLUGIN_MANIFEST=OFF \ +" + +# No sdbus-c++-native package exists so remove all options that depend on it. +EXTRA_OECMAKE:append:class-native = " \ + -DWITH_DNF5DAEMON_CLIENT=OFF \ + -DWITH_DNF5DAEMON_SERVER=OFF \ + -DWITH_DNF5_PLUGINS=OFF \ + -DWITH_PLUGIN_MANIFEST=OFF \ + -DWITH_SYSTEMD=OFF \ +" + +# Create a symlink called 'dnf' as 'make install' does not do it, but +# .spec file in dnf source tree does (and then Fedora and dnf documentation +# says that dnf binary is plain 'dnf'). +do_install:append() { + ln -rs ${D}/${bindir}/dnf5 ${D}/${bindir}/dnf + install -d ${D}${sysconfdir}/dnf + + # DNF always installs service files to /usr/lib/systemd, even if usrmerge is not + # selected. Also, remove systemd files if systemd isn't selected. + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'false', 'true', d)}; then + rm -rf ${D}${libdir}/systemd + fi + + # Breaks dnf because the builddep plugin is provided in the + # dnf-plugins-core package which is not available in oe-core. + rm -f ${D}${datadir}/dnf5/aliases.d/compatibility-plugins.conf +} + +# Direct dnf-native to read rpm configuration from our sysroot, not the one it was compiled in +do_install:append:class-native() { + create_wrapper ${D}/${bindir}/dnf \ + SEQUOIA_CRYPTO_POLICY=${STAGING_DATADIR_NATIVE}/crypto-policies/back-ends/rpm-sequoia.config \ + RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm \ + RPM_NO_CHROOT_FOR_SCRIPTS=1 +} + +do_install:append:class-nativesdk() { + create_wrapper ${D}/${bindir}/dnf \ + RPM_CONFIGDIR=${SDKPATHNATIVE}${libdir_nativesdk}/rpm \ + RPM_NO_CHROOT_FOR_SCRIPTS=1 +} + +SYSTEMD_SERVICE:${PN} = "\ + dnf5-makecache.service \ + dnf5-makecache.timer \ +" + +SYSTEMD_AUTO_ENABLE ?= "disable" + +# Packages for testing purposes +PACKAGES += "${PN}-test-main ${PN}-test-dep" + +FILES:${PN} += "\ + ${bindir}/dnf* \ + ${datadir}/dbus-1/system-services/org.rpm.dnf.v0.service \ + ${datadir}/dnf5 \ + ${datadir}/polkit-1/actions/org.rpm.dnf* \ + ${datadir}/polkit-1/rules.d/org.rpm.dnf* \ + ${libdir}/dnf5 \ + ${libdir}/libdnf5* \ + ${sysconfdir}/dnf \ +" + +FILES:${PN}-bash-completion += "\ + ${datadir}/bash-completion/completions/dnf5 \ +" + +FILES:${PN}-dnfdaemon-server += "\ + ${systemd_system_unitdir}/dnf5daemon-server.service \ + ${datadir}/dbus-1/interfaces/org.rpm.dnf* \ + ${datadir}/dbus-1/system.d/org.rpm.dnf* \ +" + +FILES:${PN}-plugins += "\ + ${systemd_system_unitdir}/dnf-automatic.service \ + ${systemd_system_unitdir}/dnf-automatic.timer \ + ${systemd_system_unitdir}/dnf5-automatic.service \ + ${systemd_system_unitdir}/dnf5-automatic.timer \ +" + +FILES:${PN}-python3 += "\ + ${libdir}/${PYTHON_DIR}/site-packages/libdnf* \ +" + +FILES:${PN}-systemd += "\ + ${systemd_system_unitdir}/dnf5-offline-transaction.service \ + ${systemd_system_unitdir}/dnf5-offline-transaction-cleanup.service \ +" + +RRECOMMENDS:${PN}:class-target += "bash-completion gnupg" +RRECOMMENDS:${PN}-test-main = "${PN}-test-dep" +ALLOW_EMPTY:${PN}-test-main = "1" +ALLOW_EMPTY:${PN}-test-dep = "1" + +SKIP_RECIPE[dnf] ?= "${@bb.utils.contains('PACKAGE_CLASSES', 'package_rpm', '', 'does not build without package_rpm in PACKAGE_CLASSES due to disabled rpm support in libsolv', d)}" + +BBCLASSEXTEND = "native nativesdk" From patchwork Mon Dec 15 10:20:41 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adam Duskett X-Patchwork-Id: 76519 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1024DD59D99 for ; Mon, 15 Dec 2025 10:20:54 +0000 (UTC) Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.45241.1765794049689069060 for ; Mon, 15 Dec 2025 02:20:50 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=qwpkYtMu; spf=pass (domain: amarulasolutions.com, ip: 209.85.218.49, mailfrom: adam.duskett@amarulasolutions.com) Received: by mail-ej1-f49.google.com with SMTP id a640c23a62f3a-b7d0f26eb44so54851266b.2 for ; Mon, 15 Dec 2025 02:20:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1765794048; x=1766398848; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=gd0LMNaYc7rWMXOS/GTbzGsDXiPBkdpcermb5wYKujc=; b=qwpkYtMusXNbDsyc+qmpUBx6G/NHsgkisbq4Ruze0y89V+mAgt7aIr8WeW01A4zRkg tjmqd/Oo9mn7oZqBEgADrfRupipfLIlTOxgP/jeHwkCI2bCP68ERVFc3cqi8RqHqzFdP Kwpluemy9iPZRXPuJW8hz/q255oWYUf79QmgI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765794048; x=1766398848; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=gd0LMNaYc7rWMXOS/GTbzGsDXiPBkdpcermb5wYKujc=; b=mDbFedbI3K2+hbJAHThzLOHs5lHRH0xzIB7UaxswzCGLh84NHrHuUd/rLWDP/mg4e5 uiAVVycOuCx+cEZb3NYTAAS4bMQ/4Gb5K7toIkRZAlXEnJLwAZ4iV9YIAQaoeEEEUdME hdFrK8xUWYCM4zru1nR9ZqJnsQlm3QR6ecicvGGJPuTTuTLH6WTFtYxdyM9D7oFPCPzv L0Y5Ebb9OSSarVKHrMdffs3IV3vIwUnDeRl0Rwhh3aY8OnPG6AJFOs2sUUSv6YR0RsYE 2HHDiaVRj5EOBAoqGROjZmZk5Z5w3hUt7vSHullnx+ne4xiuOPP4U4q+2oeDrjiJvkWl CvKw== X-Gm-Message-State: AOJu0Yz/LwlgBjMs8Cj3We/qfyV1bsdeNdlbUyDJq2qpSYniWvw3NDHQ OsF256KLfSoQaqpDBee7uDB5BRjcrqzFMDYBBKWIYr+dwf/EshNX0n1rTHZuXh7FUwh20R+NF1Y S2/kg X-Gm-Gg: AY/fxX7Vr0AxpKiiidi8AwsN0qERt0Hvh257V+KB3TmVkHg0jHeUn4vaZj5e7yKGIJD kLkld9nIwmrvhsNlAPZc7D/StaxYLBC0q/Nu7SJyWjLFrSaH8ZjeswNBeTpBXEWauvHVHsBAmFA /BppThF+XKPBLAd7AWfxL/7QxBJ4qhaqVKuW+gYtdJEQNNcN2RUPaxdqrFMMvrPhE0pBGR/JAWb 3z1b5jlqAiw3fbKxpB6nUVQj+SfeWuvS5JTYCUvR+gpaJjPDIJnR+zFggjxG5OvEdr529XBUjBj ENIZBice8a54URUmcZ11LZVbOEs+9H3uz8qxlPMcqQFmOgF527D3xEBb84KFUUh1pb9okTglZVI OfH0869u856tO8ur91S+kydncfMHRMyTFqT6pJz/RFRJONtfkof6qFZvsQZYZOxR6chhrnVGfJ0 d1Qd+L99MEWLrejqeLwa412GPSHxMyNgcjF7KSvQe7IkgKHC2dV+3C8JOKwrOQn3FOHaWjlDBLY quFJKap5crQ0BaegXRrMQkhTEDjjiVzB9H2qynInvXCqU7Gcz8xTg3uLpWgtgjSw4hN X-Google-Smtp-Source: AGHT+IEA5qcOnRBsfHZ58YKEeG/MqU43K06jTPK6M1m9Plc2ygW5ey9jKoTaJelbjPfj/ipY8VQnZw== X-Received: by 2002:a17:907:e158:b0:b7d:3b3a:4d36 with SMTP id a640c23a62f3a-b7d3b3a6f6bmr298942266b.6.1765794047898; Mon, 15 Dec 2025 02:20:47 -0800 (PST) Received: from adam.amarulasolutions.com (2001-1c00-8101-1200-3ddc-5bb8-0efa-16f1.cable.dynamic.v6.ziggo.nl. [2001:1c00:8101:1200:3ddc:5bb8:efa:16f1]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b7cfa51757asm1357193566b.45.2025.12.15.02.20.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 02:20:47 -0800 (PST) From: Adam Duskett To: openembedded-core@lists.openembedded.org Cc: Adam Duskett Subject: [PATCH v4 7/7] libdnf: remove recipe Date: Mon, 15 Dec 2025 11:20:41 +0100 Message-ID: <20251215102041.1630567-7-adam.duskett@amarulasolutions.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251215102041.1630567-1-adam.duskett@amarulasolutions.com> References: <20251215102041.1630567-1-adam.duskett@amarulasolutions.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 15 Dec 2025 10:20:54 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/227723 libdnf5 is included in the dnf5 source tree now. Signed-off-by: Adam Duskett --- V1 -> V4: Add this patch to the series meta/conf/distro/include/maintainers.inc | 1 - ...or-both-libsolv-and-libsolvext-libdn.patch | 26 ---------- ...FNM_EXTMATCH-if-not-already-like-und.patch | 39 -------------- .../0001-drop-FindPythonInstDir.cmake.patch | 39 -------------- ...-utils.cpp-fix-compilation-with-musl.patch | 51 ------------------- ...ables-with-pkg-config-cmake-s-own-mo.patch | 27 ---------- .../libdnf/libdnf/armarch.patch | 50 ------------------ meta/recipes-devtools/libdnf/libdnf_0.75.0.bb | 33 ------------ 8 files changed, 266 deletions(-) delete mode 100644 meta/recipes-devtools/libdnf/libdnf/0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch delete mode 100644 meta/recipes-devtools/libdnf/libdnf/0001-dnf-repo-Define-FNM_EXTMATCH-if-not-already-like-und.patch delete mode 100644 meta/recipes-devtools/libdnf/libdnf/0001-drop-FindPythonInstDir.cmake.patch delete mode 100644 meta/recipes-devtools/libdnf/libdnf/0001-utils-utils.cpp-fix-compilation-with-musl.patch delete mode 100644 meta/recipes-devtools/libdnf/libdnf/0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch delete mode 100644 meta/recipes-devtools/libdnf/libdnf/armarch.patch delete mode 100644 meta/recipes-devtools/libdnf/libdnf_0.75.0.bb diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc index 222c09acf5..ed780ea440 100644 --- a/meta/conf/distro/include/maintainers.inc +++ b/meta/conf/distro/include/maintainers.inc @@ -335,7 +335,6 @@ RECIPE_MAINTAINER:pn-libcxx = "Khem Raj " RECIPE_MAINTAINER:pn-libdaemon = "Unassigned " RECIPE_MAINTAINER:pn-libdazzle = "Unassigned " RECIPE_MAINTAINER:pn-libdisplay-info = "Hiago De Franco " -RECIPE_MAINTAINER:pn-libdnf = "Unassigned " RECIPE_MAINTAINER:pn-libdrm = "Unassigned " RECIPE_MAINTAINER:pn-libedit = "Khem Raj " RECIPE_MAINTAINER:pn-libepoxy = "Unassigned " diff --git a/meta/recipes-devtools/libdnf/libdnf/0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch b/meta/recipes-devtools/libdnf/libdnf/0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch deleted file mode 100644 index 54b1262672..0000000000 --- a/meta/recipes-devtools/libdnf/libdnf/0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch +++ /dev/null @@ -1,26 +0,0 @@ -From cd8a24156cefab80b673af233f66ff44c1b7c458 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Tue, 7 Feb 2017 12:16:03 +0200 -Subject: [PATCH] Get parameters for both libsolv and libsolvext (libdnf is - - using both) - -Upstream-Status: Submitted [https://github.com/rpm-software-management/libdnf/pull/312] -Signed-off-by: Alexander Kanavin ---- - CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index a6f14318..60c66e94 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -51,7 +51,7 @@ endif() - - - # build dependencies --PKG_CHECK_MODULES (LIBSOLV REQUIRED libsolv) -+PKG_CHECK_MODULES (LIBSOLV REQUIRED libsolv libsolvext) - set(LIBSOLV_LIBRARY ${LIBSOLV_LIBRARIES}) - - diff --git a/meta/recipes-devtools/libdnf/libdnf/0001-dnf-repo-Define-FNM_EXTMATCH-if-not-already-like-und.patch b/meta/recipes-devtools/libdnf/libdnf/0001-dnf-repo-Define-FNM_EXTMATCH-if-not-already-like-und.patch deleted file mode 100644 index 14ef362ccd..0000000000 --- a/meta/recipes-devtools/libdnf/libdnf/0001-dnf-repo-Define-FNM_EXTMATCH-if-not-already-like-und.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 486d1c7826efb9e42bbb18b6537fd23a0a33b324 Mon Sep 17 00:00:00 2001 -From: Wang Mingyu -Date: Sun, 16 Nov 2025 23:29:18 +0000 -Subject: [PATCH] dnf-repo: Define FNM_EXTMATCH if not already (like under - musl). - -With musl, FNM_EXTMATCH is not defined: -dnf-repo.cpp -| dnf-repo.cpp: In function 'void dnf_repo_conf_load_overrides(DnfRepo*, const char*)': -| dnf-repo.cpp:971:50: error: 'FNM_EXTMATCH' was not declared in this scope; did you mean 'FNM_NOMATCH'? -| 971 | if (fnmatch(repo_id_pattern, repoId, FNM_EXTMATCH) != 0) { -| | ^~~~~~~~~~~~ -| | FNM_NOMATCH - -Upstream-Status: Submitted [https://github.com/rpm-software-management/libdnf/pull/1737/commits/47ed831c1fdb32519f2d66fee91bc47f9521d1d4] - -Signed-off-by: Wang Mingyu ---- - libdnf/dnf-repo.cpp | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/libdnf/dnf-repo.cpp b/libdnf/dnf-repo.cpp -index 44c0f8758..d53959414 100644 ---- a/libdnf/dnf-repo.cpp -+++ b/libdnf/dnf-repo.cpp -@@ -69,6 +69,10 @@ - #include - #include - -+#if !defined(FNM_EXTMATCH) -+#define FNM_EXTMATCH 0 -+#endif -+ - typedef struct - { - DnfRepoEnabled enabled; --- -2.43.0 - diff --git a/meta/recipes-devtools/libdnf/libdnf/0001-drop-FindPythonInstDir.cmake.patch b/meta/recipes-devtools/libdnf/libdnf/0001-drop-FindPythonInstDir.cmake.patch deleted file mode 100644 index 850a862979..0000000000 --- a/meta/recipes-devtools/libdnf/libdnf/0001-drop-FindPythonInstDir.cmake.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 5150fd9be924d2e9e74b2db664229423a4a00238 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Tue, 1 Jun 2021 10:23:59 +0800 -Subject: [PATCH] drop FindPythonInstDir.cmake - -Since commit [1] applied, PYTHON_INSTALL_DIR is not right -on nativesdk build -... -|Building for python3 -|-- Python install dir is -|tmp-glibc/work/x86_64-nativesdk-wrlinuxsdk-linux/nativesdk-libdnf/0.63.0-r0/ -recipe-sysroot-native/usr/lib/python3.9/site-packages -... - -Yocto manually set PYTHON_INSTALL_DIR from recipe, it is not -necessary to call FindPythonInstDir.cmake which will override -Yocto setting - -[1] https://github.com/rpm-software-management/libdnf/commit/f1cffbfb9f338da827e233c2d8ac3a25a6a59a69 - -Upstream-Status: Inappropriate [Yocto specific] - -Signed-off-by: Hongxu Jia ---- - cmake/modules/FindPythonInstDir.cmake | 7 +------ - 1 file changed, 1 insertion(+), 6 deletions(-) - -diff --git a/cmake/modules/FindPythonInstDir.cmake b/cmake/modules/FindPythonInstDir.cmake -index ed098ded..8b137891 100644 ---- a/cmake/modules/FindPythonInstDir.cmake -+++ b/cmake/modules/FindPythonInstDir.cmake -@@ -1,6 +1 @@ --EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c " --from sys import stdout --from sysconfig import get_path --path=get_path(name='platlib', vars={'platbase':'${CMAKE_INSTALL_PREFIX}'}) --stdout.write(path)" --OUTPUT_VARIABLE PYTHON_INSTALL_DIR) -+ diff --git a/meta/recipes-devtools/libdnf/libdnf/0001-utils-utils.cpp-fix-compilation-with-musl.patch b/meta/recipes-devtools/libdnf/libdnf/0001-utils-utils.cpp-fix-compilation-with-musl.patch deleted file mode 100644 index 061e7dffbd..0000000000 --- a/meta/recipes-devtools/libdnf/libdnf/0001-utils-utils.cpp-fix-compilation-with-musl.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 699608a4c03ebbf64c1d7b6f56d9811492175daa Mon Sep 17 00:00:00 2001 -From: Wang Mingyu -Date: Mon, 17 Nov 2025 00:05:14 +0000 -Subject: [PATCH] utils/utils.cpp: fix compilation with musl - -The basename() function requires the libgen.h header when -compiling with musl-libc, otherwise it complains: -error: 'basename' was not declared in this scope; did you mean 'g_basename'? -Also, musl's basename requires char* instead of const char* argument: -error: invalid conversion from 'const char*' to 'char*' [-fpermissive] - -Upstream-Status: Submitted [https://github.com/rpm-software-management/libdnf/pull/1737/commits/8720d5eeb0d348686d4c5f2ccb5a6c73d66eeff5] - -Signed-off-by: Wang Mingyu ---- - libdnf/utils/utils.cpp | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/libdnf/utils/utils.cpp b/libdnf/utils/utils.cpp -index f5d200b8a..501bc0ed2 100644 ---- a/libdnf/utils/utils.cpp -+++ b/libdnf/utils/utils.cpp -@@ -9,6 +9,7 @@ - #include - #include - #include -+#include - #include - #include - -@@ -311,7 +312,7 @@ std::vector createSortedFileList( - auto * path_fname = basename(path); - bool found{false}; - for (const auto & path_in_list : paths) { -- if (strcmp(path_fname, basename(path_in_list.c_str())) == 0) { -+ if (strcmp(path_fname, basename((char*)path_in_list.c_str())) == 0) { - found = true; - break; - } -@@ -325,7 +326,7 @@ std::vector createSortedFileList( - - // sort all drop-in configuration files alphabetically by their names - std::sort(paths.begin(), paths.end(), [](const std::string & p1, const std::string & p2) { -- return strcmp(basename(p1.c_str()), basename(p2.c_str())) < 0; -+ return strcmp(basename((char*)p1.c_str()), basename((char*)p2.c_str())) < 0; - }); - - return paths; --- -2.43.0 - diff --git a/meta/recipes-devtools/libdnf/libdnf/0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch b/meta/recipes-devtools/libdnf/libdnf/0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch deleted file mode 100644 index f55870802f..0000000000 --- a/meta/recipes-devtools/libdnf/libdnf/0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch +++ /dev/null @@ -1,27 +0,0 @@ -From a921a92f334a2a30741b906c206e041cef2d904d Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Fri, 30 Dec 2016 18:24:50 +0200 -Subject: [PATCH] Set libsolv variables with pkg-config (cmake's own module - - doesn't work properly). - -Upstream-Status: Submitted [https://github.com/rpm-software-management/libdnf/pull/312] -Signed-off-by: Alexander Kanavin ---- - CMakeLists.txt | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index c6bd46a6..a6f14318 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -51,7 +51,8 @@ endif() - - - # build dependencies --find_package(LibSolv 0.7.21 REQUIRED COMPONENTS ext) -+PKG_CHECK_MODULES (LIBSOLV REQUIRED libsolv) -+set(LIBSOLV_LIBRARY ${LIBSOLV_LIBRARIES}) - - - # build dependencies via pkg-config diff --git a/meta/recipes-devtools/libdnf/libdnf/armarch.patch b/meta/recipes-devtools/libdnf/libdnf/armarch.patch deleted file mode 100644 index 8a36f87227..0000000000 --- a/meta/recipes-devtools/libdnf/libdnf/armarch.patch +++ /dev/null @@ -1,50 +0,0 @@ -From baf4fc9f157e4c08c67d1a577b0f1e10f213a642 Mon Sep 17 00:00:00 2001 -From: Richard Purdie -Date: Thu, 9 Nov 2023 10:29:31 +0000 -Subject: [PATCH] libdnf: Fix arm arch mapping issues for qemuarmv5 - -We change the way rpm architectures work, we make the machine name the default machine -specific package architecture. - -This arm mapping code can work or in the case of qemuarmv5, it doesn't as it creates -armv5hl which doesn't exist and causes errrors. We can simply remove it, we don't need it. - -Upstream-Status: Inappropriate [Relies on OE rpm config] ---- - libdnf/hy-util.cpp | 23 ----------------------- - 1 file changed, 23 deletions(-) - -diff --git a/libdnf/hy-util.cpp b/libdnf/hy-util.cpp -index 9978c8e9..aa1369b6 100644 ---- a/libdnf/hy-util.cpp -+++ b/libdnf/hy-util.cpp -@@ -117,29 +117,6 @@ hy_detect_arch(char **arch) - if (uname(&un) < 0) - return DNF_ERROR_FAILED; - -- if (!strncmp(un.machine, "armv", 4)) { -- /* un.machine is armvXE, where X is version number and E is -- * endianness (b or l); we need to add modifiers such as -- * h (hardfloat), n (neon). Neon is a requirement of armv8 so -- * as far as rpm is concerned armv8l is the equivilent of armv7hnl -- * (or 7hnb) so we don't explicitly add 'n' for 8+ as it's expected. */ -- char endian = un.machine[strlen(un.machine)-1]; -- char *modifier = un.machine + 5; -- while(isdigit(*modifier)) /* keep armv7, armv8, armv9, armv10, armv100, ... */ -- modifier++; -- if (getauxval(AT_HWCAP) & HWCAP_ARM_VFP) -- *modifier++ = 'h'; -- if ((atoi(un.machine+4) == 7) && (getauxval(AT_HWCAP) & HWCAP_ARM_NEON)) -- *modifier++ = 'n'; -- *modifier++ = endian; -- *modifier = 0; -- } --#ifdef __MIPSEL__ -- if (!strcmp(un.machine, "mips")) -- strcpy(un.machine, "mipsel"); -- else if (!strcmp(un.machine, "mips64")) -- strcpy(un.machine, "mips64el"); --#endif - *arch = g_strdup(un.machine); - return 0; - } diff --git a/meta/recipes-devtools/libdnf/libdnf_0.75.0.bb b/meta/recipes-devtools/libdnf/libdnf_0.75.0.bb deleted file mode 100644 index ddcbc7d9ff..0000000000 --- a/meta/recipes-devtools/libdnf/libdnf_0.75.0.bb +++ /dev/null @@ -1,33 +0,0 @@ -SUMMARY = "Library providing simplified C and Python API to libsolv" -HOMEPAGE = "https://github.com/rpm-software-management/libdnf" -DESCRIPTION = "This library provides a high level package-manager. It's core library of dnf, PackageKit and rpm-ostree. It's replacement for deprecated hawkey library which it contains inside and uses librepo under the hood." -LICENSE = "LGPL-2.1-or-later" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -SRC_URI = "git://github.com/rpm-software-management/libdnf;branch=dnf-4-master;protocol=https \ - file://0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch \ - file://0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch \ - file://0001-drop-FindPythonInstDir.cmake.patch \ - file://armarch.patch \ - file://0001-dnf-repo-Define-FNM_EXTMATCH-if-not-already-like-und.patch \ - file://0001-utils-utils.cpp-fix-compilation-with-musl.patch \ - " - -SRCREV = "d39573195e24b43687587a8d83b9f6ac274e2412" -UPSTREAM_CHECK_GITTAGREGEX = "(?P(?!4\.90)\d+(\.\d+)+)" - -DEPENDS = "glib-2.0 libsolv librepo rpm libmodulemd json-c swig-native util-linux" - -inherit cmake pkgconfig setuptools3-base gettext - -COMPATIBLE_HOST_libc-musl = 'null' - -EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3 \ - -DWITH_GTKDOC=OFF -DWITH_MAN=OFF -DWITH_HTML=OFF \ - -DWITH_TESTS=OFF \ - -DWITH_ZCHUNK=OFF \ - " - -BBCLASSEXTEND = "native nativesdk" - -SKIP_RECIPE[libdnf] ?= "${@bb.utils.contains('PACKAGE_CLASSES', 'package_rpm', '', 'Does not build without package_rpm in PACKAGE_CLASSES due disabled rpm support in libsolv', d)}"