linux-modules.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH kmod 0/3] Add feature list together with version
@ 2015-06-07  6:27 lucas.de.marchi
  2015-06-07  6:27 ` [PATCH kmod 1/3] build: add function to build string of features lucas.de.marchi
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: lucas.de.marchi @ 2015-06-07  6:27 UTC (permalink / raw)
  To: linux-modules
  Cc: Rusty Russell, Andreas Mohr, Andrew Morton, Bertrand Jacquin,
	Marco d'Itri, lkml, Kay Sievers, Lucas De Marchi

From: Lucas De Marchi <lucas.demarchi@intel.com>

Sample output:

$ ./tools/kmod --version
kmod version 20
+XZ +ZLIB -EXPERIMENTAL

Lucas De Marchi (3):
  build: add function to build string of features
  build: add relevant features to KMOD_FEATURES in config.h
  tools: display features together with version information

 configure.ac     |  7 +++++++
 m4/features.m4   | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 tools/depmod.c   |  1 +
 tools/insmod.c   |  1 +
 tools/kmod.c     |  1 +
 tools/modinfo.c  |  1 +
 tools/modprobe.c |  1 +
 tools/rmmod.c    |  1 +
 8 files changed, 61 insertions(+)
 create mode 100644 m4/features.m4

-- 
2.4.2

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH kmod 1/3] build: add function to build string of features
  2015-06-07  6:27 [PATCH kmod 0/3] Add feature list together with version lucas.de.marchi
@ 2015-06-07  6:27 ` lucas.de.marchi
  2015-06-07  6:27 ` [PATCH kmod 2/3] build: add relevant features to KMOD_FEATURES in config.h lucas.de.marchi
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 8+ messages in thread
From: lucas.de.marchi @ 2015-06-07  6:27 UTC (permalink / raw)
  To: linux-modules
  Cc: Rusty Russell, Andreas Mohr, Andrew Morton, Bertrand Jacquin,
	Marco d'Itri, lkml, Kay Sievers, Lucas De Marchi

From: Lucas De Marchi <lucas.demarchi@intel.com>

Add a CC_FEATURE_APPEND function that we can use to append the features
that are enabled/disabled. This will generate a single string in the
form "+FEATURE1 +FEATURE2 -FEATURE3".
---
 m4/features.m4 | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)
 create mode 100644 m4/features.m4

diff --git a/m4/features.m4 b/m4/features.m4
new file mode 100644
index 0000000..82a244f
--- /dev/null
+++ b/m4/features.m4
@@ -0,0 +1,48 @@
+#  Copyright (c) 2015 Lucas De Marchi <lucas.de.marchi@gmail.com>
+#
+#  This program is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU General Public License as published by the
+#  Free Software Foundation, either version 2 of the License, or (at your
+#  option) any later version.
+#
+#  This program is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+#  Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License along
+#  with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+#  As a special exception, the respective Autoconf Macro's copyright owner
+#  gives unlimited permission to copy, distribute and modify the configure
+#  scripts that are the output of Autoconf when processing the Macro. You
+#  need not follow the terms of the GNU General Public License when using
+#  or distributing such scripts, even though portions of the text of the
+#  Macro appear in them. The GNU General Public License (GPL) does govern
+#  all other use of the material that constitutes the Autoconf Macro.
+#
+#  This special exception to the GPL applies to versions of the Autoconf
+#  Macro released by the Autoconf Archive. When you make and distribute a
+#  modified version of the Autoconf Macro, you may extend this special
+#  exception to the GPL to apply to your modified version as well.
+#
+# CC_FEATURE_APPEND([FLAGS], [ENV-TO-CHECK], [FLAG-NAME])
+AC_DEFUN([CC_FEATURE_APPEND], [
+  AS_VAR_PUSHDEF([FLAGS], [$1])dnl
+  AS_VAR_PUSHDEF([ENV_CHECK], [$2])dnl
+  AS_VAR_PUSHDEF([FLAG_NAME], [$3])dnl
+
+  AS_CASE([" AS_VAR_GET(FLAGS) " ],
+          [*" FLAG_NAME "*], [AC_RUN_LOG([: FLAGS already contains FLAG_NAME])],
+          [
+	    AS_IF([test "x$FLAGS" != "x"], [AS_VAR_APPEND(FLAGS, " ")])
+            AS_IF([test "x$ENV_CHECK" = "xyes"],
+                  [AS_VAR_APPEND(FLAGS, "+FLAG_NAME")],
+                  [AS_VAR_APPEND(FLAGS, "-FLAG_NAME")])
+          ]
+  )
+
+  AS_VAR_POPDEF([FLAG_NAME])dnl
+  AS_VAR_POPDEF([ENV_CHECK])dnl
+  AS_VAR_POPDEF([FLAGS])dnl
+])
-- 
2.4.2

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH kmod 2/3] build: add relevant features to KMOD_FEATURES in config.h
  2015-06-07  6:27 [PATCH kmod 0/3] Add feature list together with version lucas.de.marchi
  2015-06-07  6:27 ` [PATCH kmod 1/3] build: add function to build string of features lucas.de.marchi
