Files
poky/meta/recipes-devtools/dnf/dnf_4.22.0.bb
Alexander Kanavin f59a7df3fe meta: remove S in recipes that fetch from git via setting BB_GIT_DEFAULT_DESTSUFFIX
Removing all the S = ${WORKDIR}/git assignments works because BB_GIT_DEFAULT_DESTSUFFIX
is set to match S from bitbake.conf (which itself is set to match typical tarball
releases).

A few recipes are setting S to a sub-directory of the git tree and need
to be adjusted accordingly.

bzip2 recipe is fetching a tarball and separately cloning tests;
adjust the recipe to put the latter into 'bzip2-tests', instead of 'git'.

devupstream.bbclass no longer needs to rewrite S, and is adjusted accordingly.

Adjust scripts/lib/recipetool/append.py to not hardcode 'git' as unpack
destination.

Adjust kernel-yocto.bbclass to use the git unpack variable instead
of hardcoding 'git' (there's also removal of repetition of
string constants and a correction of workdir/unpackdir mismatch in
one of the if-else branches).

Ensure build-appliance-image recipe does not use 'git' as checkout directory for
poky repo, but rather explicitly name it 'poky'.

Ensure reproducible.py code that looks for git repositories does not
hardcode 'git' but uses the destination set by BB_GIT_DEFAULT_DESTSUFFIX.

Ensure recipetool does not write out unneeded S settings into newly
created recipes that fetch from git.

Adjust selftest to not hardcode 'git' as unpack directory.

(From OE-Core rev: f80c07019ddadaf9c5fb890faabfda7920ecd15e)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-20 12:07:26 +01:00

97 lines
3.7 KiB
BlitzBasic

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 = "da9a7066be8e1628d9453428d33685225cd9c90d"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\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-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"