All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeremy Sowden <jeremy@azazel.net>
To: Pablo Neira Ayuso <pablo@netfilter.org>
Cc: netfilter-devel@vger.kernel.org
Subject: Re: [PATCH nft] main: add more information to `nft -V`.
Date: Wed, 4 Mar 2020 08:57:35 +0000	[thread overview]
Message-ID: <20200304085735.GA19243@azazel.net> (raw)
In-Reply-To: <20200303232341.25786-1-pablo@netfilter.org>


[-- Attachment #1.1: Type: text/plain, Size: 3482 bytes --]

On 2020-03-04, at 00:23:41 +0100, Pablo Neira Ayuso wrote:
> From: Jeremy Sowden <jeremy@azazel.net>
>
> In addition to the package-version and release-name, output the CLI
> implementation (if any) and whether mini-gmp was used, e.g.:
>
>     $ ./src/nft -V
>     nftables v0.9.3 (Topsy)
>       cli:          linenoise
>       minigmp:      no
>
> Signed-off-by: Jeremy Sowden <jeremy@azazel.net>
> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
> ---
> Hi Jeremy et al.
>
> I'm revisiting this one, it's basically your patch with a few
> mangling.
>
> I wonder if it's probably a good idea to introduce a long version
> mode.  I have seen other tools providing more verbose information
> about all build information.
>
> The idea would be to leave -v/--version as it is, and introduce -V
> which would be more verbose.
>
> Thanks.

Fine by me.  Btw, I notice that OPTSTRING contains a couple of
duplicates.  I've attached a patch to remove them.  It applies on top of
this one.

>  src/Makefile.am |  3 +++
>  src/main.c      | 32 +++++++++++++++++++++++++++++++-
>  2 files changed, 34 insertions(+), 1 deletion(-)
>
> diff --git a/src/Makefile.am b/src/Makefile.am
> index 9142ab4484f2..b4b9142bf6b0 100644
> --- a/src/Makefile.am
> +++ b/src/Makefile.am
> @@ -13,6 +13,9 @@ endif
>  if BUILD_XTABLES
>  AM_CPPFLAGS += ${XTABLES_CFLAGS}
>  endif
> +if BUILD_MINIGMP
> +AM_CPPFLAGS += -DHAVE_MINIGMP
> +endif
>
>  AM_CFLAGS = -Wall								\
>  	    -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations	\
> diff --git a/src/main.c b/src/main.c
> index 6ab1b89f4dd5..6a88e777cc1f 100644
> --- a/src/main.c
> +++ b/src/main.c
> @@ -27,6 +27,7 @@ static struct nft_ctx *nft;
>  enum opt_vals {
>  	OPT_HELP		= 'h',
>  	OPT_VERSION		= 'v',
> +	OPT_VERSION_LONG	= 'V',
>  	OPT_CHECK		= 'c',
>  	OPT_FILE		= 'f',
>  	OPT_INTERACTIVE		= 'i',
> @@ -46,7 +47,7 @@ enum opt_vals {
>  	OPT_TERSE		= 't',
>  	OPT_INVALID		= '?',
>  };
> -#define OPTSTRING	"+hvd:cf:iI:jvnsNaeSupypTt"
> +#define OPTSTRING	"+hvVd:cf:iI:jvnsNaeSupypTt"
>
>  static const struct option options[] = {
>  	{
> @@ -141,6 +142,7 @@ static void show_help(const char *name)
>  "Options:\n"
>  "  -h, --help			Show this help\n"
>  "  -v, --version			Show version information\n"
> +"  -V				Show extended version information\n"
>  "\n"
>  "  -c, --check			Check commands validity without actually applying the changes.\n"
>  "  -f, --file <filename>		Read input from <filename>\n"
> @@ -164,6 +166,31 @@ static void show_help(const char *name)
>  	name, DEFAULT_INCLUDE_PATH);
>  }
>
> +static void show_version(void)
> +{
> +	const char *cli, *minigmp;
> +
> +#if defined(HAVE_LIBREADLINE)
> +	cli = "readline";
> +#elif defined(HAVE_LIBLINENOISE)
> +	cli = "linenoise";
> +#else
> +	cli = "no";
> +#endif
> +
> +#if defined(HAVE_MINIGMP)
> +	minigmp = "yes";
> +#else
> +	minigmp = "no";
> +#endif
> +
> +	printf("%s v%s (%s)\n"
> +	       "  cli:		%s\n"
> +	       "  minigmp:	%s\n",
> +	       PACKAGE_NAME, PACKAGE_VERSION, RELEASE_NAME,
> +	       cli, minigmp);
> +}
> +
>  static const struct {
>  	const char		*name;
>  	enum nft_debug_level	level;
> @@ -272,6 +299,9 @@ int main(int argc, char * const *argv)
>  			printf("%s v%s (%s)\n",
>  			       PACKAGE_NAME, PACKAGE_VERSION, RELEASE_NAME);
>  			exit(EXIT_SUCCESS);
> +		case OPT_VERSION_LONG:
> +			show_version();
> +			exit(EXIT_SUCCESS);
>  		case OPT_CHECK:
>  			nft_ctx_set_dry_run(nft, true);
>  			break;
> --
> 2.11.0

J.

[-- Attachment #1.2: 0001-main-remove-duplicates-from-option-string.patch --]
[-- Type: text/x-diff, Size: 841 bytes --]

From a0ddf69b9ef82ccc3f3c3174f960da3d58201e31 Mon Sep 17 00:00:00 2001
From: Jeremy Sowden <jeremy@azazel.net>
Date: Wed, 4 Mar 2020 08:40:15 +0000
Subject: [PATCH] main: remove duplicates from option string.

The string of options passed to getopt_long(3) contains duplicates.
Update it to match the opt_vals enum which immediately precedes it.

Signed-off-by: Jeremy Sowden <jeremy@azazel.net>
---
 src/main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main.c b/src/main.c
index 6a88e777cc1f..90208691557f 100644
--- a/src/main.c
+++ b/src/main.c
@@ -47,7 +47,7 @@ enum opt_vals {
 	OPT_TERSE		= 't',
 	OPT_INVALID		= '?',
 };
-#define OPTSTRING	"+hvVd:cf:iI:jvnsNaeSupypTt"
+#define OPTSTRING	"+hvVcf:iI:jnsNSd:aeuypTt"
 
 static const struct option options[] = {
 	{
-- 
2.25.1


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

  reply	other threads:[~2020-03-04  8:57 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-03 23:23 [PATCH nft] main: add more information to `nft -V` Pablo Neira Ayuso
2020-03-04  8:57 ` Jeremy Sowden [this message]
2020-03-05 11:47   ` Pablo Neira Ayuso

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200304085735.GA19243@azazel.net \
    --to=jeremy@azazel.net \
    --cc=netfilter-devel@vger.kernel.org \
    --cc=pablo@netfilter.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.