Accepting request 652194 from network:samba:STABLE

- Update to cifs-utils 6.8.
  + document more mount options
  + man pages now generated from RST files
  + add python-docutils build dependency
  + update keyring to check tarball signature
  + remove 0001-manpage-correct-typos-and-spelling-mistakes.patch
  + remove 0002-mount.cifs-document-SMBv3.1.1-and-new-seal-option.patch
- Add typo corrections, better doc and configure fixes from upstream
  + add 0001-docs-cleanup-rst-formating.patch
  + add 0002-mount.cifs.rst-document-new-no-handlecache-mount-opt.patch
  + add 0003-manpage-update-mount.cifs-manpage-with-info-about-rd.patch
  + add 0004-checkopts-add-python-script-to-cross-check-mount-opt.patch
  + add 0005-mount.cifs.rst-document-missing-options-correct-wron.patch
  + add 0006-cifs-utils-support-rst2man-3.patch
  + add 0007-checkopts-report-duplicated-options-in-man-page.patch
  + add 0008-mount.cifs.rst-more-cleanups.patch
  + add 0009-mount.cifs.rst-document-vers-3-mount-option.patch
  + add 0010-mount.cifs.rst-document-vers-3.02-mount-option.patch
- Cleanup spec file
  * assume SUSE vendor and SLE >= 11

- update to 6.7:
  * mount.cifs cleanups
- includes 6.6:
  * cleanup/overhaul of cifs.upcall krb5 credcache handling
- partial cleanup with spec-cleaner

