summaryrefslogtreecommitdiff
path: root/packaging/alarm-manager.spec
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/alarm-manager.spec')
-rw-r--r--packaging/alarm-manager.spec114
1 files changed, 99 insertions, 15 deletions
diff --git a/packaging/alarm-manager.spec b/packaging/alarm-manager.spec
index e2d7a9b..53229cb 100644
--- a/packaging/alarm-manager.spec
+++ b/packaging/alarm-manager.spec
@@ -10,9 +10,10 @@ Source2: alarm-session-agent.service
Source3: alarm-session-agent.socket
Source4: alarm-manager.conf
Source5: 99-rtc.rules
-Requires(post): /sbin/ldconfig
-Requires(postun): /sbin/ldconfig
-
+Source6: alarm-session-agent@.service
+Source7: alarm-session-agent@.socket
+Source1001: alarm-server.manifest
+Source1002: alarm-lib.manifest
BuildRequires: cmake
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(dlog)
@@ -37,6 +38,21 @@ BuildRequires: pkgconfig(cynara-client)
BuildRequires: pkgconfig(cynara-session)
BuildRequires: pkgconfig(cynara-creds-gdbus)
+%if 0%{?gcov:1}
+BuildRequires: lcov
+BuildRequires: zip
+%endif
+
+%define gtests 0
+
+%if 0%{?gtests:1}
+BuildRequires: pkgconfig(gmock)
+%endif
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%define logdir /var/log/appfw/alarmmgr_log
+
%description
Alarm Server and devel libraries
@@ -93,31 +109,66 @@ Requires: libalarm = %{version}-%{release}
%description -n alarm-config-service-restricted
A configuration file package for restricting service applications
+#################################################
+# unittests
+#################################################
+%package unittests
+Summary: GTest for alarm manager library
+Group: Development/Libraries
+Requires: %{name}
+
+%description unittests
+GTest for alarm-manager library
+
+
+#################################################
+# gcov
+#################################################
+%if 0%{?gcov:1}
+%package gcov
+Summary: Alarm library (gcov)
+Group: Application Framework/Testing
+
+%description gcov
+Alarm library gcov objects
+%endif
+
%prep
%setup -q
+cp %{SOURCE1001} ./
+cp %{SOURCE1002} ./
%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
+
MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
-export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
-export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
-export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
%define appfw_feature_alarm_manager_module_log 1
%if 0%{?appfw_feature_alarm_manager_module_log}
_APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG=ON
%endif
%cmake . -DOBS=1 \
- -DFULLVER=%{version} \
- -DMAJORVER=${MAJORVER} \
+ -DFULLVER=%{version} -DMAJORVER=${MAJORVER} \
+ -DBIN_INSTALL_DIR:PATH=%{_bindir} \
-DTZ_SYS_ETC=%{TZ_SYS_ETC} \
-D_APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG:BOOL=${_APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG} \
- -DALARM_CONF_DIR=%{_datadir}/alarm-manager
+ -DALARM_CONF_DIR=%{_datadir}/alarm-manager \
+ -DBUILD_GTESTS=%{?gtests:1}%{!?gtests:0} \
make %{?jobs:-j%jobs}
+%if 0%{?gcov:1}
+mkdir -p gcov-obj
+find . -name '*.gcno' -exec cp '{}' gcov-obj ';'
+%endif
%install
rm -rf %{buildroot}
@@ -125,15 +176,34 @@ rm -rf %{buildroot}
mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants
mkdir -p %{buildroot}%{_unitdir_user}/sockets.target.wants
+mkdir -p %{buildroot}%{_unitdir}/user-sockets@.target.wants
install -m 0644 %SOURCE1 %{buildroot}%{_unitdir}/alarm-server.service
install -m 0644 %SOURCE2 %{buildroot}%{_unitdir_user}/alarm-session-agent.service
install -m 0644 %SOURCE3 %{buildroot}%{_unitdir_user}/alarm-session-agent.socket
+install -m 0644 %SOURCE6 %{buildroot}%{_unitdir}/alarm-session-agent@.service
+install -m 0644 %SOURCE7 %{buildroot}%{_unitdir}/alarm-session-agent@.socket
ln -s ../alarm-server.service %{buildroot}%{_unitdir}/multi-user.target.wants/alarm-server.service
ln -sf ../alarm-session-agent.socket %{buildroot}%{_unitdir_user}/sockets.target.wants/alarm-session-agent.socket
+ln -sf ../alarm-session-agent@.socket %{buildroot}%{_unitdir}/user-sockets@.target.wants/alarm-session-agent@.socket
mkdir -p %{buildroot}%{_tmpfilesdir}
install -m 0644 %SOURCE4 %{buildroot}%{_tmpfilesdir}/alarm-manager.conf
mkdir -p %{buildroot}%{_libdir}/udev/rules.d
install -m 0644 %SOURCE5 %{buildroot}%{_libdir}/udev/rules.d
+mkdir -p %{buildroot}%{logdir}
+
+%if 0%{?gcov:1}
+mkdir -p %{buildroot}%{_datadir}/gcov/obj
+install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj
+%endif
+
+%check
+(cd unittest && LD_LIBRARY_PATH=../lib ctest -V)
+%if 0%{?gcov:1}
+lcov -c --ignore-errors graph --no-external -q -d . -o alarm-manager.info
+genhtml alarm-manager.info -o alarm-manager.out
+zip -r alarm-manager.zip alarm-manager.out
+install -m 0644 alarm-manager.zip %{buildroot}%{_datadir}/gcov/
+%endif
%post -p /sbin/ldconfig
@@ -157,27 +227,28 @@ fi
%files -n alarm-server
%manifest alarm-server.manifest
-%{_bindir}/*
-%attr(0755,root,root) %{_bindir}/alarm-server
-%attr(0755,root,root) %{_bindir}/alarm_session_agent
+%{_bindir}/alarm*
%attr(0644,root,root) %{_unitdir}/alarm-server.service
%{_unitdir}/multi-user.target.wants/alarm-server.service
%{_unitdir_user}/alarm-session-agent.service
%{_unitdir_user}/alarm-session-agent.socket
+%{_unitdir}/alarm-session-agent@.service
+%{_unitdir}/alarm-session-agent@.socket
%{_unitdir_user}/sockets.target.wants/alarm-session-agent.socket
+%{_unitdir}/user-sockets@.target.wants/alarm-session-agent@.socket
%attr(0644,root,root) %{_datadir}/dbus-1/system-services/org.tizen.alarm.manager.service
-%license LICENSE
%config %{_sysconfdir}/dbus-1/system.d/alarm-service.conf
%{_tmpfilesdir}/alarm-manager.conf
%{_libdir}/udev/rules.d/99-rtc.rules
+%license LICENSE
%if 0%{?appfw_feature_alarm_manager_module_log}
%attr(0755,root,root) %{TZ_SYS_ETC}/dump.d/module.d/alarmmgr_log_dump.sh
+%attr(0755,app_fw,app_fw) %{logdir}
%endif
%files -n libalarm
%manifest alarm-lib.manifest
-%attr(0644,root,root) %{_libdir}/libalarm.so.*
-%{_libdir}/*.so.*
+%{_libdir}/libalarm.so.*
%license LICENSE
%files -n libalarm-devel
@@ -193,3 +264,16 @@ fi
%files -n alarm-config-service-restricted
%{_datadir}/alarm-manager/alarm-config-service-restricted
+
+#%if 0%{?gtests:1}
+#%files unittests
+#%{_bindir}/gtest*
+#%endif
+
+#################################################
+# gcov
+#################################################
+%if 0%{?gcov:1}
+%files gcov
+%{_datadir}/gcov/*
+%endif