DPDK patches and discussions
 help / color / mirror / Atom feed
From: David Marchand <david.marchand@redhat.com>
To: Bruce Richardson <bruce.richardson@intel.com>
Cc: dev@dpdk.org
Subject: Re: [PATCH v2 1/3] kni: flag deprecated status at build time
Date: Fri, 7 Oct 2022 21:33:02 +0200	[thread overview]
Message-ID: <CAJFAV8wDTkJt5wqd50LGWWKujmUhxoNNyj6uNWie=8FQDNMo8g@mail.gmail.com> (raw)
In-Reply-To: <20221007150134.1110983-1-bruce.richardson@intel.com>

On Fri, Oct 7, 2022 at 5:01 PM Bruce Richardson
<bruce.richardson@intel.com> wrote:
>
> To ensure all users are aware of KNI's deprecated status at build time
> we can take the following actions:
>
> 1. disable the library by default. It can be re-enabled by setting
>    disabled_libs to the empty string (or other string not including
>    'kni')
>
> 2. add support for a list of deprecated libs to the lib/meson.build file
>    so the error message for KNI being disabled includes the fact that it
>    is a deprecated library.
>
> 3. for the dependent NIC driver, drivers/net/kni, modify its disabled
>    message to also reference the fact that KNI is disabled.
>
> NOTE: This is part of the deprecation process for KNI agreed by the DPDK
> technical board.[1]
>
> [1] http://mails.dpdk.org/archives/dev/2022-June/243596.html
>
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>

I suppose you wanted to go as simple as possible but let me suggest something.
If you think it is not worth, I am ok with the current patch and you can add:
Reviewed-by: David Marchand <david.marchand@redhat.com>


The suggestion:

By exposing the deprecated lib list to meson.build, we can make the
deprecation warning as part of {drivers,lib}/meson.build.
Then the other components depending on a deprecated library don't need
to be updated.
Like:

diff --git a/drivers/meson.build b/drivers/meson.build
index f6ba5ba4fb..f7ef22c9e6 100644
--- a/drivers/meson.build
+++ b/drivers/meson.build
@@ -133,6 +133,9 @@ foreach subpath:subdirs
                 if not is_variable('shared_rte_' + d)
                     build = false
                     reason = 'missing internal dependency, "@0@"'.format(d)
+                    if dpdk_libs_deprecated.contains(d)
+                        reason += ' (deprecated lib)'
+                    endif
                     message('Disabling @1@ [@2@]: missing internal
dependency "@0@"'
                             .format(d, name, 'drivers/' + drv_path))
                 else
diff --git a/drivers/net/kni/meson.build b/drivers/net/kni/meson.build
index 6289aa6cc3..2acc989694 100644
--- a/drivers/net/kni/meson.build
+++ b/drivers/net/kni/meson.build
@@ -6,11 +6,6 @@ if is_windows
     reason = 'not supported on Windows'
     subdir_done()
 endif
-if not dpdk_conf.has('RTE_LIB_KNI')
-    build = false
-    reason = 'needs deprecated lib, "kni"'
-    subdir_done()
-endif

 deps += 'kni'
 sources = files('rte_eth_kni.c')
diff --git a/lib/meson.build b/lib/meson.build
index 264a1671df..a17a5a986a 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -85,7 +85,8 @@ optional_libs = [
         'vhost',
 ]

-deprecated_libs = ['kni']
+dpdk_libs_deprecated += ['kni']
+
 disabled_libs = []
 opt_disabled_libs = run_command(list_dir_globs, get_option('disable_libs'),
         check: true).stdout().split()
@@ -134,11 +135,11 @@ foreach l:libraries
     if disabled_libs.contains(l)
         build = false
         reason = 'explicitly disabled via build config'
-        if deprecated_libs.contains(l)
+        if dpdk_libs_deprecated.contains(l)
             reason += ' (deprecated lib)'
         endif
     else
-        if deprecated_libs.contains(l)
+        if dpdk_libs_deprecated.contains(l)
             warning('Enabling deprecated library, "@0@"'.format(l))
         endif
         subdir(l)
@@ -156,6 +157,9 @@ foreach l:libraries
         if not is_variable('shared_rte_' + d)
             build = false
             reason = 'missing internal dependency, "@0@"'.format(d)
+            if dpdk_libs_deprecated.contains(d)
+                reason += ' (deprecated lib)'
+            endif
             message('Disabling @1@ [@2@]: missing internal dependency "@0@"'
                     .format(d, name, 'lib/' + l))
         else
diff --git a/meson.build b/meson.build
index 8b1b09ead5..8a2d64efef 100644
--- a/meson.build
+++ b/meson.build
@@ -42,6 +42,7 @@ dpdk_chkinc_headers = []
 dpdk_driver_classes = []
 dpdk_drivers = []
 dpdk_extra_ldflags = []
+dpdk_libs_deprecated = []
 dpdk_libs_disabled = []
 dpdk_drvs_disabled = []
 testpmd_drivers_sources = []


  parent reply	other threads:[~2022-10-07 19:33 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-05 14:34 [PATCH 1/2] " Bruce Richardson
2022-10-05 14:34 ` [PATCH 2/2] kni: add deprecation warning at runtime Bruce Richardson
2022-10-05 14:45 ` [PATCH 1/2] kni: flag deprecated status at build time Morten Brørup
2022-10-05 20:10 ` David Marchand
2022-10-07 10:34   ` Bruce Richardson
2022-10-07 11:08 ` David Marchand
2022-10-07 13:05   ` Bruce Richardson
2022-10-07 15:01 ` [PATCH v2 1/3] " Bruce Richardson
2022-10-07 15:01   ` [PATCH v2 2/3] kni: add deprecation warning at runtime Bruce Richardson
2022-10-07 19:34     ` David Marchand
2022-10-07 15:01   ` [PATCH v2 3/3] devtools: enable kni library for test builds Bruce Richardson
2022-10-07 19:38     ` David Marchand
2022-10-07 19:33   ` David Marchand [this message]
2022-10-10 10:44 ` [PATCH v3 1/3] kni: flag deprecated status at build time Bruce Richardson
2022-10-10 10:44   ` [PATCH v3 2/3] kni: add deprecation warning at runtime Bruce Richardson
2022-10-10 10:44   ` [PATCH v3 3/3] devtools: enable kni library for test builds Bruce Richardson
2022-10-10 15:09   ` [PATCH v3 1/3] kni: flag deprecated status at build time David Marchand

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='CAJFAV8wDTkJt5wqd50LGWWKujmUhxoNNyj6uNWie=8FQDNMo8g@mail.gmail.com' \
    --to=david.marchand@redhat.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.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 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).