From 521779b5bc414601f3a53c0de92872f4a389f624 Mon Sep 17 00:00:00 2001 From: RunningDroid Date: Sun, 18 Apr 2021 20:33:13 -0400 Subject: [PATCH 1/2] New Package: python3-jq --- .../python3-jq/patches/build-system-fix.patch | 143 ++++++++++++++++++ srcpkgs/python3-jq/template | 28 ++++ 2 files changed, 171 insertions(+) create mode 100644 srcpkgs/python3-jq/patches/build-system-fix.patch create mode 100644 srcpkgs/python3-jq/template diff --git a/srcpkgs/python3-jq/patches/build-system-fix.patch b/srcpkgs/python3-jq/patches/build-system-fix.patch new file mode 100644 index 000000000000..101555e15b21 --- /dev/null +++ b/srcpkgs/python3-jq/patches/build-system-fix.patch @@ -0,0 +1,143 @@ +Common subdirectories: jq.py-1.1.2/.github and jq.py-1.1.2.new/.github +diff --color -u jq.py-1.1.2/pyproject.toml jq.py-1.1.2.new/pyproject.toml +--- jq.py-1.1.2/pyproject.toml 2021-01-27 09:56:50.000000000 -0500 ++++ jq.py-1.1.2.new/pyproject.toml 2021-04-18 13:30:37.287929598 -0400 +@@ -2,7 +2,6 @@ + requires = [ + "setuptools>=43", + "wheel", +- "requests", +- "certifi" ++ "Cython" + ] + build-backend = "setuptools.build_meta" +diff --color -u jq.py-1.1.2/setup.py jq.py-1.1.2.new/setup.py +--- jq.py-1.1.2/setup.py 2021-01-27 09:56:50.000000000 -0500 ++++ jq.py-1.1.2.new/setup.py 2021-04-18 13:29:53.042760038 -0400 +@@ -1,113 +1,20 @@ + #!/usr/bin/env python + + import os +-import subprocess +-import tarfile +-import shutil +-import sysconfig + +-import requests + from setuptools import setup +-from setuptools.command.build_ext import build_ext + from setuptools.extension import Extension ++from Cython.Build import cythonize + + +-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)) +- +- 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 = dependency_path("jq-lib-1.6.tar.gz") +-jq_lib_dir = dependency_path("jq-1.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/v{0}/onig-{0}.tar.gz".format(oniguruma_version), +- tarball_path=oniguruma_lib_tarball_path, +- lib_dir=oniguruma_lib_build_dir, +- commands=[ +- ["./configure", "CFLAGS=-fPIC", "--prefix=" + oniguruma_lib_install_dir], +- ["make"], +- ["make", "install"], +- ]) +- +- +- def _build_libjq(self): +- self._build_lib( +- 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=[ +- ["./configure", "CFLAGS=-fPIC -pthread", "--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=source_url, +- tarball_path=tarball_path, +- lib_dir=lib_dir, +- ) +- +- macosx_deployment_target = sysconfig.get_config_var("MACOSX_DEPLOYMENT_TARGET") +- if macosx_deployment_target: +- os.environ['MACOSX_DEPLOYMENT_TARGET'] = str(macosx_deployment_target) +- +- 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, lib_dir): +- if os.path.exists(tarball_path): +- os.unlink(tarball_path) +- print("Downloading {}".format(source_url)) +- urlretrieve(source_url, tarball_path) +- 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=[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"] + ) + + setup( +@@ -119,8 +26,7 @@ + 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], +- cmdclass={"build_ext": jq_build_ext}, ++ ext_modules=cythonize("jq.pyx", compiler_directives={'language_level': 3}), + classifiers=[ + 'Development Status :: 5 - Production/Stable', + 'Intended Audience :: Developers', +Common subdirectories: jq.py-1.1.2/tests and jq.py-1.1.2.new/tests diff --git a/srcpkgs/python3-jq/template b/srcpkgs/python3-jq/template new file mode 100644 index 000000000000..f914cfb39f37 --- /dev/null +++ b/srcpkgs/python3-jq/template @@ -0,0 +1,28 @@ +# Template file for 'python3-jq' +pkgname=python3-jq +version=1.1.2 +revision=1 +wrksrc="jq.py-${version}" +build_style=python3-module +makedepends="jq-devel python3-Cython python3-devel" +depends="jq-devel" +checkdepends="python3-nose" +short_desc="Python bindings for jq" +maintainer="RunningDroid " +license="BSD-2-Clause" +homepage="https://github.com/mwilliamson/jq.py" +distfiles="https://github.com/mwilliamson/jq.py/archive/refs/tags/${version}.tar.gz" +checksum=55668335bc6b121a2c4e929b6332b2e6f6c3cea7a57f20cc364e1c5dc07d6fb5 +patch_args="-Np1" + +# fail at linktime if we haven't linked against libjq.so +LDFLAGS="${LDFLAGS}-Xlinker --require-defined=jv_object_iter_key" + +post_build() { + vlicense LICENSE +} + +do_check() { + # the tests assume jq is available to import at this point + PYTHONPATH="build/lib.linux-${XBPS_TARGET_MACHINE}-3.9/" nosetests3 tests +} From e98ff90ed9ecd4bce5b7e8b269a453de8f72020c Mon Sep 17 00:00:00 2001 From: Seth Date: Thu, 15 Apr 2021 02:40:44 -0400 Subject: [PATCH 2/2] urlwatch: update to 2.23 and claim maintainership --- srcpkgs/urlwatch/template | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/srcpkgs/urlwatch/template b/srcpkgs/urlwatch/template index b03f00c3418b..016959b1c06f 100644 --- a/srcpkgs/urlwatch/template +++ b/srcpkgs/urlwatch/template @@ -1,7 +1,7 @@ # Template file for 'urlwatch' pkgname=urlwatch -version=2.21 -revision=2 +version=2.23 +revision=1 build_style=python3-module hostmakedepends="python3-setuptools" depends="python3-appdirs python3-keyring python3-minidb python3-requests @@ -9,13 +9,13 @@ depends="python3-appdirs python3-keyring python3-minidb python3-requests # Check the Docs for optional packages: # https://urlwatch.readthedocs.io/en/latest/dependencies.html#optional-packages checkdepends="python3-pytest python3-pycodestyle python3-docutils - python3-Pygments ${depends}" + python3-Pygments python3-jq ${depends}" short_desc="Tool for monitoring webpages for updates" -maintainer="Orphaned " +maintainer="RunningDroid " license="BSD-3-Clause" homepage="https://thp.io/2008/urlwatch/" distfiles="${PYPI_SITE}/u/urlwatch/urlwatch-${version}.tar.gz" -checksum=c259e0169cc99114b54470d08a8312473159dfdbed1d712d1a222fd8a9d7291a +checksum=73a29efbef80c02bc8c285fca427793979c0e4bef40bc084df5de5436378b842 do_check() { # skip the tests that require python modules that aren't packaged