Name: alarm-manager
Summary: Alarm library
-Version: 0.7.8
+Version: 0.12.29
Release: 1
Group: System/Libraries
License: Apache-2.0
Source3: alarm-session-agent.socket
Source4: alarm-manager.conf
Source5: 99-rtc.rules
+Source1001: alarm-server.manifest
+Source1002: alarm-lib.manifest
+Source1003: alarm-server-plugin.manifest
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
BuildRequires: pkgconfig(eventsystem)
BuildRequires: pkgconfig(notification)
BuildRequires: python-xml
-BuildRequires: pkgconfig(capi-system-info)
BuildRequires: pkgconfig(cert-svc-vcore)
BuildRequires: pkgconfig(cynara-client)
BuildRequires: pkgconfig(cynara-session)
BuildRequires: pkgconfig(cynara-creds-gdbus)
+BuildRequires: pkgconfig(gmock)
+
+%if 0%{?gcov:1}
+BuildRequires: lcov
+%endif
+
+%if 0%{?gcov: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
%description -n alarm-config-service-restricted
A configuration file package for restricting service applications
+#################################################
+# plugin
+#################################################
+%package -n alarm-server-plugin
+Summary: Alarm server plugin libraries
+License: apache-2.0
+Group: Development/Libraries
+Requires: alarm-server-plugin = %{version}-%{release}
+
+%description -n alarm-server-plugin
+A plugin package for alarm-server
+
+
+#################################################
+# 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} ./
+cp %{SOURCE1003} ./
%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_GCOV=%{?gcov:1}%{!?gcov:0} \
make %{?jobs:-j%jobs}
-
%install
rm -rf %{buildroot}
%make_install
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}/usr/lib/udev/rules.d
+install -m 0644 %SOURCE5 %{buildroot}/usr/lib/udev/rules.d
+mkdir -p %{buildroot}%{logdir}
+
+%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
+
+#################################################
+# generate unittest automation script
+#################################################
+cat << EOF > run-unittest.sh
+#!/bin/bash
+setup() {
+ echo "setup start"
+}
+
+test_main() {
+ echo "test_main start"
+ /usr/bin/gtest-alarmmgr
+}
+
+teardown() {
+ echo "teardown start"
+}
+
+main() {
+ setup
+ test_main
+ teardown
+}
+
+main "$@"
+EOF
+
+mkdir -p %{buildroot}%{_bindir}/tizen-unittests/%{name}
+install -m 0755 run-unittest.sh %{buildroot}%{_bindir}/tizen-unittests/%{name}
+
+%check
+export LD_LIBRARY_PATH=../lib
+ctest -V
+%if 0%{?gcov:1}
+lcov -c --ignore-errors graph --no-external -b . -d . -o %{name}.info
+genhtml %{name}.info -o out --legend --show-details
+%endif
%post -p /sbin/ldconfig
if [ -e /etc/config/model-config.xml ]; then
grep "feature\/profile.*tv" /etc/config/model-config.xml > /dev/null
if [ $? -eq 0 ]; then
- rm %{_libdir}/udev/rules.d/99-rtc.rules
+ rm /usr/lib/udev/rules.d/99-rtc.rules
fi
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
%license LICENSE
%config %{_sysconfdir}/dbus-1/system.d/alarm-service.conf
%{_tmpfilesdir}/alarm-manager.conf
-%{_libdir}/udev/rules.d/99-rtc.rules
+/usr/lib/udev/rules.d/99-rtc.rules
%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
%files -n alarm-config-service-restricted
%{_datadir}/alarm-manager/alarm-config-service-restricted
+
+#################################################
+# plugin
+#################################################
+%files -n alarm-server-plugin
+%manifest alarm-server-plugin.manifest
+%{_libdir}/libalarm-server-plugin.so
+%license LICENSE
+
+#################################################
+# unittests
+#################################################
+%files unittests
+%{_bindir}/gtest*
+%{_bindir}/tizen-unittests/%{name}/run-unittest.sh
+
+#################################################
+# gcov
+#################################################
+%if 0%{?gcov:1}
+%files gcov
+%{_datadir}/gcov/*
+%endif