@ 2015-06-07  6:27 ` lucas.de.marchi
  2015-06-07  6:27 ` [PATCH kmod 3/3] tools: display features together with version information lucas.de.marchi
  2015-06-07  9:25 ` [PATCH kmod 0/3] Add feature list together with version Andreas Mohr
  3 siblings, 0 replies; 8+ messages in thread
From: lucas.de.marchi @ 2015-06-07  6:27 UTC (permalink / raw)
  To: linux-modules
  Cc: Rusty Russell, Andreas Mohr, Andrew Morton, Bertrand Jacquin,
	Marco d'Itri, lkml, Kay Sievers, Lucas De Marchi

From: Lucas De Marchi <lucas.demarchi@intel.com>

Not all the features (i.e. those available in --enable-* or --with-*)
are really relevant to the final user. Create a KMOD_FEATURES definition
in config.h containing these features.
---
 configure.ac | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/configure.ac b/configure.ac
index f83eed5..4dc59ec 100644
--- a/configure.ac
+++ b/configure.ac
@@ -92,6 +92,7 @@ AS_IF([test "x$with_xz" != "xno"], [
 ], [
 	AC_MSG_NOTICE([Xz support not requested])
 ])
+CC_FEATURE_APPEND([with_features], [with_xz], [XZ])
 
 AC_ARG_WITH([zlib],
 	AS_HELP_STRING([--with-zlib], [handle gzipped modules @<:@default=disabled@:>@]),
@@ -102,6 +103,7 @@ AS_IF([test "x$with_zlib" != "xno"], [
 ], [
 	AC_MSG_NOTICE([zlib support not requested])
 ])
+CC_FEATURE_APPEND([with_features], [with_zlib], [ZLIB])
 
 AC_ARG_WITH([bashcompletiondir],
 	AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]),
@@ -124,6 +126,7 @@ AM_CONDITIONAL([BUILD_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
 AS_IF([test "x$enable_experimental" = "xyes"], [
 	AC_DEFINE(ENABLE_EXPERIMENTAL, [1], [Experimental features.])
 ])
+CC_FEATURE_APPEND([with_features], [enable_experimental], [EXPERIMENTAL])
 
 AC_ARG_ENABLE([tools],
         AS_HELP_STRING([--disable-tools], [disable building tools that provide same functionality as module-init-tools @<:@default=enabled@:>@]),
@@ -256,6 +259,8 @@ CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [ \
 		       -Wl,--gc-sections])
 AC_SUBST([OUR_LDFLAGS], $with_ldflags)
 
+AC_DEFINE_UNQUOTED(KMOD_FEATURES, ["$with_features"], [Features in this build])
+
 #####################################################################
 # Generate files from *.in
 #####################################################################
@@ -297,4 +302,6 @@ AC_MSG_RESULT([
 	doc:			${enable_gtk_doc}
 	man:			${enable_manpages}
 	test-modules:           ${enable_test_modules}
+
+	features:               ${with_features}
 ])
-- 
2.4.2

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH kmod 3/3] tools: display features together with version information
  2015-06-07  6:27 [PATCH kmod 0/3] Add feature list together with version lucas.de.marchi
  2015-06-07  6:27 ` [PATCH kmod 1/3] build: add function to build string of features lucas.de.marchi
  2015-06-07  6:27 ` [PATCH kmod 2/3] build: add relevant features to KMOD_FEATURES in config.h lucas.de.marchi
@ 2015-06-07  6:27 ` lucas.de.marchi
  2015-06-07  9:17   ` Andreas Mohr
  2015-06-07  9:25 ` [PATCH kmod 0/3] Add feature list together with version Andreas Mohr
  3 siblings, 1 reply; 8+ messages in thread
