summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkali <kali@leap.se>2013-05-31 06:22:38 +0900
committerkali <kali@leap.se>2013-05-31 06:22:38 +0900
commita5e8645b8b34ef736825ae06cdf4d360eaa32db6 (patch)
tree3d2b6a39782c69bb90d0ea5de2b4c4d4ff046147
parent15fa6e076e03e82e17a113513e3588023058b72e (diff)
copy processed reqs to util/
-rw-r--r--MANIFEST.in1
-rw-r--r--changes/feature_copy-reqs-file1
-rwxr-xr-xsetup.py68
3 files changed, 64 insertions, 6 deletions
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]