DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH] doc: prefer installing using meson rather than ninja
@ 2023-06-09 10:51 Bruce Richardson
  2023-06-09 11:13 ` David Marchand
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Bruce Richardson @ 2023-06-09 10:51 UTC (permalink / raw)
  To: dev; +Cc: Bruce Richardson

After doing a build, to install DPDK system-wide our documentation
recommended using the "ninja install" command. However, for anyone
building as a non-root user and only installing as root, the "meson
install" command is a better alternative, as it provides for
automatically dropping or elevating privileges as necessary in more
recent meson releases [1].

[1] https://mesonbuild.com/Installing.html#installing-as-the-superuser

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 doc/guides/contributing/coding_style.rst     | 2 +-
 doc/guides/cryptodevs/uadk.rst               | 2 +-
 doc/guides/freebsd_gsg/build_dpdk.rst        | 2 +-
 doc/guides/freebsd_gsg/build_sample_apps.rst | 2 +-
 doc/guides/linux_gsg/build_dpdk.rst          | 2 +-
 doc/guides/prog_guide/build-sdk-meson.rst    | 4 ++--
 6 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/doc/guides/contributing/coding_style.rst b/doc/guides/contributing/coding_style.rst
index 89db6260cf..00d6270624 100644
--- a/doc/guides/contributing/coding_style.rst
+++ b/doc/guides/contributing/coding_style.rst
@@ -956,7 +956,7 @@ ext_deps
 headers
 	**Default Value = []**.
 	Used to return the list of header files for the library that should be
-	installed to $PREFIX/include when ``ninja install`` is run. As with
+	installed to $PREFIX/include when ``meson install`` is run. As with
 	source files, these should be specified using the meson ``files()``
 	function.
 	When ``check_includes`` build option is set to ``true``, each header file
diff --git a/doc/guides/cryptodevs/uadk.rst b/doc/guides/cryptodevs/uadk.rst
index 9af6b88a5a..136ab4be6a 100644
--- a/doc/guides/cryptodevs/uadk.rst
+++ b/doc/guides/cryptodevs/uadk.rst
@@ -90,7 +90,7 @@ Test steps
       meson setup build (--reconfigure)
       cd build
       ninja
-      sudo ninja install
+      sudo meson install
 
 #. Prepare hugepages for DPDK (see also :doc:`../tools/hugepages`)
 
diff --git a/doc/guides/freebsd_gsg/build_dpdk.rst b/doc/guides/freebsd_gsg/build_dpdk.rst
index 514d18c870..86e8e5a805 100644
--- a/doc/guides/freebsd_gsg/build_dpdk.rst
+++ b/doc/guides/freebsd_gsg/build_dpdk.rst
@@ -47,7 +47,7 @@ The final, install, step generally needs to be run as root::
   meson setup build
   cd build
   ninja
-  ninja install
+  meson install
 
 This will install the DPDK libraries and drivers to `/usr/local/lib` with a
 pkg-config file `libdpdk.pc` installed to `/usr/local/lib/pkgconfig`. The
diff --git a/doc/guides/freebsd_gsg/build_sample_apps.rst b/doc/guides/freebsd_gsg/build_sample_apps.rst
index c87e982759..b1ab7545b1 100644
--- a/doc/guides/freebsd_gsg/build_sample_apps.rst
+++ b/doc/guides/freebsd_gsg/build_sample_apps.rst
@@ -22,7 +22,7 @@ the system when DPDK is installed, and so can be built using GNU make.
    on the FreeBSD system.
 
 The following shows how to compile the helloworld example app, following
-the installation of DPDK using `ninja install` as described previously::
+the installation of DPDK using `meson install` as described previously::
 
         $ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
 
diff --git a/doc/guides/linux_gsg/build_dpdk.rst b/doc/guides/linux_gsg/build_dpdk.rst
index bbd2efc9d8..56a503dc96 100644
--- a/doc/guides/linux_gsg/build_dpdk.rst
+++ b/doc/guides/linux_gsg/build_dpdk.rst
@@ -68,7 +68,7 @@ Once configured, to build and then install DPDK system-wide use:
 
         cd build
         ninja
-        ninja install
+        meson install
         ldconfig
 
 The last two commands above generally need to be run as root,
diff --git a/doc/guides/prog_guide/build-sdk-meson.rst b/doc/guides/prog_guide/build-sdk-meson.rst
index 5deabbe54c..93aa1f80e3 100644
--- a/doc/guides/prog_guide/build-sdk-meson.rst
+++ b/doc/guides/prog_guide/build-sdk-meson.rst
@@ -12,7 +12,7 @@ following set of commands::
 	meson setup build
 	cd build
 	ninja
-	ninja install
+	meson install
 
 This will compile DPDK in the ``build`` subdirectory, and then install the
 resulting libraries, drivers and header files onto the system - generally
@@ -165,7 +165,7 @@ printing each command on a new line as it runs.
 Installing the Compiled Files
 ------------------------------
 
-Use ``ninja install`` to install the required DPDK files onto the system.
+Use ``meson install`` to install the required DPDK files onto the system.
 The install prefix defaults to ``/usr/local`` but can be used as with other
 options above. The environment variable ``DESTDIR`` can be used to adjust
 the root directory for the install, for example when packaging.
-- 
2.39.2


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

* Re: [PATCH] doc: prefer installing using meson rather than ninja
  2023-06-09 10:51 [PATCH] doc: prefer installing using meson rather than ninja Bruce Richardson
@ 2023-06-09 11:13 ` David Marchand
  2023-06-09 11:19   ` Bruce Richardson
  2023-06-09 13:34 ` [PATCH v2] " Bruce Richardson
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 10+ messages in thread
From: David Marchand @ 2023-06-09 11:13 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev

