summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile18
-rwxr-xr-xhack/systemd_tag.sh4
-rw-r--r--libpod.conf2
-rw-r--r--libpod/events/events.go4
-rw-r--r--libpod/events/events_linux.go8
-rw-r--r--libpod/events/journal_linux.go7
-rw-r--r--libpod/events/journal_unsupported.go8
7 files changed, 46 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index 86d0d99d2..10ba14248 100644
--- a/Makefile
+++ b/Makefile
@@ -18,7 +18,23 @@ SHAREDIR_CONTAINERS ?= ${PREFIX}/share/containers
ETCDIR ?= ${DESTDIR}/etc
TMPFILESDIR ?= ${PREFIX}/lib/tmpfiles.d
SYSTEMDDIR ?= ${PREFIX}/lib/systemd/system
-BUILDTAGS ?= seccomp $(shell hack/btrfs_tag.sh) $(shell hack/btrfs_installed_tag.sh) $(shell hack/ostree_tag.sh) $(shell hack/selinux_tag.sh) $(shell hack/apparmor_tag.sh) varlink exclude_graphdriver_devicemapper
+BUILDTAGS ?= \
+ $(shell hack/apparmor_tag.sh) \
+ $(shell hack/btrfs_installed_tag.sh) \
+ $(shell hack/btrfs_tag.sh) \
+ $(shell hack/ostree_tag.sh) \
+ $(shell hack/selinux_tag.sh) \
+ $(shell hack/systemd_tag.sh) \
+ exclude_graphdriver_devicemapper \
+ seccomp \
+ varlink
+
+ifeq (,$(findstring systemd,$(BUILDTAGS)))
+$(warning \
+ Podman is being compiled without the systemd build tag.\
+ Install libsystemd for journald support)
+endif
+
BUILDTAGS_CROSS ?= containers_image_openpgp containers_image_ostree_stub exclude_graphdriver_btrfs exclude_graphdriver_devicemapper exclude_graphdriver_overlay
ifneq (,$(findstring varlink,$(BUILDTAGS)))
PODMAN_VARLINK_DEPENDENCIES = cmd/podman/varlink/iopodman.go
diff --git a/hack/systemd_tag.sh b/hack/systemd_tag.sh
new file mode 100755
index 000000000..c59cad559
--- /dev/null
+++ b/hack/systemd_tag.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+if pkg-config --exists libsystemd; then
+ echo systemd
+fi
diff --git a/libpod.conf b/libpod.conf
index ca8d0fb36..08e80fac1 100644
--- a/libpod.conf
+++ b/libpod.conf
@@ -116,4 +116,4 @@ runc = [
# Selects which logging mechanism to use for Podman events. Valid values
# are `journald` or `file`.
-events_logger = "journald"
+# events_logger = "journald"
diff --git a/libpod/events/events.go b/libpod/events/events.go
index 650a47bfb..1ec79bcd7 100644
--- a/libpod/events/events.go
+++ b/libpod/events/events.go
@@ -10,6 +10,10 @@ import (
"github.com/pkg/errors"
)
+// ErrNoJournaldLogging indicates that there is no journald logging
+// supported (requires libsystemd)
+var ErrNoJournaldLogging = errors.New("No support for journald logging")
+
// String returns a string representation of EventerType
func (et EventerType) String() string {
if et == LogFile {
diff --git a/libpod/events/events_linux.go b/libpod/events/events_linux.go
index da5d7965e..11f309574 100644
--- a/libpod/events/events_linux.go
+++ b/libpod/events/events_linux.go
@@ -8,12 +8,14 @@ import (
)
// NewEventer creates an eventer based on the eventer type
-func NewEventer(options EventerOptions) (Eventer, error) {
- var eventer Eventer
+func NewEventer(options EventerOptions) (eventer Eventer, err error) {
logrus.Debugf("Initializing event backend %s", options.EventerType)
switch strings.ToUpper(options.EventerType) {
case strings.ToUpper(Journald.String()):
- eventer = EventJournalD{options}
+ eventer, err = newEventJournalD(options)
+ if err != nil {
+ return nil, errors.Wrapf(err, "eventer creation")
+ }
case strings.ToUpper(LogFile.String()):
eventer = EventLogFile{options}
default:
diff --git a/libpod/events/journal_linux.go b/libpod/events/journal_linux.go
index 8ba5bc2c7..264c84f89 100644
--- a/libpod/events/journal_linux.go
+++ b/libpod/events/journal_linux.go
@@ -1,3 +1,5 @@
+// +build systemd
+
package events
import (
@@ -15,6 +17,11 @@ type EventJournalD struct {
options EventerOptions
}
+// newEventJournalD creates a new journald Eventer
+func newEventJournalD(options EventerOptions) (Eventer, error) {
+ return EventJournalD{options}, nil
+}
+
// Write to journald
func (e EventJournalD) Write(ee Event) error {
m := make(map[string]string)
diff --git a/libpod/events/journal_unsupported.go b/libpod/events/journal_unsupported.go
new file mode 100644
index 000000000..c91d81f12
--- /dev/null
+++ b/libpod/events/journal_unsupported.go
@@ -0,0 +1,8 @@
+// +build !systemd
+
+package events
+
+// newEventJournalD always returns an error if libsystemd not found
+func newEventJournalD(options EventerOptions) (Eventer, error) {
+ return nil, ErrNoJournaldLogging
+}