Github messages for voidlinux
 help / color / mirror / Atom feed
From: ahesford <ahesford@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] New package: python3-adblock-0.4.2
Date: Thu, 04 Feb 2021 05:22:58 +0100	[thread overview]
Message-ID: <20210204042258.OGnWrmBdq0EfHkOYmxpAqiXyLtT7Dq1dx3gBprMOtis@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-28396@inbox.vuxu.org>

[-- Attachment #1: Type: text/plain, Size: 1494 bytes --]

There is an updated pull request by ahesford against master on the void-packages repository

https://github.com/ahesford/void-packages adblock
https://github.com/void-linux/void-packages/pull/28396

New package: python3-adblock-0.4.2
This supersedes #28380 and #27490.

Compiles natively on `x86_64*`, `aarch64` and `armv7l`. Works as expected on `x86_64` and `aarch64`. I haven't tried the other ARM architectures.

I can't figure out what happens with `openssl-sys` when cross-compiling; the flags passed to GCC include `-m64`, which are rejected by the ARM compilers. On `i686`, the build fails with SIGABRT when trying to build the `psl` crate. The `openssl-sys` issue appears even if I try using the built-in `cargo` build style rather than `maturin`, so this is some configuration problem that extends beyond `maturin`.

Any help fixing these issue would be appreciated. If we can't sort them out, `broken` on `i686` and `nocross` will be sufficient for now.

#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me
- [ ] I generally don't use the affected packages but briefly tested this PR


A patch file from https://github.com/void-linux/void-packages/pull/28396.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-adblock-28396.patch --]
[-- Type: text/x-diff, Size: 5670 bytes --]

From 5ca707edc2d74114b9273c75fea1b9e659fd779e Mon Sep 17 00:00:00 2001
From: "Andrew J. Hesford" <ajh@sideband.org>
Date: Wed, 3 Feb 2021 22:41:02 -0500
Subject: [PATCH 1/3] build-helper/rust: define HOST_CC and HOST_CFLAGS
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The cc-rs crate will try to guess the host compiler and use default
flags these are not specifically set. The default behavior is wrong in
Void cross-compilation environments. Explicitly define HOST_CC=gcc and
use innocuous HOST_CFLAGS=-O2 just to thwart the bad defaults.

Co-authored-by: Érico Rolim <erico.erc@gmail.com>
Co-authored-by: Andrew J. Hesford <ajh@sideband.org>

Closes: #28416.
---
 common/build-helper/rust.sh | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/common/build-helper/rust.sh b/common/build-helper/rust.sh
index 6fcd3bd7d9e..431cb5f0fd4 100644
--- a/common/build-helper/rust.sh
+++ b/common/build-helper/rust.sh
@@ -17,6 +17,12 @@ if [ "$CROSS_BUILD" ]; then
 	# [build]
 	# target = ${RUST_TARGET}
 	export CARGO_BUILD_TARGET="$RUST_TARGET"
+
+	# If cc-rs needs to build host binaries, it guesses the compiler and
+	# uses default (wrong) flags unless they are specified explicitly;
+	# innocuous flags are used here just to disable its defaults
+	export HOST_CC="gcc"
+	export HOST_CFLAGS="-O2"
 else
 	unset CARGO_BUILD_TARGET
 fi

From 7a379b82942a9aad3fb85c28048adb3bd53e7b5c Mon Sep 17 00:00:00 2001
From: "Andrew J. Hesford" <ajh@sideband.org>
Date: Mon, 1 Feb 2021 11:13:44 +0300
Subject: [PATCH 2/3] New package: maturin-0.9.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Co-authored-by: Érico Rolim <erico.erc@gmail.com>
Co-authored-by: Andrew J. Hesford <ajh@sideband.org>
---
 srcpkgs/maturin/template | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
 create mode 100644 srcpkgs/maturin/template

diff --git a/srcpkgs/maturin/template b/srcpkgs/maturin/template
new file mode 100644
index 00000000000..cce53cf58cc
--- /dev/null
+++ b/srcpkgs/maturin/template
@@ -0,0 +1,36 @@
+# Template file for 'maturin'
+pkgname=maturin
+version=0.9.0
+revision=1
+build_style=cargo
+# Disable the 'rustls' feature, which leads to bad platform compatibility
+# The list of enabled features should be reconciled with each new release
+configure_args="--no-default-features --features auditwheel,log,upload,human-panic"
+hostmakedepends="python3-setuptools python3-toml"
+makedepends="libressl-devel"
+depends="python3-toml"
+short_desc="Build and publish crates as python packages"
+maintainer="Andrew J. Hesford <ajh@sideband.org>"
+license="Apache-2.0, MIT"
+homepage="https://github.com/PyO3/maturin"
+distfiles="${homepage}/archive/v${version}.tar.gz"
+checksum=22e8082a743e1dc11f5909b596f9053deb7dc1a56336003677381ba02cf67da8
+
+post_patch() {
+	# setup.py is broken, just use it for the pure python part
+	vsed -e 's/cmdclass.*/packages=["maturin"],/' -i setup.py
+}
+
+post_build() {
+	# python package is pure; the cross environment is not relevant
+	python3 setup.py build
+}
+
+do_check() {
+	echo "Tests use unstable features and fail to build; skipping"
+}
+
+post_install() {
+	vlicense license-mit LICENSE-MIT
+	python3 setup.py install --prefix=/usr --root=${DESTDIR}
+}

From aac6cc97bf3d3f00c7fdbeeee70f574b51b889df Mon Sep 17 00:00:00 2001
From: "Andrew J. Hesford" <ajh@sideband.org>
Date: Mon, 1 Feb 2021 13:50:32 +0300
Subject: [PATCH 3/3] New package: python3-adblock-0.4.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Co-authored-by: Érico Rolim <erico.erc@gmail.com>
Co-authored-by: Andrew J. Hesford <ajh@sideband.org>

Closes: #28396.
Closes: #28380.
Closes: #27490.
---
 srcpkgs/python3-adblock/template | 46 ++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)
 create mode 100644 srcpkgs/python3-adblock/template

