commit:     ef3e19c86a91a048d41ee9c32a4feaeae6124ded
Author:     orbea <orbea <AT> riseup <DOT> net>
AuthorDate: Sat May 14 09:18:38 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun May 15 00:05:35 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ef3e19c8

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 <AT> riseup.net>
Closes: https://github.com/gentoo/gentoo/pull/25487
Signed-off-by: Sam James <sam <AT> gentoo.org>

 net-libs/pacparser/Manifest                        |  1 +
 .../pacparser/files/pacparser-1.4.0-build.patch    | 96 ++++++++++++++++++++++
 .../pacparser/files/pacparser-1.4.0-pymod.patch    | 61 ++++++++++++++
 net-libs/pacparser/pacparser-1.4.0.ebuild          | 70 ++++++++++++++++
 4 files changed, 228 insertions(+)

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 <or...@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 <or...@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 <or...@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
+}

Reply via email to