OBS-URL: https://build.opensuse.org/request/show/652194
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/cifs-utils?expand=0&rev=54
This commit is contained in:
Dominique Leuenberger 2018-12-03 09:05:08 +00:00 committed by Git OBS Bridge
commit dfe301b0da
19 changed files with 2151 additions and 263 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,98 +0,0 @@
From 9ba078eb179f713d4f1b5e8d7e416a0e86d8053e Mon Sep 17 00:00:00 2001
From: Aurelien Aptel <aaptel@suse.com>
Date: Wed, 15 Feb 2017 18:10:09 +0100
Subject: [PATCH 1/2] manpage: correct typos and spelling mistakes
Signed-off-by: Aurelien Aptel <aaptel@suse.com>
---
mount.cifs.8 | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/mount.cifs.8 b/mount.cifs.8
index 01579f6..9104fae 100644
--- a/mount.cifs.8
+++ b/mount.cifs.8
@@ -324,7 +324,7 @@ See section \fIACCESSING FILES WITH BACKUP INTENT\fR for more details
.PP
nocase
.RS 4
-Request case insensitive path name matching (case sensitive is the default if the server suports it)\&.
+Request case insensitive path name matching (case sensitive is the default if the server supports it)\&.
.RE
.PP
ignorecase
@@ -457,7 +457,7 @@ Enable support for Minshall+French symlinks(see http://wiki.samba.org/index.php/
.PP
serverino
.RS 4
-Use inode numbers (unique persistent file identifiers) returned by the server instead of automatically generating temporary inode numbers on the client\&. Although server inode numbers make it easier to spot hardlinked files (as they will have the same inode numbers) and inode numbers may be persistent (which is userful for some sofware), the server does not guarantee that the inode numbers are unique if multiple server side mounts are exported under a single share (since inode numbers on the servers might not be unique if multiple filesystems are mounted under the same shared higher level directory)\&. Note that not all servers support returning server inode numbers, although those that support the CIFS Unix Extensions, and Windows 2000 and later servers typically do support this (although not necessarily on every local server filesystem)\&. Parameter has no effect if the server lacks support for returning inode numbers or equivalent\&. This behavior is enabled by default\&.
+Use inode numbers (unique persistent file identifiers) returned by the server instead of automatically generating temporary inode numbers on the client\&. Although server inode numbers make it easier to spot hardlinked files (as they will have the same inode numbers) and inode numbers may be persistent (which is useful for some software), the server does not guarantee that the inode numbers are unique if multiple server side mounts are exported under a single share (since inode numbers on the servers might not be unique if multiple filesystems are mounted under the same shared higher level directory)\&. Note that not all servers support returning server inode numbers, although those that support the CIFS Unix Extensions, and Windows 2000 and later servers typically do support this (although not necessarily on every local server filesystem)\&. Parameter has no effect if the server lacks support for returning inode numbers or equivalent\&. This behavior is enabled by default\&.
.RE
.PP
noserverino
@@ -485,7 +485,7 @@ Do not allow getfattr/setfattr to get/set xattrs, even if server would support i
.PP
rsize=\fIbytes\fR
.RS 4
-Maximum amount of data that the kernel will request in a read request in bytes. Prior to kernel 3.2.0, the default was 16k, and the maximum size was limited by the CIFSMaxBufSize module parameter. As of kernel 3.2.0, the behavior varies according to whether POSIX extensions are enabled on the mount and the server supports large POSIX reads. If they are, then the default is 1M, and the maxmimum is 16M. If they are not supported by the server, then the default is 60k and the maximum is around 127k. The reason for the 60k is because it's the maximum size read that windows servers can fill. Note that this value is a maximum, and the client may settle on a smaller size to accomodate what the server supports. In kernels prior to 3.2.0, no negotiation is performed.
+Maximum amount of data that the kernel will request in a read request in bytes. Prior to kernel 3.2.0, the default was 16k, and the maximum size was limited by the CIFSMaxBufSize module parameter. As of kernel 3.2.0, the behavior varies according to whether POSIX extensions are enabled on the mount and the server supports large POSIX reads. If they are, then the default is 1M, and the maximum is 16M. If they are not supported by the server, then the default is 60k and the maximum is around 127k. The reason for the 60k is because it's the maximum size read that windows servers can fill. Note that this value is a maximum, and the client may settle on a smaller size to accommodate what the server supports. In kernels prior to 3.2.0, no negotiation is performed.
.RE
.PP
wsize=\fIbytes\fR
@@ -506,7 +506,7 @@ multiuser
.RS 4
Map user accesses to individual credentials when accessing the server\&. By default, CIFS mounts only use a single set of user credentials (the mount credentials) when accessing a share\&. With this option, the client instead creates a new session with the server using the user's credentials whenever a new user accesses the mount. Further accesses by that user will also use those credentials\&. Because the kernel cannot prompt for passwords, multiuser mounts are limited to mounts using sec= options that don't require passwords.
.sp
-With this change, it's feasible for the server to handle permissions enforcement, so this option also implies "noperm"\&. Furthermore, when unix extensions aren't in use and the administrator has not overriden ownership using the uid= or gid= options, ownership of files is presented as the current user accessing the share\&.
+With this change, it's feasible for the server to handle permissions enforcement, so this option also implies "noperm"\&. Furthermore, when unix extensions aren't in use and the administrator has not overridden ownership using the uid= or gid= options, ownership of files is presented as the current user accessing the share\&.
.RE
.PP
actimeo=\fIarg\fR
@@ -605,7 +605,7 @@ mount \-t cifs //server/share /mnt \-\-verbose \-o user=username
.RE
.SH "SERVICE FORMATTING AND DELIMITERS"
.PP
-It\'s generally preferred to use forward slashes (/) as a delimiter in service names\&. They are considered to be the "universal delimiter" since they are generally not allowed to be embedded within path components on Windows machines and the client can convert them to blackslashes (\e) unconditionally\&. Conversely, backslash characters are allowed by POSIX to be part of a path component, and can\'t be automatically converted in the same way\&.
+It\'s generally preferred to use forward slashes (/) as a delimiter in service names\&. They are considered to be the "universal delimiter" since they are generally not allowed to be embedded within path components on Windows machines and the client can convert them to backslashes (\e) unconditionally\&. Conversely, backslash characters are allowed by POSIX to be part of a path component, and can\'t be automatically converted in the same way\&.
.PP
mount\&.cifs will attempt to convert backslashes to forward slashes where it\'s able to do so, but it cannot do so in any path component following the sharename\&.
.SH "INODE NUMBERS"
@@ -753,7 +753,7 @@ If either upcall to cifs.idmap is not setup correctly or winbind is not configur
.RE
.SH "ACCESSING FILES WITH BACKUP INTENT"
.PP
-For an user on the server, desired access to a file is determined by the permissions and rights associated with that file. This is typically accomplished using owenrship and ACL. For a user who does not have access rights to a file, it is still possible to access that file for a specific or a targeted purpose by granting special rights. One of the specific purposes is to access a file with the intent to either backup or restore i.e. backup intent. The right to access a file with the backup intent can typically be granted by making that user a part of the built-in group Backup Operators. Thus, when this user attempts to open a file with the backup intent, open request is sent by setting the bit FILE_OPEN_FOR_BACKUP_INTENT as one of the CreateOptions.
+For an user on the server, desired access to a file is determined by the permissions and rights associated with that file. This is typically accomplished using ownership and ACL. For a user who does not have access rights to a file, it is still possible to access that file for a specific or a targeted purpose by granting special rights. One of the specific purposes is to access a file with the intent to either backup or restore i.e. backup intent. The right to access a file with the backup intent can typically be granted by making that user a part of the built-in group Backup Operators. Thus, when this user attempts to open a file with the backup intent, open request is sent by setting the bit FILE_OPEN_FOR_BACKUP_INTENT as one of the CreateOptions.
As an example, on a Windows server, a user named testuser, cannot open this file with such a security descriptor.
.PP
@@ -772,7 +772,7 @@ But the user testuser, if it becomes part of the group Backup Operators, can ope
Any user on the client side who can authenticate as such a user on the server,
can access the files with the backup intent. But it is desirable and preferable for security reasons amongst many, to restrict this special right.
-The mount option backupuid is used to restrict this special right to a user which is specified by either a name or an id. The mount option backupgid is used to restrict this special right to the users in a group which is specified by either a name or an id. Only users maching either backupuid or backupgid shall attempt to access files with backup intent. These two mount options can be used together.
+The mount option backupuid is used to restrict this special right to a user which is specified by either a name or an id. The mount option backupgid is used to restrict this special right to the users in a group which is specified by either a name or an id. Only users matching either backupuid or backupgid shall attempt to access files with backup intent. These two mount options can be used together.
.SH "FILE AND DIRECTORY OWNERSHIP AND PERMISSIONS"
.PP
The core CIFS protocol does not provide unix ownership information or mode for files and directories\&. Because of this, files and directories will generally appear to be owned by whatever values the uid= or gid= options are set, and will have permissions set to the default file_mode and dir_mode for the mount\&. Attempting to change these values via chmod/chown will return success but have no effect\&.
@@ -783,7 +783,7 @@ If the uid\'s and gid\'s being used do not match on the client and server, the f
.PP
When unix extensions are not negotiated, it\'s also possible to emulate them locally on the server using the "dynperm" mount option\&. When this mount option is in effect, newly created files and directories will receive what appear to be proper permissions\&. These permissions are not stored on the server however and can disappear at any time in the future (subject to the whims of the kernel flushing out the inode cache)\&. In general, this mount option is discouraged\&.
.PP
-It\'s also possible to override permission checking on the client altogether via the noperm option\&. Server\-side permission checks cannot be overriden\&. The permission checks done by the server will always correspond to the credentials used to mount the share, and not necessarily to the user who is accessing the share\&.
+It\'s also possible to override permission checking on the client altogether via the noperm option\&. Server\-side permission checks cannot be overridden\&. The permission checks done by the server will always correspond to the credentials used to mount the share, and not necessarily to the user who is accessing the share\&.
.SH "ENVIRONMENT VARIABLES"
.PP
The variable
@@ -799,7 +799,7 @@ The variable
may contain the pathname of a file to read the password from\&. A single line of input is read and used as the password\&.
.SH "NOTES"
.PP
-This command may be used only by root, unless installed setuid, in which case the noeexec and nosuid mount flags are enabled\&. When installed as a setuid program, the program follows the conventions set forth by the mount program for user mounts, with the added restriction that users must be able to chdir() into the
+This command may be used only by root, unless installed setuid, in which case the noexec and nosuid mount flags are enabled\&. When installed as a setuid program, the program follows the conventions set forth by the mount program for user mounts, with the added restriction that users must be able to chdir() into the
mountpoint prior to the mount in order to be able to mount onto it.
.PP
Some samba client tools like smbclient(8) honour client\-side configuration parameters present in smb\&.conf\&. Unlike those client tools,
--
2.12.0

View File

@ -1,61 +0,0 @@
From 5513fa5aa37602b8716b7d28b1ca5cf99d446efd Mon Sep 17 00:00:00 2001
From: Aurelien Aptel <aaptel@suse.com>
Date: Fri, 21 Apr 2017 16:59:50 +0200
Subject: [PATCH 2/2] mount.cifs: document SMBv3.1.1 and new seal option
Signed-off-by: Aurelien Aptel <aaptel@suse.com>
---
mount.cifs.8 | 16 ++++++++++++++++
mount.cifs.c | 2 +-
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/mount.cifs.8 b/mount.cifs.8
index 9104fae..ab35448 100644
--- a/mount.cifs.8
+++ b/mount.cifs.8
@@ -440,6 +440,11 @@ The default in mainline kernel versions prior to v3.8 was sec=ntlm. In v3.8, the
If the server requires signing during protocol negotiation, then it may be enabled automatically. Packet signing may also be enabled automatically if it's enabled in /proc/fs/cifs/SecurityFlags.
.RE
.PP
+seal
+.RS 4
+Request encryption at the SMB layer. Encryption is only supported in SMBv3 and above. The encryption algorithm used is AES-128-CCM.
+.RE
+.PP
nobrl
.RS 4
Do not send byte range lock requests to the server\&. This is necessary for certain applications that break with cifs style mandatory byte range locks (and most cifs servers do not yet support requesting advisory byte range locks)\&.
@@ -593,6 +598,17 @@ SMB protocol version. Allowed values are:
.\}
3.0 - The SMBv3.0 protocol that was introduced in Microsoft Windows 8 and Windows Server 2012.
.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+3.1.1 or 3.11 - The SMBv3.1.1 protocol that was introduced in Microsoft Windows Server 2016.
+.RE
.PP
Note too that while this option governs the protocol version used, not all features of each version are available.
.RE
diff --git a/mount.cifs.c b/mount.cifs.c
index 2612feb..8ca848d 100644
--- a/mount.cifs.c
+++ b/mount.cifs.c
@@ -269,7 +269,7 @@ static int mount_usage(FILE * stream)
fprintf(stream,
"\n\tmapchars,nomapchars,nolock,servernetbiosname=<SRV_RFC1001NAME>");
fprintf(stream,
- "\n\tdirectio,nounix,cifsacl,sec=<authentication mechanism>,sign,fsc");
+ "\n\tdirectio,nounix,cifsacl,sec=<authentication mechanism>,sign,seal,fsc");
fprintf(stream,
"\n\nOptions not needed for servers supporting CIFS Unix extensions");
fprintf(stream,
--
2.12.0

View File

@ -0,0 +1,37 @@
From bfcbfaa27a6bcfea3d463e793feff5a983f344a5 Mon Sep 17 00:00:00 2001
From: Aurelien Aptel <aaptel@suse.com>
Date: Tue, 15 May 2018 10:40:48 +0200
Subject: [PATCH 02/10] mount.cifs.rst: document new (no)handlecache mount
option
Signed-off-by: Aurelien Aptel <aaptel@suse.com>
Reviewed-by: Steve French <smfrench@gmail.com>
Reviewed-by: Pavel Shilovsky <piastryyy@gmail.com>
---
mount.cifs.rst | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/mount.cifs.rst b/mount.cifs.rst
index c0f0bdb..405c459 100644
--- a/mount.cifs.rst
+++ b/mount.cifs.rst
@@ -237,6 +237,16 @@ cache=arg
The default in kernels prior to 3.7 was ``loose``. As of kernel 3.7 the
default is ``strict``.
+handlecache
+ (default) In SMB2 and above, the client often has to open the root
+ of the share (empty path) in various places during mount, path
+ revalidation and the statfs(2) system call. This option cuts
+ redundant round trip traffic (opens and closes) by simply keeping
+ the directory handle for the root around once opened.
+
+nohandlecache
+ Disable caching of the share root directory handle.
+
directio
Do not do inode data caching on files opened on this mount. This
precludes mmaping files on this mount. In some cases with fast
--
2.13.7

View File

@ -0,0 +1,30 @@
From 03a3296c79f8195f94c43a3b4feb09df75d9b90e Mon Sep 17 00:00:00 2001
From: Kenneth Dsouza <kdsouza@redhat.com>
Date: Fri, 13 Jul 2018 23:49:59 +0530
Subject: [PATCH 03/10] manpage: update mount.cifs manpage with info about rdma
option
Signed-off-by: Kenneth Dsouza <kdsouza@redhat.com>
---
mount.cifs.rst | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/mount.cifs.rst b/mount.cifs.rst
index 405c459..56c1bf9 100644
--- a/mount.cifs.rst
+++ b/mount.cifs.rst
@@ -403,6 +403,11 @@ echo_interval=n
If this option is not given then the default value of 60 seconds is used.
The minimum tunable value is 1 second and maximum can go up to 600 seconds.
+rdma
+ Use to connect to SMB Direct, only applicable when specified with
+ vers=3 or vers=3.x.
+ Here 3.x can be 3.0, 3.02 or 3.1.1.
+
serverino
Use inode numbers (unique persistent file identifiers) returned by the
server instead of automatically generating temporary inode numbers on
--
2.13.7

View File

@ -0,0 +1,261 @@
From 97209a56d13b8736579a58cccf00d2da4e4a0e5a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Aur=C3=A9lien=20Aptel?= <aaptel@suse.com>
Date: Tue, 10 Jul 2018 17:50:42 +0200
Subject: [PATCH 04/10] checkopts: add python script to cross check mount
options
Signed-off-by: Aurelien Aptel <aaptel@suse.com>
---
checkopts | 240 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 240 insertions(+)
create mode 100755 checkopts
diff --git a/checkopts b/checkopts
new file mode 100755
index 0000000..26ca271
--- /dev/null
+++ b/checkopts
@@ -0,0 +1,240 @@
+#!/usr/bin/env python3
+#
+# Script to check for inconsistencies between documented mount options
+# and implemented kernel options.
+# Copyright (C) 2018 Aurelien Aptel (aaptel@suse.com)
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+import os
+import sys
+import re
+import subprocess
+import argparse
+from pprint import pprint as P
+
+def extract_canonical_opts(s):
+ """
+ Return list of option names present in s.
+ e.g "opt1=a|opt2=d" => ["opt1", "opt2"])
+ """
+ opts = s.split("|")
+ res = []
+ for o in opts:
+ x = o.split("=")
+ res.append(x[0])
+ return res
+
+def extract_kernel_opts(fn):
+ STATE_BASE = 0
+ STATE_DEF = 1
+ STATE_USE = 2
+ STATE_EXIT = 3
+
+ state = STATE_BASE
+ fmt2enum = {}
+ enum2code = {}
+ code = ''
+ current_opt = ''
+ rx = RX()
+
+ def code_add(s):
+ if current_opt != '':
+ if current_opt not in enum2code:
+ enum2code[current_opt] = ''
+ enum2code[current_opt] += s
+
+ with open(fn) as f:
+ for s in f.readlines():
+ if state == STATE_EXIT:
+ break
+
+ elif state == STATE_BASE:
+ if rx.search(r'cifs_mount_option_tokens.*\{', s):
+ state = STATE_DEF
+ elif rx.search(r'^cifs_parse_mount_options', s):
+ state = STATE_USE
+
+ elif state == STATE_DEF:
+ if rx.search(r'(Opt_[a-zA-Z0-9_]+)\s*,\s*"([^"]+)"', s):
+ fmt = rx.group(2)
+ opts = extract_canonical_opts(fmt)
+ assert(len(opts) == 1)
+ name = opts[0]
+ fmt2enum[name] = {'enum':rx.group(1), 'fmt':fmt}
+ elif rx.search(r'^};', s):
+ state = STATE_BASE
+
+ elif state == STATE_USE:
+ if rx.search(r'^\s*case (Opt_[a-zA-Z0-9_]+)', s):
+ current_opt = rx.group(1)
+ elif current_opt != '' and rx.search(r'^\s*default:', s):
+ state = STATE_EXIT
+ else:
+ code_add(s)
+ return fmt2enum, enum2code
+
+def chomp(s):
+ if s[-1] == '\n':
+ return s[:-1]
+ return s
+
+def extract_man_opts(fn):
+ STATE_EXIT = 0
+ STATE_BASE = 1
+ STATE_OPT = 2
+
+ state = STATE_BASE
+ rx = RX()
+ opts = {}
+
+ with open(fn) as f:
+ for s in f.readlines():
+ if state == STATE_EXIT:
+ break
+
+ elif state == STATE_BASE:
+ if rx.search(r'^OPTION', s):
+ state = STATE_OPT
+
+ elif state == STATE_OPT:
+ if rx.search('^[a-z]', s) and len(s) < 50:
+ s = chomp(s)
+ names = extract_canonical_opts(s)
+ for name in names:
+ opts[name] = s
+ elif rx.search(r'^[A-Z]+', s):
+ state = STATE_EXIT
+ return opts
+
+def format_code(s):
+ # remove common indent in the block
+ min_indent = None
+ for ln in s.split("\n"):
+ indent = 0
+ for c in ln:
+ if c == '\t': indent += 1
+ else: break
+ if min_indent is None:
+ min_indent = indent
+ elif indent > 0:
+ min_indent = min(indent, min_indent)
+ out = ''
+ lines = s.split("\n")
+ if lines[-1].strip() == '':
+ lines.pop()
+ for ln in lines:
+ out += "| %s\n" % ln[min_indent:]
+ return out
+
+def sortedset(s):
+ return sorted(list(s), key=lambda x: re.sub('^no', '', x))
+
+def opt_neg(opt):
+ if opt.startswith("no"):
+ return opt[2:]
+ else:
+ return "no"+opt
+
+def main():
+ ap = argparse.ArgumentParser(description="Cross-check mount options from cifs.ko/man page")
+ ap.add_argument("cfile", help="path to connect.c")
+ ap.add_argument("rstfile", help="path to mount.cifs.rst")
+ args = ap.parse_args()
+
+ fmt2enum, enum2code = extract_kernel_opts(args.cfile)
+ manopts = extract_man_opts(args.rstfile)
+
+ kernel_opts_set = set(fmt2enum.keys())
+ man_opts_set = set(manopts.keys())
+
+ def opt_alias_is_doc(o):
+ enum = fmt2enum[o]['enum']
+ aliases = []
+ for k,v in fmt2enum.items():
+ if k != o and v['enum'] == enum:
+ if opt_is_doc(k):
+ return k
+ return None
+
+ def opt_exists(o):
+ return o in fmt2enum
+
+ def opt_is_doc(o):
+ return o in manopts
+
+
+ print('UNDOCUMENTED OPTIONS')
+ print('====================')
+
+ undoc_opts = kernel_opts_set - man_opts_set
+ # group opts and their negations together
+ for opt in sortedset(undoc_opts):
+ fmt = fmt2enum[opt]['fmt']
+ enum = fmt2enum[opt]['enum']
+ code = format_code(enum2code[enum])
+ neg = opt_neg(opt)
+
+ if enum == 'Opt_ignore':
+ print("# skipping %s (Opt_ignore)\n"%opt)
+ continue
+
+ if opt_exists(neg) and opt_is_doc(neg):
+ print("# skipping %s (%s is documented)\n"%(opt, neg))
+ continue
+
+ alias = opt_alias_is_doc(opt)
+ if alias:
+ print("# skipping %s (alias %s is documented)\n"%(opt, alias))
+ continue
+
+ print('OPTION %s ("%s" -> %s):\n%s'%(opt, fmt, enum, code))
+
+ print('')
+ print('DOCUMENTED BUT NON-EXISTING OPTIONS')
+ print('===================================')
+
+ unex_opts = man_opts_set - kernel_opts_set
+ # group opts and their negations together
+ for opt in sortedset(unex_opts):
+ fmt = manopts[opt]
+ print('OPTION %s ("%s")' % (opt, fmt))
+
+
+ print('')
+ print('NEGATIVE OPTIONS WITHOUT POSITIVE')
+ print('=================================')
+
+ for opt in sortedset(kernel_opts_set):
+ if not opt.startswith('no'):
+ continue
+
+ neg = opt[2:]
+ if not opt_exists(neg):
+ print("OPTION %s exists but not %s"%(opt,neg))
+
+# little helper to test AND store result at the same time so you can
+# do if/elsif easily instead of nesting them when you need to do
+# captures
+class RX:
+ def __init__(self):
+ pass
+ def search(self, rx, s, flags=0):
+ self.r = re.search(rx, s, flags)
+ return self.r
+ def group(self, n):
+ return self.r.group(n)
+
+if __name__ == '__main__':
+ main()
--
2.13.7

View File

@ -0,0 +1,219 @@
From 7325a01abc529d68756bae90cf23233392626939 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Aur=C3=A9lien=20Aptel?= <aaptel@suse.com>
Date: Tue, 10 Jul 2018 17:50:43 +0200
Subject: [PATCH 05/10] mount.cifs.rst: document missing options, correct wrong
ones
Signed-off-by: Aurelien Aptel <aaptel@suse.com>
---
mount.cifs.rst | 111 ++++++++++++++++++++++++++++++++++++++++-----------------
1 file changed, 79 insertions(+), 32 deletions(-)
diff --git a/mount.cifs.rst b/mount.cifs.rst
index 56c1bf9..13b3a1e 100644
--- a/mount.cifs.rst
+++ b/mount.cifs.rst
@@ -123,6 +123,11 @@ forcegid
of the gid= option. See the section on `FILE AND DIRECTORY OWNERSHIP
AND PERMISSIONS`_ below for more information.
+idsfromsid
+ Extract uid/gid from special SID instead of mapping it. See the
+ section on `FILE AND DIRECTORY OWNERSHIP AND PERMISSIONS`_ below for
+ more information.
+
port=arg
sets the port number on which the client will attempt to contact the
CIFS server. If this value is specified, look for an existing
@@ -133,8 +138,9 @@ port=arg
try to connect on port 445 first and then port 139 if that
fails. Return an error if both fail.
-servernetbiosname=arg
- Specify the server netbios name (RFC1001 name) to use when attempting
+
+netbiosname=arg
+ Specify the client netbios name (RFC1001 name) to use when attempting
to setup a session to the server. Although rarely needed for mounting
to newer servers, this option is needed for mounting to some older
servers (such as OS/2 or Windows 98 and Windows ME) since when
@@ -143,7 +149,8 @@ servernetbiosname=arg
characters long and is usually uppercased.
servern=arg
- Synonym for ``servernetbiosname``
+ Similarl to ``netbiosname`` except it specifies the netbios name of
+ the server instead of the client.
netbiosname=arg
When mounting to servers via port 139, specifies the RFC1001 source
@@ -166,6 +173,10 @@ ip=arg|addr=arg
domain=arg|dom=arg|workgroup=arg
sets the domain (workgroup) of the user.
+domainauto
+ When using NTLMv2 authentification and not providing a domain via
+ ``domain``, guess the domain from the server NTLM challenge.
+
guest
don't prompt for a password.
@@ -237,6 +248,9 @@ cache=arg
The default in kernels prior to 3.7 was ``loose``. As of kernel 3.7 the
default is ``strict``.
+nostrictsync
+ Do not flush to the server on fsync().
+
handlecache
(default) In SMB2 and above, the client often has to open the root
of the share (empty path) in various places during mount, path
@@ -247,32 +261,6 @@ handlecache
nohandlecache
Disable caching of the share root directory handle.
-directio
- Do not do inode data caching on files opened on this mount. This
- precludes mmaping files on this mount. In some cases with fast
- networks and little or no caching benefits on the client (e.g. when
- the application is doing large sequential reads bigger than page size
- without rereading the same data) this can provide better performance
- than the default behavior which caches reads (readahead) and writes
- (writebehind) through the local Linux client pagecache if oplock
- (caching token) is granted and held. Note that direct allows write
- operations larger than page size to be sent to the server. On some
- kernels this requires the cifs.ko module to be built with the
- ``CIFS_EXPERIMENTAL`` configure option.
-
- This option is will be deprecated in 3.7. Users should use
- ``cache=none`` instead on more recent kernels.
-
-strictcache
- Use for switching on strict cache mode. In this mode the client reads
- from the cache all the time it has *Oplock Level II* , otherwise -
- read from the server. As for write - the client stores a data in the
- cache in *Exclusive Oplock* case, otherwise - write directly to the
- server.
-
- This option is will be deprecated in 3.7. Users should use
- ``cache=strict`` instead on more recent kernels.
-
rwpidforward
Forward pid of a process who opened a file to any read or write
operation on that file. This prevent applications like wine(1) from
@@ -283,7 +271,7 @@ mapchars
including the colon, question mark, pipe, asterik, greater than and
less than characters) to the remap range (above 0xF000), which also
allows the CIFS client to recognize files created with such characters
- by Windows's POSIX emulation. This can also be useful when mounting to
+ by Windows's Services for Mac. This can also be useful when mounting to
most versions of Samba (which also forbids creating and opening files
whose names contain any of these seven characters). This has no effect
if the server does not support Unicode on the wire. Please note that
@@ -293,6 +281,10 @@ mapchars
nomapchars
(default) Do not translate any of these seven characters.
+mapposix
+ Translate reserved characters similarly to ``mapchars`` but use the
+ mapping from Microsoft "Services For Unix".
+
intr
currently unimplemented.
@@ -370,12 +362,42 @@ seal
Request encryption at the SMB layer. Encryption is only supported in
SMBv3 and above. The encryption algorithm used is AES-128-CCM.
+rdma
+ Connect directly to the server using SMB Direct via a RDMA adapter.
+
+resilienthandles
+ Enable resilient handles. If the server supports it, keep opened
+ files across reconenctions. Requires SMB2.1.
+
+noresilienthandles
+ (default) Disable resilient handles.
+
+persistenthandles
+ Enable persistent handles. If the server supports it, keep opened
+ files across reconnections. Persistent handles are also valid across
+ servers in a cluser and have stronger guarantees than resilient
+ handles. Requires SMB3 or above.
+
+nopersistenthandles
+ (default) Disable persistent handles.
+
+snapshot=time
+ Mount a specific snapshot of the remote share. ``time`` must be a
+ positive integer identifying the snapshot requested.
+
nobrl
Do not send byte range lock requests to the server. This is necessary
for certain applications that break with cifs style mandatory byte
range locks (and most cifs servers do not yet support requesting
advisory byte range locks).
+forcemandatorylock
+ Do not use POSIX locks even when available via unix
+ extensions. Always use cifs style mandatory locks.
+
+locallease
+ Check cache leases locally instead of querying the server.
+
sfu
When the CIFS Unix Extensions are not negotiated, attempt to create
device files and fifos in a format compatible with Services for Unix
@@ -431,8 +453,12 @@ noserverino
See section `INODE NUMBERS`_ for more information.
-nounix
- Disable the CIFS Unix Extensions for this mount. This can be useful in
+unix|linux
+ (default) Enable Unix Extensions for this mount. Requires CIFS
+ (vers=1.0) or SMB3.1.1 (vers=3.1.1) and a server supporting them.
+
+nounix|nolinux
+ Disable the Unix Extensions for this mount. This can be useful in
order to turn off multiple settings at once. This includes POSIX acls,
POSIX locks, POSIX paths, symlink support and retrieving
uids/gids/mode from the server. This can also be useful to work around
@@ -444,6 +470,23 @@ nouser_xattr
Do not allow getfattr/setfattr to get/set xattrs, even if server would
support it otherwise. The default is for xattr support to be enabled.
+nodfs
+ Do not follow Distributed FileSystem referals. IO on a file not
+ stored on the server will fail instead of connecting to the target
+ server transparently.
+
+noautotune
+ Use fixed size for kernel recv/send socket buffers.
+
+nosharesock
+ Do not try to reuse sockets if the system is already connected to
+ the server via an existing mount point. This will make the client
+ always make a new connection to the server no matter what he is
+ already connected to.
+
+noblocksend
+ Send data on the socket using non blocking operations (MSG_DONTWAIT flag).
+
rsize=bytes
Maximum amount of data that the kernel will request in a read request
in bytes. Prior to kernel 3.2.0, the default was 16k, and the maximum
@@ -472,6 +515,10 @@ wsize=bytes
this value isn't specified or it's greater or equal than the existing
one.
+max_credits=n
+ Maximum credits the SMB2 client can have. Default is 32000. Must be
+ set to a number between 20 and 60000.
+
fsc
Enable local disk caching using FS-Cache for CIFS. This option could
be useful to improve performance on a slow link, heavily loaded server
--
2.13.7

