From 65a681e192eeb962fdcfdf9f27f4435c1ad0248c Mon Sep 17 00:00:00 2001 From: Robert Yang Date: Wed, 4 Jun 2025 08:00:57 -0700 Subject: nfs-utils: 2.8.2 -> 2.8.3 * Remove upstream merged patches: 0001-Fix-typecast-warning-with-clang.patch 0003-support-nfs-xcommon.c-fix-a-formatting-error-with-cl.patch (From OE-Core rev: d3bc8591610733ba9145bb7f97b9490aeddad9c2) Signed-off-by: Robert Yang Signed-off-by: Richard Purdie --- .../0001-Fix-typecast-warning-with-clang.patch | 32 ---- ...-xcommon.c-fix-a-formatting-error-with-cl.patch | 40 ----- .../nfs-utils/nfs-utils_2.8.2.bb | 161 --------------------- .../nfs-utils/nfs-utils_2.8.3.bb | 159 ++++++++++++++++++++ 4 files changed, 159 insertions(+), 233 deletions(-) delete mode 100644 meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Fix-typecast-warning-with-clang.patch delete mode 100644 meta/recipes-connectivity/nfs-utils/nfs-utils/0003-support-nfs-xcommon.c-fix-a-formatting-error-with-cl.patch delete mode 100644 meta/recipes-connectivity/nfs-utils/nfs-utils_2.8.2.bb create mode 100644 meta/recipes-connectivity/nfs-utils/nfs-utils_2.8.3.bb diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Fix-typecast-warning-with-clang.patch b/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Fix-typecast-warning-with-clang.patch deleted file mode 100644 index f493a3051e..0000000000 --- a/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Fix-typecast-warning-with-clang.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 0a64c5ad17786796d84390e480a38b4f762229ae Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 18 Dec 2024 19:20:39 -0800 -Subject: [PATCH v2] Fix typecast warning with clang - -Fixes -file.c:200:8: error: assigning to 'char *' from 'const char *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers] - -Upstream-Status: Submitted [https://marc.info/?l=linux-nfs&m=173463533411103&w=2] -Signed-off-by: Khem Raj -Cc: Benjamin Coddington -Cc: Steve Dickson ---- -v2: Make base as const char pointer insread of trying type punning - - support/nsm/file.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/support/nsm/file.c b/support/nsm/file.c -index de122b0f..68f99bf0 100644 ---- a/support/nsm/file.c -+++ b/support/nsm/file.c -@@ -184,7 +184,8 @@ static char * - nsm_make_temp_pathname(const char *pathname) - { - size_t size; -- char *path, *base; -+ char *path; -+ const char *base; - int len; - - size = strlen(pathname) + sizeof(".new") + 1; diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils/0003-support-nfs-xcommon.c-fix-a-formatting-error-with-cl.patch b/meta/recipes-connectivity/nfs-utils/nfs-utils/0003-support-nfs-xcommon.c-fix-a-formatting-error-with-cl.patch deleted file mode 100644 index a99ba284e0..0000000000 --- a/meta/recipes-connectivity/nfs-utils/nfs-utils/0003-support-nfs-xcommon.c-fix-a-formatting-error-with-cl.patch +++ /dev/null @@ -1,40 +0,0 @@ -From cc59a7fe15b6ca2ee43cba0dc1d699323b36ffcc Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Fri, 21 Mar 2025 10:42:56 +0100 -Subject: [PATCH] support/nfs/xcommon.c: fix a formatting error with clang - -Specifically, this happens: - -| xcommon.c:101:24: error: format string is not a string literal [-Werror,-Wformat-nonliteral] -| 101 | vfprintf (stderr, fmt2, args); -| | ^~~~ - -A similar approach (print \n seprately) is already used elsewhere in -the same file. - -Upstream-Status: Submitted [via email to steved@redhat.com,linux-nfs@vger.kernel.org] -Signed-off-by: Alexander Kanavin ---- - support/nfs/xcommon.c | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -diff --git a/support/nfs/xcommon.c b/support/nfs/xcommon.c -index 3989f0b..1d04dd1 100644 ---- a/support/nfs/xcommon.c -+++ b/support/nfs/xcommon.c -@@ -94,13 +94,11 @@ xstrconcat4 (const char *s, const char *t, const char *u, const char *v) { - void - nfs_error (const char *fmt, ...) { - va_list args; -- char *fmt2; - -- fmt2 = xstrconcat2 (fmt, "\n"); - va_start (args, fmt); -- vfprintf (stderr, fmt2, args); -+ vfprintf (stderr, fmt, args); -+ fprintf (stderr, "\n"); - va_end (args); -- free (fmt2); - } - - /* Make a canonical pathname from PATH. Returns a freshly malloced string. diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils_2.8.2.bb b/meta/recipes-connectivity/nfs-utils/nfs-utils_2.8.2.bb deleted file mode 100644 index 1f3afa0560..0000000000 --- a/meta/recipes-connectivity/nfs-utils/nfs-utils_2.8.2.bb +++ /dev/null @@ -1,161 +0,0 @@ -SUMMARY = "userspace utilities for kernel nfs" -DESCRIPTION = "The nfs-utils package provides a daemon for the kernel \ -NFS server and related tools." -HOMEPAGE = "http://nfs.sourceforge.net/" -SECTION = "console/network" - -LICENSE = "MIT & GPL-2.0-or-later & BSD-3-Clause" -LIC_FILES_CHKSUM = "file://COPYING;md5=95f3a93a5c3c7888de623b46ea085a84" - -# util-linux for libblkid -DEPENDS = "libcap libevent util-linux sqlite3 libtirpc libxml2" -RDEPENDS:${PN} = "${PN}-client" -RRECOMMENDS:${PN} = "kernel-module-nfsd" - -inherit useradd - -USERADD_PACKAGES = "${PN}-client" -USERADD_PARAM:${PN}-client = "--system --home-dir /var/lib/nfs \ - --shell /bin/false --user-group rpcuser" - -SRC_URI = "${KERNELORG_MIRROR}/linux/utils/nfs-utils/${PV}/nfs-utils-${PV}.tar.xz \ - file://nfsserver \ - file://nfscommon \ - file://0001-locktest-Makefile.am-Do-not-use-build-flags.patch \ - file://0001-Fix-typecast-warning-with-clang.patch \ - file://0004-Use-nogroup-for-nobody-group.patch \ - file://0005-find-OE-provided-Kerberos.patch \ - file://0003-support-nfs-xcommon.c-fix-a-formatting-error-with-cl.patch \ - " - -SRC_URI[sha256sum] = "a39bbea76ac0ab9e6e8699caf3c308b6b310c20d458e8fa8606196d358e7fb15" - -# Only kernel-module-nfsd is required here (but can be built-in) - the nfsd module will -# pull in the remainder of the dependencies. - -INITSCRIPT_PACKAGES = "${PN} ${PN}-client" -INITSCRIPT_NAME = "nfsserver" -INITSCRIPT_PARAMS = "defaults" -INITSCRIPT_NAME:${PN}-client = "nfscommon" -INITSCRIPT_PARAMS:${PN}-client = "defaults 19 21" - -inherit autotools-brokensep update-rc.d systemd pkgconfig - -SYSTEMD_PACKAGES = "${PN} ${PN}-client" -SYSTEMD_SERVICE:${PN} = "nfs-server.service" -SYSTEMD_SERVICE:${PN}-client = "nfs-client.target" - -# --enable-uuid is need for cross-compiling -EXTRA_OECONF = "--with-statduser=rpcuser \ - --enable-mountconfig \ - --enable-libmount-mount \ - --enable-uuid \ - --with-statdpath=/var/lib/nfs/statd \ - --with-pluginpath=${libdir}/libnfsidmap \ - --with-rpcgen=${HOSTTOOLS_DIR}/rpcgen \ - " - -LDFLAGS += "-lsqlite3 -levent" - -PACKAGECONFIG ??= "tcp-wrappers \ - ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 systemd', d)} \ -" - -PACKAGECONFIG:remove:libc-musl = "tcp-wrappers" -#krb5 is available in meta-oe -PACKAGECONFIG[gssapi] = "--with-krb5=${STAGING_EXECPREFIXDIR} --enable-gss --enable-svcgss,--disable-gss --disable-svcgss,krb5" -PACKAGECONFIG[tcp-wrappers] = "--with-tcp-wrappers,--without-tcp-wrappers,tcp-wrappers" -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," -# libdevmapper is available in meta-oe -PACKAGECONFIG[nfsv41] = "--enable-nfsv41,--disable-nfsv41,libdevmapper,libdevmapper" -# keyutils is available in meta-oe -PACKAGECONFIG[nfsv4] = "--enable-nfsv4 --enable-nfsdcltrack,--disable-nfsv4 --disable-nfsdcltrack,keyutils,python3-core" -PACKAGECONFIG[nfsdctl] = "--enable-nfsdctl,--disable-nfsdctl,libnl readline," -PACKAGECONFIG[systemd] = "--with-systemd=${systemd_unitdir}/system,--without-systemd" - -PACKAGES =+ "${PN}-client ${PN}-mount ${PN}-stats ${PN}-rpcctl" - -CONFFILES:${PN}-client += "${localstatedir}/lib/nfs/etab \ - ${localstatedir}/lib/nfs/rmtab \ - ${localstatedir}/lib/nfs/xtab \ - ${localstatedir}/lib/nfs/statd/state \ - ${sysconfdir}/idmapd.conf \ - ${sysconfdir}/nfs.conf \ - ${sysconfdir}/nfsmount.conf" - -FILES:${PN}-client = "${sbindir}/*statd \ - ${sbindir}/rpc.idmapd ${sbindir}/sm-notify \ - ${sbindir}/showmount ${sbindir}/nfsstat \ - ${sbindir}/rpc.gssd \ - ${sbindir}/nfsconf \ - ${libdir}/libnfsidmap.so.* \ - ${libdir}/libnfsidmap/*.so \ - ${libexecdir}/nfsrahead \ - ${localstatedir}/lib/nfs \ - ${sysconfdir}/idmapd.conf \ - ${sysconfdir}/init.d/nfscommon \ - ${sysconfdir}/nfs.conf \ - ${sysconfdir}/nfsmount.conf \ - ${systemd_system_unitdir}/auth-rpcgss-module.service \ - ${systemd_system_unitdir}/nfs-client.target \ - ${systemd_system_unitdir}/nfs-idmapd.service \ - ${systemd_system_unitdir}/nfs-statd.service \ - ${systemd_system_unitdir}/nfscommon.service \ - ${systemd_system_unitdir}/rpc-gssd.service \ - ${systemd_system_unitdir}/rpc-statd-notify.service \ - ${systemd_system_unitdir}/rpc-statd.service \ - ${systemd_system_unitdir}/rpc_pipefs.target \ - ${systemd_system_unitdir}/var-lib-nfs-rpc_pipefs.mount \ - ${nonarch_libdir}/udev/rules.d/*" -RDEPENDS:${PN}-client = "${PN}-mount rpcbind" - -FILES:${PN}-mount = "${base_sbindir}/*mount.nfs*" - -FILES:${PN}-stats = "${sbindir}/mountstats ${sbindir}/nfsiostat ${sbindir}/nfsdclnts" -RDEPENDS:${PN}-stats = "python3-core" - -FILES:${PN}-rpcctl = "${sbindir}/rpcctl" -RDEPENDS:${PN}-rpcctl = "python3-core" - -FILES:${PN}-staticdev += "${libdir}/libnfsidmap/*.a" - -FILES:${PN} += "${systemd_unitdir} ${libdir}/libnfsidmap/ ${nonarch_libdir}/modprobe.d" - -do_configure:prepend() { - sed -i -e 's,sbindir = /sbin,sbindir = ${base_sbindir},g' \ - -e 's,udev_rulesdir = /usr/lib/udev/rules.d/,udev_rulesdir = ${nonarch_base_libdir}/udev/rules.d/,g' \ - ${S}/utils/mount/Makefile.am ${S}/utils/nfsdcltrack/Makefile.am \ - ${S}/systemd/Makefile.am ${S}/tools/nfsrahead/Makefile.am -} - -# Make clean needed because the package comes with -# precompiled 64-bit objects that break the build -do_compile:prepend() { - make clean -} - -# Works on systemd only -HIGH_RLIMIT_NOFILE ??= "4096" - -do_install:append () { - install -d ${D}${sysconfdir}/init.d - install -m 0755 ${UNPACKDIR}/nfsserver ${D}${sysconfdir}/init.d/nfsserver - install -m 0755 ${UNPACKDIR}/nfscommon ${D}${sysconfdir}/init.d/nfscommon - - install -m 0644 ${S}/support/nfsidmap/idmapd.conf ${D}${sysconfdir} - install -m 0644 ${S}/nfs.conf ${D}${sysconfdir} - - install -d ${D}${systemd_system_unitdir} - # Retain historical service name so old scripts keep working - ln -s rpc-statd.service ${D}${systemd_system_unitdir}/nfs-statd.service - # Add compatibility symlinks for the sysvinit scripts - ln -s nfs-server.service ${D}${systemd_system_unitdir}/nfsserver.service - ln -s /dev/null ${D}${systemd_system_unitdir}/nfscommon.service - - # kernel code as of 3.8 hard-codes this path as a default - install -d ${D}/var/lib/nfs/v4recovery - - # chown the directories and files - chown -R rpcuser:rpcuser ${D}${localstatedir}/lib/nfs/statd - chmod 0644 ${D}${localstatedir}/lib/nfs/statd/state -} diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils_2.8.3.bb b/meta/recipes-connectivity/nfs-utils/nfs-utils_2.8.3.bb new file mode 100644 index 0000000000..9668ac0e86 --- /dev/null +++ b/meta/recipes-connectivity/nfs-utils/nfs-utils_2.8.3.bb @@ -0,0 +1,159 @@ +SUMMARY = "userspace utilities for kernel nfs" +DESCRIPTION = "The nfs-utils package provides a daemon for the kernel \ +NFS server and related tools." +HOMEPAGE = "http://nfs.sourceforge.net/" +SECTION = "console/network" + +LICENSE = "MIT & GPL-2.0-or-later & BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=95f3a93a5c3c7888de623b46ea085a84" + +# util-linux for libblkid +DEPENDS = "libcap libevent util-linux sqlite3 libtirpc libxml2" +RDEPENDS:${PN} = "${PN}-client" +RRECOMMENDS:${PN} = "kernel-module-nfsd" + +inherit useradd + +USERADD_PACKAGES = "${PN}-client" +USERADD_PARAM:${PN}-client = "--system --home-dir /var/lib/nfs \ + --shell /bin/false --user-group rpcuser" + +SRC_URI = "${KERNELORG_MIRROR}/linux/utils/nfs-utils/${PV}/nfs-utils-${PV}.tar.xz \ + file://nfsserver \ + file://nfscommon \ + file://0001-locktest-Makefile.am-Do-not-use-build-flags.patch \ + file://0004-Use-nogroup-for-nobody-group.patch \ + file://0005-find-OE-provided-Kerberos.patch \ + " + +SRC_URI[sha256sum] = "11e7c5847a8423a72931c865bd9296e7fd56ff270a795a849183900961711725" + +# Only kernel-module-nfsd is required here (but can be built-in) - the nfsd module will +# pull in the remainder of the dependencies. + +INITSCRIPT_PACKAGES = "${PN} ${PN}-client" +INITSCRIPT_NAME = "nfsserver" +INITSCRIPT_PARAMS = "defaults" +INITSCRIPT_NAME:${PN}-client = "nfscommon" +INITSCRIPT_PARAMS:${PN}-client = "defaults 19 21" + +inherit autotools-brokensep update-rc.d systemd pkgconfig + +SYSTEMD_PACKAGES = "${PN} ${PN}-client" +SYSTEMD_SERVICE:${PN} = "nfs-server.service" +SYSTEMD_SERVICE:${PN}-client = "nfs-client.target" + +# --enable-uuid is need for cross-compiling +EXTRA_OECONF = "--with-statduser=rpcuser \ + --enable-mountconfig \ + --enable-libmount-mount \ + --enable-uuid \ + --with-statdpath=/var/lib/nfs/statd \ + --with-pluginpath=${libdir}/libnfsidmap \ + --with-rpcgen=${HOSTTOOLS_DIR}/rpcgen \ + " + +LDFLAGS += "-lsqlite3 -levent" + +PACKAGECONFIG ??= "tcp-wrappers \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 systemd', d)} \ +" + +PACKAGECONFIG:remove:libc-musl = "tcp-wrappers" +#krb5 is available in meta-oe +PACKAGECONFIG[gssapi] = "--with-krb5=${STAGING_EXECPREFIXDIR} --enable-gss --enable-svcgss,--disable-gss --disable-svcgss,krb5" +PACKAGECONFIG[tcp-wrappers] = "--with-tcp-wrappers,--without-tcp-wrappers,tcp-wrappers" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," +# libdevmapper is available in meta-oe +PACKAGECONFIG[nfsv41] = "--enable-nfsv41,--disable-nfsv41,libdevmapper,libdevmapper" +# keyutils is available in meta-oe +PACKAGECONFIG[nfsv4] = "--enable-nfsv4 --enable-nfsdcltrack,--disable-nfsv4 --disable-nfsdcltrack,keyutils,python3-core" +PACKAGECONFIG[nfsdctl] = "--enable-nfsdctl,--disable-nfsdctl,libnl readline," +PACKAGECONFIG[systemd] = "--with-systemd=${systemd_unitdir}/system,--without-systemd" + +PACKAGES =+ "${PN}-client ${PN}-mount ${PN}-stats ${PN}-rpcctl" + +CONFFILES:${PN}-client += "${localstatedir}/lib/nfs/etab \ + ${localstatedir}/lib/nfs/rmtab \ + ${localstatedir}/lib/nfs/xtab \ + ${localstatedir}/lib/nfs/statd/state \ + ${sysconfdir}/idmapd.conf \ + ${sysconfdir}/nfs.conf \ + ${sysconfdir}/nfsmount.conf" + +FILES:${PN}-client = "${sbindir}/*statd \ + ${sbindir}/rpc.idmapd ${sbindir}/sm-notify \ + ${sbindir}/showmount ${sbindir}/nfsstat \ + ${sbindir}/rpc.gssd \ + ${sbindir}/nfsconf \ + ${libdir}/libnfsidmap.so.* \ + ${libdir}/libnfsidmap/*.so \ + ${libexecdir}/nfsrahead \ + ${localstatedir}/lib/nfs \ + ${sysconfdir}/idmapd.conf \ + ${sysconfdir}/init.d/nfscommon \ + ${sysconfdir}/nfs.conf \ + ${sysconfdir}/nfsmount.conf \ + ${systemd_system_unitdir}/auth-rpcgss-module.service \ + ${systemd_system_unitdir}/nfs-client.target \ + ${systemd_system_unitdir}/nfs-idmapd.service \ + ${systemd_system_unitdir}/nfs-statd.service \ + ${systemd_system_unitdir}/nfscommon.service \ + ${systemd_system_unitdir}/rpc-gssd.service \ + ${systemd_system_unitdir}/rpc-statd-notify.service \ + ${systemd_system_unitdir}/rpc-statd.service \ + ${systemd_system_unitdir}/rpc_pipefs.target \ + ${systemd_system_unitdir}/var-lib-nfs-rpc_pipefs.mount \ + ${nonarch_libdir}/udev/rules.d/*" +RDEPENDS:${PN}-client = "${PN}-mount rpcbind" + +FILES:${PN}-mount = "${base_sbindir}/*mount.nfs*" + +FILES:${PN}-stats = "${sbindir}/mountstats ${sbindir}/nfsiostat ${sbindir}/nfsdclnts" +RDEPENDS:${PN}-stats = "python3-core" + +FILES:${PN}-rpcctl = "${sbindir}/rpcctl" +RDEPENDS:${PN}-rpcctl = "python3-core" + +FILES:${PN}-staticdev += "${libdir}/libnfsidmap/*.a" + +FILES:${PN} += "${systemd_unitdir} ${libdir}/libnfsidmap/ ${nonarch_libdir}/modprobe.d" + +do_configure:prepend() { + sed -i -e 's,sbindir = /sbin,sbindir = ${base_sbindir},g' \ + -e 's,udev_rulesdir = /usr/lib/udev/rules.d/,udev_rulesdir = ${nonarch_base_libdir}/udev/rules.d/,g' \ + ${S}/utils/mount/Makefile.am ${S}/utils/nfsdcltrack/Makefile.am \ + ${S}/systemd/Makefile.am ${S}/tools/nfsrahead/Makefile.am +} + +# Make clean needed because the package comes with +# precompiled 64-bit objects that break the build +do_compile:prepend() { + make clean +} + +# Works on systemd only +HIGH_RLIMIT_NOFILE ??= "4096" + +do_install:append () { + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${UNPACKDIR}/nfsserver ${D}${sysconfdir}/init.d/nfsserver + install -m 0755 ${UNPACKDIR}/nfscommon ${D}${sysconfdir}/init.d/nfscommon + + install -m 0644 ${S}/support/nfsidmap/idmapd.conf ${D}${sysconfdir} + install -m 0644 ${S}/nfs.conf ${D}${sysconfdir} + + install -d ${D}${systemd_system_unitdir} + # Retain historical service name so old scripts keep working + ln -s rpc-statd.service ${D}${systemd_system_unitdir}/nfs-statd.service + # Add compatibility symlinks for the sysvinit scripts + ln -s nfs-server.service ${D}${systemd_system_unitdir}/nfsserver.service + ln -s /dev/null ${D}${systemd_system_unitdir}/nfscommon.service + + # kernel code as of 3.8 hard-codes this path as a default + install -d ${D}/var/lib/nfs/v4recovery + + # chown the directories and files + chown -R rpcuser:rpcuser ${D}${localstatedir}/lib/nfs/statd + chmod 0644 ${D}${localstatedir}/lib/nfs/statd/state +} -- cgit v1.2.3-54-g00ecf