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 --]
next prev parent 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.