View File

@ -0,0 +1,50 @@
From a389756f51916995d27819ea1807ab03f36d8dd7 Mon Sep 17 00:00:00 2001
From: Alexander Bokovoy <ab@samba.org>
Date: Tue, 17 Jul 2018 13:12:44 +0300
Subject: [PATCH 06/10] cifs-utils: support rst2man-3
Python3 version of rst2man is called rst2man-3
Signed-off-by: Alexander Bokovoy <ab@samba.org>
Reviewed-by: Aurelien Aptel <aaptel@suse.com>
---
Makefile.am | 2 +-
configure.ac | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 30658e3..f37c9ae 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -16,7 +16,7 @@ man_MANS=
SUFFIXES = .rst .1 .8
-RST2MAN = rst2man --syntax-highlight=none $< $@
+RST2MAN = $(have_rst2man) --syntax-highlight=none $< $@
.rst.1:
$(RST2MAN)
diff --git a/configure.ac b/configure.ac
index b0bc2b9..8e3d6ce 100644
--- a/configure.ac
+++ b/configure.ac
@@ -252,12 +252,12 @@ fi
# if docs are not disabled, check if rst2man is available
if test $enable_man != "no"; then
- AC_CHECK_PROG(have_rst2man, rst2man, yes, no)
+ AC_CHECK_PROGS(have_rst2man, rst2man-3.6 rst2man-3.4 rst2man-3 rst2man, no)
if test $have_rst2man = "no"; then
if test $enable_man = "yes"; then
- AC_MSG_ERROR([rst2man not found: cannot generate man pages, consider installing perl.])
+ AC_MSG_ERROR([rst2man not found: cannot generate man pages, consider installing python{2,3}-docutils.])
else
- AC_MSG_WARN([rst2man not found: cannot generate man pages, consider installing perl. Disabling man page generation.])
+ AC_MSG_WARN([rst2man not found: cannot generate man pages, consider installing python{2,3}-docutils. Disabling man page generation.])
enable_man="no"
fi
else
--
2.13.7

