This patch seems to have been forgotten in the year since I posted it. I've rebased it against HEAD, slightly improved it and am attaching it again.
On Wed, Apr 10, 2013 at 02:30:18PM +0200, Yves Mettier wrote: > Hello, > > Probably useful. I like it. > > Regards, > Yves > > Le 2013-04-09 22:23, Dan Fandrich a écrit : > >Any comments on this patch? > > > >>>>Dan > > > >The default collectd.conf file created for me by autoconf from the > >collectd.conf.in file contains this for the first four entries with > >variable > >substitutions: > > > >#BaseDir "${prefix}/var/lib/collectd" > >#PIDFile "${prefix}/var/run/collectd.pid" > >#PluginDir "${exec_prefix}/lib/collectd" > >#TypesDB "/usr/local/share/collectd/types.db" > > > >That is, all but the last contains variable references like > >${prefix}. Needless to say, collectd doesn't expand these references > >and it ends up creating files in directories named literally > >"${prefix}". Looking at the autoconf output, it appears that all > >autoconf > >substitution variables except for @prefix@ do this, and some (like > >@execdir@) go through two levels of variable indirection. > > > >It looks like this is by design, as the autoconf documentation says > >"...you should not use these variables except in makefiles". The > >workaround > >they suggest is to use sed to do the variable substitution manually > >for each > >desired variable, instead of using AC_CONFIG_FILES. > > > >The attached patch changes collectd to use the specified method of > >replacing > >the directory variables. > > > >>>>Dan
From 4b149cdf4748d4c686b5f65cd1e67ec2df08d753 Mon Sep 17 00:00:00 2001 From: Dan Fandrich <d...@coneharvesters.com> Date: Sat, 2 Mar 2013 13:08:01 +0100 Subject: [PATCH] collectd.conf: Fixed the installation directory paths These variables are designed to be used from within a makefile, so they must be substituted from a script called from there. --- configure.ac | 13 ++++++++++-- src/Makefile.am | 13 ++++++++++++ src/{collectd.conf.in => collectd.conf.in.in} | 30 +++++++++++++-------------- 3 files changed, 39 insertions(+), 17 deletions(-) rename src/{collectd.conf.in => collectd.conf.in.in} (97%) diff --git a/configure.ac b/configure.ac index f1c7b8a..2fbf96c 100644 --- a/configure.ac +++ b/configure.ac @@ -5365,9 +5365,18 @@ AC_SUBST(LCC_VERSION_PATCH) AC_SUBST(LCC_VERSION_EXTRA) AC_SUBST(LCC_VERSION_STRING) -AC_CONFIG_FILES(src/libcollectdclient/collectd/lcc_features.h) +AC_CONFIG_FILES( + Makefile + src/Makefile + src/collectd.conf.in + src/libcollectdclient/Makefile + src/libcollectdclient/collectd/lcc_features.h + src/libcollectdclient/libcollectdclient.pc + src/liboconfig/Makefile + bindings/Makefile + bindings/java/Makefile +) -AC_CONFIG_FILES([Makefile src/Makefile src/collectd.conf src/libcollectdclient/Makefile src/libcollectdclient/libcollectdclient.pc src/liboconfig/Makefile bindings/Makefile bindings/java/Makefile]) AC_OUTPUT if test "x$with_librrd" = "xyes" \ diff --git a/src/Makefile.am b/src/Makefile.am index a9d8582..4ac08d5 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1441,6 +1441,10 @@ collectd_LDADD += "-dlopen" zfs_arc.la collectd_DEPENDENCIES += zfs_arc.la endif +collectd_conf_DATA = collectd.conf +collectd_confdir = +CLEANFILES += collectd.conf + BUILT_SOURCES += $(dist_man_MANS) dist_man_MANS = collectd.1 \ @@ -1517,6 +1521,15 @@ riemann.pb-c.c riemann.pb-c.h: riemann.proto protoc-c -I$(srcdir) --c_out . $(srcdir)/riemann.proto endif +# This is the autoconf-recommended way to substitute build path variables +# instead of AC_CONFIG_FILES +collectd.conf: collectd.conf.in + $(SED) -e 's|@localstatedir_conf[@]|$(localstatedir)|' \ + -e 's|@libdir_conf[@]|$(libdir)|' \ + -e 's|@prefix_conf[@]|$(prefix)|' \ + -e 's|@sysconfdir_conf[@]|$(sysconfdir)|' \ + $< >collectd.conf.tmp.$$$$ && mv -f collectd.conf.tmp.$$$$ $@ + install-exec-hook: $(mkinstalldirs) $(DESTDIR)$(sysconfdir) if test -e $(DESTDIR)$(sysconfdir)/collectd.conf; \ diff --git a/src/collectd.conf.in b/src/collectd.conf.in.in similarity index 97% rename from src/collectd.conf.in rename to src/collectd.conf.in.in index 830add9..8513292 100644 --- a/src/collectd.conf.in +++ b/src/collectd.conf.in.in @@ -12,10 +12,10 @@ #Hostname "localhost" #FQDNLookup true -#BaseDir "@localstatedir@/lib/@PACKAGE_NAME@" -#PIDFile "@localstatedir@/run/@PACKAGE_NAME@.pid" -#PluginDir "@libdir@/@PACKAGE_NAME@" -#TypesDB "@prefix@/share/@PACKAGE_NAME@/types.db" +#BaseDir "@localstatedir_conf@/lib/@PACKAGE_NAME@" +#PIDFile "@localstatedir_conf@/run/@PACKAGE_NAME@.pid" +#PluginDir "@libdir_conf@/@PACKAGE_NAME@" +#TypesDB "@prefix_conf@/share/@PACKAGE_NAME@/types.db" #----------------------------------------------------------------------------# # When enabled, plugins are loaded automatically with the default options # @@ -278,7 +278,7 @@ #</Plugin> #<Plugin csv> -# DataDir "@localstatedir@/lib/@PACKAGE_NAME@/csv" +# DataDir "@localstatedir_conf@/lib/@PACKAGE_NAME@/csv" # StoreRates false #</Plugin> @@ -394,7 +394,7 @@ #</Plugin> #<Plugin email> -# SocketFile "@localstatedir@/run/@PACKAGE_NAME@-email" +# SocketFile "@localstatedir_conf@/run/@PACKAGE_NAME@-email" # SocketGroup "collectd" # SocketPerms "0770" # MaxConns 5 @@ -469,7 +469,7 @@ #<Plugin "java"> # JVMArg "-verbose:jni" -# JVMArg "-Djava.class.path=@prefix@/share/collectd/java/collectd-api.jar" +# JVMArg "-Djava.class.path=@prefix_conf@/share/collectd/java/collectd-api.jar" # # LoadPlugin "org.collectd.java.Foobar" # <Plugin "org.collectd.java.Foobar"> @@ -575,7 +575,7 @@ # # <Database db_name2> # Host "localhost" -# Socket "/var/run/mysql/mysqld.sock" +# Socket "@localstatedir_conf@/run/mysql/mysqld.sock" # SlaveStats true # SlaveNotifications true # </Database> @@ -657,7 +657,7 @@ # Listen "ff18::efc0:4a42" "25826" # <Listen "239.192.74.66" "25826"> # SecurityLevel Sign -# AuthFile "/etc/collectd/passwd" +# AuthFile "@sysconfdir_conf@/collectd/passwd" # Interface "eth0" # </Listen> # MaxPacketSize 1024 @@ -836,14 +836,14 @@ # <Server "server_name"> # Collect "latency" # Collect "udp-answers" "udp-queries" -# Socket "/var/run/pdns.controlsocket" +# Socket "@localstatedir_conf@/run/pdns.controlsocket" # </Server> # <Recursor "recursor_name"> # Collect "questions" # Collect "cache-hits" "cache-misses" -# Socket "/var/run/pdns_recursor.controlsocket" +# Socket "@localstatedir_conf@/run/pdns_recursor.controlsocket" # </Recursor> -# LocalSocket "/opt/collectd/var/run/collectd-powerdns" +# LocalSocket "@localstatedir_conf@/run/collectd-powerdns" #</Plugin> #<Plugin processes> @@ -891,14 +891,14 @@ #<Plugin rrdcached> # DaemonAddress "unix:/tmp/rrdcached.sock" -# DataDir "@localstatedir@/lib/@PACKAGE_NAME@/rrd" +# DataDir "@localstatedir_conf@/lib/@PACKAGE_NAME@/rrd" # CreateFiles true # CreateFilesAsync false # CollectStatistics true #</Plugin> #<Plugin rrdtool> -# DataDir "@localstatedir@/lib/@PACKAGE_NAME@/rrd" +# DataDir "@localstatedir_conf@/lib/@PACKAGE_NAME@/rrd" # CreateFilesAsync false # CacheTimeout 120 # CacheFlush 900 @@ -1079,7 +1079,7 @@ #</Plugin> #<Plugin unixsock> -# SocketFile "@prefix@/var/run/@PACKAGE_NAME@-unixsock" +# SocketFile "@localstatedir_conf@/run/@PACKAGE_NAME@-unixsock" # SocketGroup "collectd" # SocketPerms "0660" # DeleteSocket false -- 1.8.1.5
_______________________________________________ collectd mailing list collectd@verplant.org http://mailman.verplant.org/listinfo/collectd