diff --git a/0001-conffile-ignore-empty-environment-variables.patch b/0001-conffile-ignore-empty-environment-variables.patch deleted file mode 100644 index 4d9d2c5..0000000 --- a/0001-conffile-ignore-empty-environment-variables.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 5ec9d9034650ae4372dc1bd44d33a1e8768e3409 Mon Sep 17 00:00:00 2001 -From: NeilBrown -Date: Wed, 8 Feb 2017 08:18:34 +1100 -Subject: [PATCH] conffile: ignore empty environment variables. - -conf_set() already refuses to set an empty value, so if - foo= -appear in the config file, it will be ignored. -This patch extends the policy to environment variables, so empty -environment variables are treats as though they didn't exist. - -This means that a separate environment file (e.g. /etc/sysconfig/nfs) -will be treated the same way whether it is: - - included in the [environment] section of /etc/nfs.conf - - sourced by the shell before running code - - sourced by the systemd EnvironmentFile directive. - -Signed-off-by: NeilBrown ---- - support/nfs/conffile.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/support/nfs/conffile.c b/support/nfs/conffile.c -index e717c1e39bab..203efd2aa602 100644 ---- a/support/nfs/conffile.c -+++ b/support/nfs/conffile.c -@@ -533,7 +533,7 @@ retry: - * or from environment - */ - char *env = getenv(cb->value+1); -- if (env) -+ if (env && *env) - return env; - section = "environment"; - tag = cb->value + 1; --- -2.11.0 - diff --git a/0001-nfs.conf-allow-empty-assignments.patch b/0001-nfs.conf-allow-empty-assignments.patch new file mode 100644 index 0000000..eb3f2df --- /dev/null +++ b/0001-nfs.conf-allow-empty-assignments.patch @@ -0,0 +1,55 @@ +From b8ebadacd1ccf943e3c699027bdc64bdcf5e9f37 Mon Sep 17 00:00:00 2001 +From: NeilBrown +Date: Mon, 3 Dec 2018 11:54:16 +1100 +Subject: [PATCH] nfs.conf: allow empty assignments. + +A recent commit caused an error message (but didn't actually +trigger an error) for a config file line like: + + foo = + +There is no good reason to treat this as an error, and we (SUSE) have +established practice of expecting these to be accepted. +Specifically "/etc/nfs.conf" includes "/etc/sysconfig/nfs" which +contains lots of empty definitions. + +So remove the error message. + +Fixes: 1c2c18806800 ("nfs.conf: Removed buffer overruns") +Signed-off-by: NeilBrown +--- + support/nfs/conffile.c | 5 ----- + tests/nfsconf/01-errors.exp | 1 - + 2 files changed, 6 deletions(-) + +diff --git a/support/nfs/conffile.c b/support/nfs/conffile.c +index 0e39aca6b468..77c5790c893c 100644 +--- a/support/nfs/conffile.c ++++ b/support/nfs/conffile.c +@@ -405,11 +405,6 @@ conf_parse_line(int trans, char *line, const char *filename, int lineno, char ** + "missing tag in assignment", filename, lineno); + return; + } +- if (*val == '\0') { +- xlog_warn("config error at %s:%d: " +- "missing value in assignment", filename, lineno); +- return; +- } + + if (strcasecmp(line, "include")==0) { + /* load and parse subordinate config files */ +diff --git a/tests/nfsconf/01-errors.exp b/tests/nfsconf/01-errors.exp +index 2bf1b8c7f65b..0b985b46267e 100644 +--- a/tests/nfsconf/01-errors.exp ++++ b/tests/nfsconf/01-errors.exp +@@ -4,7 +4,6 @@ nfsconf: config error at 01-errors.conf:10: non-matched ']', ignoring until next + nfsconf: config error at 01-errors.conf:11: ignoring line not in a section + nfsconf: config error at 01-errors.conf:14: line not empty and not an assignment + nfsconf: config error at 01-errors.conf:15: missing tag in assignment +-nfsconf: config error at 01-errors.conf:16: missing value in assignment + nfsconf: config error at 01-errors.conf:18: unmatched quotes + [four] + four = foo = bar +-- +2.14.0.rc0.dirty + diff --git a/0002-Let-systemd-know-when-rpc.statd-is-needed.patch b/0002-Let-systemd-know-when-rpc.statd-is-needed.patch new file mode 100644 index 0000000..9ee869e --- /dev/null +++ b/0002-Let-systemd-know-when-rpc.statd-is-needed.patch @@ -0,0 +1,54 @@ +From b468dda439a02c4d1b7f85a0be6c0a227d16c2de Mon Sep 17 00:00:00 2001 +From: NeilBrown +Date: Fri, 30 Nov 2018 16:38:45 +1100 +Subject: [PATCH] Let systemd know when rpc.statd is needed. + +A recent change to set IgnoreOnIsolate for rpc-statd +isn't quite sufficient (though it doesn't hurt). +While rpc-statd does remain when + systemctl isolate multi-user +is run, its dependencies don't remain, so rpcbind might +get killed, which makes rpc.statd rather useless. + +The reason this is all an issue is that systemd doesn't know that +rpc-statd is needed - mount.nfs explicitly starts it rather than +having a dependency start it. +This can be rectified by explicitly telling systemd about the +dependency using "systemctl add-wants". This can be done in the +start-statd script, at the same time that rpc-statd is started. + +As --runtime dependency is used so that it doesn't persist across +reboots. A new dependency will be created on next boot if an NFSv3 +filesystem is mounted. + +With this in place, both rpc.statd and rpcbind remain. +Actually, rpcbind.service is stopped, but rpcbind.socket remains, +and when anything tries to contact rpcbind, rpcbind.service +is automatically started and it re-reads its saved state. + +Signed-off-by: NeilBrown +--- + utils/statd/start-statd | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/utils/statd/start-statd b/utils/statd/start-statd +index 82715b40c1af..54ced822016a 100755 +--- a/utils/statd/start-statd ++++ b/utils/statd/start-statd +@@ -20,7 +20,12 @@ fi + # First try systemd if it's installed. + if [ -d /run/systemd/system ]; then + # Quit only if the call worked. +- systemctl start rpc-statd.service && exit ++ if systemctl start rpc-statd.service; then ++ # Ensure systemd knows not to stop rpc.statd or its dependencies ++ # on 'systemctl isolate ..' ++ systemctl add-wants --runtime remote-fs.target rpc-statd.service ++ exit 0 ++ fi + fi + + cd / +-- +2.14.0.rc0.dirty + diff --git a/0002-mount-call-setgroups-before-setuid.patch b/0002-mount-call-setgroups-before-setuid.patch deleted file mode 100644 index 2b87140..0000000 --- a/0002-mount-call-setgroups-before-setuid.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 5b7da9d70261583e67e114b36cb19973de15606d Mon Sep 17 00:00:00 2001 -From: NeilBrown -Date: Wed, 8 Feb 2017 08:22:36 +1100 -Subject: [PATCH] mount: call setgroups() before setuid() - -It is generally wise to call setgroups() (and setgid()) before calling -setuid() to ensure no unexpected permission leaks happen. -SUSE's build system check all binaries for conformance with this -and generates a warning for mountd. - -As we set setting the uid to 0, there is no risk that the group list -will provide extra permissions, so there is no real risk here. -But it is nice to silence warnings, and including a setgroups() -call is probably a good practice to encourage. - -Signed-off-by: NeilBrown ---- - utils/mount/network.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/utils/mount/network.c b/utils/mount/network.c -index d1c8fec75174..281e9354a7fa 100644 ---- a/utils/mount/network.c -+++ b/utils/mount/network.c -@@ -33,6 +33,7 @@ - #include - #include - #include -+#include - - #include - #include -@@ -804,6 +805,7 @@ int start_statd(void) - pid_t pid = fork(); - switch (pid) { - case 0: /* child */ -+ setgroups(0, NULL); - setgid(0); - setuid(0); - execle(START_STATD, START_STATD, NULL, envp); --- -2.11.0 - diff --git a/0003-nfs-server-generator-handle-noauto-mounts-correctly.patch b/0003-nfs-server-generator-handle-noauto-mounts-correctly.patch deleted file mode 100644 index 5f2b77f..0000000 --- a/0003-nfs-server-generator-handle-noauto-mounts-correctly.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 93b39628e0a2053d9b37cab7a60d78f782cb88ea Mon Sep 17 00:00:00 2001 -From: NeilBrown -Date: Wed, 8 Feb 2017 12:56:38 +1100 -Subject: [PATCH] nfs-server-generator: handle 'noauto' mounts correctly. - -When this code was written the systemd documentation stated -that "RequiresMountsFor" ignored mountpoints marked as "noauto". -Unfortunately this is incorrect. Consquently a filesystem marked -as noauto that is also NFS exported will currently be mounted when -the NFS server is started. This is not what people expect. - -So add a check for the noauto flag. If any ancestor of a given -export point has the noauto flag, no RequiresMountsFor will be -generated for that point. - -Also skip RequiresMountsFor for exports marked 'mountpoint', as their -absence is, theoretically, already handled by mountd. - -URL: https://github.com/systemd/systemd/issues/5249 -Signed-off-by: NeilBrown ---- - systemd/nfs-server-generator.c | 26 ++++++++++++++++++++++++++ - 1 file changed, 26 insertions(+) - -diff --git a/systemd/nfs-server-generator.c b/systemd/nfs-server-generator.c -index cc99969e9922..4aa65094ca07 100644 ---- a/systemd/nfs-server-generator.c -+++ b/systemd/nfs-server-generator.c -@@ -84,6 +84,28 @@ static void systemd_escape(FILE *f, char *path) - } - } - -+static int has_noauto_flag(char *path) -+{ -+ FILE *fstab; -+ struct mntent *mnt; -+ -+ fstab = setmntent("/etc/fstab", "r"); -+ if (!fstab) -+ return 0; -+ -+ while ((mnt = getmntent(fstab)) != NULL) { -+ int l = strlen(mnt->mnt_dir); -+ if (strncmp(mnt->mnt_dir, path, l) != 0) -+ continue; -+ if (path[l] && path[l] != '/') -+ continue; -+ if (hasmntopt(mnt, "noauto")) -+ break; -+ } -+ fclose(fstab); -+ return mnt != NULL; -+} -+ - int main(int argc, char *argv[]) - { - char *path; -@@ -124,6 +146,10 @@ int main(int argc, char *argv[]) - for (exp = exportlist[i].p_head; exp; exp = exp->m_next) { - if (!is_unique(&list, exp->m_export.e_path)) - continue; -+ if (exp->m_export.e_mountpoint) -+ continue; -+ if (has_noauto_flag(exp->m_export.e_path)) -+ continue; - if (strchr(exp->m_export.e_path, ' ')) - fprintf(f, "RequiresMountsFor=\"%s\"\n", - exp->m_export.e_path); --- -2.11.0 - diff --git a/0003-systemd-run-statd-notify-even-when-nfs-client-isn-t-.patch b/0003-systemd-run-statd-notify-even-when-nfs-client-isn-t-.patch new file mode 100644 index 0000000..e2413b7 --- /dev/null +++ b/0003-systemd-run-statd-notify-even-when-nfs-client-isn-t-.patch @@ -0,0 +1,38 @@ +From 415dea8db90785c3063bbd74fff34cb6a4830f06 Mon Sep 17 00:00:00 2001 +From: NeilBrown +Date: Fri, 30 Nov 2018 16:44:29 +1100 +Subject: [PATCH] systemd: run statd-notify even when nfs-client isn't enabled. + +When NFS filesytems are mounted, nfs-client.target really should +be enabled. However it is possible to mount NFS filesystems +without this (providing gss isn't used) and it mostly works. + +One aspect that doesn't work is that sm-notify isn't run, so the server +isn't told to drop any locks from the previous client instance. +This can result in confusing failures: if a client crashes while +holding a lock, it won't be able to get the same lock after a reboot. + +While this isn't a complete solution (nfs-client really should be +enabled), adding a dependency from rpc-statd to rpc-statd-notify is +easy, has no down sides, and could help avoid confusion. + +Signed-off-by: NeilBrown +--- + systemd/rpc-statd.service | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/systemd/rpc-statd.service b/systemd/rpc-statd.service +index 1f4e6a8b92ab..3e92cf71add0 100644 +--- a/systemd/rpc-statd.service ++++ b/systemd/rpc-statd.service +@@ -4,6 +4,7 @@ DefaultDependencies=no + Conflicts=umount.target + Requires=nss-lookup.target rpcbind.socket + Wants=network-online.target ++Wants=rpc-statd-notify.service + After=network-online.target nss-lookup.target rpcbind.socket + + PartOf=nfs-utils.service +-- +2.14.0.rc0.dirty + diff --git a/0004-nfsidmap-honour-with-pluginpath-for-instalation.patch b/0004-nfsidmap-honour-with-pluginpath-for-instalation.patch new file mode 100644 index 0000000..5ab82b1 --- /dev/null +++ b/0004-nfsidmap-honour-with-pluginpath-for-instalation.patch @@ -0,0 +1,39 @@ +From b535ba0513fd53bb3ae63d13b55b4784e056e225 Mon Sep 17 00:00:00 2001 +From: NeilBrown +Date: Tue, 4 Dec 2018 11:00:10 +1100 +Subject: [PATCH] nfsidmap: honour --with-pluginpath for instalation. + +The path set with --with-pluginpath is not currently +used when installing plugins. It should be. + +Signed-off-by: NeilBrown +--- + configure.ac | 1 + + support/nfsidmap/Makefile.am | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 4163f6a518f5..4bf5aea4442f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -450,6 +450,7 @@ if test -n "$path_plugins" ; then + [Define this to change the plugins path]) + fi + AM_CONDITIONAL(PATH_PLUGINS, test -n "$path_plugins") ++AC_SUBST(PATH_PLUGINS, "$path_plugins") + + AC_SUBST(AM_CPPFLAGS, "$AM_CPPFLAGS") + AC_DEFINE([HAVE_NFS4_SET_DEBUG], 1, +diff --git a/support/nfsidmap/Makefile.am b/support/nfsidmap/Makefile.am +index 8b5dfe4e784a..cdbeb4c1a9ac 100644 +--- a/support/nfsidmap/Makefile.am ++++ b/support/nfsidmap/Makefile.am +@@ -1,4 +1,4 @@ +-pkgplugindir=$(libdir)/libnfsidmap ++pkgplugindir=$(PATH_PLUGINS) + + if ENABLE_LDAP + UMICH_LDAP_LIB = umich_ldap.la +-- +2.14.0.rc0.dirty + diff --git a/0005-nfs.conf-fail-to-disable-major-NFS-version-4-using-v.patch b/0005-nfs.conf-fail-to-disable-major-NFS-version-4-using-v.patch new file mode 100644 index 0000000..9664b50 --- /dev/null +++ b/0005-nfs.conf-fail-to-disable-major-NFS-version-4-using-v.patch @@ -0,0 +1,60 @@ +From d68be5d6ae5086d6b4ad84507d0d14011df40aa2 Mon Sep 17 00:00:00 2001 +From: Justin Mitchell +Date: Wed, 26 Sep 2018 10:37:17 -0400 +Subject: [PATCH] nfs.conf: fail to disable major NFS version 4 using "vers4=n" + in /etc/nfs.conf + +Setting "vers4=n/off" (disabling the major NFS version 4) in nfs.conf +doesn't work now. + +Refer to rpc.nfsd(8), "vers3/vers4" in the [nfsd] section of the +/etc/nfs.conf file is to enable or disable a major NFS version 3 or 4 +(which are normally enabled by default). + +Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1625032 + +Signed-off-by: Steve Dickson +--- + utils/nfsd/nfsd.c | 15 ++++++++++++--- + 1 file changed, 12 insertions(+), 3 deletions(-) + +diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c +index 6b57e2b0790e..b256bd9f6b40 100644 +--- a/utils/nfsd/nfsd.c ++++ b/utils/nfsd/nfsd.c +@@ -83,6 +83,9 @@ main(int argc, char **argv) + + conf_init_file(NFS_CONFFILE); + xlog_from_conffile("nfsd"); ++ ++ nfssvc_get_minormask(&minormask); ++ + count = conf_get_num("nfsd", "threads", count); + grace = conf_get_num("nfsd", "grace-time", grace); + lease = conf_get_num("nfsd", "lease-time", lease); +@@ -101,13 +104,19 @@ main(int argc, char **argv) + for (i = 2; i <= 4; i++) { + char tag[20]; + sprintf(tag, "vers%d", i); +- if (conf_get_bool("nfsd", tag, NFSCTL_VERISSET(versbits, i))) ++ if (conf_get_bool("nfsd", tag, NFSCTL_VERISSET(versbits, i))) { + NFSCTL_VERSET(versbits, i); +- else ++ if (i == 4) ++ minorvers = minorversset = minormask; ++ } else { + NFSCTL_VERUNSET(versbits, i); ++ if (i == 4) { ++ minorvers = 0; ++ minorversset = minormask; ++ } ++ } + } + +- nfssvc_get_minormask(&minormask); + /* We assume the kernel will default all minor versions to 'on', + * and allow the config file to disable some. + */ +-- +2.14.0.rc0.dirty + diff --git a/fw-client b/fw-client deleted file mode 100644 index c700bc9..0000000 --- a/fw-client +++ /dev/null @@ -1,26 +0,0 @@ -## Description: Firewall Configuration for NFS client. -# -# Only the variables TCP, UDP, RPC, IP and BROADCAST are allowed. -# More may be supported in the future. -# -# For a more detailed description of the individual variables see -# the comments for FW_SERVICES_*_EXT in /etc/sysconfig/SuSEfirewall2 -# - -## Name: NFS Client -## Description: Opens ports for NFS client to allow connection to an NFS server. - -# space separated list of allowed TCP ports -TCP="" - -# space separated list of allowed UDP ports -UDP="" - -# space separated list of allowed RPC services -RPC="portmap status nlockmgr" - -# space separated list of allowed IP protocols -IP="" - -# space separated list of allowed UDP broadcast ports -BROADCAST="" diff --git a/fw-server b/fw-server deleted file mode 100644 index 5ffe976..0000000 --- a/fw-server +++ /dev/null @@ -1,26 +0,0 @@ -## Description: Firewall Configuration for NFS kernel server. -# -# Only the variables TCP, UDP, RPC, IP and BROADCAST are allowed. -# More may be supported in the future. -# -# For a more detailed description of the individual variables see -# the comments for FW_SERVICES_*_EXT in /etc/sysconfig/SuSEfirewall2 -# - -## Name: NFS Server Service -## Description: Opens ports for NFS to allow other hosts to connect. - -# space separated list of allowed TCP ports -TCP="" - -# space separated list of allowed UDP ports -UDP="" - -# space separated list of allowed RPC services -RPC="portmap status nlockmgr mountd nfs nfs_acl" - -# space separated list of allowed IP protocols -IP="" - -# space separated list of allowed UDP broadcast ports -BROADCAST="" diff --git a/nfs-client.nfs.conf b/nfs-client.nfs.conf deleted file mode 100644 index 21758b6..0000000 --- a/nfs-client.nfs.conf +++ /dev/null @@ -1,4 +0,0 @@ - -# When nfs is stopped or restarted, nfs-client must too. -[Unit] -PartOf=nfs.service diff --git a/nfs-server.nfsserver.conf b/nfs-server.nfsserver.conf deleted file mode 100644 index 575e110..0000000 --- a/nfs-server.nfsserver.conf +++ /dev/null @@ -1,4 +0,0 @@ - -# When nfsserver is stopped or restarted, nfs-server must too. -[Unit] -PartOf=nfsserver.service diff --git a/nfs-utils-1.0.7-bind-syntax.patch b/nfs-utils-1.0.7-bind-syntax.patch index 00c8344..2eed230 100644 --- a/nfs-utils-1.0.7-bind-syntax.patch +++ b/nfs-utils-1.0.7-bind-syntax.patch @@ -6,9 +6,9 @@ support/nfs/exports.c | 2 ++ 1 file changed, 2 insertions(+) ---- nfs-utils-1.3.1.orig/support/nfs/exports.c -+++ nfs-utils-1.3.1/support/nfs/exports.c -@@ -649,6 +649,8 @@ bad_option: +--- a/support/nfs/exports.c ++++ b/support/nfs/exports.c +@@ -658,6 +658,8 @@ bad_option: } else if (strncmp(opt, "replicas=", 9) == 0) { ep->e_fslocmethod = FSLOC_REPLICA; ep->e_fslocdata = strdup(opt+9); diff --git a/nfs-utils-2.1.1.tar.xz b/nfs-utils-2.1.1.tar.xz deleted file mode 100644 index 910ad88..0000000 --- a/nfs-utils-2.1.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0faeb54c70b84e6bd3b9b6901544b1f6add8d246f35c1683e402daf4e0c719ef -size 606028 diff --git a/nfs-utils-2.3.3.tar.xz b/nfs-utils-2.3.3.tar.xz new file mode 100644 index 0000000..54cde8f --- /dev/null +++ b/nfs-utils-2.3.3.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f68b34793831b05f1fd5760d6bdec92772c7684177586a99a61e7b444f336322 +size 662280 diff --git a/nfs-utils.changes b/nfs-utils.changes index 7e327ed..2556587 100644 --- a/nfs-utils.changes +++ b/nfs-utils.changes @@ -1,3 +1,70 @@ +------------------------------------------------------------------- +Mon Sep 2 05:25:07 UTC 2019 - Neil Brown + +- 0005-nfs.conf-fail-to-disable-major-NFS-version-4-using-v.patch + Fix a bug that cause NFSv4 service to always be enabled, if + the server was enabled at all. + +------------------------------------------------------------------- +Wed Jul 24 13:07:41 UTC 2019 - matthias.gerstner@suse.com + +- removal of SuSEfirewall2 service, since SuSEfirewall2 has been replaced by + firewalld, see [1]. + + [1]: https://lists.opensuse.org/opensuse-factory/2019-01/msg00490.html + +------------------------------------------------------------------- +Wed Jan 30 00:10:03 UTC 2019 - Neil Brown + +- remove libnfsidmap1 dependency for nfs-client. + It isn't needed. + +------------------------------------------------------------------- +Tue Jan 29 22:50:04 UTC 2019 - Neil Brown + +- Remove service aliases - these files are deleted. + nfs.service + nfsserver.service + nfs-server.nfsserver.conf + nfs-client.nfs.conf + + Now the upstream standard service names "nfs-client" and "nfs-server" + must be used. + +------------------------------------------------------------------- +Tue Dec 4 00:03:00 UTC 2018 - Neil Brown + +- 0004-nfsidmap-honour-with-pluginpath-for-instalation.patch + Allow plugins to be installed properly +- nfs-utils.spec + Package shared library correctly + +------------------------------------------------------------------- +Mon Dec 3 02:49:13 UTC 2018 - Neil Brown + +- 0001-nfs.conf-allow-empty-assignments.patch + Fix regression due to unnecessary "error" messages from nfs.conf + +- 0002-Let-systemd-know-when-rpc.statd-is-needed.patch + 0003-systemd-run-statd-notify-even-when-nfs-client-isn-t-.patch + Fixes for systemd integration + (bsc#1116221) + +------------------------------------------------------------------- +Thu Oct 25 05:32:30 UTC 2018 - Neil Brown + +- New version: nfs-utils-2.3.3 + The nfsidmap library source has been merged into + nfs-utils, so this source package now makes + nfsidmap and nfsidmap-devel packages. + New program "nfsconf" improves access to nfs config files. + Delete patches that have been included upstream: + 0001-conffile-ignore-empty-environment-variables.patch + 0002-mount-call-setgroups-before-setuid.patch + 0003-nfs-server-generator-handle-noauto-mounts-correctly.patch + nsm-headers.patch + sysmacros.patch + ------------------------------------------------------------------- Mon Aug 6 07:29:37 UTC 2018 - schwab@suse.de diff --git a/nfs-utils.spec b/nfs-utils.spec index d636157..1c54c96 100644 --- a/nfs-utils.spec +++ b/nfs-utils.spec @@ -1,7 +1,7 @@ # # spec file for package nfs-utils # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,7 +12,7 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # @@ -22,7 +22,7 @@ %endif Name: nfs-utils -Version: 2.1.1 +Version: 2.3.3 Release: 0 Summary: Support Utilities for Kernel nfsd License: GPL-2.0-or-later @@ -34,14 +34,8 @@ Source0: http://kernel.org/pub/linux/utils/nfs-utils/%{version}/nfs-utils Source1: nfs.doc.tar.bz2 Source4: sysconfig.nfs Source6: README.NFSv4 -Source7: fw-client -Source8: fw-server Source11: idmapd.conf Source13: nfs-utils.rpmlintrc -Source15: nfsserver.service -Source16: nfs.service -Source17: nfs-server.nfsserver.conf -Source18: nfs-client.nfs.conf Source20: nfs-mountd.options.conf Source21: nfs-server.options.conf Source22: rpc-gssd.options.conf @@ -51,24 +45,24 @@ Source25: rpc-svcgssd.options.conf Source26: nfs.conf Source27: nfs-kernel-server.tmpfiles.conf Patch0: nfs-utils-1.0.7-bind-syntax.patch -Patch1: 0001-conffile-ignore-empty-environment-variables.patch -Patch2: 0002-mount-call-setgroups-before-setuid.patch -Patch3: 0003-nfs-server-generator-handle-noauto-mounts-correctly.patch -Patch4: nsm-headers.patch -Patch5: sysmacros.patch +Patch1: 0001-nfs.conf-allow-empty-assignments.patch +Patch2: 0002-Let-systemd-know-when-rpc.statd-is-needed.patch +Patch3: 0003-systemd-run-statd-notify-even-when-nfs-client-isn-t-.patch +Patch4: 0004-nfsidmap-honour-with-pluginpath-for-instalation.patch +Patch5: 0005-nfs.conf-fail-to-disable-major-NFS-version-4-using-v.patch BuildRequires: e2fsprogs-devel BuildRequires: fedfs-utils-devel BuildRequires: gcc-c++ BuildRequires: libtool BuildRequires: pkgconfig +BuildRequires: rpcgen BuildRequires: systemd-rpm-macros BuildRequires: tcpd-devel BuildRequires: pkgconfig(devmapper) BuildRequires: pkgconfig(kdb) BuildRequires: pkgconfig(krb5) BuildRequires: pkgconfig(libevent) -BuildRequires: pkgconfig(libnfsidmap) >= 0.24 BuildRequires: pkgconfig(libtirpc) BuildRequires: pkgconfig(mount) BuildRequires: pkgconfig(sqlite3) @@ -116,6 +110,30 @@ tune the number of server threads via the sysconfig variable USE_KERNEL_NFSD_NUMBER. For quota over NFS support, install the quota package. +%package -n libnfsidmap1 +Summary: NFSv4 ID Mapping Library +Group: Productivity/Networking/NFS +Version: 1.0 +Release: 0 +Obsoletes: nfsidmap + +%package -n nfsidmap-devel +Summary: NFSv4 ID Mapping Library development libraries +Group: Development/Libraries/C and C++ +Version: 1.0 +Release: 0 +Requires: libnfsidmap1 = %{version} + +%description -n libnfsidmap1 +In NFSv4, identities of users are conveyed by names rather than user ID +and group ID. Both the NFS server and client code in the kernel need to +translate these to numeric IDs. + +%description -n nfsidmap-devel +In NFSv4, identities of users are conveyed by names rather than user ID +and group ID. Both the NFS server and client code in the kernel need to +translate these to numeric IDs. + %package -n nfs-doc Summary: Support Utilities for NFS Group: Productivity/Networking/NFS @@ -150,6 +168,8 @@ export LDFLAGS="-pie" --enable-nfsdcltrack \ --enable-mount \ --enable-libmount-mount \ + --disable-static \ + --with-pluginpath=%{_libdir}/libnfsidmap-1.0.0 \ --enable-mountconfig make %{?_smp_mflags} cd nfs @@ -163,10 +183,7 @@ done %install make %{?_smp_mflags} DESTDIR=%{buildroot} install -install -D -m 644 %{SOURCE15} %{buildroot}%{_unitdir}/nfsserver.service -install -D -m 644 %{SOURCE16} %{buildroot}%{_unitdir}/nfs.service -install -D -m 644 %{SOURCE17} %{buildroot}%{_unitdir}/nfs-server.service.d/nfsserver.conf -install -D -m 644 %{SOURCE18} %{buildroot}%{_unitdir}/nfs-client.target.d/nfs.conf +find %{buildroot} -type f -name '*.la' -delete -print install -D -m 644 %{SOURCE20} %{buildroot}%{_unitdir}/nfs-mountd.service.d/options.conf install -D -m 644 %{SOURCE21} %{buildroot}%{_unitdir}/nfs-server.service.d/options.conf install -D -m 644 %{SOURCE22} %{buildroot}%{_unitdir}/rpc-gssd.service.d/options.conf @@ -175,9 +192,7 @@ install -D -m 644 %{SOURCE24} %{buildroot}%{_unitdir}/rpc-statd-notify.service.d install -D -m 644 %{SOURCE25} %{buildroot}%{_unitdir}/rpc-svcgssd.service.d/options.conf install -D -m 644 %{SOURCE26} %{buildroot}%{_sysconfdir}/nfs.conf install -D -m 644 %{SOURCE27} %{buildroot}%{_prefix}/lib/tmpfiles.d/nfs-kernel-server.conf -ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rcnfsserver ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rcnfs-server -ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rcnfs ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rcnfs-client # sysconfig-data mkdir -p %{buildroot}%{_fillupdir} @@ -191,8 +206,6 @@ mkdir -p -m 755 %{buildroot}%{_localstatedir}/lib/nfs/sm mkdir -p -m 755 %{buildroot}%{_localstatedir}/lib/nfs/sm.bak touch %{buildroot}%{_localstatedir}/lib/nfs/state mkdir -p %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services -install -m 0644 %{SOURCE7} %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/nfs-client -install -m 0644 %{SOURCE8} %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/nfs-kernel-server install -m 644 utils/mount/nfsmount.conf %{buildroot}%{_sysconfdir}/nfsmount.conf # # hack to avoid automatic python dependency @@ -202,7 +215,7 @@ chmod 644 %{buildroot}%{_sbindir}/{mountstats,nfsiostat} /usr/bin/getent passwd statd >/dev/null || \ /usr/sbin/useradd -r -c 'NFS statd daemon' \ -s /sbin/nologin -d %{_localstatedir}/lib/nfs -g nogroup statd -%service_add_pre nfs.service auth-rpcgss-module.service nfs-idmapd.service nfs-blkmap.service rpc-statd-notify.service rpc-gssd.service rpc-statd.service rpc-svcgssd.service +%service_add_pre auth-rpcgss-module.service nfs-idmapd.service nfs-blkmap.service rpc-statd-notify.service rpc-gssd.service rpc-statd.service rpc-svcgssd.service %post -n nfs-client chown statd:nogroup %{_localstatedir}/lib/nfs > /dev/null 2>&1 || : @@ -221,22 +234,24 @@ fi %{fillup_only -n nfs nfs} # %set_permissions /sbin/mount.nfs -%service_add_post nfs.service auth-rpcgss-module.service nfs-idmapd.service nfs-blkmap.service rpc-statd-notify.service rpc-gssd.service rpc-statd.service rpc-svcgssd.service +/sbin/ldconfig +%service_add_post auth-rpcgss-module.service nfs-idmapd.service nfs-blkmap.service rpc-statd-notify.service rpc-gssd.service rpc-statd.service rpc-svcgssd.service %preun -n nfs-client -%service_del_preun nfs.service auth-rpcgss-module.service nfs-idmapd.service nfs-blkmap.service rpc-statd-notify.service rpc-gssd.service rpc-statd.service rpc-svcgssd.service +%service_del_preun auth-rpcgss-module.service nfs-idmapd.service nfs-blkmap.service rpc-statd-notify.service rpc-gssd.service rpc-statd.service rpc-svcgssd.service %postun -n nfs-client -%service_del_postun nfs.service auth-rpcgss-module.service nfs-idmapd.service nfs-blkmap.service rpc-statd-notify.service rpc-gssd.service rpc-statd.service rpc-svcgssd.service +/sbin/ldconfig +%service_del_postun auth-rpcgss-module.service nfs-idmapd.service nfs-blkmap.service rpc-statd-notify.service rpc-gssd.service rpc-statd.service rpc-svcgssd.service %verifyscript -n nfs-client %verify_permissions -e /sbin/mount.nfs %pre -n nfs-kernel-server -%service_add_pre nfsserver.service nfs-svcgssd.service nfs-mountd.service nfs-server.service +%service_add_pre nfs-svcgssd.service nfs-mountd.service nfs-server.service %preun -n nfs-kernel-server -%service_del_preun nfsserver.service nfs-svcgssd.service nfs-mountd.service nfs-server.service +%service_del_preun nfs-svcgssd.service nfs-mountd.service nfs-server.service %post -n nfs-kernel-server ### migrate from /var/lock/subsys @@ -248,12 +263,12 @@ if [ -f %{_localstatedir}/lock/subsys/nfsserver-rpc.idmapd ]; then mv %{_localstatedir}/lock/subsys/nfsserver-rpc.idmapd /run/nfs fi ### -%service_add_post nfsserver.service nfs-mountd.service nfs-server.service +%service_add_post nfs-mountd.service nfs-server.service %tmpfiles_create nfs-kernel-server.conf %set_permissions /var/lib/nfs/rmtab %postun -n nfs-kernel-server -%service_del_postun nfsserver.service nfs-mountd.service nfs-server.service +%service_del_postun nfs-mountd.service nfs-server.service %verifyscript -n nfs-kernel-server %verify_permissions -e /var/lib/nfs/rmtab @@ -272,7 +287,6 @@ fi %attr(0755,root,root) %{_sbindir}/nfsiostat %{_sbindir}/nfsidmap %{_sbindir}/nfsstat -%{_sbindir}/rcnfs %{_sbindir}/rcnfs-client %{_sbindir}/rpc.gssd %{_sbindir}/rpc.idmapd @@ -283,6 +297,7 @@ fi %{_sbindir}/start-statd %{_sbindir}/blkmapd %{_sbindir}/rpc.svcgssd +%{_sbindir}/nfsconf %{_unitdir}/auth-rpcgss-module.service %{_unitdir}/nfs-blkmap.service %{_unitdir}/nfs-client.target @@ -290,29 +305,26 @@ fi %{_unitdir}/nfs-utils.service %{_unitdir}/rpc-gssd.service %{_unitdir}/rpc-gssd.service.d -%{_unitdir}/rpc-gssd.service.d/options.conf +%{_unitdir}/rpc_pipefs.target %{_unitdir}/rpc-statd-notify.service %{_unitdir}/rpc-statd-notify.service.d -%{_unitdir}/rpc-statd-notify.service.d/options.conf %{_unitdir}/rpc-statd.service %{_unitdir}/rpc-statd.service.d -%{_unitdir}/rpc-statd.service.d/options.conf %{_unitdir}/rpc-svcgssd.service %{_unitdir}/rpc-svcgssd.service.d -%{_unitdir}/rpc-svcgssd.service.d/options.conf %{_unitdir}/var-lib-nfs-rpc_pipefs.mount -%{_unitdir}/nfs.service -%dir %{_unitdir}/nfs-client.target.d -%{_unitdir}/nfs-client.target.d/nfs.conf %dir /usr/lib/systemd/system-generators /usr/lib/systemd/system-generators/nfs-server-generator +/usr/lib/systemd/system-generators/rpc-pipefs-generator %{_mandir}/man5/nfsmount.conf.5%{ext_man} %{_mandir}/man5/nfs.conf.5%{ext_man} %{_mandir}/man5/nfs.5%{ext_man} +%{_mandir}/man5/idmapd.conf.5%{ext_man} %{_mandir}/man7/nfs.systemd.7%{ext_man} %{_mandir}/man8/mount.nfs.8%{ext_man} %{_mandir}/man8/nfsidmap.8%{ext_man} %{_mandir}/man8/nfsstat.8%{ext_man} +%{_mandir}/man8/nfsconf.8%{ext_man} %{_mandir}/man8/rpc.sm-notify.8%{ext_man} %{_mandir}/man8/showmount.8%{ext_man} %{_mandir}/man8/sm-notify.8%{ext_man} @@ -336,22 +348,16 @@ fi %attr(0700,statd,nogroup) %dir %{_localstatedir}/lib/nfs/sm %attr(0700,statd,nogroup) %dir %{_localstatedir}/lib/nfs/sm.bak %attr(0700,statd,nogroup) %ghost %{_localstatedir}/lib/nfs/state -%config %attr(0644,root,root) %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/nfs-client %files -n nfs-kernel-server %defattr(-,root,root) %{_unitdir}/nfs-mountd.service %{_unitdir}/nfs-mountd.service.d -%{_unitdir}/nfs-mountd.service.d/options.conf %{_unitdir}/nfs-server.service %{_unitdir}/nfs-server.service.d -%{_unitdir}/nfs-server.service.d/options.conf %{_unitdir}/proc-fs-nfsd.mount -%{_unitdir}/nfsserver.service -%{_unitdir}/nfs-server.service.d/nfsserver.conf %{_prefix}/lib/tmpfiles.d/nfs-kernel-server.conf %{_sbindir}/exportfs -%{_sbindir}/rcnfsserver %{_sbindir}/rcnfs-server %{_sbindir}/rpc.mountd %{_sbindir}/rpc.nfsd @@ -366,7 +372,17 @@ fi %{_mandir}/man8/nfsdcltrack.8%{ext_man} %config(noreplace) %{_localstatedir}/lib/nfs/etab %config(noreplace) %{_localstatedir}/lib/nfs/rmtab -%config %attr(0644,root,root) %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/nfs-kernel-server + +%files -n libnfsidmap1 +%{_libdir}/libnfsidmap-1.0.0/ +%{_libdir}/libnfsidmap.so.1* + +%files -n nfsidmap-devel +%{_libdir}/libnfsidmap.so +%{_includedir}/*.h +%{_libdir}/pkgconfig/libnfsidmap.pc +%{_mandir}/man3/* +%doc support/nfsidmap/README %files -n nfs-doc %defattr(-,root,root) diff --git a/nfs.service b/nfs.service deleted file mode 100644 index ad879f7..0000000 --- a/nfs.service +++ /dev/null @@ -1,23 +0,0 @@ -[Unit] -Description=Alias for NFS client -# The systemd alias mechanism (using symlinks) isn't rich enough. -# If you "systemctl enable" an alias, it doesn't enable the -# target. -# This service file creates a sufficiently rich alias for nfs-client -# (which is the canonical upstream name) -# "start", "stop", "restart", "reload" on this will do the same to nfs-client. -# "enable" on this will only enable this service, but when it starts, that -# starts nfs-client, so it is effectively enabled. -# nfs-server.d/nfsserver.conf is part of this service. - -Requires= nfs-client.target -PropagatesReloadTo=nfs-client.target - -[Service] -Type=oneshot -RemainAfterExit=yes -ExecStart=/bin/true - -[Install] -WantedBy=multi-user.target - diff --git a/nfsserver.service b/nfsserver.service deleted file mode 100644 index 028cfdc..0000000 --- a/nfsserver.service +++ /dev/null @@ -1,26 +0,0 @@ -[Unit] -Description=Alias for NFS server -# The systemd alias mechanism (using symlinks) isn't rich enough. -# If you "systemctl enable" an alias, it doesn't enable the -# target. -# This service file creates a sufficiently rich alias for nfs-server -# (which is the canonical upstream name) -# "start", "stop", "restart", "reload" on this will do the same to nfs-server. -# "enable" on this will only enable this service, but when it starts, that -# starts nfs-server, so it is effectively enabled. -# nfs-server.d/nfsserver.conf is part of this service. - -Requires= nfs-server.service - -[Service] -Type=oneshot -ExecStart=/bin/true -RemainAfterExit=yes -# Can't just PropagatesReloadTo to nfs-server.service -# as reload fails if we don't have our own ExecReload -# So copy that from nfs-server.service -ExecReload=/usr/sbin/exportfs -r - -[Install] -WantedBy=multi-user.target - diff --git a/nsm-headers.patch b/nsm-headers.patch deleted file mode 100644 index 2e703f0..0000000 --- a/nsm-headers.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: nfs-utils-2.1.1/support/nsm/rpc.c -=================================================================== ---- nfs-utils-2.1.1.orig/support/nsm/rpc.c -+++ nfs-utils-2.1.1/support/nsm/rpc.c -@@ -41,6 +41,7 @@ - #include - #include - #include -+#include - #include - #include - diff --git a/sysmacros.patch b/sysmacros.patch deleted file mode 100644 index 5365a4a..0000000 --- a/sysmacros.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: nfs-utils-2.1.1/utils/blkmapd/device-discovery.c -=================================================================== ---- nfs-utils-2.1.1.orig/utils/blkmapd/device-discovery.c -+++ nfs-utils-2.1.1/utils/blkmapd/device-discovery.c -@@ -27,6 +27,7 @@ - */ - - #include -+#include - #include - #include - #include