-# TODO
-# - python3 package
#
# Conditional build:
-%bcond_without cython # build with Cython
+%bcond_without cython # Python modules (Cython based)
+%bcond_without python3 # Python 3 module
%bcond_without static_libs # static libraries
+%if %{without cython}
+%undefine with_python3
+%endif
Summary: Library for manipulating Apple Property Lists
Summary(pl.UTF-8): Biblioteka do manipulowania Apple Property Lists
Name: libplist
-Version: 1.11
-Release: 2
+Version: 2.2.0
+Release: 1
License: LGPL v2.1+
Group: Libraries
-# Source0Download: http://www.libimobiledevice.org/
-Source0: http://www.libimobiledevice.org/downloads/%{name}-%{version}.tar.bz2
-# Source0-md5: 82de65f38cb2f0a9fd0839679b46072b
-Patch0: %{name}-link.patch
-URL: http://www.libimobiledevice.org/
-BuildRequires: autoconf >= 2.61
+# Source0Download: https://libimobiledevice.org/
+Source0: https://github.com/libimobiledevice/libplist/releases/download/%{version}/%{name}-%{version}.tar.bz2
+# Source0-md5: 63cc49401521662c94cd4107898c744c
+Patch0: %{name}-sh.patch
+URL: https://libimobiledevice.org/
+BuildRequires: autoconf >= 2.64
BuildRequires: automake
BuildRequires: libstdc++-devel
BuildRequires: libtool
-BuildRequires: libxml2-devel >= 1:2.7.8
BuildRequires: pkgconfig
BuildRequires: rpmbuild(macros) >= 1.600
%if %{with cython}
BuildRequires: python-Cython >= 0.17.0
BuildRequires: python-devel >= 1:2.3
BuildRequires: python-modules >= 1:2.3
+%if %{with python3}
+BuildRequires: python3-Cython >= 0.17.0
+BuildRequires: python3-devel >= 1:3.2
+BuildRequires: python3-modules >= 1:3.2
+%endif
BuildRequires: rpm-pythonprov
%endif
-Requires: libxml2 >= 1:2.7.8
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
Summary(pl.UTF-8): Plik nagłówkowy biblioteki libplist
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
-Requires: libxml2-devel >= 1:2.7.8
%description devel
Header file for libplist library.
Statyczna biblioteka libplist++.
%package -n python-plist
-Summary: libplist Python bindings
-Summary(pl.UTF-8): Wiązania libplist dla Pythona
+Summary: Python 2 bindings for libplist
+Summary(pl.UTF-8): Wiązania libplist dla Pythona 2
Group: Development/Languages/Python
Requires: %{name} = %{version}-%{release}
%description -n python-plist
-libplist Python bindings.
+Python 2 bindings for libplist.
%description -n python-plist -l pl.UTF-8
-Wiązania libplist dla Pythona.
+Wiązania libplist dla Pythona 2.
+
+%package -n python3-plist
+Summary: Python 3 bindings for libplist
+Summary(pl.UTF-8): Wiązania libplist dla Pythona 3
+Group: Development/Languages/Python
+Requires: %{name} = %{version}-%{release}
+
+%description -n python3-plist
+Python 3 bindings for libplist.
+
+%description -n python3-plist -l pl.UTF-8
+Wiązania libplist dla Pythona 3.
%package -n python-plist-devel
Summary: Cython header file for Python libplist binding
Group: Development/Libraries
Requires: %{name}-devel = %{version}-%{release}
Requires: python-Cython >= 0.17.0
-Requires: python-plist = %{version}-%{release}
%description -n python-plist-devel
Cython header file for Python libplist binding.
%{__autoconf}
%{__autoheader}
%{__automake}
-%configure \
+install -d build
+cd build
+../%configure \
--disable-silent-rules \
%{!?with_static_libs:--disable-static} \
%{!?with_cython:--without-cython}
# make -j1 due:
# make[2]: *** No rule to make target '../src/libplist.la', needed by 'libplist++.la'. Stop.
%{__make} -j1
+cd ..
+
+%if %{with python3}
+topdir=$(pwd)
+install -d build-py3
+cd build-py3
+../%configure \
+ PYTHON=%{__python3} \
+ --disable-silent-rules
+
+%{__make} -C cython \
+ top_builddir="${topdir}/build"
+%endif
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} install \
+
+%{__make} -C build install \
DESTDIR=$RPM_BUILD_ROOT
# obsoleted by .pc
%{__rm} $RPM_BUILD_ROOT%{_libdir}/lib*.la
%if %{with cython}
-%py_comp $RPM_BUILD_ROOT%{py_sitedir}
-%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
-%py_postclean
-
install -d $RPM_BUILD_ROOT%{_includedir}/plist/cython
cp -p cython/plist.pxd $RPM_BUILD_ROOT%{_includedir}/plist/cython/plist.pxd
%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/plist.la \
%{?with_static_libs:$RPM_BUILD_ROOT%{py_sitedir}/plist.a}
+
+%if %{with python3}
+%{__make} -C build-py3/cython install \
+ DESTDIR=$RPM_BUILD_ROOT \
+ top_builddir="$(pwd)/build"
+
+%{__rm} $RPM_BUILD_ROOT%{py3_sitedir}/plist.la
+ %{?with_static_libs:$RPM_BUILD_ROOT%{py3_sitedir}/plist.a}
+%endif
%endif
%clean
%files
%defattr(644,root,root,755)
-%doc AUTHORS NEWS README
+%doc AUTHORS NEWS README.md
%attr(755,root,root) %{_bindir}/plistutil
-%attr(755,root,root) %{_libdir}/libplist.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libplist.so.2
+%attr(755,root,root) %{_libdir}/libplist-2.0.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libplist-2.0.so.3
+%{_mandir}/man1/plistutil.1*
%files devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libplist.so
+%attr(755,root,root) %{_libdir}/libplist-2.0.so
%dir %{_includedir}/plist
%{_includedir}/plist/plist.h
-%{_pkgconfigdir}/libplist.pc
+%{_pkgconfigdir}/libplist-2.0.pc
%if %{with static_libs}
%files static
%defattr(644,root,root,755)
-%{_libdir}/libplist.a
+%{_libdir}/libplist-2.0.a
%endif
%files c++
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libplist++.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libplist++.so.2
+%attr(755,root,root) %{_libdir}/libplist++-2.0.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libplist++-2.0.so.3
%files c++-devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libplist++.so
+%attr(755,root,root) %{_libdir}/libplist++-2.0.so
%{_includedir}/plist/Array.h
%{_includedir}/plist/Boolean.h
%{_includedir}/plist/Data.h
%{_includedir}/plist/Structure.h
%{_includedir}/plist/Uid.h
%{_includedir}/plist/plist++.h
-%{_pkgconfigdir}/libplist++.pc
+%{_pkgconfigdir}/libplist++-2.0.pc
%if %{with static_libs}
%files c++-static
%defattr(644,root,root,755)
-%{_libdir}/libplist++.a
+%{_libdir}/libplist++-2.0.a
%endif
%if %{with cython}
%defattr(644,root,root,755)
%attr(755,root,root) %{py_sitedir}/plist.so
+%if %{with cython}
+%files -n python3-plist
+%defattr(644,root,root,755)
+%attr(755,root,root) %{py3_sitedir}/plist.so
+%endif
+
%files -n python-plist-devel
%defattr(644,root,root,755)
%{_includedir}/plist/cython