From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: Paulo Neves <ptsneves@gmail.com>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [OE-core] [PATCH v3 2/2] nfs-ganesha: Replace unfs3 with nfs-ganesha
Date: Mon, 29 Aug 2022 11:20:34 +0200 [thread overview]
Message-ID: <YwyE4kgi/GFRQPvX@mail.local> (raw)
In-Reply-To: <20220828174356.3074391-2-ptsneves@gmail.com>
Hello,
On 28/08/2022 19:43:56+0200, Paulo Neves wrote:
> nfs-ganesha is actively maintained in contrast with unfs3. glibc tests
> pass with nfs-ganesha.
>
This fails with:
ERROR: Nothing PROVIDES 'unfs3-native' (but /home/pokybuild/yocto-worker/beaglebone/build/meta/recipes-core/meta/meta-extsdk-toolchain.bb DEPENDS on or otherwise requires it). Close matches:
dnf-native
nasm-native
rust-native
https://autobuilder.yoctoproject.org/typhoon/#/builders/65/builds/5816/steps/11/logs/stdio
> Signed-off-by: Paulo Neves <ptsneves@gmail.com>
> ---
> meta/lib/oeqa/utils/nfs.py | 2 +-
> ...ix-possible-null-pointer-dereference.patch | 38 +++++
> ...-Workaround-for-erroneous-gcc-Werror.patch | 33 ++++
> ...ke-nfsv3_optype-guarded-by-_USE_NFS3.patch | 35 ++++
> .../nfs-ganesha/nfs-ganesha/module.patch | 27 +++
> .../nfs-ganesha/nfs-ganesha_4.0.bb | 44 +++++
> ...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, 178 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..6c98a8a59e
> --- /dev/null
> +++ b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0001-Fix-possible-null-pointer-dereference.patch
> @@ -0,0 +1,38 @@
> +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: Submitted [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..97010d2a6f
> --- /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 above]
> +
> +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..4c622f3c64
> --- /dev/null
> +++ b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha/0003-Make-nfsv3_optype-guarded-by-_USE_NFS3.patch
> @@ -0,0 +1,35 @@
> +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: Submitted [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..ea9e9b0e55
> --- /dev/null
> +++ b/meta/recipes-connectivity/nfs-ganesha/nfs-ganesha_4.0.bb
> @@ -0,0 +1,44 @@
> +SUMMARY = "NFS fileserve implementation"
> +DESCRIPTION = "NFS-Ganesha is an NFSv3,v4,v4.1 fileserver that runs in user mode on most UNIX/Linux systems"
> +HOMEPAGE = "https://github.com/nfs-ganesha/nfs-ganesha/wiki"
> +LICENSE = "LGPL-3.0-only & BSD-2-Clause"
> +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 (#169993): https://lists.openembedded.org/g/openembedded-core/message/169993
> Mute This Topic: https://lists.openembedded.org/mt/93311086/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
next prev parent reply other threads:[~2022-08-29 9:20 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-28 17:43 [PATCH v3 1/2] ntirpc: Add ntirpc recipe Paulo Neves
2022-08-28 17:43 ` [PATCH v3 2/2] nfs-ganesha: Replace unfs3 with nfs-ganesha Paulo Neves
2022-08-28 19:13 ` [OE-core] " Alexander Kanavin
[not found] ` <170F981B9326E578.11791@lists.openembedded.org>
2022-08-28 19:15 ` Alexander Kanavin
2022-08-29 9:20 ` Alexandre Belloni [this message]
2022-09-12 22:19 ` Adrian Freihofer
[not found] ` <17143CF1C30D4B98.24896@lists.openembedded.org>
2022-09-14 21:19 ` Adrian Freihofer
2022-09-15 7:28 ` Paulo Neves
2022-08-28 19:07 ` [OE-core] [PATCH v3 1/2] ntirpc: Add ntirpc recipe Alexander Kanavin
2022-09-15 10:50 ` Ross Burton
2022-09-15 11:18 ` Paulo Neves
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YwyE4kgi/GFRQPvX@mail.local \
--to=alexandre.belloni@bootlin.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=ptsneves@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox