Backport: Introduce EXTRA_VERSION_NAME and EXTRA_VERSION_DESCRIPTION
authorJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Fri, 4 May 2018 14:53:57 +0000 (10:53 -0400)
committerJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Fri, 21 Sep 2018 04:00:52 +0000 (00:00 -0400)
Backport: remove .gitignore to accommodate dist tar patching

On version.i generation, check the content of the following files :

  * "extra_version_name"

    The first line is used to populate the EXTRA_VERSION_NAME pre-processor
    define statement.

  * "extra_version_description"

    The content is used to populate the EXTRA_VERSION_DESCRIPTION pre-processor
    define statement.

    It should contain the description of local modifications done to the tree.
    This can be used by distribution packager to specify what changes were
    applied locally. Mostly in the form of patch/commit name. All non-alpha
    numeric characters are converted to "-".

Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Makefile.am
include/Makefile.am
version/README [new file with mode: 0644]

index 63101c541ce5f9f68c52736d24d7d4bcc15f600a..d18aca1437e5f9b6ba97d222776e4bb46b2601b4 100644 (file)
@@ -14,4 +14,5 @@ dist_doc_DATA = LICENSE \
 
 dist_noinst_DATA = CodingStyle
 
-EXTRA_DIST = extras/lttng-bash_completion gpl-2.0.txt lgpl-2.1.txt
+EXTRA_DIST = extras/lttng-bash_completion gpl-2.0.txt lgpl-2.1.txt \
+            version
index 84c442292bc29ce64557f099a2d304c40392b564..833407a2a6b12141efa4a5ad1669a79505cd7efd 100644 (file)
 ## overwrite the git version with an empty string in "version.i.tmp".
 ##
 ## If we don't have a "version.i.tmp" nor a "version.i", generate an empty
-## string as a failover.
+## string as a failover. If a "version.i" is present, for example when building
+## from a distribution tarball, get the git_version using grep.
 ##
-## If we don't have a "version.i" or we have both files and they are different,
-## copy "version.i.tmp" over "version.i". This way the dependent targets are
-## only rebuilt when the version string changes.
+## Fetch the EXTRA_VERSION_NAME define from "version/extra_version_name" and output it
+## to "version.i.tmp".
+##
+## Fetch the EXTRA_VERSION_DESCRIPTION define from "version/extra_version_description",
+## sanitize and format it with a sed script to replace all non-alpha-numeric values
+## with "-" and join all lines by replacing "\n" with litteral string c-style "\n\t" and
+## output it to "version.i.tmp".
+##
+## 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
+## string or either one of extra version string change.
 ##
 version_verbose = $(version_verbose_@AM_V@)
 version_verbose_ = $(version_verbose_@AM_DEFAULT_V@)
@@ -43,10 +53,15 @@ version.i:
                fi; \
        fi; \
        if test ! -f version.i.tmp; then \
-               if test ! -f version.i; then \
-                       echo '#define GIT_VERSION ""' > version.i; \
+               if test -f version.i; then \
+                       $(GREP) "^#define \bGIT_VERSION\b.*" version.i > version.i.tmp; \
+               else \
+                       echo '#define GIT_VERSION ""' > version.i.tmp; \
                fi; \
-       elif test ! -f 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; \
+       if test ! -f version.i || \
                        test x"`cat version.i.tmp`" != x"`cat version.i`"; then \
                mv version.i.tmp version.i; \
        fi; \
diff --git a/version/README b/version/README
new file mode 100644 (file)
index 0000000..b043354
--- /dev/null
@@ -0,0 +1,16 @@
+On version.i generation, check the content of the following files :
+
+  * "extra_version_name"
+
+    The first line is used to populate the EXTRA_VERSION_NAME pre-processor
+    define statement.
+
+  * "extra_version_description"
+
+    The content is used to populate the EXTRA_VERSION_DESCRIPTION pre-processor
+    define statement.
+
+    It should contain the description of local modifications done to the tree.
+    This can be used by distribution packager to specify what changes were
+    applied locally. Mostly in the form of patch/commit name. All non-alpha
+    numeric characters are converted to "-".
This page took 0.028027 seconds and 5 git commands to generate.