On Fri, Jun 9, 2023 at 12:52 PM Bruce Richardson
<bruce.richardson@intel.com> wrote:
>
> After doing a build, to install DPDK system-wide our documentation
> recommended using the "ninja install" command. However, for anyone
> building as a non-root user and only installing as root, the "meson
> install" command is a better alternative, as it provides for
> automatically dropping or elevating privileges as necessary in more
> recent meson releases [1].
>
> [1] https://mesonbuild.com/Installing.html#installing-as-the-superuser
>
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>

Should we align the CI scripts?


-- 
David Marchand


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

* Re: [PATCH] doc: prefer installing using meson rather than ninja
  2023-06-09 11:13 ` David Marchand
@ 2023-06-09 11:19   ` Bruce Richardson
  2023-06-09 11:21     ` David Marchand
  0 siblings, 1 reply; 10+ messages in thread
From: Bruce Richardson @ 2023-06-09 11:19 UTC (permalink / raw)
  To: David Marchand; +Cc: dev

On Fri, Jun 09, 2023 at 01:13:15PM +0200, David Marchand wrote:
> On Fri, Jun 9, 2023 at 12:52 PM Bruce Richardson
> <bruce.richardson@intel.com> wrote:
> >
> > After doing a build, to install DPDK system-wide our documentation
> > recommended using the "ninja install" command. However, for anyone
> > building as a non-root user and only installing as root, the "meson
> > install" command is a better alternative, as it provides for
> > automatically dropping or elevating privileges as necessary in more
> > recent meson releases [1].
> >
> > [1] https://mesonbuild.com/Installing.html#installing-as-the-superuser
> >
> > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> 
> Should we align the CI scripts?
> 
Hadn't considered it.

For them, it probably doesn't matter. This change is only really for
someone building as one user and then doing a sudo install. The CI scripts
don't install system-wide so don't need any privilege changes.

However, if you think our CI should just align with the practice in the
docs, I can do a V2 with some CI changes too.

/Bruce

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

* Re: [PATCH] doc: prefer installing using meson rather than ninja
  2023-06-09 11:19   ` Bruce Richardson
@ 2023-06-09 11:21     ` David Marchand
  0 siblings, 0 replies; 10+ messages in thread
From: David Marchand @ 2023-06-09 11:21 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev

On Fri, Jun 9, 2023 at 1:19 PM Bruce Richardson
<bruce.richardson@intel.com> wrote:
>
> On Fri, Jun 09, 2023 at 01:13:15PM +0200, David Marchand wrote:
> > On Fri, Jun 9, 2023 at 12:52 PM Bruce Richardson
> > <bruce.richardson@intel.com> wrote:
> > >
> > > After doing a build, to install DPDK system-wide our documentation
> > > recommended using the "ninja install" command. However, for anyone
> > > building as a non-root user and only installing as root, the "meson
> > > install" command is a better alternative, as it provides for
> > > automatically dropping or elevating privileges as necessary in more
> > > recent meson releases [1].
> > >
> > > [1] https://mesonbuild.com/Installing.html#installing-as-the-superuser
> > >
> > > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> >
> > Should we align the CI scripts?
> >
> Hadn't considered it.
>
> For them, it probably doesn't matter. This change is only really for
> someone building as one user and then doing a sudo install. The CI scripts
> don't install system-wide so don't need any privilege changes.
>
> However, if you think our CI should just align with the practice in the
> docs, I can do a V2 with some CI changes too.

My concern is that we recommend something we are not testing.
So I'd prefer we have some minimal testing.


-- 
David Marchand


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

* [PATCH v2] doc: prefer installing using meson rather than ninja
  2023-06-09 10:51 [PATCH] doc: prefer installing using meson rather than ninja Bruce Richardson
  2023-06-09 11:13 ` David Marchand
