freebsd-ports/www/py-adblock/Makefile

146 lines
4.0 KiB
Makefile

PORTNAME= adblock
DISTVERSION= 0.5.0
PORTREVISION= 33
CATEGORIES= www python
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
MAINTAINER= vendion@gmail.com
COMMENT= Brave's adblock library in Python
WWW= https://pypi.org/project/adblock/
LICENSE= APACHE20 MIT
LICENSE_COMB= dual
LICENSE_FILE_APACHE20= ${WRKSRC}/LICENSE-APACHE
LICENSE_FILE_MIT= ${WRKSRC}/LICENSE-MIT
# Although the port builds fine on some 32-bit architectures (e.g. i386) it
# doesn't support creating 32-bit Python wheels for FreeBSD. Thus save build
# time and skip the port at a early stage.
# SEE devel/py-maturin/Makefile
NOT_FOR_ARCHS= armv6 armv7 i386 mips powerpc
NOT_FOR_ARCHS_REASON= the creation of 32-bit Python wheels is not supported for FreeBSD
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}maturin>=0.8.3:devel/py-maturin@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pip>=20.2.3:devel/py-pip@${PY_FLAVOR} \
public_suffix_list>0:dns/public_suffix_list
USES= cargo python:3.6+
USE_GITHUB= yes
GH_ACCOUNT= ArniDagur
GH_PROJECT= python-adblock
USE_PYTHON= autoplist concurrent cython distutils
CARGO_CRATES= adblock-0.3.13 \
addr-0.14.0 \
adler-1.0.2 \
aho-corasick-0.7.18 \
autocfg-1.0.1 \
base64-0.13.0 \
bitflags-1.2.1 \
byteorder-1.4.3 \
cfg-if-1.0.0 \
crc32fast-1.2.1 \
ctor-0.1.20 \
either-1.6.1 \
flate2-1.0.20 \
form_urlencoded-1.0.1 \
ghost-0.1.2 \
idna-0.2.2 \
indoc-0.3.6 \
indoc-impl-0.3.6 \
instant-0.1.9 \
inventory-0.1.10 \
inventory-impl-0.1.10 \
itertools-0.9.0 \
libc-0.2.93 \
lock_api-0.4.3 \
matches-0.1.8 \
memchr-2.4.0 \
miniz_oxide-0.4.4 \
num-traits-0.2.14 \
once_cell-1.7.2 \
parking_lot-0.11.1 \
parking_lot_core-0.8.3 \
paste-0.1.18 \
paste-impl-0.1.18 \
percent-encoding-2.1.0 \
proc-macro-hack-0.5.19 \
proc-macro2-1.0.26 \
psl-2.0.18 \
psl-types-2.0.7 \
pyo3-0.13.2 \
pyo3-macros-0.13.2 \
pyo3-macros-backend-0.13.2 \
quote-1.0.9 \
redox_syscall-0.2.5 \
regex-1.5.4 \
regex-syntax-0.6.25 \
rmp-0.8.10 \
rmp-serde-0.13.7 \
scopeguard-1.1.0 \
seahash-3.0.7 \
serde-1.0.125 \
serde_derive-1.0.125 \
smallvec-1.6.1 \
syn-1.0.69 \
tinyvec-1.2.0 \
tinyvec_macros-0.1.0 \
twoway-0.2.1 \
unchecked-index-0.2.2 \
unicode-bidi-0.3.5 \
unicode-normalization-0.1.17 \
unicode-xid-0.2.1 \
unindent-0.1.7 \
url-2.2.1 \
winapi-0.3.9 \
winapi-i686-pc-windows-gnu-0.4.0 \
winapi-x86_64-pc-windows-gnu-0.4.0
CARGO_BUILD= no
CARGO_INSTALL= no
CARGO_TARGET_DIR= ${WRKSRC}/target
CONFLICTS_INSTALL= py3[0-9]-adblock py3[0-9][0-9]-adblock # lib/libadblock.so
# Required since maturin >= 0.13.0
BINARY_ALIAS= python3=${PYTHON_CMD}
.include <bsd.port.options.mk>
# This is to prevent Mk/Uses/python.mk do-configure target from firing.
do-configure:
do-build:
@(cd ${BUILD_WRKSRC} ; \
PSL_PATH="${PREFIX}/share/public_suffix_list/public_suffix_list.dat" \
${SETENV} ${MAKE_ENV} maturin-${PYTHON_VER} build --release ${WITH_DEBUG:D:U--strip})
# Due to upstream not supplying a setup.py file or other way to install
# using pip command for now...
do-install:
.if ${ARCH:Mpowerpc64*}
@(cd ${INSTALL_WRKSRC}; \
${FIND} . -name "*whl" -exec sh -c 'mv {} `echo {} | sed -E -e "s/powerpc.*/powerpc.whl/"`' \;)
.endif
@(cd ${INSTALL_WRKSRC} ; \
${INSTALL_DATA} "target/release/libadblock.so" \
"${STAGEDIR}/${PREFIX}/lib" ; \
${SETENV} ${MAKE_ENV} pip-${PYTHON_VER} install --isolated --root=${STAGEDIR} \
--ignore-installed --no-deps target/wheels/*.whl)
post-install:
(cd ${STAGEDIR}${PREFIX} && \
${PYTHON_CMD} ${PYTHON_LIBDIR}/compileall.py -d ${PREFIX} \
-f ${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;})
${STRIP_CMD} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/adblock/adblock*.so
# Regenerate .PLIST.pymodtemp to get all installed files from
# ${STAGEDIR} because the file that is generated in the first place
# contains only the EGG files as a whole.
# SEE devel/py-maturin/Makefile
@${FIND} ${STAGEDIR} \
-type f -o -type l | \
${SORT} | ${SED} -e 's|${STAGEDIR}||' > \
${WRKDIR}/.PLIST.pymodtmp
.include <bsd.port.mk>