From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 37F1E43873; Tue, 9 Jan 2024 15:02:27 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A65B24021F; Tue, 9 Jan 2024 15:02:26 +0100 (CET) Received: from mail-qt1-f180.google.com (mail-qt1-f180.google.com [209.85.160.180]) by mails.dpdk.org (Postfix) with ESMTP id 348714013F; Tue, 9 Jan 2024 15:02:25 +0100 (CET) Received: by mail-qt1-f180.google.com with SMTP id d75a77b69052e-429994e51fdso8127971cf.1; Tue, 09 Jan 2024 06:02:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1704808944; x=1705413744; darn=dpdk.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=yXq0H7UYpVWQ23kK1JhhFbXK4CKuH5xycwvpS/feuY0=; b=XQd602Rw9ta5IR2/6kEUGmmsev1h9GU62xrTChtzCVpuv7prcU+WlrDbXgDsDqNy2A gr2H59Y6zxPqE19yqkxSltoFVxZ1kxpbyVjOL9Er7rJhlDaVmD7qKdfkI9n8IFdhyR1i pJsx00Jaq3Kp2m1wE2IDpZ88wH8RAvLT96zUApukqwiVfqIf6/Pwx0qAWeukBD11X17b UwOWIyOgWvcT3KVRafbpCgmVZvEo1fa58AaVk4FjS4OXvv3fuUHHfMXQQ/ELOPZHqt+M pZ/EJSuOam7yZGK6bDwBjKB3kAbFYKsY/FpBqMJB9Q1vjhdbr9c9b664yUytIVvOU4xX mqkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704808944; x=1705413744; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yXq0H7UYpVWQ23kK1JhhFbXK4CKuH5xycwvpS/feuY0=; b=PyjiRrBCG5aDL5Y/X3M0fvUwYeEfmwJbz5Vp+WoRPNj118BtUC/jeMMqkGFrPvr3Yp TbKoGSiSZ4uZ3QBkMjDGQbQdq3JVDq34M9bGtP+N3Uw23bZAuCKQ0jWVe/CIZE8FW7U7 YoXMHELIAfLlLxE52aHOB5FX4lcK6x18kau+Wk/Aw4TPuJS7q4/hpYSB/r715jFpBq/E fgzqFkj0wKU5yl1k+Zzjsz1ZXBGFV2mn6taMI5kQf9ZnKmAkEeO4y0KMzlBgfSY0MlKe RYZTBgHbOX6mysbtjB92iwPjihsCqZMO7pb7j0I2vLgpHMlNJTPaetBvUQ3kOdTkVZ8T hwrQ== X-Gm-Message-State: AOJu0YxZrDvcil9VQ6k6x3QibxPzhLuOcO2qTSrRrFMc1dD0PLkjt7NL NPfqLjQtcSqlxZcMZkMpVDxC/GHaHvmBNW5NK+Y= X-Google-Smtp-Source: AGHT+IFeqtgFirx9V5JZw4gm/hssoeCmDM53dCftGkhca5a2rPX4VQB8SctZP8/O7d0x2A3QDZ/DZ2cyroA3F2uIJnQ= X-Received: by 2002:ac8:5fc2:0:b0:429:ac9d:da5b with SMTP id k2-20020ac85fc2000000b00429ac9dda5bmr446299qta.39.1704808944151; Tue, 09 Jan 2024 06:02:24 -0800 (PST) MIME-Version: 1.0 References: <20240105123042.4007877-1-jerinj@marvell.com> <20240108075850.4151361-1-jerinj@marvell.com> <98CBD80474FA8B44BF855DF32C47DC35E9F117@smartserver.smartshare.dk> In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35E9F117@smartserver.smartshare.dk> From: Jerin Jacob Date: Tue, 9 Jan 2024 19:31:57 +0530 Message-ID: Subject: Re: [dpdk-dev] [v5] doc: define qualification criteria for external library To: =?UTF-8?Q?Morten_Br=C3=B8rup?= , govboard@dpdk.org Cc: jerinj@marvell.com, dev@dpdk.org, techboard@dpdk.org, Thomas Monjalon Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On Mon, Jan 8, 2024 at 2:55=E2=80=AFPM Morten Br=C3=B8rup wrote: > > > From: jerinj@marvell.com [mailto:jerinj@marvell.com] > > Sent: Monday, 8 January 2024 08.59 > > > > Define qualification criteria for external library > > based on a techboard meeting minutes [1] and past > > learnings from mailing list discussion. > > According to the DPDK project charter, the Governing Board deals with leg= al and licensing issues, so we need their approval before publishing this. > Perhaps the Governing Board should be invited to join the discussion? + govboard@dpdk.org Not sure. I will Cc the govboard@dpdk.org in next version of patch anyway. > > > > > [1] > > http://mails.dpdk.org/archives/dev/2019-June/135847.html > > https://mails.dpdk.org/archives/dev/2024-January/284849.html > > > > Signed-off-by: Jerin Jacob > > Acked-by: Thomas Monjalon > > --- > > doc/guides/contributing/index.rst | 1 + > > .../contributing/library_dependency.rst | 52 +++++++++++++++++++ > > 2 files changed, 53 insertions(+) > > create mode 100644 doc/guides/contributing/library_dependency.rst > > > > v5: > > - Added "Dependency nature" section based on Stephen's input > > > > v4: > > - Address Thomas comments from > > https://patches.dpdk.org/project/dpdk/patch/20240105121215.3950532-1- > > jerinj@marvell.com/ > > > > v3: > > - Updated the content based on TB discussion which is documented at > > https://mails.dpdk.org/archives/dev/2024-January/284849.html > > > > v2: > > - Added "Meson build integration" and "Code readability" sections. > > > > > > diff --git a/doc/guides/contributing/index.rst > > b/doc/guides/contributing/index.rst > > index dcb9b1fbf0..e5a8c2b0a3 100644 > > --- a/doc/guides/contributing/index.rst > > +++ b/doc/guides/contributing/index.rst > > @@ -15,6 +15,7 @@ Contributor's Guidelines > > documentation > > unit_test > > new_library > > + library_dependency > > patches > > vulnerability > > stable > > diff --git a/doc/guides/contributing/library_dependency.rst > > b/doc/guides/contributing/library_dependency.rst > > new file mode 100644 > > index 0000000000..94025fdf60 > > --- /dev/null > > +++ b/doc/guides/contributing/library_dependency.rst > > @@ -0,0 +1,52 @@ > > +.. SPDX-License-Identifier: BSD-3-Clause > > + Copyright(c) 2024 Marvell. > > + > > +External Library dependency > > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > > + > > +This document defines the qualification criteria for external > > libraries that may be > > +used as dependencies in DPDK drivers or libraries. > > More background information could be added here, for context. > > Although DPDK is a BSD licensed project, we want to open the door for non= -BSD licensed external libraries in those drivers and libraries, where the = developer has the choice to omit them at build time. But not in the core pa= rts of DPDK, which must remain fully BSD licensed. > > Stephen shared some concerns about source code availability, so DPDK does= n't become a shim for a bunch of binary blobs, like some other "open" proje= ct (I cannot remember the name of the project he mentioned). We are allowin= g binary blobs, but it would be nice if we could somehow state our intentio= ns in this regard. > > > + > > +#. **Documentation:** > > + > > + - Must have adequate documentation for the steps to build it. > > + - Must have clear license documentation on distribution and usage > > aspects of external library. > > + > > +#. **Free availability:** > > + > > + - The library must be freely available to build in either source or > > binary form. > > + - It shall be downloadable from a direct link. There shall not be > > any requirement to explicitly > > + login or sign a user agreement. > > Remove "explicitly". Adding "explicitly" was decided in the meeting. There may =E2=80=9Cimplicit= " signing of user agreement by the distribution installation procedure. Like clicking allowing to install non permissive license libraries in the context of general OS installation. Not at the time of installing a specific package. > > > + > > +#. **Usage License:** > > + > > + - Both permissive (e.g., BSD-3 or Apache) and non-permissive (e.g., > > GPLv3) licenses are acceptable. > > + - In the case of a permissive license, automatic inclusion in the > > build process is assumed. > > + For non-permissive licenses, an additional build configuration > > option is required. > > We must ensure that automatic inclusion only applies to libraries with a = license that allows both free usage and free distribution. IANAL, so please= confirm that this bullet covers both? > > The default DPDK build should not include anything that is not freely dis= tributable, comes with an EULA or any other limitations or restrictions. Op= timally, the default DPDK build should remain 100 % compatible with the BSD= license. DPDK is a BSD licensed project, so any deviations from the BSD li= cense must be explicitly selected (opt-in) at build time. > > > + > > +#. **Distributions License:** > > Distributions -> Distribution Ack > > > + > > + - No specific constraints beyond documentation. > > + > > +#. **Compiler compatibility:** > > + > > + - The library must be able to compile with a DPDK supported > > compiler for the given execution > > + environment. > > We should consider cross build requirements, or at least use cross build = terminology. > > E.g. "execution environment" -> "target environment". No strong opinion. I will change to target environment. > > > + For example, for Linux, the library must be able to compile with > > GCC and/or clang. > > + - Library may be limited to a specific OS. > > Since we allow limiting to a specific OS, we should probably also allow l= imiting to specific architecture and/or hardware, e.g. something only prese= nt in a specific CPU/SoC/ASIC/FPGA: > > - - Library may be limited to a specific OS. > + - Library may be limited to a specific operating system and/or specif= ic hardware. Ack > > > + > > +#. **Meson build integration:** > > + > > + - The library must have standard method like ``pkg-config`` for > > seamless integration with > > + DPDK's build environment. > > + > > +#. **Code readability:** > > + > > + - Optional dependencies should use stubs to minimize ``ifdef`` > > clutter, promoting improved > > + code readability. > > + > > +#. **Dependency nature:** > > + > > + - The external library dependency should be optional. > > should -> must ? Ack > > > + i.e Missing external library must not impact the core > > functionality of the DPDK, specific > > + library and/or driver will not built if dependencies are not > > meet. > > Typo: meet -> met Ack > > Is the above dependency text sufficient to highlight that stricter rules = apply to DPDK core libraries? > > Do we also have sub-dependency requirements? E.g.: > > + - All of the above requirements also apply to libraries that the libr= ary itself depends on. Above text may not be needed. So, diff for next version, [main]dell[dpdk.org] $ git diff diff --git a/doc/guides/contributing/library_dependency.rst b/doc/guides/contributing/library_dependency.rst index 94025fdf60..de62fec209 100644 --- a/doc/guides/contributing/library_dependency.rst +++ b/doc/guides/contributing/library_dependency.rst @@ -6,6 +6,7 @@ External Library dependency This document defines the qualification criteria for external libraries that may be used as dependencies in DPDK drivers or libraries. +The final decision to accept or reject is at the discretion of the DPDK Project's Technical Board. #. **Documentation:** @@ -24,16 +25,16 @@ used as dependencies in DPDK drivers or libraries. - In the case of a permissive license, automatic inclusion in the build process is assumed. For non-permissive licenses, an additional build configuration option is required. -#. **Distributions License:** +#. **Distribution License:** - - No specific constraints beyond documentation. + - No specific constraints, but clear documentation on distribution usage aspects is required. #. **Compiler compatibility:** - - The library must be able to compile with a DPDK supported compiler for the given execution + - The library must be able to compile with a DPDK supported compiler for the given target environment. For example, for Linux, the library must be able to compile with GCC and/or clang. - - Library may be limited to a specific OS. + - Library may be limited to a specific OS and/or specific hardware. #. **Meson build integration:** @@ -47,6 +48,6 @@ used as dependencies in DPDK drivers or libraries. #. **Dependency nature:** - - The external library dependency should be optional. + - The external library dependency must be optional. i.e Missing external library must not impact the core functionality of the DPDK, specific - library and/or driver will not built if dependencies are not meet. + library and/or driver will not be built if dependencies are not met. > > > > -- > > 2.43.0 >