summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authororbea <orbea@riseup.net>2022-05-14 02:18:38 -0700
committerSam James <sam@gentoo.org>2022-05-15 00:05:35 +0000
commitef3e19c86a91a048d41ee9c32a4feaeae6124ded (patch)
treea19ac853a439f201a7d6a43e34c308cdfbe27bcb /net-libs/pacparser
parentapp-misc/rpick: Add 0.8.10 (diff)
downloadgentoo-ef3e19c86a91a048d41ee9c32a4feaeae6124ded.tar.gz
gentoo-ef3e19c86a91a048d41ee9c32a4feaeae6124ded.tar.bz2
gentoo-ef3e19c86a91a048d41ee9c32a4feaeae6124ded.zip
net-libs/pacparser: Add 1.4.0
Bug: https://bugs.gentoo.org/793425 Upstream-PR: https://github.com/manugarg/pacparser/pull/106 Upstream-PR: https://github.com/manugarg/pacparser/pull/136 Upstream-PR: https://github.com/manugarg/pacparser/pull/137 Upstream-Commit: https://github.com/manugarg/pacparser/commit/c6258eb8001b449819e11b98bb124903fab96990 Signed-off-by: orbea <orbea@riseup.net> Closes: https://github.com/gentoo/gentoo/pull/25487 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'net-libs/pacparser')
-rw-r--r--net-libs/pacparser/Manifest1
-rw-r--r--net-libs/pacparser/files/pacparser-1.4.0-build.patch96
-rw-r--r--net-libs/pacparser/files/pacparser-1.4.0-pymod.patch61
-rw-r--r--net-libs/pacparser/pacparser-1.4.0.ebuild70
4 files changed, 228 insertions, 0 deletions
diff --git a/net-libs/pacparser/Manifest b/net-libs/pacparser/Manifest
index f688ce59f8ae..72238f10a507 100644
--- a/net-libs/pacparser/Manifest
+++ b/net-libs/pacparser/Manifest
@@ -1 +1,2 @@
DIST pacparser-1.3.7.tar.gz 905596 BLAKE2B 122127b6e1d8f68fde4c5ca98207bf2a0fa2a081dbb60aaf34126700a3de9d861e7b5f881e78d3eefdd2a9af97a9ba677339ca2b2a0b4459d26e60a62226e839 SHA512 979238204cd352ecf502a5a6216a35d7c47e82a173c32c6f0a5166f1fe790c66ac74ec1d9d0a58b54038d19e893f8b365ed868664f84ab9d5e653584bf20130b
+DIST pacparser-1.4.0.tar.gz 902919 BLAKE2B da29b34654764b1569d9d37648e4ccb608142becaf34c65cdf37b2bd81aa073b1945d840fb50aa7cb986687bbdc086c862a05bc421adb08d44e1add637b712ed SHA512 9574068dc4da3db27ddc1242cf98d98ebc7515864789e95b700cd2ce1433a7cff84160f1507976488fab7529839cabe9cf2aa16ddbefc0c83009fa6c0d2ad6b3
diff --git a/net-libs/pacparser/files/pacparser-1.4.0-build.patch b/net-libs/pacparser/files/pacparser-1.4.0-build.patch
new file mode 100644
index 000000000000..2a8898579327
--- /dev/null
+++ b/net-libs/pacparser/files/pacparser-1.4.0-build.patch
@@ -0,0 +1,96 @@
+Upstream-PR: https://github.com/manugarg/pacparser/pull/136
+From 5d689be2e250242ef4022054f11bf00af339c149 Mon Sep 17 00:00:00 2001
+From: orbea <orbea@riseup.net>
+Date: Fri, 13 May 2022 22:34:37 -0700
+Subject: [PATCH 1/2] build: Don't conflict with the user's CFLAGS
+
+This uses the variable MAINT_CFLAGS to set the project's flags so that
+the user can set CFLAGS as an environment variable or as an make
+argument without any conflicts.
+
+This can be problemtic with the build environment in some distros.
+---
+ src/Makefile | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 87f5c1b..3642241 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -60,14 +60,14 @@ ifeq ($(OS_ARCH),Darwin)
+ endif
+
+ PREFIX ?= /usr
+-CFLAGS = -g -DXP_UNIX -Wall -DVERSION=$(VERSION)
++MAINT_CFLAGS := -g -DXP_UNIX -Wall -DVERSION=$(VERSION)
+
+ ifndef PYTHON
+ PYTHON = python
+ endif
+
+ # Spidermonkey library.
+-CFLAGS += -Ispidermonkey/js/src
++MAINT_CFLAGS += -Ispidermonkey/js/src
+
+ LIBRARY_LINK = $(LIBRARY_NAME).$(SO_SUFFIX)
+ PREFIX := $(DESTDIR)$(PREFIX)
+@@ -87,17 +87,17 @@ spidermonkey/libjs.a: spidermonkey/js/src
+ cd spidermonkey && SMCFLAGS="$(SHFLAGS) $(SMCFLAGS)" $(MAKE) jslib
+
+ pacparser.o: pacparser.c pac_utils.h pacparser.h jsapi_buildstamp
+- $(CC) $(CFLAGS) $(SHFLAGS) -c pacparser.c -o pacparser.o
++ $(CC) $(MAINT_CFLAGS) $(CFLAGS) $(SHFLAGS) -c pacparser.c -o pacparser.o
+ touch pymod/pacparser_o_buildstamp
+
+ $(LIBRARY): pacparser.o spidermonkey/libjs.a
+- $(MKSHLIB) $(CFLAGS) $(LDFLAGS) $(LIB_OPTS) -o $(LIBRARY) pacparser.o spidermonkey/libjs.a -lm
++ $(MKSHLIB) $(MAINT_CFLAGS) $(CFLAGS) $(LDFLAGS) $(LIB_OPTS) -o $(LIBRARY) pacparser.o spidermonkey/libjs.a -lm
+
+ $(LIBRARY_LINK): $(LIBRARY)
+ ln -sf $(LIBRARY) $(LIBRARY_LINK)
+
+ pactester: pactester.c pacparser.h pacparser.o spidermonkey/libjs.a
+- $(CC) $(CFLAGS) $(LDFLAGS) pactester.c pacparser.o spidermonkey/libjs.a -o pactester -lm -L. -I.
++ $(CC) $(MAINT_CFLAGS) $(CFLAGS) $(LDFLAGS) pactester.c pacparser.o spidermonkey/libjs.a -o pactester -lm -L. -I.
+
+ testpactester: pactester $(LIBRARY_LINK)
+ echo "Running tests for pactester."
+
+From ff86f230de5dd60935e1793077eb038fcbe1e515 Mon Sep 17 00:00:00 2001
+From: orbea <orbea@riseup.net>
+Date: Fri, 13 May 2022 22:45:19 -0700
+Subject: [PATCH 2/2] build: Add DOC_PREFIX
+
+This can be useful for distro integration.
+---
+ src/Makefile | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 3642241..af10890 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -74,6 +74,7 @@ PREFIX := $(DESTDIR)$(PREFIX)
+ LIB_PREFIX = $(PREFIX)/lib
+ INC_PREFIX = $(PREFIX)/include
+ BIN_PREFIX = $(PREFIX)/bin
++DOC_PREFIX = $(PREFIX)/share/doc/pacparser
+ MAN_PREFIX = $(PREFIX)/share/man
+
+ .PHONY: clean pymod install-pymod
+@@ -119,11 +120,11 @@ install: all
+ install -d $(MAN_PREFIX)/man3/
+ (test -d ../docs && install -m 644 ../docs/man/man3/*.3 $(MAN_PREFIX)/man3/) || true
+ # install html docs
+- install -d $(PREFIX)/share/doc/pacparser/html/
+- (test -d ../docs/html && install -m 644 ../docs/html/* $(PREFIX)/share/doc/pacparser/html/) || true
++ install -d $(DOC_PREFIX)/html/
++ (test -d ../docs/html && install -m 644 ../docs/html/* $(DOC_PREFIX)/html/) || true
+ # install examples
+- install -d $(PREFIX)/share/doc/pacparser/examples/
+- (test -d ../examples && install -m 644 ../examples/* $(PREFIX)/share/doc//pacparser/examples/) || true
++ install -d $(DOC_PREFIX)/examples/
++ (test -d ../examples && install -m 644 ../examples/* $(DOC_PREFIX)/examples/) || true
+
+ # Targets to build python module
+ pymod: pacparser.o pacparser.h spidermonkey/libjs.a
diff --git a/net-libs/pacparser/files/pacparser-1.4.0-pymod.patch b/net-libs/pacparser/files/pacparser-1.4.0-pymod.patch
new file mode 100644
index 000000000000..203e34c838f1
--- /dev/null
+++ b/net-libs/pacparser/files/pacparser-1.4.0-pymod.patch
@@ -0,0 +1,61 @@
+Upstream-PR: https://github.com/manugarg/pacparser/pull/137
+From 351b8f837ebbdf6e6fa4978a70287899436890eb Mon Sep 17 00:00:00 2001
+From: orbea <orbea@riseup.net>
+Date: Sat, 14 May 2022 01:46:25 -0700
+Subject: [PATCH] tests: Fix python path in runtests.py
+
+In Gentoo the runtests.py script fails when it fails to determine the
+pacparser path.
+
+This happens because 'py_ver' expands to '3.9' when the expected
+directory ends in '39'. This can be solved by replacing any periods in
+the string.
+
+python ../tests/runtests.py
+Traceback (most recent call last):
+ File "/tmp/pacparser/src/../tests/runtests.py", line 31, in runtests
+ pacparser_module_path = glob.glob(os.path.join(
+IndexError: list index out of range
+
+During handling of the above exception, another exception occurred:
+
+Traceback (most recent call last):
+ File "/tmp/pacparser/src/../tests/runtests.py", line 81, in <module>
+ main()
+ File "/tmp/pacparser/src/../tests/runtests.py", line 78, in main
+ runtests(pacfile, testdata, tests_dir)
+ File "/tmp/pacparser/src/../tests/runtests.py", line 34, in runtests
+ raise Exception('Tests failed. Could not determine pacparser path.')
+Exception: Tests failed. Could not determine pacparser path.
+---
+ tests/runtests.py | 16 +++++++++++++---
+ 1 file changed, 13 insertions(+), 3 deletions(-)
+
+diff --git a/tests/runtests.py b/tests/runtests.py
+index 9760300..a5377d1 100644
+--- a/tests/runtests.py
++++ b/tests/runtests.py
+@@ -26,10 +26,20 @@
+ import sys
+
+ def runtests(pacfile, testdata, tests_dir):
+- py_ver = '.'.join([str(x) for x in sys.version_info[0:2]])
++ ver = '.'.join([str(x) for x in sys.version_info[0:2]])
++ py_ver = [ver, ver.replace('.', '')]
+ try:
+- pacparser_module_path = glob.glob(os.path.join(
+- tests_dir, '..', 'src', 'pymod', 'build', 'lib*%s' % py_ver))[0]
++ module_path = glob.glob(os.path.join(
++ tests_dir, '..', 'src', 'pymod', 'build', 'lib*'))
++ module_found = False
++ for module in module_path:
++ for version in py_ver:
++ if module.endswith(version):
++ module_found = True
++ break
++ if module_found:
++ pacparser_module_path = module
++ break
+ except Exception:
+ raise Exception('Tests failed. Could not determine pacparser path.')
+ if 'DEBUG' in os.environ: print('Pacparser module path: %s' %
diff --git a/net-libs/pacparser/pacparser-1.4.0.ebuild b/net-libs/pacparser/pacparser-1.4.0.ebuild
new file mode 100644
index 000000000000..e8346b1a79ea
--- /dev/null
+++ b/net-libs/pacparser/pacparser-1.4.0.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8,9,10} )
+
+inherit python-r1 toolchain-funcs
+
+DESCRIPTION="Library to parse proxy auto-config files"
+HOMEPAGE="http://pacparser.manugarg.com/"
+SRC_URI="https://github.com/manugarg/${PN}/archive/v${PV}/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0/1"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc python"
+
+DEPEND="python? ( ${PYTHON_DEPS} )"
+RDEPEND="${DEPEND}"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+# spidermonkey-1.7.0 is bundled
+# tested unbundling with spidermonkey-1.8* and 1.7
+# and got many failures: unbundling not worth it.
+
+PATCHES=(
+ "${FILESDIR}/${P}-build.patch"
+ "${FILESDIR}/${P}-pymod.patch"
+)
+
+src_prepare() {
+ default
+
+ sed -e '/CC = gcc/d' \
+ -i src/spidermonkey/js/src/config/Linux_All.mk || die
+
+ export NO_INTERNET=yes
+ export VERSION="${PV}"
+ tc-export CC AR RANLIB
+}
+
+src_compile() {
+ # Upstream parallel compilation bug, do that first to work around
+ emake -C src/spidermonkey
+ emake -C src
+ use python && python_foreach_impl emake -C src pymod
+}
+
+src_install() {
+ emake \
+ LIB_PREFIX="${ED}/usr/$(get_libdir)" \
+ DOC_PREFIX="${ED}/usr/share/doc/${PF}" \
+ BIN_PREFIX="${ED}"/usr/bin \
+ INC_PREFIX="${ED}"/usr/include \
+ MAN_PREFIX="${ED}"/usr/share/man \
+ -C src install
+ dodoc README.md
+
+ if use python; then
+ python_foreach_impl emake DESTDIR="${D}" -C src install-pymod
+ python_foreach_impl python_optimize
+ fi
+
+ if use doc; then
+ docompress -x /usr/share/doc/${PF}/{html,examples}
+ else
+ rm -r "${ED}"/usr/share/doc/${PF}/{html,examples} || die
+ fi
+}