nm: Install the .name file into /usr/lib/NetworkManager/VPN
authorLubomir Rintel <lkundrak@v3.sk>
Fri, 23 Oct 2015 09:29:42 +0000 (11:29 +0200)
committerTobias Brunner <tobias@strongswan.org>
Mon, 5 Sep 2016 13:30:54 +0000 (15:30 +0200)
It's the preferred location for system-provided plugins.

A compatible file in /etc is still kept. Also, the compatibility /etc
file needs to use a full path due to a bug in GNOME Shell.

The full path to a arch-dependent file in a supposedly arch-independent
file is a sin and a multilib violation in some distributions. However.
some pre-release versions of NetworkManager-1.2 as shipped by
distributions require a full path. Let's keep a configure-time option
for that.

src/frontends/gnome/Makefile.am
src/frontends/gnome/configure.ac
src/frontends/gnome/nm-strongswan-service.name.in

index 2fc793e..12fa6cf 100644 (file)
@@ -2,7 +2,7 @@ AUTOMAKE_OPTIONS = foreign
 
 SUBDIRS = properties auth-dialog po
 
-nmvpnservicedir = $(sysconfdir)/NetworkManager/VPN
+nmvpnservicedir = $(prefix)/lib/NetworkManager/VPN
 nmvpnservice_DATA = nm-strongswan-service.name
 
 @INTLTOOL_DESKTOP_RULE@
@@ -12,9 +12,24 @@ appdata_DATA = $(appdata_in_files:.xml.in=.xml)
 appdata_in_files = NetworkManager-strongswan.appdata.xml.in
 @INTLTOOL_XML_RULE@
 
+# Install a file with full path to plugins for an old gnome-shell
+# https://bugzilla.gnome.org/show_bug.cgi?id=693590
+install-data-hook:
+       mkdir -p $(DESTDIR)$(sysconfdir)/NetworkManager/VPN
+       sed -e "1s|^|# This file is obsoleted by a file in $(NM_VPN_SERVICE_DIR)\n\n|" \
+           -e 's|[@]NM_LIBEXECDIR[@]|$(nm_libexecdir)|g' \
+           -e 's|[@]NM_PLUGINDIR[@]|$(nm_plugindir)|g' \
+           -e 's|[@]CHARON[@]|$(charon)|' \
+           <$(srcdir)/nm-strongswan-service.name.in \
+           >$(DESTDIR)$(sysconfdir)/NetworkManager/VPN/nm-strongswan-service.name
+
+uninstall-hook:
+        rm -f $(DESTDIR)$(sysconfdir)/NetworkManager/VPN/nm-strongswan-service.name
+
 nm-strongswan-service.name: $(srcdir)/nm-strongswan-service.name.in
        $(AM_V_GEN) \
        sed -e 's|[@]NM_LIBEXECDIR[@]|$(nm_libexecdir)|' \
+           -e 's|[@]NM_PLUGINDIR[@]/|$(nm_plugindir_abs)|g' \
            -e 's|[@]CHARON[@]|$(charon)|' $< >$@
 
 EXTRA_DIST = \
@@ -25,7 +40,7 @@ EXTRA_DIST = \
     intltool-merge.in    \
     intltool-update.in
 
-CLEANFILES = $(nmvpnservice_DATA) $(appdata_DATA) *~
+CLEANFILES = $(appdata_DATA) *~
 DISTCLEANFILES = intltool-extract intltool-merge intltool-update
 
 ACLOCAL_AMFLAGS = -I m4
index 1a7df20..bf73d1d 100644 (file)
@@ -76,10 +76,17 @@ AC_ARG_WITH(
        [AC_SUBST(charon, "$withval")],
        [AC_SUBST(charon, "${libexecdir}/ipsec/charon-nm")]
 )
+AC_ARG_ENABLE(
+       [nm-absolute-paths],
+       AS_HELP_STRING([--enable-nm-absolute-paths],[use absolute paths for NM plugins in the .name file])
+)
+
 nm_libexecdir=$($PKG_CONFIG --variable=libgnome_serverdir NetworkManager)
 AC_SUBST(nm_libexecdir)
 nm_plugindir=$($PKG_CONFIG --variable=plugindir NetworkManager)
 AC_SUBST(nm_plugindir)
+test x"$enable_nm_absolute_paths" = x"yes" && nm_plugindir_abs="$(nm_plugindir)/"
+AC_SUBST(nm_plugindir_abs)
 
 NM_COMPILER_WARNINGS
 
index ccba0b7..eb64a22 100644 (file)
@@ -5,4 +5,4 @@ program=@CHARON@
 
 [GNOME]
 auth-dialog=@NM_LIBEXECDIR@/nm-strongswan-auth-dialog
-properties=libnm-strongswan-properties
+properties=@NM_PLUGINDIR@/libnm-strongswan-properties