View File

@ -0,0 +1,67 @@
From 77b028c11fee787d1235a08fd06c8b60d20eb9c0 Mon Sep 17 00:00:00 2001
From: Aurelien Aptel <aaptel@suse.com>
Date: Wed, 8 Aug 2018 11:38:15 +0200
Subject: [PATCH 07/10] checkopts: report duplicated options in man page
Signed-off-by: Aurelien Aptel <aaptel@suse.com>
---
checkopts | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/checkopts b/checkopts
index 26ca271..88e70b1 100755
--- a/checkopts
+++ b/checkopts
@@ -98,9 +98,12 @@ def extract_man_opts(fn):
state = STATE_BASE
rx = RX()
opts = {}
+ ln = 0
with open(fn) as f:
for s in f.readlines():
+ ln += 1
+
if state == STATE_EXIT:
break
@@ -113,7 +116,9 @@ def extract_man_opts(fn):
s = chomp(s)
names = extract_canonical_opts(s)
for name in names:
- opts[name] = s
+ if name not in opts:
+ opts[name] = []
+ opts[name].append({'ln':ln, 'fmt':s})
elif rx.search(r'^[A-Z]+', s):
state = STATE_EXIT
return opts
@@ -174,6 +179,14 @@ def main():
def opt_is_doc(o):
return o in manopts
+ print('DUPLICATED DOC OPTIONS')
+ print('======================')
+
+ for opt in sortedset(man_opts_set):
+ if len(manopts[opt]) > 1:
+ lines = ", ".join([str(x['ln']) for x in manopts[opt]])
+ print("OPTION %-20.20s (lines %s)"%(opt, lines))
+ print()
print('UNDOCUMENTED OPTIONS')
print('====================')
@@ -208,8 +221,8 @@ def main():
unex_opts = man_opts_set - kernel_opts_set
# group opts and their negations together
for opt in sortedset(unex_opts):
- fmt = manopts[opt]
- print('OPTION %s ("%s")' % (opt, fmt))
+ man = manopts[opt][0]
+ print('OPTION %s ("%s") line %d' % (opt, man['fmt'], man['ln']))
print('')
--
2.13.7

