1*44b3caf2SPatrick WilliamsSUMMARY = "Package manager forked from Yum, using libsolv as a dependency resolver" 2*44b3caf2SPatrick WilliamsDESCRIPTION = "Software package manager that installs, updates, and removes \ 3*44b3caf2SPatrick Williamspackages on RPM-based Linux distributions. It automatically computes \ 4*44b3caf2SPatrick Williamsdependencies and determines the actions required to install packages." 5*44b3caf2SPatrick WilliamsHOMEPAGE = "https://github.com/rpm-software-management/dnf" 6*44b3caf2SPatrick WilliamsLICENSE = "GPL-2.0-only" 7*44b3caf2SPatrick WilliamsLIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ 8*44b3caf2SPatrick Williams file://PACKAGE-LICENSING;md5=4a0548e303dbc77f067335b4d688e745 \ 9*44b3caf2SPatrick Williams " 10*44b3caf2SPatrick Williams 11*44b3caf2SPatrick WilliamsSRC_URI = "git://github.com/rpm-software-management/dnf.git;branch=master;protocol=https \ 12*44b3caf2SPatrick Williams file://0001-Corretly-install-tmpfiles.d-configuration.patch \ 13*44b3caf2SPatrick Williams file://0001-Do-not-hardcode-etc-and-systemd-unit-directories.patch \ 14*44b3caf2SPatrick Williams file://0005-Do-not-prepend-installroot-to-logdir.patch \ 15*44b3caf2SPatrick Williams file://0029-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \ 16*44b3caf2SPatrick Williams file://0030-Run-python-scripts-using-env.patch \ 17*44b3caf2SPatrick Williams file://0001-set-python-path-for-completion_helper.patch \ 18*44b3caf2SPatrick Williams file://0001-lock.py-fix-Exception-handling.patch \ 19*44b3caf2SPatrick Williams " 20*44b3caf2SPatrick Williams 21*44b3caf2SPatrick WilliamsSRC_URI:append:class-native = "file://0001-dnf-write-the-log-lock-to-root.patch" 22*44b3caf2SPatrick Williams 23*44b3caf2SPatrick WilliamsSRCREV = "9b2b2e8ddab99caba4bc8059cab4263163172e81" 24*44b3caf2SPatrick WilliamsUPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)" 25*44b3caf2SPatrick Williams 26*44b3caf2SPatrick WilliamsS = "${WORKDIR}/git" 27*44b3caf2SPatrick Williams 28*44b3caf2SPatrick Williamsinherit cmake gettext bash-completion setuptools3-base systemd 29*44b3caf2SPatrick Williams 30*44b3caf2SPatrick WilliamsDEPENDS += "libdnf librepo libcomps python3-iniparse" 31*44b3caf2SPatrick Williams 32*44b3caf2SPatrick Williams# manpages generation requires http://www.sphinx-doc.org/ 33*44b3caf2SPatrick WilliamsEXTRA_OECMAKE = " -DWITH_MAN=0 -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3" 34*44b3caf2SPatrick Williams 35*44b3caf2SPatrick WilliamsBBCLASSEXTEND = "native nativesdk" 36*44b3caf2SPatrick Williams 37*44b3caf2SPatrick WilliamsRDEPENDS:${PN} += " \ 38*44b3caf2SPatrick Williams python3-core \ 39*44b3caf2SPatrick Williams python3-codecs \ 40*44b3caf2SPatrick Williams python3-netclient \ 41*44b3caf2SPatrick Williams python3-email \ 42*44b3caf2SPatrick Williams python3-threading \ 43*44b3caf2SPatrick Williams python3-logging \ 44*44b3caf2SPatrick Williams python3-fcntl \ 45*44b3caf2SPatrick Williams librepo \ 46*44b3caf2SPatrick Williams python3-shell \ 47*44b3caf2SPatrick Williams libcomps \ 48*44b3caf2SPatrick Williams libdnf \ 49*44b3caf2SPatrick Williams python3-sqlite3 \ 50*44b3caf2SPatrick Williams python3-compression \ 51*44b3caf2SPatrick Williams python3-rpm \ 52*44b3caf2SPatrick Williams python3-iniparse \ 53*44b3caf2SPatrick Williams python3-json \ 54*44b3caf2SPatrick Williams python3-curses \ 55*44b3caf2SPatrick Williams python3-misc \ 56*44b3caf2SPatrick Williams " 57*44b3caf2SPatrick Williams 58*44b3caf2SPatrick WilliamsRDEPENDS:${PN}:class-native = "" 59*44b3caf2SPatrick Williams 60*44b3caf2SPatrick WilliamsRRECOMMENDS:${PN}:class-target += "gnupg" 61*44b3caf2SPatrick Williams 62*44b3caf2SPatrick Williams# Create a symlink called 'dnf' as 'make install' does not do it, but 63*44b3caf2SPatrick Williams# .spec file in dnf source tree does (and then Fedora and dnf documentation 64*44b3caf2SPatrick Williams# says that dnf binary is plain 'dnf'). 65*44b3caf2SPatrick Williamsdo_install:append() { 66*44b3caf2SPatrick Williams ln -rs ${D}/${bindir}/dnf-3 ${D}/${bindir}/dnf 67*44b3caf2SPatrick Williams ln -rs ${D}/${bindir}/dnf-automatic-3 ${D}/${bindir}/dnf-automatic 68*44b3caf2SPatrick Williams} 69*44b3caf2SPatrick Williams 70*44b3caf2SPatrick Williams# Direct dnf-native to read rpm configuration from our sysroot, not the one it was compiled in 71*44b3caf2SPatrick Williamsdo_install:append:class-native() { 72*44b3caf2SPatrick Williams create_wrapper ${D}/${bindir}/dnf \ 73*44b3caf2SPatrick Williams RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm \ 74*44b3caf2SPatrick Williams RPM_NO_CHROOT_FOR_SCRIPTS=1 75*44b3caf2SPatrick Williams} 76*44b3caf2SPatrick Williams 77*44b3caf2SPatrick Williamsdo_install:append:class-nativesdk() { 78*44b3caf2SPatrick Williams create_wrapper ${D}/${bindir}/dnf \ 79*44b3caf2SPatrick Williams RPM_CONFIGDIR=${SDKPATHNATIVE}${libdir_nativesdk}/rpm \ 80*44b3caf2SPatrick Williams RPM_NO_CHROOT_FOR_SCRIPTS=1 81*44b3caf2SPatrick Williams} 82*44b3caf2SPatrick Williams 83*44b3caf2SPatrick WilliamsSYSTEMD_SERVICE:${PN} = "dnf-makecache.service dnf-makecache.timer \ 84*44b3caf2SPatrick Williams dnf-automatic.service dnf-automatic.timer \ 85*44b3caf2SPatrick Williams dnf-automatic-download.service dnf-automatic-download.timer \ 86*44b3caf2SPatrick Williams dnf-automatic-install.service dnf-automatic-install.timer \ 87*44b3caf2SPatrick Williams dnf-automatic-notifyonly.service dnf-automatic-notifyonly.timer \ 88*44b3caf2SPatrick Williams" 89*44b3caf2SPatrick WilliamsSYSTEMD_AUTO_ENABLE ?= "disable" 90*44b3caf2SPatrick Williams 91*44b3caf2SPatrick WilliamsSKIP_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)}" 92*44b3caf2SPatrick Williams 93*44b3caf2SPatrick Williams# Packages for testing purposes 94*44b3caf2SPatrick WilliamsPACKAGES += "${PN}-test-main ${PN}-test-dep" 95*44b3caf2SPatrick WilliamsALLOW_EMPTY:${PN}-test-main = "1" 96*44b3caf2SPatrick WilliamsALLOW_EMPTY:${PN}-test-dep = "1" 97*44b3caf2SPatrick WilliamsRRECOMMENDS:${PN}-test-main = "${PN}-test-dep" 98