Compare commits

...

4 Commits

Author SHA1 Message Date
CentOS Sources
976dab677a import sip-4.19.25-1.el8 2022-11-08 15:11:19 +00:00
CentOS Sources
be22231774 import sip-4.19.24-2.el8 2021-12-09 15:22:39 +00:00
CentOS Sources
ebca6c627e import sip-4.19.19-2.el8 2021-09-10 04:31:43 +00:00
CentOS Sources
64ec34aab1 import sip-4.19.19-1.el8 2021-09-10 04:31:40 +00:00
10 changed files with 209 additions and 144 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/sip-4.19.12.tar.gz
SOURCES/sip-4.19.25.tar.gz

View File

@ -1 +1 @@
9f4d0f05ab814ddcde767669cfb6bc184bba931d SOURCES/sip-4.19.12.tar.gz
dea579470269fabeb920976c405fa7f5e67cd4bd SOURCES/sip-4.19.25.tar.gz

View File

@ -1,3 +1,3 @@
%_sip_api_major 12
%_sip_api_minor 5
%_sip_api_minor 7
%_sip_api %{_sip_api_major}.%{_sip_api_minor}

View File

@ -1,7 +1,7 @@
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:
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:
if l_dir in ("", ".", ".."):
continue
@ -10,7 +10,7 @@ diff -up sip-4.18/siputils.py.no_rpath sip-4.18/siputils.py
if self._python:
incdir.append(self.config.py_inc_dir)
@@ -612,7 +612,7 @@ class Makefile:
@@ -613,7 +613,7 @@ class Makefile:
# Handle library directories.
libdir_qt = self.optional_list("LIBDIR_QT")
libdir.extend(libdir_qt)

View File

@ -1,7 +1,7 @@
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):
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):
"""
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 -up sip-4.18/siputils.py.no_strip sip-4.18/siputils.py
export_all=0, universal=None, arch=None,
deployment_target=None):
"""Initialise an instance of a module Makefile.
@@ -1780,7 +1780,7 @@ class SIPModuleMakefile(ModuleMakefile):
@@ -1784,7 +1784,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,

View File

@ -0,0 +1,12 @@
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))

View File

@ -0,0 +1,52 @@
From: Jochen Sprickerhof <jspricke@debian.org>
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;}
<directive>timestamp {return TK_TIMESTAMP;}
<directive>type {return TK_TYPE;}
<directive>use_argument_names {return TK_USEARGNAMES;}
+<directive>py_ssize_t_clean {return TK_PYSSIZETCLEAN;}
<directive>use_limited_api {return TK_USELIMITEDAPI;}
<directive>all_raise_py_exception {return TK_ALLRAISEPYEXC;}
<directive>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;

View File