@ 2023-06-09 13:34 ` Bruce Richardson
  2023-06-09 14:51 ` [PATCH v3] " Bruce Richardson
  2023-06-23 11:43 ` [PATCH v4] " Bruce Richardson
  3 siblings, 0 replies; 10+ messages in thread
From: Bruce Richardson @ 2023-06-09 13:34 UTC (permalink / raw)
  To: dev; +Cc: david.marchand, Bruce Richardson

After doing a build, to install DPDK system-wide our documentation
recommended using the "ninja install" command. However, for anyone
building as a non-root user and only installing as root, the "meson
install" command is a better alternative, as it provides for
automatically dropping or elevating privileges as necessary in more
recent meson releases [1].

[1] https://mesonbuild.com/Installing.html#installing-as-the-superuser

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>

---
V2:
* Fix one missed reference to "ninja install" in Linux GSG
* Changed CI scripts to use "meson install" to ensure step is properly
  tested.
---
 .ci/linux-build.sh                           | 4 ++--
 doc/guides/contributing/coding_style.rst     | 2 +-
 doc/guides/cryptodevs/uadk.rst               | 2 +-
 doc/guides/freebsd_gsg/build_dpdk.rst        | 2 +-
 doc/guides/freebsd_gsg/build_sample_apps.rst | 2 +-
 doc/guides/linux_gsg/build_dpdk.rst          | 4 ++--
 doc/guides/prog_guide/build-sdk-meson.rst    | 4 ++--
 7 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index 9631e342b5..69ca46a6a1 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -150,14 +150,14 @@ if [ "$ABI_CHECKS" = "true" ]; then
         git clone --single-branch -b "$REF_GIT_TAG" $REF_GIT_REPO $refsrcdir
         meson setup $OPTS -Dexamples= $refsrcdir $refsrcdir/build
         ninja -C $refsrcdir/build
-        DESTDIR=$(pwd)/reference ninja -C $refsrcdir/build install
+        DESTDIR=$(pwd)/reference meson -C $refsrcdir/build install
         find reference/usr/local -name '*.a' -delete
         rm -rf reference/usr/local/bin
         rm -rf reference/usr/local/share
         echo $REF_GIT_TAG > reference/VERSION
     fi
 
-    DESTDIR=$(pwd)/install ninja -C build install
+    DESTDIR=$(pwd)/install meson -C build install
     devtools/check-abi.sh reference install ${ABI_CHECKS_WARN_ONLY:-}
 fi
 
diff --git a/doc/guides/contributing/coding_style.rst b/doc/guides/contributing/coding_style.rst
index 89db6260cf..00d6270624 100644
--- a/doc/guides/contributing/coding_style.rst
+++ b/doc/guides/contributing/coding_style.rst
@@ -956,7 +956,7 @@ ext_deps
 headers
 	**Default Value = []**.
 	Used to return the list of header files for the library that should be
-	installed to $PREFIX/include when ``ninja install`` is run. As with
+	installed to $PREFIX/include when ``meson install`` is run. As with
 	source files, these should be specified using the meson ``files()``
 	function.
 	When ``check_includes`` build option is set to ``true``, each header file
diff --git a/doc/guides/cryptodevs/uadk.rst b/doc/guides/cryptodevs/uadk.rst
index 9af6b88a5a..136ab4be6a 100644
--- a/doc/guides/cryptodevs/uadk.rst
+++ b/doc/guides/cryptodevs/uadk.rst
@@ -90,7 +90,7 @@ Test steps
       meson setup build (--reconfigure)
       cd build
       ninja
-      sudo ninja install
+      sudo meson install
 
 #. Prepare hugepages for DPDK (see also :doc:`../tools/hugepages`)
 
diff --git a/doc/guides/freebsd_gsg/build_dpdk.rst b/doc/guides/freebsd_gsg/build_dpdk.rst
index 514d18c870..86e8e5a805 100644
--- a/doc/guides/freebsd_gsg/build_dpdk.rst
+++ b/doc/guides/freebsd_gsg/build_dpdk.rst
@@ -47,7 +47,7 @@ The final, install, step generally needs to be run as root::
   meson setup build
   cd build
   ninja
-  ninja install
+  meson install
 
 This will install the DPDK libraries and drivers to `/usr/local/lib` with a
 pkg-config file `libdpdk.pc` installed to `/usr/local/lib/pkgconfig`. The
diff --git a/doc/guides/freebsd_gsg/build_sample_apps.rst b/doc/guides/freebsd_gsg/build_sample_apps.rst
index c87e982759..b1ab7545b1 100644
--- a/doc/guides/freebsd_gsg/build_sample_apps.rst
+++ b/doc/guides/freebsd_gsg/build_sample_apps.rst
@@ -22,7 +22,7 @@ the system when DPDK is installed, and so can be built using GNU make.
    on the FreeBSD system.
 
 The following shows how to compile the helloworld example app, following
-the installation of DPDK using `ninja install` as described previously::
+the installation of DPDK using `meson install` as described previously::
 
         $ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
 
diff --git a/doc/guides/linux_gsg/build_dpdk.rst b/doc/guides/linux_gsg/build_dpdk.rst
index bbd2efc9d8..9c0dd9daf6 100644
--- a/doc/guides/linux_gsg/build_dpdk.rst
+++ b/doc/guides/linux_gsg/build_dpdk.rst
@@ -68,11 +68,11 @@ Once configured, to build and then install DPDK system-wide use:
 
         cd build
         ninja
-        ninja install
+        meson install
         ldconfig
 
 The last two commands above generally need to be run as root,
-with the `ninja install` step copying the built objects to their final system-wide locations,
+with the `meson install` step copying the built objects to their final system-wide locations,
 and the last step causing the dynamic loader `ld.so` to update its cache to take account of the new objects.
 
 .. note::
diff --git a/doc/guides/prog_guide/build-sdk-meson.rst b/doc/guides/prog_guide/build-sdk-meson.rst
index 5deabbe54c..93aa1f80e3 100644
--- a/doc/guides/prog_guide/build-sdk-meson.rst
+++ b/doc/guides/prog_guide/build-sdk-meson.rst
@@ -12,7 +12,7 @@ following set of commands::
 	meson setup build
 	cd build
 	ninja
-	ninja install
+	meson install
 
 This will compile DPDK in the ``build`` subdirectory, and then install the
 resulting libraries, drivers and header files onto the system - generally
@@ -165,7 +165,7 @@ printing each command on a new line as it runs.
 Installing the Compiled Files
 ------------------------------
 
-Use ``ninja install`` to install the required DPDK files onto the system.
+Use ``meson install`` to install the required DPDK files onto the system.
 The install prefix defaults to ``/usr/local`` but can be used as with other
 options above. The environment variable ``DESTDIR`` can be used to adjust
 the root directory for the install, for example when packaging.
-- 
2.39.2


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

* [PATCH v3] doc: prefer installing using meson rather than ninja
  2023-06-09 10:51 [PATCH] doc: prefer installing using meson rather than ninja Bruce Richardson
  2023-06-09 11:13 ` David Marchand
  2023-06-09 13:34 ` [PATCH v2] " Bruce Richardson
@ 2023-06-09 14:51 ` Bruce Richardson
  2023-06-22 18:35   ` Thomas Monjalon
  2023-06-23 11:43 ` [PATCH v4] " Bruce Richardson
  3 siblings, 1 reply; 10+ messages in thread
