diff --git a/pkgs/development/python-modules/jq/default.nix b/pkgs/development/python-modules/jq/default.nix index 30efd75aa3a..72776a03719 100644 --- a/pkgs/development/python-modules/jq/default.nix +++ b/pkgs/development/python-modules/jq/default.nix @@ -1,21 +1,15 @@ -{ buildPythonPackage, fetchPypi, lib, cython, jq }: +{ buildPythonPackage, fetchPypi, lib, jq }: buildPythonPackage rec { pname = "jq"; - version = "0.1.8"; + version = "1.0.2"; src = fetchPypi { inherit pname version; - sha256 = "9b6bb376237133080185ab556ca2a724e8be5b31946eb2053d4a1f17ae9df9a8"; + sha256 = "9fe6ce07bc8d209c385d8ba132a2971c69aef015103c46bea87a73a16c5ec147"; }; patches = [ ./jq-py-setup.patch ]; - nativeBuildInputs = [ cython ]; - - preBuild = '' - cython jq.pyx - ''; - buildInputs = [ jq ]; meta = { diff --git a/pkgs/development/python-modules/jq/jq-py-setup.patch b/pkgs/development/python-modules/jq/jq-py-setup.patch index 53092b8a1f5..df5245a0c3b 100644 --- a/pkgs/development/python-modules/jq/jq-py-setup.patch +++ b/pkgs/development/python-modules/jq/jq-py-setup.patch @@ -1,61 +1,69 @@ -From 3f369cf8b9f7134d0792f6b141d39b5342a8274f Mon Sep 17 00:00:00 2001 -From: Benjamin Staffin -Date: Mon, 14 Jan 2019 17:27:06 -0500 +From 968ddf2bd773e800e46737fced743bd00af9aa0d Mon Sep 17 00:00:00 2001 +From: William Kral +Date: Tue, 8 Sep 2020 22:04:24 -0700 Subject: [PATCH] Vastly simplify setup.py for distro compatibility --- - setup.py | 81 +------------------------------------------------------- - 1 file changed, 1 insertion(+), 80 deletions(-) + setup.py | 101 ++----------------------------------------------------- + 1 file changed, 2 insertions(+), 99 deletions(-) diff --git a/setup.py b/setup.py -index 77933f2..2b71e25 100644 +index cb63f60..87380ed 100644 --- a/setup.py +++ b/setup.py -@@ -1,10 +1,6 @@ +@@ -1,114 +1,19 @@ #!/usr/bin/env python import os --import platform -import subprocess -import tarfile -import shutil +-import sysconfig - try: - import sysconfig -@@ -14,88 +10,15 @@ except ImportError: - +-import requests from setuptools import setup - from distutils.extension import Extension --from distutils.command.build_ext import build_ext +-from setuptools.command.build_ext import build_ext + from setuptools.extension import Extension + + +-def urlretrieve(source_url, destination_path): +- response = requests.get(source_url, stream=True) +- if response.status_code != 200: +- raise Exception("status code was: {}".format(response.status_code)) - --try: -- from urllib import urlretrieve --except ImportError: -- from urllib.request import urlretrieve +- with open(destination_path, "wb") as fileobj: +- for chunk in response.iter_content(chunk_size=128): +- fileobj.write(chunk) - -def path_in_dir(relative_path): - return os.path.abspath(os.path.join(os.path.dirname(__file__), relative_path)) - +- +-def dependency_path(relative_path): +- return os.path.join(path_in_dir("_deps"), relative_path) +- def read(fname): return open(os.path.join(os.path.dirname(__file__), fname)).read() --jq_lib_tarball_path = path_in_dir("_jq-lib-1.5.tar.gz") --jq_lib_dir = path_in_dir("jq-jq-1.5") +-jq_lib_tarball_path = dependency_path("jq-lib-1.6.tar.gz") +-jq_lib_dir = dependency_path("jq-1.6") - --oniguruma_lib_tarball_path = path_in_dir("_onig-5.9.6.tar.gz") --oniguruma_lib_build_dir = path_in_dir("onig-5.9.6") --oniguruma_lib_install_dir = path_in_dir("onig-install-5.9.6") +-oniguruma_version = "6.9.4" +-oniguruma_lib_tarball_path = dependency_path("onig-{}.tar.gz".format(oniguruma_version)) +-oniguruma_lib_build_dir = dependency_path("onig-{}".format(oniguruma_version)) +-oniguruma_lib_install_dir = dependency_path("onig-install-{}".format(oniguruma_version)) - -class jq_build_ext(build_ext): - def run(self): +- if not os.path.exists(dependency_path(".")): +- os.makedirs(dependency_path(".")) - self._build_oniguruma() - self._build_libjq() - build_ext.run(self) -- +- - def _build_oniguruma(self): - self._build_lib( -- source_url="https://github.com/kkos/oniguruma/releases/download/v5.9.6/onig-5.9.6.tar.gz", +- source_url="https://github.com/kkos/oniguruma/releases/download/v{0}/onig-{0}.tar.gz".format(oniguruma_version), - tarball_path=oniguruma_lib_tarball_path, - lib_dir=oniguruma_lib_build_dir, - commands=[ @@ -63,11 +71,11 @@ index 77933f2..2b71e25 100644 - ["make"], - ["make", "install"], - ]) -- -- +- +- - def _build_libjq(self): - self._build_lib( -- source_url="https://github.com/stedolan/jq/archive/jq-1.5.tar.gz", +- source_url="https://github.com/stedolan/jq/releases/download/jq-1.6/jq-1.6.tar.gz", - tarball_path=jq_lib_tarball_path, - lib_dir=jq_lib_dir, - commands=[ @@ -75,9 +83,13 @@ index 77933f2..2b71e25 100644 - ["./configure", "CFLAGS=-fPIC", "--disable-maintainer-mode", "--with-oniguruma=" + oniguruma_lib_install_dir], - ["make"], - ]) -- +- - def _build_lib(self, source_url, tarball_path, lib_dir, commands): -- self._download_tarball(source_url, tarball_path) +- self._download_tarball( +- source_url=source_url, +- tarball_path=tarball_path, +- lib_dir=lib_dir, +- ) - - macosx_deployment_target = sysconfig.get_config_var("MACOSX_DEPLOYMENT_TARGET") - if macosx_deployment_target: @@ -86,45 +98,50 @@ index 77933f2..2b71e25 100644 - def run_command(args): - print("Executing: %s" % ' '.join(args)) - subprocess.check_call(args, cwd=lib_dir) -- +- - for command in commands: - run_command(command) -- -- def _download_tarball(self, source_url, tarball_path): +- +- def _download_tarball(self, source_url, tarball_path, lib_dir): - if os.path.exists(tarball_path): - os.unlink(tarball_path) +- print("Downloading {}".format(source_url)) - urlretrieve(source_url, tarball_path) -- -- if os.path.exists(jq_lib_dir): -- shutil.rmtree(jq_lib_dir) -- tarfile.open(tarball_path, "r:gz").extractall(path_in_dir(".")) +- print("Downloaded {}".format(source_url)) +- +- if os.path.exists(lib_dir): +- shutil.rmtree(lib_dir) +- tarfile.open(tarball_path, "r:gz").extractall(dependency_path(".")) - - jq_extension = Extension( "jq", sources=["jq.c"], -- include_dirs=[jq_lib_dir], +- include_dirs=[os.path.join(jq_lib_dir, "src")], +- extra_link_args=["-lm"], - extra_objects=[ - os.path.join(jq_lib_dir, ".libs/libjq.a"), - os.path.join(oniguruma_lib_install_dir, "lib/libonig.a"), - ], -+ libraries=["jq"], ++ libraries=["jq"] ) setup( -@@ -107,7 +30,6 @@ setup( - url='https://github.com/mwilliamson/jq.py', +@@ -120,8 +25,7 @@ setup( + url='http://github.com/mwilliamson/jq.py', + python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*', license='BSD 2-Clause', - ext_modules = [jq_extension], +- ext_modules = [jq_extension], - cmdclass={"build_ext": jq_build_ext}, ++ ext_modules=[jq_extension], classifiers=[ - 'Development Status :: 4 - Beta', + 'Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', -@@ -123,4 +45,3 @@ setup( - 'Programming Language :: Python :: 3.5', +@@ -137,4 +41,3 @@ setup( + 'Programming Language :: Python :: 3.8', ], ) - -- -2.19.2 +2.28.0