From 288dd73996adc146e46686ff748f1f6a01871816 Mon Sep 17 00:00:00 2001 From: RunningDroid Date: Sun, 13 Feb 2022 23:08:59 -0500 Subject: [PATCH 1/2] New Package: python3-jq-1.2.2 --- srcpkgs/python3-jq/patches/jq-py-setup.patch | 143 +++++++++++++++++++ srcpkgs/python3-jq/template | 23 +++ 2 files changed, 166 insertions(+) create mode 100644 srcpkgs/python3-jq/patches/jq-py-setup.patch create mode 100644 srcpkgs/python3-jq/template diff --git a/srcpkgs/python3-jq/patches/jq-py-setup.patch b/srcpkgs/python3-jq/patches/jq-py-setup.patch new file mode 100644 index 000000000000..1eb4f28e7aa9 --- /dev/null +++ b/srcpkgs/python3-jq/patches/jq-py-setup.patch @@ -0,0 +1,143 @@ +From bef841b73ba7c9a79211146798ac888fce9bb55a Mon Sep 17 00:00:00 2001 +From: "Robert T. McGibbon" +Date: Fri, 7 May 2021 19:14:20 -0400 +Subject: [PATCH 1/1] Vastly simplify setup.py for distro compatibility + +--- + setup.py | 98 +------------------------------------------------------- + 1 file changed, 1 insertion(+), 97 deletions(-) + +diff --git a/setup.py b/setup.py +index 663792c..3ebcabe 100644 +--- a/setup.py ++++ b/setup.py +@@ -1,113 +1,19 @@ + #!/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 + + +-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( +@@ -120,7 +26,6 @@ setup( + 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}, + classifiers=[ + 'Development Status :: 5 - Production/Stable', + 'Intended Audience :: Developers', +@@ -137,4 +42,3 @@ setup( + 'Programming Language :: Python :: 3.9', + ], + ) +- +-- +2.29.3 diff --git a/srcpkgs/python3-jq/template b/srcpkgs/python3-jq/template new file mode 100644 index 000000000000..fa8c8638a562 --- /dev/null +++ b/srcpkgs/python3-jq/template @@ -0,0 +1,23 @@ +# Template file for 'python3-jq' +pkgname=python3-jq +version=1.2.2 +revision=1 +wrksrc="${pkgname#*-}.py-${version}" +build_style=python3-module +hostmakedepends="python3-setuptools python3-Cython" +makedepends="python3-devel jq-devel" +depends="python3 jq" +short_desc="Python bindings for jq" +maintainer="RunningDroid " +license="BSD-2-Clause" +homepage="https://pypi.org/project/jq/" +distfiles="https://github.com/mwilliamson/jq.py/archive/${version}.tar.gz" +checksum=0b926078855b6daee6e8ae5366ebf11c06911195abae643a7cdd37fce087fa0e + +pre_build() { + cython jq.pyx +} + +post_install() { + vlicense LICENSE +} From aef55b0c733a98926077db2d060ce9766dd5394c Mon Sep 17 00:00:00 2001 From: RunningDroid Date: Sun, 13 Feb 2022 23:09:28 -0500 Subject: [PATCH 2/2] urlwatch: update to 2.24. --- srcpkgs/urlwatch/patches/test_handler.patch | 14 ++++++++++++++ srcpkgs/urlwatch/template | 10 +++++----- 2 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 srcpkgs/urlwatch/patches/test_handler.patch diff --git a/srcpkgs/urlwatch/patches/test_handler.patch b/srcpkgs/urlwatch/patches/test_handler.patch new file mode 100644 index 000000000000..73f301e49f9f --- /dev/null +++ b/srcpkgs/urlwatch/patches/test_handler.patch @@ -0,0 +1,14 @@ +Work around https://github.com/thp/urlwatch/issues/677 + +diff --git a/lib/urlwatch/tests/test_handler.py b/lib/urlwatch/tests/test_handler.py +index 736536a..fac9449 100644 +--- a/lib/urlwatch/tests/test_handler.py ++++ b/lib/urlwatch/tests/test_handler.py +@@ -89,6 +89,7 @@ def test_pep8_conformance(): + + class ConfigForTest(CommandConfig): + def __init__(self, config, urls, cache, hooks, verbose): ++ sys.argv = sys.argv[:1] + (prefix, bindir) = os.path.split(os.path.dirname(os.path.abspath(sys.argv[0]))) + super().__init__('urlwatch', os.path.dirname(__file__), bindir, prefix, config, urls, hooks, cache, verbose) + diff --git a/srcpkgs/urlwatch/template b/srcpkgs/urlwatch/template index a10260a19af1..2e7c1eed51ee 100644 --- a/srcpkgs/urlwatch/template +++ b/srcpkgs/urlwatch/template @@ -1,7 +1,7 @@ # Template file for 'urlwatch' pkgname=urlwatch -version=2.23 -revision=2 +version=2.24 +revision=1 build_style=python3-module hostmakedepends="python3-setuptools" depends="python3-appdirs python3-keyring python3-minidb python3-requests @@ -9,18 +9,18 @@ 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="RunningDroid " license="BSD-3-Clause" homepage="https://thp.io/2008/urlwatch/" distfiles="${PYPI_SITE}/u/urlwatch/urlwatch-${version}.tar.gz" -checksum=73a29efbef80c02bc8c285fca427793979c0e4bef40bc084df5de5436378b842 +checksum=f0b36db4bccd38923b178b66408c0d80d3103b7257f286b78e87d991283b86d7 do_check() { # skip the tests that require python modules that aren't packaged # (pdftotext & pytesseract) - pytest -k "not (pdf or ocr or json)" -v + pytest -k 'not (pdf or ocr)' -v } post_install() {