From: Bruce Richardson @ 2023-06-09 14:51 UTC (permalink / raw)
  To: dev; +Cc: david.marchand, Bruce Richardson

After doing a build, to install DPDK system-wide our documentation
recommended using the "ninja install" command. However, for anyone
building as a non-root user and only installing as root, the "meson
install" command is a better alternative, as it provides for
automatically dropping or elevating privileges as necessary in more
recent meson releases [1].

[1] https://mesonbuild.com/Installing.html#installing-as-the-superuser

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>

---
V3:
* correct order of arguments to meson in CI scripts. The "-C" option
  must follow the meson "install" command. [This is consistent with
  other uses e.g. meson compile -C ..., meson test -C ...]

V2:
* Fix one missed reference to "ninja install" in Linux GSG
* Changed CI scripts to use "meson install" to ensure step is properly
  tested.
---
 .ci/linux-build.sh                           | 4 ++--
 doc/guides/contributing/coding_style.rst     | 2 +-
 doc/guides/cryptodevs/uadk.rst               | 2 +-
 doc/guides/freebsd_gsg/build_dpdk.rst        | 2 +-
 doc/guides/freebsd_gsg/build_sample_apps.rst | 2 +-
 doc/guides/linux_gsg/build_dpdk.rst          | 4 ++--
 doc/guides/prog_guide/build-sdk-meson.rst    | 4 ++--
 7 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index 9631e342b5..76d3e776af 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -150,14 +150,14 @@ if [ "$ABI_CHECKS" = "true" ]; then
         git clone --single-branch -b "$REF_GIT_TAG" $REF_GIT_REPO $refsrcdir
         meson setup $OPTS -Dexamples= $refsrcdir $refsrcdir/build
         ninja -C $refsrcdir/build
-        DESTDIR=$(pwd)/reference ninja -C $refsrcdir/build install
+        DESTDIR=$(pwd)/reference meson install -C $refsrcdir/build
         find reference/usr/local -name '*.a' -delete
         rm -rf reference/usr/local/bin
         rm -rf reference/usr/local/share
         echo $REF_GIT_TAG > reference/VERSION
     fi
 
-    DESTDIR=$(pwd)/install ninja -C build install
+    DESTDIR=$(pwd)/install meson install -C build
     devtools/check-abi.sh reference install ${ABI_CHECKS_WARN_ONLY:-}
 fi
 
diff --git a/doc/guides/contributing/coding_style.rst b/doc/guides/contributing/coding_style.rst
index 89db6260cf..00d6270624 100644
--- a/doc/guides/contributing/coding_style.rst
+++ b/doc/guides/contributing/coding_style.rst
@@ -956,7 +956,7 @@ ext_deps
 headers
 	**Default Value = []**.
 	Used to return the list of header files for the library that should be
