diff --git a/.gitignore b/.gitignore index 9f9eb15..82bf98b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,17 +1 @@ -/sip-4.19.6.tar.gz -/sip-4.19.7.tar.gz -/sip-4.19.8.tar.gz -/sip-4.19.9.dev1805261119.tar.gz -/sip-4.19.12.tar.gz -/sip-4.19.13.tar.gz -/sip-4.19.15.tar.gz -/sip-4.19.16.tar.gz -/sip-4.19.17.tar.gz -/sip-4.19.18.tar.gz -/sip-4.19.19.tar.gz -/sip-4.19.20.tar.gz -/sip-4.19.21.tar.gz -/sip-4.19.22.tar.gz -/sip-4.19.23.tar.gz -/sip-4.19.24.tar.gz -/sip-4.19.25.tar.gz +/sip-4.19.5.tar.gz diff --git a/macros.sip b/macros.sip index bceeb12..897ee3d 100644 --- a/macros.sip +++ b/macros.sip @@ -1,3 +1,3 @@ %_sip_api_major 12 -%_sip_api_minor 7 +%_sip_api_minor 3 %_sip_api %{_sip_api_major}.%{_sip_api_minor} diff --git a/sip-4.18-no_rpath.patch b/sip-4.18-no_rpath.patch index 0ae91e4..406a26c 100644 --- a/sip-4.18-no_rpath.patch +++ b/sip-4.18-no_rpath.patch @@ -1,7 +1,7 @@ -diff -rupN --no-dereference sip-4.19.25/siputils.py sip-4.19.25-new/siputils.py ---- sip-4.19.25/siputils.py 2021-10-21 13:45:54.808566613 +0200 -+++ sip-4.19.25-new/siputils.py 2021-10-21 13:45:54.812566611 +0200 -@@ -436,7 +436,7 @@ class Makefile: +diff -up sip-4.18/siputils.py.no_rpath sip-4.18/siputils.py +--- sip-4.18/siputils.py.no_rpath 2015-03-25 06:00:24.000000000 -0500 ++++ sip-4.18/siputils.py 2016-04-13 11:34:48.179894616 -0500 +@@ -435,7 +435,7 @@ class Makefile: if l_dir in ("", ".", ".."): continue @@ -10,7 +10,7 @@ diff -rupN --no-dereference sip-4.19.25/siputils.py sip-4.19.25-new/siputils.py if self._python: incdir.append(self.config.py_inc_dir) -@@ -613,7 +613,7 @@ class Makefile: +@@ -612,7 +612,7 @@ class Makefile: # Handle library directories. libdir_qt = self.optional_list("LIBDIR_QT") libdir.extend(libdir_qt) diff --git a/sip-4.18-no_strip.patch b/sip-4.18-no_strip.patch index 326759e..3273311 100644 --- a/sip-4.18-no_strip.patch +++ b/sip-4.18-no_strip.patch @@ -1,7 +1,7 @@ -diff -rupN --no-dereference sip-4.19.25/siputils.py sip-4.19.25-new/siputils.py ---- sip-4.19.25/siputils.py 2021-02-26 16:17:35.156108000 +0100 -+++ sip-4.19.25-new/siputils.py 2021-10-21 13:45:54.780566626 +0200 -@@ -1473,7 +1473,7 @@ class ModuleMakefile(Makefile): +diff -up sip-4.18/siputils.py.no_strip sip-4.18/siputils.py +--- sip-4.18/siputils.py.no_strip 2015-03-25 06:00:24.000000000 -0500 ++++ sip-4.18/siputils.py 2016-04-13 11:34:23.718690341 -0500 +@@ -1469,7 +1469,7 @@ class ModuleMakefile(Makefile): """ def __init__(self, configuration, build_file, install_dir=None, static=0, console=0, qt=0, opengl=0, threaded=0, warnings=1, debug=0, @@ -10,7 +10,7 @@ diff -rupN --no-dereference sip-4.19.25/siputils.py sip-4.19.25-new/siputils.py export_all=0, universal=None, arch=None, deployment_target=None): """Initialise an instance of a module Makefile. -@@ -1784,7 +1784,7 @@ class SIPModuleMakefile(ModuleMakefile): +@@ -1780,7 +1780,7 @@ class SIPModuleMakefile(ModuleMakefile): """ def __init__(self, configuration, build_file, install_dir=None, static=0, console=0, qt=0, opengl=0, threaded=0, warnings=1, debug=0, diff --git a/sip-4.19.18-no_hardcode_sip_so.patch b/sip-4.19.18-no_hardcode_sip_so.patch deleted file mode 100644 index 86c453c..0000000 --- a/sip-4.19.18-no_hardcode_sip_so.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -rupN --no-dereference sip-4.19.25/configure.py sip-4.19.25-new/configure.py ---- sip-4.19.25/configure.py 2021-02-26 16:28:41.621025600 +0100 -+++ sip-4.19.25-new/configure.py 2021-10-21 13:45:54.845566597 +0200 -@@ -449,7 +449,7 @@ def create_makefiles(macros): - if sys.platform == 'win32': - mod = 'sip.lib' if opts.static else 'sip.pyd' - else: -- mod = 'libsip.a' if opts.static else 'sip.so' -+ mod = 'libsip.a' if opts.static else sip_module_name.split('.')[-1] + '.so' - - all_installs.append((mod, sip_module_dest_dir)) - diff --git a/sip-4.19.25-ftbfs-python-3.15.patch b/sip-4.19.25-ftbfs-python-3.15.patch deleted file mode 100644 index 31ec6b9..0000000 --- a/sip-4.19.25-ftbfs-python-3.15.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -up sip-4.19.25/siplib/qtlib.c.pyweekref_getobject sip-4.19.25/siplib/qtlib.c ---- sip-4.19.25/siplib/qtlib.c.pyweekref_getobject 2021-02-26 16:17:35.136483000 +0100 -+++ sip-4.19.25/siplib/qtlib.c 2025-11-12 18:23:13.020805318 +0100 -@@ -24,6 +24,16 @@ - - #include "sipint.h" - -+// Fix FTBFS with python3.15 -+#if PY_VERSION_HEX >= 0x30F00A1 -+static inline PyObject *compat_PyWeakref_GetObject(PyObject *ref) { -+ PyObject *obj = NULL; -+ if (PyWeakref_GetRef(ref, &obj) < 0) -+ return NULL; -+ return obj; -+} -+#define PyWeakref_GetObject compat_PyWeakref_GetObject -+#endif - - /* This is how Qt "types" signals and slots. */ - #define isQtSlot(s) (*(s) == '1') diff --git a/sip-4.19.25-py_ssize_t_clean.patch b/sip-4.19.25-py_ssize_t_clean.patch deleted file mode 100644 index a6f10db..0000000 --- a/sip-4.19.25-py_ssize_t_clean.patch +++ /dev/null @@ -1,52 +0,0 @@ -From: Jochen Sprickerhof -Date: Fri, 5 Nov 2021 09:13:14 +0100 -Subject: Make parser not break on py_ssize_t_clean directive from SIP v6.4 - ---- - sipgen/metasrc/lexer.l | 1 + - sipgen/metasrc/parser.y | 13 +++++++++++++ - 2 files changed, 14 insertions(+) - -diff --git a/sipgen/metasrc/lexer.l b/sipgen/metasrc/lexer.l -index a52b018..c328202 100644 ---- a/sipgen/metasrc/lexer.l -+++ b/sipgen/metasrc/lexer.l -@@ -174,6 +174,7 @@ SIP_QOBJECT {return TK_QOBJECT;} - timestamp {return TK_TIMESTAMP;} - type {return TK_TYPE;} - use_argument_names {return TK_USEARGNAMES;} -+py_ssize_t_clean {return TK_PYSSIZETCLEAN;} - use_limited_api {return TK_USELIMITEDAPI;} - all_raise_py_exception {return TK_ALLRAISEPYEXC;} - call_super_init {return TK_CALLSUPERINIT;} -diff --git a/sipgen/metasrc/parser.y b/sipgen/metasrc/parser.y -index 5623dca..2d98380 100644 ---- a/sipgen/metasrc/parser.y -+++ b/sipgen/metasrc/parser.y -@@ -389,6 +389,7 @@ static scopedNameDef *fullyQualifiedName(scopedNameDef *snd); - %token TK_TIMESTAMP - %token TK_TYPE - %token TK_USEARGNAMES -+%token TK_PYSSIZETCLEAN - %token TK_USELIMITEDAPI - %token TK_ALLRAISEPYEXC - %token TK_CALLSUPERINIT -@@ -2012,6 +2013,18 @@ module_arg: TK_KWARGS '=' TK_STRING_VALUE { - $$.call_super_init = -1; - $$.def_error_handler = NULL; - } -+ | TK_PYSSIZETCLEAN '=' bool_value { -+ $$.token = TK_PYSSIZETCLEAN; -+ -+ $$.c_module = FALSE; -+ $$.kwargs = defaultKwArgs; -+ $$.name = NULL; -+ $$.use_arg_names = FALSE; -+ $$.use_limited_api = FALSE; -+ $$.all_raise_py_exc = FALSE; -+ $$.call_super_init = -1; -+ $$.def_error_handler = NULL; -+ } - | TK_USELIMITEDAPI '=' bool_value { - $$.token = TK_USELIMITEDAPI; - diff --git a/sip-4.19.25-pyframe_getback.patch b/sip-4.19.25-pyframe_getback.patch deleted file mode 100644 index 30bab23..0000000 --- a/sip-4.19.25-pyframe_getback.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/siplib/siplib.c b/siplib/siplib.c -index db52b68..8019e97 100644 ---- a/siplib/siplib.c -+++ b/siplib/siplib.c -@@ -13747,7 +13747,7 @@ static struct _frame *sip_api_get_frame(int depth) - - while (frame != NULL && depth > 0) - { -- frame = frame->f_back; -+ frame = PyFrame_GetBack(frame); - --depth; - } - diff --git a/sip-wrapper.sh b/sip-wrapper.sh deleted file mode 100644 index d7d3751..0000000 --- a/sip-wrapper.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -exec sip -n @SIP_MODULE@ $@ diff --git a/sip.spec b/sip.spec index c4c77e6..c7bd591 100644 --- a/sip.spec +++ b/sip.spec @@ -1,61 +1,30 @@ -%bcond_without python3 -%if (0%{?fedora} && 0%{?fedora} < 32) || (0%{?rhel} && 0%{?rhel} < 9) -%bcond_without python2 +%if 0%{?fedora} > 12 +%global with_python3 1 %endif -%if %{with python3} +%if 0%{?with_python3} %{!?python3_inc:%global python3_inc %(%{__python3} -c "from distutils.sysconfig import get_python_inc; print(get_python_inc(1))")} %endif %{!?__python2:%global __python2 /usr/bin/python2} %{!?python2_sitearch:%global python2_sitearch %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} %{!?python2_inc:%global python2_inc %(%{__python2} -c "from distutils.sysconfig import get_python_inc; print get_python_inc(1)")} -%if 0%{?fedora} > 31 || 0%{?rhel} > 8 -%global PYINCLUDE %{_includedir}/python%{python3_version} -%else -%global PYINCLUDE %{_includedir}/python%{python3_version}m -%endif - %global rpm_macros_dir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) # trim changelog included in binary rpms %global _changelog_trimtime %(date +%s -d "1 year ago") -# see also https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/JQQ66XJSIT2FGTK2YQY7AXMEH5IXMPUX/ -%undefine _strict_symbol_defs_build - -# provide non-namespace python modules -# needed by at least some legacy/non-qt consumers, e.g. pykde4 -%if 0%{?fedora} && 0%{?fedora} < 31 -%global no_namespace 1 -%endif - -# Stop building siplib for wx on F34+ -%if 0%{?fedora} && 0%{?fedora} >= 34 -%global wx_siplib 0 -%else -%global wx_siplib 1 -%endif - -# Stop building PyQt5.sip on F35+ -%if 0%{?fedora} && 0%{?fedora} >= 35 -%global pyqt5_sip 0 -%else -%global pyqt5_sip 1 -%endif - Summary: SIP - Python/C++ Bindings Generator Name: sip -Version: 4.19.25 -Release: 19%{?dist} +Version: 4.19.5 +Release: 1%{?dist} # sipgen/parser.{c.h} is GPLv3+ with exceptions (bison) -# Automatically converted from old format: GPLv2 or GPLv3 and (GPLv3+ with exceptions) - review is highly recommended. -License: GPL-2.0-only OR GPL-3.0-only AND (LicenseRef-Callaway-GPLv3+-with-exceptions) -Url: https://riverbankcomputing.com/software/sip/intro -Source0: https://riverbankcomputing.com/static/Downloads/sip/%{version}/sip-%{version}%{?snap:.%{snap}}.tar.gz - -Source10: sip-wrapper.sh +License: GPLv2 or GPLv3 and (GPLv3+ with exceptions) +Url: http://www.riverbankcomputing.com/software/sip/intro +#URL: http://sourceforge.net/projects/pyqt/ +Source0: http://downloads.sourceforge.net/pyqt/sip-%{version}%{?snap:-snapshot-%{snap}}.tar.gz +#Source0: http://www.riverbankcomputing.com/static/Downloads/sip4/sip-%{version}.tar.gz ## upstream patches @@ -65,288 +34,121 @@ Patch50: sip-4.18-no_strip.patch # try not to rpath the world (I *think* this may not be required anymore, since sip-4.19 -- rex) Patch51: sip-4.18-no_rpath.patch # set sip_bin properly for python3 build (needswork to be upstreamable) -# no longer needed? keep for a little while before dropping completely -- rex -#Patch52: sip-4.19.3-python3_sip_bin.patch -# Avoid hardcoding sip.so (needed for wxpython's siplib.so) -Patch53: sip-4.19.18-no_hardcode_sip_so.patch -# Recognize the py_ssize_t_clean directive to avoid FTBFS with PyQt 5.15.6 -Patch54: sip-4.19.25-py_ssize_t_clean.patch -# Fix error: invalid use of undefined type 'struct _frame' -Patch55: sip-4.19.25-pyframe_getback.patch -# Fix error: implicit declaration of function ‘PyWeakref_GetObject’ -Patch56: sip-4.19.25-ftbfs-python-3.15.patch +Patch52: sip-4.19.3-python3_sip_bin.patch # extracted from sip.h, SIP_API_MAJOR_NR SIP_API_MINOR_NR defines Source1: macros.sip %global _sip_api_major 12 -%global _sip_api_minor 7 +%global _sip_api_minor 3 %global _sip_api %{_sip_api_major}.%{_sip_api_minor} -BuildRequires: make -BuildRequires: gcc-c++ -BuildRequires: sed -BuildRequires: bison -BuildRequires: flex - -BuildRequires: python-setuptools - -Obsoletes: sip-macros < %{version}-%{release} -Provides: sip-macros = %{version}-%{release} - -# upgrade path when no_namespace variants are dropped -%if ! 0%{?no_namespace} -Obsoletes: python2-sip < %{version}-%{release} -Obsoletes: python3-sip < %{version}-%{release} -%endif - -%global _description\ -SIP is a tool for generating bindings for C++ classes so that they can be\ -accessed as normal Python classes. SIP takes many of its ideas from SWIG but,\ -because it is specifically designed for C++ and Python, is able to generate\ -tighter bindings. SIP is so called because it is a small SWIG.\ -\ -SIP was originally designed to generate Python bindings for KDE and so has\ -explicit support for the signal slot mechanism used by the Qt/KDE class\ -libraries. However, SIP can be used to generate Python bindings for any C++\ -class library. - -%description %_description - -%package doc -Summary: Documentation for %summary -BuildArch: noarch -%description doc -This package contains HTML documentation for SIP. -%_description - -%if %{with python2} -%if 0%{?no_namespace} -%package -n python2-sip -Summary: %summary Provides: sip-api(%{_sip_api_major}) = %{_sip_api} Provides: sip-api(%{_sip_api_major})%{?_isa} = %{_sip_api} -Provides: python2-sip-api(%{_sip_api_major}) = %{_sip_api} -Provides: python2-sip-api(%{_sip_api_major})%{?_isa} = %{_sip_api} -%{?python_provide:%python_provide python2-sip} -%description -n python2-sip %_description -%endif -%package -n python2-sip-devel -Summary: Files needed to generate Python bindings for any C++ class library -Requires: sip = %{version}-%{release} -#Requires: python2-sip%{?_isa} = %{version}-%{release} BuildRequires: python2-devel -Requires: python2-devel -# Remove before F30 -Provides: sip-devel = %{version}-%{release} -Provides: sip-devel%{?_isa} = %{version}-%{release} -Obsoletes: sip-devel < %{version}-%{release} -%description -n python2-sip-devel -%{summary}. +BuildRequires: sed -%package -n python2-pyqt4-sip -Summary: %summary -Provides: python2-pyqt4-sip-api(%{_sip_api_major}) = %{_sip_api} -Provides: python2-pyqt4-sip-api(%{_sip_api_major})%{?_isa} = %{_sip_api} -%{?python_provide:%python_provide python2-pyqt4-sip} -%description -n python2-pyqt4-sip %_description +%description +SIP is a tool for generating bindings for C++ classes so that they can be +accessed as normal Python classes. SIP takes many of its ideas from SWIG but, +because it is specifically designed for C++ and Python, is able to generate +tighter bindings. SIP is so called because it is a small SWIG. -%package -n python2-pyqt5-sip -Summary: %summary -Provides: python2-pyqt5-sip-api(%{_sip_api_major}) = %{_sip_api} -Provides: python2-pyqt5-sip-api(%{_sip_api_major})%{?_isa} = %{_sip_api} -%{?python_provide:%python_provide python2-pyqt5-sip} -%description -n python2-pyqt5-sip %_description +SIP was originally designed to generate Python bindings for KDE and so has +explicit support for the signal slot mechanism used by the Qt/KDE class +libraries. However, SIP can be used to generate Python bindings for any C++ +class library. -%package -n python2-wx-siplib -Summary: %summary -Provides: python2-wx-siplib-api(%{_sip_api_major}) = %{_sip_api} -Provides: python2-wx-siplib-api(%{_sip_api_major})%{?_isa} = %{_sip_api} -%{?python_provide:%python_provide python2-wx-siplib} -%description -n python2-wx-siplib %_description +%package devel +Summary: Files needed to generate Python bindings for any C++ class library +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-macros = %{version}-%{release} +Requires: python2-devel +%description devel +This package contains files needed to generate Python bindings for any C++ +classes library. + +%package macros +Summary: RPM macros for use when working with SIP +Requires: rpm +# when arch->noarch happened +Obsoletes: sip-macros < 4.15.5 +BuildArch: noarch +%description macros +This package contains RPM macros for use when working with SIP. +%if 0%{?with_python3} +It is used by both the sip-devel (python 2) and python3-sip-devel subpackages. %endif -%if %{with python3} -%if 0%{?no_namespace} -%package -n python%{python3_pkgversion}-sip +%if 0%{?with_python3} +%package -n python3-sip Summary: SIP - Python 3/C++ Bindings Generator -Provides: python%{python3_pkgversion}-sip-api(%{_sip_api_major}) = %{_sip_api} -Provides: python%{python3_pkgversion}-sip-api(%{_sip_api_major})%{?_isa} = %{_sip_api} -%description -n python%{python3_pkgversion}-sip +BuildRequires: python3-devel +Provides: python3-sip-api(%{_sip_api_major}) = %{_sip_api} +Provides: python3-sip-api(%{_sip_api_major})%{?_isa} = %{_sip_api} +%description -n python3-sip This is the Python 3 build of SIP. -%_description -%endif +SIP is a tool for generating bindings for C++ classes so that they can be +accessed as normal Python 3 classes. SIP takes many of its ideas from SWIG but, +because it is specifically designed for C++ and Python, is able to generate +tighter bindings. SIP is so called because it is a small SWIG. -%package -n python%{python3_pkgversion}-sip-devel -Summary: Files needed to generate Python bindings for any C++ class library -Requires: sip = %{version}-%{release} -#Requires: python3-sip%{?_isa} = %{version}-%{release} -BuildRequires: python%{python3_pkgversion}-devel -Requires: python%{python3_pkgversion}-devel -%description -n python%{python3_pkgversion}-sip-devel -%{summary}. - -%package -n python%{python3_pkgversion}-pyqt4-sip -Summary: SIP - Python 3/C++ Bindings Generator for pyqt4 -BuildRequires: python%{python3_pkgversion}-devel -Provides: python%{python3_pkgversion}-pyqt4-sip-api(%{_sip_api_major}) = %{_sip_api} -Provides: python%{python3_pkgversion}-pyqt4-sip-api(%{_sip_api_major})%{?_isa} = %{_sip_api} -%description -n python%{python3_pkgversion}-pyqt4-sip -This is the Python 3 build of pyqt4-SIP. - -%if %{?pyqt5_sip} -%package -n python%{python3_pkgversion}-pyqt5-sip -Summary: SIP - Python 3/C++ Bindings Generator for pyqt5 -BuildRequires: python%{python3_pkgversion}-devel -Provides: python%{python3_pkgversion}-pyqt5-sip-api(%{_sip_api_major}) = %{_sip_api} -Provides: python%{python3_pkgversion}-pyqt5-sip-api(%{_sip_api_major})%{?_isa} = %{_sip_api} -%description -n python%{python3_pkgversion}-pyqt5-sip -This is the Python 3 build of pyqt5-SIP. -%endif - -%if %{?wx_siplib} -%package -n python%{python3_pkgversion}-wx-siplib -Summary: SIP - Python 3/C++ Bindings Generator for wx -BuildRequires: python%{python3_pkgversion}-devel -Provides: python%{python3_pkgversion}-wx-siplib-api(%{_sip_api_major}) = %{_sip_api} -Provides: python%{python3_pkgversion}-wx-siplib-api(%{_sip_api_major})%{?_isa} = %{_sip_api} -%description -n python%{python3_pkgversion}-wx-siplib -This is the Python 3 build of wx-siplib. -%endif - -%_description +SIP was originally designed to generate Python bindings for KDE and so has +explicit support for the signal slot mechanism used by the Qt/KDE class +libraries. However, SIP can be used to generate Python 3 bindings for any C++ +class library. +%package -n python3-sip-devel +Summary: Files needed to generate Python 3 bindings for any C++ class library +Requires: %{name}-macros = %{version}-%{release} +Requires: python3-sip%{?_isa} = %{version}-%{release} +Requires: python3-devel +%description -n python3-sip-devel +This package contains files needed to generate Python 3 bindings for any C++ +classes library. %endif %prep -%setup -q -n %{name}-%{version}%{?snap:.%{snap}} +%setup -q -n %{name}-%{version}%{?snap:-snapshot-%{snap}} -%patch -P50 -p1 -b .no_strip -%patch -P51 -p1 -b .no_rpath -%patch -P53 -p1 -b .no_sip_so -%patch -P54 -p1 -b .py_ssize_t_clean -%patch -P55 -p1 -b .pyframe_getback -%patch -P56 -p1 -b .pyweekref_getobject +%patch50 -p1 -b .no_strip +%patch51 -p1 -b .no_rpath %build -flex --outfile=sipgen/lexer.c sipgen/metasrc/lexer.l -bison --yacc --defines=sipgen/parser.h --output=sipgen/parser.c sipgen/metasrc/parser.y -%if %{with python2} -%if 0%{?no_namespace} -mkdir %{_target_platform}-python2 -pushd %{_target_platform}-python2 +mkdir %{_target_platform} +pushd %{_target_platform} %{__python2} ../configure.py \ - -b %{_bindir} -d %{python2_sitearch} -e %{_includedir}/python%{python2_version} \ - CFLAGS+="%{optflags}" CXXFLAGS+="%{optflags}" LFLAGS+="%{?__global_ldflags}" + -d %{python2_sitearch} \ + CFLAGS="%{optflags}" CXXFLAGS="%{optflags}" LFLAGS="%{?__global_ldflags}" -%make_build -popd -%endif - -mkdir %{_target_platform}-python2-pyqt4 -pushd %{_target_platform}-python2-pyqt4 -%{__python2} ../configure.py \ - --sip-module=PyQt4.sip \ - -b %{_bindir} -d %{python2_sitearch} -e %{_includedir}/python%{python2_version} \ - CFLAGS+="%{optflags}" CXXFLAGS+="%{optflags}" LFLAGS+="%{?__global_ldflags}" - -%make_build +make %{?_smp_mflags} popd -mkdir %{_target_platform}-python2-pyqt5 -pushd %{_target_platform}-python2-pyqt5 -%{__python2} ../configure.py \ - --sip-module=PyQt5.sip \ - -b %{_bindir} -d %{python2_sitearch} -e %{_includedir}/python%{python2_version} \ - CFLAGS+="%{optflags}" CXXFLAGS+="%{optflags}" LFLAGS+="%{?__global_ldflags}" - -%make_build -popd - -sed -i -e 's|target = sip|target = siplib|g' siplib/siplib.sbf -mkdir %{_target_platform}-python2-wx -pushd %{_target_platform}-python2-wx -%{__python2} ../configure.py \ - --sip-module=wx.siplib \ - -b %{_bindir} -d %{python2_sitearch} -e %{_includedir}/python%{python2_version} \ - CFLAGS+="%{optflags}" CXXFLAGS+="%{optflags}" LFLAGS+="%{?__global_ldflags}" - -%make_build -popd -%endif -sed -i -e 's|target = siplib|target = sip|g' siplib/siplib.sbf - -%if %{with python3} -%if 0%{?no_namespace} +%if 0%{?with_python3} +patch -p1 < %{PATCH52} mkdir %{_target_platform}-python3 pushd %{_target_platform}-python3 %{__python3} ../configure.py \ - -b %{_bindir} -d %{python3_sitearch} -e %{PYINCLUDE} \ - CXXFLAGS+="%{optflags}" CFLAGS+="%{optflags}" LFLAGS+="%{?__global_ldflags}" + -d %{python3_sitearch} \ + --sipdir=%{_datadir}/python3-sip \ + CXXFLAGS="%{optflags}" CFLAGS="%{optflags}" LFLAGS="%{?__global_ldflags}" -%make_build +make %{?_smp_mflags} popd %endif -mkdir %{_target_platform}-python3-pyqt4 -pushd %{_target_platform}-python3-pyqt4 -%{__python3} ../configure.py \ - --sip-module=PyQt4.sip \ - -b %{_bindir} -d %{python3_sitearch} -e %{PYINCLUDE} \ - CXXFLAGS+="%{optflags}" CFLAGS+="%{optflags}" LFLAGS+="%{?__global_ldflags}" - -%make_build -popd - -%if %{?pyqt5_sip} -mkdir %{_target_platform}-python3-pyqt5 -pushd %{_target_platform}-python3-pyqt5 -%{__python3} ../configure.py \ - --sip-module=PyQt5.sip \ - -b %{_bindir} -d %{python3_sitearch} -e %{PYINCLUDE} \ - CXXFLAGS+="%{optflags}" CFLAGS+="%{optflags}" LFLAGS+="%{?__global_ldflags}" - -%make_build -popd -%endif - -%if %{?wx_siplib} -sed -i -e 's|target = sip|target = siplib|g' siplib/siplib.sbf -mkdir %{_target_platform}-python3-wx -pushd %{_target_platform}-python3-wx -%{__python3} ../configure.py \ - --sip-module=wx.siplib \ - -b %{_bindir} -d %{python3_sitearch} -e %{PYINCLUDE} \ - CXXFLAGS+="%{optflags}" CFLAGS+="%{optflags}" LFLAGS+="%{?__global_ldflags}" - -%make_build -popd -sed -i -e 's|target = siplib|target = sip|g' siplib/siplib.sbf -%endif - -%endif - %install # Perform the Python 3 installation first, to avoid stomping over the Python 2 # /usr/bin/sip: -%if %{with python3} -%if 0%{?no_namespace} -%make_install -C %{_target_platform}-python3 -%endif -%make_install -C %{_target_platform}-python3-pyqt4 -%if %{?pyqt5_sip} -%make_install -C %{_target_platform}-python3-pyqt5 -%endif -%if %{?wx_siplib} -%make_install -C %{_target_platform}-python3-wx -mv %{buildroot}%{python3_sitearch}/wx/sip.pyi %{buildroot}%{python3_sitearch}/wx/siplib.pyi -%endif -ln -s sip %{buildroot}%{_bindir}/python3-sip +%if 0%{?with_python3} +make install DESTDIR=%{buildroot} -C %{_target_platform}-python3 +mkdir -p %{buildroot}%{_datadir}/python3-sip +mv %{buildroot}%{_bindir}/sip %{buildroot}%{_bindir}/python3-sip ## toplevel __pycache__ creation is ... inconsistent ## rawhide makes one, f23 local builds do not, so let's *make* it consistent @@ -354,382 +156,46 @@ mkdir -p %{buildroot}%{python3_sitearch}/__pycache__/exclude_rpm_hack %endif # Python 2 installation: -%if %{with python2} -%if 0%{?no_namespace} -%make_install -C %{_target_platform}-python2 -%endif -%make_install -C %{_target_platform}-python2-pyqt4 -%make_install -C %{_target_platform}-python2-pyqt5 -%make_install -C %{_target_platform}-python2-wx -mv %{buildroot}%{python2_sitearch}/wx/sip.pyi %{buildroot}%{python2_sitearch}/wx/siplib.pyi -%endif - -# sip-wrapper -install %{SOURCE10} %{buildroot}%{_bindir}/sip-pyqt4 -install %{SOURCE10} %{buildroot}%{_bindir}/sip-pyqt5 -%if %{?wx_siplib} -install %{SOURCE10} %{buildroot}%{_bindir}/sip-wx -%endif -sed -i -e 's|@SIP_MODULE@|PyQt4.sip|g' %{buildroot}%{_bindir}/sip-pyqt4 -sed -i -e 's|@SIP_MODULE@|PyQt5.sip|g' %{buildroot}%{_bindir}/sip-pyqt5 -%if %{?wx_siplib} -sed -i -e 's|@SIP_MODULE@|wx.siplib|g' %{buildroot}%{_bindir}/sip-wx -%endif - +make install DESTDIR=%{buildroot} -C %{_target_platform} mkdir -p %{buildroot}%{_datadir}/sip # Macros used by -devel subpackages: install -D -p -m644 %{SOURCE1} %{buildroot}%{rpm_macros_dir}/macros.sip -# Copy documentation from source dir -pushd doc -find html/ -type f -exec install -m0644 -D {} %{buildroot}%{_pkgdocdir}/{} \; -popd - %files -%doc README +%doc NEWS README %license LICENSE LICENSE-GPL2 LICENSE-GPL3 +%{python2_sitearch}/sip.so +%{python2_sitearch}/sip*.py* + +%files devel %{_bindir}/sip -# sip-wrappers -%{_bindir}/sip-pyqt4 -%{_bindir}/sip-pyqt5 -%if %{?wx_siplib} -%{_bindir}/sip-wx -%endif -# compat symlink -%{_bindir}/python3-sip -%dir %{_datadir}/sip/ +%{_datadir}/sip/ +%{python2_inc}/sip.h + +%files macros %{rpm_macros_dir}/macros.sip -%files doc -%{_pkgdocdir}/html - -%if %{with python2} -%files -n python2-sip-devel -%{_prefix}/include/python2.7/sip.h -%{python2_sitearch}/sipconfig.py* -%{python2_sitearch}/sipdistutils.py* - -%if 0%{?no_namespace} -%files -n python2-sip +%if 0%{?with_python3} +%files -n python3-sip %doc NEWS README %license LICENSE LICENSE-GPL2 LICENSE-GPL3 -%{python2_sitearch}/sip.* -%{python2_sitearch}/sip-%{version}.dist-info/ -%endif - -%files -n python2-pyqt4-sip -%doc NEWS README -%license LICENSE LICENSE-GPL2 LICENSE-GPL3 -%{python2_sitearch}/PyQt4/ -%{python2_sitearch}/PyQt4_sip-%{version}.dist-info/ - -%files -n python2-pyqt5-sip -%doc NEWS README -%license LICENSE LICENSE-GPL2 LICENSE-GPL3 -%dir %{python2_sitearch}/PyQt5/ -%{python2_sitearch}/PyQt5/sip.* -%{python2_sitearch}/PyQt5_sip-%{version}.dist-info/ - -%files -n python2-wx-siplib -%doc NEWS README -%license LICENSE LICENSE-GPL2 LICENSE-GPL3 -%dir %{python2_sitearch}/wx/ -%{python2_sitearch}/wx/siplib.* -%{python2_sitearch}/wx_siplib-%{version}.dist-info/ -%endif - -%if %{with python3} -%files -n python%{python3_pkgversion}-sip-devel -%{PYINCLUDE}/sip.h -%{python3_sitearch}/sipconfig.py* -%{python3_sitearch}/sipdistutils.py* +%{python3_sitearch}/sip.so +%{python3_sitearch}/sip*.py* %{python3_sitearch}/__pycache__/* %exclude %{python3_sitearch}/__pycache__/exclude_rpm_hack -%if 0%{?no_namespace} -%files -n python%{python3_pkgversion}-sip -%doc NEWS README -%license LICENSE LICENSE-GPL2 LICENSE-GPL3 -%{python3_sitearch}/sip.* -%{python3_sitearch}/sip-%{version}.dist-info/ -%endif - -%files -n python%{python3_pkgversion}-pyqt4-sip -%doc NEWS README -%license LICENSE LICENSE-GPL2 LICENSE-GPL3 -%dir %{python3_sitearch}/PyQt4/ -%{python3_sitearch}/PyQt4/sip.* -%{python3_sitearch}/PyQt4_sip-%{version}.dist-info/ - -%if %{?pyqt5_sip} -%files -n python%{python3_pkgversion}-pyqt5-sip -%doc NEWS README -%license LICENSE LICENSE-GPL2 LICENSE-GPL3 -%dir %{python3_sitearch}/PyQt5/ -%{python3_sitearch}/PyQt5/sip.* -%{python3_sitearch}/PyQt5_sip-%{version}.dist-info/ -%endif - -%if %{?wx_siplib} -%files -n python%{python3_pkgversion}-wx-siplib -%doc NEWS README -%license LICENSE LICENSE-GPL2 LICENSE-GPL3 -%dir %{python3_sitearch}/wx/ -%{python3_sitearch}/wx/siplib.* -%{python3_sitearch}/wx_siplib-%{version}.dist-info/ -%endif +%files -n python3-sip-devel +# Note that the "sip" binary is invoked by name in a few places higher up +# in the KDE-Python stack; these will need changing to "python3-sip": +%{_bindir}/python3-sip +%{_datadir}/python3-sip/ +%{python3_inc}/sip.h %endif %changelog -* Thu Nov 27 2025 Than Ngo - 4.19.25-19 -- Fix rhbz#2414555 - error: implicit declaration of function ‘PyWeakref_GetObject’ - -* Fri Sep 19 2025 Python Maint - 4.19.25-18 -- Rebuilt for Python 3.14.0rc3 bytecode - -* Fri Aug 15 2025 Python Maint - 4.19.25-17 -- Rebuilt for Python 3.14.0rc2 bytecode - -* Fri Jul 25 2025 Fedora Release Engineering - 4.19.25-16 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Mon Jun 02 2025 Python Maint - 4.19.25-15 -- Rebuilt for Python 3.14 - -* Sun Jan 19 2025 Fedora Release Engineering - 4.19.25-14 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Wed Sep 04 2024 Miroslav Suchý - 4.19.25-13 -- convert license to SPDX - -* Sat Jul 20 2024 Fedora Release Engineering - 4.19.25-12 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Fri Jun 07 2024 Python Maint - 4.19.25-11 -- Rebuilt for Python 3.13 - -* Sat Jan 27 2024 Fedora Release Engineering - 4.19.25-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sat Jul 22 2023 Fedora Release Engineering - 4.19.25-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Tue Jun 13 2023 Python Maint - 4.19.25-8 -- Rebuilt for Python 3.12 - -* Tue Mar 07 2023 Than Ngo - 4.19.25-7 -- fixed bz#2154988, fails to build with Python 3.12: ModuleNotFoundError: No module named 'distutils' - -* Sat Jan 21 2023 Fedora Release Engineering - 4.19.25-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Sat Jul 23 2022 Fedora Release Engineering - 4.19.25-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Mon Jun 13 2022 Python Maint - 4.19.25-4 -- Rebuilt for Python 3.11 - -* Sat Jan 22 2022 Fedora Release Engineering - 4.19.25-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Mon Nov 08 2021 Scott Talbert - 4.19.25-2 -- Recognize the py_ssize_t_clean directive to avoid FTBFS with PyQt 5.15.6 - -* Thu Oct 21 2021 Sandro Mani - 4.19.25-1 -- Update to 4.19.25 - -* Fri Jul 23 2021 Fedora Release Engineering - 4.19.24-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Mon Jun 14 2021 Scott Talbert - 4.19.24-5 -- Stop building python3-pyqt5-sip package on F35+ - replaced by separate pkg - -* Thu Jun 03 2021 Python Maint - 4.19.24-4 -- Rebuilt for Python 3.10 - -* Wed Jan 27 2021 Fedora Release Engineering - 4.19.24-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Sun Jan 17 2021 Scott Talbert - 4.19.24-2 -- Stop building wx.siplib on F34+ as wx has switched to sip 5 - -* Mon Aug 17 2020 Rex Dieter - 4.19.24-1 -- 4.19.24 - -* Wed Jul 29 2020 Fedora Release Engineering - 4.19.23-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Mon Jul 20 2020 Merlin Mathesius - 4.19.23-1 -- Minor conditional fixes for ELN - -* Mon Jun 08 2020 Rex Dieter - 4.19.23-1 -- 4.19.23 - -* Sat May 23 2020 Miro Hrončok - 4.19.22-3 -- Rebuilt for Python 3.9 - -* Mon Apr 20 2020 FeRD (Frank Dana) - 4.19.22-2 -- Add documentation subpackage - -* Sat Apr 04 2020 Rex Dieter - 4.19.22-1 -- 4.19.22 - -* Fri Jan 31 2020 Rex Dieter - 4.19.21-1 -- 4.19.21 - -* Thu Jan 30 2020 Fedora Release Engineering - 4.19.20-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Fri Dec 20 2019 Rex Dieter - 4.19.20-1 -- 4.19.20, adjust whitespace - -* Fri Nov 15 2019 Rex Dieter - 4.19.19-4 -- disable python2 support on f32+ (#1752802) - -* Sun Nov 03 2019 Rex Dieter - 4.19.19-3 -- revert virtual provides (bad idea) - -* Thu Oct 31 2019 Nicolas Chauvet - 4.19.19-2 -- Add virtual provides python{2,3}-sip - -* Wed Sep 25 2019 Rex Dieter - 4.19.19-1 -- 4.19.19, sip-api(12)=12.7 -- Obsoletes: python2-sip python3-sip (when omitted for f31+) - -* Mon Sep 16 2019 Rex Dieter - 4.19.18-7 -- drop no_namespace variant for f31+ - -* Fri Sep 06 2019 Scott Talbert - 4.19.18-6 -- Simplify PYINCLUDE conditional and fix for F31 - -* Wed Aug 28 2019 Gwyn Ciesla 4.19.18-5 -- Conditionalize Python 3 include dir. - -* Mon Aug 19 2019 Scott Talbert - 4.19.18-4 -- Build a namespaced sip module, wx.siplib, for wxpython (#1739469) - -* Mon Aug 19 2019 Gwyn Ciesla - 4.19.18-3 -- Set paths for flatpak. - -* Thu Aug 15 2019 Miro Hrončok - 4.19.18-2 -- Rebuilt for Python 3.8 - -* Sun Aug 04 2019 Rex Dieter - 4.19.18-1 -- 4.19.18 - -* Fri Jul 26 2019 Fedora Release Engineering - 4.19.17-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Mon May 06 2019 Rex Dieter - 4.19.17-1 -- 4.19.17 - -* Thu Apr 11 2019 Rex Dieter - 4.19.16-1 -- 4.19.16 - -* Thu Mar 21 2019 Rex Dieter - 4.19.15-1 -- 4.19.15, - sip-api(12)=12.6 - -* Sat Feb 02 2019 Fedora Release Engineering - 4.19.13-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Sun Oct 28 2018 Rex Dieter - 4.19.13-3 -- restore non-namespaced python-sip module - -* Wed Oct 24 2018 Than Ngo - 4.19.13-2 -- Fix python3 subpackages files ownership within __pycache__ (#1619099) - -* Wed Oct 03 2018 Rex Dieter - 4.19.13-1 -- 4.19.3 -- drop non-namespaced python-sip modules -- FIXME/TODO: add Obsoletes somewhere - -* Sun Aug 26 2018 Rex Dieter - 4.19.12-9 -- include sip-pyqt4/sip-pyqt5 wrappers - -* Fri Aug 24 2018 Rex Dieter - 4.19.12-8 -- -devel: move sipconfig/sipdistutils here -- -devel: drop dep on non-private base pkg (which may go away soon anyway) -- -devel: move subpkg defs nearer its basepkg in .spec -- (more) consistently use %%python3_pkgversion -- drop (uneeded) python3_sip_bin.patch - -* Tue Aug 14 2018 Rex Dieter - 4.19.12-7 -- include dist-info (#1524189) - -* Tue Aug 14 2018 Rex Dieter - 4.19.12-6 -- provide python?-pyqt4-sip too -- tighten dir ownership of sip python module dir(s) - -* Mon Jul 16 2018 Rex Dieter - 4.19.12-5 -- python?-devel: Requires: python?-sip -- add python3-sip compat symlink - -* Sun Jul 15 2018 Rex Dieter - 4.19.12-4 -- sip-api(12)=12.5 - -* Sat Jul 14 2018 Fedora Release Engineering - 4.19.12-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Wed Jul 11 2018 Rex Dieter - 4.19.12-2 -- *-devel: Requires: sip. -- drop Obsoletes: sip, now that we have a real sip pkg again - -* Tue Jul 10 2018 Rex Dieter - 4.19.12-1 -- 4.19.12 - -* Thu Jul 05 2018 Rex Dieter - 4.19.12-0.1.dev1807041651 -- 4.19.12 snapshot - -* Mon Jul 02 2018 Rex Dieter - 4.19.11-1 -- 4.19.11 - -* Sun Jul 01 2018 Rex Dieter - 4.19.10-1 -- 4.19.10 - -* Sat Jun 16 2018 Miro Hrončok - 4.19.9-0.2.dev1805261119 -- Rebuilt for Python 3.7 - -* Tue May 29 2018 Rex Dieter - 4.19.9-0.1.dev1805261119 -- 4.19.9.dev1805261119 snapshot -- %build: use --no-dist-info, feature not ready - -* Thu Mar 15 2018 Sérgio Basto - 4.19.8-3 -- Use bcond to handle conditional builds - -* Wed Mar 07 2018 Rex Dieter - 4.19.8-2 -- BR: gcc-c++, sip-api(12)=12.4 - -* Tue Mar 06 2018 Rex Dieter - 4.19.8-1 -- 4.19.8 - -* Sat Mar 03 2018 Sérgio Basto - 4.19.7-3 -- Enable python3 on epel7 - -* Fri Feb 09 2018 Fedora Release Engineering - 4.19.7-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Tue Jan 23 2018 Rex Dieter - 4.19.7-1 -- 4.19.7 - -* Thu Jan 18 2018 Scott Talbert - 4.19.6-5 -- Cherry-pick patch from upstream to fix generator segfault - -* Mon Dec 25 2017 Rex Dieter - 4.19.6-4 -- python2-sip-devel: fix dep on base pkg - -* Sun Dec 17 2017 Zbigniew Jędrzejewski-Szmek - 4.19.6-3 -- Python 2 binary packages renamed to python2-sip and python2-sip-devel - See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 - -* Mon Dec 11 2017 Merlin Mathesius - 4.19.6-2 -- Cleanup spec file conditionals - -* Sat Nov 25 2017 Rex Dieter - 4.19.6-1 -- sip-4.19.6 - * Mon Nov 06 2017 Rex Dieter - 4.19.5-1 - sip-4.19.5 diff --git a/sources b/sources index bd8dd5d..4319996 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (sip-4.19.25.tar.gz) = 60fb4133c68869bf0993144978b4847d94a0f9c7b477f64a346ea133cfe35bc11820204ab327dcf9a929b6f65a26d16cc7efbce65e49967c3347b39376e57001 +SHA512 (sip-4.19.5.tar.gz) = 15d0c0daacf11534a61cd3961613e0015afb9f61fd484094008d1b3d344765d03a2bed2eb08c92a347bbe6868622ab1f7dc0a3bd3e2e662a8e08a53ac8e88463