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