1 %define crates_ver 0.5.2
4 Summary: Brave's adblock library in Python
5 Name: python3-%{module}
8 License: MIT or Apache v2.0
9 Group: Libraries/Python
10 Source0: https://files.pythonhosted.org/packages/source/a/adblock/%{module}-%{version}.tar.gz
11 # Source0-md5: bc38178bd980bbb0472bead80f835367
13 Source1: %{name}-crates-%{crates_ver}.tar.xz
14 # Source1-md5: bc781735a3f336a7e403fe8dc3ef3749
15 URL: https://github.com/ArniDagur/python-adblock
17 BuildRequires: maturin >= 0.10
18 BuildRequires: python3-devel >= 1:3.6
19 BuildRequires: rpm-pythonprov
20 BuildRequires: rpmbuild(macros) >= 2.012
21 BuildRequires: rust >= 1.45
22 BuildRequires: tar >= 1:1.22
24 ExclusiveArch: %{rust_arches}
25 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
28 Python wrapper for Brave's adblocking library, which is written in
32 %setup -q -n %{module}-%{version} -a1
34 %{__mv} %{module}-%{crates_ver}/* .
35 sed -i -e 's/@@VERSION@@/%{version}/' Cargo.lock
37 # use our offline registry
38 export CARGO_HOME="$(pwd)/.cargo"
40 mkdir -p "$CARGO_HOME"
41 cat >.cargo/config <<EOF
43 registry = 'https://github.com/rust-lang/crates.io-index'
44 replace-with = 'vendored-sources'
46 [source.vendored-sources]
47 directory = '$PWD/vendor'
51 export CARGO_HOME="$(pwd)/.cargo"
52 export CARGO_NET_OFFLINE=true
53 export CARGO_TERM_VERBOSE=true
54 %{?__jobs:export CARGO_BUILD_JOBS="%{__jobs}"}
55 export RUSTFLAGS="%{rpmrustflags}"
57 export RUSTFLAGS="$RUSTFLAGS -C opt-level=1"
59 /usr/bin/maturin build --release --no-sdist \
60 --target %{rust_target}
63 rm -rf $RPM_BUILD_ROOT
65 install -d $RPM_BUILD_ROOT%{py3_sitedir}
66 cp -p %{cargo_objdir}/libadblock.so $RPM_BUILD_ROOT%{py3_sitedir}/%{module}.so
69 rm -rf $RPM_BUILD_ROOT
71 %files -n python3-%{module}
72 %defattr(644,root,root,755)
73 %doc CHANGELOG.md README.md
74 %attr(755,root,root) %{py3_sitedir}/%{module}.so