setup.py: version bump, make sync modules selectable
diff --git a/setup.py b/setup.py
index 54015c3..953023d 100755
--- a/setup.py
+++ b/setup.py
@@ -609,15 +609,56 @@
for g, mans in groups.items():
yield [os.path.join('$mandir', topdir, 'man%s' % g), mans]
+# initialize the list here
+# it can then be modified by the select_plugins()
+PACKAGES = list(find_packages())
+
+# the USE flag selectable list of modules
+SELECTABLE = {
+ 'cvs': 'cvs',
+ 'git': 'git',
+ 'subversion': 'svn',
+ }
+
+# get the USE from the environment
+# split them so we don't get substring matches
+USE = os.environ.get("USE", "").split()
+
+
+class select_plugins(Command):
+ """ Removes the plugin modules not selected from the packages list
+ so they won't be installed."""
+
+ user_options = [
+ ]
+
+ global PACKAGES
+
+ def initialize_options(self):
+ self.build_base = None
+
+ def finalize_options(self):
+ self.set_undefined_options('build',
+ ('build_base', 'build_base'))
+
+ def run(self):
+ for plugin in sorted(SELECTABLE):
+ if plugin not in USE:
+ module = os.path.join('portage', 'sync', 'modules',
+ SELECTABLE[plugin])
+ PACKAGES.remove(module)
+ remove_tree(os.path.join('pym', module))
+
+
setup(
name = 'portage',
- version = '2.2.16',
+ version = '2.2.17',
url = 'https://wiki.gentoo.org/wiki/Project:Portage',
author = 'Gentoo Portage Development Team',
author_email = 'dev-portage@gentoo.org',
package_dir = {'': 'pym'},
- packages = list(find_packages()),
+ packages = PACKAGES,
# something to cheat build & install commands
scripts = list(find_scripts()),
@@ -653,6 +694,7 @@
'install_scripts_portagebin': x_install_scripts_portagebin,
'install_scripts_sbin': x_install_scripts_sbin,
'sdist': x_sdist,
+ 'select_plugins': select_plugins,
'test': test,
},