From patchwork Fri Jun 9 13:34:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 128464 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 0CA6B42C6E; Fri, 9 Jun 2023 15:34:34 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 984F240EDB; Fri, 9 Jun 2023 15:34:33 +0200 (CEST) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mails.dpdk.org (Postfix) with ESMTP id 4287240A84 for ; Fri, 9 Jun 2023 15:34:32 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1686317672; x=1717853672; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=tsCjvpoghKjYMD5YnTFLqF+B02H1XtQ7scFTqwcOD3I=; b=OC6OX+oaOmzQBA2QlrrR41O6FNdioYjplFftzAdxO4wWIAJvZriK8dre jnA4v7DTjEvnpH7ynD6kb11chg0xE4GHO9mpXppuqd2kaVrJwJzobXCf7 bDJPhowb9vojzu+vLbdvcvyXuUwOQ7KCu3aWSw3krhIS2XGoW5m7CVTSS 8GQt5NwnSgzDf+gF983yOJh+9sJNzeGnEDQZEPlfh9V9UF1Z1C+ZAtHbg 1WtrFwNOy9dxayqTeOu3jQLDQ/4nCXLyN60vTvLqsNsTFcUP+WXCmYTmK YH3WHevl49YiUDSOxnZCF4Hf1Rs77QsKyrzSAgMOOwG3UIjIE9i4WKeXN g==; X-IronPort-AV: E=McAfee;i="6600,9927,10736"; a="337231651" X-IronPort-AV: E=Sophos;i="6.00,229,1681196400"; d="scan'208";a="337231651" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Jun 2023 06:34:31 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10736"; a="800218313" X-IronPort-AV: E=Sophos;i="6.00,229,1681196400"; d="scan'208";a="800218313" Received: from silpixa00401385.ir.intel.com ([10.237.214.152]) by FMSMGA003.fm.intel.com with ESMTP; 09 Jun 2023 06:34:30 -0700 From: Bruce Richardson To: dev@dpdk.org Cc: david.marchand@redhat.com, Bruce Richardson Subject: [PATCH v2] doc: prefer installing using meson rather than ninja Date: Fri, 9 Jun 2023 14:34:06 +0100 Message-Id: <20230609133406.80093-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 --- 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.