#
-# todo:
-# - system libical
-#
# Conditional build:
+%bcond_without apidocs # do not build and package API docs
%bcond_without kerberos5 # build without kerberos5 support
%bcond_without ldap # build without ldap support
+%bcond_without static_libs # do not build static libs
+%bcond_without vala # do not build Vala API
+#
+%define basever 3.4
+%define apiver 1.2
+%define apiver2 3.0
#
-%define mver 1.2
Summary: Evolution data server
-Summary(pl): Serwer danych Evolution
+Summary(pl.UTF-8): Serwer danych Evolution
Name: evolution-data-server
-Version: 1.2.1
-Release: 3
-License: GPL
-Group: Libraries
-Source0: http://ftp.gnome.org/pub/gnome/sources/evolution-data-server/1.2/%{name}-%{version}.tar.bz2
-# Source0-md5: c86cc41c1563f552015aebb563018936
-Patch0: %{name}-system_db.patch
-Patch1: %{name}-GG-IM.patch
-Patch2: %{name}-workaround-cal-backend-leak.patch
-Patch3: %{name}-bonobo.patch
-URL: http://www.ximian.com/products/ximian_evolution/
-BuildRequires: ORBit2-devel >= 1:2.12.1
-BuildRequires: autoconf >= 2.52
-BuildRequires: automake
-BuildRequires: db-devel
-BuildRequires: gnome-common >= 2.8.0
-BuildRequires: howl-devel >= 0.9.10
-BuildRequires: intltool
-BuildRequires: libglade2-devel >= 1:2.5.1
-BuildRequires: libgnomeui-devel >= 2.10.0-2
-BuildRequires: libsoup-devel >= 2.2.3
+Version: 3.4.4
+Release: 2
+License: LGPL v2+
+Group: X11/Libraries
+Source0: http://ftp.gnome.org/pub/GNOME/sources/evolution-data-server/3.4/%{name}-%{version}.tar.xz
+# Source0-md5: 4d822c44f00d1f6327433cebdf2443f3
+Patch0: %{name}-am-Werror.patch
+URL: http://www.gnome.org/projects/evolution/
+BuildRequires: GConf2-devel >= 2.26.0
+BuildRequires: autoconf >= 2.62
+BuildRequires: automake >= 1:1.11
+BuildRequires: bison
+BuildRequires: dbus-glib-devel
+BuildRequires: docbook-dtd412-xml
+BuildRequires: gettext-devel >= 0.18.1
+BuildRequires: glib2-devel >= 1:2.30.0
+BuildRequires: gnome-common >= 2.20.0
+BuildRequires: gnome-online-accounts-devel >= 3.2.0
+BuildRequires: gobject-introspection-devel >= 0.10.0
+BuildRequires: gperf
+BuildRequires: gtk+3-devel >= 3.2.0
+%{?with_apidocs:BuildRequires: gtk-doc >= 1.14}
+%{?with_kerberos5:BuildRequires: heimdal-devel}
+BuildRequires: intltool >= 0.40.0
+BuildRequires: libgdata-devel >= 0.10.0
+BuildRequires: libgnome-keyring-devel >= 2.26.0
+BuildRequires: libgweather-devel >= 3.0.0
+BuildRequires: libical-devel >= 0.43
+BuildRequires: liboauth-devel >= 0.9.4
+BuildRequires: libsoup-devel >= 2.32.0
BuildRequires: libstdc++-devel
-BuildRequires: libtool
+BuildRequires: libtool >= 2:2.2
+BuildRequires: libxml2-devel >= 1:2.6.31
BuildRequires: nspr-devel
-Buildrequires: nss-devel
+BuildRequires: nss-devel
+%{?with_ldap:BuildRequires: openldap-evolution-devel >= 2.4.6}
+BuildRequires: openssl-devel
BuildRequires: pkgconfig
-%{?with_kerberos5:BuildRequires: heimdal-devel}
-%{?with_ldap:BuildRequires: openldap-devel >= 2.0.0}
-Requires(post,postun): /sbin/ldconfig
-Requires(post,postun): scrollkeeper-update
-Requires: libsoup >= 2.2.3
+BuildRequires: rpmbuild(macros) >= 1.304
+BuildRequires: sed >= 4.0
+BuildRequires: sqlite3-devel >= 3.5
+BuildRequires: tar >= 1:1.22
+%{?with_vala:BuildRequires: vala >= 2:0.14.0}
+BuildRequires: xz
+BuildRequires: zlib-devel
+Requires(post,postun): glib2 >= 1:2.26.0
+Requires: %{name}-libs = %{version}-%{release}
+# sr@Latn vs. sr@latin
+Conflicts: glibc-misc < 6:2.7
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+%define schemadir /usr/share/openldap/schema
+
%description
The Evolution data server for the calendar and addressbook.
-%description -l pl
-Serwer danych Evolution dla kalendarza i ksi±¿ki adresowej.
+%description -l pl.UTF-8
+Serwer danych Evolution dla kalendarza i książki adresowej.
+
+%package -n openldap-schema-evolutionperson
+Summary: evolutionperson LDAP schema
+Summary(pl.UTF-8): Schemat LDAP evolutionperson
+Group: Networking/Daemons
+Requires(post,postun): sed >= 4.0
+Requires: openldap-servers
+
+%description -n openldap-schema-evolutionperson
+This package contains evolutionperson.schema for openldap server.
+
+%description -n openldap-schema-evolutionperson -l pl.UTF-8
+Ten pakiet zawiera evolutionperson.schema dla serwera openldap.
+
+%package libs
+Summary: Evolution Data Server library
+Summary(pl.UTF-8): Biblioteka Evolution Data Server
+Group: X11/Libraries
+Requires: libsoup >= 2.32.0
+
+%description libs
+This package contains Evolution Data Server library.
+
+%description libs -l pl.UTF-8
+Ten pakiet zawiera bibliotekę Evolution Data Server.
%package devel
Summary: Evolution data server development files
-Summary(pl): Pliki programistyczne serwera danych evolution
-Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}
-# for all but libegroupwise
-Requires: GConf2-devel >= 2.10.0
-Requires: ORBit2-devel >= 1:2.12.1
-Requires: glib2-devel >= 1:2.6.2
-Requires: libbonobo-devel >= 2.8.1
-Requires: libgnome-devel >= 2.10.0-2
-Requires: libxml2-devel
-# for libegroupwise
-Requires: libsoup-devel >= 2.2.3
+Summary(pl.UTF-8): Pliki programistyczne serwera danych evolution
+Group: X11/Development/Libraries
+Requires: %{name}-libs = %{version}-%{release}
+Requires: GConf2-devel >= 2.26.0
+Requires: glib2-devel >= 1:2.30.0
+Requires: gtk+3-devel >= 3.2.0
+%{?with_kerberos5:Requires: heimdal-devel}
+Requires: libgdata-devel >= 0.10.0
+Requires: libical-devel >= 0.43
+Requires: libsoup-devel >= 2.32.0
+Requires: libxml2-devel >= 1:2.6.31
+Requires: nspr-devel
+Requires: nss-devel
+Requires: sqlite3-devel
%description devel
This package contains the files necessary to develop applications
using Evolution's data server libraries.
-%description devel -l pl
+%description devel -l pl.UTF-8
Ten pakiet zawiera pliki potrzebne do tworzenia aplikacji
-korzystaj±cych z bibliotek serwera danych Evolution.
+korzystających z bibliotek serwera danych Evolution.
%package static
Summary: Evolution data server static libraries
-Summary(pl): Statyczne biblioteki serwera danych Evolution
-Group: Development/Libraries
+Summary(pl.UTF-8): Statyczne biblioteki serwera danych Evolution
+Group: X11/Development/Libraries
Requires: %{name}-devel = %{version}-%{release}
%description static
Evolution data server static libraries.
-%description static -l pl
+%description static -l pl.UTF-8
Statyczne biblioteki serwera danych Evolution.
+%package apidocs
+Summary: Evolution data server API documentation
+Summary(pl.UTF-8): Dokumentacja API serwera danych Evolution
+Group: Documentation
+Requires: gtk-doc-common
+
+%description apidocs
+Evolution data server API documentation.
+
+%description apidocs -l pl.UTF-8
+Dokumentacja API serwera danych Evolution.
+
+%package -n vala-evolution-data-server
+Summary: Evolution data server API for Vala language
+Summary(pl.UTF-8): API serwera danych Evolution dla języka Vala
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+
+%description -n vala-evolution-data-server
+Evolution data server API for Vala language.
+
+%description -n vala-evolution-data-server -l pl.UTF-8
+API serwera danych Evolution dla języka Vala.
+
%prep
-%setup -q
+%setup -q
%patch0 -p1
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
-rm -rf libdb
+# kill -L$withval/lib
+%{__sed} -i -e 's/DB_LIBS="-L[^ "]* /DB_LIBS="/;s/ICONV_LIBS="[^ "]*/ICONV_LIBS="/' configure.ac
%build
-glib-gettextize --copy --force
-intltoolize --copy --force
+%{__gtkdocize}
+%{__gettextize}
+%{__intltoolize}
%{__libtoolize}
-%{__aclocal}
+%{__aclocal} -I m4
%{__autoheader}
%{__autoconf}
%{__automake}
-cd calendar/libical
-%{__libtoolize}
-%{__aclocal}
-%{__autoheader}
-%{__autoconf}
-%{__automake}
-cd ../..
+# Set LIBS so that configure will be able to link with static LDAP libraries,
+# which depend on Cyrus SASL and OpenSSL.
+if pkg-config openssl ; then
+ LIBS="-lsasl2 `pkg-config --libs openssl`"
+else
+ LIBS="-lsasl2 -lssl -lcrypto"
+fi
+export LIBS
%configure \
- %{?with_kerberos5:--with-krb5=%{_prefix}} \
+ %{?with_kerberos5:--with-krb5=%{_prefix} --with-krb5-libs=%{_libdir}} \
%{!?with_kerberos5:--with-krb5=no} \
- %{?with_ldap:--with-openldap=yes} \
+ %{?with_ldap:--with-openldap=%{_libdir}/evolution-openldap} \
+ %{?with_ldap:--with-static-ldap=yes} \
%{!?with_ldap:--with-openldap=no} \
- --enable-gtk-doc \
- --enable-static \
- --with-nspr-includes=%{_includedir}/nspr \
- --with-nspr-libs=%{_libdir} \
- --with-nss-includes=%{_includedir}/nss \
- --with-nss-libs=%{_libdir}
-%{__make} \
- HTML_DIR=%{_gtkdocdir} \
- GTKHTML_DATADIR=%{_datadir}/idl
+ --enable-smime \
+ --enable-ipv6 \
+ --enable-nntp \
+ %{__enable_disable apidocs gtk-doc} \
+ %{__enable_disable static_libs static} \
+ %{__enable_disable vala vala-bindings} \
+ --with-libdb=%{_libdir} \
+ --with-html-dir=%{_gtkdocdir} \
+ --disable-silent-rules
+
+%{__make}
%install
rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT%{_libdir}/%{name}-%{basever}
+install -d $RPM_BUILD_ROOT%{schemadir}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT \
- GTKHTML_DATADIR=%{_datadir}/idl \
- HTML_DIR=%{_gtkdocdir} \
- pkgconfigdir=%{_pkgconfigdir}
+ HTML_DIR=%{_gtkdocdir}
-rm $RPM_BUILD_ROOT%{_libdir}/%{name}-%{mver}/{camel-providers,extensions}/*.{la,a}
+install addressbook/backends/ldap/evolutionperson.schema $RPM_BUILD_ROOT%{schemadir}
-rm -r $RPM_BUILD_ROOT%{_datadir}/locale/no
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/{camel-providers,calendar-backends,addressbook-backends}/*.{la,a}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/*.la
%find_lang %{name} --all-name
rm -rf $RPM_BUILD_ROOT
%post
-/sbin/ldconfig
-/usr/bin/scrollkeeper-update -q
+%glib_compile_schemas
%postun
-if [ $1 = 0 ]; then
- /sbin/ldconfig
- /usr/bin/scrollkeeper-update -q
+%glib_compile_schemas
+
+%post libs -p /sbin/ldconfig
+%postun libs -p /sbin/ldconfig
+
+%post -n openldap-schema-evolutionperson
+%openldap_schema_register %{schemadir}/evolutionperson.schema
+%service -q ldap restart
+
+%postun -n openldap-schema-evolutionperson
+if [ "$1" = "0" ]; then
+ %openldap_schema_unregister %{schemadir}/evolutionperson.schema
+ %service -q ldap restart
fi
%files -f %{name}.lang
%defattr(644,root,root,755)
%doc AUTHORS ChangeLog NEWS* README
-%attr(755,root,root) %{_libdir}/camel-index-control-%{mver}
-%attr(755,root,root) %{_libdir}/camel-lock-helper-%{mver}
-%attr(755,root,root) %{_libdir}/*.so.*.*
-%dir %{_libdir}/%{name}-%{mver}
-%attr(755,root,root) %{_libdir}/%{name}-%{mver}/%{name}
-%dir %{_libdir}/%{name}-%{mver}/camel-providers
-%attr(755,root,root) %{_libdir}/%{name}-%{mver}/camel-providers/*.so
-%{_libdir}/%{name}-%{mver}/camel-providers/*.urls
-%dir %{_libdir}/%{name}-%{mver}/extensions
-%attr(755,root,root) %{_libdir}/%{name}-%{mver}/extensions/*.so
-%{_libdir}/bonobo/servers/*
-%{_datadir}/idl/*
-%dir %{_datadir}/%{name}-%{mver}
-%{_datadir}/%{name}-%{mver}/glade
-%{_datadir}/%{name}-%{mver}/weather
-%{_datadir}/%{name}-%{mver}/zoneinfo
-%{_datadir}/%{name}-%{mver}/*.schema
-%{_pixmapsdir}/%{name}-%{mver}
+%attr(755,root,root) %{_libdir}/camel-index-control-%{apiver}
+%attr(755,root,root) %{_libdir}/camel-lock-helper-%{apiver}
+%attr(755,root,root) %{_libdir}/evolution-addressbook-factory
+%attr(755,root,root) %{_libdir}/evolution-calendar-factory
+%dir %{_libdir}/%{name}
+%dir %{_libdir}/%{name}/camel-providers
+%attr(755,root,root) %{_libdir}/%{name}/camel-providers/*.so
+%{_libdir}/%{name}/camel-providers/*.urls
+%dir %{_libdir}/%{name}/addressbook-backends
+%attr(755,root,root) %{_libdir}/%{name}/addressbook-backends/*.so
+%dir %{_libdir}/%{name}/calendar-backends
+%attr(755,root,root) %{_libdir}/%{name}/calendar-backends/*.so
+
+%dir %{_libdir}/%{name}-%{basever}
+
+%if %{with ldap}
+%{_datadir}/%{name}-%{basever}/*.schema
+%endif
+
+%{_datadir}/dbus-1/services/org.gnome.evolution.dataserver.AddressBook.service
+%{_datadir}/dbus-1/services/org.gnome.evolution.dataserver.Calendar.service
+
+%dir %{_datadir}/%{name}-%{basever}
+%{_pixmapsdir}/%{name}
+
+%{_datadir}/GConf/gsettings/libedataserver.convert
+%{_datadir}/glib-2.0/schemas/org.gnome.evolution.eds-shell.gschema.xml
+%{_datadir}/glib-2.0/schemas/org.gnome.evolution.shell.network-config.gschema.xml
+
+%files -n openldap-schema-evolutionperson
+%defattr(644,root,root,755)
+%{schemadir}/evolutionperson.schema
+
+%files libs
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libcamel-%{apiver}.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libcamel-%{apiver}.so.33
+%attr(755,root,root) %{_libdir}/libebackend-%{apiver}.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libebackend-%{apiver}.so.2
+%attr(755,root,root) %{_libdir}/libebook-%{apiver}.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libebook-%{apiver}.so.13
+%attr(755,root,root) %{_libdir}/libecal-%{apiver}.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libecal-%{apiver}.so.11
+%attr(755,root,root) %{_libdir}/libedata-book-%{apiver}.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libedata-book-%{apiver}.so.13
+%attr(755,root,root) %{_libdir}/libedata-cal-%{apiver}.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libedata-cal-%{apiver}.so.15
+%attr(755,root,root) %{_libdir}/libedataserver-%{apiver}.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libedataserver-%{apiver}.so.16
+%attr(755,root,root) %{_libdir}/libedataserverui-%{apiver2}.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libedataserverui-%{apiver2}.so.1
+%{_libdir}/girepository-1.0/EBook-%{apiver}.typelib
+%{_libdir}/girepository-1.0/ECalendar-%{apiver}.typelib
+%{_libdir}/girepository-1.0/EDataServer-%{apiver}.typelib
%files devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/*.so
-%{_libdir}/*.la
-%{_includedir}/*
-%{_pkgconfigdir}/*
-%{_gtkdocdir}/*
+%attr(755,root,root) %{_libdir}/libcamel-%{apiver}.so
+%attr(755,root,root) %{_libdir}/libebackend-%{apiver}.so
+%attr(755,root,root) %{_libdir}/libebook-%{apiver}.so
+%attr(755,root,root) %{_libdir}/libecal-%{apiver}.so
+%attr(755,root,root) %{_libdir}/libedata-book-%{apiver}.so
+%attr(755,root,root) %{_libdir}/libedata-cal-%{apiver}.so
+%attr(755,root,root) %{_libdir}/libedataserver-%{apiver}.so
+%attr(755,root,root) %{_libdir}/libedataserverui-%{apiver2}.so
+%{_includedir}/evolution-data-server-%{basever}
+%{_pkgconfigdir}/camel-%{apiver}.pc
+%{_pkgconfigdir}/evolution-data-server-%{apiver}.pc
+%{_pkgconfigdir}/libebackend-%{apiver}.pc
+%{_pkgconfigdir}/libebook-%{apiver}.pc
+%{_pkgconfigdir}/libecal-%{apiver}.pc
+%{_pkgconfigdir}/libedata-book-%{apiver}.pc
+%{_pkgconfigdir}/libedata-cal-%{apiver}.pc
+%{_pkgconfigdir}/libedataserver-%{apiver}.pc
+%{_pkgconfigdir}/libedataserverui-%{apiver2}.pc
+%{_datadir}/gir-1.0/EBook-%{apiver}.gir
+%{_datadir}/gir-1.0/ECalendar-%{apiver}.gir
+%{_datadir}/gir-1.0/EDataServer-%{apiver}.gir
+%if %{with static_libs}
%files static
%defattr(644,root,root,755)
-%{_libdir}/*.a
+%{_libdir}/libcamel-%{apiver}.a
+%{_libdir}/libebackend-%{apiver}.a
+%{_libdir}/libebook-%{apiver}.a
+%{_libdir}/libecal-%{apiver}.a
+%{_libdir}/libedata-book-%{apiver}.a
+%{_libdir}/libedata-cal-%{apiver}.a
+%{_libdir}/libedataserver-%{apiver}.a
+%{_libdir}/libedataserverui-%{apiver2}.a
+%endif
+
+%if %{with apidocs}
+%files apidocs
+%defattr(644,root,root,755)
+%{_gtkdocdir}/camel
+%{_gtkdocdir}/libebackend
+%{_gtkdocdir}/libebook
+%{_gtkdocdir}/libecal
+%{_gtkdocdir}/libedata-book
+%{_gtkdocdir}/libedata-cal
+%{_gtkdocdir}/libedataserver
+%{_gtkdocdir}/libedataserverui
+%endif
+
+%if %{with vala}
+%files -n vala-evolution-data-server
+%defattr(644,root,root,755)
+%{_datadir}/vala/vapi/libebook-%{apiver}.deps
+%{_datadir}/vala/vapi/libebook-%{apiver}.vapi
+%{_datadir}/vala/vapi/libecalendar-%{apiver}.deps
+%{_datadir}/vala/vapi/libecalendar-%{apiver}.vapi
+%{_datadir}/vala/vapi/libedataserver-%{apiver}.vapi
+%endif