git: 6c6ce4749990 - main - archivers/py-brotli: Use archivers/brotli instead of bundled one

From: Po-Chuan Hsieh <sunpoet_at_FreeBSD.org>
Date: Mon, 31 Jul 2023 16:46:06 UTC
The branch main has been updated by sunpoet:

URL: https://cgit.FreeBSD.org/ports/commit/?id=6c6ce4749990e9c4ed040e5998cca625009a0e4a

commit 6c6ce4749990e9c4ed040e5998cca625009a0e4a
Author:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2023-07-31 16:31:03 +0000
Commit:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2023-07-31 16:39:55 +0000

    archivers/py-brotli: Use archivers/brotli instead of bundled one
    
    - Bump PORTREVISION for dependency and package change
---
 archivers/py-brotli/Makefile             |  15 ++++-
 archivers/py-brotli/files/patch-setup.py | 111 +++++++++++++++++++++++++++++++
 2 files changed, 125 insertions(+), 1 deletion(-)

diff --git a/archivers/py-brotli/Makefile b/archivers/py-brotli/Makefile
index 7fabda7a36e3..6138c5a79e01 100644
--- a/archivers/py-brotli/Makefile
+++ b/archivers/py-brotli/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	brotli
 PORTVERSION=	1.0.9
+PORTREVISION=	1
 CATEGORIES=	archivers python
 MASTER_SITES=	PYPI
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
@@ -12,13 +13,25 @@ WWW=		https://github.com/google/brotli
 LICENSE=	MIT
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
-USES=		compiler:c++0x cpe python shebangfix zip
+BUILD_DEPENDS=	brotli>=${PORTVERSION}:archivers/brotli
+LIB_DEPENDS=	libbrotlicommon.so:archivers/brotli
+
+USES=		compiler:c++0x cpe pkgconfig python shebangfix zip
 USE_PYTHON=	autoplist concurrent distutils
 
 CPE_VENDOR=	google
 
 SHEBANG_FILES=	python/bro.py
 
+post-patch:
+	@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' ${WRKSRC}/setup.py
+	@${MKDIR} ${WRKSRC}/common/
+# Clean up bundled libraries
+	@${RM} -r ${WRKSRC}/c/
+
+pre-configure:
+	@${PRINTF} "#define BROTLI_VERSION 0x%x%03x%03x\n" `pkgconf --modversion libbrotlicommon | sed 's|\.| |g'` > ${WRKSRC}/common/version.h
+
 post-install:
 	${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name '*.so' -exec ${STRIP_CMD} {} +
 
diff --git a/archivers/py-brotli/files/patch-setup.py b/archivers/py-brotli/files/patch-setup.py
new file mode 100644
index 000000000000..9f97287a706f
--- /dev/null
+++ b/archivers/py-brotli/files/patch-setup.py
@@ -0,0 +1,111 @@
+--- setup.py.orig	2020-08-27 06:24:08 UTC
++++ setup.py
+@@ -25,7 +25,7 @@ CURR_DIR = os.path.abspath(os.path.dirname(os.path.rea
+ 
+ def get_version():
+     """ Return BROTLI_VERSION string as defined in 'common/version.h' file. """
+-    version_file_path = os.path.join(CURR_DIR, 'c', 'common', 'version.h')
++    version_file_path = os.path.join(CURR_DIR, 'common', 'version.h')
+     version = 0
+     with open(version_file_path, 'r') as f:
+         for line in f:
+@@ -181,92 +181,17 @@ EXT_MODULES = [
+         '_brotli',
+         sources=[
+             'python/_brotli.cc',
+-            'c/common/constants.c',
+-            'c/common/context.c',
+-            'c/common/dictionary.c',
+-            'c/common/platform.c',
+-            'c/common/transform.c',
+-            'c/dec/bit_reader.c',
+-            'c/dec/decode.c',
+-            'c/dec/huffman.c',
+-            'c/dec/state.c',
+-            'c/enc/backward_references.c',
+-            'c/enc/backward_references_hq.c',
+-            'c/enc/bit_cost.c',
+-            'c/enc/block_splitter.c',
+-            'c/enc/brotli_bit_stream.c',
+-            'c/enc/cluster.c',
+-            'c/enc/command.c',
+-            'c/enc/compress_fragment.c',
+-            'c/enc/compress_fragment_two_pass.c',
+-            'c/enc/dictionary_hash.c',
+-            'c/enc/encode.c',
+-            'c/enc/encoder_dict.c',
+-            'c/enc/entropy_encode.c',
+-            'c/enc/fast_log.c',
+-            'c/enc/histogram.c',
+-            'c/enc/literal_cost.c',
+-            'c/enc/memory.c',
+-            'c/enc/metablock.c',
+-            'c/enc/static_dict.c',
+-            'c/enc/utf8_util.c',
+         ],
+         depends=[
+-            'c/common/constants.h',
+-            'c/common/context.h',
+-            'c/common/dictionary.h',
+-            'c/common/platform.h',
+-            'c/common/transform.h',
+-            'c/common/version.h',
+-            'c/dec/bit_reader.h',
+-            'c/dec/huffman.h',
+-            'c/dec/prefix.h',
+-            'c/dec/state.h',
+-            'c/enc/backward_references.h',
+-            'c/enc/backward_references_hq.h',
+-            'c/enc/backward_references_inc.h',
+-            'c/enc/bit_cost.h',
+-            'c/enc/bit_cost_inc.h',
+-            'c/enc/block_encoder_inc.h',
+-            'c/enc/block_splitter.h',
+-            'c/enc/block_splitter_inc.h',
+-            'c/enc/brotli_bit_stream.h',
+-            'c/enc/cluster.h',
+-            'c/enc/cluster_inc.h',
+-            'c/enc/command.h',
+-            'c/enc/compress_fragment.h',
+-            'c/enc/compress_fragment_two_pass.h',
+-            'c/enc/dictionary_hash.h',
+-            'c/enc/encoder_dict.h',
+-            'c/enc/entropy_encode.h',
+-            'c/enc/entropy_encode_static.h',
+-            'c/enc/fast_log.h',
+-            'c/enc/find_match_length.h',
+-            'c/enc/hash.h',
+-            'c/enc/hash_composite_inc.h',
+-            'c/enc/hash_forgetful_chain_inc.h',
+-            'c/enc/hash_longest_match64_inc.h',
+-            'c/enc/hash_longest_match_inc.h',
+-            'c/enc/hash_longest_match_quickly_inc.h',
+-            'c/enc/hash_rolling_inc.h',
+-            'c/enc/hash_to_binary_tree_inc.h',
+-            'c/enc/histogram.h',
+-            'c/enc/histogram_inc.h',
+-            'c/enc/literal_cost.h',
+-            'c/enc/memory.h',
+-            'c/enc/metablock.h',
+-            'c/enc/metablock_inc.h',
+-            'c/enc/params.h',
+-            'c/enc/prefix.h',
+-            'c/enc/quality.h',
+-            'c/enc/ringbuffer.h',
+-            'c/enc/static_dict.h',
+-            'c/enc/static_dict_lut.h',
+-            'c/enc/utf8_util.h',
+-            'c/enc/write_bits.h',
+         ],
+         include_dirs=[
+-            'c/include',
++            '%%LOCALBASE%%/include',
++        ],
++        libraries=[
++            'brotlicommon', 'brotlidec', 'brotlienc',
++        ],
++        library_dirs=[
++            '%%LOCALBASE%%/lib',
+         ],
+         language='c++'),
+ ]