From: lucas.de.marchi @ 2015-06-07  6:27 UTC (permalink / raw)
  To: linux-modules
  Cc: Rusty Russell, Andreas Mohr, Andrew Morton, Bertrand Jacquin,
	Marco d'Itri, lkml, Kay Sievers, Lucas De Marchi

From: Lucas De Marchi <lucas.demarchi@intel.com>

---
 tools/depmod.c   | 1 +
 tools/insmod.c   | 1 +
 tools/kmod.c     | 1 +
 tools/modinfo.c  | 1 +
 tools/modprobe.c | 1 +
 tools/rmmod.c    | 1 +
 6 files changed, 6 insertions(+)

diff --git a/tools/depmod.c b/tools/depmod.c
index 231b9ab..2a08b6e 100644
--- a/tools/depmod.c
+++ b/tools/depmod.c
@@ -2466,6 +2466,7 @@ static int do_depmod(int argc, char *argv[])
 			return EXIT_SUCCESS;
 		case 'V':
 			puts(PACKAGE " version " VERSION);
+			puts(KMOD_FEATURES);
 			return EXIT_SUCCESS;
 		case '?':
 			goto cmdline_failed;
diff --git a/tools/insmod.c b/tools/insmod.c
index 2a0accb..8e72e11 100644
--- a/tools/insmod.c
+++ b/tools/insmod.c
@@ -88,6 +88,7 @@ static int do_insmod(int argc, char *argv[])
 			return EXIT_SUCCESS;
 		case 'V':
 			puts(PACKAGE " version " VERSION);
+			puts(KMOD_FEATURES);
 			return EXIT_SUCCESS;
 		case '?':
 			return EXIT_FAILURE;
diff --git a/tools/kmod.c b/tools/kmod.c
index c9d2cc8..28217df 100644
--- a/tools/kmod.c
+++ b/tools/kmod.c
@@ -114,6 +114,7 @@ static int handle_kmod_commands(int argc, char *argv[])
 			return EXIT_SUCCESS;
 		case 'V':
 			puts("kmod version " VERSION);
+			puts(KMOD_FEATURES);
 			return EXIT_SUCCESS;
 		case '?':
 			return EXIT_FAILURE;
diff --git a/tools/modinfo.c b/tools/modinfo.c
index 94d55c9..86ac04b 100644
--- a/tools/modinfo.c
+++ b/tools/modinfo.c
@@ -405,6 +405,7 @@ static int do_modinfo(int argc, char *argv[])
 			return EXIT_SUCCESS;
 		case 'V':
 			puts(PACKAGE " version " VERSION);
+			puts(KMOD_FEATURES);
 			return EXIT_SUCCESS;
 		case '?':
 			return EXIT_FAILURE;
diff --git a/tools/modprobe.c b/tools/modprobe.c
index 8af4922..3ba8f52 100644
--- a/tools/modprobe.c
+++ b/tools/modprobe.c
@@ -824,6 +824,7 @@ static int do_modprobe(int argc, char **orig_argv)
 			break;
 		case 'V':
 			puts(PACKAGE " version " VERSION);
+			puts(KMOD_FEATURES);
 			err = 0;
 			goto done;
 		case 'h':
