From 2987f3288fbdc2d42e79a159ce4a9b8153f86f2d Mon Sep 17 00:00:00 2001 From: Jonathan Rajotte Date: Mon, 14 May 2018 16:03:12 -0400 Subject: [PATCH] Backport: Introduce EXTRA_VERSION_PATCHES 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 Signed-off-by: Michael Jeanson --- include/Makefile.am | 10 ++++++++++ src/bin/lttng-relayd/main.c | 3 +++ src/bin/lttng-sessiond/main.c | 3 +++ src/bin/lttng/commands/version.c | 3 +++ version/extra_patches/README | 8 ++++++++ 5 files changed, 27 insertions(+) create mode 100644 version/extra_patches/README diff --git a/include/Makefile.am b/include/Makefile.am index 833407a2a..f7cb8b13e 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -31,6 +31,15 @@ ## 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; \ diff --git a/src/bin/lttng-relayd/main.c b/src/bin/lttng-relayd/main.c index b44255779..fbffade1a 100644 --- a/src/bin/lttng-relayd/main.c +++ b/src/bin/lttng-relayd/main.c @@ -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"); + } } /* diff --git a/src/bin/lttng-sessiond/main.c b/src/bin/lttng-sessiond/main.c index 6c890f1e2..c878cda95 100644 --- a/src/bin/lttng-sessiond/main.c +++ b/src/bin/lttng-sessiond/main.c @@ -5109,6 +5109,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) { diff --git a/src/bin/lttng/commands/version.c b/src/bin/lttng/commands/version.c index 5264872b8..b1ab7fd75 100644 --- a/src/bin/lttng/commands/version.c +++ b/src/bin/lttng/commands/version.c @@ -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 index 000000000..43c64b105 --- /dev/null +++ b/version/extra_patches/README @@ -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 -- 2.34.1