summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt1
-rw-r--r--packaging/cert-checker.spec35
-rw-r--r--src/logic.cpp2
-rw-r--r--systemd/CMakeLists.txt4
-rw-r--r--systemd/cert-checker.service10
5 files changed, 50 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5121bef..474349b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -61,3 +61,4 @@ SET(TARGET_CERT_CHECKER_TESTS "cert-checker-tests")
ADD_SUBDIRECTORY(src)
ADD_SUBDIRECTORY(db)
ADD_SUBDIRECTORY(tests)
+ADD_SUBDIRECTORY(systemd)
diff --git a/packaging/cert-checker.spec b/packaging/cert-checker.spec
index 0d11355..627cb07 100644
--- a/packaging/cert-checker.spec
+++ b/packaging/cert-checker.spec
@@ -46,7 +46,8 @@ export LDFLAGS+="-Wl,--rpath=%{_libdir} "
-DDB_INSTALL_DIR=%{TZ_SYS_DB} \
-DCMAKE_BUILD_TYPE=%{?build_type:%build_type}%{!?build_type:RELEASE} \
-DCMAKE_VERBOSE_MAKEFILE=ON \
- -DTEST_APP_SIGNATURES_DIR="/root/cert-checker-test"
+ -DTEST_APP_SIGNATURES_DIR="/root/cert-checker-test" \
+ -DSYSTEMD_UNIT_DIR=%{_unitdir}
make %{?jobs:-j%jobs}
@@ -57,14 +58,46 @@ cp LICENSE %{buildroot}/usr/share/license/%{name}
%make_install
cp -a %{SOURCE1} %{buildroot}%{_datadir}/
+%make_install
+mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants
+ln -s ../cert-checker.service %{buildroot}%{_unitdir}/multi-user.target.wants/cert-checker.service
+
%clean
rm -rf %{buildroot}
+%post
+systemctl daemon-reload
+if [ $1 = 1 ]; then
+ # installation
+ systemctl start cert-checker.service
+fi
+
+if [ $1 = 2 ]; then
+ # update
+ systemctl restart cert-checker.service
+fi
+
+
+%preun
+if [ $1 = 0 ]; then
+ # unistall
+ systemctl stop cert-checker.service
+fi
+
+%postun
+if [ $1 = 0 ]; then
+ # unistall
+ systemctl daemon-reload
+fi
+
+
%files
%{_bindir}/cert-checker
%manifest %{_datadir}/%{name}.manifest
%{_datadir}/license/%{name}
%config(noreplace) %attr(0600,root,root) %{TZ_SYS_DB}/.cert-checker.db
+%{_unitdir}/cert-checker.service
+%{_unitdir}/multi-user.target.wants/cert-checker.service
%files -n cert-checker-tests
%defattr(-,root,root,-)
diff --git a/src/logic.cpp b/src/logic.cpp
index e919e5f..45800e9 100644
--- a/src/logic.cpp
+++ b/src/logic.cpp
@@ -61,7 +61,7 @@ Logic::~Logic(void)
Logic::Logic(void) :
m_sqlquery(NULL),
m_was_setup_called(false),
- m_is_online(true),
+ m_is_online(false),
m_should_exit(false),
m_proxy_connman(NULL),
m_proxy_pkgmgr_install(NULL),
diff --git a/systemd/CMakeLists.txt b/systemd/CMakeLists.txt
new file mode 100644
index 0000000..982fe1d
--- /dev/null
+++ b/systemd/CMakeLists.txt
@@ -0,0 +1,4 @@
+INSTALL(FILES
+ ${PROJECT_SOURCE_DIR}/systemd/cert-checker.service
+ DESTINATION
+ ${SYSTEMD_UNIT_DIR})
diff --git a/systemd/cert-checker.service b/systemd/cert-checker.service
new file mode 100644
index 0000000..58529b9
--- /dev/null
+++ b/systemd/cert-checker.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Start the Cert-Checker
+Requires=dbus.service
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/cert-checker
+
+[Install]
+WantedBy=multi-user.target