diff mbox series

[v2] package/nfs-utils: enable IPv6

Message ID 20190812173712.23202-1-unixmania@gmail.com
State Superseded, archived
Headers show
Series [v2] package/nfs-utils: enable IPv6 | expand

Commit Message

Carlos Santos Aug. 12, 2019, 5:37 p.m. UTC
From: Carlos Santos <unixmania@gmail.com>

IPv6 requires libtirpc, so select BR2_PACKAGE_LIBTIRPC inconditionally.

Fixes: https://bugs.busybox.net/show_bug.cgi?id=10806

Signed-off-by: Carlos Santos <unixmania@gmail.com>
---
CC: nathan.renniewaldock@gmail.com
CC: Peter Seiderer <ps.report@gmx.net>
---
 package/nfs-utils/Config.in    |  2 +-
 package/nfs-utils/nfs-utils.mk | 11 ++---------
 2 files changed, 3 insertions(+), 10 deletions(-)

Comments

Thomas Petazzoni Sept. 9, 2019, 8:03 a.m. UTC | #1
Hello,

Arnout, Peter added in Cc, see below.

On Mon, 12 Aug 2019 14:37:12 -0300
unixmania@gmail.com wrote:

> From: Carlos Santos <unixmania@gmail.com>
> 
> IPv6 requires libtirpc, so select BR2_PACKAGE_LIBTIRPC inconditionally.
> 
> Fixes: https://bugs.busybox.net/show_bug.cgi?id=10806
> 
> Signed-off-by: Carlos Santos <unixmania@gmail.com>

Arnout, Peter, do you have an opinion about this change ?

Basically, this change makes libtirpc mandatory for nfs-utils, because
it is necessary to have IPv6 RPC support.

However, libtirpc is always necessary if you want RPC on IPv6, so if we
take the decision of making libtirpc mandatory for nfs-utils, we should
make it mandatory for all packages that use RPC support, and remove the
support for RPC from the toolchain.

My opinion is that we should keep things are they are today: nfs-utils
uses libtirpc if it's there, and otherwise uses the toolchain RPC
support. If a user wants IPv6 support, he should enable libtirpc.

Best regards,

Thomas
Arnout Vandecappelle Sept. 9, 2019, 9:16 a.m. UTC | #2
On 09/09/2019 10:03, Thomas Petazzoni wrote:
> Hello,
> 
> Arnout, Peter added in Cc, see below.
> 
> On Mon, 12 Aug 2019 14:37:12 -0300
> unixmania@gmail.com wrote:
> 
>> From: Carlos Santos <unixmania@gmail.com>
>>
>> IPv6 requires libtirpc, so select BR2_PACKAGE_LIBTIRPC inconditionally.
>>
>> Fixes: https://bugs.busybox.net/show_bug.cgi?id=10806
>>
>> Signed-off-by: Carlos Santos <unixmania@gmail.com>
> 
> Arnout, Peter, do you have an opinion about this change ?

 Yes I do :-)

 This thread was on my todo list of things I still had to reply to...


> Basically, this change makes libtirpc mandatory for nfs-utils, because
> it is necessary to have IPv6 RPC support.
> 
> However, libtirpc is always necessary if you want RPC on IPv6, so if we
> take the decision of making libtirpc mandatory for nfs-utils, we should
> make it mandatory for all packages that use RPC support, and remove the
> support for RPC from the toolchain.
> 
> My opinion is that we should keep things are they are today: nfs-utils
> uses libtirpc if it's there, and otherwise uses the toolchain RPC
> support. If a user wants IPv6 support, he should enable libtirpc.

 I agree with this analysis.

 When we switched to "assume IPv6 support is there", this was about the
toolchain, i.e. we can assume that the libc functions and the kernel have IPv6
support when building packages. It doesn't mean that we will force all packages
to be built with IPv6 support. That is still a case-by-case decision based on
what the size impact is.

 nfs-utils is not that large, but still: with br-arm-full (note that this
toolchain doesn't have native RPC, so libtirpc is built anyway; but native RPC
in uClibc doesn't add much to the size anyway):

toolchain (excluding libstdc++): 763KiB
nfs-utils: 395KiB
libtirpc: 104KiB
rpcbind: 55KiB

 So I would say that 104/395KiB is borderline of what we want to keep
configurable, but just on the side of keeping it configurable.

 In other words, I agree with your analysis that it's better to keep libtirpc
optional.


 Regards,
 Arnout
diff mbox series

Patch

diff --git a/package/nfs-utils/Config.in b/package/nfs-utils/Config.in
index 04ea4db3ed..cfca034019 100644
--- a/package/nfs-utils/Config.in
+++ b/package/nfs-utils/Config.in
@@ -6,7 +6,7 @@  config BR2_PACKAGE_NFS_UTILS
 	bool "nfs-utils"
 	depends on BR2_TOOLCHAIN_HAS_THREADS # libtirpc, rpcbind
 	depends on BR2_USE_MMU # fork()
-	select BR2_PACKAGE_LIBTIRPC if !BR2_TOOLCHAIN_HAS_NATIVE_RPC
+	select BR2_PACKAGE_LIBTIRPC # IPv6 requires libtirpc
 	select BR2_PACKAGE_RPCBIND # runtime
 	help
 	  The NFS Linux kernel server.
diff --git a/package/nfs-utils/nfs-utils.mk b/package/nfs-utils/nfs-utils.mk
index dc20942f71..5e2525cdbf 100644
--- a/package/nfs-utils/nfs-utils.mk
+++ b/package/nfs-utils/nfs-utils.mk
@@ -10,7 +10,7 @@  NFS_UTILS_SITE = https://www.kernel.org/pub/linux/utils/nfs-utils/$(NFS_UTILS_VE
 NFS_UTILS_LICENSE = GPL-2.0+
 NFS_UTILS_LICENSE_FILES = COPYING
 NFS_UTILS_AUTORECONF = YES
-NFS_UTILS_DEPENDENCIES = host-pkgconf
+NFS_UTILS_DEPENDENCIES = host-pkgconf libtirpc
 
 NFS_UTILS_CONF_ENV = knfsd_cv_bsd_signals=no
 
@@ -19,7 +19,7 @@  NFS_UTILS_CONF_OPTS = \
 	--disable-nfsv41 \
 	--disable-gss \
 	--disable-uuid \
-	--disable-ipv6 \
+	--enable-tirpc \
 	--without-tcp-wrappers \
 	--with-statedir=/run/nfs \
 	--with-rpcgen=internal
@@ -51,13 +51,6 @@  else
 NFS_UTILS_CONF_OPTS += --disable-caps
 endif
 
-ifeq ($(BR2_PACKAGE_LIBTIRPC),y)
-NFS_UTILS_CONF_OPTS += --enable-tirpc
-NFS_UTILS_DEPENDENCIES += libtirpc
-else
-NFS_UTILS_CONF_OPTS += --disable-tirpc
-endif
-
 define NFS_UTILS_INSTALL_FIXUP
 	cd $(TARGET_DIR) && rm -f $(NFS_UTILS_TARGETS_)
 	touch $(TARGET_DIR)/etc/exports