diff --git a/tools/rmmod.c b/tools/rmmod.c
index 75fc7b5..bcdea4c 100644
--- a/tools/rmmod.c
+++ b/tools/rmmod.c
@@ -128,6 +128,7 @@ static int do_rmmod(int argc, char *argv[])
 			return EXIT_SUCCESS;
 		case 'V':
 			puts(PACKAGE " version " VERSION);
+			puts(KMOD_FEATURES);
 			return EXIT_SUCCESS;
 		case '?':
 			return EXIT_FAILURE;
-- 
2.4.2

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH kmod 3/3] tools: display features together with version information
  2015-06-07  6:27 ` [PATCH kmod 3/3] tools: display features together with version information lucas.de.marchi
@ 2015-06-07  9:17   ` Andreas Mohr
  2015-06-09  1:42     ` Lucas De Marchi
  0 siblings, 1 reply; 8+ messages in thread
From: Andreas Mohr @ 2015-06-07  9:17 UTC (permalink / raw)
  To: lucas.de.marchi
  Cc: linux-modules, Rusty Russell, Andreas Mohr, Andrew Morton,
	Bertrand Jacquin, Marco d'Itri, lkml, Kay Sievers,
	Lucas De Marchi

Hi,

On Sun, Jun 07, 2015 at 03:27:29AM -0300, lucas.de.marchi@gmail.com wrote:
> From: Lucas De Marchi <lucas.demarchi@intel.com>
> diff --git a/tools/kmod.c b/tools/kmod.c
> index c9d2cc8..28217df 100644
> --- a/tools/kmod.c
> +++ b/tools/kmod.c
> @@ -114,6 +114,7 @@ static int handle_kmod_commands(int argc, char *argv[])
>  			return EXIT_SUCCESS;
>  		case 'V':
>  			puts("kmod version " VERSION);
> +			puts(KMOD_FEATURES);
>  			return EXIT_SUCCESS;

Hmm - seems kmod.c is the only component
which open-codes literals
rather than making use of PACKAGE define?
If this is not intended,
then it would probably be useful
to have another correction commit prior to this one
included in the series,
to have this one gain properly fully symmetric content.

> diff --git a/tools/modinfo.c b/tools/modinfo.c
> index 94d55c9..86ac04b 100644
> --- a/tools/modinfo.c
> +++ b/tools/modinfo.c
> @@ -405,6 +405,7 @@ static int do_modinfo(int argc, char *argv[])
>  			return EXIT_SUCCESS;
>  		case 'V':
>  			puts(PACKAGE " version " VERSION);
> +			puts(KMOD_FEATURES);
>  			return EXIT_SUCCESS;

Thanks,

Andreas Mohr

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH kmod 0/3] Add feature list together with version
  2015-06-07  6:27 [PATCH kmod 0/3] Add feature list together with version lucas.de.marchi
                   ` (2 preceding siblings ...)
  2015-06-07  6:27 ` [PATCH kmod 3/3] tools: display features together with version information lucas.de.marchi
@ 2015-06-07  9:25 ` Andreas Mohr
  2015-06-09  1:41   ` Lucas De Marchi
  3 siblings, 1 reply; 8+ messages in thread
From: Andreas Mohr @ 2015-06-07  9:25 UTC (permalink / raw)
  To: lucas.de.marchi
  Cc: linux-modules, Rusty Russell, Andreas Mohr, Andrew Morton,
	Bertrand Jacquin, Marco d'Itri, lkml, Kay Sievers,
	Lucas De Marchi

Hi,

On Sun, Jun 07, 2015 at 03:27:26AM -0300, lucas.de.marchi@gmail.com wrote:
> From: Lucas De Marchi <lucas.demarchi@intel.com>
> 
> Sample output:
> 
> $ ./tools/kmod --version
> kmod version 20
> +XZ +ZLIB -EXPERIMENTAL

Thank you for this important feature!
(which follows systemd format
as proposed by Kay Sievers)

While we're quite firmly on the non-kernel side here,
I'll still scribble my
Reviewed-by: Andreas Mohr <andim2@users.sf.net>

Andreas Mohr

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH kmod 0/3] Add feature list together with version
  2015-06-07  9:25 ` [PATCH kmod 0/3] Add feature list together with version Andreas Mohr