View File

@ -0,0 +1,159 @@
From 06503ef4490a3dde4e8297cf1c5cb336ba43aafa Mon Sep 17 00:00:00 2001
From: Aurelien Aptel <aaptel@suse.com>
Date: Wed, 8 Aug 2018 11:38:16 +0200
Subject: [PATCH 08/10] mount.cifs.rst: more cleanups
* remove duplicates (netbiosname, rdma)
* remove snapshot
* document nostrictsync, domain, domainauto better
* point to vers= when talking about version requirements
* typos
Signed-off-by: Aurelien Aptel <aaptel@suse.com>
---
mount.cifs.rst | 61 ++++++++++++++++++++++++++++------------------------------
1 file changed, 29 insertions(+), 32 deletions(-)
diff --git a/mount.cifs.rst b/mount.cifs.rst
index 13b3a1e..3504477 100644
--- a/mount.cifs.rst
+++ b/mount.cifs.rst
@@ -138,25 +138,20 @@ port=arg
try to connect on port 445 first and then port 139 if that
fails. Return an error if both fail.
-
netbiosname=arg
- Specify the client netbios name (RFC1001 name) to use when attempting
- to setup a session to the server. Although rarely needed for mounting
+ When mounting to servers via port 139, specifies the RFC1001 source
+ name to use to represent the client netbios machine during the netbios
+ session initialization.
+
+servern=arg
+ Similar to ``netbiosname`` except it specifies the netbios name of
+ the server instead of the client. Although rarely needed for mounting
to newer servers, this option is needed for mounting to some older
servers (such as OS/2 or Windows 98 and Windows ME) since when
connecting over port 139 they, unlike most newer servers, do not
support a default server name. A server name can be up to 15
characters long and is usually uppercased.
-servern=arg
- Similarl to ``netbiosname`` except it specifies the netbios name of
- the server instead of the client.
-
-netbiosname=arg
- When mounting to servers via port 139, specifies the RFC1001 source
- name to use to represent the client netbios machine name when doing
- the RFC1001 netbios session initialize.
-
file_mode=arg
If the server does not support the CIFS Unix extensions this overrides
the default file mode.
@@ -171,11 +166,14 @@ ip=arg|addr=arg
rarely needs to be specified by the user.
domain=arg|dom=arg|workgroup=arg
- sets the domain (workgroup) of the user.
+ Sets the domain (workgroup) of the user. If no domains are given,
+ the empty domain will be used. Use ``domainauto`` to automatically
+ guess the domain of the server you are connecting to.
domainauto
- When using NTLMv2 authentification and not providing a domain via
+ When using NTLM authentication and not providing a domain via
``domain``, guess the domain from the server NTLM challenge.
+ This behavior used to be the default on kernels older than 2.6.36.
guest
don't prompt for a password.
@@ -249,7 +247,14 @@ cache=arg
default is ``strict``.
nostrictsync
- Do not flush to the server on fsync().
+ Do not ask the server to flush on fsync().
+ Some servers perform non-buffered writes by default in which case
+ flushing is redundant. In workloads where a client is performing a
+ lot of small write + fsync combinations and where network latency is
+ much higher than the server latency, this brings a 2x performance
+ improvement.
+ This option is also a good candidate in scenarios where we want
+ performance over consistency.
handlecache
(default) In SMB2 and above, the client often has to open the root
@@ -359,15 +364,16 @@ sec=arg
automatically if it's enabled in */proc/fs/cifs/SecurityFlags*.
seal
- Request encryption at the SMB layer. Encryption is only supported in
- SMBv3 and above. The encryption algorithm used is AES-128-CCM.
+ Request encryption at the SMB layer. The encryption algorithm used
+ is AES-128-CCM. Requires SMB3 or above (see ``vers``).
rdma
- Connect directly to the server using SMB Direct via a RDMA adapter.
+ Connect directly to the server using SMB Direct via a RDMA
+ adapter. Requires SMB3 or above (see ``vers``).
resilienthandles
Enable resilient handles. If the server supports it, keep opened
- files across reconenctions. Requires SMB2.1.
+ files across reconnections. Requires SMB2.1 (see ``vers``).
noresilienthandles
(default) Disable resilient handles.
@@ -375,16 +381,12 @@ noresilienthandles
persistenthandles
Enable persistent handles. If the server supports it, keep opened
files across reconnections. Persistent handles are also valid across
- servers in a cluser and have stronger guarantees than resilient
- handles. Requires SMB3 or above.
+ servers in a cluster and have stronger guarantees than resilient
+ handles. Requires SMB3 or above (see ``vers``).
nopersistenthandles
(default) Disable persistent handles.
-snapshot=time
- Mount a specific snapshot of the remote share. ``time`` must be a
- positive integer identifying the snapshot requested.
-
nobrl
Do not send byte range lock requests to the server. This is necessary
for certain applications that break with cifs style mandatory byte
@@ -396,7 +398,7 @@ forcemandatorylock
extensions. Always use cifs style mandatory locks.
locallease
- Check cache leases locally instead of querying the server.
+ Check cached leases locally instead of querying the server.
sfu
When the CIFS Unix Extensions are not negotiated, attempt to create
@@ -425,11 +427,6 @@ echo_interval=n
If this option is not given then the default value of 60 seconds is used.
The minimum tunable value is 1 second and maximum can go up to 600 seconds.
-rdma
- Use to connect to SMB Direct, only applicable when specified with
- vers=3 or vers=3.x.
- Here 3.x can be 3.0, 3.02 or 3.1.1.
-
serverino
Use inode numbers (unique persistent file identifiers) returned by the
server instead of automatically generating temporary inode numbers on
@@ -471,7 +468,7 @@ nouser_xattr
support it otherwise. The default is for xattr support to be enabled.
nodfs
- Do not follow Distributed FileSystem referals. IO on a file not
+ Do not follow Distributed FileSystem referrals. IO on a file not
stored on the server will fail instead of connecting to the target
server transparently.
--
2.13.7

