diff mbox series

package/nfs-utils: bump version to 2.6.2

Message ID 20220809224427.1421622-1-giulio.benetti@benettiengineering.com
State Accepted
Headers show
Series package/nfs-utils: bump version to 2.6.2 | expand

Commit Message

Giulio Benetti Aug. 9, 2022, 10:44 p.m. UTC
nfs-utils 2.6.2 adds nfsrahead tool to set readahead through sysfs, but
this tool is mandatory and requires libmount that in order requires
libblkid. Also we need a local patch that is already pending upstream to
avoid failing static linking:
https://patchwork.kernel.org/project/linux-nfs/patch/20220809223308.1421081-1-giulio.benetti@benettiengineering.com/

So let's select:
- BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
- BR2_PACKAGE_UTIL_LINUX_LIBBLKID
and add the pending patch for fixing static linking failure due to wrong
order of libraries in linker list(-lblkid must follow -lmount). This is
achieved by using pkg-config that is already a dependency of this package.

Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
---
 ...ead-fix-linking-while-static-linking.patch | 34 +++++++++++++++++++
 package/nfs-utils/Config.in                   |  2 ++
 package/nfs-utils/nfs-utils.hash              |  4 +--
 package/nfs-utils/nfs-utils.mk                |  2 +-
 4 files changed, 39 insertions(+), 3 deletions(-)
 create mode 100644 package/nfs-utils/0001-nfsrahead-fix-linking-while-static-linking.patch

Comments

Thomas Petazzoni Aug. 10, 2022, 9:18 p.m. UTC | #1
Hello Giulio,

On Wed, 10 Aug 2022 00:44:27 +0200
Giulio Benetti <giulio.benetti@benettiengineering.com> wrote:

> nfs-utils 2.6.2 adds nfsrahead tool to set readahead through sysfs, but
> this tool is mandatory and requires libmount that in order requires
> libblkid. Also we need a local patch that is already pending upstream to
> avoid failing static linking:
> https://patchwork.kernel.org/project/linux-nfs/patch/20220809223308.1421081-1-giulio.benetti@benettiengineering.com/
> 
> So let's select:
> - BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
> - BR2_PACKAGE_UTIL_LINUX_LIBBLKID
> and add the pending patch for fixing static linking failure due to wrong
> order of libraries in linker list(-lblkid must follow -lmount). This is
> achieved by using pkg-config that is already a dependency of this package.
> 
> Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>

Thanks, I have applied to master, but I have a comment below.

> diff --git a/package/nfs-utils/0001-nfsrahead-fix-linking-while-static-linking.patch b/package/nfs-utils/0001-nfsrahead-fix-linking-while-static-linking.patch
> new file mode 100644
> index 0000000000..b8dcea63f7
> --- /dev/null
> +++ b/package/nfs-utils/0001-nfsrahead-fix-linking-while-static-linking.patch
> @@ -0,0 +1,34 @@
> +From a69014a1b4e5b8068630abe3109f31eb64b6a076 Mon Sep 17 00:00:00 2001
> +From: Giulio Benetti <giulio.benetti@benettiengineering.com>
> +Date: Wed, 10 Aug 2022 00:10:51 +0200
> +Subject: [PATCH] nfsrahead: fix linking while static linking
> +
> +-lmount must preceed -lblkid and to obtain this let's add:
> +`pkg-config --libs mount`
> +in place of:
> +`-lmount`
> +This ways the library order will always be correct.
> +
> +Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
> +---
> +Pending Upstream:
> +https://patchwork.kernel.org/project/linux-nfs/patch/20220809223308.1421081-1-giulio.benetti@benettiengineering.com/
> +---
> + tools/nfsrahead/Makefile.am | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/tools/nfsrahead/Makefile.am b/tools/nfsrahead/Makefile.am
> +index 845ea0d5..280a2eb4 100644
> +--- a/tools/nfsrahead/Makefile.am
> ++++ b/tools/nfsrahead/Makefile.am
> +@@ -1,6 +1,6 @@
> + libexec_PROGRAMS = nfsrahead
> + nfsrahead_SOURCES = main.c
> +-nfsrahead_LDFLAGS= -lmount
> ++nfsrahead_LDFLAGS= `pkg-config --libs mount`

This is not the correct way of using pkg-config in an autotools based
project. Instead, the configure.ac should use the PKG_CHECK_MODULES
macro, and use the appropriate variables in Makefile.am.

