From a5e8645b8b34ef736825ae06cdf4d360eaa32db6 Mon Sep 17 00:00:00 2001 From: kali Date: Fri, 31 May 2013 06:22:38 +0900 Subject: copy processed reqs to util/ --- MANIFEST.in | 1 + changes/feature_copy-reqs-file | 1 + setup.py | 68 ++++++++++++++++++++++++++++++++++++++---- 3 files changed, 64 insertions(+), 6 deletions(-) create mode 100644 changes/feature_copy-reqs-file diff --git a/MANIFEST.in b/MANIFEST.in index d67d3142..b9e3dd96 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,3 +1,4 @@ include pkg/* include docs/* include versioneer.py +include src/leap/util/reqs.txt diff --git a/changes/feature_copy-reqs-file b/changes/feature_copy-reqs-file new file mode 100644 index 00000000..5bf254d2 --- /dev/null +++ b/changes/feature_copy-reqs-file @@ -0,0 +1 @@ + o Add a copy of the processed requirements to util/ diff --git a/setup.py b/setup.py index ed793392..b788d9aa 100755 --- a/setup.py +++ b/setup.py @@ -21,10 +21,13 @@ versioneer.versionfile_build = 'leap/_version.py' versioneer.tag_prefix = '' # tags are like 1.2.0 versioneer.parentdir_prefix = 'leap_client-' +from setuptools import Command + # The following import avoids the premature unloading of the `util` submodule # when running tests, which would cause an error when nose finishes tests and # calls the exit function of the multiprocessing module. from multiprocessing import util +assert(util) setup_root = os.path.dirname(__file__) sys.path.insert(0, os.path.join(setup_root, "src")) @@ -46,9 +49,62 @@ trove_classifiers = [ ] +parsed_reqs = utils.parse_requirements() + cmdclass = versioneer.get_cmdclass() leap_launcher = 'leap-client=leap.app:main' +from distutils.command.build import build as _build +from distutils.command.sdist import sdist as _sdist + + +def copy_reqs(path, withsrc=False): + # add a copy of the processed requirements to the package + _reqpath = ('leap', 'util', 'reqs.txt') + if withsrc: + reqsfile = os.path.join(path, 'src', *_reqpath) + else: + reqsfile = os.path.join(path, *_reqpath) + + print("UPDATING %s" % reqsfile) + + if os.path.isfile(reqsfile): + os.unlink(reqsfile) + f = open(reqsfile, "w") + f.write('\n'.join(parsed_reqs)) + f.close() + + +class cmd_build(_build): + def run(self): + # versioneer: + versions = versioneer.get_versions(verbose=True) + self._versioneer_generated_versions = versions + # unless we update this, the command will keep using the old version + self.distribution.metadata.version = versions["version"] + + _build.run(self) + copy_reqs(self.build_lib) + + +class cmd_sdist(_sdist): + def run(self): + # versioneer: + versions = versioneer.get_versions(verbose=True) + self._versioneer_generated_versions = versions + # unless we update this, the command will keep using the old version + self.distribution.metadata.version = versions["version"] + return _sdist.run(self) + + def make_release_tree(self, base_dir, files): + _sdist.make_release_tree(self, base_dir, files) + copy_reqs(base_dir, withsrc=True) + + +#cmdclass["build"] = cmd_build +#cmdclass["sdist"] = cmd_sdist + + setup( name="leap-client", package_dir={"": "src"}, @@ -68,9 +124,9 @@ setup( "and has an enhanced level of security." ), classifiers=trove_classifiers, - install_requires=utils.parse_requirements(), + install_requires=parsed_reqs, test_suite='nose.collector', - test_requires=utils.parse_requirements( + tests_require=utils.parse_requirements( reqfiles=['pkg/requirements-testing.pip']), keywords='LEAP, client, qt, encryption, proxy, openvpn, imap, smtp', author='The LEAP Encryption Access Project', @@ -81,17 +137,17 @@ setup( 'src', exclude=['ez_setup', 'setup', 'examples', 'tests']), namespace_packages=["leap"], + package_data={'': ['util/*.txt']}, include_package_data=True, - zip_safe=False, - - # not being used since setuptools does not like it. + # not being used? -- setuptools does not like it. # looks like debhelper is honoring it... data_files=[ # ("share/man/man1", # ["docs/man/leap-client.1"]), ("share/polkit-1/actions", - ["pkg/linux/polkit/net.openvpn.gui.leap.policy"]) + ["pkg/linux/polkit/net.openvpn.gui.leap.policy"]), ], + zip_safe=False, platforms="all", entry_points={ 'console_scripts': [leap_launcher] -- cgit v1.2.3