1 Commits

Author SHA256 Message Date
b13adb8525 Update package from 6.9.1 to 6.12.0 and convert to libalternatives
This is a migration of https://build.suse.de/request/show/385252 + the
conversion to use libalternatives
2025-10-02 12:27:00 +02:00
4 changed files with 152 additions and 19 deletions

View File

@@ -1,3 +1,116 @@
-------------------------------------------------------------------
Mon Aug 25 12:21:14 UTC 2025 - Markéta Machová <mmachova@suse.com>
- Convert to libalternatives on SLE-16-based and newer systems
-------------------------------------------------------------------
Mon Jun 9 17:07:52 UTC 2025 - Ben Greiner <code@bnavigator.de>
- Update to 6.12.0
* Support was added for C++11 enum base types. At the moment this
is limited to base types no larger than ints. Prior to this
support, all enums were assumed to be int which breaks on
big-endian systems. Resolves #75
* Fixed a regression in v6.11.0 affecting class names as template
arguments. Resolves #77
- Release v6.11.1
* The PEP 517 build_wheel() hook has been fixed after it
regressed in v6.11.0. Resolves #73
* The handling of calls where self is passed as an argument in
ABI v13 was fixed. Resolves #74
- Release 6.11.0
* Added the /Movable/ mapped type annotation. When the /Movable/
annotation is specified for a mapped type, values of that type
are wrapped in calls to std::move() when passing them as
arguments to a C++ callable. In addition the /Transfer/
argument annotation is automatically applied. Resolves #60
* Support for template arguments in super-classes. It is now
possible to invoke a class template as a super-class in a class
template. Resolves #12
* Determining the version of the limited API to use. The version
of the limited API to use is now taken from the requires-python
field of the metadata in a project's pyproject.toml file. If
this is not specified then (as with previous versions of SIP)
the version of the oldest supported version of Python is used.
Resolves #58
* %Docstring support for namespaces. The %Docstring directive can
now be specified for C++ namespaces. Resolves #11
* Support for operator~() in the global scope. operator~() can
now be specified in the global scope. Resolves #9
* Use consistent timestamps when creating wheel files. The value
of the environment variable SOURCE_DATE_EPOCH, if defined, will
be used as the timestamp for all files included in a wheel.
This ensures wheel building is repeatable. Pull request #70
* Bindings support for PEP 639. The project section of
pyproject.toml files may now use license to specify a valid
SPDX license expression. license-files, if specified, is a list
of glob patterns describing the files containing licensing
information. The old style of license is deprecated. The
metadata format of the generated PKG-INFO file of an sdist will
normally be v2.4. If the deprecated form of license is used in
pyproject.toml then it will be v2.2. License files will be
installed in the licenses sub-directory of the generated
.dist-info directory of a wheel. packaging v24.2 is now
required. Resolves #69
* Normalised wheel names. The names of wheel files (both those
generated by sip-wheel and indirectly from the sdists created
by sip-module) now conform to current PyPA standards. Resolves
#68
* pyproject.toml now conforms to PEP 639 The licensing
information in SIP's pyproject.toml now conforms to PEP 639.
This means that the minimum setuptools version is v77.
## Bug fixes
* The handling of unknown %Timeline tags in %If directives has
been fixed. An unknown tag is assumed to refer to a later
version than all the known tags. Therefore (unknown -) will
always be false, and (- unknown) will always be true.
* Generated code will not contain digraphs. This usually affects
C++ extensions being built with the default setuptools builder.
* Long deprecation messages are now handled correctly. Pull
request #67
-------------------------------------------------------------------
Thu Apr 3 16:56:27 UTC 2025 - Ben Greiner <code@bnavigator.de>
- Update to 6.10.0
* Introspection of the sip module ABI version
* SIP_ABI_VERSION has been added as a module attribute of the sip
module. This is an integer that represents the ABI version that
the module implements as a 3 part hexadecimal number.
* This has been implemented in ABIs v12.17 and v13.10. Resolves
#62
* sip-module support for older ABI versions. The ability of
sip-module to generate sdists for older ABI versions has been
restored. The oldest that can be generated are v12.9 and v13.1
which are the oldest non-deprecated versions. The documentation
now contains brief histories of these versions. Resolves #61
* Default ABI version. The default minor ABI version to use is
now the latest minor version for a particular major version
(rather than 0 as it was previously). Resolves #63
* Specify the ABI version on the command line. The --abi-version
command line option has been added to sip-build, sip-install
and sip-wheel to specify the ABI version of the sip module to
generate code for. Resolves #64
* Added the %MinimumABIVersion directive. The %MinimumABIVersion
directive is used to specify the minimum sip module ABI to
target in order to ensure that all calls to the public API from
handwritten code are available. A consequence of this change is
that passing string values to the /Deprecated/ annotation no
longer requires an ABI version that supports them to be
targeted. If the targeted ABI version does not support them
they are simply ignored. Resolves #65
* Escaping special characters in string annotations. The value of
a string annotation uses the ; and : characters to allow
platform- and feature-specific values to be defined. These
special characters can now be escaped using a leading \\. This
capability has now been documented. Resolves #59
## Bug fixes
* The license designator in setup.py for the latest versions of
the sip module are now correctly specified as BSD-2-Clause.
* The code generation has been fixed for classes created by
instantiating mapped type templates using a typedef with the
/NoTypeName/ annotation. Resolves #66
-------------------------------------------------------------------
Wed Jan 8 15:41:11 UTC 2025 - Ben Greiner <code@bnavigator.de>