-	installed to $PREFIX/include when ``ninja install`` is run. As with
+	installed to $PREFIX/include when ``meson install`` is run. As with
 	source files, these should be specified using the meson ``files()``
 	function.
 	When ``check_includes`` build option is set to ``true``, each header file
diff --git a/doc/guides/cryptodevs/uadk.rst b/doc/guides/cryptodevs/uadk.rst
index 9af6b88a5a..136ab4be6a 100644
--- a/doc/guides/cryptodevs/uadk.rst
+++ b/doc/guides/cryptodevs/uadk.rst
@@ -90,7 +90,7 @@ Test steps
       meson setup build (--reconfigure)
       cd build
       ninja
-      sudo ninja install
+      sudo meson install
 
 #. Prepare hugepages for DPDK (see also :doc:`../tools/hugepages`)
 
diff --git a/doc/guides/freebsd_gsg/build_dpdk.rst b/doc/guides/freebsd_gsg/build_dpdk.rst
index 514d18c870..86e8e5a805 100644
--- a/doc/guides/freebsd_gsg/build_dpdk.rst
+++ b/doc/guides/freebsd_gsg/build_dpdk.rst
@@ -47,7 +47,7 @@ The final, install, step generally needs to be run as root::
   meson setup build
   cd build
   ninja
-  ninja install
+  meson install
 
 This will install the DPDK libraries and drivers to `/usr/local/lib` with a
 pkg-config file `libdpdk.pc` installed to `/usr/local/lib/pkgconfig`. The
diff --git a/doc/guides/freebsd_gsg/build_sample_apps.rst b/doc/guides/freebsd_gsg/build_sample_apps.rst
index c87e982759..b1ab7545b1 100644
--- a/doc/guides/freebsd_gsg/build_sample_apps.rst
+++ b/doc/guides/freebsd_gsg/build_sample_apps.rst
@@ -22,7 +22,7 @@ the system when DPDK is installed, and so can be built using GNU make.
    on the FreeBSD system.
 
 The following shows how to compile the helloworld example app, following
-the installation of DPDK using `ninja install` as described previously::
+the installation of DPDK using `meson install` as described previously::
 
         $ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
 
diff --git a/doc/guides/linux_gsg/build_dpdk.rst b/doc/guides/linux_gsg/build_dpdk.rst
index bbd2efc9d8..9c0dd9daf6 100644
--- a/doc/guides/linux_gsg/build_dpdk.rst
+++ b/doc/guides/linux_gsg/build_dpdk.rst
@@ -68,11 +68,11 @@ Once configured, to build and then install DPDK system-wide use:
 
         cd build
         ninja
-        ninja install
+        meson install
         ldconfig
 
 The last two commands above generally need to be run as root,
-with the `ninja install` step copying the built objects to their final system-wide locations,
+with the `meson install` step copying the built objects to their final system-wide locations,
 and the last step causing the dynamic loader `ld.so` to update its cache to take account of the new objects.
 
 .. note::
diff --git a/doc/guides/prog_guide/build-sdk-meson.rst b/doc/guides/prog_guide/build-sdk-meson.rst
index 5deabbe54c..93aa1f80e3 100644
--- a/doc/guides/prog_guide/build-sdk-meson.rst
+++ b/doc/guides/prog_guide/build-sdk-meson.rst
@@ -12,7 +12,7 @@ following set of commands::
 	meson setup build
 	cd build
 	ninja
-	ninja install
+	meson install
 
 This will compile DPDK in the ``build`` subdirectory, and then install the
 resulting libraries, drivers and header files onto the system - generally
@@ -165,7 +165,7 @@ printing each command on a new line as it runs.
 Installing the Compiled Files
 ------------------------------
 
-Use ``ninja install`` to install the required DPDK files onto the system.
+Use ``meson install`` to install the required DPDK files onto the system.
 The install prefix defaults to ``/usr/local`` but can be used as with other
 options above. The environment variable ``DESTDIR`` can be used to adjust
 the root directory for the install, for example when packaging.
-- 
2.39.2


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

