diff options
-rw-r--r-- | CMakeLists.txt | 1 | ||||
-rw-r--r-- | packaging/cert-checker.spec | 35 | ||||
-rw-r--r-- | src/logic.cpp | 2 | ||||
-rw-r--r-- | systemd/CMakeLists.txt | 4 | ||||
-rw-r--r-- | systemd/cert-checker.service | 10 |
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 |