Approximately something like this in configure.ac:

PKG_CHECK_MODULES([LIBMOUNT], [mount])

and in the Makefile.am:

nfsrahead_CFLAGS = $(LIBMOUNT_CFLAGS)
nfsrahead_LDFLAGS = $(LIBMOUNT_LIBS)

see https://bootlin.com/doc/training/autotools/autotools-slides.pdf
slide 85 and following.

Best regards,

Thomas
Giulio Benetti Aug. 10, 2022, 9:24 p.m. UTC | #2
On 10/08/22 23:18, Thomas Petazzoni via buildroot wrote:
> Hello Giulio,
> 
> On Wed, 10 Aug 2022 00:44:27 +0200
> Giulio Benetti <giulio.benetti@benettiengineering.com> wrote:
> 
>> nfs-utils 2.6.2 adds nfsrahead tool to set readahead through sysfs, but
>> this tool is mandatory and requires libmount that in order requires
>> libblkid. Also we need a local patch that is already pending upstream to
>> avoid failing static linking:
>> https://patchwork.kernel.org/project/linux-nfs/patch/20220809223308.1421081-1-giulio.benetti@benettiengineering.com/
>>
>> So let's select:
>> - BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
>> - BR2_PACKAGE_UTIL_LINUX_LIBBLKID
>> and add the pending patch for fixing static linking failure due to wrong
>> order of libraries in linker list(-lblkid must follow -lmount). This is
>> achieved by using pkg-config that is already a dependency of this package.
>>
>> Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
> 
> Thanks, I have applied to master, but I have a comment below.
> 
>> diff --git a/package/nfs-utils/0001-nfsrahead-fix-linking-while-static-linking.patch b/package/nfs-utils/0001-nfsrahead-fix-linking-while-static-linking.patch
>> new file mode 100644
>> index 0000000000..b8dcea63f7
>> --- /dev/null
>> +++ b/package/nfs-utils/0001-nfsrahead-fix-linking-while-static-linking.patch
>> @@ -0,0 +1,34 @@
>> +From a69014a1b4e5b8068630abe3109f31eb64b6a076 Mon Sep 17 00:00:00 2001
>> +From: Giulio Benetti <giulio.benetti@benettiengineering.com>
>> +Date: Wed, 10 Aug 2022 00:10:51 +0200
>> +Subject: [PATCH] nfsrahead: fix linking while static linking
>> +
>> +-lmount must preceed -lblkid and to obtain this let's add:
>> +`pkg-config --libs mount`
>> +in place of:
>> +`-lmount`
>> +This ways the library order will always be correct.
>> +
>> +Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
>> +---
>> +Pending Upstream:
>> +https://patchwork.kernel.org/project/linux-nfs/patch/20220809223308.1421081-1-giulio.benetti@benettiengineering.com/
>> +---
>> + tools/nfsrahead/Makefile.am | 2 +-
>> + 1 file changed, 1 insertion(+), 1 deletion(-)
>> +
>> +diff --git a/tools/nfsrahead/Makefile.am b/tools/nfsrahead/Makefile.am
>> +index 845ea0d5..280a2eb4 100644
>> +--- a/tools/nfsrahead/Makefile.am
>> ++++ b/tools/nfsrahead/Makefile.am
>> +@@ -1,6 +1,6 @@
>> + libexec_PROGRAMS = nfsrahead
>> + nfsrahead_SOURCES = main.c
>> +-nfsrahead_LDFLAGS= -lmount
>> ++nfsrahead_LDFLAGS= `pkg-config --libs mount`
> 
> This is not the correct way of using pkg-config in an autotools based
> project. Instead, the configure.ac should use the PKG_CHECK_MODULES
> macro, and use the appropriate variables in Makefile.am.
> 
> Approximately something like this in configure.ac:
> 
> PKG_CHECK_MODULES([LIBMOUNT], [mount])
> 
> and in the Makefile.am:
> 
> nfsrahead_CFLAGS = $(LIBMOUNT_CFLAGS)
> nfsrahead_LDFLAGS = $(LIBMOUNT_LIBS)
> 
> see https://bootlin.com/doc/training/autotools/autotools-slides.pdf
> slide 85 and following.

Thank you Thomas!
I was focusing too much on nfsrahead's Makefile.am without taking care
of configure.ac, I rework the patch for upstream with this test-case and
update the PR later.

