From patchwork Fri Jun 9 14:51:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 128472 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 952F742C6F; Fri, 9 Jun 2023 16:51:30 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7105242FC4; Fri, 9 Jun 2023 16:51:30 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id DD33142D8F for ; Fri, 9 Jun 2023 16:51:28 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1686322289; x=1717858289; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=9SgCsgFzfNeqvgSaEuKZucxlLWgIksvQAEDwEBJT6K0=; b=S9AZORmS4ywX/XBW3R4xD+iWuMruQVbF338T4FWaJ7pwnhOb+6wYjJ33 qovMjvH7s2vWGD559t3kTjFPF02EjATCZkJWVznAnvaV0BL7gw8K/ds4Y /DnAPDJo5tJHlOabhU0WMQYdz63+jMS93TwgPcDzqR+53kXvfVto/x960 m108ikCqtDJXlJjIC1t1bZjljJyna0fZhj8o+Sr/uPD5+VwQhnENnp+EZ 6IfA7874IAaCo+ton34g2Yq8Hq+tQnFu3XmSiZmAHMzLJSeguqnRZoBA8 6h8Jj9jqrwXZEZrrx+AyHP40Dq/r7v1DAv90Lk4He0mbYUAlKSx/sh3XL Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10736"; a="443982937" X-IronPort-AV: E=Sophos;i="6.00,229,1681196400"; d="scan'208";a="443982937" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Jun 2023 07:51:27 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10736"; a="780341568" X-IronPort-AV: E=Sophos;i="6.00,229,1681196400"; d="scan'208";a="780341568" Received: from silpixa00401385.ir.intel.com ([10.237.214.152]) by fmsmga004.fm.intel.com with ESMTP; 09 Jun 2023 07:51:26 -0700 From: Bruce Richardson To: dev@dpdk.org Cc: david.marchand@redhat.com, Bruce Richardson Subject: [PATCH v3] doc: prefer installing using meson rather than ninja Date: Fri, 9 Jun 2023 15:51:08 +0100 Message-Id: <20230609145107.144593-1-bruce.richardson@intel.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230609105139.76239-1-bruce.richardson@intel.com> References: <20230609105139.76239-1-bruce.richardson@intel.com> MIME-Version: 1.0 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 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 --- 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.