View File

@ -0,0 +1,25 @@
From 439cd76f72a2dd3c65fd7d30ece460cde6b9675d Mon Sep 17 00:00:00 2001
From: Pavel Shilovsky <pshilov@microsoft.com>
Date: Fri, 17 Aug 2018 11:08:58 -0700
Subject: [PATCH 09/10] mount.cifs.rst: document vers=3 mount option
Signed-off-by: Pavel Shilovsky <pshilov@microsoft.com>
---
mount.cifs.rst | 1 +
1 file changed, 1 insertion(+)
diff --git a/mount.cifs.rst b/mount.cifs.rst
index 3504477..6587e16 100644
--- a/mount.cifs.rst
+++ b/mount.cifs.rst
@@ -592,6 +592,7 @@ vers=arg
- 2.1 - The SMBv2.1 protocol that was introduced in Microsoft Windows 7 and Windows Server 2008R2.
- 3.0 - The SMBv3.0 protocol that was introduced in Microsoft Windows 8 and Windows Server 2012.
- 3.1.1 or 3.11 - The SMBv3.1.1 protocol that was introduced in Microsoft Windows Server 2016.
+ - 3 - The SMBv3.0 protocol version and above.
Note too that while this option governs the protocol version used, not
all features of each version are available.
--
2.13.7

View File

@ -0,0 +1,25 @@
From 3c7e8c3663f50c2d2df6158cc4d22c4fccdc8ae8 Mon Sep 17 00:00:00 2001
From: Pavel Shilovsky <pshilov@microsoft.com>
Date: Fri, 17 Aug 2018 11:13:45 -0700
Subject: [PATCH 10/10] mount.cifs.rst: document vers=3.02 mount option
Signed-off-by: Pavel Shilovsky <pshilov@microsoft.com>
---
mount.cifs.rst | 1 +
1 file changed, 1 insertion(+)
diff --git a/mount.cifs.rst b/mount.cifs.rst
index 6587e16..a0faf7f 100644
--- a/mount.cifs.rst
+++ b/mount.cifs.rst
@@ -591,6 +591,7 @@ vers=arg
different dialect (2.000) that is not supported.
- 2.1 - The SMBv2.1 protocol that was introduced in Microsoft Windows 7 and Windows Server 2008R2.
- 3.0 - The SMBv3.0 protocol that was introduced in Microsoft Windows 8 and Windows Server 2012.
+ - 3.02 - The SMBv3.0.2 protocol that was introduced in Microsoft Windows 8.1 and Windows Server 2012R2.
- 3.1.1 or 3.11 - The SMBv3.1.1 protocol that was introduced in Microsoft Windows Server 2016.
- 3 - The SMBv3.0 protocol version and above.
--
2.13.7

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e2776578b8267c6dc0862897f5e10f87f10f8337fca9ca6a9118f5eb30cf49f7
size 402158

View File

@ -1,11 +0,0 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQEcBAABCAAGBQJWyzHeAAoJEFr9v7Jw87mBzCUIALAjddIyPDJ+zUP8GEPkCL5M
esOLPP0J9jf4t5QOqKq/druS/PmC9bs6GrZ/5gsYl3uXWtztIW61L3IIX9oGEErg
lt6lpNWl5EkUzdKZQrNKzrekyI5uoGPpPL9k1ZMn8IlSQP769CIGW5zFL0cL63YB
4wUkM7TtoCsD7LVJDtxe9ikprZ/OmbPNeavBhY4+7YuqYOjPXTgm4fl9Cqh92zO7
ShC9IUqT/st1LZXPcDpPcncG+0hvM0cfBKcyv8WnOoqxNPyyCLrLywD8jnOcjiEC
1IoH9d4+psmmTqxkrC/JypfccWBnuTWBJ9uDGy0HfQ3NG58Hwv60fJazKYKraxE=
=RVqu
-----END PGP SIGNATURE-----

3
cifs-utils-6.8.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e7d1f6050c43f21f82cd77e288eb756755effd22f0c310fc2c525df9d41dff79
size 384426

View File

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJaozrEAAoJEN9bqdMGQtWgo20P/R1mqzgHoAfD1PrIGDHAbHmf
P5cvhZgsd+NnaYEFGm8HnYrY7cPWNgVB+PnBaUgfTXJ3NHiMT8dmtFaic4AWOxxN
o+8RPut+UYaEvG2aZr+mDK0Ig5zXU8GIxTxrCwrrzg2ZGBVW2x9J3wrOyomuPwIq
4UPlAX94fcOhKtcwtEqqG5BOXB9atNSw8fSmaxktgr0qAOc5wECZpmLimZjyX2qx
ASVFkTRmW4jl9YAOqAJ/CQti7MTEBFop5XuBgF8mbQgFTc0oMjcpUVUDC5a9tQEi
Tv8+GL0y0a8S6I7AH364pJFiZrHDbX3y8F3QTN/u4c1Fy8mkbcp3VLAwvrgFhzx4
e+X4Wezgu24zxIa/rmUySVpy3pjpshxuPR549lQHtZBLTlgLSO/MIB/E9V/0uC4g
vcPMS5zve603s3y/pEHkTHjv+WYMLVbI2Jc01rhDQGLB2wox5MyheFgfvSe12Gwa
LLYDT8O4B2mgXcXocsn2YOq369t8ZGIWhi2xpt7XQVL5wrmRAzM03/MBU5oJr0pl
NOG5RBZ8TJeBwJe7PAYB76B65e84uBn12hZCyeaYiQtHHiSYH9q1th12fXuySNxF
1C2XAcO327cTQtG5gI9m5DHPut8xjjBiIsdZJYIL8XhOrISy7AqpWu7C6rbt6VvZ
10JbR5QQcpNXPPW8209H
=Cn5o
-----END PGP SIGNATURE-----

