2023-07-01 15:03:03 +00:00
|
|
|
|
%bcond tests 1
|
2023-03-07 14:04:34 +00:00
|
|
|
|
# Sphinx-generated HTML documentation is not suitable for packaging; see
|
|
|
|
|
# https://bugzilla.redhat.com/show_bug.cgi?id=2006555 for discussion.
|
|
|
|
|
#
|
|
|
|
|
# We can generate PDF documentation as a substitute.
|
2023-07-01 15:03:03 +00:00
|
|
|
|
%bcond doc_pdf 1
|
2021-09-13 08:05:49 +00:00
|
|
|
|
|
|
|
|
|
Name: python-llvmlite
|
2023-07-01 15:03:49 +00:00
|
|
|
|
Version: 0.40.1
|
2021-09-13 08:05:49 +00:00
|
|
|
|
Release: %{autorelease}
|
|
|
|
|
Summary: Lightweight LLVM Python binding for writing JIT compilers
|
|
|
|
|
|
2023-03-07 13:56:31 +00:00
|
|
|
|
# The entire source is BSD-2-Clause, except:
|
|
|
|
|
# - The bundled versioneer.py, and the _version.py it generates (which is
|
|
|
|
|
# packaged) is LicenseRef-Fedora-Public-Domain. In later versions of
|
|
|
|
|
# versioneer, this becomes CC0-1.0 and then Unlicense.
|
2023-03-22 20:55:50 +00:00
|
|
|
|
# Public-domain text added to fedora-license-data in commit
|
|
|
|
|
# 830d88d4d89ee5596839de5b2c1f48426488841f:
|
|
|
|
|
# https://gitlab.com/fedora/legal/fedora-license-data/-/merge_requests/210
|
2023-03-07 13:56:31 +00:00
|
|
|
|
# Additionally, the following does not affect the license of the binary RPMs:
|
|
|
|
|
# - conda-recipes/appveyor/run_with_env.cmd is CC0-1.0; for distribution in
|
|
|
|
|
# the source RPM, it is covered by “Existing uses of CC0-1.0 on code files
|
|
|
|
|
# in Fedora packages prior to 2022-08-01, and subsequent upstream versions
|
|
|
|
|
# of those files in those packages, continue to be allowed. We encourage
|
|
|
|
|
# Fedora package maintainers to ask upstreams to relicense such files.”
|
|
|
|
|
# https://gitlab.com/fedora/legal/fedora-license-data/-/issues/91#note_1151947383
|
|
|
|
|
License: BSD-2-Clause AND LicenseRef-Fedora-Public-Domain
|
|
|
|
|
|
2021-09-13 08:05:49 +00:00
|
|
|
|
URL: http://llvmlite.pydata.org/
|
2023-05-04 00:08:12 +00:00
|
|
|
|
%global forgeurl https://github.com/numba/llvmlite
|
|
|
|
|
Source0: %{forgeurl}/archive/v%{version}/llvmlite-%{version}.tar.gz
|
2021-09-13 08:05:49 +00:00
|
|
|
|
|
|
|
|
|
BuildRequires: python3-devel
|
2023-04-25 15:31:26 +00:00
|
|
|
|
|
2023-05-04 00:15:53 +00:00
|
|
|
|
# 0.40.0 only supports llvm14
|
|
|
|
|
BuildRequires: llvm14-devel
|
2021-09-13 08:05:49 +00:00
|
|
|
|
BuildRequires: gcc-c++
|
|
|
|
|
|
|
|
|
|
%global _description %{expand:
|
2023-05-04 00:16:20 +00:00
|
|
|
|
llvmlite is a project originally tailored for Numba‘s needs, using the
|
|
|
|
|
following approach:
|
|
|
|
|
|
|
|
|
|
• A small C wrapper around the parts of the LLVM C++ API we need that are not
|
|
|
|
|
already exposed by the LLVM C API.
|
|
|
|
|
• A ctypes Python wrapper around the C API.
|
|
|
|
|
• A pure Python implementation of the subset of the LLVM IR builder that we
|
|
|
|
|
need for Numba.}
|
2021-09-13 08:05:49 +00:00
|
|
|
|
|
|
|
|
|
%description %_description
|
|
|
|
|
|
|
|
|
|
%package -n python3-llvmlite
|
|
|
|
|
Summary: %{summary}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%description -n python3-llvmlite %_description
|
|
|
|
|
|
|
|
|
|
%package doc
|
|
|
|
|
Summary: %{summary}
|
2023-03-07 14:04:34 +00:00
|
|
|
|
%if %{with doc_pdf}
|
|
|
|
|
BuildRequires: make
|
|
|
|
|
BuildRequires: python3dist(sphinx)
|
|
|
|
|
BuildRequires: python3-sphinx-latex
|
|
|
|
|
BuildRequires: latexmk
|
|
|
|
|
# The HTML theme is imported in conf.py even when not generating HTML
|
|
|
|
|
BuildRequires: python3dist(sphinx-rtd-theme)
|
|
|
|
|
%endif
|
2021-09-13 08:05:49 +00:00
|
|
|
|
|
|
|
|
|
%description doc
|
|
|
|
|
Documentation for %{name}.
|
|
|
|
|
|
|
|
|
|
%prep
|
2023-05-04 00:08:12 +00:00
|
|
|
|
%autosetup -n llvmlite-%{version} -p1
|
2021-09-13 08:05:49 +00:00
|
|
|
|
|
|
|
|
|
# increase verbosity of tests to 2
|
|
|
|
|
sed -i 's/\(def run_tests.*verbosity=\)1/\12/' llvmlite/tests/__init__.py
|
|
|
|
|
|
|
|
|
|
# Comment out to remove /usr/bin/env shebangs
|
|
|
|
|
# Can use something similar to correct/remove /usr/bin/python shebangs also
|
|
|
|
|
# find . -type f -name "*.py" -exec sed -i '/^#![ ]*\/usr\/bin\/env.*$/ d' {} 2>/dev/null ';'
|
|
|
|
|
|
2023-03-07 14:04:34 +00:00
|
|
|
|
# No network access
|
|
|
|
|
echo 'intersphinx_mapping.clear()' >> docs/source/conf.py
|
|
|
|
|
|
2021-09-13 08:05:49 +00:00
|
|
|
|
%generate_buildrequires
|
|
|
|
|
%pyproject_buildrequires
|
|
|
|
|
|
|
|
|
|
%build
|
2023-05-04 00:15:53 +00:00
|
|
|
|
export LLVM_CONFIG="%{_libdir}/llvm14/bin/llvm-config"
|
2021-09-13 08:05:49 +00:00
|
|
|
|
%pyproject_wheel
|
|
|
|
|
|
2023-03-07 14:04:34 +00:00
|
|
|
|
%if %{with doc_pdf}
|
2023-04-25 18:16:03 +00:00
|
|
|
|
%make_build -C docs latex SPHINXOPTS='-j%{?_smp_build_ncpus}'
|
2023-03-07 14:04:34 +00:00
|
|
|
|
%make_build -C docs/_build/latex LATEXMKOPTS='-quiet'
|
|
|
|
|
%endif
|
2021-09-13 08:05:49 +00:00
|
|
|
|
|
|
|
|
|
%install
|
|
|
|
|
%pyproject_install
|
|
|
|
|
%pyproject_save_files llvmlite
|
|
|
|
|
|
|
|
|
|
%check
|
|
|
|
|
%if %{with tests}
|
2023-04-25 15:32:50 +00:00
|
|
|
|
PYTHONPATH='%{buildroot}%{python3_sitearch}' %{python3} runtests.py
|
2021-09-13 08:05:49 +00:00
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
%files -n python3-llvmlite -f %{pyproject_files}
|
|
|
|
|
%doc CHANGE_LOG README.rst
|
|
|
|
|
|
|
|
|
|
%files doc
|
|
|
|
|
%license LICENSE
|
2023-03-07 14:04:34 +00:00
|
|
|
|
%doc examples/
|
|
|
|
|
%if %{with doc_pdf}
|
|
|
|
|
%doc docs/_build/latex/llvmlite.pdf
|
|
|
|
|
%endif
|
2021-09-13 08:05:49 +00:00
|
|
|
|
|
|
|
|
|
%changelog
|
|
|
|
|
%autochangelog
|