Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at 19.03 4.0 kB view raw
1From 3f369cf8b9f7134d0792f6b141d39b5342a8274f Mon Sep 17 00:00:00 2001 2From: Benjamin Staffin <benley@gmail.com> 3Date: Mon, 14 Jan 2019 17:27:06 -0500 4Subject: [PATCH] Vastly simplify setup.py for distro compatibility 5 6--- 7 setup.py | 81 +------------------------------------------------------- 8 1 file changed, 1 insertion(+), 80 deletions(-) 9 10diff --git a/setup.py b/setup.py 11index 77933f2..2b71e25 100644 12--- a/setup.py 13+++ b/setup.py 14@@ -1,10 +1,6 @@ 15 #!/usr/bin/env python 16 17 import os 18-import platform 19-import subprocess 20-import tarfile 21-import shutil 22 23 try: 24 import sysconfig 25@@ -14,88 +10,15 @@ except ImportError: 26 27 from setuptools import setup 28 from distutils.extension import Extension 29-from distutils.command.build_ext import build_ext 30- 31-try: 32- from urllib import urlretrieve 33-except ImportError: 34- from urllib.request import urlretrieve 35- 36-def path_in_dir(relative_path): 37- return os.path.abspath(os.path.join(os.path.dirname(__file__), relative_path)) 38 39 def read(fname): 40 return open(os.path.join(os.path.dirname(__file__), fname)).read() 41 42 43-jq_lib_tarball_path = path_in_dir("_jq-lib-1.5.tar.gz") 44-jq_lib_dir = path_in_dir("jq-jq-1.5") 45- 46-oniguruma_lib_tarball_path = path_in_dir("_onig-5.9.6.tar.gz") 47-oniguruma_lib_build_dir = path_in_dir("onig-5.9.6") 48-oniguruma_lib_install_dir = path_in_dir("onig-install-5.9.6") 49- 50-class jq_build_ext(build_ext): 51- def run(self): 52- self._build_oniguruma() 53- self._build_libjq() 54- build_ext.run(self) 55- 56- def _build_oniguruma(self): 57- self._build_lib( 58- source_url="https://github.com/kkos/oniguruma/releases/download/v5.9.6/onig-5.9.6.tar.gz", 59- tarball_path=oniguruma_lib_tarball_path, 60- lib_dir=oniguruma_lib_build_dir, 61- commands=[ 62- ["./configure", "CFLAGS=-fPIC", "--prefix=" + oniguruma_lib_install_dir], 63- ["make"], 64- ["make", "install"], 65- ]) 66- 67- 68- def _build_libjq(self): 69- self._build_lib( 70- source_url="https://github.com/stedolan/jq/archive/jq-1.5.tar.gz", 71- tarball_path=jq_lib_tarball_path, 72- lib_dir=jq_lib_dir, 73- commands=[ 74- ["autoreconf", "-i"], 75- ["./configure", "CFLAGS=-fPIC", "--disable-maintainer-mode", "--with-oniguruma=" + oniguruma_lib_install_dir], 76- ["make"], 77- ]) 78- 79- def _build_lib(self, source_url, tarball_path, lib_dir, commands): 80- self._download_tarball(source_url, tarball_path) 81- 82- macosx_deployment_target = sysconfig.get_config_var("MACOSX_DEPLOYMENT_TARGET") 83- if macosx_deployment_target: 84- os.environ['MACOSX_DEPLOYMENT_TARGET'] = macosx_deployment_target 85- 86- def run_command(args): 87- print("Executing: %s" % ' '.join(args)) 88- subprocess.check_call(args, cwd=lib_dir) 89- 90- for command in commands: 91- run_command(command) 92- 93- def _download_tarball(self, source_url, tarball_path): 94- if os.path.exists(tarball_path): 95- os.unlink(tarball_path) 96- urlretrieve(source_url, tarball_path) 97- 98- if os.path.exists(jq_lib_dir): 99- shutil.rmtree(jq_lib_dir) 100- tarfile.open(tarball_path, "r:gz").extractall(path_in_dir(".")) 101- 102- 103 jq_extension = Extension( 104 "jq", 105 sources=["jq.c"], 106- include_dirs=[jq_lib_dir], 107- extra_objects=[ 108- os.path.join(jq_lib_dir, ".libs/libjq.a"), 109- os.path.join(oniguruma_lib_install_dir, "lib/libonig.a"), 110- ], 111+ libraries=["jq"], 112 ) 113 114 setup( 115@@ -107,7 +30,6 @@ setup( 116 url='http://github.com/mwilliamson/jq.py', 117 license='BSD 2-Clause', 118 ext_modules = [jq_extension], 119- cmdclass={"build_ext": jq_build_ext}, 120 classifiers=[ 121 'Development Status :: 4 - Beta', 122 'Intended Audience :: Developers', 123@@ -123,4 +45,3 @@ setup( 124 'Programming Language :: Python :: 3.5', 125 ], 126 ) 127- 128-- 1292.19.2 130