chiark / gitweb /
journal: use $(localstatedir)/lib/systemd/catalog for the catalog
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 16 Nov 2012 22:08:27 +0000 (23:08 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 16 Nov 2012 22:29:18 +0000 (23:29 +0100)
The path doesn't change in the standard configuration.

Also, give full path to the journalctl binary in the hook,
since it might be installed outside of $PATH.

Also, add uninstall hook to remove the binary catalog.

Makefile.am
src/journal/catalog.c

index 7860174e52d6de8d02ce33430dfe9116275cee03..f3bda0176b73e6690f7cccae1dfcf77b57dcc142 100644 (file)
@@ -63,6 +63,8 @@ bashcompletiondir=$(sysconfdir)/bash_completion.d
 rpmmacrosdir=$(sysconfdir)/rpm
 sysvinitdir=$(SYSTEM_SYSVINIT_PATH)
 varlogdir=$(localstatedir)/log
+systemdstatedir=$(localstatedir)/lib/systemd
+catalogstatedir=$(systemdstatedir)/catalog
 
 # Our own, non-special dirs
 pkgsysconfdir=$(sysconfdir)/systemd
@@ -94,6 +96,7 @@ BUILT_SOURCES =
 INSTALL_EXEC_HOOKS =
 UNINSTALL_EXEC_HOOKS =
 INSTALL_DATA_HOOKS =
+UNINSTALL_DATA_HOOKS =
 DISTCLEAN_LOCAL_HOOKS =
 pkginclude_HEADERS =
 noinst_LTLIBRARIES =
@@ -126,6 +129,7 @@ AM_CPPFLAGS = \
        -DUSER_CONFIG_FILE=\"$(pkgsysconfdir)/user.conf\" \
        -DUSER_CONFIG_UNIT_PATH=\"$(pkgsysconfdir)/user\" \
        -DUSER_DATA_UNIT_PATH=\"$(userunitdir)\" \
+       -DCATALOG_PATH=\"$(catalogstatedir)\" \
        -DSYSTEMD_CGROUP_AGENT_PATH=\"$(rootlibexecdir)/systemd-cgroups-agent\" \
        -DSYSTEMD_BINARY_PATH=\"$(rootlibexecdir)/systemd\" \
        -DSYSTEMD_SHUTDOWN_BINARY_PATH=\"$(rootlibexecdir)/systemd-shutdown\" \
@@ -2725,11 +2729,17 @@ UNINSTALL_EXEC_HOOKS += \
 # Update catalog on installation. Do not bother if installing
 # in DESTDIR, since this is likely for packaging purposes.
 catalog-update-hook:
-       -test -n "$(DESTDIR)" || journalctl --update-catalog
+       -test -n "$(DESTDIR)" || $(rootbindir)/journalctl --update-catalog
 
 INSTALL_DATA_HOOKS += \
        catalog-update-hook
 
+catalog-remove-hook:
+       -test -n "$(DESTDIR)" || rm -f $(catalogstatedir)/database
+
+UNINSTALL_DATA_HOOKS += \
+       catalog-remove-hook
+
 noinst_PROGRAMS += \
        test-journal \
        test-journal-send \
@@ -3596,7 +3606,7 @@ polkitpolicy_files += \
 logind-install-data-hook:
        $(MKDIR_P) -m 0755 \
                $(DESTDIR)$(systemunitdir)/multi-user.target.wants \
-               $(DESTDIR)$(localstatedir)/lib/systemd
+               $(DESTDIR)$(systemdstatedir)
        ( cd $(DESTDIR)$(systemunitdir) && \
                rm -f dbus-org.freedesktop.login1.service && \
                $(LN_S) systemd-logind.service dbus-org.freedesktop.login1.service)
@@ -4061,7 +4071,7 @@ endif
 
 install-exec-hook: $(INSTALL_EXEC_HOOKS)
 
-uninstall-hook: $(UNINSTALL_EXEC_HOOKS)
+uninstall-hook: $(UNINSTALL_DATA_HOOKS) $(UNINSTALL_EXEC_HOOKS)
 
 install-data-hook: systemd-install-data-hook $(INSTALL_DATA_HOOKS)
 
index 2812d5970b0ef5ac9734dc5e7bd0759f5fe24933..3735ad9213d041712a7da91a56baf98b2ba4b799 100644 (file)
@@ -269,7 +269,6 @@ static int import_file(Hashmap *h, struct strbuf *sb, const char *path) {
         return 0;
 }
 
-#define CATALOG_PATH "/var/lib/systemd/catalog"
 #define CATALOG_DATABASE CATALOG_PATH "/database"
 
 int catalog_update(void) {
@@ -414,7 +413,7 @@ static int open_mmap(int *_fd, struct stat *_st, void **_p) {
         assert(_st);
         assert(_p);
 
-        fd = open("/var/lib/systemd/catalog/database", O_RDONLY|O_CLOEXEC);
+        fd = open(CATALOG_DATABASE, O_RDONLY|O_CLOEXEC);
         if (fd < 0)
                 return -errno;