Compare commits

...

22 Commits
f37 ... rawhide

Author SHA1 Message Date
Benjamin A. Beasley
dc00a7f9ef Update to 0.41.1 (close RHBZ#2244851) 2023-10-20 10:11:31 -04:00
Benjamin A. Beasley
064151361c Do not number the sole Source
[skip changelog]
2023-10-20 10:06:35 -04:00
Benjamin A. Beasley
ae2cda16d2 F38+: Use %{py3_test_envvars} to set up the test environment 2023-10-17 14:01:43 -04:00
Benjamin A. Beasley
0e67324ae6 Update to 0.41.0 (close RHBZ#2232746) 2023-09-21 15:01:28 -04:00
Fedora Release Engineering
76ad2a4ef1 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-21 11:08:03 +00:00
Benjamin A. Beasley
c4d26caeaf Update to 0.40.1 (close RHBZ#2213643) 2023-07-01 11:10:00 -04:00
Benjamin A. Beasley
e240bc6e8a Use new (rpm 4.17.1+) bcond style 2023-07-01 11:03:03 -04:00
Python Maint
7a458a5150 Rebuilt for Python 3.12 2023-06-15 15:06:16 +02:00
Benjamin A. Beasley
d02751bf3b Update to 0.40.0 (close RHBZ#2185127) 2023-05-10 14:24:39 -04:00
Benjamin A. Beasley
d12f3380c4 Use a simpler description from the upstream README.rst 2023-05-03 20:16:26 -04:00
Benjamin A. Beasley
c02f637a80 Drop “forge” macros
These are nearly unmaintained, and are not significantly simplifying the
spec file.
2023-05-03 20:08:14 -04:00
Benjamin A. Beasley
65cb17befd Don’t assume %_smp_mflags is -j%_smp_build_ncpus 2023-04-25 14:16:03 -04:00
Benjamin A. Beasley
10973cf706 Simplify test-suite invocation 2023-04-25 14:15:10 -04:00
Benjamin A. Beasley
70daebcefd Drop unnecessary manual BR on pyproject-rpm-macros 2023-04-25 11:31:26 -04:00
Benjamin A. Beasley
7771b77dc9 Replace a downstream patch with a backported upstream commit 2023-04-25 11:29:47 -04:00
Benjamin A. Beasley
ae5f05be70 Add public-domain text link in license breakdown 2023-03-22 16:55:50 -04:00
Benjamin A. Beasley
b94607ebe3 Patch out max. Python version check entirely 2023-03-08 10:55:21 -05:00
Benjamin A. Beasley
989387bde6 Allow Python 3.12 (downstream-only); close RHBZ#2176128 2023-03-07 10:02:13 -05:00
Benjamin A. Beasley
40c13fc13f Update to 0.39.1 2023-03-07 09:08:25 -05:00
Benjamin A. Beasley
e6b8f6848a Convert to SPDX 2023-03-07 09:08:25 -05:00
Benjamin A. Beasley
3dd8fdb83e Build Sphinx docs as PDF instead of HTML
Avoid issues with precompiled and bundled JavaScript, CSS, fonts, etc.
2023-03-07 09:08:25 -05:00
Fedora Release Engineering
491fb84a1a Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-20 14:28:22 +00:00
4 changed files with 62 additions and 219 deletions

5
.gitignore vendored
View File

@ -1 +1,6 @@
/llvmlite-0.37.0.tar.gz
/llvmlite-0.39.1.tar.gz
/llvmlite-0.40.0.tar.gz
/llvmlite-0.40.1.tar.gz
/llvmlite-0.41.0.tar.gz
/llvmlite-0.41.1.tar.gz

170
769.patch
View File

@ -1,170 +0,0 @@
From 34a85c218423b959b66a8aa74986423d280bcba6 Mon Sep 17 00:00:00 2001
From: Valentin Haenel <vhaenel@anaconda.com>
Date: Tue, 31 Aug 2021 15:24:24 +0200
Subject: [PATCH 1/5] bump supported Pyton version
As title
---
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index 263fb6c6..75a6d42c 100644
--- a/setup.py
+++ b/setup.py
@@ -33,7 +33,7 @@
min_python_version = "3.7"
-max_python_version = "3.10" # exclusive
+max_python_version = "3.11" # exclusive
def _guard_py_ver():
From 87c86ae5e9cc9005d2a7ef64cdf8bcd05e3e4067 Mon Sep 17 00:00:00 2001
From: Valentin Haenel <vhaenel@anaconda.com>
Date: Tue, 31 Aug 2021 15:24:35 +0200
Subject: [PATCH 2/5] update trove classifiers
As title
---
setup.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/setup.py b/setup.py
index 75a6d42c..b390db91 100644
--- a/setup.py
+++ b/setup.py
@@ -212,6 +212,7 @@ def finalize_options(self):
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
+ "Programming Language :: Python :: 3.10",
"Topic :: Software Development :: Code Generators",
"Topic :: Software Development :: Compilers",
],
From 334c000d5a6d19133e3ce3b7a2c847cd682f4ebf Mon Sep 17 00:00:00 2001
From: Valentin Haenel <vhaenel@anaconda.com>
Date: Thu, 2 Sep 2021 14:23:39 +0200
Subject: [PATCH 3/5] print the OSError instead of swallowing it
As title
---
llvmlite/binding/ffi.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/llvmlite/binding/ffi.py b/llvmlite/binding/ffi.py
index 94df3ae7..66254f99 100644
--- a/llvmlite/binding/ffi.py
+++ b/llvmlite/binding/ffi.py
@@ -183,7 +183,8 @@ def __call__(self, *args, **kwargs):
for _lib_path in _lib_paths:
try:
lib = ctypes.CDLL(_lib_path)
- except OSError:
+ except OSError as e:
+ print(e)
continue
else:
break
From 8cc3c39515ac03dc77d3b8ea4370513cec0e4308 Mon Sep 17 00:00:00 2001
From: Valentin Haenel <vhaenel@anaconda.com>
Date: Wed, 13 Oct 2021 11:02:51 +0200
Subject: [PATCH 4/5] buffer all errors, and echo them at the end
This will avoid printing errors unnecessarily.
---
llvmlite/binding/ffi.py | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/llvmlite/binding/ffi.py b/llvmlite/binding/ffi.py
index 66254f99..556c7c8f 100644
--- a/llvmlite/binding/ffi.py
+++ b/llvmlite/binding/ffi.py
@@ -180,16 +180,19 @@ def __call__(self, *args, **kwargs):
# Try to load from all of the different paths
+errors = []
for _lib_path in _lib_paths:
try:
lib = ctypes.CDLL(_lib_path)
except OSError as e:
- print(e)
+ errors.append(e)
continue
else:
break
else:
- raise OSError("Could not load shared object file: {}".format(_lib_name))
+ msg = ("Could not load shared object file: {}\n".format(_lib_name) +
+ "Errors were: {}".format(errors))
+ raise OSError(msg)
lib = _lib_wrapper(lib)
From 408c7ba935b43e052410a2bf444db9b8a56a4723 Mon Sep 17 00:00:00 2001
From: Valentin Haenel <vhaenel@anaconda.com>
Date: Wed, 13 Oct 2021 18:52:53 +0200
Subject: [PATCH 5/5] setup using Python 3.10 on public CI too
As title
---
azure-pipelines.yml | 11 +++++++++++
buildscripts/azure/azure-windows.yml | 3 +++
2 files changed, 14 insertions(+)
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index d1d5efd3..a99d90d4 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -14,6 +14,9 @@ jobs:
py39:
PYTHON: '3.9'
CONDA_ENV: cienv
+ py310:
+ PYTHON: '3.10'
+ CONDA_ENV: cienv
- template: buildscripts/azure/azure-linux-macos.yml
parameters:
@@ -31,6 +34,10 @@ jobs:
PYTHON: '3.9'
CONDA_ENV: cienv
RUN_FLAKE8: yes
+ py310:
+ PYTHON: '3.10'
+ CONDA_ENV: cienv
+ RUN_FLAKE8: yes
# temporarily disabled
# pypy:
# PYTHON: pypy
@@ -47,6 +54,10 @@ jobs:
PYTHON: '3.9'
CONDA_ENV: cienv
WHEEL: 'yes'
+ py310_wheel:
+ PYTHON: '3.10'
+ CONDA_ENV: cienv
+ WHEEL: 'yes'
- template: buildscripts/azure/azure-windows.yml
parameters:
diff --git a/buildscripts/azure/azure-windows.yml b/buildscripts/azure/azure-windows.yml
index 1dd02611..e51f39fc 100644
--- a/buildscripts/azure/azure-windows.yml
+++ b/buildscripts/azure/azure-windows.yml
@@ -12,6 +12,9 @@ jobs:
py39:
PYTHON: '3.9'
CONDA_ENV: cienv
+ py310:
+ PYTHON: '3.10'
+ CONDA_ENV: cienv
steps:

View File

@ -1,52 +1,50 @@
%bcond_without tests
%global forgeurl https://github.com/numba/llvmlite
%bcond tests 1
# 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.
%bcond doc_pdf 1
Name: python-llvmlite
Version: 0.37.0
Version: 0.41.1
Release: %{autorelease}
Summary: Lightweight LLVM Python binding for writing JIT compilers
%forgemeta
# 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.
# Public-domain text added to fedora-license-data in commit
# 830d88d4d89ee5596839de5b2c1f48426488841f:
# https://gitlab.com/fedora/legal/fedora-license-data/-/merge_requests/210
# 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
License: BSD
URL: http://llvmlite.pydata.org/
Source0: %{forgesource}
%global forgeurl https://github.com/numba/llvmlite
Source: %{forgeurl}/archive/v%{version}/llvmlite-%{version}.tar.gz
# Python 3.10
# https://github.com/numba/llvmlite/pull/769
# See also: https://github.com/numba/llvmlite/issues/740#issuecomment-937830985
Patch0: https://github.com/numba/llvmlite/pull/769.patch
BuildRequires: pyproject-rpm-macros
BuildRequires: python3-devel
# 0.37.0 only supports llvm11
BuildRequires: llvm11-devel
# 0.41.0 only supports llvm14
BuildRequires: llvm14-devel
BuildRequires: gcc-c++
%global _description %{expand:
llvmlite provides a Python binding to LLVM for use in Numba.
Numba previously relied on llvmpy. While llvmpy exposed large parts of the
LLVM C++ API for direct calls into the LLVM library, llvmlite takes an entirely
different approach. Llvmlite starts from the needs of a JIT compiler and splits
them into two decoupled tasks:
- Construction of a Module, function by function, Instruction by instruction.
- Compilation and optimization of the module into machine code.
The construction of an LLVM module does not call the LLVM C++ API. Rather, it
constructs the LLVM intermediate representation (IR) in pure Python. This is
the role of the IR layer.
The compilation of an LLVM module takes the IR in textual form and feeds it
into LLVM's parsing API. It then returns a thin wrapper around LLVM's C++
module object. This is the role of the binding layer.
Once parsed, the module's source code cannot be modified, which loses the
flexibility of the direct mapping of C++ APIs into Python that was provided by
llvmpy but saves a great deal of maintenance.}
llvmlite is a project originally tailored for Numbas 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.}
%description %_description
@ -58,18 +56,20 @@ Summary: %{summary}
%package doc
Summary: %{summary}
BuildRequires: %{py3_dist sphinx}
BuildRequires: %{py3_dist sphinx-rtd-theme}
%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
%description doc
Documentation for %{name}.
%prep
%forgeautosetup -p1
# seems to be fine with 3.11 but we need to loosen the guard
# see also: “python 3.10 support” https://github.com/numba/llvmlite/issues/740
sed -i 's/max_python_version =.*/max_python_version = "3.12"/' setup.py
%autosetup -n llvmlite-%{version} -p1
# increase verbosity of tests to 2
sed -i 's/\(def run_tests.*verbosity=\)1/\12/' llvmlite/tests/__init__.py
@ -78,15 +78,20 @@ sed -i 's/\(def run_tests.*verbosity=\)1/\12/' llvmlite/tests/__init__.py
# 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 ';'
# No network access
echo 'intersphinx_mapping.clear()' >> docs/source/conf.py
%generate_buildrequires
%pyproject_buildrequires
%build
export LLVM_CONFIG="%{_libdir}/llvm11/bin/llvm-config"
export LLVM_CONFIG="%{_libdir}/llvm14/bin/llvm-config"
%pyproject_wheel
make -C docs SPHINXBUILD=sphinx-build-3 html
rm -rf docs/_build/html/{.doctrees,.buildinfo,_static/EMPTY} -vf
%if %{with doc_pdf}
%make_build -C docs latex SPHINXOPTS='-j%{?_smp_build_ncpus}'
%make_build -C docs/_build/latex LATEXMKOPTS='-quiet'
%endif
%install
%pyproject_install
@ -94,7 +99,7 @@ rm -rf docs/_build/html/{.doctrees,.buildinfo,_static/EMPTY} -vf
%check
%if %{with tests}
LD_LIBRARY_PATH="%{buildroot}%{python3_sitearch}/llvmlite/binding/" PYTHONPATH="$PYTHONPATH:%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}" %{python3} runtests.py
%{py3_test_envvars} %{python3} runtests.py
%endif
%files -n python3-llvmlite -f %{pyproject_files}
@ -102,7 +107,10 @@ LD_LIBRARY_PATH="%{buildroot}%{python3_sitearch}/llvmlite/binding/" PYTHONPATH="
%files doc
%license LICENSE
%doc docs/_build/html examples/
%doc examples/
%if %{with doc_pdf}
%doc docs/_build/latex/llvmlite.pdf
%endif
%changelog
%autochangelog

View File

@ -1 +1 @@
SHA512 (llvmlite-0.37.0.tar.gz) = 665f486fd38c9cc4ee91b15fc75f33451ada6391fc9f1b371091ece844693e0cd8e23766400bf76d9879e8f10f53f4e21f8bb19f3ff1e01c4a95ce9004b0884a
SHA512 (llvmlite-0.41.1.tar.gz) = 97ba6c97837ee2f4bd29d97fa3992dc2d316cac8aa8aee5dd653fa5b4261987613c83997a4d94d10eb5009c6976e202fd13ab37208b5fc1f4a6e6288d608b901