Introduce EXTRA_VERSION_PATCHES
authorJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Mon, 14 May 2018 20:03:12 +0000 (16:03 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Tue, 8 Oct 2019 17:34:49 +0000 (13:34 -0400)
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>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
include/Makefile.am
src/bin/lttng-relayd/main.c
src/bin/lttng-sessiond/sessiond-config.c
src/bin/lttng/commands/version.c
version/extra_patches/README [new file with mode: 0644]

index 85ffa11da55af922abb9c07f98c2c70428be3c60..79597f4f2bc81984819bbc88dd7d5852010c1c4d 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 1c272c392cd5cdc135d79ec442ea42e7a4653257..2836c489ce9647325dc5a8da7d25d18ba0c684b1 100644 (file)
@@ -201,6 +201,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 7ab1f5d7bc1c005afe3820a72b2d9ea1e8bd3456..f1e3dea9dd27ee726e67a311f6f118a9981628f6 100644 (file)
@@ -508,6 +508,9 @@ void sessiond_config_log(struct sessiond_config *config)
        if (EXTRA_VERSION_DESCRIPTION[0] != '\0') {
                DBG_NO_LOC("\textra version description:\n\t%s", EXTRA_VERSION_DESCRIPTION);
        }
+       if (EXTRA_VERSION_PATCHES[0] != '\0') {
+               DBG_NO_LOC("\textra version patches:\n\t%s", EXTRA_VERSION_PATCHES);
+       }
        DBG_NO_LOC("\tverbose:                       %i", config->verbose);
        DBG_NO_LOC("\tverbose consumer:              %i", config->verbose_consumer);
        DBG_NO_LOC("\tquiet mode:                    %s", config->quiet ? "True" : "False");
index 6459e7b9f09abfe5bd25427eed783b8dad860a7f..37ab106263496685f4e71a368a600af19a34b2b7 100644 (file)
@@ -167,6 +167,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.028306 seconds and 4 git commands to generate.