Name: msg-service
-Version: 1.0.2
-Release: 1
+Version: 1.0.11
+Release: 2
License: Apache-2.0
Summary: Messaging Framework Library
Group: System/Libraries
Source0: %{name}-%{version}.tar.gz
Source1: msg-server.service
Source2: msg-server.socket
-
-%if "%{?tizen_profile_name}" == "tv"
-ExcludeArch: %{arm} %ix86 x86_64
-%endif
+Source3: msg-server.asan.conf
Requires(post): /usr/bin/sqlite3
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
Requires(post): systemd
Requires(postun): systemd
+Requires: acl
+Requires: security-config
+BuildRequires: boost-devel
BuildRequires: cmake
BuildRequires: pkgconfig(alarm-service)
BuildRequires: pkgconfig(aul)
-BuildRequires: pkgconfig(badge)
BuildRequires: pkgconfig(bundle)
-BuildRequires: pkgconfig(capi-appfw-application)
+BuildRequires: pkgconfig(capi-media-image-util)
+BuildRequires: pkgconfig(capi-media-metadata-extractor)
+BuildRequires: pkgconfig(capi-media-thumbnail-util)
BuildRequires: pkgconfig(capi-network-connection)
+BuildRequires: pkgconfig(capi-system-device)
BuildRequires: pkgconfig(capi-system-info)
BuildRequires: pkgconfig(capi-telephony)
BuildRequires: pkgconfig(contacts-service2)
BuildRequires: pkgconfig(cynara-creds-commons)
BuildRequires: pkgconfig(cynara-creds-socket)
BuildRequires: pkgconfig(cynara-session)
-BuildRequires: pkgconfig(db-util)
BuildRequires: pkgconfig(deviced)
BuildRequires: pkgconfig(dlog)
+BuildRequires: pkgconfig(dpm)
BuildRequires: pkgconfig(eventsystem)
-BuildRequires: pkgconfig(feedback)
BuildRequires: pkgconfig(gio-2.0)
-BuildRequires: pkgconfig(gobject-2.0)
-BuildRequires: pkgconfig(iniparser)
+BuildRequires: pkgconfig(icu-uc)
BuildRequires: pkgconfig(json-glib-1.0)
BuildRequires: pkgconfig(lbs-dbus)
BuildRequires: pkgconfig(libcurl)
-BuildRequires: pkgconfig(libsystemd-daemon)
+BuildRequires: pkgconfig(libsmack)
+BuildRequires: pkgconfig(libsystemd)
+BuildRequires: pkgconfig(libtzplatform-config)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(libwbxml2)
-BuildRequires: pkgconfig(capi-media-thumbnail-util)
-BuildRequires: pkgconfig(capi-media-image-util)
-BuildRequires: pkgconfig(mm-fileinfo)
-BuildRequires: pkgconfig(mm-player)
-BuildRequires: pkgconfig(mm-session)
-BuildRequires: pkgconfig(mm-sound)
-BuildRequires: pkgconfig(mmutil-imgp)
-BuildRequires: pkgconfig(mmutil-jpeg)
-BuildRequires: pkgconfig(notification)
-BuildRequires: pkgconfig(privacy-manager-client)
-BuildRequires: pkgconfig(sensor)
-BuildRequires: pkgconfig(storage)
+BuildRequires: pkgconfig(motion)
+BuildRequires: pkgconfig(phonenumber-utils)
+BuildRequires: pkgconfig(sqlite3)
BuildRequires: pkgconfig(tapi)
BuildRequires: pkgconfig(vconf)
+# Below BuildRequires-statements are only for msg-manager
+BuildRequires: gettext-tools
+BuildRequires: hash-signer
+BuildRequires: pkgconfig(badge)
+BuildRequires: pkgconfig(callmgr_client)
+BuildRequires: pkgconfig(capi-appfw-event)
+BuildRequires: pkgconfig(capi-appfw-package-manager)
+BuildRequires: pkgconfig(capi-appfw-service-application)
+BuildRequires: pkgconfig(capi-media-player)
+BuildRequires: pkgconfig(capi-media-sound-manager)
+BuildRequires: pkgconfig(capi-media-recorder)
+BuildRequires: pkgconfig(feedback)
+BuildRequires: pkgconfig(notification)
+
+%if 0%{?gcov:1}
+BuildRequires: lcov
+%endif
%description
Description: Messaging Framework Library
-
%package devel
License: Apache-2.0
Summary: Messaging Framework Library (development)
%description devel
Description: Messaging Framework Library (development)
-
-%package tools
-License: Apache-2.0
-Summary: Messaging server application
-Requires: %{name} = %{version}-%{release}
-Group: TO_BU / FILL_IN
-Requires(post): /usr/bin/sqlite3
-Requires(post): /sbin/ldconfig
-Requires(postun): /sbin/ldconfig
-
-%description tools
-Description: Messaging server application
-
-
%package -n sms-plugin
License: Apache-2.0
Summary: SMS plugin library
%description -n mms-plugin
Description: MMS plugin library
-%prep
-%setup -q
+%package -n msg-manager
+License: Apache-2.0
+Summary: Message manager application
+Requires: %{name} = %{version}-%{release}
+Group: Applications/Messaging
+
+%description -n msg-manager
+Description: Message manager application
+
+%define APP_PKGNAME org.tizen.msg-manager
+%define APP_PREFIX %{TZ_SYS_RO_APP}/%{APP_PKGNAME}
+%define APP_RESDIR %{APP_PREFIX}/res
+%define APP_LOCALEDIR %{APP_RESDIR}/locale
-%build
-cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} \
- -DLIB_INSTALL_DIR=%{_libdir} \
%ifarch i586
--D_TIZEN_I586_ENABLED:BOOL=ON \
+%define i586_option "-D_TIZEN_I586_ENABLED:BOOL=ON"
%else
--D_TIZEN_I586_ENABLED:BOOL=OFF \
+%define i586_option "-D_TIZEN_I586_ENABLED:BOOL=OFF"
%endif
-%if "%{?tizen_profile_name}" == "wearable"
--D_MSG_WEARABLE_PROFILE:BOOL=ON \
-%else
--D_MSG_WEARABLE_PROFILE:BOOL=OFF \
+
+#################################################
+# gcov
+#################################################
+%if 0%{?gcov:1}
+%package gcov
+Summary: Messaging Framework library (gcov)
+Group: Service Framework/Testing
+%description gcov
+gcov objects for coverage test
+%endif
+
+%prep
+%setup -q
+
+%build
+%if 0%{?gcov:1}
+export CFLAGS+=" -fprofile-arcs -ftest-coverage"
+export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
+export FFLAGS+=" -fprofile-arcs -ftest-coverage"
+export LDFLAGS+=" -lgcov"
%endif
+cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} \
+ -DLIB_INSTALL_DIR=%{_libdir} \
+ -DAPP_MANIFESTDIR=%{TZ_SYS_RO_PACKAGES} \
+ -DAPP_BINDIR=%{APP_PREFIX}/bin \
+ -DAPP_LOCALEDIR=%{APP_RESDIR}/locale \
+ -DTZ_SYS_RO_APP=%TZ_SYS_RO_APP \
+ -DTZ_SYS_GLOBALUSER_DATA=%TZ_SYS_GLOBALUSER_DATA \
+ -DTZ_SYS_GLOBALUSER_DB=%TZ_SYS_GLOBALUSER_DB \
+ -DTZ_SYS_HOME=%TZ_SYS_HOME \
+ -DTZ_SYS_BIN=%TZ_SYS_BIN \
+ %{i586_option}
make %{?jobs:-j%jobs}
%install
rm -rf %{buildroot}
-mkdir -p %{buildroot}/usr/share/license
mkdir -p %{buildroot}/etc/config
%make_install
-mkdir -p %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants
-install -m 0644 %SOURCE1 %{buildroot}%{_libdir}/systemd/system/msg-server.service
-ln -s ../msg-server.service %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants/msg-server.service
+%if 0%{?gcov:1}
+builddir=$(basename $PWD)
+gcno_obj_dir=%{buildroot}%{_datadir}/gcov/obj/%{name}/"$builddir"
+mkdir -p "$gcno_obj_dir"
+find . -name '*.gcno' -exec cp --parents '{}' "$gcno_obj_dir" ';'
+%endif
-mkdir -p %{buildroot}%{_libdir}/systemd/system/sockets.target.wants
-install -m 0644 %SOURCE2 %{buildroot}%{_libdir}/systemd/system/msg-server.socket
-ln -s ../msg-server.socket %{buildroot}%{_libdir}/systemd/system/sockets.target.wants/msg-server.socket
+%define tizen_sign 1
+%define tizen_sign_base %{APP_PREFIX}
+%define tizen_sign_level platform
+%define tizen_author_sign 1
+%define tizen_dist_sign 1
+
+mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants
+install -m 0644 %SOURCE1 %{buildroot}%{_unitdir}/msg-server.service
+%install_service multi-user.target.wants msg-server.service
+
+mkdir -p %{buildroot}%{_unitdir}/sockets.target.wants
+install -m 0644 %SOURCE2 %{buildroot}%{_unitdir}/msg-server.socket
+%install_service sockets.target.wants msg-server.socket
+%if "%{asan}" == "1"
+mkdir -p %{buildroot}%{_unitdir}/msg-server.service.d
+install -m 644 %SOURCE3 %{buildroot}%{_unitdir}/msg-server.service.d/msg-server.asan.conf
+%endif
-mkdir -p %{buildroot}/opt/usr/dbspace
-sqlite3 %{buildroot}/opt/usr/dbspace/.msg_service.db "PRAGMA journal_mode = PERSIST;"
-sqlite3 %{buildroot}/opt/usr/dbspace/.msg_service.db < %{buildroot}/usr/share/msg-service/msg-service-db.sql
+mkdir -p %{buildroot}%{TZ_SYS_GLOBALUSER_DB}
+sqlite3 %{buildroot}%{TZ_SYS_GLOBALUSER_DB}/.msg_service.db "PRAGMA journal_mode = PERSIST;"
+sqlite3 %{buildroot}%{TZ_SYS_GLOBALUSER_DB}/.msg_service.db < %{buildroot}/usr/share/msg-service/msg-service-db.sql
rm %{buildroot}/usr/share/msg-service/msg-service-db.sql
-
-%post tools
-/sbin/ldconfig
-
-chown 200:5000 /opt/usr/dbspace/.msg_service.db
-chown 200:5000 /opt/usr/dbspace/.msg_service.db-journal
-chown 200:200 %{_libdir}/systemd/system/msg-server.socket
-
-chmod 660 /opt/usr/dbspace/.msg_service.db
-chmod 660 /opt/usr/dbspace/.msg_service.db-journal
-
-mkdir -p -m 775 /opt/usr/data/msg-service
-mkdir -p -m 775 /opt/usr/data/msg-service/msgdata
-mkdir -p -m 775 /opt/usr/data/msg-service/smildata
-mkdir -p -m 775 /opt/usr/data/msg-service/ipcdata
-mkdir -p -m 775 /opt/usr/data/msg-service/msgdata/thumbnails
-
-chown 200:5000 /opt/usr/data/msg-service
-chown 200:5000 /opt/usr/data/msg-service/msgdata
-chown 200:5000 /opt/usr/data/msg-service/smildata
-chown 200:5000 /opt/usr/data/msg-service/ipcdata
-chown 200:5000 /opt/usr/data/msg-service/msgdata/thumbnails
-
-if [ -f %{_libdir}/rpm-plugins/msm.so ]
-then
- chsmack -a 'msg-service::db' /opt/usr/dbspace/.msg_service.db*
- chsmack -a 'msg-service' /opt/usr/data/msg-service/msgdata
- chsmack -a 'msg-service' /opt/usr/data/msg-service/smildata
- chsmack -a 'msg-service' /opt/usr/data/msg-service/ipcdata
- chsmack -a 'msg-service' /opt/usr/data/msg-service/msgdata/thumbnails
-fi
+rm %{buildroot}%{TZ_SYS_GLOBALUSER_DB}/.msg_service.db-journal
+touch %{buildroot}%{TZ_SYS_GLOBALUSER_DB}/.msg_service.db-journal
%post -n sms-plugin -p /sbin/ldconfig
%post -n mms-plugin -p /sbin/ldconfig
%post
/sbin/ldconfig
+chmod 640 %{TZ_SYS_GLOBALUSER_DB}/.msg_service.db
+chmod 640 %{TZ_SYS_GLOBALUSER_DB}/.msg_service.db-journal
+
+mkdir -p -m 770 %{TZ_SYS_GLOBALUSER_DATA}/msg-service
+mkdir -p -m 750 %{TZ_SYS_GLOBALUSER_DATA}/msg-service/msgdata
+mkdir -p -m 750 %{TZ_SYS_GLOBALUSER_DATA}/msg-service/smildata
+mkdir -p -m 770 %{TZ_SYS_GLOBALUSER_DATA}/msg-service/ipcdata
+mkdir -p -m 750 %{TZ_SYS_GLOBALUSER_DATA}/msg-service/msgdata/thumbnails
+
+chown messaging:priv_message_read %{TZ_SYS_GLOBALUSER_DB}/.msg_service.db
+chown messaging:priv_message_read %{TZ_SYS_GLOBALUSER_DB}/.msg_service.db-journal
+chown messaging:priv_message_read %{TZ_SYS_GLOBALUSER_DATA}/msg-service
+chown messaging:priv_message_read %{TZ_SYS_GLOBALUSER_DATA}/msg-service/msgdata
+chown messaging:priv_message_read %{TZ_SYS_GLOBALUSER_DATA}/msg-service/smildata
+chown messaging:priv_message_read %{TZ_SYS_GLOBALUSER_DATA}/msg-service/ipcdata
+chown messaging:priv_message_read %{TZ_SYS_GLOBALUSER_DATA}/msg-service/msgdata/thumbnails
+
+chmod g+s %{TZ_SYS_GLOBALUSER_DATA}/msg-service/msgdata
+chmod g+s %{TZ_SYS_GLOBALUSER_DATA}/msg-service/smildata
+chmod g+s %{TZ_SYS_GLOBALUSER_DATA}/msg-service/ipcdata
+chmod g+s %{TZ_SYS_GLOBALUSER_DATA}/msg-service/msgdata/thumbnails
+
+chsmack -a "*" %{TZ_SYS_GLOBALUSER_DB}/.msg_service.db
+chsmack -a "*" %{TZ_SYS_GLOBALUSER_DB}/.msg_service.db-journal
+chsmack -a "System::Shared" %{TZ_SYS_GLOBALUSER_DATA}/msg-service/
+chsmack -a "System::Shared" %{TZ_SYS_GLOBALUSER_DATA}/msg-service/msgdata -t
+chsmack -a "System::Shared" %{TZ_SYS_GLOBALUSER_DATA}/msg-service/smildata -t
+chsmack -a "System::Run" %{TZ_SYS_GLOBALUSER_DATA}/msg-service/ipcdata -t
+chsmack -a "System::Shared" %{TZ_SYS_GLOBALUSER_DATA}/msg-service/msgdata/thumbnails -t
+
+#Multi group to ipcdata directory
+chmod o= %{TZ_SYS_GLOBALUSER_DATA}/msg-service/ipcdata
+setfacl -m group:priv_message_write:rw %{TZ_SYS_GLOBALUSER_DATA}/msg-service/ipcdata
+
+
%postun -p /sbin/ldconfig
-%postun tools -p /sbin/ldconfig
%postun -n sms-plugin -p /sbin/ldconfig
%postun -n mms-plugin -p /sbin/ldconfig
%files
%manifest msg-service.manifest
-%defattr(-,system,system,-)
+%license LICENSE.APLv2
+%config(noreplace) %{TZ_SYS_GLOBALUSER_DB}/.msg_service.db*
+%{_bindir}/msg-server
%{_libdir}/libmsg_plugin_manager.so
%{_libdir}/libmsg_mapi.so.*
%{_libdir}/libmsg_framework_handler.so
%{_libdir}/libmsg_externals.so
%{_libdir}/libmsg_transaction_proxy.so
%{_libdir}/libmsg_vobject.so
-/usr/share/license/msg-service/LICENSE.APLv2
+%{_unitdir}/msg-server.service
+%{_unitdir}/multi-user.target.wants/msg-server.service
+%{_unitdir}/msg-server.socket
+%{_unitdir}/sockets.target.wants/msg-server.socket
+%if "%{asan}" == "1"
+%{_unitdir}/msg-server.service.d/msg-server.asan.conf
+%endif
%files devel
-%defattr(-,system,system,-)
+%license LICENSE.APLv2
%{_libdir}/libmsg_mapi.so
%{_libdir}/pkgconfig/msg-service.pc
%{_includedir}/msg-service/*
-%files tools
-%manifest msg-service-tools.manifest
-%defattr(-,system,system,-)
-%caps(cap_chown,cap_dac_override,cap_lease=eip) %{_bindir}/msg-server
-%config(noreplace) /opt/usr/dbspace/.msg_service.db*
-%{_libdir}/systemd/system/msg-server.service
-%{_libdir}/systemd/system/multi-user.target.wants/msg-server.service
-%{_libdir}/systemd/system/sockets.target.wants/msg-server.socket
-%{_libdir}/systemd/system/msg-server.socket
-/usr/share/license/msg-service/LICENSE.APLv2
-/etc/smack/accesses.d/msg-service.rule
-/etc/config/*
-
%files -n sms-plugin
%manifest sms-plugin.manifest
-%defattr(-,system,system,-)
+%license LICENSE.APLv2
%{_libdir}/libmsg_sms_plugin.so
-/usr/share/license/msg-service/LICENSE.APLv2
%files -n mms-plugin
%manifest mms-plugin.manifest
-%defattr(-,system,system,-)
+%license LICENSE.APLv2
%{_libdir}/libmsg_mms_plugin.so
-/usr/share/license/msg-service/LICENSE.APLv2
+
+%files -n msg-manager
+%manifest msg-manager.manifest
+%license LICENSE.APLv2
+%{APP_PREFIX}/bin/msg-manager
+%{TZ_SYS_RO_PACKAGES}/*.xml
+%{APP_PREFIX}/author-signature.xml
+%{APP_PREFIX}/signature1.xml
+%{APP_RESDIR}/*
+
+%if 0%{?gcov:1}
+%files gcov
+%{_datadir}/gcov/obj/*
+%endif
%changelog