mirror of
https://git.yoctoproject.org/poky
synced 2026-04-30 21:32:13 +02:00
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>
97 lines
3.7 KiB
BlitzBasic
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"
|