Restore the ability to install sbin-tools into sbindir since it works
fine with pure distutils. The issue is python-exec/eclass-specific and
therefore all the relevant workarounds belong in the ebuild.
---
 pym/portage/tests/__init__.py |  4 +---
 setup.py                      | 23 +++++++++++++++++++----
 2 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/pym/portage/tests/__init__.py b/pym/portage/tests/__init__.py
index afa57e3..708dd59 100644
--- a/pym/portage/tests/__init__.py
+++ b/pym/portage/tests/__init__.py
@@ -197,9 +197,7 @@ class TestCase(unittest.TestCase):
                self.cnf_path = cnf_path
                self.cnf_etc_path = cnf_etc_path
                self.bindir = cnf_bindir
-               # sbin scripts are installed by setup.py to the bindir
-               # they are relocated to /usr/sbin dir by the ebuild later
-               self.sbindir = self.bindir
+               self.sbindir = cnf_sbindir
 
        def defaultTestResult(self):
                return TextTestResult()
diff --git a/setup.py b/setup.py
index dba8539..8231c0a 100755
--- a/setup.py
+++ b/setup.py
@@ -30,10 +30,12 @@ import sys
 
 x_scripts = {
        'bin': [
-               'bin/archive-conf', 'bin/dispatch-conf', 'bin/ebuild', 
'bin/egencache',
-               'bin/emaint', 'bin/emerge', 'bin/emerge-webrsync', 
'bin/emirrordist',
-               'bin/env-update', 'bin/etc-update', 'bin/fixpackages', 
'bin/portageq',
-               'bin/quickpkg', 'bin/regenworld', 'bin/repoman',
+               'bin/ebuild', 'bin/egencache', 'bin/emerge', 
'bin/emerge-webrsync',
+               'bin/emirrordist', 'bin/portageq', 'bin/quickpkg', 'bin/repoman'
+       ],
+       'sbin': [
+               'bin/archive-conf', 'bin/dispatch-conf', 'bin/emaint', 
'bin/env-update',
+               'bin/etc-update', 'bin/fixpackages', 'bin/regenworld'
        ],
 }
 
@@ -224,6 +226,10 @@ class x_build_scripts_bin(x_build_scripts_custom):
        dir_name = 'bin'
 
 
+class x_build_scripts_sbin(x_build_scripts_custom):
+       dir_name = 'sbin'
+
+
 class x_build_scripts_portagebin(x_build_scripts_custom):
        dir_name = 'portage'
 
@@ -238,6 +244,7 @@ class x_build_scripts(build_scripts):
        def run(self):
                self.run_command('build_scripts_bin')
                self.run_command('build_scripts_portagebin')
+               self.run_command('build_scripts_sbin')
 
 
 class x_clean(clean):
@@ -473,6 +480,11 @@ class x_install_scripts_bin(x_install_scripts_custom):
        var_name = 'bindir'
 
 
+class x_install_scripts_sbin(x_install_scripts_custom):
+       dir_name = 'sbin'
+       var_name = 'sbindir'
+
+
 class x_install_scripts_portagebin(x_install_scripts_custom):
        dir_name = 'portage'
        var_name = 'portage_bindir'
@@ -488,6 +500,7 @@ class x_install_scripts(install_scripts):
        def run(self):
                self.run_command('install_scripts_bin')
                self.run_command('install_scripts_portagebin')
+               self.run_command('install_scripts_sbin')
 
 
 class x_sdist(sdist):
@@ -624,6 +637,7 @@ setup(
                'build_scripts': x_build_scripts,
                'build_scripts_bin': x_build_scripts_bin,
                'build_scripts_portagebin': x_build_scripts_portagebin,
+               'build_scripts_sbin': x_build_scripts_sbin,
                'build_tests': build_tests,
                'clean': x_clean,
                'docbook': docbook,
@@ -636,6 +650,7 @@ setup(
                'install_scripts': x_install_scripts,
                'install_scripts_bin': x_install_scripts_bin,
                'install_scripts_portagebin': x_install_scripts_portagebin,
+               'install_scripts_sbin': x_install_scripts_sbin,
                'sdist': x_sdist,
                'test': test,
        },
-- 
2.1.3


Reply via email to