From 21812ff74575e086175e4e1fdff6f2e3a10f4557 Mon Sep 17 00:00:00 2001 From: Rich Mattes Date: Oct 19 2015 01:11:31 +0000 Subject: Update to release 0.11.4 - Remove upstream patches --- diff --git a/.gitignore b/.gitignore index 3be7f97..9769334 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ /rosdep-0.10.33-6dcd852.tar.gz /rosdep-0.11.0-13a9b20.tar.gz /rosdep-23f30f7e42f4a7184de001fe1ef21ad44a015a4c.tar.gz +/rosdep-6cdef863382f5c812030ee1c15e43c4f0b98149e.tar.gz diff --git a/python-rosdep-0.11.2-fedora-dnf-fixes.patch b/python-rosdep-0.11.2-fedora-dnf-fixes.patch deleted file mode 100644 index 19f3213..0000000 --- a/python-rosdep-0.11.2-fedora-dnf-fixes.patch +++ /dev/null @@ -1,376 +0,0 @@ -From e649917b5fb346f3a7b3017524f099068303e08a Mon Sep 17 00:00:00 2001 -From: Scott K Logan -Date: Thu, 27 Aug 2015 17:03:14 -0700 -Subject: [PATCH 1/4] Use functions for storing OS default installer - -This allows the OS to be more flexible in determining the installer that should be used. ---- - src/rosdep2/installers.py | 18 +++++++++++------- - src/rosdep2/platforms/arch.py | 2 +- - src/rosdep2/platforms/cygwin.py | 2 +- - src/rosdep2/platforms/debian.py | 4 ++-- - src/rosdep2/platforms/freebsd.py | 2 +- - src/rosdep2/platforms/gentoo.py | 2 +- - src/rosdep2/platforms/opensuse.py | 2 +- - src/rosdep2/platforms/osx.py | 2 +- - src/rosdep2/platforms/redhat.py | 4 ++-- - test/test_rosdep_installers.py | 14 +++++++++----- - 10 files changed, 30 insertions(+), 22 deletions(-) - -diff --git a/src/rosdep2/installers.py b/src/rosdep2/installers.py -index 2eec7f9..0a7973f 100644 ---- a/src/rosdep2/installers.py -+++ b/src/rosdep2/installers.py -@@ -211,13 +211,12 @@ def set_default_os_installer_key(self, os_key, installer_key): - """ - if not os_key in self.os_installers: - raise KeyError("unknown OS: %s"%(os_key)) -- if not installer_key in self.os_installers[os_key]: -- raise KeyError("installer [%s] is not associated with OS [%s]. call add_os_installer_key() first"%(installer_key, os_key)) -- -- # validate, will throw KeyError -- self.get_installer(installer_key) -+ if not hasattr(installer_key, '__call__'): -+ raise ValueError("version type should be a method") -+ if not installer_key(self.os_detect) in self.os_installers[os_key]: -+ raise KeyError("installer [%s] is not associated with OS [%s]. call add_os_installer_key() first"%(installer_key(self.os_detect), os_key)) - if self.verbose: -- print("set default installer [%s] for OS [%s]"%(installer_key, os_key)) -+ print("set default installer for OS [%s]"%(os_key,)) - self.default_os_installer[os_key] = installer_key - - def get_default_os_installer_key(self, os_key): -@@ -232,7 +231,12 @@ def get_default_os_installer_key(self, os_key): - if not os_key in self.os_installers: - raise KeyError("unknown OS: %s"%(os_key)) - try: -- return self.default_os_installer[os_key] -+ installer_key = self.default_os_installer[os_key](self.os_detect) -+ if not installer_key in self.os_installers[os_key]: -+ raise KeyError("installer [%s] is not associated with OS [%s]. call add_os_installer_key() first"%(installer_key, os_key)) -+ # validate, will throw KeyError -+ self.get_installer(installer_key) -+ return installer_key - except KeyError: - return None - -diff --git a/src/rosdep2/platforms/arch.py b/src/rosdep2/platforms/arch.py -index e1b4df8..8fad48b 100644 ---- a/src/rosdep2/platforms/arch.py -+++ b/src/rosdep2/platforms/arch.py -@@ -42,7 +42,7 @@ def register_installers(context): - def register_platforms(context): - context.add_os_installer_key(ARCH_OS_NAME, SOURCE_INSTALLER) - context.add_os_installer_key(ARCH_OS_NAME, PACMAN_INSTALLER) -- context.set_default_os_installer_key(ARCH_OS_NAME, PACMAN_INSTALLER) -+ context.set_default_os_installer_key(ARCH_OS_NAME, lambda self: PACMAN_INSTALLER) - - def pacman_detect_single(p): - return not subprocess.call(['pacman', '-Q', p], stdout=subprocess.PIPE, stderr=subprocess.PIPE) -diff --git a/src/rosdep2/platforms/cygwin.py b/src/rosdep2/platforms/cygwin.py -index f68a3a5..adbd446 100644 ---- a/src/rosdep2/platforms/cygwin.py -+++ b/src/rosdep2/platforms/cygwin.py -@@ -45,7 +45,7 @@ def register_installers(context): - def register_platforms(context): - context.add_os_installer_key(OS_CYGWIN, SOURCE_INSTALLER) - context.add_os_installer_key(OS_CYGWIN, APT_CYG_INSTALLER) -- context.set_default_os_installer_key(OS_CYGWIN, APT_CYG_INSTALLER) -+ context.set_default_os_installer_key(OS_CYGWIN, lambda self: APT_CYG_INSTALLER) - - def cygcheck_detect_single(p): - std_out = read_stdout(['cygcheck', '-c', p]) -diff --git a/src/rosdep2/platforms/debian.py b/src/rosdep2/platforms/debian.py -index 52f9945..8456912 100644 ---- a/src/rosdep2/platforms/debian.py -+++ b/src/rosdep2/platforms/debian.py -@@ -55,7 +55,7 @@ def register_debian(context): - context.add_os_installer_key(OS_DEBIAN, PIP_INSTALLER) - context.add_os_installer_key(OS_DEBIAN, GEM_INSTALLER) - context.add_os_installer_key(OS_DEBIAN, SOURCE_INSTALLER) -- context.set_default_os_installer_key(OS_DEBIAN, APT_INSTALLER) -+ context.set_default_os_installer_key(OS_DEBIAN, lambda self: APT_INSTALLER) - context.set_os_version_type(OS_DEBIAN, OsDetect.get_codename) - - def register_linaro(context): -@@ -70,7 +70,7 @@ def register_ubuntu(context): - context.add_os_installer_key(OS_UBUNTU, PIP_INSTALLER) - context.add_os_installer_key(OS_UBUNTU, GEM_INSTALLER) - context.add_os_installer_key(OS_UBUNTU, SOURCE_INSTALLER) -- context.set_default_os_installer_key(OS_UBUNTU, APT_INSTALLER) -+ context.set_default_os_installer_key(OS_UBUNTU, lambda self: APT_INSTALLER) - context.set_os_version_type(OS_UBUNTU, OsDetect.get_codename) - - def dpkg_detect(pkgs, exec_fn=None): -diff --git a/src/rosdep2/platforms/freebsd.py b/src/rosdep2/platforms/freebsd.py -index d9ff8c3..d6d4f57 100644 ---- a/src/rosdep2/platforms/freebsd.py -+++ b/src/rosdep2/platforms/freebsd.py -@@ -45,7 +45,7 @@ def register_installers(context): - def register_platforms(context): - context.add_os_installer_key(OS_FREEBSD, SOURCE_INSTALLER) - context.add_os_installer_key(OS_FREEBSD, PKG_ADD_INSTALLER) -- context.set_default_os_installer_key(OS_FREEBSD, PKG_ADD_INSTALLER) -+ context.set_default_os_installer_key(OS_FREEBSD, lambda self: PKG_ADD_INSTALLER) - - def pkg_info_detect_single(p): - if p == "builtin": -diff --git a/src/rosdep2/platforms/gentoo.py b/src/rosdep2/platforms/gentoo.py -index 83212cd..d617fad 100644 ---- a/src/rosdep2/platforms/gentoo.py -+++ b/src/rosdep2/platforms/gentoo.py -@@ -56,7 +56,7 @@ def register_installers(context): - def register_platforms(context): - context.add_os_installer_key(OS_GENTOO, PORTAGE_INSTALLER) - context.add_os_installer_key(OS_GENTOO, SOURCE_INSTALLER) -- context.set_default_os_installer_key(OS_GENTOO, PORTAGE_INSTALLER) -+ context.set_default_os_installer_key(OS_GENTOO, lambda self: PORTAGE_INSTALLER) - - # Determine whether an atom is already satisfied - def portage_detect_single(atom, exec_fn = read_stdout ): -diff --git a/src/rosdep2/platforms/opensuse.py b/src/rosdep2/platforms/opensuse.py -index 1dc6c0c..5a8fa56 100644 ---- a/src/rosdep2/platforms/opensuse.py -+++ b/src/rosdep2/platforms/opensuse.py -@@ -43,7 +43,7 @@ def register_installers(context): - def register_platforms(context): - context.add_os_installer_key(OS_OPENSUSE, SOURCE_INSTALLER) - context.add_os_installer_key(OS_OPENSUSE, ZYPPER_INSTALLER) -- context.set_default_os_installer_key(OS_OPENSUSE, ZYPPER_INSTALLER) -+ context.set_default_os_installer_key(OS_OPENSUSE, lambda self: ZYPPER_INSTALLER) - - def rpm_detect(packages): - installed = [] -diff --git a/src/rosdep2/platforms/osx.py b/src/rosdep2/platforms/osx.py -index c0fdc11..a88dced 100644 ---- a/src/rosdep2/platforms/osx.py -+++ b/src/rosdep2/platforms/osx.py -@@ -62,7 +62,7 @@ def register_platforms(context): - context.add_os_installer_key(OS_OSX, MACPORTS_INSTALLER) - context.add_os_installer_key(OS_OSX, PIP_INSTALLER) - context.add_os_installer_key(OS_OSX, SOURCE_INSTALLER) -- context.set_default_os_installer_key(OS_OSX, BREW_INSTALLER) -+ context.set_default_os_installer_key(OS_OSX, lambda self: BREW_INSTALLER) - context.set_os_version_type(OS_OSX, OsDetect.get_codename) - - def is_port_installed(): -diff --git a/src/rosdep2/platforms/redhat.py b/src/rosdep2/platforms/redhat.py -index 8268de9..b1950e7 100644 ---- a/src/rosdep2/platforms/redhat.py -+++ b/src/rosdep2/platforms/redhat.py -@@ -57,14 +57,14 @@ def register_fedora(context): - context.add_os_installer_key(OS_FEDORA, DNF_INSTALLER) - context.add_os_installer_key(OS_FEDORA, YUM_INSTALLER) - context.add_os_installer_key(OS_FEDORA, SOURCE_INSTALLER) -- context.set_default_os_installer_key(OS_FEDORA, YUM_INSTALLER) -+ context.set_default_os_installer_key(OS_FEDORA, lambda self: YUM_INSTALLER) - context.set_os_version_type(OS_FEDORA, lambda self: self.get_version() if int(self.get_version()) > 20 else self.get_codename()) - - def register_rhel(context): - context.add_os_installer_key(OS_RHEL, PIP_INSTALLER) - context.add_os_installer_key(OS_RHEL, YUM_INSTALLER) - context.add_os_installer_key(OS_RHEL, SOURCE_INSTALLER) -- context.set_default_os_installer_key(OS_RHEL, YUM_INSTALLER) -+ context.set_default_os_installer_key(OS_RHEL, lambda self: YUM_INSTALLER) - - def rpm_detect_py(packages): - ret_list = [] -diff --git a/test/test_rosdep_installers.py b/test/test_rosdep_installers.py -index 3bbabf9..5f6df65 100644 ---- a/test/test_rosdep_installers.py -+++ b/test/test_rosdep_installers.py -@@ -216,7 +216,11 @@ def test_InstallerContext_os_installers(): - assert False, "should have raised" - except KeyError: pass - try: -- context.set_default_os_installer_key(os_key, 'fake-key') -+ context.set_default_os_installer_key(os_key, 'non-method') -+ assert False, "should have raised" -+ except KeyError: pass -+ try: -+ context.set_default_os_installer_key(os_key, lambda self: 'fake-key') - assert False, "should have raised" - except KeyError: pass - try: -@@ -241,7 +245,7 @@ class FakeInstaller2(Installer): - - # retest set_default_os_installer_key, now with installer_key not configured on os - try: -- context.set_default_os_installer_key(os_key, installer_key2) -+ context.set_default_os_installer_key(os_key, lambda self: installer_key2) - assert False, "should have raised" - except KeyError as e: - assert 'add_os_installer' in str(e), e -@@ -252,14 +256,14 @@ class FakeInstaller2(Installer): - - # test default - assert None == context.get_default_os_installer_key(os_key) -- context.set_default_os_installer_key(os_key, installer_key1) -+ context.set_default_os_installer_key(os_key, lambda self: installer_key1) - assert installer_key1 == context.get_default_os_installer_key(os_key) -- context.set_default_os_installer_key(os_key, installer_key2) -+ context.set_default_os_installer_key(os_key, lambda self: installer_key2) - assert installer_key2 == context.get_default_os_installer_key(os_key) - - # retest set_default_os_installer_key, now with invalid os - try: -- context.set_default_os_installer_key('bad-os', installer_key1) -+ context.set_default_os_installer_key('bad-os', lambda self: installer_key1) - assert False, "should have raised" - except KeyError: pass - - -From e5dd8dd7063a1b78cb79491729795cd49bb50531 Mon Sep 17 00:00:00 2001 -From: Scott K Logan -Date: Thu, 27 Aug 2015 18:36:17 -0700 -Subject: [PATCH 2/4] Use DNF instead of YUM as default OS installer for f22+ - ---- - src/rosdep2/platforms/redhat.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/rosdep2/platforms/redhat.py b/src/rosdep2/platforms/redhat.py -index b1950e7..c00c8cf 100644 ---- a/src/rosdep2/platforms/redhat.py -+++ b/src/rosdep2/platforms/redhat.py -@@ -57,8 +57,8 @@ def register_fedora(context): - context.add_os_installer_key(OS_FEDORA, DNF_INSTALLER) - context.add_os_installer_key(OS_FEDORA, YUM_INSTALLER) - context.add_os_installer_key(OS_FEDORA, SOURCE_INSTALLER) -- context.set_default_os_installer_key(OS_FEDORA, lambda self: YUM_INSTALLER) -- context.set_os_version_type(OS_FEDORA, lambda self: self.get_version() if int(self.get_version()) > 20 else self.get_codename()) -+ context.set_default_os_installer_key(OS_FEDORA, lambda self: DNF_INSTALLER if self.get_version().isdigit() and int(self.get_version()) > 21 else YUM_INSTALLER) -+ context.set_os_version_type(OS_FEDORA, lambda self: self.get_version() if self.get_version().isdigit() and int(self.get_version()) > 20 else self.get_codename()) - - def register_rhel(context): - context.add_os_installer_key(OS_RHEL, PIP_INSTALLER) - -From 4e5f65ef668bcf106cfb2f022bc108b5e0c08094 Mon Sep 17 00:00:00 2001 -From: Scott K Logan -Date: Thu, 27 Aug 2015 19:09:27 -0700 -Subject: [PATCH 3/4] Add unit tests for variable lookup and installer keys - ---- - test/test_rosdep_redhat.py | 53 ++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 53 insertions(+) - -diff --git a/test/test_rosdep_redhat.py b/test/test_rosdep_redhat.py -index ac13aa0..e2c7863 100644 ---- a/test/test_rosdep_redhat.py -+++ b/test/test_rosdep_redhat.py -@@ -104,3 +104,56 @@ def test(mock_method): - except AssertionError: - traceback.print_exc() - raise -+ -+def test_Fedora_variable_installer_key(): -+ from rosdep2 import InstallerContext -+ from rosdep2.platforms import pip, redhat, source -+ from rosdep2.platforms.redhat import DNF_INSTALLER, YUM_INSTALLER -+ -+ from rospkg.os_detect import OsDetect, OS_FEDORA -+ os_detect_mock = Mock(spec=OsDetect) -+ os_detect_mock.get_name.return_value = 'fedora' -+ os_detect_mock.get_codename.return_value = 'twenty' -+ os_detect_mock.get_version.return_value = '21' -+ -+ # create our test fixture. use most of the default toolchain, but -+ # replace the apt installer with one that we can have more fun -+ # with. we will do all tests with ubuntu lucid keys -- other -+ # tests should cover different resolution cases. -+ context = InstallerContext(os_detect_mock) -+ pip.register_installers(context) -+ redhat.register_installers(context) -+ source.register_installers(context) -+ redhat.register_platforms(context) -+ -+ assert YUM_INSTALLER == context.get_default_os_installer_key(OS_FEDORA) -+ -+ os_detect_mock.get_version.return_value = '22' -+ assert DNF_INSTALLER == context.get_default_os_installer_key(OS_FEDORA) -+ -+def test_Fedora_variable_lookup_key(): -+ from rosdep2 import InstallerContext -+ from rosdep2.platforms import pip, redhat, source -+ from rosdep2.platforms.redhat import DNF_INSTALLER, YUM_INSTALLER -+ -+ from rospkg.os_detect import OsDetect, OS_FEDORA -+ os_detect_mock = Mock(spec=OsDetect) -+ os_detect_mock.get_name.return_value = 'fedora' -+ os_detect_mock.get_codename.return_value = 'heisenbug' -+ os_detect_mock.get_version.return_value = '20' -+ -+ # create our test fixture. use most of the default toolchain, but -+ # replace the apt installer with one that we can have more fun -+ # with. we will do all tests with ubuntu lucid keys -- other -+ # tests should cover different resolution cases. -+ context = InstallerContext(os_detect_mock) -+ pip.register_installers(context) -+ redhat.register_installers(context) -+ source.register_installers(context) -+ redhat.register_platforms(context) -+ -+ assert ('fedora', 'heisenbug') == context.get_os_name_and_version() -+ -+ os_detect_mock.get_codename.return_value = 'twenty' -+ os_detect_mock.get_version.return_value = '21' -+ assert (OS_FEDORA, '21') == context.get_os_name_and_version() - -From b3c61be7f415a569d4c08f76a52a569e4198adbd Mon Sep 17 00:00:00 2001 -From: Scott K Logan -Date: Thu, 27 Aug 2015 19:46:23 -0700 -Subject: [PATCH 4/4] Use elevate_priv for DNF as well - -DnfInstaller was missed by 13fbd892598f7996646af54dfe169bce7dc4b0c7 ---- - src/rosdep2/platforms/redhat.py | 8 ++++---- - test/test_rosdep_redhat.py | 8 ++++---- - 2 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/src/rosdep2/platforms/redhat.py b/src/rosdep2/platforms/redhat.py -index c00c8cf..8ca4536 100644 ---- a/src/rosdep2/platforms/redhat.py -+++ b/src/rosdep2/platforms/redhat.py -@@ -142,13 +142,13 @@ def get_install_command(self, resolved, interactive=True, reinstall=False, quiet - if not packages: - return [] - elif not interactive and quiet: -- return [['sudo', 'dnf', '--assumeyes', '--quiet', 'install'] + packages] -+ return [self.elevate_priv(['dnf', '--assumeyes', '--quiet', 'install']) + packages] - elif quiet: -- return [['sudo', 'dnf', '--quiet', 'install'] + packages] -+ return [self.elevate_priv(['dnf', '--quiet', 'install']) + packages] - elif not interactive: -- return [['sudo', 'dnf', '--assumeyes', 'install'] + packages] -+ return [self.elevate_priv(['dnf', '--assumeyes', 'install']) + packages] - else: -- return [['sudo', 'dnf', 'install'] + packages] -+ return [self.elevate_priv(['dnf', 'install']) + packages] - - - class YumInstaller(PackageManagerInstaller): -diff --git a/test/test_rosdep_redhat.py b/test/test_rosdep_redhat.py -index e2c7863..f77e016 100644 ---- a/test/test_rosdep_redhat.py -+++ b/test/test_rosdep_redhat.py -@@ -58,16 +58,16 @@ def test(mock_method): - - # no interactive option with YUM - mock_method.return_value = ['a', 'b'] -- expected = [['sudo', 'dnf', '--assumeyes', '--quiet', 'install', 'a', 'b']] -+ expected = [['sudo', '-H', 'dnf', '--assumeyes', '--quiet', 'install', 'a', 'b']] - val = installer.get_install_command(['whatever'], interactive=False, quiet=True) - assert val == expected, val + expected -- expected = [['sudo', 'dnf', '--quiet', 'install', 'a', 'b']] -+ expected = [['sudo', '-H', 'dnf', '--quiet', 'install', 'a', 'b']] - val = installer.get_install_command(['whatever'], interactive=True, quiet=True) - assert val == expected, val + expected -- expected = [['sudo', 'dnf', '--assumeyes', 'install', 'a', 'b']] -+ expected = [['sudo', '-H', 'dnf', '--assumeyes', 'install', 'a', 'b']] - val = installer.get_install_command(['whatever'], interactive=False, quiet=False) - assert val == expected, val + expected -- expected = [['sudo', 'dnf', 'install', 'a', 'b']] -+ expected = [['sudo', '-H', 'dnf', 'install', 'a', 'b']] - val = installer.get_install_command(['whatever'], interactive=True, quiet=False) - assert val == expected, val + expected - try: diff --git a/python-rosdep.spec b/python-rosdep.spec index 454c15c..5e5fe5c 100644 --- a/python-rosdep.spec +++ b/python-rosdep.spec @@ -5,20 +5,18 @@ %{!?python2_sitelib: %global python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print (get_python_lib())")} %endif -%global commit 23f30f7e42f4a7184de001fe1ef21ad44a015a4c +%global commit 6cdef863382f5c812030ee1c15e43c4f0b98149e %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global realname rosdep Name: python-%{realname} -Version: 0.11.2 -Release: 4%{?dist} +Version: 0.11.4 +Release: 1%{?dist} Summary: ROS System Dependency Installer License: BSD URL: http://ros.org/wiki/%{realname} Source0: https://github.com/ros-infrastructure/%{realname}/archive/%{commit}/%{realname}-%{commit}.tar.gz -# Pulled from upstream -Patch0: %{name}-0.11.2-fedora-dnf-fixes.patch BuildArch: noarch # Documentation @@ -74,7 +72,6 @@ specify a dependency on 'boost'. %prep %setup -qn %{realname}-%{commit} -%patch0 -p1 %if 0%{?with_python3} rm -rf %{py3dir} @@ -147,6 +144,10 @@ rm -f doc/_build/.buildinfo %endif %changelog +* Sun Oct 18 2015 Rich Mattes - 0.11.4-1 +- Update to release 0.11.4 +- Remove upstream patches + * Sun Sep 13 2015 Scott K Logan - 0.11.2-4 - Add upstream patches for DNF diff --git a/sources b/sources index f8beb68..791a0be 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -326fd80dc086f6776dac2a82cfb973b1 rosdep-23f30f7e42f4a7184de001fe1ef21ad44a015a4c.tar.gz +b88fcb14b610f7dd82fb0f1ade2ca4ec rosdep-6cdef863382f5c812030ee1c15e43c4f0b98149e.tar.gz