File libkolab.spec of Package libkolab
# Needed for opensuse build system
%if 0%{?opensuse_bs}
#!BuildIgnore: fedora-logos-httpd
#!BuildIgnore: httpd
%endif
# The cmake macro changed to build out of source by default, which breaks our own out of source build, so disable that.
%define __cmake_in_source_build 1
%{expand: %(if [ `php-config --vernum` -gt 70000 ]; then echo %%global with_php7 1; else echo %%global with_php7 0; fi)}
%if 0%{?suse_version}
%global php php5
%{!?php_inidir: %global php_inidir %{_sysconfdir}/php5/conf.d/}
%{!?php_extdir: %global php_extdir %{_libdir}/php5/extensions}
%else
%global php php
%{!?php_inidir: %global php_inidir %{_sysconfdir}/php.d/}
%{!?php_extdir: %global php_extdir %{_libdir}/php/modules}
%endif
%{!?php_apiver: %global php_apiver %((echo 0; php -i 2>/dev/null | sed -n 's/^PHP API => //p') | tail -1)}
%if 0%{?rhel} > 8
%global with_python 0
%else
%global with_python 1
%endif
%global with_python3 1
%{?filter_setup:
%filter_provides_in %{python2_sitearch}/.*\.so$
%filter_provides_in %{python3_sitearch}/.*\.so$
%filter_provides_in %{php_extdir}/.*\.so$
%filter_setup
}
%if 0%{?suse_version}
Name: libkolab2
%else
Name: libkolab
%endif
Version: 3.2.0
Release: 1%{?dist}
Summary: Kolab Object Handling Library
License: LGPLv3+
URL: http://git.kolab.org/libkolab
# From 2881447555eb7965f557158c88ae2aa18e936971
Source0: libkolab-%{version}.tar.gz
BuildRequires: cmake
BuildRequires: kf5-kcalendarcore-devel
BuildRequires: kf5-kmime-devel
%if 0%{?suse_version}
BuildRequires: qt-devel
%else
BuildRequires: qt5-qtbase-devel
%endif
BuildRequires: libcurl-devel
BuildRequires: libkolabxml-devel >= 1.2
BuildRequires: make
BuildRequires: php >= 5.3
BuildRequires: php-devel >= 5.3
BuildRequires: swig >= 4.1
%if 0%{?plesk}
%if 0%{?rhel} < 9
BuildRequires: plesk-php72-devel
BuildRequires: plesk-php73-devel
%endif
BuildRequires: plesk-php74-devel
BuildRequires: plesk-php80-devel
BuildRequires: plesk-php81-devel
BuildRequires: plesk-php82-devel
%endif
BuildRequires: python3-devel
Provides: libkolab%{?_isa} = %{version}
%description
The libkolab library is an advanced library to handle Kolab objects.
%if 0%{?suse_version}
%package -n libkolab-devel
%else
%package devel
%endif
Summary: Kolab library development headers
Requires: libkolab%{?_isa} = %{version}
BuildRequires: kf5-kcalendarcore-devel
BuildRequires: kf5-kmime-devel
%if 0%{?fedora} >= 21
# Fedora 21 has qca2 and qca, qca2 has been renamed to qca
BuildRequires: qca
%endif
Requires: libkolabxml-devel >= 1.0
Requires: php-devel
Requires: pkgconfig
Requires: python3-devel
%if 0%{?suse_version}
%description -n libkolab-devel
%else
%description devel
%endif
Development headers for the Kolab object libraries.
%package -n php-kolab
Summary: PHP Bindings for libkolab
Group: System Environment/Libraries
Provides: php-bindings(libkolab) = %{version}-%{release}
Requires: libkolab%{?_isa} = %{version}
%if 0%{?rhel} > 5 || 0%{?fedora} > 15
Requires: php(zend-abi) = %{php_zend_api}
Requires: php(api) = %{php_core_api}
%else
Requires: php-api = %{php_apiver}
%endif
%if 0%{?suse_version}
Obsoletes: php-%{name} < %{version}
Provides: php-%{name} = %{version}
%endif
%description -n php-kolab
PHP Bindings for libkolab
%if 0%{?plesk}
%if 0%{?rhel} < 9
%package -n plesk-php72-kolab
Summary: libkolab bindings for Plesk's PHP 7.2
Group: System Environment/Libraries
Provides: php-bindings(libkolab) = %{version}-%{release}
Requires: libkolab%{?_isa} = %{version}
Requires: plesk-php72
%description -n plesk-php72-kolab
libkolab bindings for Plesk's PHP 7.2
%package -n plesk-php73-kolab
Summary: libkolab bindings for Plesk's PHP 7.3
Group: System Environment/Libraries
Provides: php-bindings(libkolab) = %{version}-%{release}
Requires: libkolab%{?_isa} = %{version}
Requires: plesk-php73
%description -n plesk-php73-kolab
libkolab bindings for Plesk's PHP 7.3
%endif
%package -n plesk-php74-kolab
Summary: libkolab bindings for Plesk's PHP 7.4
Group: System Environment/Libraries
Provides: php-bindings(libkolab) = %{version}-%{release}
Requires: libkolab%{?_isa} = %{version}
Requires: plesk-php74
%description -n plesk-php74-kolab
libkolab bindings for Plesk's PHP 7.4
%package -n plesk-php80-kolab
Summary: libkolab bindings for Plesk's PHP 8.0
Group: System Environment/Libraries
Provides: php-bindings(libkolab) = %{version}-%{release}
Requires: libkolab%{?_isa} = %{version}
Requires: plesk-php80
%description -n plesk-php80-kolab
libkolab bindings for Plesk's PHP 8.0
%package -n plesk-php81-kolab
Summary: libkolab bindings for Plesk's PHP 8.1
Group: System Environment/Libraries
Provides: php-bindings(libkolab) = %{version}-%{release}
Requires: libkolab%{?_isa} = %{version}
Requires: plesk-php81
%description -n plesk-php81-kolab
libkolab bindings for Plesk's PHP 8.1
%package -n plesk-php82-kolab
Summary: libkolab bindings for Plesk's PHP 8.2
Group: System Environment/Libraries
Provides: php-bindings(libkolab) = %{version}-%{release}
Requires: libkolab%{?_isa} = %{version}
Requires: plesk-php82
%description -n plesk-php82-kolab
libkolab bindings for Plesk's PHP 8.2
%endif
%package -n python-kolab
Summary: Python bindings for libkolab
Group: System Environment/Libraries
Requires: libkolab%{?_isa} = %{version}
Requires: python-kolabformat >= 1.0.0
%if 0%{?suse_version}
Obsoletes: python-%{name} < %{version}
Provides: python-%{name} = %{version}
%endif
%description -n python-kolab
Python bindings for libkolab
%package -n python3-kolab
Summary: Python bindings for libkolab
Group: System Environment/Libraries
Requires: libkolab%{?_isa} = %{version}
Requires: python3-kolabformat >= 1.0.0
%if 0%{?suse_version}
Obsoletes: python3-%{name} < %{version}
Provides: python3-%{name} = %{version}
%endif
%description -n python3-kolab
Python bindings for libkolab
%prep
%setup -q -c -n libkolab-%{version}
pushd %{name}-%{version}
#%patch1 -p1
popd
%if 0%{?plesk}
%if 0%{?rhel} < 9
cp -a libkolab-%{version} libkolab-%{version}-7.2
sed -i "s/-php/-php7/g" libkolab-%{version}-7.2/cmake/modules/SWIGUtils.cmake
cp -a libkolab-%{version} libkolab-%{version}-7.3
sed -i "s/-php/-php7/g" libkolab-%{version}-7.3/cmake/modules/SWIGUtils.cmake
%endif
cp -a libkolab-%{version} libkolab-%{version}-7.4
sed -i "s/-php/-php7/g" libkolab-%{version}-7.4/cmake/modules/SWIGUtils.cmake
cp -a libkolab-%{version} libkolab-%{version}-8.0
sed -i "s/-php/-php7/g" libkolab-%{version}-8.0/cmake/modules/SWIGUtils.cmake
cp -a libkolab-%{version} libkolab-%{version}-8.1
sed -i "s/-php/-php7/g" libkolab-%{version}-8.1/cmake/modules/SWIGUtils.cmake
cp -a libkolab-%{version} libkolab-%{version}-8.2
sed -i "s/-php/-php7/g" libkolab-%{version}-8.2/cmake/modules/SWIGUtils.cmake
%endif
%if 0%{?with_php7}
pushd %{name}-%{version}
sed -i "s/-php/-php7/g" cmake/modules/SWIGUtils.cmake
popd
%endif
%if 0%{?with_python}
cp -a libkolab-%{version} libkolab-%{version}-python2
%endif
%if 0%{?with_python3}
cp -a libkolab-%{version} libkolab-%{version}-python3
%endif
%build
pushd %{name}-%{version}
rm -rf build
mkdir -p build
pushd build
%if 0%{?suse_version}
CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ;
CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ;
FFLAGS="${FFLAGS:-%optflags%{?_fmoddir: -I%_fmoddir}}" ; export FFLAGS ;
FCFLAGS="${FCFLAGS:-%optflags%{?_fmoddir: -I%_fmoddir}}" ; export FCFLAGS ;
%{?__global_ldflags:LDFLAGS="${LDFLAGS:-%__global_ldflags}" ; export LDFLAGS ;}
cmake \
-DCMAKE_C_FLAGS_RELEASE:STRING="-DNDEBUG" \
-DCMAKE_CXX_FLAGS_RELEASE:STRING="-DNDEBUG" \
-DCMAKE_Fortran_FLAGS_RELEASE:STRING="-DNDEBUG" \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \
-DINCLUDE_INSTALL_DIR:PATH=%{_includedir} \
-DLIB_INSTALL_DIR:PATH=%{_libdir} \
-DSYSCONF_INSTALL_DIR:PATH=%{_sysconfdir} \
-DSHARE_INSTALL_PREFIX:PATH=%{_datadir} \
%if "%{?_lib}" == "lib64"
%{?_cmake_lib_suffix64} \
%endif
-DBUILD_SHARED_LIBS:BOOL=ON \
%else
%cmake \
%endif
-DCMAKE_C_FLAGS:STRING="-DNDEBUG -DQT_NO_DEBUG" \
-DBoost_NO_BOOST_CMAKE=TRUE \
-Wno-fatal-errors -Wno-errors \
-DINCLUDE_INSTALL_DIR=%{_includedir} \
-DPHP_BINDINGS=ON \
-DPHP_INSTALL_DIR=%{php_extdir} \
..
make
popd
popd
%if 0%{with_python}
pushd %{name}-%{version}-python2
rm -rf build
mkdir -p build
pushd build
%cmake \
-DCMAKE_C_FLAGS:STRING="-DNDEBUG -DQT_NO_DEBUG" \
-DBoost_NO_BOOST_CMAKE=TRUE \
-Wno-fatal-errors -Wno-errors \
-DINCLUDE_INSTALL_DIR=%{_includedir} \
%if 0%{?rhel} >= 8 || 0%{?fedora}
-DQT5_BUILD=ON \
%endif
-DINCLUDE_INSTALL_DIR=%{_includedir} \
-DPYTHON_BINDINGS=ON \
-DPYTHON_INSTALL_DIR=%{python2_sitearch} \
..
make
popd
popd
%endif
%if 0%{with_python3}
pushd %{name}-%{version}-python3
rm -rf build
mkdir -p build
pushd build
%cmake \
-DCMAKE_C_FLAGS:STRING="-DNDEBUG -DQT_NO_DEBUG" \
-DBoost_NO_BOOST_CMAKE=TRUE \
-Wno-fatal-errors -Wno-errors \
-DINCLUDE_INSTALL_DIR=%{_includedir} \
%if 0%{?rhel} >= 8 || 0%{?fedora}
-DQT5_BUILD=ON \
%endif
-DINCLUDE_INSTALL_DIR=%{_includedir} \
-DPYTHON_BINDINGS=ON \
-DPYTHON_INSTALL_DIR=%{python3_sitearch} \
..
make
popd
popd
%endif
%if 0%{?plesk}
%if 0%{?rhel} < 9
for version in 7.2 7.3 7.4 8.0 8.1 8.2; do
%else
for version in 7.4 8.0 8.1 8.2; do
%endif
pushd %{name}-%{version}-${version}
rm -rf build
mkdir -p build
pushd build
%cmake \
-DCMAKE_C_FLAGS:STRING="-DNDEBUG -DQT_NO_DEBUG" \
-DBoost_NO_BOOST_CMAKE=TRUE \
-Wno-fatal-errors -Wno-errors \
-DINCLUDE_INSTALL_DIR=%{_includedir} \
%if 0%{?rhel} >= 8 || 0%{?fedora}
-DQT5_BUILD=ON \
%endif
-DINCLUDE_INSTALL_DIR=%{_includedir} \
-DPHP_BINDINGS=ON \
-DPHP_INCLUDE_DIR=/opt/plesk/php/${version}/include/php/ \
-DPHP_EXECUTABLE=/opt/plesk/php/${version}/bin/php \
-DPHP_INSTALL_DIR=/opt/plesk/php/${version}/lib64/php/modules/ \
..
make
popd
popd
done
%endif
%install
rm -rf %{buildroot}
pushd %{name}-%{version}/build
make install DESTDIR=%{buildroot}
popd
mkdir -p %{buildroot}/%{php_inidir}
cat >%{buildroot}/%{php_inidir}/kolab.ini <<EOF
; Kolab libraries
extension=kolabobject.so
extension=kolabshared.so
extension=kolabcalendaring.so
EOF
# Workaround for #2050
cat >%{buildroot}/%{php_inidir}/kolabdummy.ini <<EOF
; Kolab libraries
extension=dummy.so
EOF
%if 0%{?plesk}
%if 0%{?rhel} < 9
for version in 7.2 7.3 7.4 8.0 8.1 8.2; do
%else
for version in 7.4 8.0 8.1 8.2; do
%endif
pushd %{name}-%{version}-${version}
pushd build
make install DESTDIR=%{buildroot} INSTALL='install -p'
popd
mkdir -p \
%{buildroot}/opt/plesk/php/${version}/etc/php.d/ \
%{buildroot}/opt/plesk/php/${version}/etc/php-fpm.d/
echo "extension=kolabobject.so" > %{buildroot}/opt/plesk/php/${version}/etc/php.d/kolab.ini
echo "extension=kolabshared.so" >> %{buildroot}/opt/plesk/php/${version}/etc/php.d/kolab.ini
echo "extension=kolabcalendaring.so" >> %{buildroot}/opt/plesk/php/${version}/etc/php.d/kolab.ini
echo "extension=dummy.so" >> %{buildroot}/opt/plesk/php/${version}/etc/php.d/kolabdummy.ini
cp %{buildroot}/opt/plesk/php/${version}/etc/php.d/kolab.ini \
%{buildroot}/opt/plesk/php/${version}/etc/php-fpm.d/
cp %{buildroot}/opt/plesk/php/${version}/etc/php.d/kolabdummy.ini \
%{buildroot}/opt/plesk/php/${version}/etc/php-fpm.d/
popd
done
%endif
%if 0%{?with_python}
pushd %{name}-%{version}-python2
pushd build
make install DESTDIR=%{buildroot} INSTALL='install -p'
popd
touch %{buildroot}/%{python2_sitearch}/kolab/__init__.py
popd
%endif
%if 0%{?with_python3}
pushd %{name}-%{version}-python3
pushd build
make install DESTDIR=%{buildroot} INSTALL='install -p'
popd
touch %{buildroot}/%{python3_sitearch}/kolab/__init__.py
popd
%endif
%check
pushd %{name}-%{version}/build/tests
./benchmarktest || :
./calendaringtest || :
./formattest || :
./freebusytest || :
./icalendartest || :
./kcalconversiontest || :
./upgradetest || :
popd
%clean
rm -rf %{buildroot}
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%{_libdir}/libkolab.so.?
%{_libdir}/libkolab.so.?.?
%if 0%{?suse_version}
%files -n libkolab-devel
%else
%files devel
%endif
%{_libdir}/libkolab.so
%{_libdir}/cmake/Libkolab
%{_includedir}/kolab
%files -n php-kolab
%config(noreplace) %{php_inidir}/kolab.ini
%config(noreplace) %{php_inidir}/kolabdummy.ini
%{php_extdir}/kolabcalendaring.so
%{php_extdir}/kolabobject.so
%{php_extdir}/kolabshared.so
%{php_extdir}/dummy.so
%if 0%{?plesk}
%if 0%{?rhel} < 9
%files -n plesk-php72-kolab
%defattr(-,root,root,-)
/opt/plesk/php/7.2/lib64/php/modules/*.so
/opt/plesk/php/7.2/etc/php.d/*.ini
/opt/plesk/php/7.2/etc/php-fpm.d/*.ini
%files -n plesk-php73-kolab
%defattr(-,root,root,-)
/opt/plesk/php/7.3/lib64/php/modules/*.so
/opt/plesk/php/7.3/etc/php.d/*.ini
/opt/plesk/php/7.3/etc/php-fpm.d/*.ini
%endif
%files -n plesk-php74-kolab
%defattr(-,root,root,-)
/opt/plesk/php/7.4/lib64/php/modules/*.so
/opt/plesk/php/7.4/etc/php.d/*.ini
/opt/plesk/php/7.4/etc/php-fpm.d/*.ini
%files -n plesk-php80-kolab
%defattr(-,root,root,-)
/opt/plesk/php/8.0/lib64/php/modules/*.so
/opt/plesk/php/8.0/etc/php.d/*.ini
/opt/plesk/php/8.0/etc/php-fpm.d/*.ini
%files -n plesk-php81-kolab
%defattr(-,root,root,-)
/opt/plesk/php/8.1/lib64/php/modules/*.so
/opt/plesk/php/8.1/etc/php.d/*.ini
/opt/plesk/php/8.1/etc/php-fpm.d/*.ini
%files -n plesk-php82-kolab
%defattr(-,root,root,-)
/opt/plesk/php/8.2/lib64/php/modules/*.so
/opt/plesk/php/8.2/etc/php.d/*.ini
/opt/plesk/php/8.2/etc/php-fpm.d/*.ini
%endif
%if 0%{?with_python} > 0
%files -n python-kolab
%dir %{python2_sitearch}/kolab/
%{python2_sitearch}/kolab/__init__.py*
%{python2_sitearch}/kolab/_calendaring.so
%{python2_sitearch}/kolab/calendaring.py*
%{python2_sitearch}/kolab/_kolabobject.so*
%{python2_sitearch}/kolab/kolabobject.py*
%{python2_sitearch}/kolab/_shared.so*
%{python2_sitearch}/kolab/shared.py*
%endif
%if 0%{?with_python3}
%files -n python3-kolab
%dir %{python3_sitearch}/kolab/
%{python3_sitearch}/kolab/__init__.py*
%{python3_sitearch}/kolab/_calendaring.so
%{python3_sitearch}/kolab/calendaring.py*
%{python3_sitearch}/kolab/_kolabobject.so*
%{python3_sitearch}/kolab/kolabobject.py*
%{python3_sitearch}/kolab/_shared.so*
%{python3_sitearch}/kolab/shared.py*
%{python3_sitearch}/kolab/__pycache__/
%endif
%changelog
* Fri Aug 12 2022 Christian Mollekopf <mollekopf@apheleia-it.ch> - 3.0.2-1
- New upstream release
* Tue Jan 04 2022 Christian Mollekopf <mollekopf@kolabsys.com> - 3.0.1-1
- New upstream release
* Mon Feb 09 2015 Timotheus Pokorra <tp@tbits.net>
- master is going towards 0.7
* Mon Jan 12 2015 Christoph Wickert <wickert@kolabsys.com> - 0.6-0.1.dev20150112.gitf0f953aa
- Add dummy plugin to workaround httpd reload issue (#2050)
* Mon Oct 14 2013 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 0.5.0-1
- New upstream release
* Thu May 23 2013 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 0.5-0.2
- GIT snapshot
* Thu Apr 11 2013 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 0.4.2-1
- New upstream version
* Wed Jan 9 2013 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 0.4.1-1
- Update version to 0.4.1
* Tue Nov 20 2012 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 0.4-0.1
- New upstream release
- Correct php.d/kolab.ini
* Wed Aug 15 2012 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 0.3.1-3
- Fix build (patch1)
- Merge back with Fedora,
- Rebuilt for boost (Christoph Wickert, 0.3-10)
* Wed Aug 8 2012 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 0.3.1-1
- New upstream version 0.3.1
- Correct locations and naming of PHP bindings modules
* Thu Aug 2 2012 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 0.3-9
- New snapshot
- Ship PHP and Python bindings
- Conditionally build with libcalendaring
- Execute tests
- Correct installation directory for headers
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Tue Jun 26 2012 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 0.3-5
- Fix some review issues (#833853)
- Rebuild after some packaging fixes (4)
* Sat Jun 9 2012 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 0.3-3
- Check in latest snapshot
* Sat May 12 2012 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 0.3-1
- Snapshot version after buildsystem changes
* Wed May 2 2012 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 0.2.0-1
- First package