@ 2015-06-09  1:41   ` Lucas De Marchi
  0 siblings, 0 replies; 8+ messages in thread
From: Lucas De Marchi @ 2015-06-09  1:41 UTC (permalink / raw)
  To: Andreas Mohr
  Cc: linux-modules, Rusty Russell, Andrew Morton, Bertrand Jacquin,
	Marco d'Itri, lkml, Kay Sievers, Lucas De Marchi

On Sun, Jun 7, 2015 at 6:25 AM, Andreas Mohr <andi@lisas.de> wrote:
> Hi,
>
> On Sun, Jun 07, 2015 at 03:27:26AM -0300, lucas.de.marchi@gmail.com wrote:
>> From: Lucas De Marchi <lucas.demarchi@intel.com>
>>
>> Sample output:
>>
>> $ ./tools/kmod --version
>> kmod version 20
>> +XZ +ZLIB -EXPERIMENTAL
>
> Thank you for this important feature!
> (which follows systemd format
> as proposed by Kay Sievers)
>
> While we're quite firmly on the non-kernel side here,
> I'll still scribble my
> Reviewed-by: Andreas Mohr <andim2@users.sf.net>

Thanks, I now pushed it to master branch.

-- 
Lucas De Marchi

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH kmod 3/3] tools: display features together with version information
  2015-06-07  9:17   ` Andreas Mohr
@ 2015-06-09  1:42     ` Lucas De Marchi
  0 siblings, 0 replies; 8+ messages in thread
From: Lucas De Marchi @ 2015-06-09  1:42 UTC (permalink / raw)
  To: Andreas Mohr
  Cc: linux-modules, Rusty Russell, Andrew Morton, Bertrand Jacquin,
	Marco d'Itri, lkml, Kay Sievers, Lucas De Marchi

On Sun, Jun 7, 2015 at 6:17 AM, Andreas Mohr <andi@lisas.de> wrote:
> Hi,
>
> On Sun, Jun 07, 2015 at 03:27:29AM -0300, lucas.de.marchi@gmail.com wrote:
>> From: Lucas De Marchi <lucas.demarchi@intel.com>
>> diff --git a/tools/kmod.c b/tools/kmod.c
>> index c9d2cc8..28217df 100644
>> --- a/tools/kmod.c
>> +++ b/tools/kmod.c
>> @@ -114,6 +114,7 @@ static int handle_kmod_commands(int argc, char *argv[])
>>                       return EXIT_SUCCESS;
>>               case 'V':
>>                       puts("kmod version " VERSION);
>> +                     puts(KMOD_FEATURES);
>>                       return EXIT_SUCCESS;
>
> Hmm - seems kmod.c is the only component
> which open-codes literals
> rather than making use of PACKAGE define?
> If this is not intended,
> then it would probably be useful
> to have another correction commit prior to this one
> included in the series,
> to have this one gain properly fully symmetric content.

Indeed. I just added a commit doing that and pushed to master.

thanks

-- 
Lucas De Marchi

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2015-06-09  1:42 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-07  6:27 [PATCH kmod 0/3] Add feature list together with version lucas.de.marchi
2015-06-07  6:27 ` [PATCH kmod 1/3] build: add function to build string of features lucas.de.marchi
2015-06-07  6:27 ` [PATCH kmod 2/3] build: add relevant features to KMOD_FEATURES in config.h lucas.de.marchi
2015-06-07  6:27 ` [PATCH kmod 3/3] tools: display features together with version information lucas.de.marchi
2015-06-07  9:17   ` Andreas Mohr
2015-06-09  1:42     ` Lucas De Marchi
2015-06-07  9:25 ` [PATCH kmod 0/3] Add feature list together with version Andreas Mohr
2015-06-09  1:41   ` Lucas De Marchi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).