Best regards
diff mbox series

Patch

diff --git a/package/nfs-utils/0001-nfsrahead-fix-linking-while-static-linking.patch b/package/nfs-utils/0001-nfsrahead-fix-linking-while-static-linking.patch
new file mode 100644
index 0000000000..b8dcea63f7
--- /dev/null
+++ b/package/nfs-utils/0001-nfsrahead-fix-linking-while-static-linking.patch
@@ -0,0 +1,34 @@ 
+From a69014a1b4e5b8068630abe3109f31eb64b6a076 Mon Sep 17 00:00:00 2001
+From: Giulio Benetti <giulio.benetti@benettiengineering.com>
+Date: Wed, 10 Aug 2022 00:10:51 +0200
+Subject: [PATCH] nfsrahead: fix linking while static linking
+
+-lmount must preceed -lblkid and to obtain this let's add:
+`pkg-config --libs mount`
+in place of:
+`-lmount`
+This ways the library order will always be correct.
+
+Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
+---
+Pending Upstream:
+https://patchwork.kernel.org/project/linux-nfs/patch/20220809223308.1421081-1-giulio.benetti@benettiengineering.com/
+---
+ tools/nfsrahead/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tools/nfsrahead/Makefile.am b/tools/nfsrahead/Makefile.am
+index 845ea0d5..280a2eb4 100644
+--- a/tools/nfsrahead/Makefile.am
++++ b/tools/nfsrahead/Makefile.am
+@@ -1,6 +1,6 @@
+ libexec_PROGRAMS = nfsrahead
+ nfsrahead_SOURCES = main.c
+-nfsrahead_LDFLAGS= -lmount
++nfsrahead_LDFLAGS= `pkg-config --libs mount`
+ nfsrahead_LDADD = ../../support/nfs/libnfsconf.la
+ 
+ man5_MANS = nfsrahead.man
+-- 
+2.34.1
+
diff --git a/package/nfs-utils/Config.in b/package/nfs-utils/Config.in
index f00debc420..f3cb17918e 100644
--- a/package/nfs-utils/Config.in
+++ b/package/nfs-utils/Config.in
@@ -8,6 +8,8 @@  config BR2_PACKAGE_NFS_UTILS
 	depends on BR2_USE_MMU # fork()
 	select BR2_PACKAGE_LIBTIRPC # IPv6 requires libtirpc
 	select BR2_PACKAGE_UTIL_LINUX
+	select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
+	select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
 	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
 	help
 	  The NFS Linux kernel server.
diff --git a/package/nfs-utils/nfs-utils.hash b/package/nfs-utils/nfs-utils.hash
index a73bf80e70..2efe693875 100644
--- a/package/nfs-utils/nfs-utils.hash
+++ b/package/nfs-utils/nfs-utils.hash
@@ -1,4 +1,4 @@ 
-# From https://www.kernel.org/pub/linux/utils/nfs-utils/2.6.1/sha256sums.asc
-sha256  60dfcd94a9f3d72a12bc7058d811787ec87a6d593d70da2123faf9aad3d7a1df  nfs-utils-2.6.1.tar.xz
+# From https://www.kernel.org/pub/linux/utils/nfs-utils/2.6.2/sha256sums.asc
+sha256  5200873e81c4d610e2462fc262fe18135f2dbe78b7979f95accd159ae64d5011  nfs-utils-2.6.2.tar.xz
 # Locally computed
 sha256  576540abf5e95029ad4ad90e32071385a5e95b2c30708c706116f3eb87b9a3de  COPYING
diff --git a/package/nfs-utils/nfs-utils.mk b/package/nfs-utils/nfs-utils.mk
index 44653e2707..ed205a26b1 100644
--- a/package/nfs-utils/nfs-utils.mk
+++ b/package/nfs-utils/nfs-utils.mk
@@ -4,7 +4,7 @@ 
 #
 ################################################################################
 
-NFS_UTILS_VERSION = 2.6.1
+NFS_UTILS_VERSION = 2.6.2
 NFS_UTILS_SOURCE = nfs-utils-$(NFS_UTILS_VERSION).tar.xz
 NFS_UTILS_SITE = https://www.kernel.org/pub/linux/utils/nfs-utils/$(NFS_UTILS_VERSION)
 NFS_UTILS_LICENSE = GPL-2.0+