774828ac6f
- Install AppArmor profiles (as -apparmor subpackage) - add akonadi-apparmor-opensuse.diff to adjust the profiles to openSUSE paths, and to add 'abi' rules to the profiles Thanks for the quick review in SR 897569. This SR should fix the issues you noticed. Another diff to SR 897569 is that I added 'abi' rules to the profiles to ensure that all AppArmor features get enforced. Original description (from SR 897569): Note: The akonadi-server-apparmor package will _not_ be installed automatically, so users will have to explicitely install it if they want to use the AppArmor profiles for akonadi-server. I tested the profiles with my setup (which is using the system-wide mariadb with akonadi), other setups might need some adjustments. My proposal is: As soon as this change reaches Tumbleweed, let's send out a call for testing on the factory mailinglist (I can do that, unless you want to do it yourself). I'll update the profiles as needed (as bugreports come in) so that they work with mariadb and postgresql, with the goal to have profiles that "just work". To get started, I added a patch with some profile additions (openSUSE and Debian paths somewhat differ). When the dust/bugreports settles, we should of course get the patch upstream. (I can probably do that, but might need some help - it's been a long time since I last submitted a patch to one of the KDE repos.) If you want to test yourself, note that you'll need to restart akonadi to actually enable the AppArmor confinement. OBS-URL: https://build.opensuse.org/request/show/897736 OBS-URL: https://build.opensuse.org/package/show/KDE:Applications/akonadi-server?expand=0&rev=279
292 lines
9.4 KiB
RPMSpec
292 lines
9.4 KiB
RPMSpec
#
|
|
# spec file for package akonadi-server
|
|
#
|
|
# Copyright (c) 2021 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%define rname akonadi
|
|
%define kf5_version 5.79.0
|
|
# Latest stable Applications (e.g. 17.08 in KA, but 17.11.80 in KUA)
|
|
%{!?_kapp_version: %define _kapp_version %(echo %{version}| awk -F. '{print $1"."$2}')}
|
|
%bcond_without lang
|
|
Name: akonadi-server
|
|
Version: 21.04.1
|
|
Release: 0
|
|
Summary: PIM Storage Service
|
|
License: LGPL-2.1-or-later
|
|
Group: System/GUI/KDE
|
|
URL: https://akonadi-project.org
|
|
Source: https://download.kde.org/stable/release-service/%{version}/src/%{rname}-%{version}.tar.xz
|
|
%if %{with lang}
|
|
Source1: https://download.kde.org/stable/release-service/%{version}/src/%{rname}-%{version}.tar.xz.sig
|
|
Source2: applications.keyring
|
|
%endif
|
|
Source99: akonadi-server-rpmlintrc
|
|
# PATCH-FIX-OPENSUSE akonadi-apparmor-opensuse.diff - adjust AppArmor profiles to work on openSUSE
|
|
Patch: akonadi-apparmor-opensuse.diff
|
|
BuildRequires: apparmor-abstractions
|
|
BuildRequires: apparmor-rpm-macros
|
|
BuildRequires: extra-cmake-modules >= %{kf5_version}
|
|
BuildRequires: kf5-filesystem
|
|
BuildRequires: libQt5Sql-private-headers-devel
|
|
BuildRequires: libboost_graph-devel
|
|
BuildRequires: libboost_headers-devel
|
|
BuildRequires: libxml2-tools
|
|
BuildRequires: libxslt-tools
|
|
BuildRequires: mariadb
|
|
BuildRequires: postgresql-devel
|
|
BuildRequires: shared-mime-info
|
|
BuildRequires: sqlite3-devel
|
|
BuildRequires: cmake(KAccounts)
|
|
BuildRequires: cmake(KF5Completion)
|
|
BuildRequires: cmake(KF5Config)
|
|
BuildRequires: cmake(KF5ConfigWidgets)
|
|
BuildRequires: cmake(KF5CoreAddons)
|
|
BuildRequires: cmake(KF5Crash)
|
|
BuildRequires: cmake(KF5DBusAddons)
|
|
BuildRequires: cmake(KF5I18n)
|
|
BuildRequires: cmake(KF5IconThemes)
|
|
BuildRequires: cmake(KF5ItemModels)
|
|
BuildRequires: cmake(KF5ItemViews)
|
|
BuildRequires: cmake(KF5KIO)
|
|
BuildRequires: cmake(KF5WidgetsAddons)
|
|
BuildRequires: cmake(KF5WindowSystem)
|
|
BuildRequires: cmake(KF5XmlGui)
|
|
BuildRequires: cmake(Qt5Core)
|
|
BuildRequires: cmake(Qt5DBus)
|
|
BuildRequires: cmake(Qt5Designer)
|
|
BuildRequires: cmake(Qt5Network)
|
|
BuildRequires: cmake(Qt5Sql)
|
|
BuildRequires: cmake(Qt5Test)
|
|
BuildRequires: cmake(Qt5Widgets)
|
|
BuildRequires: cmake(Qt5Xml)
|
|
Requires: libqt5-sql-mysql
|
|
Requires: mysql
|
|
# FIXME: Check if it's worth it
|
|
Recommends: kaccounts-integration
|
|
Recommends: kaccounts-providers
|
|
Suggests: mariadb
|
|
Obsoletes: akonadi5 < %{version}
|
|
Provides: akonadi5 = %{version}
|
|
# Needed for users of unstable repositories
|
|
Obsoletes: akonadi < %{version}
|
|
Obsoletes: akonadi-runtime < %{version}
|
|
|
|
%description
|
|
This package contains the data files of Akonadi, the KDE PIM storage
|
|
service.
|
|
|
|
%package -n libKF5AkonadiCore5
|
|
Summary: Core Akonadi Server library
|
|
Group: System/Libraries
|
|
Recommends: %{name}
|
|
|
|
%description -n libKF5AkonadiCore5
|
|
This package includes the core Akonadi library, the KDE PIM storage service.
|
|
|
|
%package -n libKF5AkonadiAgentBase5
|
|
Summary: Akonadi Agent base library
|
|
Group: System/Libraries
|
|
Recommends: %{name}
|
|
|
|
%description -n libKF5AkonadiAgentBase5
|
|
This package includes the agent library for Akonadi, the KDE PIM storage service.
|
|
|
|
%package -n libKF5AkonadiWidgets5
|
|
Summary: Akonadi Agent base library
|
|
Group: System/Libraries
|
|
Recommends: %{name}
|
|
|
|
%description -n libKF5AkonadiWidgets5
|
|
This package provides the basic GUI widgets for Akonadi, the KDE PIM storage service.
|
|
|
|
%package -n libKF5AkonadiPrivate5
|
|
Summary: Akonadi Private Server library
|
|
Group: System/Libraries
|
|
Recommends: %{name}
|
|
|
|
%description -n libKF5AkonadiPrivate5
|
|
This package includes the Private Akonadi library for Akonadi, the KDE PIM storage service.
|
|
|
|
%package -n libKF5AkonadiXml5
|
|
Summary: Akonadi Xml library
|
|
Group: System/Libraries
|
|
Recommends: %{name}
|
|
|
|
%description -n libKF5AkonadiXml5
|
|
This package includes the Akonadi Xml library for Akonadi, the KDE PIM storage service.
|
|
|
|
%package sqlite
|
|
Summary: akonadi server's SQlite plugin
|
|
Group: System/GUI/KDE
|
|
Requires: %{name} = %{version}
|
|
Supplements: (%{name} and sqlite3)
|
|
|
|
%description sqlite
|
|
Akonadi server's SQlite plugin.
|
|
|
|
%package devel
|
|
Summary: Akonadi Framework: Build Environment
|
|
Group: Development/Libraries/X11
|
|
Requires: %{name} = %{version}
|
|
Requires: libKF5AkonadiAgentBase5 = %{version}
|
|
Requires: libKF5AkonadiCore5 = %{version}
|
|
Requires: libKF5AkonadiWidgets5 = %{version}
|
|
Requires: libboost_headers-devel
|
|
Requires: cmake(KF5Completion)
|
|
Requires: cmake(KF5Config)
|
|
Requires: cmake(KF5ConfigWidgets)
|
|
Requires: cmake(KF5CoreAddons)
|
|
Requires: cmake(KF5ItemModels)
|
|
Requires: cmake(KF5XmlGui)
|
|
Requires: cmake(Qt5Core)
|
|
Requires: cmake(Qt5DBus)
|
|
Requires: cmake(Qt5Network)
|
|
Requires: cmake(Qt5Widgets)
|
|
Requires: cmake(Qt5Xml)
|
|
Conflicts: libakonadiprotocolinternals-devel
|
|
Obsoletes: akonadi-devel < %{version}
|
|
Obsoletes: libKF5AkonadiPrivate-devel < %{version}
|
|
Provides: libKF5AkonadiPrivate-devel = %{version}
|
|
|
|
%description devel
|
|
This package contains development files of Akonadi, the KDE PIM storage
|
|
service.
|
|
|
|
%package apparmor
|
|
Summary: AppArmor profiles for Akonadi
|
|
Requires: apparmor-abstractions
|
|
|
|
%description apparmor
|
|
This package contains AppArmor profiles for Akonadi.
|
|
|
|
%lang_package
|
|
|
|
%prep
|
|
%autosetup -p1 -n %{rname}-%{version}
|
|
|
|
%build
|
|
%cmake_kf5 -d build -- -DINSTALL_QSQLITE_IN_QT_PREFIX=TRUE -DQT_PLUGINS_DIR=%{_kf5_plugindir}
|
|
%cmake_build
|
|
|
|
%install
|
|
%kf5_makeinstall -C build
|
|
%if %{with lang}
|
|
%find_lang %{name} --with-man --all-name
|
|
%endif
|
|
|
|
%post -p /sbin/ldconfig
|
|
%postun -p /sbin/ldconfig
|
|
|
|
%post -n libKF5AkonadiWidgets5 -p /sbin/ldconfig
|
|
%postun -n libKF5AkonadiWidgets5 -p /sbin/ldconfig
|
|
%post -n libKF5AkonadiCore5 -p /sbin/ldconfig
|
|
%postun -n libKF5AkonadiCore5 -p /sbin/ldconfig
|
|
%post -n libKF5AkonadiAgentBase5 -p /sbin/ldconfig
|
|
%postun -n libKF5AkonadiAgentBase5 -p /sbin/ldconfig
|
|
%post -n libKF5AkonadiPrivate5 -p /sbin/ldconfig
|
|
%postun -n libKF5AkonadiPrivate5 -p /sbin/ldconfig
|
|
%post -n libKF5AkonadiXml5 -p /sbin/ldconfig
|
|
%postun -n libKF5AkonadiXml5 -p /sbin/ldconfig
|
|
|
|
%post apparmor
|
|
%apparmor_reload %{_sysconfdir}/apparmor.d/mariadbd_akonadi %{_sysconfdir}/apparmor.d/mysqld_akonadi %{_sysconfdir}/apparmor.d/postgresql_akonadi %{_sysconfdir}/apparmor.d/usr.bin.akonadiserver
|
|
|
|
%files
|
|
%license LICENSES/*
|
|
%doc AUTHORS
|
|
%config %{_kf5_sysconfdir}/xdg/akonadi/mysql-global-mobile.conf
|
|
%config %{_kf5_sysconfdir}/xdg/akonadi/mysql-global.conf
|
|
%dir %{_kf5_iconsdir}/hicolor/256x256
|
|
%dir %{_kf5_iconsdir}/hicolor/256x256/apps
|
|
%dir %{_kf5_sysconfdir}/xdg/akonadi
|
|
%{_datadir}/akonadi/
|
|
%{_datadir}/kf5/akonadi/
|
|
%{_datadir}/kf5/akonadi_knut_resource/
|
|
%{_kf5_bindir}/akonadi_*
|
|
%{_kf5_bindir}/akonadictl
|
|
%{_kf5_bindir}/akonadiselftest
|
|
%{_kf5_bindir}/akonadiserver
|
|
%{_kf5_bindir}/akonaditest
|
|
%{_kf5_bindir}/asapcat
|
|
%{_kf5_configkcfgdir}/resourcebase.kcfg
|
|
%{_kf5_debugdir}/akonadi.*categories
|
|
%{_kf5_iconsdir}/hicolor/*/apps/akonadi.png
|
|
%{_kf5_iconsdir}/hicolor/scalable/apps/akonadi.svgz
|
|
%{_kf5_plugindir}/akonadi/
|
|
%{_kf5_sharedir}/dbus-1/services/org.freedesktop.Akonadi.Control.service
|
|
%{_kf5_sharedir}/mime/packages/akonadi-mime.xml
|
|
|
|
%files -n libKF5AkonadiAgentBase5
|
|
%license LICENSES/*
|
|
%{_kf5_libdir}/libKF5AkonadiAgentBase.so.*
|
|
|
|
%files -n libKF5AkonadiCore5
|
|
%license LICENSES/*
|
|
%{_kf5_libdir}/libKF5AkonadiCore.so.*
|
|
|
|
%files -n libKF5AkonadiWidgets5
|
|
%license LICENSES/*
|
|
%{_kf5_libdir}/libKF5AkonadiWidgets.so.*
|
|
|
|
%files -n libKF5AkonadiPrivate5
|
|
%license LICENSES/*
|
|
%{_kf5_libdir}/libKF5AkonadiPrivate.so.*
|
|
|
|
%files -n libKF5AkonadiXml5
|
|
%license LICENSES/*
|
|
%{_kf5_libdir}/libKF5AkonadiXml.so.*
|
|
|
|
%files sqlite
|
|
%license LICENSES/*
|
|
%{_kf5_plugindir}/sqldrivers/
|
|
|
|
%files devel
|
|
%license LICENSES/*
|
|
%{_kf5_bindir}/akonadi2xml
|
|
%{_kf5_cmakedir}/KF5Akonadi
|
|
%{_kf5_dbusinterfacesdir}/org.freedesktop.Akonadi.*.xml
|
|
%{_kf5_includedir}/AkonadiAgentBase/
|
|
%{_kf5_includedir}/AkonadiCore/
|
|
%{_kf5_includedir}/AkonadiWidgets/
|
|
%{_kf5_includedir}/AkonadiXml/
|
|
%{_kf5_includedir}/akonadi/
|
|
%{_kf5_includedir}/akonadi_version.h
|
|
%{_kf5_libdir}/libKF5AkonadiAgentBase.so
|
|
%{_kf5_libdir}/libKF5AkonadiCore.so
|
|
%{_kf5_libdir}/libKF5AkonadiPrivate.so
|
|
%{_kf5_libdir}/libKF5AkonadiWidgets.so
|
|
%{_kf5_libdir}/libKF5AkonadiXml.so
|
|
%{_kf5_mkspecsdir}/qt_AkonadiAgentBase.pri
|
|
%{_kf5_mkspecsdir}/qt_AkonadiCore.pri
|
|
%{_kf5_mkspecsdir}/qt_AkonadiWidgets.pri
|
|
%{_kf5_mkspecsdir}/qt_AkonadiXml.pri
|
|
%{_kf5_plugindir}/designer/
|
|
%dir %{_kf5_sharedir}/kdevappwizard/
|
|
%{_kf5_sharedir}/kdevappwizard/templates/
|
|
|
|
%files apparmor
|
|
%config(noreplace) %{_sysconfdir}/apparmor.d/mariadbd_akonadi
|
|
%config(noreplace) %{_sysconfdir}/apparmor.d/mysqld_akonadi
|
|
%config(noreplace) %{_sysconfdir}/apparmor.d/postgresql_akonadi
|
|
%config(noreplace) %{_sysconfdir}/apparmor.d/usr.bin.akonadiserver
|
|
|
|
%if %{with lang}
|
|
%files lang -f %{name}.lang
|
|
%license LICENSES/*
|
|
%endif
|
|
|
|
%changelog
|