View File

@ -1,8 +1,41 @@
-------------------------------------------------------------------
Mon Sep 10 12:29:37 UTC 2018 - aaptel@suse.com
- Update to cifs-utils 6.8.
+ document more mount options
+ man pages now generated from RST files
+ add python-docutils build dependency
+ update keyring to check tarball signature
+ remove 0001-manpage-correct-typos-and-spelling-mistakes.patch
+ remove 0002-mount.cifs-document-SMBv3.1.1-and-new-seal-option.patch
- Add typo corrections, better doc and configure fixes from upstream
+ add 0001-docs-cleanup-rst-formating.patch
+ add 0002-mount.cifs.rst-document-new-no-handlecache-mount-opt.patch
+ add 0003-manpage-update-mount.cifs-manpage-with-info-about-rd.patch
+ add 0004-checkopts-add-python-script-to-cross-check-mount-opt.patch
+ add 0005-mount.cifs.rst-document-missing-options-correct-wron.patch
+ add 0006-cifs-utils-support-rst2man-3.patch
+ add 0007-checkopts-report-duplicated-options-in-man-page.patch
+ add 0008-mount.cifs.rst-more-cleanups.patch
+ add 0009-mount.cifs.rst-document-vers-3-mount-option.patch
+ add 0010-mount.cifs.rst-document-vers-3.02-mount-option.patch
- Cleanup spec file
* assume SUSE vendor and SLE >= 11
-------------------------------------------------------------------
Tue Mar 6 14:26:58 UTC 2018 - schwab@suse.de
- Update BuildIgnore to break build cycle samba-client <-> cifs-utils
-------------------------------------------------------------------
Sun Feb 18 08:21:58 UTC 2018 - avindra@opensuse.org
- update to 6.7:
* mount.cifs cleanups
- includes 6.6:
* cleanup/overhaul of cifs.upcall krb5 credcache handling
- partial cleanup with spec-cleaner
-------------------------------------------------------------------
Thu Apr 27 10:41:50 UTC 2017 - aaptel@suse.com

View File

