File python-primp.spec of Package python-primp
#
# spec file for package python-primp
#
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%{?sle15_python_module_pythons}
Name: python-primp
Version: 0.9.3
Release: 0
Summary: HTTP client that can impersonate web browsers
License: MIT
URL: https://github.com/deedy5/primp
Source0: https://files.pythonhosted.org/packages/source/p/primp/primp-%{version}.tar.gz
Source1: vendor.tar.xz
BuildRequires: %{python_module maturin >= 1.5}
BuildRequires: %{python_module pip}
# BuildRequires: %%{python_module pytest >= 8.1.1}
# BuildRequires: %%{python_module certifi}
BuildRequires: cargo-packaging
BuildRequires: clang-devel
BuildRequires: cmake
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: git
BuildRequires: openssl
BuildRequires: python-rpm-macros
Provides: bundled(crate(addr2line)) = 0.24.2
Provides: bundled(crate(adler2)) = 2.0.0
Provides: bundled(crate(ahash)) = 0.8.11
Provides: bundled(crate(aho-corasick)) = 1.1.3
Provides: bundled(crate(alloc-no-stdlib)) = 2.0.4
Provides: bundled(crate(alloc-stdlib)) = 0.2.2
Provides: bundled(crate(antidote)) = 1.0.0
Provides: bundled(crate(anyhow)) = 1.0.94
Provides: bundled(crate(arc-swap)) = 1.7.1
Provides: bundled(crate(async-compression)) = 0.4.18
Provides: bundled(crate(atomic-waker)) = 1.1.2
Provides: bundled(crate(autocfg)) = 1.4.0
Provides: bundled(crate(backtrace)) = 0.3.74
Provides: bundled(crate(base64)) = 0.22.1
Provides: bundled(crate(bindgen)) = 0.70.1
Provides: bundled(crate(bitflags)) = 2.6.0
Provides: bundled(crate(boring-sys2)) = 4.13.2
Provides: bundled(crate(boring2)) = 4.13.2
Provides: bundled(crate(brotli)) = 7.0.0
Provides: bundled(crate(brotli-decompressor)) = 4.0.1
Provides: bundled(crate(byteorder)) = 1.5.0
Provides: bundled(crate(bytes)) = 1.9.0
Provides: bundled(crate(cc)) = 1.2.3
Provides: bundled(crate(cexpr)) = 0.6.0
Provides: bundled(crate(cfg-if)) = 1.0.0
Provides: bundled(crate(clang-sys)) = 1.8.1
Provides: bundled(crate(cmake)) = 0.1.52
Provides: bundled(crate(cookie)) = 0.18.1
Provides: bundled(crate(cookie_store)) = 0.21.1
Provides: bundled(crate(core-foundation)) = 0.9.4
Provides: bundled(crate(core-foundation-sys)) = 0.8.7
Provides: bundled(crate(crc32fast)) = 1.4.2
Provides: bundled(crate(deranged)) = 0.3.11
Provides: bundled(crate(displaydoc)) = 0.2.5
Provides: bundled(crate(document-features)) = 0.2.10
Provides: bundled(crate(either)) = 1.13.0
Provides: bundled(crate(encoding_rs)) = 0.8.35
Provides: bundled(crate(equivalent)) = 1.0.1
Provides: bundled(crate(flate2)) = 1.0.35
Provides: bundled(crate(fnv)) = 1.0.7
Provides: bundled(crate(foreign-types)) = 0.5.0
Provides: bundled(crate(foreign-types-macros)) = 0.2.3
Provides: bundled(crate(foreign-types-shared)) = 0.3.1
Provides: bundled(crate(form_urlencoded)) = 1.2.1
Provides: bundled(crate(fs_extra)) = 1.3.0
Provides: bundled(crate(fslock)) = 0.2.1
Provides: bundled(crate(futf)) = 0.1.5
Provides: bundled(crate(futures-channel)) = 0.3.31
Provides: bundled(crate(futures-core)) = 0.3.31
Provides: bundled(crate(futures-sink)) = 0.3.31
Provides: bundled(crate(futures-task)) = 0.3.31
Provides: bundled(crate(futures-util)) = 0.3.31
Provides: bundled(crate(getrandom)) = 0.2.15
Provides: bundled(crate(gimli)) = 0.31.1
Provides: bundled(crate(glob)) = 0.3.1
Provides: bundled(crate(hashbrown)) = 0.15.2
Provides: bundled(crate(heck)) = 0.5.0
Provides: bundled(crate(html2text)) = 0.13.5
Provides: bundled(crate(html5ever)) = 0.29.0
Provides: bundled(crate(http)) = 0.2.12
Provides: bundled(crate(http-body)) = 0.4.6
Provides: bundled(crate(httparse)) = 1.9.5
Provides: bundled(crate(httpdate)) = 1.0.3
Provides: bundled(crate(hyper2)) = 0.14.66
Provides: bundled(crate(icu_collections)) = 1.5.0
Provides: bundled(crate(icu_locid)) = 1.5.0
Provides: bundled(crate(icu_locid_transform)) = 1.5.0
Provides: bundled(crate(icu_locid_transform_data)) = 1.5.0
Provides: bundled(crate(icu_normalizer)) = 1.5.0
Provides: bundled(crate(icu_normalizer_data)) = 1.5.0
Provides: bundled(crate(icu_properties)) = 1.5.1
Provides: bundled(crate(icu_properties_data)) = 1.5.0
Provides: bundled(crate(icu_provider)) = 1.5.0
Provides: bundled(crate(icu_provider_macros)) = 1.5.0
Provides: bundled(crate(idna)) = 1.0.3
Provides: bundled(crate(idna_adapter)) = 1.2.0
Provides: bundled(crate(indexmap)) = 2.7.0
Provides: bundled(crate(indoc)) = 2.0.5
Provides: bundled(crate(ipnet)) = 2.10.1
Provides: bundled(crate(itertools)) = 0.13.0
Provides: bundled(crate(itoa)) = 1.0.14
Provides: bundled(crate(jobserver)) = 0.1.32
Provides: bundled(crate(libc)) = 0.2.167
Provides: bundled(crate(libloading)) = 0.8.6
Provides: bundled(crate(linked-hash-map)) = 0.5.6
Provides: bundled(crate(linked_hash_set)) = 0.1.4
Provides: bundled(crate(litemap)) = 0.7.4
Provides: bundled(crate(litrs)) = 0.4.1
Provides: bundled(crate(lock_api)) = 0.4.12
Provides: bundled(crate(log)) = 0.4.22
Provides: bundled(crate(mac)) = 0.1.1
Provides: bundled(crate(markup5ever)) = 0.14.0
Provides: bundled(crate(memchr)) = 2.7.4
Provides: bundled(crate(memoffset)) = 0.9.1
Provides: bundled(crate(mime)) = 0.3.17
Provides: bundled(crate(mime_guess)) = 2.0.5
Provides: bundled(crate(minimal-lexical)) = 0.2.1
Provides: bundled(crate(miniz_oxide)) = 0.8.0
Provides: bundled(crate(mio)) = 1.0.3
Provides: bundled(crate(new_debug_unreachable)) = 1.0.6
Provides: bundled(crate(nom)) = 7.1.3
Provides: bundled(crate(num-conv)) = 0.1.0
Provides: bundled(crate(object)) = 0.36.5
Provides: bundled(crate(once_cell)) = 1.20.2
Provides: bundled(crate(openssl-macros)) = 0.1.1
Provides: bundled(crate(parking_lot)) = 0.12.3
Provides: bundled(crate(parking_lot_core)) = 0.9.10
Provides: bundled(crate(percent-encoding)) = 2.3.1
Provides: bundled(crate(phf)) = 0.11.2
Provides: bundled(crate(phf_codegen)) = 0.11.2
Provides: bundled(crate(phf_generator)) = 0.10.0
Provides: bundled(crate(phf_generator)) = 0.11.2
Provides: bundled(crate(phf_shared)) = 0.10.0
Provides: bundled(crate(phf_shared)) = 0.11.2
Provides: bundled(crate(pin-project-lite)) = 0.2.15
Provides: bundled(crate(pin-utils)) = 0.1.0
Provides: bundled(crate(pkg-config)) = 0.3.31
Provides: bundled(crate(portable-atomic)) = 1.10.0
Provides: bundled(crate(powerfmt)) = 0.2.0
Provides: bundled(crate(ppv-lite86)) = 0.2.20
Provides: bundled(crate(precomputed-hash)) = 0.1.1
Provides: bundled(crate(primp)) = 0.8.2
Provides: bundled(crate(proc-macro2)) = 1.0.92
Provides: bundled(crate(psl-types)) = 2.0.11
Provides: bundled(crate(publicsuffix)) = 2.3.0
Provides: bundled(crate(pyo3)) = 0.23.3
Provides: bundled(crate(pyo3-build-config)) = 0.23.3
Provides: bundled(crate(pyo3-ffi)) = 0.23.3
Provides: bundled(crate(pyo3-log)) = 0.12.0
Provides: bundled(crate(pyo3-macros)) = 0.23.3
Provides: bundled(crate(pyo3-macros-backend)) = 0.23.3
Provides: bundled(crate(pythonize)) = 0.23.0
Provides: bundled(crate(quote)) = 1.0.37
Provides: bundled(crate(rand)) = 0.8.5
Provides: bundled(crate(rand_chacha)) = 0.3.1
Provides: bundled(crate(rand_core)) = 0.6.4
Provides: bundled(crate(redox_syscall)) = 0.5.7
Provides: bundled(crate(regex)) = 1.11.1
Provides: bundled(crate(regex-automata)) = 0.4.9
Provides: bundled(crate(regex-syntax)) = 0.8.5
Provides: bundled(crate(rh2)) = 0.3.61
Provides: bundled(crate(rquest)) = 0.30.5
Provides: bundled(crate(rustc-demangle)) = 0.1.24
Provides: bundled(crate(rustc-hash)) = 1.1.0
Provides: bundled(crate(rustls-pki-types)) = 1.10.0
Provides: bundled(crate(ryu)) = 1.0.18
Provides: bundled(crate(scopeguard)) = 1.2.0
Provides: bundled(crate(serde)) = 1.0.215
Provides: bundled(crate(serde_derive)) = 1.0.215
Provides: bundled(crate(serde_json)) = 1.0.133
Provides: bundled(crate(serde_urlencoded)) = 0.7.1
Provides: bundled(crate(shlex)) = 1.3.0
Provides: bundled(crate(signal-hook-registry)) = 1.4.2
Provides: bundled(crate(siphasher)) = 0.3.11
Provides: bundled(crate(slab)) = 0.4.9
Provides: bundled(crate(smallvec)) = 1.13.2
Provides: bundled(crate(socket2)) = 0.5.8
Provides: bundled(crate(stable_deref_trait)) = 1.2.0
Provides: bundled(crate(string_cache)) = 0.8.7
Provides: bundled(crate(string_cache_codegen)) = 0.5.2
Provides: bundled(crate(syn)) = 2.0.90
Provides: bundled(crate(synstructure)) = 0.13.1
Provides: bundled(crate(system-configuration)) = 0.6.1
Provides: bundled(crate(system-configuration-sys)) = 0.6.0
Provides: bundled(crate(target-lexicon)) = 0.12.16
Provides: bundled(crate(tendril)) = 0.4.3
Provides: bundled(crate(thiserror)) = 1.0.69
Provides: bundled(crate(thiserror)) = 2.0.4
Provides: bundled(crate(thiserror-impl)) = 1.0.69
Provides: bundled(crate(thiserror-impl)) = 2.0.4
Provides: bundled(crate(time)) = 0.3.37
Provides: bundled(crate(time-core)) = 0.1.2
Provides: bundled(crate(time-macros)) = 0.2.19
Provides: bundled(crate(tinystr)) = 0.7.6
Provides: bundled(crate(tokio)) = 1.42.0
Provides: bundled(crate(tokio-boring2)) = 4.13.2
Provides: bundled(crate(tokio-macros)) = 2.4.0
Provides: bundled(crate(tokio-socks)) = 0.5.2
Provides: bundled(crate(tokio-util)) = 0.7.13
Provides: bundled(crate(tower-layer)) = 0.3.3
Provides: bundled(crate(tower-service)) = 0.3.3
Provides: bundled(crate(tracing)) = 0.1.41
Provides: bundled(crate(tracing-core)) = 0.1.33
Provides: bundled(crate(try-lock)) = 0.2.5
Provides: bundled(crate(typed-builder)) = 0.20.0
Provides: bundled(crate(typed-builder-macro)) = 0.20.0
Provides: bundled(crate(unicase)) = 2.8.0
Provides: bundled(crate(unicode-ident)) = 1.0.14
Provides: bundled(crate(unicode-width)) = 0.2.0
Provides: bundled(crate(unindent)) = 0.2.3
Provides: bundled(crate(url)) = 2.5.4
Provides: bundled(crate(utf-8)) = 0.7.6
Provides: bundled(crate(utf16_iter)) = 1.0.5
Provides: bundled(crate(utf8_iter)) = 1.0.4
Provides: bundled(crate(version_check)) = 0.9.5
Provides: bundled(crate(want)) = 0.3.1
Provides: bundled(crate(wasi)) = 0.11.0+wasi-snapshot_preview1
Provides: bundled(crate(webpki-root-certs)) = 0.26.7
Provides: bundled(crate(winapi)) = 0.3.9
Provides: bundled(crate(winapi-i686-pc-windows-gnu)) = 0.4.0
Provides: bundled(crate(winapi-x86_64-pc-windows-gnu)) = 0.4.0
Provides: bundled(crate(windows-registry)) = 0.3.0
Provides: bundled(crate(windows-result)) = 0.2.0
Provides: bundled(crate(windows-strings)) = 0.2.0
Provides: bundled(crate(windows-sys)) = 0.52.0
Provides: bundled(crate(windows-targets)) = 0.52.6
Provides: bundled(crate(windows_aarch64_gnullvm)) = 0.52.6
Provides: bundled(crate(windows_aarch64_msvc)) = 0.52.6
Provides: bundled(crate(windows_i686_gnu)) = 0.52.6
Provides: bundled(crate(windows_i686_gnullvm)) = 0.52.6
Provides: bundled(crate(windows_i686_msvc)) = 0.52.6
Provides: bundled(crate(windows_x86_64_gnu)) = 0.52.6
Provides: bundled(crate(windows_x86_64_gnullvm)) = 0.52.6
Provides: bundled(crate(windows_x86_64_msvc)) = 0.52.6
Provides: bundled(crate(write16)) = 1.0.0
Provides: bundled(crate(writeable)) = 0.5.5
Provides: bundled(crate(yoke)) = 0.7.5
Provides: bundled(crate(yoke-derive)) = 0.7.5
Provides: bundled(crate(zerocopy)) = 0.7.35
Provides: bundled(crate(zerocopy-derive)) = 0.7.35
Provides: bundled(crate(zerofrom)) = 0.1.5
Provides: bundled(crate(zerofrom-derive)) = 0.1.5
Provides: bundled(crate(zerovec)) = 0.10.4
Provides: bundled(crate(zerovec-derive)) = 0.10.3
Provides: bundled(crate(zstd)) = 0.13.2
Provides: bundled(crate(zstd-safe)) = 7.2.1
Provides: bundled(crate(zstd-sys)) = 2.0.13+zstd.1.5.6
%python_subpackages
%description
The fastest python HTTP client that can impersonate web browsers, mimicking
their headers and 'TLS/JA3/JA4/HTTP2' fingerprints
%prep
%autosetup -p1 -n primp-%{version} -a1
%build
export CARGO_NET_OFFLINE=true
export CARGO_PROFILE_RELEASE_DEBUG=full
export CARGO_PROFILE_RELEASE_SPLIT_DEBUGINFO=off
export CARGO_PROFILE_RELEASE_STRIP=false
export C_INCLUDE_PATH=/usr/lib64/gcc/%_arch-suse-linux/%gcc_version/include
%pyproject_wheel
%install
export CARGO_NET_OFFLINE=true
export CARGO_PROFILE_RELEASE_DEBUG=full
export CARGO_PROFILE_RELEASE_SPLIT_DEBUGINFO=off
export CARGO_PROFILE_RELEASE_STRIP=false
%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitearch}
%check
# NOTE: don't run the tests as they required access to internet by trying to
# connect to "https://httpbin.org/anything".
%files %{python_files}
%doc README.md
%license LICENSE
%{python_sitearch}/primp
%{python_sitearch}/primp-%{version}*-info
%changelog