* Re: [PATCH v3] doc: prefer installing using meson rather than ninja
  2023-06-09 14:51 ` [PATCH v3] " Bruce Richardson
@ 2023-06-22 18:35   ` Thomas Monjalon
  2023-06-23  7:54     ` Bruce Richardson
  0 siblings, 1 reply; 10+ messages in thread
From: Thomas Monjalon @ 2023-06-22 18:35 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev, david.marchand

09/06/2023 16:51, Bruce Richardson:
> After doing a build, to install DPDK system-wide our documentation
> recommended using the "ninja install" command. However, for anyone
> building as a non-root user and only installing as root, the "meson
> install" command is a better alternative, as it provides for
> automatically dropping or elevating privileges as necessary in more
> recent meson releases [1].
> 
> [1] https://mesonbuild.com/Installing.html#installing-as-the-superuser
> 
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> 
> ---
> V3:
> * correct order of arguments to meson in CI scripts. The "-C" option
>   must follow the meson "install" command. [This is consistent with
>   other uses e.g. meson compile -C ..., meson test -C ...]
> 
> V2:
> * Fix one missed reference to "ninja install" in Linux GSG
> * Changed CI scripts to use "meson install" to ensure step is properly
>   tested.
> ---
>  .ci/linux-build.sh                           | 4 ++--
>  doc/guides/contributing/coding_style.rst     | 2 +-
>  doc/guides/cryptodevs/uadk.rst               | 2 +-
>  doc/guides/freebsd_gsg/build_dpdk.rst        | 2 +-
>  doc/guides/freebsd_gsg/build_sample_apps.rst | 2 +-
>  doc/guides/linux_gsg/build_dpdk.rst          | 4 ++--
>  doc/guides/prog_guide/build-sdk-meson.rst    | 4 ++--
>  7 files changed, 10 insertions(+), 10 deletions(-)

I see other occurences which could be replaced:

.ci/linux-build.sh:    [ -d install ] || DESTDIR=$(pwd)/install ninja -C build install
devtools/test-meson-builds.sh:  echo "DESTDIR=$2 $ninja_cmd -C $1 install" >&$verbose
devtools/test-meson-builds.sh:  DESTDIR=$2 $ninja_cmd -C $1 install >&$veryverbose
doc/guides/nics/mlx4.rst:    ninja install
doc/guides/platform/mlx5.rst:    ninja install




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

* Re: [PATCH v3] doc: prefer installing using meson rather than ninja
  2023-06-22 18:35   ` Thomas Monjalon
