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