aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeal Gompa <ngompa13@gmail.com>2017-08-06 18:42:21 -0400
committerNeal Gompa <ngompa13@gmail.com>2017-08-06 18:42:21 -0400
commit6e742165fccbb74b26676429e84db4eb0b5329cb (patch)
tree12f39ef21817751a79ba025b0998d7814733a29a
parent95f93ec49c824c780fd43e67b22190b8f0f818ac (diff)
downloadrpm-setup-6e742165fccbb74b26676429e84db4eb0b5329cb.tar
rpm-setup-6e742165fccbb74b26676429e84db4eb0b5329cb.tar.gz
rpm-setup-6e742165fccbb74b26676429e84db4eb0b5329cb.tar.bz2
rpm-setup-6e742165fccbb74b26676429e84db4eb0b5329cb.tar.xz
rpm-setup-6e742165fccbb74b26676429e84db4eb0b5329cb.zip
Remove pythoneggs.py in favor of using upstreamed pythondistdeps.py
-rw-r--r--Makefile.am6
-rw-r--r--NEWS2
-rw-r--r--pythoneggs.attr4
-rwxr-xr-xpythoneggs.py192
4 files changed, 4 insertions, 200 deletions
diff --git a/Makefile.am b/Makefile.am
index bccd839..13c8219 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -38,8 +38,7 @@ pkg_scripts = \
perl.req \
perl.req-from-meta \
php.prov \
- php.req \
- pythoneggs.py
+ php.req
pkg_gscripts = \
find-provides \
@@ -52,8 +51,7 @@ pkg_attr_defs = \
multiarch.attr \
perl_base.attr \
perl_from_meta.attr \
- php.attr \
- pythoneggs.attr
+ php.attr
BUILT_SOURCES = macros-perarch make_arch_macrosfiles.sh rpmgenplatform
diff --git a/NEWS b/NEWS
index e2b359f..00f2c0d 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,5 @@
+- Remove pythoneggs.py in favor of using upstreamed pythondistdeps.py
+
Version 2.24 - 3 August 2017, by Thierry Vignaud
- drop now useless brp-java-repack-jars
diff --git a/pythoneggs.attr b/pythoneggs.attr
deleted file mode 100644
index 172605f..0000000
--- a/pythoneggs.attr
+++ /dev/null
@@ -1,4 +0,0 @@
-%__pythoneggs_provides %{_rpmconfigdir}/mageia/pythoneggs.py --provides
-%__pythoneggs_requires %{_rpmconfigdir}/mageia/pythoneggs.py --requires
-%__pythoneggs_path ^((/usr/lib(64)?/python[[:digit:]]\\.[[:digit:]]/.*\\.(py[oc]?|egg.*))|(%{_bindir}/python[[:digit:]]\\.[[:digit:]]))$
-%__pythoneggs_magic [Pp]ython.*(executable|byte-compiled)
diff --git a/pythoneggs.py b/pythoneggs.py
deleted file mode 100755
index a1c819b..0000000
--- a/pythoneggs.py
+++ /dev/null
@@ -1,192 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-#
-# Copyright 2010 Per Øyvind Karlsen <peroyvind@mandriva.org>
-#
-# This program is free software. It may be redistributed and/or modified under
-# the terms of the LGPL version 2.1 (or later).
-#
-# RPM5 python (egg) dependency generator.
-#
-
-from getopt import getopt
-from os.path import basename, dirname, isdir, sep, splitext
-from sys import argv, stderr, stdin, version
-from distutils.sysconfig import get_python_lib
-
-
-opts, args = getopt(argv[1:], 'hPRSCOE',
- ['help', 'provides', 'requires', 'suggests', 'conflicts', 'obsoletes', 'extras'])
-
-Provides = False
-Requires = False
-Suggests = False
-Conflicts = False
-Obsoletes = False
-Extras = False
-
-for o, a in opts:
- if o in ('-h', '--help'):
- print '-h, --help\tPrint help'
- print '-P, --provides\tPrint Provides'
- print '-R, --requires\tPrint Requires'
- print '-S, --suggests\tPrint Suggests'
- print '-C, --conflicts\tPrint Conflicts'
- print '-O, --obsoletes\tPrint Obsoletes (unused)'
- print '-E, --extras\tPrint Extras '
- exit(1)
- elif o in ('-P', '--provides'):
- Provides = True
- elif o in ('-R', '--requires'):
- Requires = True
- elif o in ('-S', '--suggests'):
- Suggests = True
- elif o in ('-C', '--conflicts'):
- Conflicts = True
- elif o in ('-O', '--obsoletes'):
- Obsoletes = True
- elif o in ('-E', '--extras'):
- Extras = True
-
-if Requires:
- py_abi = True
-else:
- py_abi = False
-py_deps = {}
-if args:
- files = args
-else:
- files = stdin.readlines()
-for f in files:
- f = f.strip()
- lower = f.lower()
- name = 'python(abi)'
- # add dependency based on path, versioned if within versioned python directory
- if py_abi and (lower.endswith('.py') or lower.endswith('.pyc') or lower.endswith('.pyo')):
- if not name in py_deps:
- py_deps[name] = []
- purelib = get_python_lib(standard_lib=1, plat_specific=0).split(version[:3])[0]
- platlib = get_python_lib(standard_lib=1, plat_specific=1).split(version[:3])[0]
- for lib in (purelib, platlib):
- if lib in f:
- spec = ('==',f.split(lib)[1].split(sep)[0])
- if not spec in py_deps[name]:
- py_deps[name].append(spec)
- parent_name = dirname(f)
- # Determine provide, requires, conflicts & suggests based on egg metadata
- file_match = lower.endswith('.egg') or \
- lower.endswith('.egg-info') or \
- lower.endswith('.egg-link')
- dir_match = parent_name.endswith('.egg') or \
- parent_name.endswith('.egg-info') or \
- parent_name.endswith('.egg-link')
- if file_match or dir_match:
- # This import is very slow, so only do it if needed
- from pkg_resources import Distribution, FileMetadata, PathMetadata
- dist_name = basename(f)
- if dir_match:
- path_item = dirname(parent_name)
- metadata = PathMetadata(path_item, parent_name)
- else:
- path_item = f
- if isdir(f):
- metadata = PathMetadata(parent_name, f)
- else:
- metadata = FileMetadata(f)
- dist = Distribution.from_location(path_item, dist_name, metadata)
- if not dist.py_version:
- continue
- py_major = dist.py_version[:1]
- if Provides:
- # If egg metadata says package name is python, we provide python(abi)
- if dist.key == 'python':
- name = 'python(abi)'
- if not name in py_deps:
- py_deps[name] = []
- py_deps[name].append(('==', dist.py_version))
- name = 'pythonegg(%s)(%s)' % (py_major, dist.key)
- if not name in py_deps:
- py_deps[name] = []
- if dist.version:
- spec = ('==', dist.version)
- if not spec in py_deps[name]:
- py_deps[name].append(spec)
- if Requires or (Suggests and dist.extras):
- name = 'python(abi)'
- # If egg metadata says package name is python, we don't add dependency on python(abi)
- if dist.key == 'python':
- py_abi = False
- if name in py_deps:
- py_deps.pop(name)
- elif py_abi and dist.py_version:
- if not name in py_deps:
- py_deps[name] = []
- spec = ('==', dist.py_version)
- if not spec in py_deps[name]:
- py_deps[name].append(spec)
- deps = dist.requires()
- if Suggests:
- depsextras = dist.requires(extras=dist.extras)
- if not Requires:
- for dep in reversed(depsextras):
- if dep in deps:
- depsextras.remove(dep)
- deps = depsextras
- # add requires/suggests based on egg metadata
- for dep in deps:
- name = 'pythonegg(%s)(%s)' % (py_major, dep.key)
- for spec in dep.specs:
- if spec[0] != '!=':
- if not name in py_deps:
- py_deps[name] = []
- if not spec in py_deps[name]:
- py_deps[name].append(spec)
- if not dep.specs:
- py_deps[name] = []
- # Unused, for automatic sub-package generation based on 'extras' from egg metadata
- # TODO: implement in rpm later, or...?
- if Extras:
- deps = dist.requires()
- extras = dist.extras
- print extras
- for extra in extras:
- print '%%package\textras-%s' % extra
- print 'Summary:\t%s extra for %s python egg' % (extra, dist.key)
- print 'Group:\t\tDevelopment/Python'
- depsextras = dist.requires(extras=[extra])
- for dep in reversed(depsextras):
- if dep in deps:
- depsextras.remove(dep)
- deps = depsextras
- for dep in deps:
- for spec in dep.specs:
- if spec[0] == '!=':
- print 'Conflicts:\t%s %s %s' % (dep.key, '==', spec[1])
- else:
- print 'Requires:\t%s %s %s' % (dep.key, spec[0], spec[1])
- print '%%description\t%s' % extra
- print '%s extra for %s python egg' % (extra, dist.key)
- print '%%files\t\textras-%s\n' % extra
- if Conflicts:
- # Should we really add conflicts for extras?
- # Creating a meta package per extra with suggests on, which has
- # the requires/conflicts in stead might be a better solution...
- for dep in dist.requires(extras=dist.extras):
- name = dep.key
- for spec in dep.specs:
- if spec[0] == '!=':
- if not name in py_deps:
- py_deps[name] = []
- spec = ('==', spec[1])
- if not spec in py_deps[name]:
- py_deps[name].append(spec)
-names = py_deps.keys()
-names.sort()
-for name in names:
- if py_deps[name]:
- # Print out versioned provides, requires, suggests, conflicts
- for spec in py_deps[name]:
- print '%s %s %s' % (name, spec[0], spec[1])
- else:
- # Print out unversioned provides, requires, suggests, conflicts
- print name