# HG changeset patch # User Denis Laxalde # Date 1467189322 -7200 # Node ID 1451f040555f651cf891a789a11bd0d2861ad7b0 # Parent 5e5e224239c3119881aaff777404e4f59bebae3c [pkg] Drop NO_SETUPTOOLS option setuptools is the defacto standard nowadays. The only place where NO_SETUPTOOLS option was used is during packaging (RPM, Debian) and even in this context, it seems that setuptools is the way to go (see https://wiki.debian.org/Python/LibraryStyleGuide). diff -r 5e5e224239c3 -r 1451f040555f cubicweb.spec --- a/cubicweb.spec Fri Jul 08 09:59:18 2016 +0200 +++ b/cubicweb.spec Wed Jun 29 10:35:22 2016 +0200 @@ -49,7 +49,7 @@ %endif %install -NO_SETUPTOOLS=1 %{__python} setup.py --quiet install --no-compile --prefix=%{_prefix} --root="$RPM_BUILD_ROOT" +%{__python} setup.py --quiet install --no-compile --prefix=%{_prefix} --root="$RPM_BUILD_ROOT" mkdir -p $RPM_BUILD_ROOT/var/log/cubicweb %clean diff -r 5e5e224239c3 -r 1451f040555f cubicweb/skeleton/DISTNAME.spec.tmpl --- a/cubicweb/skeleton/DISTNAME.spec.tmpl Fri Jul 08 09:59:18 2016 +0200 +++ b/cubicweb/skeleton/DISTNAME.spec.tmpl Wed Jun 29 10:35:22 2016 +0200 @@ -34,7 +34,7 @@ %%endif %%install -NO_SETUPTOOLS=1 %%{__python} setup.py --quiet install --no-compile --prefix=%%{_prefix} --root="$RPM_BUILD_ROOT" +%%{__python} setup.py --quiet install --no-compile --prefix=%%{_prefix} --root="$RPM_BUILD_ROOT" # remove generated .egg-info file rm -rf $RPM_BUILD_ROOT/usr/lib/python* diff -r 5e5e224239c3 -r 1451f040555f cubicweb/skeleton/debian/rules --- a/cubicweb/skeleton/debian/rules Fri Jul 08 09:59:18 2016 +0200 +++ b/cubicweb/skeleton/debian/rules Wed Jun 29 10:35:22 2016 +0200 @@ -1,7 +1,5 @@ #!/usr/bin/make -f -export NO_SETUPTOOLS=1 - %: dh $@ --with python2 diff -r 5e5e224239c3 -r 1451f040555f cubicweb/skeleton/setup.py --- a/cubicweb/skeleton/setup.py Fri Jul 08 09:59:18 2016 +0200 +++ b/cubicweb/skeleton/setup.py Wed Jun 29 10:35:22 2016 +0200 @@ -27,16 +27,8 @@ import shutil from os.path import exists, join, dirname -try: - if os.environ.get('NO_SETUPTOOLS'): - raise ImportError() # do as there is no setuptools - from setuptools import setup - from setuptools.command import install_lib - USE_SETUPTOOLS = True -except ImportError: - from distutils.core import setup - from distutils.command import install_lib - USE_SETUPTOOLS = False +from setuptools import setup +from setuptools.command import install_lib from distutils.command import install_data @@ -68,14 +60,11 @@ ext_modules = pkginfo.get('ext_modules', None) dependency_links = pkginfo.get('dependency_links', ()) -if USE_SETUPTOOLS: - requires = {} - for entry in ("__depends__",): # "__recommends__"): - requires.update(pkginfo.get(entry, {})) - install_requires = [("%s %s" % (d, v and v or "")).strip() - for d, v in requires.items()] -else: - install_requires = [] +requires = {} +for entry in ("__depends__",): # "__recommends__"): + requires.update(pkginfo.get(entry, {})) +install_requires = [("%s %s" % (d, v and v or "")).strip() + for d, v in requires.items()] BASE_BLACKLIST = ('CVS', '.svn', '.hg', '.git', 'debian', 'dist', 'build') IGNORED_EXTENSIONS = ('.pyc', '.pyo', '.elc', '~') @@ -147,50 +136,47 @@ # re-enable copying data files in sys.prefix old_install_data = install_data.install_data -if USE_SETUPTOOLS: - # overwrite InstallData to use sys.prefix instead of the egg directory - class MyInstallData(old_install_data): - """A class that manages data files installation""" - def run(self): - _old_install_dir = self.install_dir - if self.install_dir.endswith('egg'): - self.install_dir = sys.prefix - old_install_data.run(self) - self.install_dir = _old_install_dir - try: - # only if easy_install available - import setuptools.command.easy_install # noqa - # monkey patch: Crack SandboxViolation verification - from setuptools.sandbox import DirectorySandbox as DS - old_ok = DS._ok +# overwrite InstallData to use sys.prefix instead of the egg directory +class MyInstallData(old_install_data): + """A class that manages data files installation""" + def run(self): + _old_install_dir = self.install_dir + if self.install_dir.endswith('egg'): + self.install_dir = sys.prefix + old_install_data.run(self) + self.install_dir = _old_install_dir +try: + # only if easy_install available + import setuptools.command.easy_install # noqa + # monkey patch: Crack SandboxViolation verification + from setuptools.sandbox import DirectorySandbox as DS + old_ok = DS._ok - def _ok(self, path): - """Return True if ``path`` can be written during installation.""" - out = old_ok(self, path) # here for side effect from setuptools - realpath = os.path.normcase(os.path.realpath(path)) - allowed_path = os.path.normcase(sys.prefix) - if realpath.startswith(allowed_path): - out = True - return out - DS._ok = _ok - except ImportError: - pass + def _ok(self, path): + """Return True if ``path`` can be written during installation.""" + out = old_ok(self, path) # here for side effect from setuptools + realpath = os.path.normcase(os.path.realpath(path)) + allowed_path = os.path.normcase(sys.prefix) + if realpath.startswith(allowed_path): + out = True + return out + DS._ok = _ok +except ImportError: + pass def install(**kwargs): """setup entry point""" - if USE_SETUPTOOLS: - if '--force-manifest' in sys.argv: - sys.argv.remove('--force-manifest') + if '--force-manifest' in sys.argv: + sys.argv.remove('--force-manifest') # install-layout option was introduced in 2.5.3-1~exp1 elif sys.version_info < (2, 5, 4) and '--install-layout=deb' in sys.argv: sys.argv.remove('--install-layout=deb') cmdclass = {'install_lib': MyInstallLib} - if USE_SETUPTOOLS: - kwargs['install_requires'] = install_requires - kwargs['dependency_links'] = dependency_links - kwargs['zip_safe'] = False - cmdclass['install_data'] = MyInstallData + kwargs['install_requires'] = install_requires + kwargs['dependency_links'] = dependency_links + kwargs['zip_safe'] = False + cmdclass['install_data'] = MyInstallData return setup(name=distname, version=version, diff -r 5e5e224239c3 -r 1451f040555f debian/rules --- a/debian/rules Fri Jul 08 09:59:18 2016 +0200 +++ b/debian/rules Wed Jun 29 10:35:22 2016 +0200 @@ -8,7 +8,7 @@ build: build-stamp build-stamp: dh_testdir - NO_SETUPTOOLS=1 python setup.py build + python setup.py build # cubicweb.foo needs to be importable by sphinx, so create a cubicweb symlink to the source dir mkdir -p debian/pythonpath ln -sf $(CURDIR)/cubicweb debian/pythonpath @@ -34,7 +34,7 @@ dh_clean dh_installdirs - NO_SETUPTOOLS=1 python setup.py -q install --no-compile --prefix=debian/tmp/usr + python setup.py -q install --no-compile --prefix=debian/tmp/usr # Put all the python library and data in cubicweb-common # and scripts in cubicweb-server diff -r 5e5e224239c3 -r 1451f040555f setup.py --- a/setup.py Fri Jul 08 09:59:18 2016 +0200 +++ b/setup.py Wed Jun 29 10:35:22 2016 +0200 @@ -27,16 +27,8 @@ import shutil from os.path import dirname, exists, isdir, join -try: - if os.environ.get('NO_SETUPTOOLS'): - raise ImportError() # do as there is no setuptools - from setuptools import setup - from setuptools.command import install_lib - USE_SETUPTOOLS = True -except ImportError: - from distutils.core import setup - from distutils.command import install_lib - USE_SETUPTOOLS = False +from setuptools import setup +from setuptools.command import install_lib from distutils.command import install_data here = dirname(__file__) @@ -58,14 +50,11 @@ long_description = f.read() # import optional features -if USE_SETUPTOOLS: - requires = {} - for entry in ("__depends__",): # "__recommends__"): - requires.update(__pkginfo__.get(entry, {})) - install_requires = [("%s %s" % (d, v and v or "")).strip() - for d, v in requires.items()] -else: - install_requires = [] +requires = {} +for entry in ("__depends__",): # "__recommends__"): + requires.update(__pkginfo__.get(entry, {})) +install_requires = [("%s %s" % (d, v and v or "")).strip() + for d, v in requires.items()] distname = __pkginfo__.get('distname', modname) scripts = __pkginfo__.get('scripts', ()) @@ -169,46 +158,43 @@ ini.close() # re-enable copying data files in sys.prefix -if USE_SETUPTOOLS: - # overwrite MyInstallData to use sys.prefix instead of the egg directory - MyInstallMoreData = MyInstallData - class MyInstallData(MyInstallMoreData): # pylint: disable=E0102 - """A class that manages data files installation""" - def run(self): - _old_install_dir = self.install_dir - if self.install_dir.endswith('egg'): - self.install_dir = sys.prefix - MyInstallMoreData.run(self) - self.install_dir = _old_install_dir - try: - import setuptools.command.easy_install # only if easy_install available - # monkey patch: Crack SandboxViolation verification - from setuptools.sandbox import DirectorySandbox as DS - old_ok = DS._ok - def _ok(self, path): - """Return True if ``path`` can be written during installation.""" - out = old_ok(self, path) # here for side effect from setuptools - realpath = os.path.normcase(os.path.realpath(path)) - allowed_path = os.path.normcase(sys.prefix) - if realpath.startswith(allowed_path): - out = True - return out - DS._ok = _ok - except ImportError: - pass +# overwrite MyInstallData to use sys.prefix instead of the egg directory +MyInstallMoreData = MyInstallData +class MyInstallData(MyInstallMoreData): # pylint: disable=E0102 + """A class that manages data files installation""" + def run(self): + _old_install_dir = self.install_dir + if self.install_dir.endswith('egg'): + self.install_dir = sys.prefix + MyInstallMoreData.run(self) + self.install_dir = _old_install_dir +try: + import setuptools.command.easy_install # only if easy_install available + # monkey patch: Crack SandboxViolation verification + from setuptools.sandbox import DirectorySandbox as DS + old_ok = DS._ok + def _ok(self, path): + """Return True if ``path`` can be written during installation.""" + out = old_ok(self, path) # here for side effect from setuptools + realpath = os.path.normcase(os.path.realpath(path)) + allowed_path = os.path.normcase(sys.prefix) + if realpath.startswith(allowed_path): + out = True + return out + DS._ok = _ok +except ImportError: + pass def install(**kwargs): """setup entry point""" - if USE_SETUPTOOLS: - if '--force-manifest' in sys.argv: - sys.argv.remove('--force-manifest') + if '--force-manifest' in sys.argv: + sys.argv.remove('--force-manifest') # install-layout option was introduced in 2.5.3-1~exp1 elif sys.version_info < (2, 5, 4) and '--install-layout=deb' in sys.argv: sys.argv.remove('--install-layout=deb') packages = [modname] + get_packages(join(here, modname), modname) - if USE_SETUPTOOLS: - kwargs['install_requires'] = install_requires - kwargs['zip_safe'] = False + kwargs['install_requires'] = install_requires + kwargs['zip_safe'] = False kwargs['packages'] = packages kwargs['package_data'] = package_data return setup(name=distname, version=version, license=license, url=web,