[gnome-continuous-yocto/gnomeostree-3.28-rocko: 5147/8267] dnf: add /usr/bin/dnf symlink that points to /usr/bin/dnf-2



commit aa66e8782ed9b869480e4a1aac12923dfee10368
Author: Alexander Kanavin <alexander kanavin linux intel com>
Date:   Thu Mar 16 15:19:07 2017 +0200

    dnf: add /usr/bin/dnf symlink that points to /usr/bin/dnf-2
    
    All documentation refers to dnf binary as 'dnf' yet make install
    does not create one - it's done by Fedora's spec file when building
    the rpm. Let's replicate this behavior.
    
    (From OE-Core rev: 456c4a8ffc9a292d7a3e036d92baf4a8f14d1f45)
    
    Signed-off-by: Alexander Kanavin <alexander kanavin linux intel com>
    Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>

 meta/lib/oe/package_manager.py       |    2 +-
 meta/lib/oeqa/runtime/cases/dnf.py   |    2 +-
 meta/recipes-devtools/dnf/dnf_git.bb |   10 +++++++++-
 3 files changed, 11 insertions(+), 3 deletions(-)
---
diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py
index eeb4c76..ae6849b 100644
--- a/meta/lib/oe/package_manager.py
+++ b/meta/lib/oe/package_manager.py
@@ -677,7 +677,7 @@ class RpmPM(PackageManager):
     def _invoke_dnf(self, dnf_args, fatal = True, print_output = True ):
         os.environ['RPM_ETCCONFIGDIR'] = self.target_rootfs
 
-        dnf_cmd = bb.utils.which(os.getenv('PATH'), "dnf-2")
+        dnf_cmd = bb.utils.which(os.getenv('PATH'), "dnf")
         standard_dnf_args = (["-v", "--rpmverbosity=debug"] if self.d.getVar('ROOTFS_RPM_DEBUG') else []) + 
["-y",
                              "-c", oe.path.join(self.target_rootfs, "etc/dnf/dnf.conf"),
                              "--setopt=reposdir=%s" %(oe.path.join(self.target_rootfs, "etc/yum.repos.d")),
diff --git a/meta/lib/oeqa/runtime/cases/dnf.py b/meta/lib/oeqa/runtime/cases/dnf.py
index 77e7eb9..59a263d 100644
--- a/meta/lib/oeqa/runtime/cases/dnf.py
+++ b/meta/lib/oeqa/runtime/cases/dnf.py
@@ -12,7 +12,7 @@ from oeqa.runtime.decorator.package import OEHasPackage
 class DnfTest(OERuntimeTestCase):
 
     def dnf(self, command, expected = 0):
-        command = 'dnf-2 %s' % command
+        command = 'dnf %s' % command
         status, output = self.target.run(command, 1500)
         message = os.linesep.join([command, output])
         self.assertEqual(status, expected, message)
diff --git a/meta/recipes-devtools/dnf/dnf_git.bb b/meta/recipes-devtools/dnf/dnf_git.bb
index 018352a..3a2cb63 100644
--- a/meta/recipes-devtools/dnf/dnf_git.bb
+++ b/meta/recipes-devtools/dnf/dnf_git.bb
@@ -30,9 +30,17 @@ EXTRA_OECMAKE = " -DWITH_MAN=0 -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR}"
 BBCLASSEXTEND = "native nativesdk"
 RDEPENDS_${PN}_class-target += "python-core python-codecs python-netclient python-email python-threading 
python-distutils librepo python-shell python-subprocess libcomps libdnf python-sqlite3 python-compression 
python-pygpgme python-backports-lzma python-rpm python-iniparse python-json python-importlib python-curses 
python-argparse"
 
+# 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 -s -r ${D}/${bindir}/dnf-2 ${D}/${bindir}/dnf
+        ln -s -r ${D}/${bindir}/dnf-automatic-2 ${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-2 \
+        create_wrapper ${D}/${bindir}/dnf \
                 RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm \
                 RPM_NO_CHROOT_FOR_SCRIPTS=1
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]