From 996778948e116479b29373d1a4aa5a297995e2ac Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Tue, 7 Jun 2011 14:01:39 +0100 Subject: [PATCH] bus: use ln -fs to enable dbus in systemd, not $(LN_S) Using $(LN_S) is inappropriate because it could in theory mean either ln -s, ln or cp -p depending on autoconf checks. Not using -f breaks reinstallation directly from source (DESTDIR unset), because the symlinks will already exist. Because systemd isn't currently portable to non-Linux, let alone non-SUS-compliant systems, it seems safe to assume that ln -fs behaves as specified by SUS if systemd was found. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=37870 --- bus/Makefile.am | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) diff --git a/bus/Makefile.am b/bus/Makefile.am index dfb3bc3..14151ce 100644 --- a/bus/Makefile.am +++ b/bus/Makefile.am @@ -202,14 +202,16 @@ install-data-hook: $(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/services $(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/system-services if HAVE_SYSTEMD -# Install dbus.socket as default implementation of a D-Bus stack +# Install dbus.socket as default implementation of a D-Bus stack. +# Deliberately not using $(LN_S) here: ln -fs is not universally portable, +# but neither is systemd, so it's OK to assume here that ln complies with SUS. $(mkinstalldirs) $(DESTDIR)$(systemdsystemunitdir)/dbus.target.wants - $(LN_S) ../dbus.socket $(DESTDIR)$(systemdsystemunitdir)/dbus.target.wants/dbus.socket + ln -fs ../dbus.socket $(DESTDIR)$(systemdsystemunitdir)/dbus.target.wants/dbus.socket # Unconditionally enable D-Bus on systemd installations $(mkinstalldirs) $(DESTDIR)$(systemdsystemunitdir)/sockets.target.wants - $(LN_S) ../dbus.socket $(DESTDIR)$(systemdsystemunitdir)/sockets.target.wants/dbus.socket + ln -fs ../dbus.socket $(DESTDIR)$(systemdsystemunitdir)/sockets.target.wants/dbus.socket $(mkinstalldirs) $(DESTDIR)$(systemdsystemunitdir)/multi-user.target.wants - $(LN_S) ../dbus.service $(DESTDIR)$(systemdsystemunitdir)/multi-user.target.wants/dbus.service + ln -fs ../dbus.service $(DESTDIR)$(systemdsystemunitdir)/multi-user.target.wants/dbus.service endif if DBUS_UNIX -- 1.7.5.3