Blob Blame History Raw
%global modname pycxx

# Specify '--without=python3' to NOT build the python 3 RPM
%if 0%{?rhel} && 0%{?rhel} <= 7
# el6 has no python3 packages
%global with_python3 0
%else
%global with_python3 %{?_without_python3:0} %{?!_without_python3:1}
%endif

Name:           python-%{modname}
Version:        7.1.1
Release:        1%{?dist}
Summary:        Write Python extensions in C++

License:        BSD
URL:            http://CXX.sourceforge.net/

BuildArch:      noarch

Source0:        http://downloads.sourceforge.net/cxx/%{modname}-%{version}.tar.gz
# Patch0:  remove unnecessary 'Src/' directory from include path in sources
Patch0:         %{name}-%{version}-change-include-paths.patch
# Patch1:  fix several problems with install, esp. omitted files, python 
# v2/v3 awareness
Patch1:         %{name}-%{version}-setup.py.patch
# https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/ZALDNFOZO6DLRXOS6J7EA7WFHMGE3UAF/
Patch2:         %{name}-%{version}-python37.patch

BuildRequires:  python2-devel
%if %{with_python3}
BuildRequires:  python3-devel
%endif

%global _description\
PyCXX is a set of classes to help create extensions of Python in the\
C++ language. The first part encapsulates the Python C API taking care\
of exceptions and ref counting. The second part supports the building\
of Python extension modules in C++.

%description %_description

%package -n python2-%{modname}-devel
Summary: %summary
%{?python_provide:%python_provide python2-%{modname}-devel}

%description -n python2-%{modname}-devel %_description

%package devel
Summary:        PyCXX header and source files
Requires:       python2

%description devel
PyCXX is a set of classes to help create extensions of Python in the
C++ language. The first part encapsulates the Python C API taking care
of exceptions and ref counting. The second part supports the building
of Python extension modules in C++.

The %{name}-devel package provides the header and source files
for Python 2.  There is no non-devel package needed.


%package -n python3-%{modname}-devel
Summary:        PyCXX header and source files
Requires:       python3

%description -n python3-%{modname}-devel
PyCXX is a set of classes to help create extensions of Python in the
C++ language. The first part encapsulates the Python C API taking care
of exceptions and ref counting. The second part supports the building
of Python extension modules in C++.

The python3-%{modname}-devel package provides the header and source files
for Python 3.  There is no non-devel package needed.


%prep
%autosetup -p1 -n %{modname}-%{version}


%build
# Nothing to build.


%install
%global py_install_args --prefix=/usr --install-headers=/usr/include/CXX --install-data=/usr/src
%py2_install -- %{py_install_args}

%if %{with_python3}
%py3_install -- %{py_install_args}
%endif

# Write pkg-config PyCXX.pc file
mkdir -p %{buildroot}%{_datadir}/pkgconfig
cat > %{buildroot}%{_datadir}/pkgconfig/PyCXX.pc <<EOF
prefix=%{_prefix}
exec_prefix=%{_prefix}
includedir=%{_includedir}
srcdir=%{_usrsrc}/CXX

Name: PyCXX
Description: Write Python extensions in C++
Version: 7.1.1
Cflags: -I\${includedir}
EOF


%check
export PKG_CONFIG_PATH=%{buildroot}%{_datadir}/pkgconfig:%{buildroot}%{_libdir}/pkgconfig
test "$(pkg-config --modversion PyCXX)" = "%{version}"