diff --git a/srcpkgs/python3-adblock/template b/srcpkgs/python3-adblock/template
new file mode 100644
index 00000000000..c1200f89027
--- /dev/null
+++ b/srcpkgs/python3-adblock/template
@@ -0,0 +1,46 @@
+# Template file for 'python3-adblock'
+pkgname=python3-adblock
+version=0.4.2
+revision=1
+wrksrc="${pkgname/python3/python}-${version}"
+build_style=python3-pep517
+build_helper="rust"
+hostmakedepends="maturin pkg-config cargo libressl-devel"
+makedepends="libressl-devel python3-devel"
+depends="python3"
+checkdepends="python3-pytest"
+short_desc="Brave's adblock library in Python"
+maintainer="Andrew J. Hesford <ajh@sideband.org>"
+license="Apache-2.0, MIT"
+homepage="https://github.com/ArniDagur/python-adblock"
+distfiles="${homepage}/archive/${version}.tar.gz"
+checksum=06de6074e6cfe889fc0383cc929a5a2306570251c14e51abbfcedd328b83e0e9
+
+case "$XBPS_TARGET_MACHINE" in
+	i686*) broken="compiler throws SIGABRT on the psl crate" ;;
+esac
+
+if [ "$CROSS_BUILD" ]; then
+	makedepends+=" rust-std"
+	export PYO3_CROSS_LIB_DIR="${XBPS_CROSS_BASE}/usr/lib"
+	export PYO3_CROSS_INCLUDE_DIR="${XBPS_CROSS_BASE}/usr/include"
+fi
+
+do_build() {
+	maturin build -o . --release --target "${RUST_TARGET}" --manylinux off
+
+	# Drop platform specifiers from the wheel; pip will refuse to install,
+	# e.g., an armv7l wheel on an aarch64 system even if the masterdir is
+	# armv7l. The wheel is correct; no need for name compatibility checks.
+	mv adblock-${version}-*.whl adblock-${version}-py3-none-any.whl
+}
+
+pre_check() {
+	# Tests require the compiled extension
+	cp target/${RUST_TARGET}/release/libadblock.so adblock/adblock.so
+}
+
+post_install() {
+	vlicense LICENSE-MIT
+	chmod 755 ${DESTDIR}/${py3_sitelib}/adblock/*.so
+}

  parent reply	other threads:[~2021-02-04  4:22 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-01 21:01 [PR PATCH] " ahesford
2021-02-01 21:02 ` ahesford
2021-02-01 21:09 ` [PR REVIEW] " ericonr
2021-02-01 21:10 ` ahesford
2021-02-01 21:14 ` ericonr
2021-02-01 21:15 ` ericonr
2021-02-01 21:22 ` ericonr
2021-02-01 21:23 ` ericonr
2021-02-01 21:24 ` ericonr
2021-02-01 21:25 ` ericonr
2021-02-01 21:35 ` ericonr
2021-02-01 21:46 ` ericonr
2021-02-01 21:48 ` ericonr
2021-02-02  1:42 ` ericonr
2021-02-02 15:34 ` [PR PATCH] [Updated] " ahesford
2021-02-02 15:49 ` ahesford
2021-02-03 22:06 ` [PR PATCH] [Updated] " ahesford
2021-02-04  1:23 ` [PR REVIEW] " ericonr
2021-02-04  1:23 ` ericonr
2021-02-04  1:23 ` ericonr
2021-02-04  1:23 ` ericonr
2021-02-04  1:34 ` ericonr
2021-02-04  4:21 ` [PR PATCH] [Updated] " ahesford
2021-02-04  4:22 ` ahesford [this message]
2021-02-04  4:25 ` ahesford
2021-02-04  5:33 ` [PR PATCH] [Closed]: " ahesford

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210204042258.OGnWrmBdq0EfHkOYmxpAqiXyLtT7Dq1dx3gBprMOtis@z \
    --to=ahesford@users.noreply.github.com \
    --cc=ml@inbox.vuxu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).