View File

@@ -1,7 +1,7 @@
#
# spec file for package python-sip6
#
# Copyright (c) 2025 SUSE LLC
# Copyright (c) 2025 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,8 +17,13 @@
%{?sle15_python_module_pythons}
%if 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
Name: python-sip6
Version: 6.9.1
Version: 6.12.0
Release: 0
Summary: A Python bindings generator for C/C++ libraries
License: BSD-2-Clause AND BSD-3-Clause
@@ -26,22 +31,25 @@ Group: Development/Libraries/Python
URL: https://github.com/Python-SIP/sip
Source0: https://github.com/Python-SIP/sip/archive/refs/tags/%{version}.tar.gz#/sip-%{version}-gh.tar.gz
BuildRequires: %{python_module base >= 3.9}
BuildRequires: %{python_module packaging}
BuildRequires: %{python_module packaging >= 24.2}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools >= 69.5}
# Technically >= 8, but we make it compatible in prep.
BuildRequires: %{python_module setuptools_scm >= 7}
BuildRequires: %{python_module tomli if %python-base < 3.11}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
BuildArch: noarch
%if 0%{?suse_version} < 1600
BuildRequires: %{python_module setuptools >= 75.8.1}
BuildRequires: %{python_module setuptools_scm >= 7}
%else
BuildRequires: %{python_module setuptools >= 77}
BuildRequires: %{python_module setuptools_scm >= 8}
%endif
# SECTION test
BuildRequires: %{python_module testsuite}
BuildRequires: %{python_module devel}
BuildRequires: %{python_module testsuite}
BuildRequires: c++_compiler
# /SECTION
BuildArch: noarch
%python_subpackages
%description
@@ -56,11 +64,9 @@ Summary: A Python bindings generator for C/C++ libraries
Group: Development/Libraries/Python
Requires: c++_compiler
Requires: python-base >= 3.9
Requires: python-packaging
Requires: python-setuptools >= 69.5
Requires: python-packaging >= 24.2
Requires: python-setuptools >= 75.8.1
Requires: (python-tomli if python-base < 3.11)
Requires(post): update-alternatives
Requires(postun): update-alternatives
Conflicts: python-sip-impl
# boo#1190441: remove erroneously created non-devel python3X-sip metapackages.
# In order not to remove SIPv4 and possible future packages, we have to explicitly
@@ -68,6 +74,13 @@ Conflicts: python-sip-impl
Obsoletes: python-sip = 6.1.1
Provides: python-sip-devel = %{version}-%{release}
Provides: python-sip-impl = %{version}-%{release}
%if %{with libalternatives}
BuildRequires: alts
Requires: alts
%else
Requires(post): update-alternatives
Requires(postun): update-alternatives
%endif
%description devel
SIP is a collection of tools that makes it very easy to create Python
@@ -81,9 +94,12 @@ own sip bindings.
%prep
%autosetup -p1 -n sip-%{version}
# Make it work with setuptools_scm < 8
%if 0%{suse_version} < 1600
sed -i s/version_file/write_to/ pyproject.toml
# Make it work with setuptools < 77 and setuptools_scm < 8
%if 0%{?suse_version} < 1600
sed -i pyproject.toml \
-e 's/version_file/write_to/' \
-e 's/license = .*/license = { file = "LICENSE" }/' \
-e '/license-files/d'
%endif
%build
@@ -97,11 +113,15 @@ sed -i s/version_file/write_to/ pyproject.toml
%python_clone -a %{buildroot}%{_bindir}/sip-module
%python_clone -a %{buildroot}%{_bindir}/sip-sdist
%python_clone -a %{buildroot}%{_bindir}/sip-wheel
%python_group_libalternatives sip-build sip-distinfo sip-install sip-module sip-sdist sip-wheel
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
%pyunittest discover -v test
%pre devel
%python_libalternatives_reset_alternative sip-build
%post devel
%python_install_alternative sip-build sip-distinfo sip-install sip-module sip-sdist sip-wheel

BIN
sip-6.12.0-gh.tar.gz LFS Normal file

Binary file not shown.

Binary file not shown.