@ 2023-06-23  7:54     ` Bruce Richardson
  0 siblings, 0 replies; 10+ messages in thread
From: Bruce Richardson @ 2023-06-23  7:54 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev, david.marchand

On Thu, Jun 22, 2023 at 08:35:17PM +0200, Thomas Monjalon wrote:
> 09/06/2023 16:51, Bruce Richardson:
> > After doing a build, to install DPDK system-wide our documentation
> > recommended using the "ninja install" command. However, for anyone
> > building as a non-root user and only installing as root, the "meson
> > install" command is a better alternative, as it provides for
> > automatically dropping or elevating privileges as necessary in more
> > recent meson releases [1].
> > 
> > [1] https://mesonbuild.com/Installing.html#installing-as-the-superuser
> > 
> > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> > 
> > ---
> > V3:
> > * correct order of arguments to meson in CI scripts. The "-C" option
> >   must follow the meson "install" command. [This is consistent with
> >   other uses e.g. meson compile -C ..., meson test -C ...]
> > 
> > V2:
> > * Fix one missed reference to "ninja install" in Linux GSG
> > * Changed CI scripts to use "meson install" to ensure step is properly
> >   tested.
> > ---
> >  .ci/linux-build.sh                           | 4 ++--
> >  doc/guides/contributing/coding_style.rst     | 2 +-
> >  doc/guides/cryptodevs/uadk.rst               | 2 +-
> >  doc/guides/freebsd_gsg/build_dpdk.rst        | 2 +-
> >  doc/guides/freebsd_gsg/build_sample_apps.rst | 2 +-
> >  doc/guides/linux_gsg/build_dpdk.rst          | 4 ++--
> >  doc/guides/prog_guide/build-sdk-meson.rst    | 4 ++--
> >  7 files changed, 10 insertions(+), 10 deletions(-)
> 
> I see other occurences which could be replaced:
> 
> .ci/linux-build.sh:    [ -d install ] || DESTDIR=$(pwd)/install ninja -C build install

Yes, this could be replaced, I somehow missed it.

> devtools/test-meson-builds.sh:  echo "DESTDIR=$2 $ninja_cmd -C $1 install" >&$verbose
> devtools/test-meson-builds.sh:  DESTDIR=$2 $ninja_cmd -C $1 install >&$veryverbose

While these could be replaced, the use of ninja is not a problem here, as
the whole script runs with user permissions. I'll consider replacing them
in a new version, though.

> doc/guides/nics/mlx4.rst:    ninja install
> doc/guides/platform/mlx5.rst:    ninja install

I looked at these before when doing the patch. They need to stay as they
are. They are part of instructions for installing the mlx driver
dependencies, which use cmake, not meson.

/Bruce

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

* [PATCH v4] doc: prefer installing using meson rather than ninja
  2023-06-09 10:51 [PATCH] doc: prefer installing using meson rather than ninja Bruce Richardson
                   ` (2 preceding siblings ...)
  2023-06-09 14:51 ` [PATCH v3] " Bruce Richardson
@ 2023-06-23 11:43 ` Bruce Richardson
  2023-06-28  0:01   ` Thomas Monjalon
  3 siblings, 1 reply; 10+ messages in thread
From: Bruce Richardson @ 2023-06-23 11:43 UTC (permalink / raw)
  To: dev; +Cc: thomas, david.marchand, Bruce Richardson

After doing a build, to install DPDK system-wide our documentation
recommended using the "ninja install" command. However, for anyone
building as a non-root user and only installing as root, the "meson
install" command is a better alternative, as it provides for
automatically dropping or elevating privileges as necessary in more
recent meson releases [1].

[1] https://mesonbuild.com/Installing.html#installing-as-the-superuser

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>

---

V4:
* replaced missed calls to ninja install in ci script and
  test-meson-builds script.

V3:
* correct order of arguments to meson in CI scripts. The "-C" option
  must follow the meson "install" command. [This is consistent with
  other uses e.g. meson compile -C ..., meson test -C ...]

V2:
* Fix one missed reference to "ninja install" in Linux GSG
* Changed CI scripts to use "meson install" to ensure step is
  properly tested.
---
 .ci/linux-build.sh                           | 6 +++---
 devtools/test-meson-builds.sh                | 4 ++--
 doc/guides/contributing/coding_style.rst     | 2 +-
 doc/guides/cryptodevs/uadk.rst               | 2 +-
 doc/guides/freebsd_gsg/build_dpdk.rst        | 2 +-
 doc/guides/freebsd_gsg/build_sample_apps.rst | 2 +-
 doc/guides/linux_gsg/build_dpdk.rst          | 4 ++--
 doc/guides/prog_guide/build-sdk-meson.rst    | 4 ++--
 8 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index d0d9f89bae..45f2729996 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -151,14 +151,14 @@ if [ "$ABI_CHECKS" = "true" ]; then
         git clone --single-branch -b "$REF_GIT_TAG" $REF_GIT_REPO $refsrcdir
         meson setup $OPTS -Dexamples= $refsrcdir $refsrcdir/build
         ninja -C $refsrcdir/build
-        DESTDIR=$(pwd)/reference ninja -C $refsrcdir/build install
+        DESTDIR=$(pwd)/reference meson install -C $refsrcdir/build
         find reference/usr/local -name '*.a' -delete
         rm -rf reference/usr/local/bin
         rm -rf reference/usr/local/share
         echo $REF_GIT_TAG > reference/VERSION
     fi
 
-    DESTDIR=$(pwd)/install ninja -C build install
+    DESTDIR=$(pwd)/install meson install -C build
     devtools/check-abi.sh reference install ${ABI_CHECKS_WARN_ONLY:-}
 fi
 
@@ -172,7 +172,7 @@ fi
 
 # Test examples compilation with an installed dpdk
 if [ "$BUILD_EXAMPLES" = "true" ]; then
-    [ -d install ] || DESTDIR=$(pwd)/install ninja -C build install
+    [ -d install ] || DESTDIR=$(pwd)/install meson install -C build
     export LD_LIBRARY_PATH=$(dirname $(find $(pwd)/install -name librte_eal.so)):$LD_LIBRARY_PATH
     export PKG_CONFIG_PATH=$(dirname $(find $(pwd)/install -name libdpdk.pc)):$PKG_CONFIG_PATH
     export PKGCONF="pkg-config --define-prefix"
diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh
index 1eb28a2490..84b907d2ea 100755
--- a/devtools/test-meson-builds.sh
+++ b/devtools/test-meson-builds.sh
@@ -158,8 +158,8 @@ compile () # <builddir>
 install_target () # <builddir> <installdir>
 {
 	rm -rf $2
-	echo "DESTDIR=$2 $ninja_cmd -C $1 install" >&$verbose
-	DESTDIR=$2 $ninja_cmd -C $1 install >&$veryverbose
+	echo "DESTDIR=$2 $MESON install -C $1" >&$verbose
+	DESTDIR=$2 $MESON install -C $1 >&$veryverbose
 }
 
 build () # <directory> <target cc | cross file> <ABI check> [meson options]
diff --git a/doc/guides/contributing/coding_style.rst b/doc/guides/contributing/coding_style.rst
index 0861305dc6..13b2390d9e 100644
--- a/doc/guides/contributing/coding_style.rst
+++ b/doc/guides/contributing/coding_style.rst
@@ -975,7 +975,7 @@ ext_deps
 headers
 	**Default Value = []**.
 	Used to return the list of header files for the library that should be
-	installed to $PREFIX/include when ``ninja install`` is run. As with
+	installed to $PREFIX/include when ``meson install`` is run. As with
 	source files, these should be specified using the meson ``files()``
 	function.
 	When ``check_includes`` build option is set to ``true``, each header file
diff --git a/doc/guides/cryptodevs/uadk.rst b/doc/guides/cryptodevs/uadk.rst
index 9af6b88a5a..136ab4be6a 100644
--- a/doc/guides/cryptodevs/uadk.rst
+++ b/doc/guides/cryptodevs/uadk.rst
@@ -90,7 +90,7 @@ Test steps
       meson setup build (--reconfigure)
       cd build
       ninja
-      sudo ninja install
+      sudo meson install
 
 #. Prepare hugepages for DPDK (see also :doc:`../tools/hugepages`)
 
diff --git a/doc/guides/freebsd_gsg/build_dpdk.rst b/doc/guides/freebsd_gsg/build_dpdk.rst
index 514d18c870..86e8e5a805 100644
--- a/doc/guides/freebsd_gsg/build_dpdk.rst
+++ b/doc/guides/freebsd_gsg/build_dpdk.rst
@@ -47,7 +47,7 @@ The final, install, step generally needs to be run as root::
   meson setup build
   cd build
   ninja
-  ninja install
+  meson install
 
 This will install the DPDK libraries and drivers to `/usr/local/lib` with a
 pkg-config file `libdpdk.pc` installed to `/usr/local/lib/pkgconfig`. The
diff --git a/doc/guides/freebsd_gsg/build_sample_apps.rst b/doc/guides/freebsd_gsg/build_sample_apps.rst
index c87e982759..b1ab7545b1 100644
--- a/doc/guides/freebsd_gsg/build_sample_apps.rst
+++ b/doc/guides/freebsd_gsg/build_sample_apps.rst
@@ -22,7 +22,7 @@ the system when DPDK is installed, and so can be built using GNU make.
    on the FreeBSD system.
 
 The following shows how to compile the helloworld example app, following
-the installation of DPDK using `ninja install` as described previously::
+the installation of DPDK using `meson install` as described previously::
 
         $ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
 
diff --git a/doc/guides/linux_gsg/build_dpdk.rst b/doc/guides/linux_gsg/build_dpdk.rst
index bbd2efc9d8..9c0dd9daf6 100644
--- a/doc/guides/linux_gsg/build_dpdk.rst
+++ b/doc/guides/linux_gsg/build_dpdk.rst
@@ -68,11 +68,11 @@ Once configured, to build and then install DPDK system-wide use:
 
         cd build
         ninja
-        ninja install
+        meson install
         ldconfig
 
 The last two commands above generally need to be run as root,
-with the `ninja install` step copying the built objects to their final system-wide locations,
+with the `meson install` step copying the built objects to their final system-wide locations,
 and the last step causing the dynamic loader `ld.so` to update its cache to take account of the new objects.
 
 .. note::
diff --git a/doc/guides/prog_guide/build-sdk-meson.rst b/doc/guides/prog_guide/build-sdk-meson.rst
index 5deabbe54c..93aa1f80e3 100644
--- a/doc/guides/prog_guide/build-sdk-meson.rst
+++ b/doc/guides/prog_guide/build-sdk-meson.rst
@@ -12,7 +12,7 @@ following set of commands::
 	meson setup build
 	cd build
 	ninja
-	ninja install
+	meson install
 
 This will compile DPDK in the ``build`` subdirectory, and then install the
 resulting libraries, drivers and header files onto the system - generally
@@ -165,7 +165,7 @@ printing each command on a new line as it runs.
 Installing the Compiled Files
 ------------------------------
 
-Use ``ninja install`` to install the required DPDK files onto the system.
+Use ``meson install`` to install the required DPDK files onto the system.
 The install prefix defaults to ``/usr/local`` but can be used as with other
 options above. The environment variable ``DESTDIR`` can be used to adjust
 the root directory for the install, for example when packaging.
-- 
2.39.2


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

* Re: [PATCH v4] doc: prefer installing using meson rather than ninja
  2023-06-23 11:43 ` [PATCH v4] " Bruce Richardson