@ -1,32 +1,52 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.14 (GNU/Linux)
Version: GnuPG v2
mQENBEuqp6ABCADf+tS1rZDdQaUfp7yUWTW+H8OqOXCjuCohHUZFoYF6K/pxhtsY
YUXt5NcXNTioOgJ18S9AL80KS2LTEyr8Z0mfGw1Rld4MClGnnIVNjKUKFaSeEOZG
eSIgjY/gYSP361mwo4PCcieeEO5V0g0agIrYOjkEUSSWb503Ma/NSLwlc3HjvL7i
woosfBpdGyr8dUjb9Tz0HtVw+2wqWl4zMNMYilgoZV0sGO0HssrU40yR/DjuXX5u
Yj+JpffKltKD9iKQ2c29yDXcVoYgAmKu7lNTEGafJHqSWWf2Cvuc+VGTLKrCKxCB
jlN4FKZO3pKFMLX3a0pMEn/ee645wH4mccMJABEBAAG0P2NpZnMtdXRpbHMgRGlz
dHJpYnV0aW9uIFZlcmlmaWNhdGlvbiBLZXkgPGNpZnMtdXRpbHNAc2FtYmEub3Jn
PokBOAQTAQIAIgUCS6qnoAIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQ
Wv2/snDzuYFT3wgAo3mjI7HpDd6oywObMF+NDJC55lmMOZE3r0YuLg59aPeOI+PG
hhjx1UcCMWtx4Bu2j3I96bgwwoe+/ZxYjJZIqa8ClF6JulMDksI06eITSLOXaJVV
1OP8Rtq5aUyN9DsBrLhnpC1QkyBtiIKWDr9H/HSm8uYd3xOjcbhg3hYSBzCSEcTA
lVnk575rZRZ7kgwm6R5aCy/QNtmfbLWvI7ZA50q+zrE3/cDQ2ZLjktueOXufCQLg
cTivreji4aiU3p3dxRvZ+GFWnRyFu6o88DYZlT8M2mHdro5EW7S31ccs0tKdFrcw
vpkPi0TdWPp072UOeDogxuGdozpWuDB62n9TX4hGBBARAgAGBQJLqq6pAAoJEMj9
IMUDHcyA1wkAnj4i4n33+JHh42fMDJojYGPxpnFnAJ9SXLONLJoFwQkaOjLNGYtQ
YH67ALkBDQRLqqegAQgA9Hco9TDoYOu3s7FePHqXxKClrHMswjfmD6WQ0k26j3lq
RS1KpSbGSiF8zXrKGKC0yO/INQ+WJGqDuVTwELE8hYcJeY0M5scSY6qAc+iCcTRn
B4Mf6Esnz/a6J0YebiojFrAgChGGUk/cZdwu8UOV//MbFSKCC49PcjNEjv2OXp5F
h/5gl/dSElHzSI9HykqhCECvcWSBdUXsIogIXJoQ0XX7WyPNKt0FeD0hGdYtDlzg
ZGjqhj/l8XHbFtNdJ/YOue8gBJ//4c2q7yrFMWf7lsJv/qaBDJECR1pV/O2juFZn
CxJ05WWnyqMbS30dVGM+VDf6HAfownc6NLX6KgANkQARAQABiQEfBBgBAgAJBQJL
qqegAhsMAAoJEFr9v7Jw87mBEZ8H/jxs/oyggM4VE0LSrZ3mmCJeNpAkk+rQlCRv
lqkIpn8xwllSCFVm7yET+Eo6G07J1vsGX7+hrtxC1UxB7UYwU3OMMciWpQyz32Zi
DO+eZwrWLg74Jy0Y6rvBlqhTQoRBeWhMzeMxfjtsBkBX3d3RWtuLGiA14pIw73+h
6NE0EbxIuXC5elEWdzm1A9LDH1B6XU9O5e/h5M/7KeKVW+wfydy0PGN/cQ7CLG/x
Rznvy631YcU03NN0PTO9aimbu67H27UIbj+ONoteeqklxmzVkriuYhJoSYkZloIz
ZuM2e2o9RtZwfOLOVR2fMspSGyvKq9NqOSOfz/2VFJI/7LYuJRM=
=hbsp
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
=+QS8
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -17,27 +17,40 @@
Name: cifs-utils
Version: 6.5
Version: 6.8
Release: 0
Summary: Utilities for doing and managing mounts of the Linux CIFS filesystem
License: GPL-3.0-or-later
Group: System/Filesystems
Url: http://www.samba.org/linux-cifs/cifs-utils/
# origin git://git.samba.org/cifs-utils.git
# for-next https://github.com/piastry/cifs-utils.git
Source: https://ftp.samba.org/pub/linux-cifs/%{name}/%{name}-%{version}.tar.bz2
Source5: https://ftp.samba.org/pub/linux-cifs/%{name}/%{name}-%{version}.tar.bz2.asc
# http://ftp.samba.org/pub/linux-cifs/cifs-utils/cifs-utils-pubkey_70F3B981.asc
Source6: cifs-utils.keyring
Source100: README.cifstab.migration
%if "%{_vendor}" == "suse"
%define NET_CFGDIR network
%else
%define NET_CFGDIR network-scripts
%endif
Source1: cifs.init
# fate#322075
Patch0: 0001-manpage-correct-typos-and-spelling-mistakes.patch
Patch1: 0002-mount.cifs-document-SMBv3.1.1-and-new-seal-option.patch
Patch0: 0001-docs-cleanup-rst-formating.patch
Patch1: 0002-mount.cifs.rst-document-new-no-handlecache-mount-opt.patch
Patch2: 0003-manpage-update-mount.cifs-manpage-with-info-about-rd.patch
Patch3: 0004-checkopts-add-python-script-to-cross-check-mount-opt.patch
Patch4: 0005-mount.cifs.rst-document-missing-options-correct-wron.patch
Patch5: 0006-cifs-utils-support-rst2man-3.patch
Patch6: 0007-checkopts-report-duplicated-options-in-man-page.patch
Patch7: 0008-mount.cifs.rst-more-cleanups.patch
Patch8: 0009-mount.cifs.rst-document-vers-3-mount-option.patch
Patch9: 0010-mount.cifs.rst-document-vers-3.02-mount-option.patch
# cifs-utils 6.8 switched to python for man page generation
# we need to require either py2 or py3 package
# some products do not have a py2/py3 versions
%if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150000
BuildRequires: python3-docutils
%else
BuildRequires: python-docutils
%endif
%if 0%{?suse_version} >= 1221
%define systemd 1
@ -45,19 +58,17 @@ Patch1: 0002-mount.cifs-document-SMBv3.1.1-and-new-seal-option.patch
%define systemd 0
%endif
%if 0%{?suse_version} && 0%{?suse_version} < 1221
%if 0%{?suse_version} < 1221
PreReq: insserv %{?fillup_prereq}
%endif
%define initdir %{_sysconfdir}/init.d
Provides: cifs-mount = %{version}
Obsoletes: cifs-mount < %{version}
%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1140
%if 0%{?suse_version} > 1140
BuildRequires: autoconf
%endif
BuildRequires: automake
%if 0%{?suse_version} > 1020
BuildRequires: keyutils-devel
%endif
BuildRequires: krb5-devel
%if 0%{?suse_version} > 1120
BuildRequires: libcap-ng-devel
@ -69,25 +80,14 @@ BuildRequires: libtalloc-devel
%if 0%{?suse_version} > 1110
BuildRequires: fdupes
%endif
%if 0%{?mandriva_version}
BuildRequires: libkeyutils-devel
%endif
%if 0%{?centos_version} > 599 || 0%{?fedora_version} > 14 || 0%{?rhel_version} > 599 || 0%{?suse_version} > 1020
BuildRequires: libwbclient-devel
%endif
BuildRequires: pam-devel
%if 0%{?suse_version} > 1020
BuildRequires: pkg-config
%else
BuildRequires: pkgconfig
%endif
Requires: keyutils
%if ! %{defined _rundir}
%define _rundir %{_localstatedir}/run
%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
The cifs-utils package consist of utilities for doing and managing mounts of
the Linux CIFS filesystem.
@ -120,79 +120,76 @@ provide these credentials to the kernel automatically at login.
cp -a ${RPM_SOURCE_DIR}/README.cifstab.migration .
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%build
export CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fpie"
export CFLAGS="%{optflags} -D_GNU_SOURCE -fpie"
export LDFLAGS="-pie"
autoreconf -i
%{configure} \
%configure \
--with-pamdir=/%{_lib}/security
%{__make} %{?_smp_mflags}
make %{?_smp_mflags}
%install
%if ! %{systemd}
mkdir -p \
${RPM_BUILD_ROOT}/%{_sysconfdir}/init.d
mkdir -p %{buildroot}/%{_sysconfdir}/init.d
%endif
%{__make} install \
DESTDIR=${RPM_BUILD_ROOT}
%if 0%{?centos_version} > 599 || 0%{?fedora_version} > 14 || 0%{?mandriva_version} > 201100 || 0%{?rhel_version} > 599 || 0%{?suse_version} > 1020
%make_install
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
ln -s %{_libdir}/%{name}/idmapwb.so %{buildroot}%{_sysconfdir}/%{name}/idmap-plugin
%endif
mkdir -p %{buildroot}%{_sysconfdir}/request-key.d
install -m 644 -p contrib/request-key.d/cifs.idmap.conf %{buildroot}%{_sysconfdir}/request-key.d
install -m 644 -p contrib/request-key.d/cifs.spnego.conf %{buildroot}%{_sysconfdir}/request-key.d
%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1221
%if 0%{?suse_version} > 1221
mkdir -p \
${RPM_BUILD_ROOT}/%{_sysconfdir}/sysconfig/%{NET_CFGDIR}/if-{down,up}.d \
${RPM_BUILD_ROOT}/%{_sysconfdir}/samba \
${RPM_BUILD_ROOT}/%{_sbindir} \
${RPM_BUILD_ROOT}/%{_rundir}
%{buildroot}/%{_sysconfdir}/sysconfig/network/if-{down,up}.d \
%{buildroot}/%{_sysconfdir}/samba \
%{buildroot}/%{_sbindir} \
%{buildroot}/%{_rundir}
%if ! %{systemd}
install -m 0755 -p ${RPM_SOURCE_DIR}/cifs.init ${RPM_BUILD_ROOT}/%{_sysconfdir}/init.d/cifs
ln -s service ${RPM_BUILD_ROOT}/%{_sbindir}/rccifs
install -m 0755 -p ${RPM_SOURCE_DIR}/cifs.init %{buildroot}/%{_sysconfdir}/init.d/cifs
ln -s service %{buildroot}/%{_sbindir}/rccifs
%endif
touch ${RPM_BUILD_ROOT}/%{_sysconfdir}/sysconfig/%{NET_CFGDIR}/if-{down,up}.d/${script} \
${RPM_BUILD_ROOT}%{_rundir}/cifs
touch %{buildroot}/%{_sysconfdir}/sysconfig/network/if-{down,up}.d/${script} \
%{buildroot}%{_rundir}/cifs
%endif
# Hardlink duplicate files
%if 0%{?suse_version} > 1110
%fdupes ${RPM_BUILD_ROOT}
%fdupes %{buildroot}
%endif
%files
%defattr(-,root,root)
/sbin/mount.cifs
%if 0%{?centos_version} > 599 || 0%{?fedora_version} > 14 || 0%{?mandriva_version} > 201100 || 0%{?rhel_version} > 599 || 0%{?suse_version} > 1020
%{_bindir}/getcifsacl
%{_bindir}/setcifsacl
%{_sbindir}/cifs.idmap
%{_mandir}/man1/getcifsacl.1.*
%{_mandir}/man1/setcifsacl.1.*
%{_mandir}/man8/cifs.idmap.8.*
%endif
%if 0%{?centos_version} > 499 || 0%{?fedora_version} > 14 || 0%{?mandriva_version} > 201100 || 0%{?rhel_version} > 499 || 0%{?suse_version} > 1020
%{_mandir}/man1/getcifsacl.1%{ext_man}
%{_mandir}/man1/setcifsacl.1%{ext_man}
%{_mandir}/man8/cifs.idmap.8%{ext_man}
%{_bindir}/cifscreds
%{_sbindir}/cifs.upcall
%{_mandir}/man1/cifscreds.1.*
%{_mandir}/man8/cifs.upcall.8.*
%endif
%{_mandir}/man8/mount.cifs.8.*
%{_mandir}/man1/cifscreds.1%{ext_man}
%{_mandir}/man8/cifs.upcall.8%{ext_man}
%{_mandir}/man8/mount.cifs.8%{ext_man}
%dir %{_sysconfdir}/request-key.d
%config(noreplace) %{_sysconfdir}/request-key.d/cifs.idmap.conf
%config(noreplace) %{_sysconfdir}/request-key.d/cifs.spnego.conf
%if 0%{?centos_version} > 599 || 0%{?fedora_version} > 14 || 0%{?mandriva_version} > 201100 || 0%{?rhel_version} > 599 || 0%{?suse_version} > 1020
%dir %{_libdir}/cifs-utils
%dir %{_sysconfdir}/cifs-utils
%config(noreplace) %{_sysconfdir}/cifs-utils/idmap-plugin
%{_libdir}/%{name}/idmapwb.so
%{_mandir}/man8/idmapwb.8.*
%endif
%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1221
%{_mandir}/man8/idmapwb.8%{ext_man}
%if 0%{?suse_version} > 1221
%if ! %{systemd}
%attr(0754,root,root) %config %{_sysconfdir}/init.d/cifs
%{_sbindir}/rccifs
@ -203,12 +200,10 @@ touch ${RPM_BUILD_ROOT}/%{_sysconfdir}/sysconfig/%{NET_CFGDIR}/if-{down,up}.d/${
%doc README.cifstab.migration
%files devel
%defattr(-,root,root)
%{_includedir}/cifsidmap.h
%files -n pam_cifscreds
%defattr(-,root,root)
/%{_lib}/security/pam_cifscreds.so
%{_mandir}/man8/pam_cifscreds.8.*
%{_mandir}/man8/pam_cifscreds.8%{ext_man}
%changelog