Blob Blame History Raw
%{!?php_inidir: %global php_inidir %{_sysconfdir}/php.d/}
%{?el5: %global php_apiver  %((echo 0; php -i 2>/dev/null | sed -n 's/^PHP API => //p') | tail -1)}
%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}

# Filter out private python and php libs. Does not work on EPEL5,
# therefor we use it conditionally
%{?filter_setup:
%filter_from_provides %{python_sitearch}/.*\.so$
%filter_from_provides %{php_extdir}/.*\.so$
%filter_setup
}

Name:           libkolabxml
Version:        0.6
Release:        1%{?dist}
Summary:        Kolab XML format collection parser library

Group:          System Environment/Libraries
License:        LGPLv3+
URL:            http://www.kolab.org

# From git.kolab.org/libkolabxml/snapshot/5c360b5c0de1257ae942db547dfa54b2b99a8ad5.tar.gz
Source0:        http://git.kolab.org/libkolabxml/snapshot/%{name}-%{version}.tar.gz

BuildRoot:      %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)

%if 0%{?rhel} < 6 && 0%{?fedora} < 15
BuildRequires:  boost141-devel
%else
BuildRequires:  boost-devel
%endif
BuildRequires:  cmake >= 2.6
BuildRequires:  e2fsprogs-devel
BuildRequires:  gcc-c++
%if 0%{?rhel} > 6 || 0%{?fedora} >= 16
BuildRequires:  kdelibs-devel
BuildRequires:  kdepimlibs-devel
%endif
BuildRequires:  php-devel >= 5.3
BuildRequires:  python-devel
BuildRequires:  qt-devel >= 3
BuildRequires:  swig
BuildRequires:  uuid-devel
BuildRequires:  xerces-c-devel
BuildRequires:  xsd

# Only valid in kolabsys.com Koji
#BuildRequires:  xsd-utils

%description
The libkolabxml parsing library interprets Kolab XML formats (xCal, xCard)
with bindings for Python, PHP and other languages. The language bindings
are available through sub-packages.

%package devel
Summary:        Kolab XML library development headers
Group:          Development/Libraries
Requires:       %{name}%{?_isa} = %{version}-%{release}
%if 0%{?rhel} < 6 && 0%{?fedora} < 15
Requires:       boost141-devel
%else
Requires:       boost-devel
%endif
Requires:       cmake >= 2.6
Requires:       e2fsprogs-devel
Requires:       gcc-c++
%if 0%{?rhel} > 6 || 0%{?fedora} >= 16
Requires:       kdelibs-devel
Requires:       kdepimlibs-devel
%endif
Requires:       php-devel >= 5.3
Requires:       python-devel
Requires:       qt-devel >= 3
Requires:       swig
Requires:       uuid-devel
Requires:       xerces-c-devel
Requires:       xsd
Requires:       xsd-utils

%description devel
Development headers for the Kolab XML libraries

%package -n php-kolabformat
Summary:        PHP bindings for libkolabxml
Group:          System Environment/Libraries
Requires:       %{name}%{?_isa} = %{version}-%{release}
%if 0%{?rhel} < 6
Requires:       php-api = %{php_apiver}
%else
Requires:       php(zend-abi) = %{php_zend_api}
Requires:       php(api) = %{php_core_api}
%endif

%description -n php-kolabformat
The PHP kolabformat package offers a comprehensible PHP library using the
bindings provided through libkolabxml.

%package -n python-kolabformat
Summary:        Python bindings for libkolabxml
Group:          System Environment/Libraries
Requires:       %{name}%{?_isa} = %{version}-%{release}

%description -n python-kolabformat
The PyKolab format package offers a comprehensive Python library using the
bindings provided through libkolabxml.

%prep
%setup -q

%build
rm -rf build
mkdir -p build
pushd build
%{cmake} -Wno-fatal-errors -Wno-errors \
    -DCMAKE_SKIP_RPATH=ON \
    -DCMAKE_PREFIX_PATH=%{_libdir} \
%if 0%{?rhel} < 6 && 0%{?fedora} < 15
    -DBOOST_LIBRARYDIR=%{_libdir}/boost141 \
    -DBOOST_INCLUDEDIR=%{_includedir}/boost141 \
    -DBoost_ADDITIONAL_VERSIONS="1.41;1.41.0" \
%endif
    -DINCLUDE_INSTALL_DIR=%{_includedir}/kolabxml \
    -DPYTHON_INCLUDE_DIRS=%{python_include} \
    -DPHP_BINDINGS=ON \
    -DPHP_INSTALL_DIR=%{php_extdir} \
    -DPYTHON_BINDINGS=ON \
    -DPYTHON_INSTALL_DIR=%{python_sitearch} \
    ..
make
popd

%install
rm -rf %{buildroot}
pushd build
make install DESTDIR=%{buildroot} INSTALL='install -p'
popd

mkdir -p %{buildroot}/%{_datadir}/php
mv %{buildroot}/%{php_extdir}/kolabformat.php %{buildroot}/%{_datadir}/php/kolabformat.php

mkdir -p %{buildroot}/%{php_inidir}/
cat >%{buildroot}/%{php_inidir}/kolabformat.ini <<EOF
extension=kolabformat.so
EOF

%check
pushd build
# Make sure libkolabxml.so.* is found, otherwise the tests fail
export LD_LIBRARY_PATH=$( pwd )/src/
pushd tests
./bindingstest ||:
./conversiontest ||:
./parsingtest ||:
popd
php -d enable_dl=On -dextension=src/php/kolabformat.so src/php/test.php ||:
python src/python/test.py ||:
popd

%clean
rm -rf %{buildroot}

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%files
%defattr(-,root,root,-)
%doc DEVELOPMENT NEWS README
%{_libdir}/*.so.*

%files devel
%defattr(-,root,root,-)
%{_includedir}/kolabxml
%{_libdir}/*.so
%{_libdir}/cmake/Libkolabxml

%files -n php-kolabformat
%defattr(-,root,root,-)
%config(noreplace) %{php_inidir}/kolabformat.ini
%{_datadir}/php/kolabformat.php
%{php_extdir}/kolabformat.so

%files -n python-kolabformat
%defattr(-,root,root,-)
%{python_sitearch}/kolabformat.py*
%{python_sitearch}/_kolabformat.so

%changelog
* Sat Jun 23 2012 Christoph Wickert <wickert@kolabsys.com> - 0.6-1
- Update to 0.6 final
- Run ldconfig in %%post and %%postun
- Mark kolabformat.ini as config file
- Export LD_LIBRARY_PATH so tests can be run in %%check
- Add php dependencies to php-kolabformat package
- Make base package requirements are arch-specific
- Filter unwanted provides of php-kolabformat and python-kolabformat

* Wed Jun 20 2012 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 0.6-0.4
- Some other cleanups to prevent review scrutiny from blocking
  inclusion
- Drop build requirement for xsd-utils

* Sat Jun  9 2012 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 0.6-0.2
- Git snapshot release

* Wed May 23 2012 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 0.5-5
- Correct use of Python keyword None
- Snapshot version with attendee cutype support

* Tue May 22 2012 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 0.5-3
- Snapshot version with attendee delegation support

* Sat May 12 2012 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 0.5-2
- Snapshot version with build system changes

* Wed May  9 2012 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 0.4.0-3
- Fix PHP kolabformat module packaging

* Wed May  2 2012 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 0.4.0-2
- New version

* Fri Apr 20 2012 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 0.3.0-1
- New version

* Mon Apr  9 2012 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 0.3-0.1
- First package