* [PATCH 1/2] ntirpc: Add ntirpc recipe
@ 2022-08-27 17:46 Paulo Neves
2022-08-27 17:46 ` [PATCH 2/2] nfs-ganesha: Replace unfs3 with nfs-ganesha Paulo Neves
` (2 more replies)
0 siblings, 3 replies; 13+ messages in thread
From: Paulo Neves @ 2022-08-27 17:46 UTC (permalink / raw)
To: openembedded-core; +Cc: Paulo Neves
ntirpc is an actively maintained rpc implementation. We cannot completely
remove libtirpc due to arising circular dependencies. libtirpc and ntirpc
are not mutually exclusive.
Signed-off-by: Paulo Neves <ptsneves@gmail.com>
---
meta/recipes-extended/ntirpc/ntirpc_4.0.bb | 30 +++++++++++++++++++
meta/recipes-extended/quota/quota_4.06.bb | 2 +-
.../recipes-extended/rpcbind/rpcbind_1.2.6.bb | 2 +-
.../watchdog/watchdog_5.16.bb | 2 +-
.../xorg-xserver/xserver-xorg.inc | 2 +-
.../recipes-support/liburcu/liburcu_0.13.1.bb | 1 +
6 files changed, 35 insertions(+), 4 deletions(-)
create mode 100644 meta/recipes-extended/ntirpc/ntirpc_4.0.bb
diff --git a/meta/recipes-extended/ntirpc/ntirpc_4.0.bb b/meta/recipes-extended/ntirpc/ntirpc_4.0.bb
new file mode 100644
index 0000000000..edebcb8ca9
--- /dev/null
+++ b/meta/recipes-extended/ntirpc/ntirpc_4.0.bb
@@ -0,0 +1,30 @@
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f835cce8852481e4b2bbbdd23b5e47f3"
+
+SRC_URI = "https://download.nfs-ganesha.org/4/${PV}/ntirpc-${PV}.tar.gz"
+SRC_URI[md5sum] = "17b0baada54936dcde80eba27bb6d88d"
+SRC_URI[sha256sum] = "6a7921cd48d02077b394a02be42bf4f9b4678d4ebfd86a7ae4385bbcdce55462"
+
+DEPENDS = "liburcu libnsl2"
+
+inherit cmake pkgconfig
+
+PACKAGECONFIG[gss] = "-DUSE_GSS=true,-DUSE_GSS=false,krb5"
+PACKAGECONFIG[rdma] = "-DUSE_RPC_RDMA=true,-DUSE_RPC_RDMA=false,rdma-core"
+PACKAGECONFIG[winbind] = "-D_MSPAC_SUPPORT=true,-D_MSPAC_SUPPORT=false,samba"
+PACKAGECONFIG[profile] = "-DUSE_PROFILE=true,-DUSE_PROFILE=false,gperftools"
+PACKAGECONFIG[lttng] = "-DUSE_LTTNG=true,-DUSE_LTTNG=false,lttng-ust lttng-tools"
+
+# Sort out the brain-dead cmake file
+# (https://github.com/nfs-ganesha/ntirpc/issues/150)
+do_install:append() {
+ if [ "${prefix}/lib64" != "${libdir}" -a -d ${D}${prefix}/lib64 ]; then
+ mv ${D}${prefix}/lib64 ${D}${libdir}
+ fi
+}
+
+BBCLASSEXTEND = "native nativesdk"
+EXTRA_OECMAKE:armv5 += '-DSYSTEM_LIBRARIES="-latomic"'
+EXTRA_OECMAKE:riscv32 += '-DSYSTEM_LIBRARIES="-latomic"'
+EXTRA_OECMAKE:riscv64 += '-DSYSTEM_LIBRARIES="-latomic"'
+EXTRA_OECMAKE:powerpc += '-DSYSTEM_LIBRARIES="-latomic"'
diff --git a/meta/recipes-extended/quota/quota_4.06.bb b/meta/recipes-extended/quota/quota_4.06.bb
index 0535d14c20..304477d72b 100644
--- a/meta/recipes-extended/quota/quota_4.06.bb
+++ b/meta/recipes-extended/quota/quota_4.06.bb
@@ -30,6 +30,6 @@ PACKAGECONFIG ??= "tcp-wrappers rpc bsd"
PACKAGECONFIG:libc-musl = "tcp-wrappers rpc"
PACKAGECONFIG[tcp-wrappers] = "--enable-libwrap,--disable-libwrap,tcp-wrappers"
-PACKAGECONFIG[rpc] = "--enable-rpc,--disable-rpc,libtirpc"
+PACKAGECONFIG[rpc] = "--enable-rpc,--disable-rpc,ntirpc"
PACKAGECONFIG[bsd] = "--enable-bsd_behaviour=yes,--enable-bsd_behaviour=no,"
PACKAGECONFIG[ldapmail] = "--enable-ldapmail,--disable-ldapmail,openldap"
diff --git a/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb b/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
index dd89726afc..e30a23909c 100644
--- a/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
+++ b/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
@@ -4,7 +4,7 @@ DESCRIPTION = "The rpcbind utility is a server that converts RPC \
SECTION = "console/network"
HOMEPAGE = "http://sourceforge.net/projects/rpcbind/"
BUGTRACKER = "http://sourceforge.net/tracker/?group_id=201237&atid=976751"
-DEPENDS = "libtirpc quota"
+DEPENDS = "ntirpc quota"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=b46486e4c4a416602693a711bb5bfa39 \
diff --git a/meta/recipes-extended/watchdog/watchdog_5.16.bb b/meta/recipes-extended/watchdog/watchdog_5.16.bb
index 26fcc10487..5f5fd4dc87 100644
--- a/meta/recipes-extended/watchdog/watchdog_5.16.bb
+++ b/meta/recipes-extended/watchdog/watchdog_5.16.bb
@@ -28,7 +28,7 @@ UPSTREAM_CHECK_REGEX = "/watchdog/(?P<pver>(\d+[\.\-_]*)+)/"
inherit autotools update-rc.d systemd pkgconfig
-DEPENDS += "libtirpc"
+DEPENDS += "ntirpc"
CFLAGS += "-I${STAGING_INCDIR}/tirpc"
LDFLAGS += "-ltirpc"
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
index 057a1ba6ad..2085f742d6 100644
--- a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
@@ -36,7 +36,7 @@ inherit meson pkgconfig
inherit features_check
REQUIRED_DISTRO_FEATURES = "x11"
-LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm libxkbfile libpciaccess libxcvt libtirpc"
+LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm libxkbfile libpciaccess libxcvt ntirpc"
DEPENDS = "xorgproto ${LIB_DEPS} font-util"
# Split out some modules and extensions from the main package
diff --git a/meta/recipes-support/liburcu/liburcu_0.13.1.bb b/meta/recipes-support/liburcu/liburcu_0.13.1.bb
index 66763349d2..d7e831e803 100644
--- a/meta/recipes-support/liburcu/liburcu_0.13.1.bb
+++ b/meta/recipes-support/liburcu/liburcu_0.13.1.bb
@@ -22,3 +22,4 @@ CPPFLAGS:append:riscv64 = " -pthread -D_REENTRANT"
do_install:append() {
oe_multilib_header urcu/config.h
}
+BBCLASSEXTEND = "native nativesdk"
--
2.25.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 2/2] nfs-ganesha: Replace unfs3 with nfs-ganesha
2022-08-27 17:46 [PATCH 1/2] ntirpc: Add ntirpc recipe Paulo Neves
@ 2022-08-27 17:46 ` Paulo Neves
2022-08-27 18:06 ` [OE-core] " Alexander Kanavin
2022-08-27 18:07 ` [OE-core] [PATCH 1/2] ntirpc: Add ntirpc recipe Alexander Kanavin
2022-08-29 9:59 ` Alexandre Belloni
2 siblings, 1 reply; 13+ messages in thread
From: Paulo Neves @ 2022-08-27 17:46 UTC (permalink / raw)
To: openembedded-core; +Cc: Paulo Neves
nfs-ganesha is actively maintained in contrast with unfs3. glibc tests
pass with nfs-ganesha.
Signed-off-by: Paulo Neves <ptsneves@gmail.com>
---
meta/lib/oeqa/utils/nfs.py | 2 +-
...ix-possible-null-pointer-dereference.patch | 40 +++++
...-Workaround-for-erroneous-gcc-Werror.patch | 33 ++++
...ke-nfsv3_optype-guarded-by-_USE_NFS3.patch | 37 ++++
.../nfs-ganesha/nfs-ganesha/module.patch | 27 +++
.../nfs-ganesha/nfs-ganesha_4.0.bb | 42 +++++
...1-Add-listen-action-for-a-tcp-socket.patch | 54 ------
.../0001-attr-fix-utime-for-symlink.patch | 85 ----------
...0001-daemon.c-Libtirpc-porting-fixes.patch | 37 ----
.../unfs3/unfs3/alternate_rpc_ports.patch | 158 ------------------
.../unfs3/unfs3/fix_compile_warning.patch | 25 ---
...fix_pid_race_parent_writes_child_pid.patch | 61 -------
.../unfs3/unfs3/no-yywrap.patch | 14 --
.../unfs3/relative_max_socket_path_len.patch | 74 --------
.../unfs3/unfs3/rename_fh_cache.patch | 64 -------
.../unfs3/unfs3/tcp_no_delay.patch | 56 -------
.../unfs3/unfs3/unfs3_parallel_build.patch | 37 ----
meta/recipes-devtools/unfs3/unfs3_git.bb | 45 -----
18 files changed, 180 insertions(+), 711 deletions(-)
create mode 100644 meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0001-Fix-possible-null-pointer-dereference.patch
create mode 100644 meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0002-Workaround-for-erroneous-gcc-Werror.patch
create mode 100644 meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0003-Make-nfsv3_optype-guarded-by-_USE_NFS3.patch
create mode 100644 meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/module.patch
create mode 100644 meta/recipes-connectivity/nfs-ganesha/nfs-ganesha_4.0.bb
delete mode 100644 meta/recipes-devtools/unfs3/unfs3/0001-Add-listen-action-for-a-tcp-socket.patch
delete mode 100644 meta/recipes-devtools/unfs3/unfs3/0001-attr-fix-utime-for-symlink.patch
delete mode 100644 meta/recipes-devtools/unfs3/unfs3/0001-daemon.c-Libtirpc-porting-fixes.patch
delete mode 100644 meta/recipes-devtools/unfs3/unfs3/alternate_rpc_ports.patch
delete mode 100644 meta/recipes-devtools/unfs3/unfs3/fix_compile_warning.patch
delete mode 100644 meta/recipes-devtools/unfs3/unfs3/fix_pid_race_parent_writes_child_pid.patch
delete mode 100644 meta/recipes-devtools/unfs3/unfs3/no-yywrap.patch
delete mode 100644 meta/recipes-devtools/unfs3/unfs3/relative_max_socket_path_len.patch
delete mode 100644 meta/recipes-devtools/unfs3/unfs3/rename_fh_cache.patch
delete mode 100644 meta/recipes-devtools/unfs3/unfs3/tcp_no_delay.patch
delete mode 100644 meta/recipes-devtools/unfs3/unfs3/unfs3_parallel_build.patch
delete mode 100644 meta/recipes-devtools/unfs3/unfs3_git.bb
diff --git a/meta/lib/oeqa/utils/nfs.py b/meta/lib/oeqa/utils/nfs.py
index c1218656ce..bd947c0b88 100644
--- a/meta/lib/oeqa/utils/nfs.py
+++ b/meta/lib/oeqa/utils/nfs.py
@@ -16,7 +16,7 @@ def unfs_server(directory, logger = None):
unfs_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "unfs3-native")
if not os.path.exists(os.path.join(unfs_sysroot, "usr", "bin", "unfsd")):
# build native tool
- bitbake("unfs3-native -c addto_recipe_sysroot")
+ bitbake("nfs-ganesha-native -c addto_recipe_sysroot")
exports = None
cmd = None
diff --git a/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0001-Fix-possible-null-pointer-dereference.patch b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0001-Fix-possible-null-pointer-dereference.patch
new file mode 100644
index 0000000000..b06fc8d07e
--- /dev/null
+++ b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0001-Fix-possible-null-pointer-dereference.patch
@@ -0,0 +1,40 @@
+From e70f112dc79263298baf7a1b92c19234b8f1e506 Mon Sep 17 00:00:00 2001
+From: Paulo Neves <ptsneves@gmail.com>
+Date: Tue, 23 Aug 2022 14:56:44 +0200
+Subject: [PATCH] Fix possible null pointer dereference
+
+If logging is enabled on nfs3_lookup, name is NULL initialized
+and used. Assign name to a valid location before it is used.
+
+Upstream-Status: Pending [1]
+
+[1] https://github.com/nfs-ganesha/nfs-ganesha/pull/846
+
+Change-Id: Ia1a922a1d34268a7d0b5ba97293e647ef07f8b3a
+Signed-off-by: Paulo Neves <ptsneves@gmail.com>
+
+---
+ src/Protocols/NFS/nfs3_lookup.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/src/Protocols/NFS/nfs3_lookup.c b/src/Protocols/NFS/nfs3_lookup.c
+index da65769..97c9603 100644
+--- a/src/Protocols/NFS/nfs3_lookup.c
++++ b/src/Protocols/NFS/nfs3_lookup.c
+@@ -74,6 +74,7 @@ int nfs3_lookup(nfs_arg_t *arg, struct svc_req *req, nfs_res_t *res)
+ */
+ fsal_prepare_attrs(&attrs, ATTRS_NFS3 | ATTR_RDATTR_ERR);
+
++ name = arg->arg_lookup3.what.name;
+ LogNFS3_Operation(COMPONENT_NFSPROTO, req, &arg->arg_lookup3.what.dir,
+ " name: %s", name);
+
+@@ -89,8 +90,6 @@ int nfs3_lookup(nfs_arg_t *arg, struct svc_req *req, nfs_res_t *res)
+ goto out;
+ }
+
+- name = arg->arg_lookup3.what.name;
+-
+ fsal_status = fsal_lookup(obj_dir, name, &obj_file, &attrs);
+
+ if (FSAL_IS_ERROR(fsal_status)) {
diff --git a/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0002-Workaround-for-erroneous-gcc-Werror.patch b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0002-Workaround-for-erroneous-gcc-Werror.patch
new file mode 100644
index 0000000000..4eaae2493a
--- /dev/null
+++ b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0002-Workaround-for-erroneous-gcc-Werror.patch
@@ -0,0 +1,33 @@
+From b8fa32c779b968fbbbe5d5dcaafa664b98cec81c Mon Sep 17 00:00:00 2001
+From: Paulo Neves <ptsneves@gmail.com>
+Date: Tue, 23 Aug 2022 14:59:19 +0200
+Subject: [PATCH] Workaround for erroneous gcc Werror.
+
+gcc incorrectly decides that pos_len and pos_end are used
+unninitialized. It is incorrect because the condition of their
+use is the same as their early initialization. Apparently
+gcc does not pick this fact and with Werror, emits an error
+
+Upstream-Status: Inappropriate [reason]
+
+Change-Id: I30a345483b5a4bc4b5ceb46badaec3a9d27d1782
+Signed-off-by: Paulo Neves <ptsneves@gmail.com>
+
+---
+ src/Protocols/NFS/nfs_proto_tools.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/Protocols/NFS/nfs_proto_tools.c b/src/Protocols/NFS/nfs_proto_tools.c
+index d0f628d..a741482 100644
+--- a/src/Protocols/NFS/nfs_proto_tools.c
++++ b/src/Protocols/NFS/nfs_proto_tools.c
+@@ -3688,7 +3688,8 @@ bool xdr_fattr4_encode(XDR *xdrs, struct xdr_attrs_args *args,
+ struct bitmap4 bitmap_encoded;
+ struct bitmap4 *bitmap;
+ /* Remember where we put the length of the attr data */
+- u_int pos_len, pos_end;
++ u_int pos_len = 0;
++ u_int pos_end = 0;
+ uint32_t attr_len = 0;
+
+ bitmap = attr_bitmap != NULL ? attr_bitmap : &bitmap_encoded;
diff --git a/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0003-Make-nfsv3_optype-guarded-by-_USE_NFS3.patch b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0003-Make-nfsv3_optype-guarded-by-_USE_NFS3.patch
new file mode 100644
index 0000000000..ee89ed5628
--- /dev/null
+++ b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0003-Make-nfsv3_optype-guarded-by-_USE_NFS3.patch
@@ -0,0 +1,37 @@
+From 48086cb311e37ea58de60352609e270be62ee7e8 Mon Sep 17 00:00:00 2001
+From: Paulo Neves <ptsneves@gmail.com>
+Date: Tue, 23 Aug 2022 22:59:46 +0200
+Subject: [PATCH] Make nfsv3_optype guarded by _USE_NFS3
+
+-Wunused-variable will trigger when NFS3 is not enabled.
+
+Upstream-Status: Pending [1]
+
+[1] https://github.com/nfs-ganesha/nfs-ganesha/pull/846
+
+Change-Id: Ib1fab2e1a59b834cda8317b2a3450e3c19437975
+Signed-off-by: Paulo Neves <ptsneves@gmail.com>
+
+---
+ src/support/server_stats.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/support/server_stats.c b/src/support/server_stats.c
+index 19a8cac..a92b035 100644
+--- a/src/support/server_stats.c
++++ b/src/support/server_stats.c
+@@ -246,11 +246,14 @@ enum proto_op_type {
+ LAYOUT_OP
+ };
+
++#ifdef _USE_NFS3
+ static const uint32_t nfsv3_optype[NFS_V3_NB_COMMAND] = {
+ [NFSPROC3_READ] = READ_OP,
+ [NFSPROC3_WRITE] = WRITE_OP,
+ };
+
++#endif
++
+ static const uint32_t nfsv40_optype[NFS_V40_NB_OPERATION] = {
+ [NFS4_OP_READ] = READ_OP,
+ [NFS4_OP_WRITE] = WRITE_OP,
diff --git a/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/module.patch b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/module.patch
new file mode 100644
index 0000000000..e096afe4ce
--- /dev/null
+++ b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/module.patch
@@ -0,0 +1,27 @@
+From 4d8ec5e1b04455b3f6ca40743a298e16a57cfaa4 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross@burtonini.com>
+Date: Fri, 5 Oct 2018 15:12:46 +0100
+Subject: [PATCH] Install fsalmem as a module
+
+Upstream-Status: Submitted [https://github.com/nfs-ganesha/nfs-ganesha/pull/354]
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+This isn't a shared library, it's a module.
+
+---
+ src/FSAL/FSAL_MEM/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/FSAL/FSAL_MEM/CMakeLists.txt b/src/FSAL/FSAL_MEM/CMakeLists.txt
+index 0f30fff..a9191ae 100644
+--- a/src/FSAL/FSAL_MEM/CMakeLists.txt
++++ b/src/FSAL/FSAL_MEM/CMakeLists.txt
+@@ -14,7 +14,7 @@ SET(fsalmem_LIB_SRCS
+ mem_up.c
+ )
+
+-add_library(fsalmem SHARED ${fsalmem_LIB_SRCS})
++add_library(fsalmem MODULE ${fsalmem_LIB_SRCS})
+ add_sanitizers(fsalmem)
+
+ target_link_libraries(fsalmem
diff --git a/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha_4.0.bb b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha_4.0.bb
new file mode 100644
index 0000000000..693fdf3777
--- /dev/null
+++ b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha_4.0.bb
@@ -0,0 +1,42 @@
+# TODO: review licenses
+LICENSE = "LGPL-3.0-only & Unknown"
+LIC_FILES_CHKSUM = "file://src/LICENSE.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+ file://src/cidr/LICENSE;md5=ab952b9c4b37753b18d79f305e8d8593"
+
+SRC_URI = "https://download.nfs-ganesha.org/4/4.0/nfs-ganesha-4.0.tar.gz \
+ file://module.patch \
+ file://0001-Fix-possible-null-pointer-dereference.patch \
+ file://0002-Workaround-for-erroneous-gcc-Werror.patch \
+ file://0003-Make-nfsv3_optype-guarded-by-_USE_NFS3.patch \
+ "
+SRC_URI[sha256sum] = "7a7214f0cec054f2dd45a44c107f02812c1478730c4c85681d1bfe7ca1e64f8c"
+
+DEPENDS = "flex-native bison-native ntirpc util-linux"
+
+inherit cmake pkgconfig
+
+PACKAGECONFIG[dbus] = "-DUSE_DBUS=ON,-DUSE_DBUS=OFF,dbus"
+PACKAGECONFIG[nfsidmap] = "-DUSE_NFSIDMAP=ON,-DUSE_NFSIDMAP=OFF,nfs-utils"
+PACKAGECONFIG[nfsv3] = "-DUSE_NFS3=ON,-DUSE_NFS3=OFF"
+PACKAGECONFIG[winbind] = "-D_MSPAC_SUPPORT=true,-D_MSPAC_SUPPORT=false,samba"
+PACKAGECONFIG[lttng] = "-DUSE_LTTNG=ON,-DUSE_LTTNG=OFF,lttng-ust liburcu"
+PACKAGECONFIG[acl] = "-DUSE_ACL_MAPPING=ON,USE_ACL_MAPPING=OFF,acl"
+PACKAGECONFIG[jemalloc] = ",,jemalloc"
+
+
+OECMAKE_SOURCEPATH = "${S}/src"
+
+EXTRA_OECMAKE += "-DUSE_SYSTEM_NTIRPC=ON"
+EXTRA_OECMAKE += "-DUSE_GSS=OFF"
+
+# Sort out the brain-dead cmake file
+# (https://github.com/nfs-ganesha/ntirpc/issues/150)
+do_install:append() {
+ if [ "${prefix}/lib64" != "${libdir}" -a -d ${D}${prefix}/lib64 ]; then
+ mv ${D}${prefix}/lib64 ${D}${libdir}
+ fi
+}
+
+FILES:${PN} += "${libdir}/ganesha/*.so"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/unfs3/unfs3/0001-Add-listen-action-for-a-tcp-socket.patch b/meta/recipes-devtools/unfs3/unfs3/0001-Add-listen-action-for-a-tcp-socket.patch
deleted file mode 100644
index e9b9d3df46..0000000000
--- a/meta/recipes-devtools/unfs3/unfs3/0001-Add-listen-action-for-a-tcp-socket.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From b42ab8e1aca951dd06c113159491b3fd5cf06f2e Mon Sep 17 00:00:00 2001
-From: Haiqing Bai <Haiqing.Bai@windriver.com>
-Date: Thu, 24 Oct 2019 09:39:04 +0800
-Subject: [PATCH] Add "listen" action for a tcp socket which does not call
- 'listen' after 'bind'
-
-It is found that /usr/bin/unfsd customus 100% cpu after starting qemu with 'nfs'
-option, and below lots of error messages shows when strace the process:
-
-poll([{fd=3, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND},{fd=4, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND},
-{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND},{fd=6, events =POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}],
-4, 2000) = 2 ([{fd=4, revents=POLLHUP},{fd=6, revents=POLLHUP}])
-accept(4, 0x7ffd5e6dddc0, [128]) = -1 EINVAL (Invalid argument)
-accept(6, 0x7ffd5e6dddc0, [128]) = -1 EINVAL (Invalid argument)
-
-% time seconds usecs/call calls errors syscall
------- ----------- ----------- --------- --------- ----------------
- 70.87 0.005392 0 513886 513886 accept
- 29.13 0.002216 0 256943 poll
- 0.00 0.000000 0 4 read
-
-The root cause is that 'listen' is not called for the binded
-socket. The depended libtipc does not call 'listen' if found
-the incomming socket is binded, so 'accept' reports the error
-in the 'for' loop and cpu consumed.
-
-Upstream-Status: Pending
-
-Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
----
- daemon.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/daemon.c b/daemon.c
-index 028a181..4c85903 100644
---- a/daemon.c
-+++ b/daemon.c
-@@ -814,6 +814,13 @@ static SVCXPRT *create_tcp_transport(unsigned int port)
- fprintf(stderr, "Couldn't bind to tcp port %d\n", port);
- exit(1);
- }
-+
-+ if (listen(sock, SOMAXCONN) < 0) {
-+ perror("listen");
-+ fprintf(stderr, "Couldn't listen on the address \n");
-+ close(sock);
-+ exit(1);
-+ }
- }
-
- transp = svctcp_create(sock, 0, 0);
---
-1.9.1
-
diff --git a/meta/recipes-devtools/unfs3/unfs3/0001-attr-fix-utime-for-symlink.patch b/meta/recipes-devtools/unfs3/unfs3/0001-attr-fix-utime-for-symlink.patch
deleted file mode 100644
index 6957d102b8..0000000000
--- a/meta/recipes-devtools/unfs3/unfs3/0001-attr-fix-utime-for-symlink.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From 3f4fcb62661059bad77a2e957b4621137797bc2f Mon Sep 17 00:00:00 2001
-From: Rui Wang <rui.wang@windriver.com>
-Date: Fri, 15 Jun 2018 14:19:10 +0800
-Subject: [PATCH] attr: fix utime for symlink
-
-unfs3 has an old defect that it can not change the timestamps of a
-symlink file because it only uses utime(), which will follow the
-symlink. This will not cause an error if the symlink points to an
-existent file. But under some special situation, such as installing
-a rpm package, rpm tool will create the symlink first and try to
-modify the timestamps of it, when the target file is non-existent.
-This will cause an ESTALE error. Making rpm tool ignore this error
-is a solution, but not the best one. An acceptable approach is
-Making unfs3 support lutimes(), which can modify the symlink file
-itself. Considering not every system support this function, so a
-function checking is necessary.
-
-Upstream-Status: Submitted [https://sourceforge.net/p/unfs3/bugs/12/]
-
-Signed-off-by: Rui Wang <rui.wang@windriver.com>
----
- attr.c | 15 +++++++++++----
- backend_unix.h | 2 ++
- configure.ac | 1 +
- 3 files changed, 14 insertions(+), 4 deletions(-)
-
-diff --git a/attr.c b/attr.c
-index 73e5c75..427d0e2 100644
---- a/attr.c
-+++ b/attr.c
-@@ -280,7 +280,7 @@ post_op_attr get_post_cached(struct svc_req * req)
- static nfsstat3 set_time(const char *path, backend_statstruct buf, sattr3 new)
- {
- time_t new_atime, new_mtime;
-- struct utimbuf utim;
-+ struct timeval stamps[2];
- int res;
-
- /* set atime and mtime */
-@@ -302,10 +302,17 @@ static nfsstat3 set_time(const char *path, backend_statstruct buf, sattr3 new)
- else /* DONT_CHANGE */
- new_mtime = buf.st_mtime;
-
-- utim.actime = new_atime;
-- utim.modtime = new_mtime;
-+ stamps[0].tv_sec = new_atime;
-+ stamps[0].tv_usec = 0;
-+ stamps[1].tv_sec = new_mtime;
-+ stamps[1].tv_usec = 0;
-+
-+#if HAVE_LUTIMES
-+ res = backend_lutimes(path, stamps);
-+#else
-+ res = backend_utimes(path, stamps);
-+#endif
-
-- res = backend_utime(path, &utim);
- if (res == -1)
- return setattr_err();
- }
-diff --git a/backend_unix.h b/backend_unix.h
-index fbc2af3..813ffd3 100644
---- a/backend_unix.h
-+++ b/backend_unix.h
-@@ -61,6 +61,8 @@
- #define backend_symlink symlink
- #define backend_truncate truncate
- #define backend_utime utime
-+#define backend_utimes utimes
-+#define backend_lutimes lutimes
- #define backend_statstruct struct stat
- #define backend_dirstream DIR
- #define backend_statvfsstruct struct statvfs
-diff --git a/configure.ac b/configure.ac
-index aeec598..ea7f167 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -37,6 +37,7 @@ AC_CHECK_FUNCS(setresuid setresgid)
- AC_CHECK_FUNCS(vsyslog)
- AC_CHECK_FUNCS(lchown)
- AC_CHECK_FUNCS(setgroups)
-+AC_CHECK_FUNCS(lutimes)
- UNFS3_SOLARIS_RPC
- UNFS3_PORTMAP_DEFINE
- UNFS3_COMPILE_WARNINGS
diff --git a/meta/recipes-devtools/unfs3/unfs3/0001-daemon.c-Libtirpc-porting-fixes.patch b/meta/recipes-devtools/unfs3/unfs3/0001-daemon.c-Libtirpc-porting-fixes.patch
deleted file mode 100644
index 6eee6748f9..0000000000
--- a/meta/recipes-devtools/unfs3/unfs3/0001-daemon.c-Libtirpc-porting-fixes.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From c7a2a65d6c2a433312540c207860740d6e4e7629 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 11 Mar 2018 17:32:54 -0700
-Subject: [PATCH] daemon.c: Libtirpc porting fixes
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- daemon.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/daemon.c b/daemon.c
-index 22f30f6..028a181 100644
---- a/daemon.c
-+++ b/daemon.c
-@@ -117,7 +117,7 @@ void logmsg(int prio, const char *fmt, ...)
- */
- struct in_addr get_remote(struct svc_req *rqstp)
- {
-- return (svc_getcaller(rqstp->rq_xprt))->sin_addr;
-+ return ((struct sockaddr_in*)svc_getcaller(rqstp->rq_xprt))->sin_addr;
- }
-
- /*
-@@ -125,7 +125,7 @@ struct in_addr get_remote(struct svc_req *rqstp)
- */
- short get_port(struct svc_req *rqstp)
- {
-- return (svc_getcaller(rqstp->rq_xprt))->sin_port;
-+ return ((struct sockaddr_in*)svc_getcaller(rqstp->rq_xprt))->sin_port;
- }
-
- /*
---
-2.16.2
-
diff --git a/meta/recipes-devtools/unfs3/unfs3/alternate_rpc_ports.patch b/meta/recipes-devtools/unfs3/unfs3/alternate_rpc_ports.patch
deleted file mode 100644
index ff745d4774..0000000000
--- a/meta/recipes-devtools/unfs3/unfs3/alternate_rpc_ports.patch
+++ /dev/null
@@ -1,158 +0,0 @@
-Add ability to specify rcp port numbers
-
-In order to run more than one unfs server on a host system, you must
-be able to specify alternate rpc port numbers.
-
-Jason Wessel <jason.wessel@windriver.com>
-
-Upstream-Status: Submitted http://sourceforge.net/p/unfs3/bugs/5/
-
----
- daemon.c | 44 +++++++++++++++++++++++++++++++-------------
- mount.c | 4 ++--
- 2 files changed, 33 insertions(+), 15 deletions(-)
-
---- a/daemon.c
-+++ b/daemon.c
-@@ -78,6 +78,8 @@ int opt_testconfig = FALSE;
- struct in_addr opt_bind_addr;
- int opt_readable_executables = FALSE;
- char *opt_pid_file = NULL;
-+int nfs_prog = NFS3_PROGRAM;
-+int mount_prog = MOUNTPROG;
-
- /* Register with portmapper? */
- int opt_portmapper = TRUE;
-@@ -206,7 +208,7 @@ static void parse_options(int argc, char
- {
-
- int opt = 0;
-- char *optstring = "bcC:de:hl:m:n:prstTuwi:";
-+ char *optstring = "bcC:de:hl:m:n:prstTuwi:x:y:";
-
- while (opt != -1) {
- opt = getopt(argc, argv, optstring);
-@@ -261,8 +263,24 @@ static void parse_options(int argc, char
- printf
- ("\t-r report unreadable executables as readable\n");
- printf("\t-T test exports file and exit\n");
-+ printf("\t-x <port> alternate NFS RPC port\n");
-+ printf("\t-y <port> alternate MOUNTD RPC port\n");
- exit(0);
- break;
-+ case 'x':
-+ nfs_prog = strtol(optarg, NULL, 10);
-+ if (nfs_prog == 0) {
-+ fprintf(stderr, "Invalid NFS RPC port\n");
-+ exit(1);
-+ }
-+ break;
-+ case 'y':
-+ mount_prog = strtol(optarg, NULL, 10);
-+ if (mount_prog == 0) {
-+ fprintf(stderr, "Invalid MOUNTD RPC port\n");
-+ exit(1);
-+ }
-+ break;
- case 'l':
- opt_bind_addr.s_addr = inet_addr(optarg);
- if (opt_bind_addr.s_addr == (unsigned) -1) {
-@@ -347,12 +365,12 @@ void daemon_exit(int error)
- #endif /* WIN32 */
-
- if (opt_portmapper) {
-- svc_unregister(MOUNTPROG, MOUNTVERS1);
-- svc_unregister(MOUNTPROG, MOUNTVERS3);
-+ svc_unregister(mount_prog, MOUNTVERS1);
-+ svc_unregister(mount_prog, MOUNTVERS3);
- }
-
- if (opt_portmapper) {
-- svc_unregister(NFS3_PROGRAM, NFS_V3);
-+ svc_unregister(nfs_prog, NFS_V3);
- }
-
- if (error == SIGSEGV)
-@@ -657,13 +675,13 @@ static void mountprog_3(struct svc_req *
- static void register_nfs_service(SVCXPRT * udptransp, SVCXPRT * tcptransp)
- {
- if (opt_portmapper) {
-- pmap_unset(NFS3_PROGRAM, NFS_V3);
-+ pmap_unset(nfs_prog, NFS_V3);
- }
-
- if (udptransp != NULL) {
- /* Register NFS service for UDP */
- if (!svc_register
-- (udptransp, NFS3_PROGRAM, NFS_V3, nfs3_program_3,
-+ (udptransp, nfs_prog, NFS_V3, nfs3_program_3,
- opt_portmapper ? IPPROTO_UDP : 0)) {
- fprintf(stderr, "%s\n",
- "unable to register (NFS3_PROGRAM, NFS_V3, udp).");
-@@ -674,7 +692,7 @@ static void register_nfs_service(SVCXPRT
- if (tcptransp != NULL) {
- /* Register NFS service for TCP */
- if (!svc_register
-- (tcptransp, NFS3_PROGRAM, NFS_V3, nfs3_program_3,
-+ (tcptransp, nfs_prog, NFS_V3, nfs3_program_3,
- opt_portmapper ? IPPROTO_TCP : 0)) {
- fprintf(stderr, "%s\n",
- "unable to register (NFS3_PROGRAM, NFS_V3, tcp).");
-@@ -686,14 +704,14 @@ static void register_nfs_service(SVCXPRT
- static void register_mount_service(SVCXPRT * udptransp, SVCXPRT * tcptransp)
- {
- if (opt_portmapper) {
-- pmap_unset(MOUNTPROG, MOUNTVERS1);
-- pmap_unset(MOUNTPROG, MOUNTVERS3);
-+ pmap_unset(mount_prog, MOUNTVERS1);
-+ pmap_unset(mount_prog, MOUNTVERS3);
- }
-
- if (udptransp != NULL) {
- /* Register MOUNT service (v1) for UDP */
- if (!svc_register
-- (udptransp, MOUNTPROG, MOUNTVERS1, mountprog_3,
-+ (udptransp, mount_prog, MOUNTVERS1, mountprog_3,
- opt_portmapper ? IPPROTO_UDP : 0)) {
- fprintf(stderr, "%s\n",
- "unable to register (MOUNTPROG, MOUNTVERS1, udp).");
-@@ -702,7 +720,7 @@ static void register_mount_service(SVCXP
-
- /* Register MOUNT service (v3) for UDP */
- if (!svc_register
-- (udptransp, MOUNTPROG, MOUNTVERS3, mountprog_3,
-+ (udptransp, mount_prog, MOUNTVERS3, mountprog_3,
- opt_portmapper ? IPPROTO_UDP : 0)) {
- fprintf(stderr, "%s\n",
- "unable to register (MOUNTPROG, MOUNTVERS3, udp).");
-@@ -713,7 +731,7 @@ static void register_mount_service(SVCXP
- if (tcptransp != NULL) {
- /* Register MOUNT service (v1) for TCP */
- if (!svc_register
-- (tcptransp, MOUNTPROG, MOUNTVERS1, mountprog_3,
-+ (tcptransp, mount_prog, MOUNTVERS1, mountprog_3,
- opt_portmapper ? IPPROTO_TCP : 0)) {
- fprintf(stderr, "%s\n",
- "unable to register (MOUNTPROG, MOUNTVERS1, tcp).");
-@@ -722,7 +740,7 @@ static void register_mount_service(SVCXP
-
- /* Register MOUNT service (v3) for TCP */
- if (!svc_register
-- (tcptransp, MOUNTPROG, MOUNTVERS3, mountprog_3,
-+ (tcptransp, mount_prog, MOUNTVERS3, mountprog_3,
- opt_portmapper ? IPPROTO_TCP : 0)) {
- fprintf(stderr, "%s\n",
- "unable to register (MOUNTPROG, MOUNTVERS3, tcp).");
---- a/mount.c
-+++ b/mount.c
-@@ -155,8 +155,8 @@ mountres3 *mountproc_mnt_3_svc(dirpath *
- /* error out if not version 3 */
- if (rqstp->rq_vers != 3) {
- logmsg(LOG_INFO,
-- "%s attempted mount with unsupported protocol version",
-- inet_ntoa(get_remote(rqstp)));
-+ "%s attempted mount with unsupported protocol version: %i",
-+ inet_ntoa(get_remote(rqstp)), rqstp->rq_vers);
- result.fhs_status = MNT3ERR_INVAL;
- return &result;
- }
diff --git a/meta/recipes-devtools/unfs3/unfs3/fix_compile_warning.patch b/meta/recipes-devtools/unfs3/unfs3/fix_compile_warning.patch
deleted file mode 100644
index aada014117..0000000000
--- a/meta/recipes-devtools/unfs3/unfs3/fix_compile_warning.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-daemon.c: Check exit code of chdir()
-
-Stop the compile warning and fix the code to act on a chdir() failure.
-If this one does fail something is very, very wrong.
-
-Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
-
-Upstream-Status: Submitted http://sourceforge.net/p/unfs3/bugs/5/
-
----
- daemon.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/daemon.c
-+++ b/daemon.c
-@@ -964,7 +964,8 @@ int main(int argc, char **argv)
- sigaction(SIGALRM, &act, NULL);
-
- /* don't make directory we started in busy */
-- chdir("/");
-+ if(chdir("/") < 0)
-+ daemon_exit(0);
-
- /* detach from terminal */
- if (opt_detach) {
diff --git a/meta/recipes-devtools/unfs3/unfs3/fix_pid_race_parent_writes_child_pid.patch b/meta/recipes-devtools/unfs3/unfs3/fix_pid_race_parent_writes_child_pid.patch
deleted file mode 100644
index 46b187e5f3..0000000000
--- a/meta/recipes-devtools/unfs3/unfs3/fix_pid_race_parent_writes_child_pid.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-daemon.c: Fix race window for writing of the pid file
-
-The parent process should write the pid file such that the pid file
-will can be checked immediately following exit of the fork from the
-parent.
-
-This allows external monitoring applications to watch the daemon
-without having to add sleep calls to wait for the pid file be written
-on a busy system.
-
-Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
-
-Upstream-Status: Submitted http://sourceforge.net/p/unfs3/bugs/5/
-
----
- daemon.c | 12 +++++++++---
- 1 file changed, 9 insertions(+), 3 deletions(-)
-
---- a/daemon.c
-+++ b/daemon.c
-@@ -153,7 +153,7 @@ int get_socket_type(struct svc_req *rqst
- /*
- * write current pid to a file
- */
--static void create_pid_file(void)
-+static void create_pid_file(int pid)
- {
- char buf[16];
- int fd, res, len;
-@@ -175,7 +175,7 @@ static void create_pid_file(void)
- }
- #endif
-
-- sprintf(buf, "%i\n", backend_getpid());
-+ sprintf(buf, "%i\n", pid);
- len = strlen(buf);
-
- res = backend_pwrite(fd, buf, len, 0);
-@@ -970,6 +970,10 @@ int main(int argc, char **argv)
- fprintf(stderr, "could not fork into background\n");
- daemon_exit(0);
- }
-+ if (pid)
-+ create_pid_file(pid);
-+ } else {
-+ create_pid_file(backend_getpid());
- }
- #endif /* WIN32 */
-
-@@ -1006,8 +1010,10 @@ int main(int argc, char **argv)
- /* no umask to not screw up create modes */
- umask(0);
-
-+#ifdef WIN32
- /* create pid file if wanted */
-- create_pid_file();
-+ create_pid_file(backend_getpid());
-+#endif
-
- /* initialize internal stuff */
- fh_cache_init();
diff --git a/meta/recipes-devtools/unfs3/unfs3/no-yywrap.patch b/meta/recipes-devtools/unfs3/unfs3/no-yywrap.patch
deleted file mode 100644
index e3496814d8..0000000000
--- a/meta/recipes-devtools/unfs3/unfs3/no-yywrap.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Upstream-Status: Backport [https://github.com/unfs3/unfs3/commit/3fa0568e6ef96e045286afe18444bc28fe93962b]
-
-diff --git a/Config/exports.l b/Config/exports.l
-index 662603c..7e7c4fc 100644
---- a/Config/exports.l
-+++ b/Config/exports.l
-@@ -50,6 +50,7 @@ OLDNET {IP}"/"{IP}
-
- %option nounput
- %option noinput
-+%option noyywrap
-
- %%
-
diff --git a/meta/recipes-devtools/unfs3/unfs3/relative_max_socket_path_len.patch b/meta/recipes-devtools/unfs3/unfs3/relative_max_socket_path_len.patch
deleted file mode 100644
index 219dd35aec..0000000000
--- a/meta/recipes-devtools/unfs3/unfs3/relative_max_socket_path_len.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-nfs.c: Allow max sa.sun_path for a localdomain socket with the user nfs-server
-
-There is a hard limit for the kernel of 108 characters for a
-localdomain socket name. To avoid problems with the user nfs
-server it should maximize the number of characters by using
-a relative path on the server side.
-
-Previously the nfs-server used the absolute path name passed to
-the sa.sunpath arg for binding the socket and this has caused
-problems for both the X server and UST binaries which make
-heavy use of named sockets with long names.
-
-Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
-
-Upstream-Status: Submitted http://sourceforge.net/p/unfs3/bugs/5/
-
----
- nfs.c | 29 +++++++++++++++++++++++++++--
- 1 file changed, 27 insertions(+), 2 deletions(-)
-
---- a/nfs.c
-+++ b/nfs.c
-@@ -672,6 +672,7 @@ SYMLINK3res *nfsproc3_symlink_3_svc(SYML
- }
-
- #ifndef WIN32
-+static char pathbuf_tmp[NFS_MAXPATHLEN + NFS_MAXNAMLEN + 1];
-
- /*
- * create Unix socket
-@@ -680,17 +681,41 @@ static int mksocket(const char *path, mo
- {
- int res, sock;
- struct sockaddr_un addr;
-+ unsigned int len = strlen(path);
-
- sock = socket(PF_UNIX, SOCK_STREAM, 0);
-- addr.sun_family = AF_UNIX;
-- strcpy(addr.sun_path, path);
- res = sock;
- if (res != -1) {
-+ addr.sun_family = AF_UNIX;
-+ if (len < sizeof(addr.sun_path) -1) {
-+ strcpy(addr.sun_path, path);
-+ } else {
-+ char *ptr;
-+ res = -1;
-+ if (len >= sizeof(path))
-+ goto out;
-+ strcpy(pathbuf_tmp, path);
-+ ptr = strrchr(pathbuf_tmp,'/');
-+ if (ptr) {
-+ *ptr = '\0';
-+ ptr++;
-+ if (chdir(pathbuf_tmp))
-+ goto out;
-+ } else {
-+ ptr = pathbuf_tmp;
-+ }
-+ if (strlen(ptr) >= sizeof(addr.sun_path))
-+ goto out;
-+ strcpy(addr.sun_path, ptr);
-+ }
- umask(~mode);
- res =
- bind(sock, (struct sockaddr *) &addr,
- sizeof(addr.sun_family) + strlen(addr.sun_path));
- umask(0);
-+out:
-+ if (chdir("/"))
-+ fprintf(stderr, "Internal failure to chdir /\n");
- close(sock);
- }
- return res;
diff --git a/meta/recipes-devtools/unfs3/unfs3/rename_fh_cache.patch b/meta/recipes-devtools/unfs3/unfs3/rename_fh_cache.patch
deleted file mode 100644
index e6d89530f8..0000000000
--- a/meta/recipes-devtools/unfs3/unfs3/rename_fh_cache.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From: Jason Wessel <jason.wessel@windriver.com>
-Date: Sat, 23 Feb 2013 08:49:08 -0600
-Subject: [PATCH] fh_cache: fix statle nfs handle on rename problem
-
-The following test case fails with modern linunx kernels which cache
-the renamed inode.
-
- % mkdir a;mkdir b;mv b a/;ls -l a
- ls: a/b: Stale NFS file handle
-
-The issue is that nfserver was not updating the fh_cache with the new
-location of the inode, when it moves directories.
-
-Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
-
-Upstream-Status: Submitted http://sourceforge.net/p/unfs3/bugs/5/
-
----
- fh_cache.c | 12 ++++++++++++
- fh_cache.h | 1 +
- nfs.c | 2 ++
- 3 files changed, 15 insertions(+)
-
---- a/fh_cache.c
-+++ b/fh_cache.c
-@@ -199,6 +199,18 @@ static char *fh_cache_lookup(uint32 dev,
- }
-
- /*
-+ * update a fh inode cache for an operation like rename
-+ */
-+void fh_cache_update(nfs_fh3 fh, char *path)
-+{
-+ unfs3_fh_t *obj = (void *) fh.data.data_val;
-+ backend_statstruct buf;
-+
-+ if (backend_lstat(path, &buf) != -1) {
-+ fh_cache_add(obj->dev, buf.st_ino, path);
-+ }
-+}
-+/*
- * resolve a filename into a path
- * cache-using wrapper for fh_decomp_raw
- */
---- a/fh_cache.h
-+++ b/fh_cache.h
-@@ -19,5 +19,6 @@ unfs3_fh_t fh_comp(const char *path, str
- unfs3_fh_t *fh_comp_ptr(const char *path, struct svc_req *rqstp, int need_dir);
-
- char *fh_cache_add(uint32 dev, uint64 ino, const char *path);
-+void fh_cache_update(nfs_fh3 fh, char *path);
-
- #endif
---- a/nfs.c
-+++ b/nfs.c
-@@ -876,6 +876,8 @@ RENAME3res *nfsproc3_rename_3_svc(RENAME
- res = backend_rename(from_obj, to_obj);
- if (res == -1)
- result.status = rename_err();
-+ /* Update the fh_cache with moved inode value */
-+ fh_cache_update(argp->to.dir, to_obj);
- }
- }
-
diff --git a/meta/recipes-devtools/unfs3/unfs3/tcp_no_delay.patch b/meta/recipes-devtools/unfs3/unfs3/tcp_no_delay.patch
deleted file mode 100644
index b3521c63eb..0000000000
--- a/meta/recipes-devtools/unfs3/unfs3/tcp_no_delay.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-daemon.c: Add option for tcp no delay
-
-Allow the NFS tcp sockets to conditionally use TCP_NODELAY
-
-Upstream-Status: Submitted http://sourceforge.net/p/unfs3/bugs/5/
-
----
- daemon.c | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
---- a/daemon.c
-+++ b/daemon.c
-@@ -17,6 +17,7 @@
- #ifndef WIN32
- #include <sys/socket.h>
- #include <netinet/in.h>
-+#include <netinet/tcp.h>
- #include <arpa/inet.h>
- #include <syslog.h>
- #else /* WIN32 */
-@@ -75,6 +76,7 @@ unsigned int opt_mount_port = NFS_PORT;
- int opt_singleuser = FALSE;
- int opt_brute_force = FALSE;
- int opt_testconfig = FALSE;
-+int opt_tcp_nodelay = FALSE;
- struct in_addr opt_bind_addr;
- int opt_readable_executables = FALSE;
- char *opt_pid_file = NULL;
-@@ -208,7 +210,7 @@ static void parse_options(int argc, char
- {
-
- int opt = 0;
-- char *optstring = "bcC:de:hl:m:n:prstTuwi:x:y:";
-+ char *optstring = "bcC:de:hl:m:Nn:prstTuwi:x:y:";
-
- while (opt != -1) {
- opt = getopt(argc, argv, optstring);
-@@ -295,6 +297,9 @@ static void parse_options(int argc, char
- exit(1);
- }
- break;
-+ case 'N':
-+ opt_tcp_nodelay = TRUE;
-+ break;
- case 'n':
- opt_nfs_port = strtol(optarg, NULL, 10);
- if (opt_nfs_port == 0) {
-@@ -802,6 +807,8 @@ static SVCXPRT *create_tcp_transport(uns
- sin.sin_addr.s_addr = opt_bind_addr.s_addr;
- sock = socket(PF_INET, SOCK_STREAM, 0);
- setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (const char *) &on, sizeof(on));
-+ if (opt_tcp_nodelay)
-+ setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on));
- if (bind(sock, (struct sockaddr *) &sin, sizeof(struct sockaddr))) {
- perror("bind");
- fprintf(stderr, "Couldn't bind to tcp port %d\n", port);
diff --git a/meta/recipes-devtools/unfs3/unfs3/unfs3_parallel_build.patch b/meta/recipes-devtools/unfs3/unfs3/unfs3_parallel_build.patch
deleted file mode 100644
index 6f64dd5b3e..0000000000
--- a/meta/recipes-devtools/unfs3/unfs3/unfs3_parallel_build.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-Fix parallel build dependency issue
-
-If building with make -j2 the lib.a will not get built in time.
-
-Jason Wessel <jason.wessel@windriver.com>
-
-Upstream-Status: Submitted http://sourceforge.net/p/unfs3/bugs/5/
-
----
- Config/Makefile.in | 3 +++
- Makefile.in | 3 ++-
- 2 files changed, 5 insertions(+), 1 deletion(-)
-
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -29,7 +29,8 @@ DESTDIR =
-
- VPATH = $(srcdir)
-
--all: subdirs unfsd$(EXEEXT)
-+all: subdirs
-+ $(MAKE) unfsd$(EXEEXT)
-
- unfsd$(EXEEXT): $(OBJS) $(CONFOBJ) $(EXTRAOBJ)
- $(CC) -o $@ $(OBJS) $(CONFOBJ) $(EXTRAOBJ) $(LDFLAGS)
---- a/Config/Makefile.in
-+++ b/Config/Makefile.in
-@@ -16,6 +16,9 @@ lib.a: $(OBJS)
- $(AR) crs lib.a $(OBJS)
-
- y.tab.h y.tab.c: $(srcdir)/exports.y
-+y.tab.h: y.tab.c
-+
-+y.tab.c: $(srcdir)/exports.y
- $(YACC) -d $(srcdir)/exports.y
-
- y.tab.o: y.tab.c $(srcdir)/exports.h $(top_srcdir)/nfs.h $(top_srcdir)/mount.h $(top_srcdir)/daemon.h
diff --git a/meta/recipes-devtools/unfs3/unfs3_git.bb b/meta/recipes-devtools/unfs3/unfs3_git.bb
deleted file mode 100644
index 7a5d273851..0000000000
--- a/meta/recipes-devtools/unfs3/unfs3_git.bb
+++ /dev/null
@@ -1,45 +0,0 @@
-SUMMARY = "Userspace NFS server v3 protocol"
-DESCRIPTION = "UNFS3 is a user-space implementation of the NFSv3 server \
-specification. It provides a daemon for the MOUNT and NFS protocols, which \
-are used by NFS clients for accessing files on the server."
-HOMEPAGE = "https://github.com/unfs3/unfs3"
-SECTION = "console/network"
-LICENSE = "unfs3"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=9475885294e17c0cc0067820d042792e"
-
-DEPENDS = "flex-native bison-native flex"
-DEPENDS += "libtirpc"
-DEPENDS:append:class-nativesdk = " flex-nativesdk"
-
-ASNEEDED = ""
-
-S = "${WORKDIR}/git"
-SRC_URI = "git://github.com/unfs3/unfs3.git;protocol=https;branch=master \
- file://unfs3_parallel_build.patch \
- file://alternate_rpc_ports.patch \
- file://fix_pid_race_parent_writes_child_pid.patch \
- file://fix_compile_warning.patch \
- file://rename_fh_cache.patch \
- file://relative_max_socket_path_len.patch \
- file://tcp_no_delay.patch \
- file://0001-daemon.c-Libtirpc-porting-fixes.patch \
- file://0001-attr-fix-utime-for-symlink.patch \
- file://0001-Add-listen-action-for-a-tcp-socket.patch \
- file://no-yywrap.patch \
- "
-SRCREV = "c12a5c69a8d59be6916cbd0e0f41c159f1962425"
-UPSTREAM_CHECK_GITTAGREGEX = "unfs3\-(?P<pver>.+)"
-
-PV = "0.9.22+${SRCPV}"
-
-BBCLASSEXTEND = "native nativesdk"
-
-inherit autotools
-EXTRA_OECONF:append:class-native = " --sbindir=${bindir}"
-CFLAGS:append = " -I${STAGING_INCDIR}/tirpc"
-EXTRA_OECONF:append = " LIBS=-ltirpc"
-
-# Turn off these header detects else the inode search
-# will walk entire file systems and this is a real problem
-# if you have 2 TB of files to walk in your file system
-CACHED_CONFIGUREVARS = "ac_cv_header_mntent_h=no ac_cv_header_sys_mnttab_h=no"
--
2.25.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [OE-core] [PATCH 2/2] nfs-ganesha: Replace unfs3 with nfs-ganesha
2022-08-27 17:46 ` [PATCH 2/2] nfs-ganesha: Replace unfs3 with nfs-ganesha Paulo Neves
@ 2022-08-27 18:06 ` Alexander Kanavin
2022-08-28 17:44 ` Paulo Neves
0 siblings, 1 reply; 13+ messages in thread
From: Alexander Kanavin @ 2022-08-27 18:06 UTC (permalink / raw)
To: Paulo Neves; +Cc: OE-core
Thank for the replacement, but it seems like the patch isn't quite
complete? The upstream statuses are all incorrect, and the recipe
lacks summary/description/homepage, and has a TODO and an unknown
license in it.
Alex
On Sat, 27 Aug 2022 at 19:46, Paulo Neves <ptsneves@gmail.com> wrote:
>
> nfs-ganesha is actively maintained in contrast with unfs3. glibc tests
> pass with nfs-ganesha.
>
> Signed-off-by: Paulo Neves <ptsneves@gmail.com>
> ---
> meta/lib/oeqa/utils/nfs.py | 2 +-
> ...ix-possible-null-pointer-dereference.patch | 40 +++++
> ...-Workaround-for-erroneous-gcc-Werror.patch | 33 ++++
> ...ke-nfsv3_optype-guarded-by-_USE_NFS3.patch | 37 ++++
> .../nfs-ganesha/nfs-ganesha/module.patch | 27 +++
> .../nfs-ganesha/nfs-ganesha_4.0.bb | 42 +++++
> ...1-Add-listen-action-for-a-tcp-socket.patch | 54 ------
> .../0001-attr-fix-utime-for-symlink.patch | 85 ----------
> ...0001-daemon.c-Libtirpc-porting-fixes.patch | 37 ----
> .../unfs3/unfs3/alternate_rpc_ports.patch | 158 ------------------
> .../unfs3/unfs3/fix_compile_warning.patch | 25 ---
> ...fix_pid_race_parent_writes_child_pid.patch | 61 -------
> .../unfs3/unfs3/no-yywrap.patch | 14 --
> .../unfs3/relative_max_socket_path_len.patch | 74 --------
> .../unfs3/unfs3/rename_fh_cache.patch | 64 -------
> .../unfs3/unfs3/tcp_no_delay.patch | 56 -------
> .../unfs3/unfs3/unfs3_parallel_build.patch | 37 ----
> meta/recipes-devtools/unfs3/unfs3_git.bb | 45 -----
> 18 files changed, 180 insertions(+), 711 deletions(-)
> create mode 100644 meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0001-Fix-possible-null-pointer-dereference.patch
> create mode 100644 meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0002-Workaround-for-erroneous-gcc-Werror.patch
> create mode 100644 meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0003-Make-nfsv3_optype-guarded-by-_USE_NFS3.patch
> create mode 100644 meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/module.patch
> create mode 100644 meta/recipes-connectivity/nfs-ganesha/nfs-ganesha_4.0.bb
> delete mode 100644 meta/recipes-devtools/unfs3/unfs3/0001-Add-listen-action-for-a-tcp-socket.patch
> delete mode 100644 meta/recipes-devtools/unfs3/unfs3/0001-attr-fix-utime-for-symlink.patch
> delete mode 100644 meta/recipes-devtools/unfs3/unfs3/0001-daemon.c-Libtirpc-porting-fixes.patch
> delete mode 100644 meta/recipes-devtools/unfs3/unfs3/alternate_rpc_ports.patch
> delete mode 100644 meta/recipes-devtools/unfs3/unfs3/fix_compile_warning.patch
> delete mode 100644 meta/recipes-devtools/unfs3/unfs3/fix_pid_race_parent_writes_child_pid.patch
> delete mode 100644 meta/recipes-devtools/unfs3/unfs3/no-yywrap.patch
> delete mode 100644 meta/recipes-devtools/unfs3/unfs3/relative_max_socket_path_len.patch
> delete mode 100644 meta/recipes-devtools/unfs3/unfs3/rename_fh_cache.patch
> delete mode 100644 meta/recipes-devtools/unfs3/unfs3/tcp_no_delay.patch
> delete mode 100644 meta/recipes-devtools/unfs3/unfs3/unfs3_parallel_build.patch
> delete mode 100644 meta/recipes-devtools/unfs3/unfs3_git.bb
>
> diff --git a/meta/lib/oeqa/utils/nfs.py b/meta/lib/oeqa/utils/nfs.py
> index c1218656ce..bd947c0b88 100644
> --- a/meta/lib/oeqa/utils/nfs.py
> +++ b/meta/lib/oeqa/utils/nfs.py
> @@ -16,7 +16,7 @@ def unfs_server(directory, logger = None):
> unfs_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "unfs3-native")
> if not os.path.exists(os.path.join(unfs_sysroot, "usr", "bin", "unfsd")):
> # build native tool
> - bitbake("unfs3-native -c addto_recipe_sysroot")
> + bitbake("nfs-ganesha-native -c addto_recipe_sysroot")
>
> exports = None
> cmd = None
> diff --git a/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0001-Fix-possible-null-pointer-dereference.patch b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0001-Fix-possible-null-pointer-dereference.patch
> new file mode 100644
> index 0000000000..b06fc8d07e
> --- /dev/null
> +++ b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0001-Fix-possible-null-pointer-dereference.patch
> @@ -0,0 +1,40 @@
> +From e70f112dc79263298baf7a1b92c19234b8f1e506 Mon Sep 17 00:00:00 2001
> +From: Paulo Neves <ptsneves@gmail.com>
> +Date: Tue, 23 Aug 2022 14:56:44 +0200
> +Subject: [PATCH] Fix possible null pointer dereference
> +
> +If logging is enabled on nfs3_lookup, name is NULL initialized
> +and used. Assign name to a valid location before it is used.
> +
> +Upstream-Status: Pending [1]
> +
> +[1] https://github.com/nfs-ganesha/nfs-ganesha/pull/846
> +
> +Change-Id: Ia1a922a1d34268a7d0b5ba97293e647ef07f8b3a
> +Signed-off-by: Paulo Neves <ptsneves@gmail.com>
> +
> +---
> + src/Protocols/NFS/nfs3_lookup.c | 3 +--
> + 1 file changed, 1 insertion(+), 2 deletions(-)
> +
> +diff --git a/src/Protocols/NFS/nfs3_lookup.c b/src/Protocols/NFS/nfs3_lookup.c
> +index da65769..97c9603 100644
> +--- a/src/Protocols/NFS/nfs3_lookup.c
> ++++ b/src/Protocols/NFS/nfs3_lookup.c
> +@@ -74,6 +74,7 @@ int nfs3_lookup(nfs_arg_t *arg, struct svc_req *req, nfs_res_t *res)
> + */
> + fsal_prepare_attrs(&attrs, ATTRS_NFS3 | ATTR_RDATTR_ERR);
> +
> ++ name = arg->arg_lookup3.what.name;
> + LogNFS3_Operation(COMPONENT_NFSPROTO, req, &arg->arg_lookup3.what.dir,
> + " name: %s", name);
> +
> +@@ -89,8 +90,6 @@ int nfs3_lookup(nfs_arg_t *arg, struct svc_req *req, nfs_res_t *res)
> + goto out;
> + }
> +
> +- name = arg->arg_lookup3.what.name;
> +-
> + fsal_status = fsal_lookup(obj_dir, name, &obj_file, &attrs);
> +
> + if (FSAL_IS_ERROR(fsal_status)) {
> diff --git a/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0002-Workaround-for-erroneous-gcc-Werror.patch b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0002-Workaround-for-erroneous-gcc-Werror.patch
> new file mode 100644
> index 0000000000..4eaae2493a
> --- /dev/null
> +++ b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0002-Workaround-for-erroneous-gcc-Werror.patch
> @@ -0,0 +1,33 @@
> +From b8fa32c779b968fbbbe5d5dcaafa664b98cec81c Mon Sep 17 00:00:00 2001
> +From: Paulo Neves <ptsneves@gmail.com>
> +Date: Tue, 23 Aug 2022 14:59:19 +0200
> +Subject: [PATCH] Workaround for erroneous gcc Werror.
> +
> +gcc incorrectly decides that pos_len and pos_end are used
> +unninitialized. It is incorrect because the condition of their
> +use is the same as their early initialization. Apparently
> +gcc does not pick this fact and with Werror, emits an error
> +
> +Upstream-Status: Inappropriate [reason]
> +
> +Change-Id: I30a345483b5a4bc4b5ceb46badaec3a9d27d1782
> +Signed-off-by: Paulo Neves <ptsneves@gmail.com>
> +
> +---
> + src/Protocols/NFS/nfs_proto_tools.c | 3 ++-
> + 1 file changed, 2 insertions(+), 1 deletion(-)
> +
> +diff --git a/src/Protocols/NFS/nfs_proto_tools.c b/src/Protocols/NFS/nfs_proto_tools.c
> +index d0f628d..a741482 100644
> +--- a/src/Protocols/NFS/nfs_proto_tools.c
> ++++ b/src/Protocols/NFS/nfs_proto_tools.c
> +@@ -3688,7 +3688,8 @@ bool xdr_fattr4_encode(XDR *xdrs, struct xdr_attrs_args *args,
> + struct bitmap4 bitmap_encoded;
> + struct bitmap4 *bitmap;
> + /* Remember where we put the length of the attr data */
> +- u_int pos_len, pos_end;
> ++ u_int pos_len = 0;
> ++ u_int pos_end = 0;
> + uint32_t attr_len = 0;
> +
> + bitmap = attr_bitmap != NULL ? attr_bitmap : &bitmap_encoded;
> diff --git a/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0003-Make-nfsv3_optype-guarded-by-_USE_NFS3.patch b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0003-Make-nfsv3_optype-guarded-by-_USE_NFS3.patch
> new file mode 100644
> index 0000000000..ee89ed5628
> --- /dev/null
> +++ b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0003-Make-nfsv3_optype-guarded-by-_USE_NFS3.patch
> @@ -0,0 +1,37 @@
> +From 48086cb311e37ea58de60352609e270be62ee7e8 Mon Sep 17 00:00:00 2001
> +From: Paulo Neves <ptsneves@gmail.com>
> +Date: Tue, 23 Aug 2022 22:59:46 +0200
> +Subject: [PATCH] Make nfsv3_optype guarded by _USE_NFS3
> +
> +-Wunused-variable will trigger when NFS3 is not enabled.
> +
> +Upstream-Status: Pending [1]
> +
> +[1] https://github.com/nfs-ganesha/nfs-ganesha/pull/846
> +
> +Change-Id: Ib1fab2e1a59b834cda8317b2a3450e3c19437975
> +Signed-off-by: Paulo Neves <ptsneves@gmail.com>
> +
> +---
> + src/support/server_stats.c | 3 +++
> + 1 file changed, 3 insertions(+)
> +
> +diff --git a/src/support/server_stats.c b/src/support/server_stats.c
> +index 19a8cac..a92b035 100644
> +--- a/src/support/server_stats.c
> ++++ b/src/support/server_stats.c
> +@@ -246,11 +246,14 @@ enum proto_op_type {
> + LAYOUT_OP
> + };
> +
> ++#ifdef _USE_NFS3
> + static const uint32_t nfsv3_optype[NFS_V3_NB_COMMAND] = {
> + [NFSPROC3_READ] = READ_OP,
> + [NFSPROC3_WRITE] = WRITE_OP,
> + };
> +
> ++#endif
> ++
> + static const uint32_t nfsv40_optype[NFS_V40_NB_OPERATION] = {
> + [NFS4_OP_READ] = READ_OP,
> + [NFS4_OP_WRITE] = WRITE_OP,
> diff --git a/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/module.patch b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/module.patch
> new file mode 100644
> index 0000000000..e096afe4ce
> --- /dev/null
> +++ b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/module.patch
> @@ -0,0 +1,27 @@
> +From 4d8ec5e1b04455b3f6ca40743a298e16a57cfaa4 Mon Sep 17 00:00:00 2001
> +From: Ross Burton <ross@burtonini.com>
> +Date: Fri, 5 Oct 2018 15:12:46 +0100
> +Subject: [PATCH] Install fsalmem as a module
> +
> +Upstream-Status: Submitted [https://github.com/nfs-ganesha/nfs-ganesha/pull/354]
> +Signed-off-by: Ross Burton <ross.burton@intel.com>
> +
> +This isn't a shared library, it's a module.
> +
> +---
> + src/FSAL/FSAL_MEM/CMakeLists.txt | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/src/FSAL/FSAL_MEM/CMakeLists.txt b/src/FSAL/FSAL_MEM/CMakeLists.txt
> +index 0f30fff..a9191ae 100644
> +--- a/src/FSAL/FSAL_MEM/CMakeLists.txt
> ++++ b/src/FSAL/FSAL_MEM/CMakeLists.txt
> +@@ -14,7 +14,7 @@ SET(fsalmem_LIB_SRCS
> + mem_up.c
> + )
> +
> +-add_library(fsalmem SHARED ${fsalmem_LIB_SRCS})
> ++add_library(fsalmem MODULE ${fsalmem_LIB_SRCS})
> + add_sanitizers(fsalmem)
> +
> + target_link_libraries(fsalmem
> diff --git a/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha_4.0.bb b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha_4.0.bb
> new file mode 100644
> index 0000000000..693fdf3777
> --- /dev/null
> +++ b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha_4.0.bb
> @@ -0,0 +1,42 @@
> +# TODO: review licenses
> +LICENSE = "LGPL-3.0-only & Unknown"
> +LIC_FILES_CHKSUM = "file://src/LICENSE.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
> + file://src/cidr/LICENSE;md5=ab952b9c4b37753b18d79f305e8d8593"
> +
> +SRC_URI = "https://download.nfs-ganesha.org/4/4.0/nfs-ganesha-4.0.tar.gz \
> + file://module.patch \
> + file://0001-Fix-possible-null-pointer-dereference.patch \
> + file://0002-Workaround-for-erroneous-gcc-Werror.patch \
> + file://0003-Make-nfsv3_optype-guarded-by-_USE_NFS3.patch \
> + "
> +SRC_URI[sha256sum] = "7a7214f0cec054f2dd45a44c107f02812c1478730c4c85681d1bfe7ca1e64f8c"
> +
> +DEPENDS = "flex-native bison-native ntirpc util-linux"
> +
> +inherit cmake pkgconfig
> +
> +PACKAGECONFIG[dbus] = "-DUSE_DBUS=ON,-DUSE_DBUS=OFF,dbus"
> +PACKAGECONFIG[nfsidmap] = "-DUSE_NFSIDMAP=ON,-DUSE_NFSIDMAP=OFF,nfs-utils"
> +PACKAGECONFIG[nfsv3] = "-DUSE_NFS3=ON,-DUSE_NFS3=OFF"
> +PACKAGECONFIG[winbind] = "-D_MSPAC_SUPPORT=true,-D_MSPAC_SUPPORT=false,samba"
> +PACKAGECONFIG[lttng] = "-DUSE_LTTNG=ON,-DUSE_LTTNG=OFF,lttng-ust liburcu"
> +PACKAGECONFIG[acl] = "-DUSE_ACL_MAPPING=ON,USE_ACL_MAPPING=OFF,acl"
> +PACKAGECONFIG[jemalloc] = ",,jemalloc"
> +
> +
> +OECMAKE_SOURCEPATH = "${S}/src"
> +
> +EXTRA_OECMAKE += "-DUSE_SYSTEM_NTIRPC=ON"
> +EXTRA_OECMAKE += "-DUSE_GSS=OFF"
> +
> +# Sort out the brain-dead cmake file
> +# (https://github.com/nfs-ganesha/ntirpc/issues/150)
> +do_install:append() {
> + if [ "${prefix}/lib64" != "${libdir}" -a -d ${D}${prefix}/lib64 ]; then
> + mv ${D}${prefix}/lib64 ${D}${libdir}
> + fi
> +}
> +
> +FILES:${PN} += "${libdir}/ganesha/*.so"
> +
> +BBCLASSEXTEND = "native nativesdk"
> diff --git a/meta/recipes-devtools/unfs3/unfs3/0001-Add-listen-action-for-a-tcp-socket.patch b/meta/recipes-devtools/unfs3/unfs3/0001-Add-listen-action-for-a-tcp-socket.patch
> deleted file mode 100644
> index e9b9d3df46..0000000000
> --- a/meta/recipes-devtools/unfs3/unfs3/0001-Add-listen-action-for-a-tcp-socket.patch
> +++ /dev/null
> @@ -1,54 +0,0 @@
> -From b42ab8e1aca951dd06c113159491b3fd5cf06f2e Mon Sep 17 00:00:00 2001
> -From: Haiqing Bai <Haiqing.Bai@windriver.com>
> -Date: Thu, 24 Oct 2019 09:39:04 +0800
> -Subject: [PATCH] Add "listen" action for a tcp socket which does not call
> - 'listen' after 'bind'
> -
> -It is found that /usr/bin/unfsd customus 100% cpu after starting qemu with 'nfs'
> -option, and below lots of error messages shows when strace the process:
> -
> -poll([{fd=3, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND},{fd=4, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND},
> -{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND},{fd=6, events =POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}],
> -4, 2000) = 2 ([{fd=4, revents=POLLHUP},{fd=6, revents=POLLHUP}])
> -accept(4, 0x7ffd5e6dddc0, [128]) = -1 EINVAL (Invalid argument)
> -accept(6, 0x7ffd5e6dddc0, [128]) = -1 EINVAL (Invalid argument)
> -
> -% time seconds usecs/call calls errors syscall
> ------- ----------- ----------- --------- --------- ----------------
> - 70.87 0.005392 0 513886 513886 accept
> - 29.13 0.002216 0 256943 poll
> - 0.00 0.000000 0 4 read
> -
> -The root cause is that 'listen' is not called for the binded
> -socket. The depended libtipc does not call 'listen' if found
> -the incomming socket is binded, so 'accept' reports the error
> -in the 'for' loop and cpu consumed.
> -
> -Upstream-Status: Pending
> -
> -Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
> ----
> - daemon.c | 7 +++++++
> - 1 file changed, 7 insertions(+)
> -
> -diff --git a/daemon.c b/daemon.c
> -index 028a181..4c85903 100644
> ---- a/daemon.c
> -+++ b/daemon.c
> -@@ -814,6 +814,13 @@ static SVCXPRT *create_tcp_transport(unsigned int port)
> - fprintf(stderr, "Couldn't bind to tcp port %d\n", port);
> - exit(1);
> - }
> -+
> -+ if (listen(sock, SOMAXCONN) < 0) {
> -+ perror("listen");
> -+ fprintf(stderr, "Couldn't listen on the address \n");
> -+ close(sock);
> -+ exit(1);
> -+ }
> - }
> -
> - transp = svctcp_create(sock, 0, 0);
> ---
> -1.9.1
> -
> diff --git a/meta/recipes-devtools/unfs3/unfs3/0001-attr-fix-utime-for-symlink.patch b/meta/recipes-devtools/unfs3/unfs3/0001-attr-fix-utime-for-symlink.patch
> deleted file mode 100644
> index 6957d102b8..0000000000
> --- a/meta/recipes-devtools/unfs3/unfs3/0001-attr-fix-utime-for-symlink.patch
> +++ /dev/null
> @@ -1,85 +0,0 @@
> -From 3f4fcb62661059bad77a2e957b4621137797bc2f Mon Sep 17 00:00:00 2001
> -From: Rui Wang <rui.wang@windriver.com>
> -Date: Fri, 15 Jun 2018 14:19:10 +0800
> -Subject: [PATCH] attr: fix utime for symlink
> -
> -unfs3 has an old defect that it can not change the timestamps of a
> -symlink file because it only uses utime(), which will follow the
> -symlink. This will not cause an error if the symlink points to an
> -existent file. But under some special situation, such as installing
> -a rpm package, rpm tool will create the symlink first and try to
> -modify the timestamps of it, when the target file is non-existent.
> -This will cause an ESTALE error. Making rpm tool ignore this error
> -is a solution, but not the best one. An acceptable approach is
> -Making unfs3 support lutimes(), which can modify the symlink file
> -itself. Considering not every system support this function, so a
> -function checking is necessary.
> -
> -Upstream-Status: Submitted [https://sourceforge.net/p/unfs3/bugs/12/]
> -
> -Signed-off-by: Rui Wang <rui.wang@windriver.com>
> ----
> - attr.c | 15 +++++++++++----
> - backend_unix.h | 2 ++
> - configure.ac | 1 +
> - 3 files changed, 14 insertions(+), 4 deletions(-)
> -
> -diff --git a/attr.c b/attr.c
> -index 73e5c75..427d0e2 100644
> ---- a/attr.c
> -+++ b/attr.c
> -@@ -280,7 +280,7 @@ post_op_attr get_post_cached(struct svc_req * req)
> - static nfsstat3 set_time(const char *path, backend_statstruct buf, sattr3 new)
> - {
> - time_t new_atime, new_mtime;
> -- struct utimbuf utim;
> -+ struct timeval stamps[2];
> - int res;
> -
> - /* set atime and mtime */
> -@@ -302,10 +302,17 @@ static nfsstat3 set_time(const char *path, backend_statstruct buf, sattr3 new)
> - else /* DONT_CHANGE */
> - new_mtime = buf.st_mtime;
> -
> -- utim.actime = new_atime;
> -- utim.modtime = new_mtime;
> -+ stamps[0].tv_sec = new_atime;
> -+ stamps[0].tv_usec = 0;
> -+ stamps[1].tv_sec = new_mtime;
> -+ stamps[1].tv_usec = 0;
> -+
> -+#if HAVE_LUTIMES
> -+ res = backend_lutimes(path, stamps);
> -+#else
> -+ res = backend_utimes(path, stamps);
> -+#endif
> -
> -- res = backend_utime(path, &utim);
> - if (res == -1)
> - return setattr_err();
> - }
> -diff --git a/backend_unix.h b/backend_unix.h
> -index fbc2af3..813ffd3 100644
> ---- a/backend_unix.h
> -+++ b/backend_unix.h
> -@@ -61,6 +61,8 @@
> - #define backend_symlink symlink
> - #define backend_truncate truncate
> - #define backend_utime utime
> -+#define backend_utimes utimes
> -+#define backend_lutimes lutimes
> - #define backend_statstruct struct stat
> - #define backend_dirstream DIR
> - #define backend_statvfsstruct struct statvfs
> -diff --git a/configure.ac b/configure.ac
> -index aeec598..ea7f167 100644
> ---- a/configure.ac
> -+++ b/configure.ac
> -@@ -37,6 +37,7 @@ AC_CHECK_FUNCS(setresuid setresgid)
> - AC_CHECK_FUNCS(vsyslog)
> - AC_CHECK_FUNCS(lchown)
> - AC_CHECK_FUNCS(setgroups)
> -+AC_CHECK_FUNCS(lutimes)
> - UNFS3_SOLARIS_RPC
> - UNFS3_PORTMAP_DEFINE
> - UNFS3_COMPILE_WARNINGS
> diff --git a/meta/recipes-devtools/unfs3/unfs3/0001-daemon.c-Libtirpc-porting-fixes.patch b/meta/recipes-devtools/unfs3/unfs3/0001-daemon.c-Libtirpc-porting-fixes.patch
> deleted file mode 100644
> index 6eee6748f9..0000000000
> --- a/meta/recipes-devtools/unfs3/unfs3/0001-daemon.c-Libtirpc-porting-fixes.patch
> +++ /dev/null
> @@ -1,37 +0,0 @@
> -From c7a2a65d6c2a433312540c207860740d6e4e7629 Mon Sep 17 00:00:00 2001
> -From: Khem Raj <raj.khem@gmail.com>
> -Date: Sun, 11 Mar 2018 17:32:54 -0700
> -Subject: [PATCH] daemon.c: Libtirpc porting fixes
> -
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ----
> -Upstream-Status: Pending
> -
> - daemon.c | 4 ++--
> - 1 file changed, 2 insertions(+), 2 deletions(-)
> -
> -diff --git a/daemon.c b/daemon.c
> -index 22f30f6..028a181 100644
> ---- a/daemon.c
> -+++ b/daemon.c
> -@@ -117,7 +117,7 @@ void logmsg(int prio, const char *fmt, ...)
> - */
> - struct in_addr get_remote(struct svc_req *rqstp)
> - {
> -- return (svc_getcaller(rqstp->rq_xprt))->sin_addr;
> -+ return ((struct sockaddr_in*)svc_getcaller(rqstp->rq_xprt))->sin_addr;
> - }
> -
> - /*
> -@@ -125,7 +125,7 @@ struct in_addr get_remote(struct svc_req *rqstp)
> - */
> - short get_port(struct svc_req *rqstp)
> - {
> -- return (svc_getcaller(rqstp->rq_xprt))->sin_port;
> -+ return ((struct sockaddr_in*)svc_getcaller(rqstp->rq_xprt))->sin_port;
> - }
> -
> - /*
> ---
> -2.16.2
> -
> diff --git a/meta/recipes-devtools/unfs3/unfs3/alternate_rpc_ports.patch b/meta/recipes-devtools/unfs3/unfs3/alternate_rpc_ports.patch
> deleted file mode 100644
> index ff745d4774..0000000000
> --- a/meta/recipes-devtools/unfs3/unfs3/alternate_rpc_ports.patch
> +++ /dev/null
> @@ -1,158 +0,0 @@
> -Add ability to specify rcp port numbers
> -
> -In order to run more than one unfs server on a host system, you must
> -be able to specify alternate rpc port numbers.
> -
> -Jason Wessel <jason.wessel@windriver.com>
> -
> -Upstream-Status: Submitted http://sourceforge.net/p/unfs3/bugs/5/
> -
> ----
> - daemon.c | 44 +++++++++++++++++++++++++++++++-------------
> - mount.c | 4 ++--
> - 2 files changed, 33 insertions(+), 15 deletions(-)
> -
> ---- a/daemon.c
> -+++ b/daemon.c
> -@@ -78,6 +78,8 @@ int opt_testconfig = FALSE;
> - struct in_addr opt_bind_addr;
> - int opt_readable_executables = FALSE;
> - char *opt_pid_file = NULL;
> -+int nfs_prog = NFS3_PROGRAM;
> -+int mount_prog = MOUNTPROG;
> -
> - /* Register with portmapper? */
> - int opt_portmapper = TRUE;
> -@@ -206,7 +208,7 @@ static void parse_options(int argc, char
> - {
> -
> - int opt = 0;
> -- char *optstring = "bcC:de:hl:m:n:prstTuwi:";
> -+ char *optstring = "bcC:de:hl:m:n:prstTuwi:x:y:";
> -
> - while (opt != -1) {
> - opt = getopt(argc, argv, optstring);
> -@@ -261,8 +263,24 @@ static void parse_options(int argc, char
> - printf
> - ("\t-r report unreadable executables as readable\n");
> - printf("\t-T test exports file and exit\n");
> -+ printf("\t-x <port> alternate NFS RPC port\n");
> -+ printf("\t-y <port> alternate MOUNTD RPC port\n");
> - exit(0);
> - break;
> -+ case 'x':
> -+ nfs_prog = strtol(optarg, NULL, 10);
> -+ if (nfs_prog == 0) {
> -+ fprintf(stderr, "Invalid NFS RPC port\n");
> -+ exit(1);
> -+ }
> -+ break;
> -+ case 'y':
> -+ mount_prog = strtol(optarg, NULL, 10);
> -+ if (mount_prog == 0) {
> -+ fprintf(stderr, "Invalid MOUNTD RPC port\n");
> -+ exit(1);
> -+ }
> -+ break;
> - case 'l':
> - opt_bind_addr.s_addr = inet_addr(optarg);
> - if (opt_bind_addr.s_addr == (unsigned) -1) {
> -@@ -347,12 +365,12 @@ void daemon_exit(int error)
> - #endif /* WIN32 */
> -
> - if (opt_portmapper) {
> -- svc_unregister(MOUNTPROG, MOUNTVERS1);
> -- svc_unregister(MOUNTPROG, MOUNTVERS3);
> -+ svc_unregister(mount_prog, MOUNTVERS1);
> -+ svc_unregister(mount_prog, MOUNTVERS3);
> - }
> -
> - if (opt_portmapper) {
> -- svc_unregister(NFS3_PROGRAM, NFS_V3);
> -+ svc_unregister(nfs_prog, NFS_V3);
> - }
> -
> - if (error == SIGSEGV)
> -@@ -657,13 +675,13 @@ static void mountprog_3(struct svc_req *
> - static void register_nfs_service(SVCXPRT * udptransp, SVCXPRT * tcptransp)
> - {
> - if (opt_portmapper) {
> -- pmap_unset(NFS3_PROGRAM, NFS_V3);
> -+ pmap_unset(nfs_prog, NFS_V3);
> - }
> -
> - if (udptransp != NULL) {
> - /* Register NFS service for UDP */
> - if (!svc_register
> -- (udptransp, NFS3_PROGRAM, NFS_V3, nfs3_program_3,
> -+ (udptransp, nfs_prog, NFS_V3, nfs3_program_3,
> - opt_portmapper ? IPPROTO_UDP : 0)) {
> - fprintf(stderr, "%s\n",
> - "unable to register (NFS3_PROGRAM, NFS_V3, udp).");
> -@@ -674,7 +692,7 @@ static void register_nfs_service(SVCXPRT
> - if (tcptransp != NULL) {
> - /* Register NFS service for TCP */
> - if (!svc_register
> -- (tcptransp, NFS3_PROGRAM, NFS_V3, nfs3_program_3,
> -+ (tcptransp, nfs_prog, NFS_V3, nfs3_program_3,
> - opt_portmapper ? IPPROTO_TCP : 0)) {
> - fprintf(stderr, "%s\n",
> - "unable to register (NFS3_PROGRAM, NFS_V3, tcp).");
> -@@ -686,14 +704,14 @@ static void register_nfs_service(SVCXPRT
> - static void register_mount_service(SVCXPRT * udptransp, SVCXPRT * tcptransp)
> - {
> - if (opt_portmapper) {
> -- pmap_unset(MOUNTPROG, MOUNTVERS1);
> -- pmap_unset(MOUNTPROG, MOUNTVERS3);
> -+ pmap_unset(mount_prog, MOUNTVERS1);
> -+ pmap_unset(mount_prog, MOUNTVERS3);
> - }
> -
> - if (udptransp != NULL) {
> - /* Register MOUNT service (v1) for UDP */
> - if (!svc_register
> -- (udptransp, MOUNTPROG, MOUNTVERS1, mountprog_3,
> -+ (udptransp, mount_prog, MOUNTVERS1, mountprog_3,
> - opt_portmapper ? IPPROTO_UDP : 0)) {
> - fprintf(stderr, "%s\n",
> - "unable to register (MOUNTPROG, MOUNTVERS1, udp).");
> -@@ -702,7 +720,7 @@ static void register_mount_service(SVCXP
> -
> - /* Register MOUNT service (v3) for UDP */
> - if (!svc_register
> -- (udptransp, MOUNTPROG, MOUNTVERS3, mountprog_3,
> -+ (udptransp, mount_prog, MOUNTVERS3, mountprog_3,
> - opt_portmapper ? IPPROTO_UDP : 0)) {
> - fprintf(stderr, "%s\n",
> - "unable to register (MOUNTPROG, MOUNTVERS3, udp).");
> -@@ -713,7 +731,7 @@ static void register_mount_service(SVCXP
> - if (tcptransp != NULL) {
> - /* Register MOUNT service (v1) for TCP */
> - if (!svc_register
> -- (tcptransp, MOUNTPROG, MOUNTVERS1, mountprog_3,
> -+ (tcptransp, mount_prog, MOUNTVERS1, mountprog_3,
> - opt_portmapper ? IPPROTO_TCP : 0)) {
> - fprintf(stderr, "%s\n",
> - "unable to register (MOUNTPROG, MOUNTVERS1, tcp).");
> -@@ -722,7 +740,7 @@ static void register_mount_service(SVCXP
> -
> - /* Register MOUNT service (v3) for TCP */
> - if (!svc_register
> -- (tcptransp, MOUNTPROG, MOUNTVERS3, mountprog_3,
> -+ (tcptransp, mount_prog, MOUNTVERS3, mountprog_3,
> - opt_portmapper ? IPPROTO_TCP : 0)) {
> - fprintf(stderr, "%s\n",
> - "unable to register (MOUNTPROG, MOUNTVERS3, tcp).");
> ---- a/mount.c
> -+++ b/mount.c
> -@@ -155,8 +155,8 @@ mountres3 *mountproc_mnt_3_svc(dirpath *
> - /* error out if not version 3 */
> - if (rqstp->rq_vers != 3) {
> - logmsg(LOG_INFO,
> -- "%s attempted mount with unsupported protocol version",
> -- inet_ntoa(get_remote(rqstp)));
> -+ "%s attempted mount with unsupported protocol version: %i",
> -+ inet_ntoa(get_remote(rqstp)), rqstp->rq_vers);
> - result.fhs_status = MNT3ERR_INVAL;
> - return &result;
> - }
> diff --git a/meta/recipes-devtools/unfs3/unfs3/fix_compile_warning.patch b/meta/recipes-devtools/unfs3/unfs3/fix_compile_warning.patch
> deleted file mode 100644
> index aada014117..0000000000
> --- a/meta/recipes-devtools/unfs3/unfs3/fix_compile_warning.patch
> +++ /dev/null
> @@ -1,25 +0,0 @@
> -daemon.c: Check exit code of chdir()
> -
> -Stop the compile warning and fix the code to act on a chdir() failure.
> -If this one does fail something is very, very wrong.
> -
> -Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
> -
> -Upstream-Status: Submitted http://sourceforge.net/p/unfs3/bugs/5/
> -
> ----
> - daemon.c | 3 ++-
> - 1 file changed, 2 insertions(+), 1 deletion(-)
> -
> ---- a/daemon.c
> -+++ b/daemon.c
> -@@ -964,7 +964,8 @@ int main(int argc, char **argv)
> - sigaction(SIGALRM, &act, NULL);
> -
> - /* don't make directory we started in busy */
> -- chdir("/");
> -+ if(chdir("/") < 0)
> -+ daemon_exit(0);
> -
> - /* detach from terminal */
> - if (opt_detach) {
> diff --git a/meta/recipes-devtools/unfs3/unfs3/fix_pid_race_parent_writes_child_pid.patch b/meta/recipes-devtools/unfs3/unfs3/fix_pid_race_parent_writes_child_pid.patch
> deleted file mode 100644
> index 46b187e5f3..0000000000
> --- a/meta/recipes-devtools/unfs3/unfs3/fix_pid_race_parent_writes_child_pid.patch
> +++ /dev/null
> @@ -1,61 +0,0 @@
> -daemon.c: Fix race window for writing of the pid file
> -
> -The parent process should write the pid file such that the pid file
> -will can be checked immediately following exit of the fork from the
> -parent.
> -
> -This allows external monitoring applications to watch the daemon
> -without having to add sleep calls to wait for the pid file be written
> -on a busy system.
> -
> -Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
> -
> -Upstream-Status: Submitted http://sourceforge.net/p/unfs3/bugs/5/
> -
> ----
> - daemon.c | 12 +++++++++---
> - 1 file changed, 9 insertions(+), 3 deletions(-)
> -
> ---- a/daemon.c
> -+++ b/daemon.c
> -@@ -153,7 +153,7 @@ int get_socket_type(struct svc_req *rqst
> - /*
> - * write current pid to a file
> - */
> --static void create_pid_file(void)
> -+static void create_pid_file(int pid)
> - {
> - char buf[16];
> - int fd, res, len;
> -@@ -175,7 +175,7 @@ static void create_pid_file(void)
> - }
> - #endif
> -
> -- sprintf(buf, "%i\n", backend_getpid());
> -+ sprintf(buf, "%i\n", pid);
> - len = strlen(buf);
> -
> - res = backend_pwrite(fd, buf, len, 0);
> -@@ -970,6 +970,10 @@ int main(int argc, char **argv)
> - fprintf(stderr, "could not fork into background\n");
> - daemon_exit(0);
> - }
> -+ if (pid)
> -+ create_pid_file(pid);
> -+ } else {
> -+ create_pid_file(backend_getpid());
> - }
> - #endif /* WIN32 */
> -
> -@@ -1006,8 +1010,10 @@ int main(int argc, char **argv)
> - /* no umask to not screw up create modes */
> - umask(0);
> -
> -+#ifdef WIN32
> - /* create pid file if wanted */
> -- create_pid_file();
> -+ create_pid_file(backend_getpid());
> -+#endif
> -
> - /* initialize internal stuff */
> - fh_cache_init();
> diff --git a/meta/recipes-devtools/unfs3/unfs3/no-yywrap.patch b/meta/recipes-devtools/unfs3/unfs3/no-yywrap.patch
> deleted file mode 100644
> index e3496814d8..0000000000
> --- a/meta/recipes-devtools/unfs3/unfs3/no-yywrap.patch
> +++ /dev/null
> @@ -1,14 +0,0 @@
> -Upstream-Status: Backport [https://github.com/unfs3/unfs3/commit/3fa0568e6ef96e045286afe18444bc28fe93962b]
> -
> -diff --git a/Config/exports.l b/Config/exports.l
> -index 662603c..7e7c4fc 100644
> ---- a/Config/exports.l
> -+++ b/Config/exports.l
> -@@ -50,6 +50,7 @@ OLDNET {IP}"/"{IP}
> -
> - %option nounput
> - %option noinput
> -+%option noyywrap
> -
> - %%
> -
> diff --git a/meta/recipes-devtools/unfs3/unfs3/relative_max_socket_path_len.patch b/meta/recipes-devtools/unfs3/unfs3/relative_max_socket_path_len.patch
> deleted file mode 100644
> index 219dd35aec..0000000000
> --- a/meta/recipes-devtools/unfs3/unfs3/relative_max_socket_path_len.patch
> +++ /dev/null
> @@ -1,74 +0,0 @@
> -nfs.c: Allow max sa.sun_path for a localdomain socket with the user nfs-server
> -
> -There is a hard limit for the kernel of 108 characters for a
> -localdomain socket name. To avoid problems with the user nfs
> -server it should maximize the number of characters by using
> -a relative path on the server side.
> -
> -Previously the nfs-server used the absolute path name passed to
> -the sa.sunpath arg for binding the socket and this has caused
> -problems for both the X server and UST binaries which make
> -heavy use of named sockets with long names.
> -
> -Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
> -
> -Upstream-Status: Submitted http://sourceforge.net/p/unfs3/bugs/5/
> -
> ----
> - nfs.c | 29 +++++++++++++++++++++++++++--
> - 1 file changed, 27 insertions(+), 2 deletions(-)
> -
> ---- a/nfs.c
> -+++ b/nfs.c
> -@@ -672,6 +672,7 @@ SYMLINK3res *nfsproc3_symlink_3_svc(SYML
> - }
> -
> - #ifndef WIN32
> -+static char pathbuf_tmp[NFS_MAXPATHLEN + NFS_MAXNAMLEN + 1];
> -
> - /*
> - * create Unix socket
> -@@ -680,17 +681,41 @@ static int mksocket(const char *path, mo
> - {
> - int res, sock;
> - struct sockaddr_un addr;
> -+ unsigned int len = strlen(path);
> -
> - sock = socket(PF_UNIX, SOCK_STREAM, 0);
> -- addr.sun_family = AF_UNIX;
> -- strcpy(addr.sun_path, path);
> - res = sock;
> - if (res != -1) {
> -+ addr.sun_family = AF_UNIX;
> -+ if (len < sizeof(addr.sun_path) -1) {
> -+ strcpy(addr.sun_path, path);
> -+ } else {
> -+ char *ptr;
> -+ res = -1;
> -+ if (len >= sizeof(path))
> -+ goto out;
> -+ strcpy(pathbuf_tmp, path);
> -+ ptr = strrchr(pathbuf_tmp,'/');
> -+ if (ptr) {
> -+ *ptr = '\0';
> -+ ptr++;
> -+ if (chdir(pathbuf_tmp))
> -+ goto out;
> -+ } else {
> -+ ptr = pathbuf_tmp;
> -+ }
> -+ if (strlen(ptr) >= sizeof(addr.sun_path))
> -+ goto out;
> -+ strcpy(addr.sun_path, ptr);
> -+ }
> - umask(~mode);
> - res =
> - bind(sock, (struct sockaddr *) &addr,
> - sizeof(addr.sun_family) + strlen(addr.sun_path));
> - umask(0);
> -+out:
> -+ if (chdir("/"))
> -+ fprintf(stderr, "Internal failure to chdir /\n");
> - close(sock);
> - }
> - return res;
> diff --git a/meta/recipes-devtools/unfs3/unfs3/rename_fh_cache.patch b/meta/recipes-devtools/unfs3/unfs3/rename_fh_cache.patch
> deleted file mode 100644
> index e6d89530f8..0000000000
> --- a/meta/recipes-devtools/unfs3/unfs3/rename_fh_cache.patch
> +++ /dev/null
> @@ -1,64 +0,0 @@
> -From: Jason Wessel <jason.wessel@windriver.com>
> -Date: Sat, 23 Feb 2013 08:49:08 -0600
> -Subject: [PATCH] fh_cache: fix statle nfs handle on rename problem
> -
> -The following test case fails with modern linunx kernels which cache
> -the renamed inode.
> -
> - % mkdir a;mkdir b;mv b a/;ls -l a
> - ls: a/b: Stale NFS file handle
> -
> -The issue is that nfserver was not updating the fh_cache with the new
> -location of the inode, when it moves directories.
> -
> -Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
> -
> -Upstream-Status: Submitted http://sourceforge.net/p/unfs3/bugs/5/
> -
> ----
> - fh_cache.c | 12 ++++++++++++
> - fh_cache.h | 1 +
> - nfs.c | 2 ++
> - 3 files changed, 15 insertions(+)
> -
> ---- a/fh_cache.c
> -+++ b/fh_cache.c
> -@@ -199,6 +199,18 @@ static char *fh_cache_lookup(uint32 dev,
> - }
> -
> - /*
> -+ * update a fh inode cache for an operation like rename
> -+ */
> -+void fh_cache_update(nfs_fh3 fh, char *path)
> -+{
> -+ unfs3_fh_t *obj = (void *) fh.data.data_val;
> -+ backend_statstruct buf;
> -+
> -+ if (backend_lstat(path, &buf) != -1) {
> -+ fh_cache_add(obj->dev, buf.st_ino, path);
> -+ }
> -+}
> -+/*
> - * resolve a filename into a path
> - * cache-using wrapper for fh_decomp_raw
> - */
> ---- a/fh_cache.h
> -+++ b/fh_cache.h
> -@@ -19,5 +19,6 @@ unfs3_fh_t fh_comp(const char *path, str
> - unfs3_fh_t *fh_comp_ptr(const char *path, struct svc_req *rqstp, int need_dir);
> -
> - char *fh_cache_add(uint32 dev, uint64 ino, const char *path);
> -+void fh_cache_update(nfs_fh3 fh, char *path);
> -
> - #endif
> ---- a/nfs.c
> -+++ b/nfs.c
> -@@ -876,6 +876,8 @@ RENAME3res *nfsproc3_rename_3_svc(RENAME
> - res = backend_rename(from_obj, to_obj);
> - if (res == -1)
> - result.status = rename_err();
> -+ /* Update the fh_cache with moved inode value */
> -+ fh_cache_update(argp->to.dir, to_obj);
> - }
> - }
> -
> diff --git a/meta/recipes-devtools/unfs3/unfs3/tcp_no_delay.patch b/meta/recipes-devtools/unfs3/unfs3/tcp_no_delay.patch
> deleted file mode 100644
> index b3521c63eb..0000000000
> --- a/meta/recipes-devtools/unfs3/unfs3/tcp_no_delay.patch
> +++ /dev/null
> @@ -1,56 +0,0 @@
> -daemon.c: Add option for tcp no delay
> -
> -Allow the NFS tcp sockets to conditionally use TCP_NODELAY
> -
> -Upstream-Status: Submitted http://sourceforge.net/p/unfs3/bugs/5/
> -
> ----
> - daemon.c | 9 ++++++++-
> - 1 file changed, 8 insertions(+), 1 deletion(-)
> -
> ---- a/daemon.c
> -+++ b/daemon.c
> -@@ -17,6 +17,7 @@
> - #ifndef WIN32
> - #include <sys/socket.h>
> - #include <netinet/in.h>
> -+#include <netinet/tcp.h>
> - #include <arpa/inet.h>
> - #include <syslog.h>
> - #else /* WIN32 */
> -@@ -75,6 +76,7 @@ unsigned int opt_mount_port = NFS_PORT;
> - int opt_singleuser = FALSE;
> - int opt_brute_force = FALSE;
> - int opt_testconfig = FALSE;
> -+int opt_tcp_nodelay = FALSE;
> - struct in_addr opt_bind_addr;
> - int opt_readable_executables = FALSE;
> - char *opt_pid_file = NULL;
> -@@ -208,7 +210,7 @@ static void parse_options(int argc, char
> - {
> -
> - int opt = 0;
> -- char *optstring = "bcC:de:hl:m:n:prstTuwi:x:y:";
> -+ char *optstring = "bcC:de:hl:m:Nn:prstTuwi:x:y:";
> -
> - while (opt != -1) {
> - opt = getopt(argc, argv, optstring);
> -@@ -295,6 +297,9 @@ static void parse_options(int argc, char
> - exit(1);
> - }
> - break;
> -+ case 'N':
> -+ opt_tcp_nodelay = TRUE;
> -+ break;
> - case 'n':
> - opt_nfs_port = strtol(optarg, NULL, 10);
> - if (opt_nfs_port == 0) {
> -@@ -802,6 +807,8 @@ static SVCXPRT *create_tcp_transport(uns
> - sin.sin_addr.s_addr = opt_bind_addr.s_addr;
> - sock = socket(PF_INET, SOCK_STREAM, 0);
> - setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (const char *) &on, sizeof(on));
> -+ if (opt_tcp_nodelay)
> -+ setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on));
> - if (bind(sock, (struct sockaddr *) &sin, sizeof(struct sockaddr))) {
> - perror("bind");
> - fprintf(stderr, "Couldn't bind to tcp port %d\n", port);
> diff --git a/meta/recipes-devtools/unfs3/unfs3/unfs3_parallel_build.patch b/meta/recipes-devtools/unfs3/unfs3/unfs3_parallel_build.patch
> deleted file mode 100644
> index 6f64dd5b3e..0000000000
> --- a/meta/recipes-devtools/unfs3/unfs3/unfs3_parallel_build.patch
> +++ /dev/null
> @@ -1,37 +0,0 @@
> -Fix parallel build dependency issue
> -
> -If building with make -j2 the lib.a will not get built in time.
> -
> -Jason Wessel <jason.wessel@windriver.com>
> -
> -Upstream-Status: Submitted http://sourceforge.net/p/unfs3/bugs/5/
> -
> ----
> - Config/Makefile.in | 3 +++
> - Makefile.in | 3 ++-
> - 2 files changed, 5 insertions(+), 1 deletion(-)
> -
> ---- a/Makefile.in
> -+++ b/Makefile.in
> -@@ -29,7 +29,8 @@ DESTDIR =
> -
> - VPATH = $(srcdir)
> -
> --all: subdirs unfsd$(EXEEXT)
> -+all: subdirs
> -+ $(MAKE) unfsd$(EXEEXT)
> -
> - unfsd$(EXEEXT): $(OBJS) $(CONFOBJ) $(EXTRAOBJ)
> - $(CC) -o $@ $(OBJS) $(CONFOBJ) $(EXTRAOBJ) $(LDFLAGS)
> ---- a/Config/Makefile.in
> -+++ b/Config/Makefile.in
> -@@ -16,6 +16,9 @@ lib.a: $(OBJS)
> - $(AR) crs lib.a $(OBJS)
> -
> - y.tab.h y.tab.c: $(srcdir)/exports.y
> -+y.tab.h: y.tab.c
> -+
> -+y.tab.c: $(srcdir)/exports.y
> - $(YACC) -d $(srcdir)/exports.y
> -
> - y.tab.o: y.tab.c $(srcdir)/exports.h $(top_srcdir)/nfs.h $(top_srcdir)/mount.h $(top_srcdir)/daemon.h
> diff --git a/meta/recipes-devtools/unfs3/unfs3_git.bb b/meta/recipes-devtools/unfs3/unfs3_git.bb
> deleted file mode 100644
> index 7a5d273851..0000000000
> --- a/meta/recipes-devtools/unfs3/unfs3_git.bb
> +++ /dev/null
> @@ -1,45 +0,0 @@
> -SUMMARY = "Userspace NFS server v3 protocol"
> -DESCRIPTION = "UNFS3 is a user-space implementation of the NFSv3 server \
> -specification. It provides a daemon for the MOUNT and NFS protocols, which \
> -are used by NFS clients for accessing files on the server."
> -HOMEPAGE = "https://github.com/unfs3/unfs3"
> -SECTION = "console/network"
> -LICENSE = "unfs3"
> -LIC_FILES_CHKSUM = "file://LICENSE;md5=9475885294e17c0cc0067820d042792e"
> -
> -DEPENDS = "flex-native bison-native flex"
> -DEPENDS += "libtirpc"
> -DEPENDS:append:class-nativesdk = " flex-nativesdk"
> -
> -ASNEEDED = ""
> -
> -S = "${WORKDIR}/git"
> -SRC_URI = "git://github.com/unfs3/unfs3.git;protocol=https;branch=master \
> - file://unfs3_parallel_build.patch \
> - file://alternate_rpc_ports.patch \
> - file://fix_pid_race_parent_writes_child_pid.patch \
> - file://fix_compile_warning.patch \
> - file://rename_fh_cache.patch \
> - file://relative_max_socket_path_len.patch \
> - file://tcp_no_delay.patch \
> - file://0001-daemon.c-Libtirpc-porting-fixes.patch \
> - file://0001-attr-fix-utime-for-symlink.patch \
> - file://0001-Add-listen-action-for-a-tcp-socket.patch \
> - file://no-yywrap.patch \
> - "
> -SRCREV = "c12a5c69a8d59be6916cbd0e0f41c159f1962425"
> -UPSTREAM_CHECK_GITTAGREGEX = "unfs3\-(?P<pver>.+)"
> -
> -PV = "0.9.22+${SRCPV}"
> -
> -BBCLASSEXTEND = "native nativesdk"
> -
> -inherit autotools
> -EXTRA_OECONF:append:class-native = " --sbindir=${bindir}"
> -CFLAGS:append = " -I${STAGING_INCDIR}/tirpc"
> -EXTRA_OECONF:append = " LIBS=-ltirpc"
> -
> -# Turn off these header detects else the inode search
> -# will walk entire file systems and this is a real problem
> -# if you have 2 TB of files to walk in your file system
> -CACHED_CONFIGUREVARS = "ac_cv_header_mntent_h=no ac_cv_header_sys_mnttab_h=no"
> --
> 2.25.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#169935): https://lists.openembedded.org/g/openembedded-core/message/169935
> Mute This Topic: https://lists.openembedded.org/mt/93293558/1686489
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alex.kanavin@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [OE-core] [PATCH 1/2] ntirpc: Add ntirpc recipe
2022-08-27 17:46 [PATCH 1/2] ntirpc: Add ntirpc recipe Paulo Neves
2022-08-27 17:46 ` [PATCH 2/2] nfs-ganesha: Replace unfs3 with nfs-ganesha Paulo Neves
@ 2022-08-27 18:07 ` Alexander Kanavin
2022-08-27 18:08 ` Alexander Kanavin
2022-08-28 17:40 ` Paulo Neves
2022-08-29 9:59 ` Alexandre Belloni
2 siblings, 2 replies; 13+ messages in thread
From: Alexander Kanavin @ 2022-08-27 18:07 UTC (permalink / raw)
To: Paulo Neves; +Cc: OE-core
Can you please explain where the circular dependencies are?
Alex
On Sat, 27 Aug 2022 at 19:46, Paulo Neves <ptsneves@gmail.com> wrote:
>
> ntirpc is an actively maintained rpc implementation. We cannot completely
> remove libtirpc due to arising circular dependencies. libtirpc and ntirpc
> are not mutually exclusive.
>
> Signed-off-by: Paulo Neves <ptsneves@gmail.com>
> ---
> meta/recipes-extended/ntirpc/ntirpc_4.0.bb | 30 +++++++++++++++++++
> meta/recipes-extended/quota/quota_4.06.bb | 2 +-
> .../recipes-extended/rpcbind/rpcbind_1.2.6.bb | 2 +-
> .../watchdog/watchdog_5.16.bb | 2 +-
> .../xorg-xserver/xserver-xorg.inc | 2 +-
> .../recipes-support/liburcu/liburcu_0.13.1.bb | 1 +
> 6 files changed, 35 insertions(+), 4 deletions(-)
> create mode 100644 meta/recipes-extended/ntirpc/ntirpc_4.0.bb
>
> diff --git a/meta/recipes-extended/ntirpc/ntirpc_4.0.bb b/meta/recipes-extended/ntirpc/ntirpc_4.0.bb
> new file mode 100644
> index 0000000000..edebcb8ca9
> --- /dev/null
> +++ b/meta/recipes-extended/ntirpc/ntirpc_4.0.bb
> @@ -0,0 +1,30 @@
> +LICENSE = "BSD"
> +LIC_FILES_CHKSUM = "file://COPYING;md5=f835cce8852481e4b2bbbdd23b5e47f3"
> +
> +SRC_URI = "https://download.nfs-ganesha.org/4/${PV}/ntirpc-${PV}.tar.gz"
> +SRC_URI[md5sum] = "17b0baada54936dcde80eba27bb6d88d"
> +SRC_URI[sha256sum] = "6a7921cd48d02077b394a02be42bf4f9b4678d4ebfd86a7ae4385bbcdce55462"
> +
> +DEPENDS = "liburcu libnsl2"
> +
> +inherit cmake pkgconfig
> +
> +PACKAGECONFIG[gss] = "-DUSE_GSS=true,-DUSE_GSS=false,krb5"
> +PACKAGECONFIG[rdma] = "-DUSE_RPC_RDMA=true,-DUSE_RPC_RDMA=false,rdma-core"
> +PACKAGECONFIG[winbind] = "-D_MSPAC_SUPPORT=true,-D_MSPAC_SUPPORT=false,samba"
> +PACKAGECONFIG[profile] = "-DUSE_PROFILE=true,-DUSE_PROFILE=false,gperftools"
> +PACKAGECONFIG[lttng] = "-DUSE_LTTNG=true,-DUSE_LTTNG=false,lttng-ust lttng-tools"
> +
> +# Sort out the brain-dead cmake file
> +# (https://github.com/nfs-ganesha/ntirpc/issues/150)
> +do_install:append() {
> + if [ "${prefix}/lib64" != "${libdir}" -a -d ${D}${prefix}/lib64 ]; then
> + mv ${D}${prefix}/lib64 ${D}${libdir}
> + fi
> +}
> +
> +BBCLASSEXTEND = "native nativesdk"
> +EXTRA_OECMAKE:armv5 += '-DSYSTEM_LIBRARIES="-latomic"'
> +EXTRA_OECMAKE:riscv32 += '-DSYSTEM_LIBRARIES="-latomic"'
> +EXTRA_OECMAKE:riscv64 += '-DSYSTEM_LIBRARIES="-latomic"'
> +EXTRA_OECMAKE:powerpc += '-DSYSTEM_LIBRARIES="-latomic"'
> diff --git a/meta/recipes-extended/quota/quota_4.06.bb b/meta/recipes-extended/quota/quota_4.06.bb
> index 0535d14c20..304477d72b 100644
> --- a/meta/recipes-extended/quota/quota_4.06.bb
> +++ b/meta/recipes-extended/quota/quota_4.06.bb
> @@ -30,6 +30,6 @@ PACKAGECONFIG ??= "tcp-wrappers rpc bsd"
> PACKAGECONFIG:libc-musl = "tcp-wrappers rpc"
>
> PACKAGECONFIG[tcp-wrappers] = "--enable-libwrap,--disable-libwrap,tcp-wrappers"
> -PACKAGECONFIG[rpc] = "--enable-rpc,--disable-rpc,libtirpc"
> +PACKAGECONFIG[rpc] = "--enable-rpc,--disable-rpc,ntirpc"
> PACKAGECONFIG[bsd] = "--enable-bsd_behaviour=yes,--enable-bsd_behaviour=no,"
> PACKAGECONFIG[ldapmail] = "--enable-ldapmail,--disable-ldapmail,openldap"
> diff --git a/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb b/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
> index dd89726afc..e30a23909c 100644
> --- a/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
> +++ b/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
> @@ -4,7 +4,7 @@ DESCRIPTION = "The rpcbind utility is a server that converts RPC \
> SECTION = "console/network"
> HOMEPAGE = "http://sourceforge.net/projects/rpcbind/"
> BUGTRACKER = "http://sourceforge.net/tracker/?group_id=201237&atid=976751"
> -DEPENDS = "libtirpc quota"
> +DEPENDS = "ntirpc quota"
>
> LICENSE = "BSD-3-Clause"
> LIC_FILES_CHKSUM = "file://COPYING;md5=b46486e4c4a416602693a711bb5bfa39 \
> diff --git a/meta/recipes-extended/watchdog/watchdog_5.16.bb b/meta/recipes-extended/watchdog/watchdog_5.16.bb
> index 26fcc10487..5f5fd4dc87 100644
> --- a/meta/recipes-extended/watchdog/watchdog_5.16.bb
> +++ b/meta/recipes-extended/watchdog/watchdog_5.16.bb
> @@ -28,7 +28,7 @@ UPSTREAM_CHECK_REGEX = "/watchdog/(?P<pver>(\d+[\.\-_]*)+)/"
>
> inherit autotools update-rc.d systemd pkgconfig
>
> -DEPENDS += "libtirpc"
> +DEPENDS += "ntirpc"
> CFLAGS += "-I${STAGING_INCDIR}/tirpc"
> LDFLAGS += "-ltirpc"
>
> diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
> index 057a1ba6ad..2085f742d6 100644
> --- a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
> +++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
> @@ -36,7 +36,7 @@ inherit meson pkgconfig
> inherit features_check
> REQUIRED_DISTRO_FEATURES = "x11"
>
> -LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm libxkbfile libpciaccess libxcvt libtirpc"
> +LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm libxkbfile libpciaccess libxcvt ntirpc"
> DEPENDS = "xorgproto ${LIB_DEPS} font-util"
>
> # Split out some modules and extensions from the main package
> diff --git a/meta/recipes-support/liburcu/liburcu_0.13.1.bb b/meta/recipes-support/liburcu/liburcu_0.13.1.bb
> index 66763349d2..d7e831e803 100644
> --- a/meta/recipes-support/liburcu/liburcu_0.13.1.bb
> +++ b/meta/recipes-support/liburcu/liburcu_0.13.1.bb
> @@ -22,3 +22,4 @@ CPPFLAGS:append:riscv64 = " -pthread -D_REENTRANT"
> do_install:append() {
> oe_multilib_header urcu/config.h
> }
> +BBCLASSEXTEND = "native nativesdk"
> --
> 2.25.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#169934): https://lists.openembedded.org/g/openembedded-core/message/169934
> Mute This Topic: https://lists.openembedded.org/mt/93293557/1686489
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alex.kanavin@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [OE-core] [PATCH 1/2] ntirpc: Add ntirpc recipe
2022-08-27 18:07 ` [OE-core] [PATCH 1/2] ntirpc: Add ntirpc recipe Alexander Kanavin
@ 2022-08-27 18:08 ` Alexander Kanavin
2022-08-28 17:40 ` Paulo Neves
1 sibling, 0 replies; 13+ messages in thread
From: Alexander Kanavin @ 2022-08-27 18:08 UTC (permalink / raw)
To: Paulo Neves; +Cc: OE-core
And the same issue: no summary/description/homepage.
Alex
On Sat, 27 Aug 2022 at 20:07, Alexander Kanavin <alex.kanavin@gmail.com> wrote:
>
> Can you please explain where the circular dependencies are?
>
> Alex
>
> On Sat, 27 Aug 2022 at 19:46, Paulo Neves <ptsneves@gmail.com> wrote:
> >
> > ntirpc is an actively maintained rpc implementation. We cannot completely
> > remove libtirpc due to arising circular dependencies. libtirpc and ntirpc
> > are not mutually exclusive.
> >
> > Signed-off-by: Paulo Neves <ptsneves@gmail.com>
> > ---
> > meta/recipes-extended/ntirpc/ntirpc_4.0.bb | 30 +++++++++++++++++++
> > meta/recipes-extended/quota/quota_4.06.bb | 2 +-
> > .../recipes-extended/rpcbind/rpcbind_1.2.6.bb | 2 +-
> > .../watchdog/watchdog_5.16.bb | 2 +-
> > .../xorg-xserver/xserver-xorg.inc | 2 +-
> > .../recipes-support/liburcu/liburcu_0.13.1.bb | 1 +
> > 6 files changed, 35 insertions(+), 4 deletions(-)
> > create mode 100644 meta/recipes-extended/ntirpc/ntirpc_4.0.bb
> >
> > diff --git a/meta/recipes-extended/ntirpc/ntirpc_4.0.bb b/meta/recipes-extended/ntirpc/ntirpc_4.0.bb
> > new file mode 100644
> > index 0000000000..edebcb8ca9
> > --- /dev/null
> > +++ b/meta/recipes-extended/ntirpc/ntirpc_4.0.bb
> > @@ -0,0 +1,30 @@
> > +LICENSE = "BSD"
> > +LIC_FILES_CHKSUM = "file://COPYING;md5=f835cce8852481e4b2bbbdd23b5e47f3"
> > +
> > +SRC_URI = "https://download.nfs-ganesha.org/4/${PV}/ntirpc-${PV}.tar.gz"
> > +SRC_URI[md5sum] = "17b0baada54936dcde80eba27bb6d88d"
> > +SRC_URI[sha256sum] = "6a7921cd48d02077b394a02be42bf4f9b4678d4ebfd86a7ae4385bbcdce55462"
> > +
> > +DEPENDS = "liburcu libnsl2"
> > +
> > +inherit cmake pkgconfig
> > +
> > +PACKAGECONFIG[gss] = "-DUSE_GSS=true,-DUSE_GSS=false,krb5"
> > +PACKAGECONFIG[rdma] = "-DUSE_RPC_RDMA=true,-DUSE_RPC_RDMA=false,rdma-core"
> > +PACKAGECONFIG[winbind] = "-D_MSPAC_SUPPORT=true,-D_MSPAC_SUPPORT=false,samba"
> > +PACKAGECONFIG[profile] = "-DUSE_PROFILE=true,-DUSE_PROFILE=false,gperftools"
> > +PACKAGECONFIG[lttng] = "-DUSE_LTTNG=true,-DUSE_LTTNG=false,lttng-ust lttng-tools"
> > +
> > +# Sort out the brain-dead cmake file
> > +# (https://github.com/nfs-ganesha/ntirpc/issues/150)
> > +do_install:append() {
> > + if [ "${prefix}/lib64" != "${libdir}" -a -d ${D}${prefix}/lib64 ]; then
> > + mv ${D}${prefix}/lib64 ${D}${libdir}
> > + fi
> > +}
> > +
> > +BBCLASSEXTEND = "native nativesdk"
> > +EXTRA_OECMAKE:armv5 += '-DSYSTEM_LIBRARIES="-latomic"'
> > +EXTRA_OECMAKE:riscv32 += '-DSYSTEM_LIBRARIES="-latomic"'
> > +EXTRA_OECMAKE:riscv64 += '-DSYSTEM_LIBRARIES="-latomic"'
> > +EXTRA_OECMAKE:powerpc += '-DSYSTEM_LIBRARIES="-latomic"'
> > diff --git a/meta/recipes-extended/quota/quota_4.06.bb b/meta/recipes-extended/quota/quota_4.06.bb
> > index 0535d14c20..304477d72b 100644
> > --- a/meta/recipes-extended/quota/quota_4.06.bb
> > +++ b/meta/recipes-extended/quota/quota_4.06.bb
> > @@ -30,6 +30,6 @@ PACKAGECONFIG ??= "tcp-wrappers rpc bsd"
> > PACKAGECONFIG:libc-musl = "tcp-wrappers rpc"
> >
> > PACKAGECONFIG[tcp-wrappers] = "--enable-libwrap,--disable-libwrap,tcp-wrappers"
> > -PACKAGECONFIG[rpc] = "--enable-rpc,--disable-rpc,libtirpc"
> > +PACKAGECONFIG[rpc] = "--enable-rpc,--disable-rpc,ntirpc"
> > PACKAGECONFIG[bsd] = "--enable-bsd_behaviour=yes,--enable-bsd_behaviour=no,"
> > PACKAGECONFIG[ldapmail] = "--enable-ldapmail,--disable-ldapmail,openldap"
> > diff --git a/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb b/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
> > index dd89726afc..e30a23909c 100644
> > --- a/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
> > +++ b/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
> > @@ -4,7 +4,7 @@ DESCRIPTION = "The rpcbind utility is a server that converts RPC \
> > SECTION = "console/network"
> > HOMEPAGE = "http://sourceforge.net/projects/rpcbind/"
> > BUGTRACKER = "http://sourceforge.net/tracker/?group_id=201237&atid=976751"
> > -DEPENDS = "libtirpc quota"
> > +DEPENDS = "ntirpc quota"
> >
> > LICENSE = "BSD-3-Clause"
> > LIC_FILES_CHKSUM = "file://COPYING;md5=b46486e4c4a416602693a711bb5bfa39 \
> > diff --git a/meta/recipes-extended/watchdog/watchdog_5.16.bb b/meta/recipes-extended/watchdog/watchdog_5.16.bb
> > index 26fcc10487..5f5fd4dc87 100644
> > --- a/meta/recipes-extended/watchdog/watchdog_5.16.bb
> > +++ b/meta/recipes-extended/watchdog/watchdog_5.16.bb
> > @@ -28,7 +28,7 @@ UPSTREAM_CHECK_REGEX = "/watchdog/(?P<pver>(\d+[\.\-_]*)+)/"
> >
> > inherit autotools update-rc.d systemd pkgconfig
> >
> > -DEPENDS += "libtirpc"
> > +DEPENDS += "ntirpc"
> > CFLAGS += "-I${STAGING_INCDIR}/tirpc"
> > LDFLAGS += "-ltirpc"
> >
> > diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
> > index 057a1ba6ad..2085f742d6 100644
> > --- a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
> > +++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
> > @@ -36,7 +36,7 @@ inherit meson pkgconfig
> > inherit features_check
> > REQUIRED_DISTRO_FEATURES = "x11"
> >
> > -LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm libxkbfile libpciaccess libxcvt libtirpc"
> > +LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm libxkbfile libpciaccess libxcvt ntirpc"
> > DEPENDS = "xorgproto ${LIB_DEPS} font-util"
> >
> > # Split out some modules and extensions from the main package
> > diff --git a/meta/recipes-support/liburcu/liburcu_0.13.1.bb b/meta/recipes-support/liburcu/liburcu_0.13.1.bb
> > index 66763349d2..d7e831e803 100644
> > --- a/meta/recipes-support/liburcu/liburcu_0.13.1.bb
> > +++ b/meta/recipes-support/liburcu/liburcu_0.13.1.bb
> > @@ -22,3 +22,4 @@ CPPFLAGS:append:riscv64 = " -pthread -D_REENTRANT"
> > do_install:append() {
> > oe_multilib_header urcu/config.h
> > }
> > +BBCLASSEXTEND = "native nativesdk"
> > --
> > 2.25.1
> >
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#169934): https://lists.openembedded.org/g/openembedded-core/message/169934
> > Mute This Topic: https://lists.openembedded.org/mt/93293557/1686489
> > Group Owner: openembedded-core+owner@lists.openembedded.org
> > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alex.kanavin@gmail.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [OE-core] [PATCH 1/2] ntirpc: Add ntirpc recipe
2022-08-27 18:07 ` [OE-core] [PATCH 1/2] ntirpc: Add ntirpc recipe Alexander Kanavin
2022-08-27 18:08 ` Alexander Kanavin
@ 2022-08-28 17:40 ` Paulo Neves
2022-08-29 17:48 ` Khem Raj
1 sibling, 1 reply; 13+ messages in thread
From: Paulo Neves @ 2022-08-28 17:40 UTC (permalink / raw)
To: Alexander Kanavin; +Cc: OE-core
Hello Alexander,
Thank you for your review
I updated the commit message for v2 to contain the following text:
We cannot completely remove libtirpc due to arising circular
dependencies where ntirpc depends on libnsl2, which in turn depends on
an RPC implementation.
Paulo Neves
On 8/27/22 20:07, Alexander Kanavin wrote:
> Can you please explain where the circular dependencies are?
>
> Alex
>
> On Sat, 27 Aug 2022 at 19:46, Paulo Neves <ptsneves@gmail.com> wrote:
>> ntirpc is an actively maintained rpc implementation. We cannot completely
>> remove libtirpc due to arising circular dependencies. libtirpc and ntirpc
>> are not mutually exclusive.
>>
>> Signed-off-by: Paulo Neves <ptsneves@gmail.com>
>> ---
>> meta/recipes-extended/ntirpc/ntirpc_4.0.bb | 30 +++++++++++++++++++
>> meta/recipes-extended/quota/quota_4.06.bb | 2 +-
>> .../recipes-extended/rpcbind/rpcbind_1.2.6.bb | 2 +-
>> .../watchdog/watchdog_5.16.bb | 2 +-
>> .../xorg-xserver/xserver-xorg.inc | 2 +-
>> .../recipes-support/liburcu/liburcu_0.13.1.bb | 1 +
>> 6 files changed, 35 insertions(+), 4 deletions(-)
>> create mode 100644 meta/recipes-extended/ntirpc/ntirpc_4.0.bb
>>
>> diff --git a/meta/recipes-extended/ntirpc/ntirpc_4.0.bb b/meta/recipes-extended/ntirpc/ntirpc_4.0.bb
>> new file mode 100644
>> index 0000000000..edebcb8ca9
>> --- /dev/null
>> +++ b/meta/recipes-extended/ntirpc/ntirpc_4.0.bb
>> @@ -0,0 +1,30 @@
>> +LICENSE = "BSD"
>> +LIC_FILES_CHKSUM = "file://COPYING;md5=f835cce8852481e4b2bbbdd23b5e47f3"
>> +
>> +SRC_URI = "https://download.nfs-ganesha.org/4/${PV}/ntirpc-${PV}.tar.gz"
>> +SRC_URI[md5sum] = "17b0baada54936dcde80eba27bb6d88d"
>> +SRC_URI[sha256sum] = "6a7921cd48d02077b394a02be42bf4f9b4678d4ebfd86a7ae4385bbcdce55462"
>> +
>> +DEPENDS = "liburcu libnsl2"
>> +
>> +inherit cmake pkgconfig
>> +
>> +PACKAGECONFIG[gss] = "-DUSE_GSS=true,-DUSE_GSS=false,krb5"
>> +PACKAGECONFIG[rdma] = "-DUSE_RPC_RDMA=true,-DUSE_RPC_RDMA=false,rdma-core"
>> +PACKAGECONFIG[winbind] = "-D_MSPAC_SUPPORT=true,-D_MSPAC_SUPPORT=false,samba"
>> +PACKAGECONFIG[profile] = "-DUSE_PROFILE=true,-DUSE_PROFILE=false,gperftools"
>> +PACKAGECONFIG[lttng] = "-DUSE_LTTNG=true,-DUSE_LTTNG=false,lttng-ust lttng-tools"
>> +
>> +# Sort out the brain-dead cmake file
>> +# (https://github.com/nfs-ganesha/ntirpc/issues/150)
>> +do_install:append() {
>> + if [ "${prefix}/lib64" != "${libdir}" -a -d ${D}${prefix}/lib64 ]; then
>> + mv ${D}${prefix}/lib64 ${D}${libdir}
>> + fi
>> +}
>> +
>> +BBCLASSEXTEND = "native nativesdk"
>> +EXTRA_OECMAKE:armv5 += '-DSYSTEM_LIBRARIES="-latomic"'
>> +EXTRA_OECMAKE:riscv32 += '-DSYSTEM_LIBRARIES="-latomic"'
>> +EXTRA_OECMAKE:riscv64 += '-DSYSTEM_LIBRARIES="-latomic"'
>> +EXTRA_OECMAKE:powerpc += '-DSYSTEM_LIBRARIES="-latomic"'
>> diff --git a/meta/recipes-extended/quota/quota_4.06.bb b/meta/recipes-extended/quota/quota_4.06.bb
>> index 0535d14c20..304477d72b 100644
>> --- a/meta/recipes-extended/quota/quota_4.06.bb
>> +++ b/meta/recipes-extended/quota/quota_4.06.bb
>> @@ -30,6 +30,6 @@ PACKAGECONFIG ??= "tcp-wrappers rpc bsd"
>> PACKAGECONFIG:libc-musl = "tcp-wrappers rpc"
>>
>> PACKAGECONFIG[tcp-wrappers] = "--enable-libwrap,--disable-libwrap,tcp-wrappers"
>> -PACKAGECONFIG[rpc] = "--enable-rpc,--disable-rpc,libtirpc"
>> +PACKAGECONFIG[rpc] = "--enable-rpc,--disable-rpc,ntirpc"
>> PACKAGECONFIG[bsd] = "--enable-bsd_behaviour=yes,--enable-bsd_behaviour=no,"
>> PACKAGECONFIG[ldapmail] = "--enable-ldapmail,--disable-ldapmail,openldap"
>> diff --git a/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb b/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
>> index dd89726afc..e30a23909c 100644
>> --- a/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
>> +++ b/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
>> @@ -4,7 +4,7 @@ DESCRIPTION = "The rpcbind utility is a server that converts RPC \
>> SECTION = "console/network"
>> HOMEPAGE = "http://sourceforge.net/projects/rpcbind/"
>> BUGTRACKER = "http://sourceforge.net/tracker/?group_id=201237&atid=976751"
>> -DEPENDS = "libtirpc quota"
>> +DEPENDS = "ntirpc quota"
>>
>> LICENSE = "BSD-3-Clause"
>> LIC_FILES_CHKSUM = "file://COPYING;md5=b46486e4c4a416602693a711bb5bfa39 \
>> diff --git a/meta/recipes-extended/watchdog/watchdog_5.16.bb b/meta/recipes-extended/watchdog/watchdog_5.16.bb
>> index 26fcc10487..5f5fd4dc87 100644
>> --- a/meta/recipes-extended/watchdog/watchdog_5.16.bb
>> +++ b/meta/recipes-extended/watchdog/watchdog_5.16.bb
>> @@ -28,7 +28,7 @@ UPSTREAM_CHECK_REGEX = "/watchdog/(?P<pver>(\d+[\.\-_]*)+)/"
>>
>> inherit autotools update-rc.d systemd pkgconfig
>>
>> -DEPENDS += "libtirpc"
>> +DEPENDS += "ntirpc"
>> CFLAGS += "-I${STAGING_INCDIR}/tirpc"
>> LDFLAGS += "-ltirpc"
>>
>> diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
>> index 057a1ba6ad..2085f742d6 100644
>> --- a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
>> +++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
>> @@ -36,7 +36,7 @@ inherit meson pkgconfig
>> inherit features_check
>> REQUIRED_DISTRO_FEATURES = "x11"
>>
>> -LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm libxkbfile libpciaccess libxcvt libtirpc"
>> +LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm libxkbfile libpciaccess libxcvt ntirpc"
>> DEPENDS = "xorgproto ${LIB_DEPS} font-util"
>>
>> # Split out some modules and extensions from the main package
>> diff --git a/meta/recipes-support/liburcu/liburcu_0.13.1.bb b/meta/recipes-support/liburcu/liburcu_0.13.1.bb
>> index 66763349d2..d7e831e803 100644
>> --- a/meta/recipes-support/liburcu/liburcu_0.13.1.bb
>> +++ b/meta/recipes-support/liburcu/liburcu_0.13.1.bb
>> @@ -22,3 +22,4 @@ CPPFLAGS:append:riscv64 = " -pthread -D_REENTRANT"
>> do_install:append() {
>> oe_multilib_header urcu/config.h
>> }
>> +BBCLASSEXTEND = "native nativesdk"
>> --
>> 2.25.1
>>
>>
>>
>>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [OE-core] [PATCH 2/2] nfs-ganesha: Replace unfs3 with nfs-ganesha
2022-08-27 18:06 ` [OE-core] " Alexander Kanavin
@ 2022-08-28 17:44 ` Paulo Neves
0 siblings, 0 replies; 13+ messages in thread
From: Paulo Neves @ 2022-08-28 17:44 UTC (permalink / raw)
To: Alexander Kanavin; +Cc: OE-core
Hello Alexander,
Thank you for the review. Please see v3.
On 8/27/22 20:06, Alexander Kanavin wrote:
> Thank for the replacement, but it seems like the patch isn't quite
> complete? The upstream statuses are all incorrect, and the recipe
> lacks summary/description/homepage, and has a TODO and an unknown
> license in it.
>
> Alex
>
> On Sat, 27 Aug 2022 at 19:46, Paulo Neves <ptsneves@gmail.com> wrote:
>> nfs-ganesha is actively maintained in contrast with unfs3. glibc tests
>> pass with nfs-ganesha.
>>
>> Signed-off-by: Paulo Neves <ptsneves@gmail.com>
>> ---
>> meta/lib/oeqa/utils/nfs.py | 2 +-
>> ...ix-possible-null-pointer-dereference.patch | 40 +++++
>> ...-Workaround-for-erroneous-gcc-Werror.patch | 33 ++++
>> ...ke-nfsv3_optype-guarded-by-_USE_NFS3.patch | 37 ++++
>> .../nfs-ganesha/nfs-ganesha/module.patch | 27 +++
>> .../nfs-ganesha/nfs-ganesha_4.0.bb | 42 +++++
>> ...1-Add-listen-action-for-a-tcp-socket.patch | 54 ------
>> .../0001-attr-fix-utime-for-symlink.patch | 85 ----------
>> ...0001-daemon.c-Libtirpc-porting-fixes.patch | 37 ----
>> .../unfs3/unfs3/alternate_rpc_ports.patch | 158 ------------------
>> .../unfs3/unfs3/fix_compile_warning.patch | 25 ---
>> ...fix_pid_race_parent_writes_child_pid.patch | 61 -------
>> .../unfs3/unfs3/no-yywrap.patch | 14 --
>> .../unfs3/relative_max_socket_path_len.patch | 74 --------
>> .../unfs3/unfs3/rename_fh_cache.patch | 64 -------
>> .../unfs3/unfs3/tcp_no_delay.patch | 56 -------
>> .../unfs3/unfs3/unfs3_parallel_build.patch | 37 ----
>> meta/recipes-devtools/unfs3/unfs3_git.bb | 45 -----
>> 18 files changed, 180 insertions(+), 711 deletions(-)
>> create mode 100644 meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0001-Fix-possible-null-pointer-dereference.patch
>> create mode 100644 meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0002-Workaround-for-erroneous-gcc-Werror.patch
>> create mode 100644 meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0003-Make-nfsv3_optype-guarded-by-_USE_NFS3.patch
>> create mode 100644 meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/module.patch
>> create mode 100644 meta/recipes-connectivity/nfs-ganesha/nfs-ganesha_4.0.bb
>> delete mode 100644 meta/recipes-devtools/unfs3/unfs3/0001-Add-listen-action-for-a-tcp-socket.patch
>> delete mode 100644 meta/recipes-devtools/unfs3/unfs3/0001-attr-fix-utime-for-symlink.patch
>> delete mode 100644 meta/recipes-devtools/unfs3/unfs3/0001-daemon.c-Libtirpc-porting-fixes.patch
>> delete mode 100644 meta/recipes-devtools/unfs3/unfs3/alternate_rpc_ports.patch
>> delete mode 100644 meta/recipes-devtools/unfs3/unfs3/fix_compile_warning.patch
>> delete mode 100644 meta/recipes-devtools/unfs3/unfs3/fix_pid_race_parent_writes_child_pid.patch
>> delete mode 100644 meta/recipes-devtools/unfs3/unfs3/no-yywrap.patch
>> delete mode 100644 meta/recipes-devtools/unfs3/unfs3/relative_max_socket_path_len.patch
>> delete mode 100644 meta/recipes-devtools/unfs3/unfs3/rename_fh_cache.patch
>> delete mode 100644 meta/recipes-devtools/unfs3/unfs3/tcp_no_delay.patch
>> delete mode 100644 meta/recipes-devtools/unfs3/unfs3/unfs3_parallel_build.patch
>> delete mode 100644 meta/recipes-devtools/unfs3/unfs3_git.bb
>>
>> diff --git a/meta/lib/oeqa/utils/nfs.py b/meta/lib/oeqa/utils/nfs.py
>> index c1218656ce..bd947c0b88 100644
>> --- a/meta/lib/oeqa/utils/nfs.py
>> +++ b/meta/lib/oeqa/utils/nfs.py
>> @@ -16,7 +16,7 @@ def unfs_server(directory, logger = None):
>> unfs_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "unfs3-native")
>> if not os.path.exists(os.path.join(unfs_sysroot, "usr", "bin", "unfsd")):
>> # build native tool
>> - bitbake("unfs3-native -c addto_recipe_sysroot")
>> + bitbake("nfs-ganesha-native -c addto_recipe_sysroot")
>>
>> exports = None
>> cmd = None
>> diff --git a/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0001-Fix-possible-null-pointer-dereference.patch b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0001-Fix-possible-null-pointer-dereference.patch
>> new file mode 100644
>> index 0000000000..b06fc8d07e
>> --- /dev/null
>> +++ b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0001-Fix-possible-null-pointer-dereference.patch
>> @@ -0,0 +1,40 @@
>> +From e70f112dc79263298baf7a1b92c19234b8f1e506 Mon Sep 17 00:00:00 2001
>> +From: Paulo Neves <ptsneves@gmail.com>
>> +Date: Tue, 23 Aug 2022 14:56:44 +0200
>> +Subject: [PATCH] Fix possible null pointer dereference
>> +
>> +If logging is enabled on nfs3_lookup, name is NULL initialized
>> +and used. Assign name to a valid location before it is used.
>> +
>> +Upstream-Status: Pending [1]
>> +
>> +[1] https://github.com/nfs-ganesha/nfs-ganesha/pull/846
>> +
>> +Change-Id: Ia1a922a1d34268a7d0b5ba97293e647ef07f8b3a
>> +Signed-off-by: Paulo Neves <ptsneves@gmail.com>
>> +
>> +---
>> + src/Protocols/NFS/nfs3_lookup.c | 3 +--
>> + 1 file changed, 1 insertion(+), 2 deletions(-)
>> +
>> +diff --git a/src/Protocols/NFS/nfs3_lookup.c b/src/Protocols/NFS/nfs3_lookup.c
>> +index da65769..97c9603 100644
>> +--- a/src/Protocols/NFS/nfs3_lookup.c
>> ++++ b/src/Protocols/NFS/nfs3_lookup.c
>> +@@ -74,6 +74,7 @@ int nfs3_lookup(nfs_arg_t *arg, struct svc_req *req, nfs_res_t *res)
>> + */
>> + fsal_prepare_attrs(&attrs, ATTRS_NFS3 | ATTR_RDATTR_ERR);
>> +
>> ++ name = arg->arg_lookup3.what.name;
>> + LogNFS3_Operation(COMPONENT_NFSPROTO, req, &arg->arg_lookup3.what.dir,
>> + " name: %s", name);
>> +
>> +@@ -89,8 +90,6 @@ int nfs3_lookup(nfs_arg_t *arg, struct svc_req *req, nfs_res_t *res)
>> + goto out;
>> + }
>> +
>> +- name = arg->arg_lookup3.what.name;
>> +-
>> + fsal_status = fsal_lookup(obj_dir, name, &obj_file, &attrs);
>> +
>> + if (FSAL_IS_ERROR(fsal_status)) {
>> diff --git a/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0002-Workaround-for-erroneous-gcc-Werror.patch b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0002-Workaround-for-erroneous-gcc-Werror.patch
>> new file mode 100644
>> index 0000000000..4eaae2493a
>> --- /dev/null
>> +++ b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0002-Workaround-for-erroneous-gcc-Werror.patch
>> @@ -0,0 +1,33 @@
>> +From b8fa32c779b968fbbbe5d5dcaafa664b98cec81c Mon Sep 17 00:00:00 2001
>> +From: Paulo Neves <ptsneves@gmail.com>
>> +Date: Tue, 23 Aug 2022 14:59:19 +0200
>> +Subject: [PATCH] Workaround for erroneous gcc Werror.
>> +
>> +gcc incorrectly decides that pos_len and pos_end are used
>> +unninitialized. It is incorrect because the condition of their
>> +use is the same as their early initialization. Apparently
>> +gcc does not pick this fact and with Werror, emits an error
>> +
>> +Upstream-Status: Inappropriate [reason]
>> +
>> +Change-Id: I30a345483b5a4bc4b5ceb46badaec3a9d27d1782
>> +Signed-off-by: Paulo Neves <ptsneves@gmail.com>
>> +
>> +---
>> + src/Protocols/NFS/nfs_proto_tools.c | 3 ++-
>> + 1 file changed, 2 insertions(+), 1 deletion(-)
>> +
>> +diff --git a/src/Protocols/NFS/nfs_proto_tools.c b/src/Protocols/NFS/nfs_proto_tools.c
>> +index d0f628d..a741482 100644
>> +--- a/src/Protocols/NFS/nfs_proto_tools.c
>> ++++ b/src/Protocols/NFS/nfs_proto_tools.c
>> +@@ -3688,7 +3688,8 @@ bool xdr_fattr4_encode(XDR *xdrs, struct xdr_attrs_args *args,
>> + struct bitmap4 bitmap_encoded;
>> + struct bitmap4 *bitmap;
>> + /* Remember where we put the length of the attr data */
>> +- u_int pos_len, pos_end;
>> ++ u_int pos_len = 0;
>> ++ u_int pos_end = 0;
>> + uint32_t attr_len = 0;
>> +
>> + bitmap = attr_bitmap != NULL ? attr_bitmap : &bitmap_encoded;
>> diff --git a/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0003-Make-nfsv3_optype-guarded-by-_USE_NFS3.patch b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0003-Make-nfsv3_optype-guarded-by-_USE_NFS3.patch
>> new file mode 100644
>> index 0000000000..ee89ed5628
>> --- /dev/null
>> +++ b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0003-Make-nfsv3_optype-guarded-by-_USE_NFS3.patch
>> @@ -0,0 +1,37 @@
>> +From 48086cb311e37ea58de60352609e270be62ee7e8 Mon Sep 17 00:00:00 2001
>> +From: Paulo Neves <ptsneves@gmail.com>
>> +Date: Tue, 23 Aug 2022 22:59:46 +0200
>> +Subject: [PATCH] Make nfsv3_optype guarded by _USE_NFS3
>> +
>> +-Wunused-variable will trigger when NFS3 is not enabled.
>> +
>> +Upstream-Status: Pending [1]
>> +
>> +[1] https://github.com/nfs-ganesha/nfs-ganesha/pull/846
>> +
>> +Change-Id: Ib1fab2e1a59b834cda8317b2a3450e3c19437975
>> +Signed-off-by: Paulo Neves <ptsneves@gmail.com>
>> +
>> +---
>> + src/support/server_stats.c | 3 +++
>> + 1 file changed, 3 insertions(+)
>> +
>> +diff --git a/src/support/server_stats.c b/src/support/server_stats.c
>> +index 19a8cac..a92b035 100644
>> +--- a/src/support/server_stats.c
>> ++++ b/src/support/server_stats.c
>> +@@ -246,11 +246,14 @@ enum proto_op_type {
>> + LAYOUT_OP
>> + };
>> +
>> ++#ifdef _USE_NFS3
>> + static const uint32_t nfsv3_optype[NFS_V3_NB_COMMAND] = {
>> + [NFSPROC3_READ] = READ_OP,
>> + [NFSPROC3_WRITE] = WRITE_OP,
>> + };
>> +
>> ++#endif
>> ++
>> + static const uint32_t nfsv40_optype[NFS_V40_NB_OPERATION] = {
>> + [NFS4_OP_READ] = READ_OP,
>> + [NFS4_OP_WRITE] = WRITE_OP,
>> diff --git a/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/module.patch b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/module.patch
>> new file mode 100644
>> index 0000000000..e096afe4ce
>> --- /dev/null
>> +++ b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/module.patch
>> @@ -0,0 +1,27 @@
>> +From 4d8ec5e1b04455b3f6ca40743a298e16a57cfaa4 Mon Sep 17 00:00:00 2001
>> +From: Ross Burton <ross@burtonini.com>
>> +Date: Fri, 5 Oct 2018 15:12:46 +0100
>> +Subject: [PATCH] Install fsalmem as a module
>> +
>> +Upstream-Status: Submitted [https://github.com/nfs-ganesha/nfs-ganesha/pull/354]
>> +Signed-off-by: Ross Burton <ross.burton@intel.com>
>> +
>> +This isn't a shared library, it's a module.
>> +
>> +---
>> + src/FSAL/FSAL_MEM/CMakeLists.txt | 2 +-
>> + 1 file changed, 1 insertion(+), 1 deletion(-)
>> +
>> +diff --git a/src/FSAL/FSAL_MEM/CMakeLists.txt b/src/FSAL/FSAL_MEM/CMakeLists.txt
>> +index 0f30fff..a9191ae 100644
>> +--- a/src/FSAL/FSAL_MEM/CMakeLists.txt
>> ++++ b/src/FSAL/FSAL_MEM/CMakeLists.txt
>> +@@ -14,7 +14,7 @@ SET(fsalmem_LIB_SRCS
>> + mem_up.c
>> + )
>> +
>> +-add_library(fsalmem SHARED ${fsalmem_LIB_SRCS})
>> ++add_library(fsalmem MODULE ${fsalmem_LIB_SRCS})
>> + add_sanitizers(fsalmem)
>> +
>> + target_link_libraries(fsalmem
>> diff --git a/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha_4.0.bb b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha_4.0.bb
>> new file mode 100644
>> index 0000000000..693fdf3777
>> --- /dev/null
>> +++ b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha_4.0.bb
>> @@ -0,0 +1,42 @@
>> +# TODO: review licenses
>> +LICENSE = "LGPL-3.0-only & Unknown"
>> +LIC_FILES_CHKSUM = "file://src/LICENSE.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
>> + file://src/cidr/LICENSE;md5=ab952b9c4b37753b18d79f305e8d8593"
>> +
>> +SRC_URI = "https://download.nfs-ganesha.org/4/4.0/nfs-ganesha-4.0.tar.gz \
>> + file://module.patch \
>> + file://0001-Fix-possible-null-pointer-dereference.patch \
>> + file://0002-Workaround-for-erroneous-gcc-Werror.patch \
>> + file://0003-Make-nfsv3_optype-guarded-by-_USE_NFS3.patch \
>> + "
>> +SRC_URI[sha256sum] = "7a7214f0cec054f2dd45a44c107f02812c1478730c4c85681d1bfe7ca1e64f8c"
>> +
>> +DEPENDS = "flex-native bison-native ntirpc util-linux"
>> +
>> +inherit cmake pkgconfig
>> +
>> +PACKAGECONFIG[dbus] = "-DUSE_DBUS=ON,-DUSE_DBUS=OFF,dbus"
>> +PACKAGECONFIG[nfsidmap] = "-DUSE_NFSIDMAP=ON,-DUSE_NFSIDMAP=OFF,nfs-utils"
>> +PACKAGECONFIG[nfsv3] = "-DUSE_NFS3=ON,-DUSE_NFS3=OFF"
>> +PACKAGECONFIG[winbind] = "-D_MSPAC_SUPPORT=true,-D_MSPAC_SUPPORT=false,samba"
>> +PACKAGECONFIG[lttng] = "-DUSE_LTTNG=ON,-DUSE_LTTNG=OFF,lttng-ust liburcu"
>> +PACKAGECONFIG[acl] = "-DUSE_ACL_MAPPING=ON,USE_ACL_MAPPING=OFF,acl"
>> +PACKAGECONFIG[jemalloc] = ",,jemalloc"
>> +
>> +
>> +OECMAKE_SOURCEPATH = "${S}/src"
>> +
>> +EXTRA_OECMAKE += "-DUSE_SYSTEM_NTIRPC=ON"
>> +EXTRA_OECMAKE += "-DUSE_GSS=OFF"
>> +
>> +# Sort out the brain-dead cmake file
>> +# (https://github.com/nfs-ganesha/ntirpc/issues/150)
>> +do_install:append() {
>> + if [ "${prefix}/lib64" != "${libdir}" -a -d ${D}${prefix}/lib64 ]; then
>> + mv ${D}${prefix}/lib64 ${D}${libdir}
>> + fi
>> +}
>> +
>> +FILES:${PN} += "${libdir}/ganesha/*.so"
>> +
>> +BBCLASSEXTEND = "native nativesdk"
>> diff --git a/meta/recipes-devtools/unfs3/unfs3/0001-Add-listen-action-for-a-tcp-socket.patch b/meta/recipes-devtools/unfs3/unfs3/0001-Add-listen-action-for-a-tcp-socket.patch
>> deleted file mode 100644
>> index e9b9d3df46..0000000000
>> --- a/meta/recipes-devtools/unfs3/unfs3/0001-Add-listen-action-for-a-tcp-socket.patch
>> +++ /dev/null
>> @@ -1,54 +0,0 @@
>> -From b42ab8e1aca951dd06c113159491b3fd5cf06f2e Mon Sep 17 00:00:00 2001
>> -From: Haiqing Bai <Haiqing.Bai@windriver.com>
>> -Date: Thu, 24 Oct 2019 09:39:04 +0800
>> -Subject: [PATCH] Add "listen" action for a tcp socket which does not call
>> - 'listen' after 'bind'
>> -
>> -It is found that /usr/bin/unfsd customus 100% cpu after starting qemu with 'nfs'
>> -option, and below lots of error messages shows when strace the process:
>> -
>> -poll([{fd=3, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND},{fd=4, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND},
>> -{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND},{fd=6, events =POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}],
>> -4, 2000) = 2 ([{fd=4, revents=POLLHUP},{fd=6, revents=POLLHUP}])
>> -accept(4, 0x7ffd5e6dddc0, [128]) = -1 EINVAL (Invalid argument)
>> -accept(6, 0x7ffd5e6dddc0, [128]) = -1 EINVAL (Invalid argument)
>> -
>> -% time seconds usecs/call calls errors syscall
>> ------- ----------- ----------- --------- --------- ----------------
>> - 70.87 0.005392 0 513886 513886 accept
>> - 29.13 0.002216 0 256943 poll
>> - 0.00 0.000000 0 4 read
>> -
>> -The root cause is that 'listen' is not called for the binded
>> -socket. The depended libtipc does not call 'listen' if found
>> -the incomming socket is binded, so 'accept' reports the error
>> -in the 'for' loop and cpu consumed.
>> -
>> -Upstream-Status: Pending
>> -
>> -Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
>> ----
>> - daemon.c | 7 +++++++
>> - 1 file changed, 7 insertions(+)
>> -
>> -diff --git a/daemon.c b/daemon.c
>> -index 028a181..4c85903 100644
>> ---- a/daemon.c
>> -+++ b/daemon.c
>> -@@ -814,6 +814,13 @@ static SVCXPRT *create_tcp_transport(unsigned int port)
>> - fprintf(stderr, "Couldn't bind to tcp port %d\n", port);
>> - exit(1);
>> - }
>> -+
>> -+ if (listen(sock, SOMAXCONN) < 0) {
>> -+ perror("listen");
>> -+ fprintf(stderr, "Couldn't listen on the address \n");
>> -+ close(sock);
>> -+ exit(1);
>> -+ }
>> - }
>> -
>> - transp = svctcp_create(sock, 0, 0);
>> ---
>> -1.9.1
>> -
>> diff --git a/meta/recipes-devtools/unfs3/unfs3/0001-attr-fix-utime-for-symlink.patch b/meta/recipes-devtools/unfs3/unfs3/0001-attr-fix-utime-for-symlink.patch
>> deleted file mode 100644
>> index 6957d102b8..0000000000
>> --- a/meta/recipes-devtools/unfs3/unfs3/0001-attr-fix-utime-for-symlink.patch
>> +++ /dev/null
>> @@ -1,85 +0,0 @@
>> -From 3f4fcb62661059bad77a2e957b4621137797bc2f Mon Sep 17 00:00:00 2001
>> -From: Rui Wang <rui.wang@windriver.com>
>> -Date: Fri, 15 Jun 2018 14:19:10 +0800
>> -Subject: [PATCH] attr: fix utime for symlink
>> -
>> -unfs3 has an old defect that it can not change the timestamps of a
>> -symlink file because it only uses utime(), which will follow the
>> -symlink. This will not cause an error if the symlink points to an
>> -existent file. But under some special situation, such as installing
>> -a rpm package, rpm tool will create the symlink first and try to
>> -modify the timestamps of it, when the target file is non-existent.
>> -This will cause an ESTALE error. Making rpm tool ignore this error
>> -is a solution, but not the best one. An acceptable approach is
>> -Making unfs3 support lutimes(), which can modify the symlink file
>> -itself. Considering not every system support this function, so a
>> -function checking is necessary.
>> -
>> -Upstream-Status: Submitted [https://sourceforge.net/p/unfs3/bugs/12/]
>> -
>> -Signed-off-by: Rui Wang <rui.wang@windriver.com>
>> ----
>> - attr.c | 15 +++++++++++----
>> - backend_unix.h | 2 ++
>> - configure.ac | 1 +
>> - 3 files changed, 14 insertions(+), 4 deletions(-)
>> -
>> -diff --git a/attr.c b/attr.c
>> -index 73e5c75..427d0e2 100644
>> ---- a/attr.c
>> -+++ b/attr.c
>> -@@ -280,7 +280,7 @@ post_op_attr get_post_cached(struct svc_req * req)
>> - static nfsstat3 set_time(const char *path, backend_statstruct buf, sattr3 new)
>> - {
>> - time_t new_atime, new_mtime;
>> -- struct utimbuf utim;
>> -+ struct timeval stamps[2];
>> - int res;
>> -
>> - /* set atime and mtime */
>> -@@ -302,10 +302,17 @@ static nfsstat3 set_time(const char *path, backend_statstruct buf, sattr3 new)
>> - else /* DONT_CHANGE */
>> - new_mtime = buf.st_mtime;
>> -
>> -- utim.actime = new_atime;
>> -- utim.modtime = new_mtime;
>> -+ stamps[0].tv_sec = new_atime;
>> -+ stamps[0].tv_usec = 0;
>> -+ stamps[1].tv_sec = new_mtime;
>> -+ stamps[1].tv_usec = 0;
>> -+
>> -+#if HAVE_LUTIMES
>> -+ res = backend_lutimes(path, stamps);
>> -+#else
>> -+ res = backend_utimes(path, stamps);
>> -+#endif
>> -
>> -- res = backend_utime(path, &utim);
>> - if (res == -1)
>> - return setattr_err();
>> - }
>> -diff --git a/backend_unix.h b/backend_unix.h
>> -index fbc2af3..813ffd3 100644
>> ---- a/backend_unix.h
>> -+++ b/backend_unix.h
>> -@@ -61,6 +61,8 @@
>> - #define backend_symlink symlink
>> - #define backend_truncate truncate
>> - #define backend_utime utime
>> -+#define backend_utimes utimes
>> -+#define backend_lutimes lutimes
>> - #define backend_statstruct struct stat
>> - #define backend_dirstream DIR
>> - #define backend_statvfsstruct struct statvfs
>> -diff --git a/configure.ac b/configure.ac
>> -index aeec598..ea7f167 100644
>> ---- a/configure.ac
>> -+++ b/configure.ac
>> -@@ -37,6 +37,7 @@ AC_CHECK_FUNCS(setresuid setresgid)
>> - AC_CHECK_FUNCS(vsyslog)
>> - AC_CHECK_FUNCS(lchown)
>> - AC_CHECK_FUNCS(setgroups)
>> -+AC_CHECK_FUNCS(lutimes)
>> - UNFS3_SOLARIS_RPC
>> - UNFS3_PORTMAP_DEFINE
>> - UNFS3_COMPILE_WARNINGS
>> diff --git a/meta/recipes-devtools/unfs3/unfs3/0001-daemon.c-Libtirpc-porting-fixes.patch b/meta/recipes-devtools/unfs3/unfs3/0001-daemon.c-Libtirpc-porting-fixes.patch
>> deleted file mode 100644
>> index 6eee6748f9..0000000000
>> --- a/meta/recipes-devtools/unfs3/unfs3/0001-daemon.c-Libtirpc-porting-fixes.patch
>> +++ /dev/null
>> @@ -1,37 +0,0 @@
>> -From c7a2a65d6c2a433312540c207860740d6e4e7629 Mon Sep 17 00:00:00 2001
>> -From: Khem Raj <raj.khem@gmail.com>
>> -Date: Sun, 11 Mar 2018 17:32:54 -0700
>> -Subject: [PATCH] daemon.c: Libtirpc porting fixes
>> -
>> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
>> ----
>> -Upstream-Status: Pending
>> -
>> - daemon.c | 4 ++--
>> - 1 file changed, 2 insertions(+), 2 deletions(-)
>> -
>> -diff --git a/daemon.c b/daemon.c
>> -index 22f30f6..028a181 100644
>> ---- a/daemon.c
>> -+++ b/daemon.c
>> -@@ -117,7 +117,7 @@ void logmsg(int prio, const char *fmt, ...)
>> - */
>> - struct in_addr get_remote(struct svc_req *rqstp)
>> - {
>> -- return (svc_getcaller(rqstp->rq_xprt))->sin_addr;
>> -+ return ((struct sockaddr_in*)svc_getcaller(rqstp->rq_xprt))->sin_addr;
>> - }
>> -
>> - /*
>> -@@ -125,7 +125,7 @@ struct in_addr get_remote(struct svc_req *rqstp)
>> - */
>> - short get_port(struct svc_req *rqstp)
>> - {
>> -- return (svc_getcaller(rqstp->rq_xprt))->sin_port;
>> -+ return ((struct sockaddr_in*)svc_getcaller(rqstp->rq_xprt))->sin_port;
>> - }
>> -
>> - /*
>> ---
>> -2.16.2
>> -
>> diff --git a/meta/recipes-devtools/unfs3/unfs3/alternate_rpc_ports.patch b/meta/recipes-devtools/unfs3/unfs3/alternate_rpc_ports.patch
>> deleted file mode 100644
>> index ff745d4774..0000000000
>> --- a/meta/recipes-devtools/unfs3/unfs3/alternate_rpc_ports.patch
>> +++ /dev/null
>> @@ -1,158 +0,0 @@
>> -Add ability to specify rcp port numbers
>> -
>> -In order to run more than one unfs server on a host system, you must
>> -be able to specify alternate rpc port numbers.
>> -
>> -Jason Wessel <jason.wessel@windriver.com>
>> -
>> -Upstream-Status: Submitted http://sourceforge.net/p/unfs3/bugs/5/
>> -
>> ----
>> - daemon.c | 44 +++++++++++++++++++++++++++++++-------------
>> - mount.c | 4 ++--
>> - 2 files changed, 33 insertions(+), 15 deletions(-)
>> -
>> ---- a/daemon.c
>> -+++ b/daemon.c
>> -@@ -78,6 +78,8 @@ int opt_testconfig = FALSE;
>> - struct in_addr opt_bind_addr;
>> - int opt_readable_executables = FALSE;
>> - char *opt_pid_file = NULL;
>> -+int nfs_prog = NFS3_PROGRAM;
>> -+int mount_prog = MOUNTPROG;
>> -
>> - /* Register with portmapper? */
>> - int opt_portmapper = TRUE;
>> -@@ -206,7 +208,7 @@ static void parse_options(int argc, char
>> - {
>> -
>> - int opt = 0;
>> -- char *optstring = "bcC:de:hl:m:n:prstTuwi:";
>> -+ char *optstring = "bcC:de:hl:m:n:prstTuwi:x:y:";
>> -
>> - while (opt != -1) {
>> - opt = getopt(argc, argv, optstring);
>> -@@ -261,8 +263,24 @@ static void parse_options(int argc, char
>> - printf
>> - ("\t-r report unreadable executables as readable\n");
>> - printf("\t-T test exports file and exit\n");
>> -+ printf("\t-x <port> alternate NFS RPC port\n");
>> -+ printf("\t-y <port> alternate MOUNTD RPC port\n");
>> - exit(0);
>> - break;
>> -+ case 'x':
>> -+ nfs_prog = strtol(optarg, NULL, 10);
>> -+ if (nfs_prog == 0) {
>> -+ fprintf(stderr, "Invalid NFS RPC port\n");
>> -+ exit(1);
>> -+ }
>> -+ break;
>> -+ case 'y':
>> -+ mount_prog = strtol(optarg, NULL, 10);
>> -+ if (mount_prog == 0) {
>> -+ fprintf(stderr, "Invalid MOUNTD RPC port\n");
>> -+ exit(1);
>> -+ }
>> -+ break;
>> - case 'l':
>> - opt_bind_addr.s_addr = inet_addr(optarg);
>> - if (opt_bind_addr.s_addr == (unsigned) -1) {
>> -@@ -347,12 +365,12 @@ void daemon_exit(int error)
>> - #endif /* WIN32 */
>> -
>> - if (opt_portmapper) {
>> -- svc_unregister(MOUNTPROG, MOUNTVERS1);
>> -- svc_unregister(MOUNTPROG, MOUNTVERS3);
>> -+ svc_unregister(mount_prog, MOUNTVERS1);
>> -+ svc_unregister(mount_prog, MOUNTVERS3);
>> - }
>> -
>> - if (opt_portmapper) {
>> -- svc_unregister(NFS3_PROGRAM, NFS_V3);
>> -+ svc_unregister(nfs_prog, NFS_V3);
>> - }
>> -
>> - if (error == SIGSEGV)
>> -@@ -657,13 +675,13 @@ static void mountprog_3(struct svc_req *
>> - static void register_nfs_service(SVCXPRT * udptransp, SVCXPRT * tcptransp)
>> - {
>> - if (opt_portmapper) {
>> -- pmap_unset(NFS3_PROGRAM, NFS_V3);
>> -+ pmap_unset(nfs_prog, NFS_V3);
>> - }
>> -
>> - if (udptransp != NULL) {
>> - /* Register NFS service for UDP */
>> - if (!svc_register
>> -- (udptransp, NFS3_PROGRAM, NFS_V3, nfs3_program_3,
>> -+ (udptransp, nfs_prog, NFS_V3, nfs3_program_3,
>> - opt_portmapper ? IPPROTO_UDP : 0)) {
>> - fprintf(stderr, "%s\n",
>> - "unable to register (NFS3_PROGRAM, NFS_V3, udp).");
>> -@@ -674,7 +692,7 @@ static void register_nfs_service(SVCXPRT
>> - if (tcptransp != NULL) {
>> - /* Register NFS service for TCP */
>> - if (!svc_register
>> -- (tcptransp, NFS3_PROGRAM, NFS_V3, nfs3_program_3,
>> -+ (tcptransp, nfs_prog, NFS_V3, nfs3_program_3,
>> - opt_portmapper ? IPPROTO_TCP : 0)) {
>> - fprintf(stderr, "%s\n",
>> - "unable to register (NFS3_PROGRAM, NFS_V3, tcp).");
>> -@@ -686,14 +704,14 @@ static void register_nfs_service(SVCXPRT
>> - static void register_mount_service(SVCXPRT * udptransp, SVCXPRT * tcptransp)
>> - {
>> - if (opt_portmapper) {
>> -- pmap_unset(MOUNTPROG, MOUNTVERS1);
>> -- pmap_unset(MOUNTPROG, MOUNTVERS3);
>> -+ pmap_unset(mount_prog, MOUNTVERS1);
>> -+ pmap_unset(mount_prog, MOUNTVERS3);
>> - }
>> -
>> - if (udptransp != NULL) {
>> - /* Register MOUNT service (v1) for UDP */
>> - if (!svc_register
>> -- (udptransp, MOUNTPROG, MOUNTVERS1, mountprog_3,
>> -+ (udptransp, mount_prog, MOUNTVERS1, mountprog_3,
>> - opt_portmapper ? IPPROTO_UDP : 0)) {
>> - fprintf(stderr, "%s\n",
>> - "unable to register (MOUNTPROG, MOUNTVERS1, udp).");
>> -@@ -702,7 +720,7 @@ static void register_mount_service(SVCXP
>> -
>> - /* Register MOUNT service (v3) for UDP */
>> - if (!svc_register
>> -- (udptransp, MOUNTPROG, MOUNTVERS3, mountprog_3,
>> -+ (udptransp, mount_prog, MOUNTVERS3, mountprog_3,
>> - opt_portmapper ? IPPROTO_UDP : 0)) {
>> - fprintf(stderr, "%s\n",
>> - "unable to register (MOUNTPROG, MOUNTVERS3, udp).");
>> -@@ -713,7 +731,7 @@ static void register_mount_service(SVCXP
>> - if (tcptransp != NULL) {
>> - /* Register MOUNT service (v1) for TCP */
>> - if (!svc_register
>> -- (tcptransp, MOUNTPROG, MOUNTVERS1, mountprog_3,
>> -+ (tcptransp, mount_prog, MOUNTVERS1, mountprog_3,
>> - opt_portmapper ? IPPROTO_TCP : 0)) {
>> - fprintf(stderr, "%s\n",
>> - "unable to register (MOUNTPROG, MOUNTVERS1, tcp).");
>> -@@ -722,7 +740,7 @@ static void register_mount_service(SVCXP
>> -
>> - /* Register MOUNT service (v3) for TCP */
>> - if (!svc_register
>> -- (tcptransp, MOUNTPROG, MOUNTVERS3, mountprog_3,
>> -+ (tcptransp, mount_prog, MOUNTVERS3, mountprog_3,
>> - opt_portmapper ? IPPROTO_TCP : 0)) {
>> - fprintf(stderr, "%s\n",
>> - "unable to register (MOUNTPROG, MOUNTVERS3, tcp).");
>> ---- a/mount.c
>> -+++ b/mount.c
>> -@@ -155,8 +155,8 @@ mountres3 *mountproc_mnt_3_svc(dirpath *
>> - /* error out if not version 3 */
>> - if (rqstp->rq_vers != 3) {
>> - logmsg(LOG_INFO,
>> -- "%s attempted mount with unsupported protocol version",
>> -- inet_ntoa(get_remote(rqstp)));
>> -+ "%s attempted mount with unsupported protocol version: %i",
>> -+ inet_ntoa(get_remote(rqstp)), rqstp->rq_vers);
>> - result.fhs_status = MNT3ERR_INVAL;
>> - return &result;
>> - }
>> diff --git a/meta/recipes-devtools/unfs3/unfs3/fix_compile_warning.patch b/meta/recipes-devtools/unfs3/unfs3/fix_compile_warning.patch
>> deleted file mode 100644
>> index aada014117..0000000000
>> --- a/meta/recipes-devtools/unfs3/unfs3/fix_compile_warning.patch
>> +++ /dev/null
>> @@ -1,25 +0,0 @@
>> -daemon.c: Check exit code of chdir()
>> -
>> -Stop the compile warning and fix the code to act on a chdir() failure.
>> -If this one does fail something is very, very wrong.
>> -
>> -Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
>> -
>> -Upstream-Status: Submitted http://sourceforge.net/p/unfs3/bugs/5/
>> -
>> ----
>> - daemon.c | 3 ++-
>> - 1 file changed, 2 insertions(+), 1 deletion(-)
>> -
>> ---- a/daemon.c
>> -+++ b/daemon.c
>> -@@ -964,7 +964,8 @@ int main(int argc, char **argv)
>> - sigaction(SIGALRM, &act, NULL);
>> -
>> - /* don't make directory we started in busy */
>> -- chdir("/");
>> -+ if(chdir("/") < 0)
>> -+ daemon_exit(0);
>> -
>> - /* detach from terminal */
>> - if (opt_detach) {
>> diff --git a/meta/recipes-devtools/unfs3/unfs3/fix_pid_race_parent_writes_child_pid.patch b/meta/recipes-devtools/unfs3/unfs3/fix_pid_race_parent_writes_child_pid.patch
>> deleted file mode 100644
>> index 46b187e5f3..0000000000
>> --- a/meta/recipes-devtools/unfs3/unfs3/fix_pid_race_parent_writes_child_pid.patch
>> +++ /dev/null
>> @@ -1,61 +0,0 @@
>> -daemon.c: Fix race window for writing of the pid file
>> -
>> -The parent process should write the pid file such that the pid file
>> -will can be checked immediately following exit of the fork from the
>> -parent.
>> -
>> -This allows external monitoring applications to watch the daemon
>> -without having to add sleep calls to wait for the pid file be written
>> -on a busy system.
>> -
>> -Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
>> -
>> -Upstream-Status: Submitted http://sourceforge.net/p/unfs3/bugs/5/
>> -
>> ----
>> - daemon.c | 12 +++++++++---
>> - 1 file changed, 9 insertions(+), 3 deletions(-)
>> -
>> ---- a/daemon.c
>> -+++ b/daemon.c
>> -@@ -153,7 +153,7 @@ int get_socket_type(struct svc_req *rqst
>> - /*
>> - * write current pid to a file
>> - */
>> --static void create_pid_file(void)
>> -+static void create_pid_file(int pid)
>> - {
>> - char buf[16];
>> - int fd, res, len;
>> -@@ -175,7 +175,7 @@ static void create_pid_file(void)
>> - }
>> - #endif
>> -
>> -- sprintf(buf, "%i\n", backend_getpid());
>> -+ sprintf(buf, "%i\n", pid);
>> - len = strlen(buf);
>> -
>> - res = backend_pwrite(fd, buf, len, 0);
>> -@@ -970,6 +970,10 @@ int main(int argc, char **argv)
>> - fprintf(stderr, "could not fork into background\n");
>> - daemon_exit(0);
>> - }
>> -+ if (pid)
>> -+ create_pid_file(pid);
>> -+ } else {
>> -+ create_pid_file(backend_getpid());
>> - }
>> - #endif /* WIN32 */
>> -
>> -@@ -1006,8 +1010,10 @@ int main(int argc, char **argv)
>> - /* no umask to not screw up create modes */
>> - umask(0);
>> -
>> -+#ifdef WIN32
>> - /* create pid file if wanted */
>> -- create_pid_file();
>> -+ create_pid_file(backend_getpid());
>> -+#endif
>> -
>> - /* initialize internal stuff */
>> - fh_cache_init();
>> diff --git a/meta/recipes-devtools/unfs3/unfs3/no-yywrap.patch b/meta/recipes-devtools/unfs3/unfs3/no-yywrap.patch
>> deleted file mode 100644
>> index e3496814d8..0000000000
>> --- a/meta/recipes-devtools/unfs3/unfs3/no-yywrap.patch
>> +++ /dev/null
>> @@ -1,14 +0,0 @@
>> -Upstream-Status: Backport [https://github.com/unfs3/unfs3/commit/3fa0568e6ef96e045286afe18444bc28fe93962b]
>> -
>> -diff --git a/Config/exports.l b/Config/exports.l
>> -index 662603c..7e7c4fc 100644
>> ---- a/Config/exports.l
>> -+++ b/Config/exports.l
>> -@@ -50,6 +50,7 @@ OLDNET {IP}"/"{IP}
>> -
>> - %option nounput
>> - %option noinput
>> -+%option noyywrap
>> -
>> - %%
>> -
>> diff --git a/meta/recipes-devtools/unfs3/unfs3/relative_max_socket_path_len.patch b/meta/recipes-devtools/unfs3/unfs3/relative_max_socket_path_len.patch
>> deleted file mode 100644
>> index 219dd35aec..0000000000
>> --- a/meta/recipes-devtools/unfs3/unfs3/relative_max_socket_path_len.patch
>> +++ /dev/null
>> @@ -1,74 +0,0 @@
>> -nfs.c: Allow max sa.sun_path for a localdomain socket with the user nfs-server
>> -
>> -There is a hard limit for the kernel of 108 characters for a
>> -localdomain socket name. To avoid problems with the user nfs
>> -server it should maximize the number of characters by using
>> -a relative path on the server side.
>> -
>> -Previously the nfs-server used the absolute path name passed to
>> -the sa.sunpath arg for binding the socket and this has caused
>> -problems for both the X server and UST binaries which make
>> -heavy use of named sockets with long names.
>> -
>> -Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
>> -
>> -Upstream-Status: Submitted http://sourceforge.net/p/unfs3/bugs/5/
>> -
>> ----
>> - nfs.c | 29 +++++++++++++++++++++++++++--
>> - 1 file changed, 27 insertions(+), 2 deletions(-)
>> -
>> ---- a/nfs.c
>> -+++ b/nfs.c
>> -@@ -672,6 +672,7 @@ SYMLINK3res *nfsproc3_symlink_3_svc(SYML
>> - }
>> -
>> - #ifndef WIN32
>> -+static char pathbuf_tmp[NFS_MAXPATHLEN + NFS_MAXNAMLEN + 1];
>> -
>> - /*
>> - * create Unix socket
>> -@@ -680,17 +681,41 @@ static int mksocket(const char *path, mo
>> - {
>> - int res, sock;
>> - struct sockaddr_un addr;
>> -+ unsigned int len = strlen(path);
>> -
>> - sock = socket(PF_UNIX, SOCK_STREAM, 0);
>> -- addr.sun_family = AF_UNIX;
>> -- strcpy(addr.sun_path, path);
>> - res = sock;
>> - if (res != -1) {
>> -+ addr.sun_family = AF_UNIX;
>> -+ if (len < sizeof(addr.sun_path) -1) {
>> -+ strcpy(addr.sun_path, path);
>> -+ } else {
>> -+ char *ptr;
>> -+ res = -1;
>> -+ if (len >= sizeof(path))
>> -+ goto out;
>> -+ strcpy(pathbuf_tmp, path);
>> -+ ptr = strrchr(pathbuf_tmp,'/');
>> -+ if (ptr) {
>> -+ *ptr = '\0';
>> -+ ptr++;
>> -+ if (chdir(pathbuf_tmp))
>> -+ goto out;
>> -+ } else {
>> -+ ptr = pathbuf_tmp;
>> -+ }
>> -+ if (strlen(ptr) >= sizeof(addr.sun_path))
>> -+ goto out;
>> -+ strcpy(addr.sun_path, ptr);
>> -+ }
>> - umask(~mode);
>> - res =
>> - bind(sock, (struct sockaddr *) &addr,
>> - sizeof(addr.sun_family) + strlen(addr.sun_path));
>> - umask(0);
>> -+out:
>> -+ if (chdir("/"))
>> -+ fprintf(stderr, "Internal failure to chdir /\n");
>> - close(sock);
>> - }
>> - return res;
>> diff --git a/meta/recipes-devtools/unfs3/unfs3/rename_fh_cache.patch b/meta/recipes-devtools/unfs3/unfs3/rename_fh_cache.patch
>> deleted file mode 100644
>> index e6d89530f8..0000000000
>> --- a/meta/recipes-devtools/unfs3/unfs3/rename_fh_cache.patch
>> +++ /dev/null
>> @@ -1,64 +0,0 @@
>> -From: Jason Wessel <jason.wessel@windriver.com>
>> -Date: Sat, 23 Feb 2013 08:49:08 -0600
>> -Subject: [PATCH] fh_cache: fix statle nfs handle on rename problem
>> -
>> -The following test case fails with modern linunx kernels which cache
>> -the renamed inode.
>> -
>> - % mkdir a;mkdir b;mv b a/;ls -l a
>> - ls: a/b: Stale NFS file handle
>> -
>> -The issue is that nfserver was not updating the fh_cache with the new
>> -location of the inode, when it moves directories.
>> -
>> -Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
>> -
>> -Upstream-Status: Submitted http://sourceforge.net/p/unfs3/bugs/5/
>> -
>> ----
>> - fh_cache.c | 12 ++++++++++++
>> - fh_cache.h | 1 +
>> - nfs.c | 2 ++
>> - 3 files changed, 15 insertions(+)
>> -
>> ---- a/fh_cache.c
>> -+++ b/fh_cache.c
>> -@@ -199,6 +199,18 @@ static char *fh_cache_lookup(uint32 dev,
>> - }
>> -
>> - /*
>> -+ * update a fh inode cache for an operation like rename
>> -+ */
>> -+void fh_cache_update(nfs_fh3 fh, char *path)
>> -+{
>> -+ unfs3_fh_t *obj = (void *) fh.data.data_val;
>> -+ backend_statstruct buf;
>> -+
>> -+ if (backend_lstat(path, &buf) != -1) {
>> -+ fh_cache_add(obj->dev, buf.st_ino, path);
>> -+ }
>> -+}
>> -+/*
>> - * resolve a filename into a path
>> - * cache-using wrapper for fh_decomp_raw
>> - */
>> ---- a/fh_cache.h
>> -+++ b/fh_cache.h
>> -@@ -19,5 +19,6 @@ unfs3_fh_t fh_comp(const char *path, str
>> - unfs3_fh_t *fh_comp_ptr(const char *path, struct svc_req *rqstp, int need_dir);
>> -
>> - char *fh_cache_add(uint32 dev, uint64 ino, const char *path);
>> -+void fh_cache_update(nfs_fh3 fh, char *path);
>> -
>> - #endif
>> ---- a/nfs.c
>> -+++ b/nfs.c
>> -@@ -876,6 +876,8 @@ RENAME3res *nfsproc3_rename_3_svc(RENAME
>> - res = backend_rename(from_obj, to_obj);
>> - if (res == -1)
>> - result.status = rename_err();
>> -+ /* Update the fh_cache with moved inode value */
>> -+ fh_cache_update(argp->to.dir, to_obj);
>> - }
>> - }
>> -
>> diff --git a/meta/recipes-devtools/unfs3/unfs3/tcp_no_delay.patch b/meta/recipes-devtools/unfs3/unfs3/tcp_no_delay.patch
>> deleted file mode 100644
>> index b3521c63eb..0000000000
>> --- a/meta/recipes-devtools/unfs3/unfs3/tcp_no_delay.patch
>> +++ /dev/null
>> @@ -1,56 +0,0 @@
>> -daemon.c: Add option for tcp no delay
>> -
>> -Allow the NFS tcp sockets to conditionally use TCP_NODELAY
>> -
>> -Upstream-Status: Submitted http://sourceforge.net/p/unfs3/bugs/5/
>> -
>> ----
>> - daemon.c | 9 ++++++++-
>> - 1 file changed, 8 insertions(+), 1 deletion(-)
>> -
>> ---- a/daemon.c
>> -+++ b/daemon.c
>> -@@ -17,6 +17,7 @@
>> - #ifndef WIN32
>> - #include <sys/socket.h>
>> - #include <netinet/in.h>
>> -+#include <netinet/tcp.h>
>> - #include <arpa/inet.h>
>> - #include <syslog.h>
>> - #else /* WIN32 */
>> -@@ -75,6 +76,7 @@ unsigned int opt_mount_port = NFS_PORT;
>> - int opt_singleuser = FALSE;
>> - int opt_brute_force = FALSE;
>> - int opt_testconfig = FALSE;
>> -+int opt_tcp_nodelay = FALSE;
>> - struct in_addr opt_bind_addr;
>> - int opt_readable_executables = FALSE;
>> - char *opt_pid_file = NULL;
>> -@@ -208,7 +210,7 @@ static void parse_options(int argc, char
>> - {
>> -
>> - int opt = 0;
>> -- char *optstring = "bcC:de:hl:m:n:prstTuwi:x:y:";
>> -+ char *optstring = "bcC:de:hl:m:Nn:prstTuwi:x:y:";
>> -
>> - while (opt != -1) {
>> - opt = getopt(argc, argv, optstring);
>> -@@ -295,6 +297,9 @@ static void parse_options(int argc, char
>> - exit(1);
>> - }
>> - break;
>> -+ case 'N':
>> -+ opt_tcp_nodelay = TRUE;
>> -+ break;
>> - case 'n':
>> - opt_nfs_port = strtol(optarg, NULL, 10);
>> - if (opt_nfs_port == 0) {
>> -@@ -802,6 +807,8 @@ static SVCXPRT *create_tcp_transport(uns
>> - sin.sin_addr.s_addr = opt_bind_addr.s_addr;
>> - sock = socket(PF_INET, SOCK_STREAM, 0);
>> - setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (const char *) &on, sizeof(on));
>> -+ if (opt_tcp_nodelay)
>> -+ setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on));
>> - if (bind(sock, (struct sockaddr *) &sin, sizeof(struct sockaddr))) {
>> - perror("bind");
>> - fprintf(stderr, "Couldn't bind to tcp port %d\n", port);
>> diff --git a/meta/recipes-devtools/unfs3/unfs3/unfs3_parallel_build.patch b/meta/recipes-devtools/unfs3/unfs3/unfs3_parallel_build.patch
>> deleted file mode 100644
>> index 6f64dd5b3e..0000000000
>> --- a/meta/recipes-devtools/unfs3/unfs3/unfs3_parallel_build.patch
>> +++ /dev/null
>> @@ -1,37 +0,0 @@
>> -Fix parallel build dependency issue
>> -
>> -If building with make -j2 the lib.a will not get built in time.
>> -
>> -Jason Wessel <jason.wessel@windriver.com>
>> -
>> -Upstream-Status: Submitted http://sourceforge.net/p/unfs3/bugs/5/
>> -
>> ----
>> - Config/Makefile.in | 3 +++
>> - Makefile.in | 3 ++-
>> - 2 files changed, 5 insertions(+), 1 deletion(-)
>> -
>> ---- a/Makefile.in
>> -+++ b/Makefile.in
>> -@@ -29,7 +29,8 @@ DESTDIR =
>> -
>> - VPATH = $(srcdir)
>> -
>> --all: subdirs unfsd$(EXEEXT)
>> -+all: subdirs
>> -+ $(MAKE) unfsd$(EXEEXT)
>> -
>> - unfsd$(EXEEXT): $(OBJS) $(CONFOBJ) $(EXTRAOBJ)
>> - $(CC) -o $@ $(OBJS) $(CONFOBJ) $(EXTRAOBJ) $(LDFLAGS)
>> ---- a/Config/Makefile.in
>> -+++ b/Config/Makefile.in
>> -@@ -16,6 +16,9 @@ lib.a: $(OBJS)
>> - $(AR) crs lib.a $(OBJS)
>> -
>> - y.tab.h y.tab.c: $(srcdir)/exports.y
>> -+y.tab.h: y.tab.c
>> -+
>> -+y.tab.c: $(srcdir)/exports.y
>> - $(YACC) -d $(srcdir)/exports.y
>> -
>> - y.tab.o: y.tab.c $(srcdir)/exports.h $(top_srcdir)/nfs.h $(top_srcdir)/mount.h $(top_srcdir)/daemon.h
>> diff --git a/meta/recipes-devtools/unfs3/unfs3_git.bb b/meta/recipes-devtools/unfs3/unfs3_git.bb
>> deleted file mode 100644
>> index 7a5d273851..0000000000
>> --- a/meta/recipes-devtools/unfs3/unfs3_git.bb
>> +++ /dev/null
>> @@ -1,45 +0,0 @@
>> -SUMMARY = "Userspace NFS server v3 protocol"
>> -DESCRIPTION = "UNFS3 is a user-space implementation of the NFSv3 server \
>> -specification. It provides a daemon for the MOUNT and NFS protocols, which \
>> -are used by NFS clients for accessing files on the server."
>> -HOMEPAGE = "https://github.com/unfs3/unfs3"
>> -SECTION = "console/network"
>> -LICENSE = "unfs3"
>> -LIC_FILES_CHKSUM = "file://LICENSE;md5=9475885294e17c0cc0067820d042792e"
>> -
>> -DEPENDS = "flex-native bison-native flex"
>> -DEPENDS += "libtirpc"
>> -DEPENDS:append:class-nativesdk = " flex-nativesdk"
>> -
>> -ASNEEDED = ""
>> -
>> -S = "${WORKDIR}/git"
>> -SRC_URI = "git://github.com/unfs3/unfs3.git;protocol=https;branch=master \
>> - file://unfs3_parallel_build.patch \
>> - file://alternate_rpc_ports.patch \
>> - file://fix_pid_race_parent_writes_child_pid.patch \
>> - file://fix_compile_warning.patch \
>> - file://rename_fh_cache.patch \
>> - file://relative_max_socket_path_len.patch \
>> - file://tcp_no_delay.patch \
>> - file://0001-daemon.c-Libtirpc-porting-fixes.patch \
>> - file://0001-attr-fix-utime-for-symlink.patch \
>> - file://0001-Add-listen-action-for-a-tcp-socket.patch \
>> - file://no-yywrap.patch \
>> - "
>> -SRCREV = "c12a5c69a8d59be6916cbd0e0f41c159f1962425"
>> -UPSTREAM_CHECK_GITTAGREGEX = "unfs3\-(?P<pver>.+)"
>> -
>> -PV = "0.9.22+${SRCPV}"
>> -
>> -BBCLASSEXTEND = "native nativesdk"
>> -
>> -inherit autotools
>> -EXTRA_OECONF:append:class-native = " --sbindir=${bindir}"
>> -CFLAGS:append = " -I${STAGING_INCDIR}/tirpc"
>> -EXTRA_OECONF:append = " LIBS=-ltirpc"
>> -
>> -# Turn off these header detects else the inode search
>> -# will walk entire file systems and this is a real problem
>> -# if you have 2 TB of files to walk in your file system
>> -CACHED_CONFIGUREVARS = "ac_cv_header_mntent_h=no ac_cv_header_sys_mnttab_h=no"
>> --
>> 2.25.1
>>
>>
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> View/Reply Online (#169935): https://lists.openembedded.org/g/openembedded-core/message/169935
>> Mute This Topic: https://lists.openembedded.org/mt/93293558/1686489
>> Group Owner: openembedded-core+owner@lists.openembedded.org
>> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alex.kanavin@gmail.com]
>> -=-=-=-=-=-=-=-=-=-=-=-
>>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [OE-core] [PATCH 1/2] ntirpc: Add ntirpc recipe
2022-08-27 17:46 [PATCH 1/2] ntirpc: Add ntirpc recipe Paulo Neves
2022-08-27 17:46 ` [PATCH 2/2] nfs-ganesha: Replace unfs3 with nfs-ganesha Paulo Neves
2022-08-27 18:07 ` [OE-core] [PATCH 1/2] ntirpc: Add ntirpc recipe Alexander Kanavin
@ 2022-08-29 9:59 ` Alexandre Belloni
2022-08-29 10:04 ` Alexandre Belloni
2 siblings, 1 reply; 13+ messages in thread
From: Alexandre Belloni @ 2022-08-29 9:59 UTC (permalink / raw)
To: Paulo Neves; +Cc: openembedded-core
Hello,
This fails on musl:
https://autobuilder.yoctoproject.org/typhoon/#/builders/64/builds/5771/steps/11/logs/stdio
On 27/08/2022 19:46:32+0200, Paulo Neves wrote:
> ntirpc is an actively maintained rpc implementation. We cannot completely
> remove libtirpc due to arising circular dependencies. libtirpc and ntirpc
> are not mutually exclusive.
>
> Signed-off-by: Paulo Neves <ptsneves@gmail.com>
> ---
> meta/recipes-extended/ntirpc/ntirpc_4.0.bb | 30 +++++++++++++++++++
> meta/recipes-extended/quota/quota_4.06.bb | 2 +-
> .../recipes-extended/rpcbind/rpcbind_1.2.6.bb | 2 +-
> .../watchdog/watchdog_5.16.bb | 2 +-
> .../xorg-xserver/xserver-xorg.inc | 2 +-
> .../recipes-support/liburcu/liburcu_0.13.1.bb | 1 +
> 6 files changed, 35 insertions(+), 4 deletions(-)
> create mode 100644 meta/recipes-extended/ntirpc/ntirpc_4.0.bb
>
> diff --git a/meta/recipes-extended/ntirpc/ntirpc_4.0.bb b/meta/recipes-extended/ntirpc/ntirpc_4.0.bb
> new file mode 100644
> index 0000000000..edebcb8ca9
> --- /dev/null
> +++ b/meta/recipes-extended/ntirpc/ntirpc_4.0.bb
> @@ -0,0 +1,30 @@
> +LICENSE = "BSD"
> +LIC_FILES_CHKSUM = "file://COPYING;md5=f835cce8852481e4b2bbbdd23b5e47f3"
> +
> +SRC_URI = "https://download.nfs-ganesha.org/4/${PV}/ntirpc-${PV}.tar.gz"
> +SRC_URI[md5sum] = "17b0baada54936dcde80eba27bb6d88d"
> +SRC_URI[sha256sum] = "6a7921cd48d02077b394a02be42bf4f9b4678d4ebfd86a7ae4385bbcdce55462"
> +
> +DEPENDS = "liburcu libnsl2"
> +
> +inherit cmake pkgconfig
> +
> +PACKAGECONFIG[gss] = "-DUSE_GSS=true,-DUSE_GSS=false,krb5"
> +PACKAGECONFIG[rdma] = "-DUSE_RPC_RDMA=true,-DUSE_RPC_RDMA=false,rdma-core"
> +PACKAGECONFIG[winbind] = "-D_MSPAC_SUPPORT=true,-D_MSPAC_SUPPORT=false,samba"
> +PACKAGECONFIG[profile] = "-DUSE_PROFILE=true,-DUSE_PROFILE=false,gperftools"
> +PACKAGECONFIG[lttng] = "-DUSE_LTTNG=true,-DUSE_LTTNG=false,lttng-ust lttng-tools"
> +
> +# Sort out the brain-dead cmake file
> +# (https://github.com/nfs-ganesha/ntirpc/issues/150)
> +do_install:append() {
> + if [ "${prefix}/lib64" != "${libdir}" -a -d ${D}${prefix}/lib64 ]; then
> + mv ${D}${prefix}/lib64 ${D}${libdir}
> + fi
> +}
> +
> +BBCLASSEXTEND = "native nativesdk"
> +EXTRA_OECMAKE:armv5 += '-DSYSTEM_LIBRARIES="-latomic"'
> +EXTRA_OECMAKE:riscv32 += '-DSYSTEM_LIBRARIES="-latomic"'
> +EXTRA_OECMAKE:riscv64 += '-DSYSTEM_LIBRARIES="-latomic"'
> +EXTRA_OECMAKE:powerpc += '-DSYSTEM_LIBRARIES="-latomic"'
> diff --git a/meta/recipes-extended/quota/quota_4.06.bb b/meta/recipes-extended/quota/quota_4.06.bb
> index 0535d14c20..304477d72b 100644
> --- a/meta/recipes-extended/quota/quota_4.06.bb
> +++ b/meta/recipes-extended/quota/quota_4.06.bb
> @@ -30,6 +30,6 @@ PACKAGECONFIG ??= "tcp-wrappers rpc bsd"
> PACKAGECONFIG:libc-musl = "tcp-wrappers rpc"
>
> PACKAGECONFIG[tcp-wrappers] = "--enable-libwrap,--disable-libwrap,tcp-wrappers"
> -PACKAGECONFIG[rpc] = "--enable-rpc,--disable-rpc,libtirpc"
> +PACKAGECONFIG[rpc] = "--enable-rpc,--disable-rpc,ntirpc"
> PACKAGECONFIG[bsd] = "--enable-bsd_behaviour=yes,--enable-bsd_behaviour=no,"
> PACKAGECONFIG[ldapmail] = "--enable-ldapmail,--disable-ldapmail,openldap"
> diff --git a/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb b/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
> index dd89726afc..e30a23909c 100644
> --- a/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
> +++ b/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
> @@ -4,7 +4,7 @@ DESCRIPTION = "The rpcbind utility is a server that converts RPC \
> SECTION = "console/network"
> HOMEPAGE = "http://sourceforge.net/projects/rpcbind/"
> BUGTRACKER = "http://sourceforge.net/tracker/?group_id=201237&atid=976751"
> -DEPENDS = "libtirpc quota"
> +DEPENDS = "ntirpc quota"
>
> LICENSE = "BSD-3-Clause"
> LIC_FILES_CHKSUM = "file://COPYING;md5=b46486e4c4a416602693a711bb5bfa39 \
> diff --git a/meta/recipes-extended/watchdog/watchdog_5.16.bb b/meta/recipes-extended/watchdog/watchdog_5.16.bb
> index 26fcc10487..5f5fd4dc87 100644
> --- a/meta/recipes-extended/watchdog/watchdog_5.16.bb
> +++ b/meta/recipes-extended/watchdog/watchdog_5.16.bb
> @@ -28,7 +28,7 @@ UPSTREAM_CHECK_REGEX = "/watchdog/(?P<pver>(\d+[\.\-_]*)+)/"
>
> inherit autotools update-rc.d systemd pkgconfig
>
> -DEPENDS += "libtirpc"
> +DEPENDS += "ntirpc"
> CFLAGS += "-I${STAGING_INCDIR}/tirpc"
> LDFLAGS += "-ltirpc"
>
> diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
> index 057a1ba6ad..2085f742d6 100644
> --- a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
> +++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
> @@ -36,7 +36,7 @@ inherit meson pkgconfig
> inherit features_check
> REQUIRED_DISTRO_FEATURES = "x11"
>
> -LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm libxkbfile libpciaccess libxcvt libtirpc"
> +LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm libxkbfile libpciaccess libxcvt ntirpc"
> DEPENDS = "xorgproto ${LIB_DEPS} font-util"
>
> # Split out some modules and extensions from the main package
> diff --git a/meta/recipes-support/liburcu/liburcu_0.13.1.bb b/meta/recipes-support/liburcu/liburcu_0.13.1.bb
> index 66763349d2..d7e831e803 100644
> --- a/meta/recipes-support/liburcu/liburcu_0.13.1.bb
> +++ b/meta/recipes-support/liburcu/liburcu_0.13.1.bb
> @@ -22,3 +22,4 @@ CPPFLAGS:append:riscv64 = " -pthread -D_REENTRANT"
> do_install:append() {
> oe_multilib_header urcu/config.h
> }
> +BBCLASSEXTEND = "native nativesdk"
> --
> 2.25.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#169934): https://lists.openembedded.org/g/openembedded-core/message/169934
> Mute This Topic: https://lists.openembedded.org/mt/93293557/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [OE-core] [PATCH 1/2] ntirpc: Add ntirpc recipe
2022-08-29 9:59 ` Alexandre Belloni
@ 2022-08-29 10:04 ` Alexandre Belloni
0 siblings, 0 replies; 13+ messages in thread
From: Alexandre Belloni @ 2022-08-29 10:04 UTC (permalink / raw)
To: Paulo Neves; +Cc: openembedded-core
On 29/08/2022 11:59:18+0200, Alexandre Belloni wrote:
> Hello,
>
> This fails on musl:
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/64/builds/5771/steps/11/logs/stdio
Also fails on -alt:
https://autobuilder.yoctoproject.org/typhoon/#/builders/102/builds/3498/steps/12/logs/stdio
>
> On 27/08/2022 19:46:32+0200, Paulo Neves wrote:
> > ntirpc is an actively maintained rpc implementation. We cannot completely
> > remove libtirpc due to arising circular dependencies. libtirpc and ntirpc
> > are not mutually exclusive.
> >
> > Signed-off-by: Paulo Neves <ptsneves@gmail.com>
> > ---
> > meta/recipes-extended/ntirpc/ntirpc_4.0.bb | 30 +++++++++++++++++++
> > meta/recipes-extended/quota/quota_4.06.bb | 2 +-
> > .../recipes-extended/rpcbind/rpcbind_1.2.6.bb | 2 +-
> > .../watchdog/watchdog_5.16.bb | 2 +-
> > .../xorg-xserver/xserver-xorg.inc | 2 +-
> > .../recipes-support/liburcu/liburcu_0.13.1.bb | 1 +
> > 6 files changed, 35 insertions(+), 4 deletions(-)
> > create mode 100644 meta/recipes-extended/ntirpc/ntirpc_4.0.bb
> >
> > diff --git a/meta/recipes-extended/ntirpc/ntirpc_4.0.bb b/meta/recipes-extended/ntirpc/ntirpc_4.0.bb
> > new file mode 100644
> > index 0000000000..edebcb8ca9
> > --- /dev/null
> > +++ b/meta/recipes-extended/ntirpc/ntirpc_4.0.bb
> > @@ -0,0 +1,30 @@
> > +LICENSE = "BSD"
> > +LIC_FILES_CHKSUM = "file://COPYING;md5=f835cce8852481e4b2bbbdd23b5e47f3"
> > +
> > +SRC_URI = "https://download.nfs-ganesha.org/4/${PV}/ntirpc-${PV}.tar.gz"
> > +SRC_URI[md5sum] = "17b0baada54936dcde80eba27bb6d88d"
> > +SRC_URI[sha256sum] = "6a7921cd48d02077b394a02be42bf4f9b4678d4ebfd86a7ae4385bbcdce55462"
> > +
> > +DEPENDS = "liburcu libnsl2"
> > +
> > +inherit cmake pkgconfig
> > +
> > +PACKAGECONFIG[gss] = "-DUSE_GSS=true,-DUSE_GSS=false,krb5"
> > +PACKAGECONFIG[rdma] = "-DUSE_RPC_RDMA=true,-DUSE_RPC_RDMA=false,rdma-core"
> > +PACKAGECONFIG[winbind] = "-D_MSPAC_SUPPORT=true,-D_MSPAC_SUPPORT=false,samba"
> > +PACKAGECONFIG[profile] = "-DUSE_PROFILE=true,-DUSE_PROFILE=false,gperftools"
> > +PACKAGECONFIG[lttng] = "-DUSE_LTTNG=true,-DUSE_LTTNG=false,lttng-ust lttng-tools"
> > +
> > +# Sort out the brain-dead cmake file
> > +# (https://github.com/nfs-ganesha/ntirpc/issues/150)
> > +do_install:append() {
> > + if [ "${prefix}/lib64" != "${libdir}" -a -d ${D}${prefix}/lib64 ]; then
> > + mv ${D}${prefix}/lib64 ${D}${libdir}
> > + fi
> > +}
> > +
> > +BBCLASSEXTEND = "native nativesdk"
> > +EXTRA_OECMAKE:armv5 += '-DSYSTEM_LIBRARIES="-latomic"'
> > +EXTRA_OECMAKE:riscv32 += '-DSYSTEM_LIBRARIES="-latomic"'
> > +EXTRA_OECMAKE:riscv64 += '-DSYSTEM_LIBRARIES="-latomic"'
> > +EXTRA_OECMAKE:powerpc += '-DSYSTEM_LIBRARIES="-latomic"'
> > diff --git a/meta/recipes-extended/quota/quota_4.06.bb b/meta/recipes-extended/quota/quota_4.06.bb
> > index 0535d14c20..304477d72b 100644
> > --- a/meta/recipes-extended/quota/quota_4.06.bb
> > +++ b/meta/recipes-extended/quota/quota_4.06.bb
> > @@ -30,6 +30,6 @@ PACKAGECONFIG ??= "tcp-wrappers rpc bsd"
> > PACKAGECONFIG:libc-musl = "tcp-wrappers rpc"
> >
> > PACKAGECONFIG[tcp-wrappers] = "--enable-libwrap,--disable-libwrap,tcp-wrappers"
> > -PACKAGECONFIG[rpc] = "--enable-rpc,--disable-rpc,libtirpc"
> > +PACKAGECONFIG[rpc] = "--enable-rpc,--disable-rpc,ntirpc"
> > PACKAGECONFIG[bsd] = "--enable-bsd_behaviour=yes,--enable-bsd_behaviour=no,"
> > PACKAGECONFIG[ldapmail] = "--enable-ldapmail,--disable-ldapmail,openldap"
> > diff --git a/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb b/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
> > index dd89726afc..e30a23909c 100644
> > --- a/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
> > +++ b/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
> > @@ -4,7 +4,7 @@ DESCRIPTION = "The rpcbind utility is a server that converts RPC \
> > SECTION = "console/network"
> > HOMEPAGE = "http://sourceforge.net/projects/rpcbind/"
> > BUGTRACKER = "http://sourceforge.net/tracker/?group_id=201237&atid=976751"
> > -DEPENDS = "libtirpc quota"
> > +DEPENDS = "ntirpc quota"
> >
> > LICENSE = "BSD-3-Clause"
> > LIC_FILES_CHKSUM = "file://COPYING;md5=b46486e4c4a416602693a711bb5bfa39 \
> > diff --git a/meta/recipes-extended/watchdog/watchdog_5.16.bb b/meta/recipes-extended/watchdog/watchdog_5.16.bb
> > index 26fcc10487..5f5fd4dc87 100644
> > --- a/meta/recipes-extended/watchdog/watchdog_5.16.bb
> > +++ b/meta/recipes-extended/watchdog/watchdog_5.16.bb
> > @@ -28,7 +28,7 @@ UPSTREAM_CHECK_REGEX = "/watchdog/(?P<pver>(\d+[\.\-_]*)+)/"
> >
> > inherit autotools update-rc.d systemd pkgconfig
> >
> > -DEPENDS += "libtirpc"
> > +DEPENDS += "ntirpc"
> > CFLAGS += "-I${STAGING_INCDIR}/tirpc"
> > LDFLAGS += "-ltirpc"
> >
> > diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
> > index 057a1ba6ad..2085f742d6 100644
> > --- a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
> > +++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
> > @@ -36,7 +36,7 @@ inherit meson pkgconfig
> > inherit features_check
> > REQUIRED_DISTRO_FEATURES = "x11"
> >
> > -LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm libxkbfile libpciaccess libxcvt libtirpc"
> > +LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm libxkbfile libpciaccess libxcvt ntirpc"
> > DEPENDS = "xorgproto ${LIB_DEPS} font-util"
> >
> > # Split out some modules and extensions from the main package
> > diff --git a/meta/recipes-support/liburcu/liburcu_0.13.1.bb b/meta/recipes-support/liburcu/liburcu_0.13.1.bb
> > index 66763349d2..d7e831e803 100644
> > --- a/meta/recipes-support/liburcu/liburcu_0.13.1.bb
> > +++ b/meta/recipes-support/liburcu/liburcu_0.13.1.bb
> > @@ -22,3 +22,4 @@ CPPFLAGS:append:riscv64 = " -pthread -D_REENTRANT"
> > do_install:append() {
> > oe_multilib_header urcu/config.h
> > }
> > +BBCLASSEXTEND = "native nativesdk"
> > --
> > 2.25.1
> >
>
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#169934): https://lists.openembedded.org/g/openembedded-core/message/169934
> > Mute This Topic: https://lists.openembedded.org/mt/93293557/3617179
> > Group Owner: openembedded-core+owner@lists.openembedded.org
> > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
>
>
> --
> Alexandre Belloni, co-owner and COO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [OE-core] [PATCH 1/2] ntirpc: Add ntirpc recipe
2022-08-28 17:40 ` Paulo Neves
@ 2022-08-29 17:48 ` Khem Raj
2022-08-29 18:01 ` Alexander Kanavin
0 siblings, 1 reply; 13+ messages in thread
From: Khem Raj @ 2022-08-29 17:48 UTC (permalink / raw)
To: Paulo Neves, Alexander Kanavin; +Cc: OE-core
On 8/28/22 10:40 AM, Paulo Neves wrote:
> Hello Alexander,
>
> Thank you for your review
>
> I updated the commit message for v2 to contain the following text:
>
> We cannot completely remove libtirpc due to arising circular
> dependencies where ntirpc depends on libnsl2, which in turn depends
> on an RPC implementation.
>
is it core enough to be included into core right away ?
> Paulo Neves
>
> On 8/27/22 20:07, Alexander Kanavin wrote:
>> Can you please explain where the circular dependencies are?
>>
>> Alex
>>
>> On Sat, 27 Aug 2022 at 19:46, Paulo Neves <ptsneves@gmail.com> wrote:
>>> ntirpc is an actively maintained rpc implementation. We cannot
>>> completely
>>> remove libtirpc due to arising circular dependencies. libtirpc and
>>> ntirpc
>>> are not mutually exclusive.
>>>
>>> Signed-off-by: Paulo Neves <ptsneves@gmail.com>
>>> ---
>>> meta/recipes-extended/ntirpc/ntirpc_4.0.bb | 30
>>> +++++++++++++++++++
>>> meta/recipes-extended/quota/quota_4.06.bb | 2 +-
>>> .../recipes-extended/rpcbind/rpcbind_1.2.6.bb | 2 +-
>>> .../watchdog/watchdog_5.16.bb | 2 +-
>>> .../xorg-xserver/xserver-xorg.inc | 2 +-
>>> .../recipes-support/liburcu/liburcu_0.13.1.bb | 1 +
>>> 6 files changed, 35 insertions(+), 4 deletions(-)
>>> create mode 100644 meta/recipes-extended/ntirpc/ntirpc_4.0.bb
>>>
>>> diff --git a/meta/recipes-extended/ntirpc/ntirpc_4.0.bb
>>> b/meta/recipes-extended/ntirpc/ntirpc_4.0.bb
>>> new file mode 100644
>>> index 0000000000..edebcb8ca9
>>> --- /dev/null
>>> +++ b/meta/recipes-extended/ntirpc/ntirpc_4.0.bb
>>> @@ -0,0 +1,30 @@
>>> +LICENSE = "BSD"
>>> +LIC_FILES_CHKSUM =
>>> "file://COPYING;md5=f835cce8852481e4b2bbbdd23b5e47f3"
>>> +
>>> +SRC_URI =
>>> "https://download.nfs-ganesha.org/4/${PV}/ntirpc-${PV}.tar.gz"
>>> +SRC_URI[md5sum] = "17b0baada54936dcde80eba27bb6d88d"
>>> +SRC_URI[sha256sum] =
>>> "6a7921cd48d02077b394a02be42bf4f9b4678d4ebfd86a7ae4385bbcdce55462"
>>> +
>>> +DEPENDS = "liburcu libnsl2"
>>> +
>>> +inherit cmake pkgconfig
>>> +
>>> +PACKAGECONFIG[gss] = "-DUSE_GSS=true,-DUSE_GSS=false,krb5"
>>> +PACKAGECONFIG[rdma] =
>>> "-DUSE_RPC_RDMA=true,-DUSE_RPC_RDMA=false,rdma-core"
>>> +PACKAGECONFIG[winbind] =
>>> "-D_MSPAC_SUPPORT=true,-D_MSPAC_SUPPORT=false,samba"
>>> +PACKAGECONFIG[profile] =
>>> "-DUSE_PROFILE=true,-DUSE_PROFILE=false,gperftools"
>>> +PACKAGECONFIG[lttng] =
>>> "-DUSE_LTTNG=true,-DUSE_LTTNG=false,lttng-ust lttng-tools"
>>> +
>>> +# Sort out the brain-dead cmake file
>>> +# (https://github.com/nfs-ganesha/ntirpc/issues/150)
>>> +do_install:append() {
>>> + if [ "${prefix}/lib64" != "${libdir}" -a -d ${D}${prefix}/lib64
>>> ]; then
>>> + mv ${D}${prefix}/lib64 ${D}${libdir}
>>> + fi
>>> +}
>>> +
>>> +BBCLASSEXTEND = "native nativesdk"
>>> +EXTRA_OECMAKE:armv5 += '-DSYSTEM_LIBRARIES="-latomic"'
>>> +EXTRA_OECMAKE:riscv32 += '-DSYSTEM_LIBRARIES="-latomic"'
>>> +EXTRA_OECMAKE:riscv64 += '-DSYSTEM_LIBRARIES="-latomic"'
>>> +EXTRA_OECMAKE:powerpc += '-DSYSTEM_LIBRARIES="-latomic"'
>>> diff --git a/meta/recipes-extended/quota/quota_4.06.bb
>>> b/meta/recipes-extended/quota/quota_4.06.bb
>>> index 0535d14c20..304477d72b 100644
>>> --- a/meta/recipes-extended/quota/quota_4.06.bb
>>> +++ b/meta/recipes-extended/quota/quota_4.06.bb
>>> @@ -30,6 +30,6 @@ PACKAGECONFIG ??= "tcp-wrappers rpc bsd"
>>> PACKAGECONFIG:libc-musl = "tcp-wrappers rpc"
>>>
>>> PACKAGECONFIG[tcp-wrappers] =
>>> "--enable-libwrap,--disable-libwrap,tcp-wrappers"
>>> -PACKAGECONFIG[rpc] = "--enable-rpc,--disable-rpc,libtirpc"
>>> +PACKAGECONFIG[rpc] = "--enable-rpc,--disable-rpc,ntirpc"
>>> PACKAGECONFIG[bsd] =
>>> "--enable-bsd_behaviour=yes,--enable-bsd_behaviour=no,"
>>> PACKAGECONFIG[ldapmail] =
>>> "--enable-ldapmail,--disable-ldapmail,openldap"
>>> diff --git a/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
>>> b/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
>>> index dd89726afc..e30a23909c 100644
>>> --- a/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
>>> +++ b/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
>>> @@ -4,7 +4,7 @@ DESCRIPTION = "The rpcbind utility is a server that
>>> converts RPC \
>>> SECTION = "console/network"
>>> HOMEPAGE = "http://sourceforge.net/projects/rpcbind/"
>>> BUGTRACKER =
>>> "http://sourceforge.net/tracker/?group_id=201237&atid=976751"
>>> -DEPENDS = "libtirpc quota"
>>> +DEPENDS = "ntirpc quota"
>>>
>>> LICENSE = "BSD-3-Clause"
>>> LIC_FILES_CHKSUM =
>>> "file://COPYING;md5=b46486e4c4a416602693a711bb5bfa39 \
>>> diff --git a/meta/recipes-extended/watchdog/watchdog_5.16.bb
>>> b/meta/recipes-extended/watchdog/watchdog_5.16.bb
>>> index 26fcc10487..5f5fd4dc87 100644
>>> --- a/meta/recipes-extended/watchdog/watchdog_5.16.bb
>>> +++ b/meta/recipes-extended/watchdog/watchdog_5.16.bb
>>> @@ -28,7 +28,7 @@ UPSTREAM_CHECK_REGEX =
>>> "/watchdog/(?P<pver>(\d+[\.\-_]*)+)/"
>>>
>>> inherit autotools update-rc.d systemd pkgconfig
>>>
>>> -DEPENDS += "libtirpc"
>>> +DEPENDS += "ntirpc"
>>> CFLAGS += "-I${STAGING_INCDIR}/tirpc"
>>> LDFLAGS += "-ltirpc"
>>>
>>> diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
>>> b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
>>> index 057a1ba6ad..2085f742d6 100644
>>> --- a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
>>> +++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
>>> @@ -36,7 +36,7 @@ inherit meson pkgconfig
>>> inherit features_check
>>> REQUIRED_DISTRO_FEATURES = "x11"
>>>
>>> -LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm
>>> libxkbfile libpciaccess libxcvt libtirpc"
>>> +LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm
>>> libxkbfile libpciaccess libxcvt ntirpc"
>>> DEPENDS = "xorgproto ${LIB_DEPS} font-util"
>>>
>>> # Split out some modules and extensions from the main package
>>> diff --git a/meta/recipes-support/liburcu/liburcu_0.13.1.bb
>>> b/meta/recipes-support/liburcu/liburcu_0.13.1.bb
>>> index 66763349d2..d7e831e803 100644
>>> --- a/meta/recipes-support/liburcu/liburcu_0.13.1.bb
>>> +++ b/meta/recipes-support/liburcu/liburcu_0.13.1.bb
>>> @@ -22,3 +22,4 @@ CPPFLAGS:append:riscv64 = " -pthread -D_REENTRANT"
>>> do_install:append() {
>>> oe_multilib_header urcu/config.h
>>> }
>>> +BBCLASSEXTEND = "native nativesdk"
>>> --
>>> 2.25.1
>>>
>>>
>>>
>>>
>
>
>
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [OE-core] [PATCH 1/2] ntirpc: Add ntirpc recipe
2022-08-29 17:48 ` Khem Raj
@ 2022-08-29 18:01 ` Alexander Kanavin
2022-08-29 18:02 ` Paulo Neves
0 siblings, 1 reply; 13+ messages in thread
From: Alexander Kanavin @ 2022-08-29 18:01 UTC (permalink / raw)
To: Khem Raj; +Cc: Paulo Neves, OE-core
I think the rationale is that the implementation it replaces is not
anymore maintained?
Alex
On Mon, 29 Aug 2022 at 19:48, Khem Raj <raj.khem@gmail.com> wrote:
>
>
> On 8/28/22 10:40 AM, Paulo Neves wrote:
> > Hello Alexander,
> >
> > Thank you for your review
> >
> > I updated the commit message for v2 to contain the following text:
> >
> > We cannot completely remove libtirpc due to arising circular
> > dependencies where ntirpc depends on libnsl2, which in turn depends
> > on an RPC implementation.
> >
>
> is it core enough to be included into core right away ?
>
>
> > Paulo Neves
> >
> > On 8/27/22 20:07, Alexander Kanavin wrote:
> >> Can you please explain where the circular dependencies are?
> >>
> >> Alex
> >>
> >> On Sat, 27 Aug 2022 at 19:46, Paulo Neves <ptsneves@gmail.com> wrote:
> >>> ntirpc is an actively maintained rpc implementation. We cannot
> >>> completely
> >>> remove libtirpc due to arising circular dependencies. libtirpc and
> >>> ntirpc
> >>> are not mutually exclusive.
> >>>
> >>> Signed-off-by: Paulo Neves <ptsneves@gmail.com>
> >>> ---
> >>> meta/recipes-extended/ntirpc/ntirpc_4.0.bb | 30
> >>> +++++++++++++++++++
> >>> meta/recipes-extended/quota/quota_4.06.bb | 2 +-
> >>> .../recipes-extended/rpcbind/rpcbind_1.2.6.bb | 2 +-
> >>> .../watchdog/watchdog_5.16.bb | 2 +-
> >>> .../xorg-xserver/xserver-xorg.inc | 2 +-
> >>> .../recipes-support/liburcu/liburcu_0.13.1.bb | 1 +
> >>> 6 files changed, 35 insertions(+), 4 deletions(-)
> >>> create mode 100644 meta/recipes-extended/ntirpc/ntirpc_4.0.bb
> >>>
> >>> diff --git a/meta/recipes-extended/ntirpc/ntirpc_4.0.bb
> >>> b/meta/recipes-extended/ntirpc/ntirpc_4.0.bb
> >>> new file mode 100644
> >>> index 0000000000..edebcb8ca9
> >>> --- /dev/null
> >>> +++ b/meta/recipes-extended/ntirpc/ntirpc_4.0.bb
> >>> @@ -0,0 +1,30 @@
> >>> +LICENSE = "BSD"
> >>> +LIC_FILES_CHKSUM =
> >>> "file://COPYING;md5=f835cce8852481e4b2bbbdd23b5e47f3"
> >>> +
> >>> +SRC_URI =
> >>> "https://download.nfs-ganesha.org/4/${PV}/ntirpc-${PV}.tar.gz"
> >>> +SRC_URI[md5sum] = "17b0baada54936dcde80eba27bb6d88d"
> >>> +SRC_URI[sha256sum] =
> >>> "6a7921cd48d02077b394a02be42bf4f9b4678d4ebfd86a7ae4385bbcdce55462"
> >>> +
> >>> +DEPENDS = "liburcu libnsl2"
> >>> +
> >>> +inherit cmake pkgconfig
> >>> +
> >>> +PACKAGECONFIG[gss] = "-DUSE_GSS=true,-DUSE_GSS=false,krb5"
> >>> +PACKAGECONFIG[rdma] =
> >>> "-DUSE_RPC_RDMA=true,-DUSE_RPC_RDMA=false,rdma-core"
> >>> +PACKAGECONFIG[winbind] =
> >>> "-D_MSPAC_SUPPORT=true,-D_MSPAC_SUPPORT=false,samba"
> >>> +PACKAGECONFIG[profile] =
> >>> "-DUSE_PROFILE=true,-DUSE_PROFILE=false,gperftools"
> >>> +PACKAGECONFIG[lttng] =
> >>> "-DUSE_LTTNG=true,-DUSE_LTTNG=false,lttng-ust lttng-tools"
> >>> +
> >>> +# Sort out the brain-dead cmake file
> >>> +# (https://github.com/nfs-ganesha/ntirpc/issues/150)
> >>> +do_install:append() {
> >>> + if [ "${prefix}/lib64" != "${libdir}" -a -d ${D}${prefix}/lib64
> >>> ]; then
> >>> + mv ${D}${prefix}/lib64 ${D}${libdir}
> >>> + fi
> >>> +}
> >>> +
> >>> +BBCLASSEXTEND = "native nativesdk"
> >>> +EXTRA_OECMAKE:armv5 += '-DSYSTEM_LIBRARIES="-latomic"'
> >>> +EXTRA_OECMAKE:riscv32 += '-DSYSTEM_LIBRARIES="-latomic"'
> >>> +EXTRA_OECMAKE:riscv64 += '-DSYSTEM_LIBRARIES="-latomic"'
> >>> +EXTRA_OECMAKE:powerpc += '-DSYSTEM_LIBRARIES="-latomic"'
> >>> diff --git a/meta/recipes-extended/quota/quota_4.06.bb
> >>> b/meta/recipes-extended/quota/quota_4.06.bb
> >>> index 0535d14c20..304477d72b 100644
> >>> --- a/meta/recipes-extended/quota/quota_4.06.bb
> >>> +++ b/meta/recipes-extended/quota/quota_4.06.bb
> >>> @@ -30,6 +30,6 @@ PACKAGECONFIG ??= "tcp-wrappers rpc bsd"
> >>> PACKAGECONFIG:libc-musl = "tcp-wrappers rpc"
> >>>
> >>> PACKAGECONFIG[tcp-wrappers] =
> >>> "--enable-libwrap,--disable-libwrap,tcp-wrappers"
> >>> -PACKAGECONFIG[rpc] = "--enable-rpc,--disable-rpc,libtirpc"
> >>> +PACKAGECONFIG[rpc] = "--enable-rpc,--disable-rpc,ntirpc"
> >>> PACKAGECONFIG[bsd] =
> >>> "--enable-bsd_behaviour=yes,--enable-bsd_behaviour=no,"
> >>> PACKAGECONFIG[ldapmail] =
> >>> "--enable-ldapmail,--disable-ldapmail,openldap"
> >>> diff --git a/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
> >>> b/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
> >>> index dd89726afc..e30a23909c 100644
> >>> --- a/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
> >>> +++ b/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
> >>> @@ -4,7 +4,7 @@ DESCRIPTION = "The rpcbind utility is a server that
> >>> converts RPC \
> >>> SECTION = "console/network"
> >>> HOMEPAGE = "http://sourceforge.net/projects/rpcbind/"
> >>> BUGTRACKER =
> >>> "http://sourceforge.net/tracker/?group_id=201237&atid=976751"
> >>> -DEPENDS = "libtirpc quota"
> >>> +DEPENDS = "ntirpc quota"
> >>>
> >>> LICENSE = "BSD-3-Clause"
> >>> LIC_FILES_CHKSUM =
> >>> "file://COPYING;md5=b46486e4c4a416602693a711bb5bfa39 \
> >>> diff --git a/meta/recipes-extended/watchdog/watchdog_5.16.bb
> >>> b/meta/recipes-extended/watchdog/watchdog_5.16.bb
> >>> index 26fcc10487..5f5fd4dc87 100644
> >>> --- a/meta/recipes-extended/watchdog/watchdog_5.16.bb
> >>> +++ b/meta/recipes-extended/watchdog/watchdog_5.16.bb
> >>> @@ -28,7 +28,7 @@ UPSTREAM_CHECK_REGEX =
> >>> "/watchdog/(?P<pver>(\d+[\.\-_]*)+)/"
> >>>
> >>> inherit autotools update-rc.d systemd pkgconfig
> >>>
> >>> -DEPENDS += "libtirpc"
> >>> +DEPENDS += "ntirpc"
> >>> CFLAGS += "-I${STAGING_INCDIR}/tirpc"
> >>> LDFLAGS += "-ltirpc"
> >>>
> >>> diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
> >>> b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
> >>> index 057a1ba6ad..2085f742d6 100644
> >>> --- a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
> >>> +++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
> >>> @@ -36,7 +36,7 @@ inherit meson pkgconfig
> >>> inherit features_check
> >>> REQUIRED_DISTRO_FEATURES = "x11"
> >>>
> >>> -LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm
> >>> libxkbfile libpciaccess libxcvt libtirpc"
> >>> +LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm
> >>> libxkbfile libpciaccess libxcvt ntirpc"
> >>> DEPENDS = "xorgproto ${LIB_DEPS} font-util"
> >>>
> >>> # Split out some modules and extensions from the main package
> >>> diff --git a/meta/recipes-support/liburcu/liburcu_0.13.1.bb
> >>> b/meta/recipes-support/liburcu/liburcu_0.13.1.bb
> >>> index 66763349d2..d7e831e803 100644
> >>> --- a/meta/recipes-support/liburcu/liburcu_0.13.1.bb
> >>> +++ b/meta/recipes-support/liburcu/liburcu_0.13.1.bb
> >>> @@ -22,3 +22,4 @@ CPPFLAGS:append:riscv64 = " -pthread -D_REENTRANT"
> >>> do_install:append() {
> >>> oe_multilib_header urcu/config.h
> >>> }
> >>> +BBCLASSEXTEND = "native nativesdk"
> >>> --
> >>> 2.25.1
> >>>
> >>>
> >>>
> >>>
> >
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#169991): https://lists.openembedded.org/g/openembedded-core/message/169991
> > Mute This Topic: https://lists.openembedded.org/mt/93293557/1997914
> > Group Owner: openembedded-core+owner@lists.openembedded.org
> > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [OE-core] [PATCH 1/2] ntirpc: Add ntirpc recipe
2022-08-29 18:01 ` Alexander Kanavin
@ 2022-08-29 18:02 ` Paulo Neves
2022-08-29 18:35 ` Khem Raj
0 siblings, 1 reply; 13+ messages in thread
From: Paulo Neves @ 2022-08-29 18:02 UTC (permalink / raw)
To: Alexander Kanavin, Khem Raj; +Cc: OE-core
No. The rationale for ntirpc is that it is a dependency of nfs-ganesha,
which in turn is the implementation not maintained.
Paulo Neves
On 8/29/22 20:01, Alexander Kanavin wrote:
> I think the rationale is that the implementation it replaces is not
> anymore maintained?
>
> Alex
>
> On Mon, 29 Aug 2022 at 19:48, Khem Raj <raj.khem@gmail.com> wrote:
>>
>> On 8/28/22 10:40 AM, Paulo Neves wrote:
>>> Hello Alexander,
>>>
>>> Thank you for your review
>>>
>>> I updated the commit message for v2 to contain the following text:
>>>
>>> We cannot completely remove libtirpc due to arising circular
>>> dependencies where ntirpc depends on libnsl2, which in turn depends
>>> on an RPC implementation.
>>>
>> is it core enough to be included into core right away ?
>>
>>
>>> Paulo Neves
>>>
>>> On 8/27/22 20:07, Alexander Kanavin wrote:
>>>> Can you please explain where the circular dependencies are?
>>>>
>>>> Alex
>>>>
>>>> On Sat, 27 Aug 2022 at 19:46, Paulo Neves <ptsneves@gmail.com> wrote:
>>>>> ntirpc is an actively maintained rpc implementation. We cannot
>>>>> completely
>>>>> remove libtirpc due to arising circular dependencies. libtirpc and
>>>>> ntirpc
>>>>> are not mutually exclusive.
>>>>>
>>>>> Signed-off-by: Paulo Neves <ptsneves@gmail.com>
>>>>> ---
>>>>> meta/recipes-extended/ntirpc/ntirpc_4.0.bb | 30
>>>>> +++++++++++++++++++
>>>>> meta/recipes-extended/quota/quota_4.06.bb | 2 +-
>>>>> .../recipes-extended/rpcbind/rpcbind_1.2.6.bb | 2 +-
>>>>> .../watchdog/watchdog_5.16.bb | 2 +-
>>>>> .../xorg-xserver/xserver-xorg.inc | 2 +-
>>>>> .../recipes-support/liburcu/liburcu_0.13.1.bb | 1 +
>>>>> 6 files changed, 35 insertions(+), 4 deletions(-)
>>>>> create mode 100644 meta/recipes-extended/ntirpc/ntirpc_4.0.bb
>>>>>
>>>>> diff --git a/meta/recipes-extended/ntirpc/ntirpc_4.0.bb
>>>>> b/meta/recipes-extended/ntirpc/ntirpc_4.0.bb
>>>>> new file mode 100644
>>>>> index 0000000000..edebcb8ca9
>>>>> --- /dev/null
>>>>> +++ b/meta/recipes-extended/ntirpc/ntirpc_4.0.bb
>>>>> @@ -0,0 +1,30 @@
>>>>> +LICENSE = "BSD"
>>>>> +LIC_FILES_CHKSUM =
>>>>> "file://COPYING;md5=f835cce8852481e4b2bbbdd23b5e47f3"
>>>>> +
>>>>> +SRC_URI =
>>>>> "https://download.nfs-ganesha.org/4/${PV}/ntirpc-${PV}.tar.gz"
>>>>> +SRC_URI[md5sum] = "17b0baada54936dcde80eba27bb6d88d"
>>>>> +SRC_URI[sha256sum] =
>>>>> "6a7921cd48d02077b394a02be42bf4f9b4678d4ebfd86a7ae4385bbcdce55462"
>>>>> +
>>>>> +DEPENDS = "liburcu libnsl2"
>>>>> +
>>>>> +inherit cmake pkgconfig
>>>>> +
>>>>> +PACKAGECONFIG[gss] = "-DUSE_GSS=true,-DUSE_GSS=false,krb5"
>>>>> +PACKAGECONFIG[rdma] =
>>>>> "-DUSE_RPC_RDMA=true,-DUSE_RPC_RDMA=false,rdma-core"
>>>>> +PACKAGECONFIG[winbind] =
>>>>> "-D_MSPAC_SUPPORT=true,-D_MSPAC_SUPPORT=false,samba"
>>>>> +PACKAGECONFIG[profile] =
>>>>> "-DUSE_PROFILE=true,-DUSE_PROFILE=false,gperftools"
>>>>> +PACKAGECONFIG[lttng] =
>>>>> "-DUSE_LTTNG=true,-DUSE_LTTNG=false,lttng-ust lttng-tools"
>>>>> +
>>>>> +# Sort out the brain-dead cmake file
>>>>> +# (https://github.com/nfs-ganesha/ntirpc/issues/150)
>>>>> +do_install:append() {
>>>>> + if [ "${prefix}/lib64" != "${libdir}" -a -d ${D}${prefix}/lib64
>>>>> ]; then
>>>>> + mv ${D}${prefix}/lib64 ${D}${libdir}
>>>>> + fi
>>>>> +}
>>>>> +
>>>>> +BBCLASSEXTEND = "native nativesdk"
>>>>> +EXTRA_OECMAKE:armv5 += '-DSYSTEM_LIBRARIES="-latomic"'
>>>>> +EXTRA_OECMAKE:riscv32 += '-DSYSTEM_LIBRARIES="-latomic"'
>>>>> +EXTRA_OECMAKE:riscv64 += '-DSYSTEM_LIBRARIES="-latomic"'
>>>>> +EXTRA_OECMAKE:powerpc += '-DSYSTEM_LIBRARIES="-latomic"'
>>>>> diff --git a/meta/recipes-extended/quota/quota_4.06.bb
>>>>> b/meta/recipes-extended/quota/quota_4.06.bb
>>>>> index 0535d14c20..304477d72b 100644
>>>>> --- a/meta/recipes-extended/quota/quota_4.06.bb
>>>>> +++ b/meta/recipes-extended/quota/quota_4.06.bb
>>>>> @@ -30,6 +30,6 @@ PACKAGECONFIG ??= "tcp-wrappers rpc bsd"
>>>>> PACKAGECONFIG:libc-musl = "tcp-wrappers rpc"
>>>>>
>>>>> PACKAGECONFIG[tcp-wrappers] =
>>>>> "--enable-libwrap,--disable-libwrap,tcp-wrappers"
>>>>> -PACKAGECONFIG[rpc] = "--enable-rpc,--disable-rpc,libtirpc"
>>>>> +PACKAGECONFIG[rpc] = "--enable-rpc,--disable-rpc,ntirpc"
>>>>> PACKAGECONFIG[bsd] =
>>>>> "--enable-bsd_behaviour=yes,--enable-bsd_behaviour=no,"
>>>>> PACKAGECONFIG[ldapmail] =
>>>>> "--enable-ldapmail,--disable-ldapmail,openldap"
>>>>> diff --git a/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
>>>>> b/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
>>>>> index dd89726afc..e30a23909c 100644
>>>>> --- a/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
>>>>> +++ b/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
>>>>> @@ -4,7 +4,7 @@ DESCRIPTION = "The rpcbind utility is a server that
>>>>> converts RPC \
>>>>> SECTION = "console/network"
>>>>> HOMEPAGE = "http://sourceforge.net/projects/rpcbind/"
>>>>> BUGTRACKER =
>>>>> "http://sourceforge.net/tracker/?group_id=201237&atid=976751"
>>>>> -DEPENDS = "libtirpc quota"
>>>>> +DEPENDS = "ntirpc quota"
>>>>>
>>>>> LICENSE = "BSD-3-Clause"
>>>>> LIC_FILES_CHKSUM =
>>>>> "file://COPYING;md5=b46486e4c4a416602693a711bb5bfa39 \
>>>>> diff --git a/meta/recipes-extended/watchdog/watchdog_5.16.bb
>>>>> b/meta/recipes-extended/watchdog/watchdog_5.16.bb
>>>>> index 26fcc10487..5f5fd4dc87 100644
>>>>> --- a/meta/recipes-extended/watchdog/watchdog_5.16.bb
>>>>> +++ b/meta/recipes-extended/watchdog/watchdog_5.16.bb
>>>>> @@ -28,7 +28,7 @@ UPSTREAM_CHECK_REGEX =
>>>>> "/watchdog/(?P<pver>(\d+[\.\-_]*)+)/"
>>>>>
>>>>> inherit autotools update-rc.d systemd pkgconfig
>>>>>
>>>>> -DEPENDS += "libtirpc"
>>>>> +DEPENDS += "ntirpc"
>>>>> CFLAGS += "-I${STAGING_INCDIR}/tirpc"
>>>>> LDFLAGS += "-ltirpc"
>>>>>
>>>>> diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
>>>>> b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
>>>>> index 057a1ba6ad..2085f742d6 100644
>>>>> --- a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
>>>>> +++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
>>>>> @@ -36,7 +36,7 @@ inherit meson pkgconfig
>>>>> inherit features_check
>>>>> REQUIRED_DISTRO_FEATURES = "x11"
>>>>>
>>>>> -LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm
>>>>> libxkbfile libpciaccess libxcvt libtirpc"
>>>>> +LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm
>>>>> libxkbfile libpciaccess libxcvt ntirpc"
>>>>> DEPENDS = "xorgproto ${LIB_DEPS} font-util"
>>>>>
>>>>> # Split out some modules and extensions from the main package
>>>>> diff --git a/meta/recipes-support/liburcu/liburcu_0.13.1.bb
>>>>> b/meta/recipes-support/liburcu/liburcu_0.13.1.bb
>>>>> index 66763349d2..d7e831e803 100644
>>>>> --- a/meta/recipes-support/liburcu/liburcu_0.13.1.bb
>>>>> +++ b/meta/recipes-support/liburcu/liburcu_0.13.1.bb
>>>>> @@ -22,3 +22,4 @@ CPPFLAGS:append:riscv64 = " -pthread -D_REENTRANT"
>>>>> do_install:append() {
>>>>> oe_multilib_header urcu/config.h
>>>>> }
>>>>> +BBCLASSEXTEND = "native nativesdk"
>>>>> --
>>>>> 2.25.1
>>>>>
>>>>>
>>>>>
>>>>>
>>>
>>> -=-=-=-=-=-=-=-=-=-=-=-
>>> Links: You receive all messages sent to this group.
>>> View/Reply Online (#169991): https://lists.openembedded.org/g/openembedded-core/message/169991
>>> Mute This Topic: https://lists.openembedded.org/mt/93293557/1997914
>>> Group Owner: openembedded-core+owner@lists.openembedded.org
>>> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com]
>>> -=-=-=-=-=-=-=-=-=-=-=-
>>>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [OE-core] [PATCH 1/2] ntirpc: Add ntirpc recipe
2022-08-29 18:02 ` Paulo Neves
@ 2022-08-29 18:35 ` Khem Raj
0 siblings, 0 replies; 13+ messages in thread
From: Khem Raj @ 2022-08-29 18:35 UTC (permalink / raw)
To: Paulo Neves; +Cc: Alexander Kanavin, OE-core
On Mon, Aug 29, 2022 at 11:02 AM Paulo Neves <ptsneves@gmail.com> wrote:
>
> No. The rationale for ntirpc is that it is a dependency of nfs-ganesha,
> which in turn is the implementation not maintained.
>
OK in that case we should also try to adjust it as a virtual/rpc
provider if it has potential to replace libtirpc in due course
> Paulo Neves
>
> On 8/29/22 20:01, Alexander Kanavin wrote:
> > I think the rationale is that the implementation it replaces is not
> > anymore maintained?
> >
> > Alex
> >
> > On Mon, 29 Aug 2022 at 19:48, Khem Raj <raj.khem@gmail.com> wrote:
> >>
> >> On 8/28/22 10:40 AM, Paulo Neves wrote:
> >>> Hello Alexander,
> >>>
> >>> Thank you for your review
> >>>
> >>> I updated the commit message for v2 to contain the following text:
> >>>
> >>> We cannot completely remove libtirpc due to arising circular
> >>> dependencies where ntirpc depends on libnsl2, which in turn depends
> >>> on an RPC implementation.
> >>>
> >> is it core enough to be included into core right away ?
> >>
> >>
> >>> Paulo Neves
> >>>
> >>> On 8/27/22 20:07, Alexander Kanavin wrote:
> >>>> Can you please explain where the circular dependencies are?
> >>>>
> >>>> Alex
> >>>>
> >>>> On Sat, 27 Aug 2022 at 19:46, Paulo Neves <ptsneves@gmail.com> wrote:
> >>>>> ntirpc is an actively maintained rpc implementation. We cannot
> >>>>> completely
> >>>>> remove libtirpc due to arising circular dependencies. libtirpc and
> >>>>> ntirpc
> >>>>> are not mutually exclusive.
> >>>>>
> >>>>> Signed-off-by: Paulo Neves <ptsneves@gmail.com>
> >>>>> ---
> >>>>> meta/recipes-extended/ntirpc/ntirpc_4.0.bb | 30
> >>>>> +++++++++++++++++++
> >>>>> meta/recipes-extended/quota/quota_4.06.bb | 2 +-
> >>>>> .../recipes-extended/rpcbind/rpcbind_1.2.6.bb | 2 +-
> >>>>> .../watchdog/watchdog_5.16.bb | 2 +-
> >>>>> .../xorg-xserver/xserver-xorg.inc | 2 +-
> >>>>> .../recipes-support/liburcu/liburcu_0.13.1.bb | 1 +
> >>>>> 6 files changed, 35 insertions(+), 4 deletions(-)
> >>>>> create mode 100644 meta/recipes-extended/ntirpc/ntirpc_4.0.bb
> >>>>>
> >>>>> diff --git a/meta/recipes-extended/ntirpc/ntirpc_4.0.bb
> >>>>> b/meta/recipes-extended/ntirpc/ntirpc_4.0.bb
> >>>>> new file mode 100644
> >>>>> index 0000000000..edebcb8ca9
> >>>>> --- /dev/null
> >>>>> +++ b/meta/recipes-extended/ntirpc/ntirpc_4.0.bb
> >>>>> @@ -0,0 +1,30 @@
> >>>>> +LICENSE = "BSD"
> >>>>> +LIC_FILES_CHKSUM =
> >>>>> "file://COPYING;md5=f835cce8852481e4b2bbbdd23b5e47f3"
> >>>>> +
> >>>>> +SRC_URI =
> >>>>> "https://download.nfs-ganesha.org/4/${PV}/ntirpc-${PV}.tar.gz"
> >>>>> +SRC_URI[md5sum] = "17b0baada54936dcde80eba27bb6d88d"
> >>>>> +SRC_URI[sha256sum] =
> >>>>> "6a7921cd48d02077b394a02be42bf4f9b4678d4ebfd86a7ae4385bbcdce55462"
> >>>>> +
> >>>>> +DEPENDS = "liburcu libnsl2"
> >>>>> +
> >>>>> +inherit cmake pkgconfig
> >>>>> +
> >>>>> +PACKAGECONFIG[gss] = "-DUSE_GSS=true,-DUSE_GSS=false,krb5"
> >>>>> +PACKAGECONFIG[rdma] =
> >>>>> "-DUSE_RPC_RDMA=true,-DUSE_RPC_RDMA=false,rdma-core"
> >>>>> +PACKAGECONFIG[winbind] =
> >>>>> "-D_MSPAC_SUPPORT=true,-D_MSPAC_SUPPORT=false,samba"
> >>>>> +PACKAGECONFIG[profile] =
> >>>>> "-DUSE_PROFILE=true,-DUSE_PROFILE=false,gperftools"
> >>>>> +PACKAGECONFIG[lttng] =
> >>>>> "-DUSE_LTTNG=true,-DUSE_LTTNG=false,lttng-ust lttng-tools"
> >>>>> +
> >>>>> +# Sort out the brain-dead cmake file
> >>>>> +# (https://github.com/nfs-ganesha/ntirpc/issues/150)
> >>>>> +do_install:append() {
> >>>>> + if [ "${prefix}/lib64" != "${libdir}" -a -d ${D}${prefix}/lib64
> >>>>> ]; then
> >>>>> + mv ${D}${prefix}/lib64 ${D}${libdir}
> >>>>> + fi
> >>>>> +}
> >>>>> +
> >>>>> +BBCLASSEXTEND = "native nativesdk"
> >>>>> +EXTRA_OECMAKE:armv5 += '-DSYSTEM_LIBRARIES="-latomic"'
> >>>>> +EXTRA_OECMAKE:riscv32 += '-DSYSTEM_LIBRARIES="-latomic"'
> >>>>> +EXTRA_OECMAKE:riscv64 += '-DSYSTEM_LIBRARIES="-latomic"'
> >>>>> +EXTRA_OECMAKE:powerpc += '-DSYSTEM_LIBRARIES="-latomic"'
> >>>>> diff --git a/meta/recipes-extended/quota/quota_4.06.bb
> >>>>> b/meta/recipes-extended/quota/quota_4.06.bb
> >>>>> index 0535d14c20..304477d72b 100644
> >>>>> --- a/meta/recipes-extended/quota/quota_4.06.bb
> >>>>> +++ b/meta/recipes-extended/quota/quota_4.06.bb
> >>>>> @@ -30,6 +30,6 @@ PACKAGECONFIG ??= "tcp-wrappers rpc bsd"
> >>>>> PACKAGECONFIG:libc-musl = "tcp-wrappers rpc"
> >>>>>
> >>>>> PACKAGECONFIG[tcp-wrappers] =
> >>>>> "--enable-libwrap,--disable-libwrap,tcp-wrappers"
> >>>>> -PACKAGECONFIG[rpc] = "--enable-rpc,--disable-rpc,libtirpc"
> >>>>> +PACKAGECONFIG[rpc] = "--enable-rpc,--disable-rpc,ntirpc"
> >>>>> PACKAGECONFIG[bsd] =
> >>>>> "--enable-bsd_behaviour=yes,--enable-bsd_behaviour=no,"
> >>>>> PACKAGECONFIG[ldapmail] =
> >>>>> "--enable-ldapmail,--disable-ldapmail,openldap"
> >>>>> diff --git a/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
> >>>>> b/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
> >>>>> index dd89726afc..e30a23909c 100644
> >>>>> --- a/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
> >>>>> +++ b/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
> >>>>> @@ -4,7 +4,7 @@ DESCRIPTION = "The rpcbind utility is a server that
> >>>>> converts RPC \
> >>>>> SECTION = "console/network"
> >>>>> HOMEPAGE = "http://sourceforge.net/projects/rpcbind/"
> >>>>> BUGTRACKER =
> >>>>> "http://sourceforge.net/tracker/?group_id=201237&atid=976751"
> >>>>> -DEPENDS = "libtirpc quota"
> >>>>> +DEPENDS = "ntirpc quota"
> >>>>>
> >>>>> LICENSE = "BSD-3-Clause"
> >>>>> LIC_FILES_CHKSUM =
> >>>>> "file://COPYING;md5=b46486e4c4a416602693a711bb5bfa39 \
> >>>>> diff --git a/meta/recipes-extended/watchdog/watchdog_5.16.bb
> >>>>> b/meta/recipes-extended/watchdog/watchdog_5.16.bb
> >>>>> index 26fcc10487..5f5fd4dc87 100644
> >>>>> --- a/meta/recipes-extended/watchdog/watchdog_5.16.bb
> >>>>> +++ b/meta/recipes-extended/watchdog/watchdog_5.16.bb
> >>>>> @@ -28,7 +28,7 @@ UPSTREAM_CHECK_REGEX =
> >>>>> "/watchdog/(?P<pver>(\d+[\.\-_]*)+)/"
> >>>>>
> >>>>> inherit autotools update-rc.d systemd pkgconfig
> >>>>>
> >>>>> -DEPENDS += "libtirpc"
> >>>>> +DEPENDS += "ntirpc"
> >>>>> CFLAGS += "-I${STAGING_INCDIR}/tirpc"
> >>>>> LDFLAGS += "-ltirpc"
> >>>>>
> >>>>> diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
> >>>>> b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
> >>>>> index 057a1ba6ad..2085f742d6 100644
> >>>>> --- a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
> >>>>> +++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
> >>>>> @@ -36,7 +36,7 @@ inherit meson pkgconfig
> >>>>> inherit features_check
> >>>>> REQUIRED_DISTRO_FEATURES = "x11"
> >>>>>
> >>>>> -LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm
> >>>>> libxkbfile libpciaccess libxcvt libtirpc"
> >>>>> +LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm
> >>>>> libxkbfile libpciaccess libxcvt ntirpc"
> >>>>> DEPENDS = "xorgproto ${LIB_DEPS} font-util"
> >>>>>
> >>>>> # Split out some modules and extensions from the main package
> >>>>> diff --git a/meta/recipes-support/liburcu/liburcu_0.13.1.bb
> >>>>> b/meta/recipes-support/liburcu/liburcu_0.13.1.bb
> >>>>> index 66763349d2..d7e831e803 100644
> >>>>> --- a/meta/recipes-support/liburcu/liburcu_0.13.1.bb
> >>>>> +++ b/meta/recipes-support/liburcu/liburcu_0.13.1.bb
> >>>>> @@ -22,3 +22,4 @@ CPPFLAGS:append:riscv64 = " -pthread -D_REENTRANT"
> >>>>> do_install:append() {
> >>>>> oe_multilib_header urcu/config.h
> >>>>> }
> >>>>> +BBCLASSEXTEND = "native nativesdk"
> >>>>> --
> >>>>> 2.25.1
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>
> >>> -=-=-=-=-=-=-=-=-=-=-=-
> >>> Links: You receive all messages sent to this group.
> >>> View/Reply Online (#169991): https://lists.openembedded.org/g/openembedded-core/message/169991
> >>> Mute This Topic: https://lists.openembedded.org/mt/93293557/1997914
> >>> Group Owner: openembedded-core+owner@lists.openembedded.org
> >>> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com]
> >>> -=-=-=-=-=-=-=-=-=-=-=-
> >>>
>
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2022-08-29 18:35 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-27 17:46 [PATCH 1/2] ntirpc: Add ntirpc recipe Paulo Neves
2022-08-27 17:46 ` [PATCH 2/2] nfs-ganesha: Replace unfs3 with nfs-ganesha Paulo Neves
2022-08-27 18:06 ` [OE-core] " Alexander Kanavin
2022-08-28 17:44 ` Paulo Neves
2022-08-27 18:07 ` [OE-core] [PATCH 1/2] ntirpc: Add ntirpc recipe Alexander Kanavin
2022-08-27 18:08 ` Alexander Kanavin
2022-08-28 17:40 ` Paulo Neves
2022-08-29 17:48 ` Khem Raj
2022-08-29 18:01 ` Alexander Kanavin
2022-08-29 18:02 ` Paulo Neves
2022-08-29 18:35 ` Khem Raj
2022-08-29 9:59 ` Alexandre Belloni
2022-08-29 10:04 ` Alexandre Belloni
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.