Backport: Introduce EXTRA_VERSION_PATCHES
authorJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Mon, 14 May 2018 20:03:12 +0000 (16:03 -0400)
committerJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Thu, 28 Jun 2018 15:15:44 +0000 (11:15 -0400)
Backport: add printing into log sessiond config

This allow third-party (packagers) to provide more information about
what custom patches were applied to the tree.

To do so, one can create emtpy files in "version/extra_patches/",
the filenames will be used to generate the EXTRA_VERSION_PATCHES
define.

Add this information to the debug log of lttng-relayd and lttng-sessiond.

Also append it at the end of the "version" command of the lttng binary.

Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
include/Makefile.am
src/bin/lttng-relayd/main.c
src/bin/lttng-sessiond/main.c
src/bin/lttng/commands/version.c
version/extra_patches/README [new file with mode: 0644]

index 833407a2a6b12141efa4a5ad1669a79505cd7efd..f7cb8b13efc62aa6a30e1026263728ae1bb19eec 100644 (file)
 ## with "-" and join all lines by replacing "\n" with litteral string c-style "\n\t" and
 ## output it to "version.i.tmp".
 ##
+## Repeat the same logic for the "version/extra_patches" directory.
+## Data fetched from "version/extra_patches" must be sanitized and
+## formatted.
+## The data is fetched using "ls" with an ignore pattern for the README file.
+## The sanitize step uses sed with a script to replace all
+## non-alpha-numeric values, except " " (space), to "-".
+## The formatting step uses sed with a script to join all lines
+## by replacing "\n" with litteral string c-style "\n\t".
+##
 ## If we don't have a "version.i" or we have both files (version.i, version.i.tmp)
 ## and they are different, copy "version.i.tmp" over "version.i".
 ## This way the dependent targets are only rebuilt when the git version
@@ -61,6 +70,7 @@ version.i:
        fi; \
        echo "#define EXTRA_VERSION_NAME \"`$(SED) -n '1p' "$(top_srcdir)/version/extra_version_name" 2> /dev/null`\"" >> version.i.tmp; \
        echo "#define EXTRA_VERSION_DESCRIPTION \"`$(SED) -E ':a ; N ; $$!ba ; s/[^a-zA-Z0-9 \n\t\.,]/-/g ; s/\r{0,1}\n/\\\n\\\t/g' "$(top_srcdir)/version/extra_version_description" 2> /dev/null`\"" >> version.i.tmp; \
+       echo "#define EXTRA_VERSION_PATCHES \"`ls --ignore='README' -1 "$(top_srcdir)/version/extra_patches" | $(SED) -E ':a ; N ; $$!ba ; s/[^a-zA-Z0-9 \n\t\.]/-/g ; s/\r{0,1}\n/\\\n\\\t/g' 2> /dev/null`\"" >> version.i.tmp; \
        if test ! -f version.i || \
                        test x"`cat version.i.tmp`" != x"`cat version.i`"; then \
                mv version.i.tmp version.i; \
index b44255779460289557b7f10640bf14da9f2a190a..fbffade1a7cb753d0955b5b1008027a9eacab3a6 100644 (file)
@@ -192,6 +192,9 @@ static void relayd_config_log(void)
        if (EXTRA_VERSION_DESCRIPTION[0] != '\0') {
                DBG("LTTng-relayd extra version description:\n\t" EXTRA_VERSION_DESCRIPTION "\n");
        }
+       if (EXTRA_VERSION_PATCHES[0] != '\0') {
+               DBG("LTTng-relayd extra patches:\n\t" EXTRA_VERSION_PATCHES "\n");
+       }
 }
 
 /*
index 60a52a3c0f57631c5f486e5fb2a79c3e2ff34ac8..28d36bf2e927e0b4634301a0dbf1fb1e237e5665 100644 (file)
@@ -5067,6 +5067,9 @@ static void sessiond_config_log(void)
        if (EXTRA_VERSION_DESCRIPTION[0] != '\0') {
                DBG("LTTng-sessiond extra version description:\n\t" EXTRA_VERSION_DESCRIPTION "\n");
        }
+       if (EXTRA_VERSION_PATCHES[0] != '\0') {
+               DBG("LTTng-sessiond extra patches:\n\t" EXTRA_VERSION_PATCHES "\n");
+       }
 }
 
 static void print_version(void) {
index 5264872b89f7d17abcefbe7969f565fa6e639b84..b1ab7fd75e3b2d316e4f8cdae472db6f189bc826 100644 (file)
@@ -160,6 +160,9 @@ int cmd_version(int argc, const char **argv)
                if (EXTRA_VERSION_DESCRIPTION[0] != '\0') {
                        MSG("\nExtra version description:\n\t" EXTRA_VERSION_DESCRIPTION);
                }
+               if (EXTRA_VERSION_PATCHES[0] != '\0') {
+                       MSG("\nExtra version patches:\n\t" EXTRA_VERSION_PATCHES);
+               }
        }
 
 end:
diff --git a/version/extra_patches/README b/version/extra_patches/README
new file mode 100644 (file)
index 0000000..43c64b1
--- /dev/null
@@ -0,0 +1,8 @@
+This directory and its content is used to generate the
+EXTRA_VERSION_PATCHES constant used in "include/version.i".
+
+A third party can create a file inside this directory and its name will be
+propagated in all "version" output of the following lttng-executable:
+    lttng-relayd
+    lttng-sessiond
+    lttng
This page took 0.032196 seconds and 5 git commands to generate.