@ 2023-06-28  0:01   ` Thomas Monjalon
  0 siblings, 0 replies; 10+ messages in thread
From: Thomas Monjalon @ 2023-06-28  0:01 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev, david.marchand

23/06/2023 13:43, Bruce Richardson:
> After doing a build, to install DPDK system-wide our documentation
> recommended using the "ninja install" command. However, for anyone
> building as a non-root user and only installing as root, the "meson
> install" command is a better alternative, as it provides for
> automatically dropping or elevating privileges as necessary in more
> recent meson releases [1].
> 
> [1] https://mesonbuild.com/Installing.html#installing-as-the-superuser
> 
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>

Applied, thanks.




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

end of thread, other threads:[~2023-06-28  0:02 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-09 10:51 [PATCH] doc: prefer installing using meson rather than ninja Bruce Richardson
2023-06-09 11:13 ` David Marchand
2023-06-09 11:19   ` Bruce Richardson
2023-06-09 11:21     ` David Marchand
2023-06-09 13:34 ` [PATCH v2] " Bruce Richardson
2023-06-09 14:51 ` [PATCH v3] " Bruce Richardson
2023-06-22 18:35   ` Thomas Monjalon
2023-06-23  7:54     ` Bruce Richardson
2023-06-23 11:43 ` [PATCH v4] " Bruce Richardson
2023-06-28  0:01   ` Thomas Monjalon

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).