%files -n python2-%{modname}-devel
%doc README.html COPYRIGHT Doc/Python2/ 
%dir %{_includedir}/CXX
%{_includedir}/CXX/*.hxx
%{_includedir}/CXX/*.h
%{_includedir}/CXX/Python2
%{python2_sitelib}/CXX*
%dir %{_usrsrc}/CXX
%{_usrsrc}/CXX/*.cxx
%{_usrsrc}/CXX/*.c
%{_usrsrc}/CXX/Python2
%{_datadir}/pkgconfig/PyCXX.pc


%if %{with_python3}
%files -n python3-%{modname}-devel
%doc README.html COPYRIGHT Doc/Python3/ 
%dir %{_includedir}/CXX
%{_includedir}/CXX/*.hxx
%{_includedir}/CXX/*.h
%{_includedir}/CXX/Python3
%{python3_sitelib}/CXX*
%dir %{_usrsrc}/CXX
%{_usrsrc}/CXX/*.cxx
%{_usrsrc}/CXX/*.c
%{_usrsrc}/CXX/Python3
%{_datadir}/pkgconfig/PyCXX.pc
%endif


%changelog
* Mon Feb 18 2019 Richard Shaw <hobbes1069@gmail.com> - 7.1.1-1
- Update to 7.1.1.
- Clean up python install to be more guidelines compliant.
- Remove gcc-c++ from build requirements as this is a noarch package.

* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 7.1.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

* Mon Jan 21 2019 Richard Shaw <hobbes1069@gmail.com> - 7.1.0-1
- Update to 7.1.0.

* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 7.0.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild

* Fri Jun 29 2018 Miro Hrončok <mhroncok@redhat.com> - 7.0.3-3
- Add Python 3.7 patch to add const
- Invoke python2 with python2, not python

* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 7.0.3-2
- Rebuilt for Python 3.7

* Wed Apr 11 2018 Richard Shaw <hobbes1069@gmail.com> - 7.0.3-1
- Update to 7.0.3.

* Wed Apr 11 2018 Richard Shaw <hobbes1069@gmail.com> - 7.0.2-1
- Update to 7.0.2.

* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.8-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 6.2.8-6
- Python 2 binary package renamed to python2-pycxx
  See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3

* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.8-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.8-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Tue Dec 13 2016 Charalampos Stratakis <cstratak@redhat.com> - 6.2.8-3
- Rebuild for Python 3.6

* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.2.8-2
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages

* Mon May 16 2016 Richard Shaw <hobbes1069@gmail.com> - 6.2.8-1
- Update to latest upstream release.

* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.4-12.20130805svn280
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Tue Nov 10 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.2.4-11.20130805svn280
- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5

* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.2.4-10.20130805svn280
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.2.4-9.20130805svn280
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Wed May 14 2014 Bohuslav Kabrda <bkabrda@redhat.com> - 6.2.4-8.20130805svn280
- Rebuilt for https://fedoraproject.org/wiki/Changes/Python_3.4

* Mon Aug  5 2013 John Morris <john@zultron.com> - 6.2.4-7.280svn20130805
- Update to SVN r280 for python3 compatibility
- Update python-pycxx-6.2.4-setup.py.patch to apply correctly
- Fix %%setup for SVN zipball
- Add diff extensions to %%patch macros
- Enable python3 pkg by default except for EPEL; see BZ 991342

* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.2.4-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild

* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.2.4-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Tue Oct 16 2012 John Morris <john@zultron.com> - 6.2.4-4
- Minor macro fixes for compiling on el6

* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.2.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Fri Jun 29 2012  <john@zultron.com> - 6.2.4-2
- Fix Source0 URL

* Thu Jun 28 2012  <john@zultron.com> - 6.2.4-1
- Install headers into /usr/include/CXX instead of default
  /usr/include/python2.7/CXX (setup.py command line option)
- Install sources into /usr/src/CXX rather than /usr/share/python2.7/CXX
- setup.py patch:
  - Update PyCXX version number
  - Convert tabs to spaces (from original patch)
  - Add omitted headers and sources to install
    - Extend install_headers to handle subdirs
  - Install only Python v2 or v3 code as appropriate
- Add --with=python3 option to build python3-pycxx-devel RPM

* Wed Jun 27 2012  <john@zultron.com> - 6.2.4-0
- Add a pkg-config PyCXX.pc file
- Update to 6.2.4
- Build only a -devel package; no regular package needed
- Beautify specfile, fix macros

* Thu Mar 29 2012  <jman@greaser.zultron.com> - 6.2.3-2
- rebuild with koji

* Wed Feb 22 2012 John Morris <john@zultron.com> - 6.2.3-1
- update to compile on el5 as well as fc16 (missing python_sitelib macro)

* Tue Feb 21 2012  <jman@greaser.zultron.com> - 6.2.3-1
- changed python_sitearch to python_sitelib in files section, 
  since package installs in /usr/lib even on x86_64

* Tue Nov 03 2009 Steve Huff <shuff@vecna.org> - 6.1.1-1 - 7987/shuff
- Renamed per RPMforge naming convention.

* Thu Oct 08 2009 Steve Huff <shuff@vecna.org> - 6.1.1-1
- Initial package.