| 1 | #define svn_url e:/trees/sip/trunk
|
|---|
| 2 | %define svn_url http://svn.netlabs.org/repos/ports/sip/trunk
|
|---|
| 3 | %define svn_rev 1601
|
|---|
| 4 |
|
|---|
| 5 | # switch this on when we have python3
|
|---|
| 6 | #global with_python3 1
|
|---|
| 7 |
|
|---|
| 8 | %if 0%{?with_python3}
|
|---|
| 9 | %{!?python3_inc:%global python3_inc %(%{__python3} -c "from distutils.sysconfig import get_python_inc; print(get_python_inc(1))")}
|
|---|
| 10 | %endif
|
|---|
| 11 | %{!?__python2:%global __python2 /@unixroot/usr/bin/python2}
|
|---|
| 12 | %{!?python2_sitearch:%global python2_sitearch %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
|
|---|
| 13 | %{!?python2_inc:%global python2_inc %(%{__python2} -c "from distutils.sysconfig import get_python_inc; print get_python_inc(1)")}
|
|---|
| 14 |
|
|---|
| 15 | Summary: SIP - Python/C++ Bindings Generator
|
|---|
| 16 | Name: sip
|
|---|
| 17 | Version: 4.18
|
|---|
| 18 | Release: 5%{?dist}
|
|---|
| 19 |
|
|---|
| 20 | # sipgen/parser.{c.h} is GPLv3+ with exceptions (bison)
|
|---|
| 21 | License: GPLv2 or GPLv3 and (GPLv3+ with exceptions)
|
|---|
| 22 | Url: http://www.riverbankcomputing.com/software/sip/intro
|
|---|
| 23 | Vendor: bww bitwise works GmbH
|
|---|
| 24 | Source: %{name}-%{version}%{?svn_rev:-r%{svn_rev}}.zip
|
|---|
| 25 |
|
|---|
| 26 | # extracted from sip.h, SIP_API_MAJOR_NR SIP_API_MINOR_NR defines
|
|---|
| 27 | %global _sip_api_major 11
|
|---|
| 28 | %global _sip_api_minor 3
|
|---|
| 29 | %global _sip_api %{_sip_api_major}.%{_sip_api_minor}
|
|---|
| 30 |
|
|---|
| 31 | Provides: sip-api(%{_sip_api_major}) = %{_sip_api}
|
|---|
| 32 |
|
|---|
| 33 | BuildRequires: python2-devel
|
|---|
| 34 | BuildRequires: sed
|
|---|
| 35 |
|
|---|
| 36 | %if 0%{?with_python3}
|
|---|
| 37 | BuildRequires: python3-devel
|
|---|
| 38 | %endif
|
|---|
| 39 |
|
|---|
| 40 | %description
|
|---|
| 41 | SIP is a tool for generating bindings for C++ classes so that they can be
|
|---|
| 42 | accessed as normal Python classes. SIP takes many of its ideas from SWIG but,
|
|---|
| 43 | because it is specifically designed for C++ and Python, is able to generate
|
|---|
| 44 | tighter bindings. SIP is so called because it is a small SWIG.
|
|---|
| 45 |
|
|---|
| 46 | SIP was originally designed to generate Python bindings for KDE and so has
|
|---|
| 47 | explicit support for the signal slot mechanism used by the Qt/KDE class
|
|---|
| 48 | libraries. However, SIP can be used to generate Python bindings for any C++
|
|---|
| 49 | class library.
|
|---|
| 50 |
|
|---|
| 51 | %package devel
|
|---|
| 52 | Summary: Files needed to generate Python bindings for any C++ class library
|
|---|
| 53 | Requires: %{name} = %{version}-%{release}
|
|---|
| 54 | Requires: %{name}-macros = %{version}-%{release}
|
|---|
| 55 | Requires: python2-devel
|
|---|
| 56 | %description devel
|
|---|
| 57 | This package contains files needed to generate Python bindings for any C++
|
|---|
| 58 | classes library.
|
|---|
| 59 |
|
|---|
| 60 | %package macros
|
|---|
| 61 | Summary: RPM macros for use when working with SIP
|
|---|
| 62 | Requires: rpm
|
|---|
| 63 | # when arch->noarch happened
|
|---|
| 64 | Obsoletes: sip-macros < 4.15.5
|
|---|
| 65 | BuildArch: noarch
|
|---|
| 66 | %description macros
|
|---|
| 67 | This package contains RPM macros for use when working with SIP.
|
|---|
| 68 | %if 0%{?with_python3}
|
|---|
| 69 | It is used by both the sip-devel (python 2) and python3-sip-devel subpackages.
|
|---|
| 70 | %endif
|
|---|
| 71 |
|
|---|
| 72 | %if 0%{?with_python3}
|
|---|
| 73 | %package -n python3-sip
|
|---|
| 74 | Summary: SIP - Python 3/C++ Bindings Generator
|
|---|
| 75 | Provides: python3-sip-api(%{_sip_api_major}) = %{_sip_api}
|
|---|
| 76 | %description -n python3-sip
|
|---|
| 77 | This is the Python 3 build of SIP.
|
|---|
| 78 |
|
|---|
| 79 | SIP is a tool for generating bindings for C++ classes so that they can be
|
|---|
| 80 | accessed as normal Python 3 classes. SIP takes many of its ideas from SWIG but,
|
|---|
| 81 | because it is specifically designed for C++ and Python, is able to generate
|
|---|
| 82 | tighter bindings. SIP is so called because it is a small SWIG.
|
|---|
| 83 |
|
|---|
| 84 | SIP was originally designed to generate Python bindings for KDE and so has
|
|---|
| 85 | explicit support for the signal slot mechanism used by the Qt/KDE class
|
|---|
| 86 | libraries. However, SIP can be used to generate Python 3 bindings for any C++
|
|---|
| 87 | class library.
|
|---|
| 88 |
|
|---|
| 89 | %package -n python3-sip-devel
|
|---|
| 90 | Summary: Files needed to generate Python 3 bindings for any C++ class library
|
|---|
| 91 | Requires: %{name}-macros = %{version}-%{release}
|
|---|
| 92 | Requires: python3-sip = %{version}-%{release}
|
|---|
| 93 | Requires: python3-devel
|
|---|
| 94 | %description -n python3-sip-devel
|
|---|
| 95 | This package contains files needed to generate Python 3 bindings for any C++
|
|---|
| 96 | classes library.
|
|---|
| 97 | %endif
|
|---|
| 98 |
|
|---|
| 99 | %debug_package
|
|---|
| 100 |
|
|---|
| 101 |
|
|---|
| 102 | %prep
|
|---|
| 103 | %if %{?svn_rev:%(sh -c 'if test -f "%{_sourcedir}/%{name}-%{version}-r%{svn_rev}.zip" ; then echo 1 ; else echo 0 ; fi')}%{!?svn_rev):0}
|
|---|
| 104 | %setup -q
|
|---|
| 105 | %else
|
|---|
| 106 | %setup -n "%{name}-%{version}" -Tc
|
|---|
| 107 | svn export %{?svn_rev:-r %{svn_rev}} %{svn_url} . --force
|
|---|
| 108 | rm -f "%{_sourcedir}/%{name}-%{version}%{?svn_rev:-r%{svn_rev}}.zip"
|
|---|
| 109 | (cd .. && zip -SrX9 "%{_sourcedir}/%{name}-%{version}%{?svn_rev:-r%{svn_rev}}.zip" "%{name}-%{version}")
|
|---|
| 110 | %endif
|
|---|
| 111 |
|
|---|
| 112 | %if 0%{?with_python3}
|
|---|
| 113 | rm -rf %{py3dir}
|
|---|
| 114 | cp -a . %{py3dir}
|
|---|
| 115 | %endif
|
|---|
| 116 |
|
|---|
| 117 |
|
|---|
| 118 | %build
|
|---|
| 119 | LDFLAGS="-Zhigh-mem -Zomf -Zargs-wild -Zargs-resp"
|
|---|
| 120 |
|
|---|
| 121 | %if 0%{?with_python3}
|
|---|
| 122 | pushd %{py3dir}
|
|---|
| 123 | %{__python3} configure.py \
|
|---|
| 124 | -d %{python3_sitearch} \
|
|---|
| 125 | --sipdir=%{_datadir}/python3-sip \
|
|---|
| 126 | CXXFLAGS="%{optflags}" CFLAGS="%{optflags}" LFLAGS="$LDFLAGS"
|
|---|
| 127 |
|
|---|
| 128 | make %{?_smp_mflags}
|
|---|
| 129 | popd
|
|---|
| 130 | %endif
|
|---|
| 131 |
|
|---|
| 132 | %{__python2} configure.py \
|
|---|
| 133 | -d %{python2_sitearch} \
|
|---|
| 134 | CFLAGS="%{optflags}" CXXFLAGS="%{optflags}" LFLAGS="$LDFLAGS"
|
|---|
| 135 |
|
|---|
| 136 | make %{?_smp_mflags}
|
|---|
| 137 |
|
|---|
| 138 |
|
|---|
| 139 | %install
|
|---|
| 140 | # Perform the Python 3 installation first, to avoid stomping over the Python 2
|
|---|
| 141 | # /usr/bin/sip:
|
|---|
| 142 | %if 0%{?with_python3}
|
|---|
| 143 | pushd %{py3dir}
|
|---|
| 144 | make install DESTDIR=%{buildroot}
|
|---|
| 145 | mkdir -p %{buildroot}%{_datadir}/python3-sip
|
|---|
| 146 | mv %{buildroot}%{_bindir}/sip %{buildroot}%{_bindir}/python3-sip
|
|---|
| 147 | popd
|
|---|
| 148 |
|
|---|
| 149 | ## toplevel __pycache__ creation is ... inconsistent
|
|---|
| 150 | ## rawhide makes one, f23 local builds do not, so let's *make* it consistent
|
|---|
| 151 | mkdir -p %{buildroot}%{python3_sitearch}/__pycache__/exclude_rpm_hack
|
|---|
| 152 | %endif
|
|---|
| 153 |
|
|---|
| 154 | # Python 2 installation:
|
|---|
| 155 | make install DESTDIR=%{buildroot}
|
|---|
| 156 | mkdir -p %{buildroot}%{_datadir}/sip
|
|---|
| 157 |
|
|---|
| 158 | # Macros used by -devel subpackages:
|
|---|
| 159 | mkdir -p %{buildroot}/%{_rpmconfigdir}/macros.d
|
|---|
| 160 | install -m 0644 %{_builddir}/%{buildsubdir}/macros.sip %{buildroot}%{_rpmconfigdir}/macros.d
|
|---|
| 161 |
|
|---|
| 162 |
|
|---|
| 163 | %files
|
|---|
| 164 | %doc NEWS README
|
|---|
| 165 | %license LICENSE LICENSE-GPL2 LICENSE-GPL3
|
|---|
| 166 | %{python2_sitearch}/sip*.py*
|
|---|
| 167 |
|
|---|
| 168 | %files devel
|
|---|
| 169 | %{_bindir}/sip.exe
|
|---|
| 170 | %{_datadir}/sip/
|
|---|
| 171 | %{python2_inc}/*
|
|---|
| 172 |
|
|---|
| 173 | %files macros
|
|---|
| 174 | %{_rpmconfigdir}/macros.d/macros.sip
|
|---|
| 175 |
|
|---|
| 176 | %if 0%{?with_python3}
|
|---|
| 177 | %files -n python3-sip
|
|---|
| 178 | %doc NEWS README
|
|---|
| 179 | %license LICENSE LICENSE-GPL2 LICENSE-GPL3
|
|---|
| 180 | %{python3_sitearch}/sip.so
|
|---|
| 181 | %{python3_sitearch}/sip*.py*
|
|---|
| 182 | %{python3_sitearch}/__pycache__/*
|
|---|
| 183 | %exclude %{python3_sitearch}/__pycache__/exclude_rpm_hack
|
|---|
| 184 |
|
|---|
| 185 | %files -n python3-sip-devel
|
|---|
| 186 | # Note that the "sip" binary is invoked by name in a few places higher up
|
|---|
| 187 | # in the KDE-Python stack; these will need changing to "python3-sip":
|
|---|
| 188 | %{_bindir}/python3-sip.exe
|
|---|
| 189 | %{_datadir}/python3-sip/
|
|---|
| 190 | %{python3_inc}/*
|
|---|
| 191 | %endif
|
|---|
| 192 |
|
|---|
| 193 |
|
|---|
| 194 | %changelog
|
|---|
| 195 | * Wed Jun 14 2016 Silvan Scherrer <silvan.scherrer@aroa.ch> - 4.18.3-5
|
|---|
| 196 | - fix signature handling
|
|---|
| 197 |
|
|---|
| 198 | * Tue Jun 14 2016 Silvan Scherrer <silvan.scherrer@aroa.ch> - 4.18.3-4
|
|---|
| 199 | - rebuilt because of python ucs2/ucs4 change
|
|---|
| 200 |
|
|---|
| 201 | * Fri Jun 3 2016 Silvan Scherrer <silvan.scherrer@aroa.ch> - 4.18-3
|
|---|
| 202 | - truncate pyd files to max 8 char, if longer
|
|---|
| 203 | - create a symlink, if the original pyd file is larger than 8 char
|
|---|
| 204 | - add the possibility to have a nameshort tag in the %Module() section
|
|---|
| 205 | - add a def file for pyd (header only)
|
|---|
| 206 |
|
|---|
| 207 | * Fri May 20 2016 Silvan Scherrer <silvan.scherrer@aroa.ch> - 4.18-2
|
|---|
| 208 | - fix the Qt lib names (append the right version)
|
|---|
| 209 | - enable GNUMAKE as make generator
|
|---|
| 210 |
|
|---|
| 211 | * Thu May 19 2016 Silvan Scherrer <silvan.scherrer@aroa.ch> - 4.18-1
|
|---|
| 212 | - initial version
|
|---|