@ -1,12 +0,0 @@
diff -up sip-4.19.3/configure.py.sip_bin sip-4.19.3/configure.py
--- sip-4.19.3/configure.py.sip_bin 2017-07-03 12:24:27.000000000 -0500
+++ sip-4.19.3/configure.py 2017-07-05 20:21:24.376350683 -0500
@@ -281,7 +281,7 @@ def create_config(module, template, macr
"sip_version": sip_version,
"sip_version_str": sip_version_str,
"platform": build_platform,
- "sip_bin": os.path.join(sip_bin_dir, "sip"),
+ "sip_bin": os.path.join(sip_bin_dir, "python3-sip"),
"sip_inc_dir": sip_inc_dir,
"sip_mod_dir": sip_module_dir,
"default_bin_dir": plat_bin_dir,

3
SOURCES/sip-wrapper.sh Normal file
View File

@ -0,0 +1,3 @@
#!/bin/sh
exec sip -n @SIP_MODULE@ $@

View File

@ -1,21 +1,14 @@
%if 0%{?fedora} > 12 || 0%{?rhel} > 7
%bcond_without python3
%else
%bcond_with python3
%endif
%if 0%{?rhel} > 7
%global with_python2 0
%endif
%if %{with python3}
%{!?python3_inc:%global python3_inc %(%{__python3} -c "from distutils.sysconfig import get_python_inc; print(get_python_inc(1))")}
%endif
%if 0%{?with_python2}
%{!?__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)")}
%endif
%global PYINCLUDE %{_includedir}/python%{python3_version}m
%global rpm_macros_dir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
%global rpm_macros_dir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
@ -25,20 +18,23 @@
# 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%{?rhel} < 8
%global no_namespace 1
%endif
Summary: SIP - Python/C++ Bindings Generator
Name: sip
Version: 4.19.12
Release: 3%{?dist}
Version: 4.19.25
Release: 1%{?dist}
# sipgen/parser.{c.h} is GPLv3+ with exceptions (bison)
License: GPLv2 or GPLv3 and (GPLv3+ with exceptions)
Url: http://www.riverbankcomputing.com/software/sip/intro
#URL: http://sourceforge.net/projects/pyqt/
%if 0%{?snap:1}
Source0: https://www.riverbankcomputing.com/static/Downloads/sip/sip-%{version}%{?snap:.%{snap}}.tar.gz
%else
Source0: http://downloads.sourceforge.net/pyqt/sip-%{version}.tar.gz
%endif
Source0: https://www.riverbankcomputing.com/static/Downloads/sip/%{version}/sip-%{version}%{?snap:.%{snap}}.tar.gz
Source10: sip-wrapper.sh
## upstream patches
@ -48,23 +44,33 @@ 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)
Patch52: sip-4.19.3-python3_sip_bin.patch
# 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
# 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 5
%global _sip_api_minor 7
%global _sip_api %{_sip_api_major}.%{_sip_api_minor}
BuildRequires: gcc-c++
%if 0%{?with_python2}
BuildRequires: python2-devel
%endif
BuildRequires: sed
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}
Provides: python2-sip = %{version}-%{release}
Obsoletes: python3-sip < %{version}-%{release}
Provides: 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,\
@ -78,48 +84,26 @@ class library.
%description %_description
%if 0%{?with_python2}
%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
%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
%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}
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}.
%endif
%if %{with python3}
%if 0%{?no_namespace}
%package -n python%{python3_pkgversion}-sip
Summary: SIP - Python 3/C++ Bindings Generator
BuildRequires: python%{python3_pkgversion}-devel
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
This is the Python 3 build of SIP.
%_description
%endif
%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}-pyqt5-sip
Summary: SIP - Python 3/C++ Bindings Generator for pyqt5
@ -129,15 +113,16 @@ Provides: python%{python3_pkgversion}-pyqt5-sip-api(%{_sip_api_major})%{?_isa} =
%description -n python%{python3_pkgversion}-pyqt5-sip
This is the Python 3 build of pyqt5-SIP.
%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.
%_description
%package -n python3-sip-devel
Summary: Files needed to generate Python bindings for any C++ class library
Requires: sip = %{version}-%{release}
Requires: python3-sip%{?_isa} = %{version}-%{release}
Requires: python3-devel
%description -n python3-sip-devel
%{summary}.
%endif
@ -146,36 +131,29 @@ Requires: python3-devel
%patch50 -p1 -b .no_strip
%patch51 -p1 -b .no_rpath
%patch53 -p1 -b .no_sip_so
%patch54 -p1 -b .py_ssize_t_clean
%build
%if 0%{?with_python2}
mkdir %{_target_platform}-python2
pushd %{_target_platform}-python2
%{__python2} ../configure.py \
--no-dist-info \
CFLAGS+="%{optflags}" CXXFLAGS+="%{optflags}" LFLAGS+="%{?__global_ldflags}"
sed -i -e 's|target = siplib|target = sip|g' siplib/siplib.sbf
%make_build
popd
mkdir %{_target_platform}-python2-pyqt5
pushd %{_target_platform}-python2-pyqt5
%{__python2} ../configure.py \
--no-dist-info \
--sip-module=PyQt5.sip \
CFLAGS+="%{optflags}" CXXFLAGS+="%{optflags}" LFLAGS+="%{?__global_ldflags}"
%if %{with python3}
%if 0%{?no_namespace}
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}"
%make_build
popd
%endif
%if %{with python3}
patch -p1 < %{PATCH52}
mkdir %{_target_platform}-python3
pushd %{_target_platform}-python3
mkdir %{_target_platform}-python3-pyqt4
pushd %{_target_platform}-python3-pyqt4
%{__python3} ../configure.py \
--no-dist-info \
-d %{python3_sitearch} \
--sip-module=PyQt4.sip \
-b %{_bindir} -d %{python3_sitearch} -e %{PYINCLUDE} \
CXXFLAGS+="%{optflags}" CFLAGS+="%{optflags}" LFLAGS+="%{?__global_ldflags}"
%make_build
@ -184,22 +162,37 @@ popd
mkdir %{_target_platform}-python3-pyqt5
pushd %{_target_platform}-python3-pyqt5
%{__python3} ../configure.py \
--no-dist-info \
--sip-module=PyQt5.sip \
-b %{_bindir} -d %{python3_sitearch} -e %{PYINCLUDE} \
CXXFLAGS+="%{optflags}" CFLAGS+="%{optflags}" LFLAGS+="%{?__global_ldflags}"
%make_build
popd
%endif
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
%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-pyqt5
%make_install -C %{_target_platform}-python3-wx
mv %{buildroot}%{python3_sitearch}/wx/sip.pyi %{buildroot}%{python3_sitearch}/wx/siplib.pyi
ln -s sip %{buildroot}%{_bindir}/python3-sip
## toplevel __pycache__ creation is ... inconsistent
@ -207,13 +200,13 @@ ln -s sip %{buildroot}%{_bindir}/python3-sip
mkdir -p %{buildroot}%{python3_sitearch}/__pycache__/exclude_rpm_hack
%endif
# Python 2 installation:
%if 0%{?with_python2}
%make_install -C %{_target_platform}-python2
%make_install -C %{_target_platform}-python2-pyqt5
# sip-wrapper
install %{SOURCE10} %{buildroot}%{_bindir}/sip-pyqt5
install %{SOURCE10} %{buildroot}%{_bindir}/sip-wx
sed -i -e 's|@SIP_MODULE@|PyQt5.sip|g' %{buildroot}%{_bindir}/sip-pyqt5
sed -i -e 's|@SIP_MODULE@|wx.siplib|g' %{buildroot}%{_bindir}/sip-wx
mkdir -p %{buildroot}%{_datadir}/sip
%endif
# Macros used by -devel subpackages:
install -D -p -m644 %{SOURCE1} %{buildroot}%{rpm_macros_dir}/macros.sip
@ -223,50 +216,67 @@ install -D -p -m644 %{SOURCE1} %{buildroot}%{rpm_macros_dir}/macros.sip
%doc README
%license LICENSE LICENSE-GPL2 LICENSE-GPL3
%{_bindir}/sip
# sip-wrappers
%{_bindir}/sip-pyqt5
%{_bindir}/sip-wx
# compat symlink
%{_bindir}/python3-sip
%dir %{_datadir}/sip/
%{rpm_macros_dir}/macros.sip
%if 0%{?with_python2}
%files -n python2-sip
%doc NEWS README
%license LICENSE LICENSE-GPL2 LICENSE-GPL3
%{python2_sitearch}/sip.so
%{python2_sitearch}/sip*.py*
%files -n python2-sip-devel
%{_bindir}/sip
%dir %{_datadir}/sip/
%{python2_inc}/sip.h
%files -n python2-pyqt5-sip
%doc NEWS README
%license LICENSE LICENSE-GPL2 LICENSE-GPL3
%{python2_sitearch}/PyQt5/
%endif
%if %{with python3}
%files -n python%{python3_pkgversion}-sip
%doc NEWS README
%license LICENSE LICENSE-GPL2 LICENSE-GPL3
%{python3_sitearch}/sip.so
%{python3_sitearch}/sip*.py*
%files -n python%{python3_pkgversion}-sip-devel
%{PYINCLUDE}/sip.h
%{python3_sitearch}/sipconfig.py*
%{python3_sitearch}/sipdistutils.py*
%{python3_sitearch}/__pycache__/*
%exclude %{python3_sitearch}/__pycache__/exclude_rpm_hack
%files -n python%{python3_pkgversion}-sip-devel
%{python3_inc}/sip.h
%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}-pyqt5-sip
%doc NEWS README
%license LICENSE LICENSE-GPL2 LICENSE-GPL3
%{python3_sitearch}/PyQt5/
%{python3_sitearch}/__pycache__/*
%exclude %{python3_sitearch}/__pycache__/exclude_rpm_hack
%dir %{python3_sitearch}/PyQt5/
%{python3_sitearch}/PyQt5/sip.*
%{python3_sitearch}/PyQt5_sip-%{version}.dist-info/
%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
%changelog
* Mon Apr 04 2022 Jan Grulich <jgrulich@redhat.com> - 4.19.25-1
- 4.19.25 + sync with Fedora
Resolves: bz#2071606
* Wed Apr 28 2021 Jan Grulich <jgrulich@redhat.com> - 4.19.24-2
- Rebuild (binutils)
Resolves: bz#1949080
* Tue Apr 13 2021 Jan Grulich <jgrulich@redhat.com> - 4.19.24-1
- 4.19.24
Resolves: bz#1949080
* Thu May 14 2020 Jan Grulich <jgrulich@redhat.com> - 4.19.19-2
- Rebuild to push python3-wx-siplib into AppStream
Resolves: bz#1774207
* Fri Nov 22 2019 Jan Grulich <jgrulich@redhat.com> - 4.19.19-1
- 4.19.19
Resolves: bz#1775604
* Tue Jul 17 2018 Jan Grulich <jgrulich@redhat.com> - 4.19.12-3
- *-devel: Requires: sip
- drop Obsoletes: sip, now that we have a real sip pkg again