Adding debian version 9.7-3.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
This commit is contained in:
parent
c08a8f7410
commit
fa342e1128
16 changed files with 2069 additions and 0 deletions
1251
debian/changelog
vendored
Normal file
1251
debian/changelog
vendored
Normal file
File diff suppressed because it is too large
Load diff
27
debian/control
vendored
Normal file
27
debian/control
vendored
Normal file
|
@ -0,0 +1,27 @@
|
|||
Source: coreutils
|
||||
Maintainer: Michael Stone <mstone@debian.org>
|
||||
Section: utils
|
||||
Priority: required
|
||||
Standards-Version: 4.7.2
|
||||
Build-Depends: gettext (>= 0.10.37), debhelper-compat (= 13), texinfo (>= 4.2) <!nodoc>, libattr1-dev [linux-any], libacl1-dev [linux-any], libselinux1-dev (>= 1.32) [linux-any], gperf, bison, libgmp3-dev, libssl-dev, libsystemd-dev
|
||||
|
||||
Package: coreutils
|
||||
Architecture: any
|
||||
Multi-Arch: foreign
|
||||
Pre-Depends: ${shlibs:Depends}, ${misc:Pre-Depends}
|
||||
Essential: yes
|
||||
Depends: ${misc:Depends}
|
||||
Description: GNU core utilities
|
||||
This package contains the basic file, shell and text manipulation
|
||||
utilities which are expected to exist on every operating system.
|
||||
.
|
||||
Specifically, this package includes:
|
||||
arch base64 basename cat chcon chgrp chmod chown chroot cksum comm cp
|
||||
csplit cut date dd df dir dircolors dirname du echo env expand expr
|
||||
factor false flock fmt fold groups head hostid id install join link ln
|
||||
logname ls md5sum mkdir mkfifo mknod mktemp mv nice nl nohup nproc numfmt
|
||||
od paste pathchk pinky pr printenv printf ptx pwd readlink realpath rm
|
||||
rmdir runcon sha*sum seq shred sleep sort split stat stty sum sync tac
|
||||
tail tee test timeout touch tr true truncate tsort tty uname unexpand
|
||||
uniq unlink users vdir wc who whoami yes
|
||||
Homepage: https://gnu.org/software/coreutils
|
125
debian/copyright
vendored
Normal file
125
debian/copyright
vendored
Normal file
|
@ -0,0 +1,125 @@
|
|||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Comment: This is the Debian GNU/Linux packaged version of the GNU core
|
||||
utilities.
|
||||
This package is maintained by Michael Stone <mstone@debian.org>.
|
||||
See the file AUTHORS for a list of each program's main authors.
|
||||
Source: ftp://ftp.gnu.org/gnu/coreutils
|
||||
|
||||
Files: *
|
||||
Copyright: (C) 1984-2023 Free Software Foundation, Inc.
|
||||
License: GPL-3+
|
||||
|
||||
Files: lib/fts.c
|
||||
lib/fts_.h
|
||||
Copyright: (C) 2004-2020, 2008 Free Software Foundation, Inc.
|
||||
(c) 1989, 1990, 1993, 1994 The Regents of the University of California. All rights reserved.
|
||||
License: GPL-3+ and BSD-4-clause-UC
|
||||
|
||||
License: GPL-3+
|
||||
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/>.
|
||||
.
|
||||
On Debian systems, the complete text of the GNU General
|
||||
Public License can be found in `/usr/share/common-licenses/GPL-3'.
|
||||
|
||||
License: BSD-4-clause-UC
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
|
||||
Files: lib/rand-isaac.c
|
||||
lib/rand-isaac.h
|
||||
Copyright: (C) 1999-2006 Free Software Foundation, Inc.
|
||||
(C) 1997, 1998, 1999 Colin Plumb.
|
||||
License: GPL-3+
|
||||
|
||||
Files: lib/inet_ntop.c
|
||||
Copyright: (C) 2005, 2006 Free Software Foundation, Inc.
|
||||
License: GPL-3+ and ISC
|
||||
|
||||
License: ISC
|
||||
* Copyright (c) 1996-1999 by Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
|
||||
* ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
|
||||
* CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
|
||||
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
|
||||
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
|
||||
* ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
* SOFTWARE.
|
||||
|
||||
Files: m4/autobuild.m4
|
||||
Copyright: (C) 2004, 2006-2023 Free Software Foundation, Inc.
|
||||
License: FSFULLR
|
||||
This file is free software; the Free Software Foundation
|
||||
gives unlimited permission to copy and/or distribute it,
|
||||
with or without modifications, as long as this notice is preserved.
|
||||
Comment: From Simon Josefsson
|
||||
|
||||
Files: src/cut.c
|
||||
Copyright: (C) 1997-2007 Free Software Foundation, Inc.
|
||||
(C) 1984 David M. Ihnat
|
||||
License: GPL-3+
|
||||
|
||||
Files: src/dircolors.c
|
||||
Copyright: (C) 1996-2007 Free Software Foundation, Inc.
|
||||
(C) 1994, 1995, 1997, 1998, 1999, 2000 H. Peter Anvin
|
||||
License: GPL-3+
|
||||
|
||||
Files: src/paste.c
|
||||
Copyright: (C) 1997-2005 Free Software Foundation, Inc.
|
||||
(C) 1984 David M. Ihnat
|
||||
License: GPL-3+
|
||||
|
||||
Files: src/shred.c
|
||||
Copyright: (C) 1999-2007 Free Software Foundation, Inc.
|
||||
(C) 1997, 1998, 1999 Colin Plumb.
|
||||
License: GPL-3+
|
||||
|
||||
Files: doc/coreutils.texi
|
||||
Copyright: 1994-2023 Free Software Foundation, Inc.
|
||||
License: GFDL-NIV-1.3
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled ``GNU
|
||||
Free Documentation License''.
|
||||
.
|
||||
On Debian systems, the complete text of the GNU Free Documentation License,
|
||||
Version 1.3 can be found in `/usr/share/common-licenses/GFDL-1.3'.
|
40
debian/coreutils.NEWS
vendored
Normal file
40
debian/coreutils.NEWS
vendored
Normal file
|
@ -0,0 +1,40 @@
|
|||
coreutils (8.23-1) unstable; urgency=low
|
||||
|
||||
GNU coreutils package now includes the `realpath' command that used to
|
||||
be found in a separate `realpath' package.
|
||||
|
||||
Even though the GNU version provides all the features of the old Debian
|
||||
version, the behaviour is a bit different, namely:
|
||||
|
||||
* GNU `realpath' and `realpath -s' commands require all but the
|
||||
last path components to exist
|
||||
|
||||
whereas:
|
||||
|
||||
* Debian version of `realpath' required all the path components to exist;
|
||||
* Debian version of `realpath -s' required no path components to exist.
|
||||
|
||||
To get the old behaviour in GNU `realpath' an additional option needs
|
||||
to be used:
|
||||
|
||||
Old Debian realpath New GNU coreutils realpath
|
||||
----------------------- ----------------------------
|
||||
realpath file(s) => realpath -e file(s)
|
||||
realpath -s file(s) => realpath -s -m file(s)
|
||||
|
||||
-- Robert Luberda <robert@debian.org> Sun, 31 Aug 2014 16:08:14 +0200
|
||||
|
||||
coreutils (5.96-3) unstable; urgency=low
|
||||
|
||||
* The POSIX compatibility level is now set to POSIX 1003.1-2001,
|
||||
which affects the syntax for several commands. For transition
|
||||
purposes, "sort +number" and "tail +number" will be supported
|
||||
for the etch release. Note that these usages are deprecated, and
|
||||
will be removed in etch+1; the recommended usage is "sort -k number"
|
||||
and "tail -n +number". Also, "uniq +number" should be replaced with
|
||||
"uniq -s number" and "touch number filename" should be replaced with
|
||||
"touch -t number filename". To revert to the older syntax, set the
|
||||
environment variable _POSIX2_VERSION to "199209".
|
||||
|
||||
-- Michael Stone <mstone@debian.org> Sat, 27 May 2006 12:56:18 -0400
|
||||
|
10
debian/coreutils.README.Debian
vendored
Normal file
10
debian/coreutils.README.Debian
vendored
Normal file
|
@ -0,0 +1,10 @@
|
|||
Most of the coreutils documentation is available as info pages. (Try "info
|
||||
coreutils" at a command prompt). A version of this documentation is also
|
||||
available online at
|
||||
http://www.gnu.org/software/coreutils/manual/html_node/index.html
|
||||
(Note that the online version may not reflect the version of coreutils in this
|
||||
package.)
|
||||
|
||||
There is also a frequently asked questions document available at
|
||||
http://www.gnu.org/software/coreutils/faq/coreutils-faq.html
|
||||
|
1
debian/coreutils.dirs
vendored
Normal file
1
debian/coreutils.dirs
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
usr/share/doc/coreutils
|
5
debian/coreutils.docs
vendored
Normal file
5
debian/coreutils.docs
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
AUTHORS
|
||||
NEWS
|
||||
README
|
||||
THANKS
|
||||
TODO
|
3
debian/coreutils.lintian-overrides
vendored
Normal file
3
debian/coreutils.lintian-overrides
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
coreutils: custom-library-search-path RUNPATH /usr/lib/*
|
||||
coreutils: groff-message *warning: macro 'mono' not defined*
|
||||
coreutils: groff-message *warning: macro '/mono' not defined*
|
17
debian/patches/72_id_checkngroups.patch
vendored
Normal file
17
debian/patches/72_id_checkngroups.patch
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
Author:
|
||||
Description:
|
||||
Index: coreutils-8.24/src/id.c
|
||||
===================================================================
|
||||
--- coreutils-8.24.orig/src/id.c
|
||||
+++ coreutils-8.24/src/id.c
|
||||
@@ -416,6 +416,10 @@ print_full_info (const char *username)
|
||||
ok &= false;
|
||||
return;
|
||||
}
|
||||
+ else if (sysconf(_SC_NGROUPS_MAX) > 0 && n_groups > sysconf(_SC_NGROUPS_MAX))
|
||||
+ {
|
||||
+ fprintf (stderr, _("Warning: user %s is in more groups than system's configured maximum.\n"), (username != NULL)?username:"");
|
||||
+ }
|
||||
|
||||
if (n_groups > 0)
|
||||
fputs (_(" groups="), stdout);
|
449
debian/patches/gnulib-nfs-acl.patch
vendored
Normal file
449
debian/patches/gnulib-nfs-acl.patch
vendored
Normal file
|
@ -0,0 +1,449 @@
|
|||
Author: Paul Eggert <eggert@cs.ucla.edu>
|
||||
Description: addresses spurious cp permission errors
|
||||
===================================================================
|
||||
diff --git a/lib/acl.h b/lib/acl.h
|
||||
index 90fd24e152..e3c134fb41 100644
|
||||
--- a/lib/acl.h
|
||||
+++ b/lib/acl.h
|
||||
@@ -79,6 +79,8 @@ struct aclinfo
|
||||
bool acl_errno_valid (int) _GL_ATTRIBUTE_CONST;
|
||||
int file_has_acl (char const *, struct stat const *);
|
||||
int file_has_aclinfo (char const *restrict, struct aclinfo *restrict, int);
|
||||
+int fdfile_has_aclinfo (int, char const *restrict,
|
||||
+ struct aclinfo *restrict, int);
|
||||
|
||||
#if HAVE_LINUX_XATTR_H && HAVE_LISTXATTR
|
||||
bool aclinfo_has_xattr (struct aclinfo const *, char const *)
|
||||
diff --git a/lib/copy-acl.c b/lib/copy-acl.c
|
||||
index c36f64e51d..2fce6c7d46 100644
|
||||
--- a/lib/copy-acl.c
|
||||
+++ b/lib/copy-acl.c
|
||||
@@ -33,6 +33,7 @@
|
||||
a valid file descriptor, use file descriptor operations, else use
|
||||
filename based operations on SRC_NAME. Likewise for DEST_DESC and
|
||||
DST_NAME.
|
||||
+ MODE should be the source file's st_mode.
|
||||
If access control lists are not available, fchmod the target file to
|
||||
MODE. Also sets the non-permission bits of the destination file
|
||||
(S_ISUID, S_ISGID, S_ISVTX) to those from MODE if any are set.
|
||||
diff --git a/lib/file-has-acl.c b/lib/file-has-acl.c
|
||||
index 66b920c1ab..a356ee0d0b 100644
|
||||
--- a/lib/file-has-acl.c
|
||||
+++ b/lib/file-has-acl.c
|
||||
@@ -85,6 +85,13 @@ smack_new_label_from_path (MAYBE_UNUSED const char *path,
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
+static ssize_t
|
||||
+smack_new_label_from_file (MAYBE_UNUSED int fd,
|
||||
+ MAYBE_UNUSED const char *xattr,
|
||||
+ MAYBE_UNUSED char **label)
|
||||
+{
|
||||
+ return -1;
|
||||
+}
|
||||
# endif
|
||||
static bool
|
||||
is_smack_enabled (void)
|
||||
@@ -115,14 +122,16 @@ aclinfo_may_indicate_xattr (struct aclinfo const *ai)
|
||||
|
||||
static bool
|
||||
has_xattr (char const *xattr, struct aclinfo const *ai,
|
||||
- MAYBE_UNUSED char const *restrict name, MAYBE_UNUSED int flags)
|
||||
+ int fd, char const *restrict name, int flags)
|
||||
{
|
||||
if (ai && aclinfo_has_xattr (ai, xattr))
|
||||
return true;
|
||||
else if (!ai || aclinfo_may_indicate_xattr (ai))
|
||||
{
|
||||
- int ret = ((flags & ACL_SYMLINK_FOLLOW ? getxattr : lgetxattr)
|
||||
- (name, xattr, NULL, 0));
|
||||
+ int ret = (fd < 0
|
||||
+ ? ((flags & ACL_SYMLINK_FOLLOW ? getxattr : lgetxattr)
|
||||
+ (name, xattr, NULL, 0))
|
||||
+ : fgetxattr (fd, xattr, NULL, 0));
|
||||
if (0 <= ret || (errno == ERANGE || errno == E2BIG))
|
||||
return true;
|
||||
}
|
||||
@@ -145,11 +154,12 @@ aclinfo_has_xattr (struct aclinfo const *ai, char const *xattr)
|
||||
return false;
|
||||
}
|
||||
|
||||
-/* Get attributes of the file NAME into AI, if USE_ACL.
|
||||
+/* Get attributes of the file FD aka NAME into AI, if USE_ACL.
|
||||
+ Ignore FD if it is negative.
|
||||
If FLAGS & ACL_GET_SCONTEXT, also get security context.
|
||||
If FLAGS & ACL_SYMLINK_FOLLOW, follow symbolic links. */
|
||||
static void
|
||||
-get_aclinfo (char const *name, struct aclinfo *ai, int flags)
|
||||
+get_aclinfo (int fd, char const *name, struct aclinfo *ai, int flags)
|
||||
{
|
||||
int scontext_err = ENOTSUP;
|
||||
ai->buf = ai->u.__gl_acl_ch;
|
||||
@@ -163,7 +173,9 @@ get_aclinfo (char const *name, struct aclinfo *ai, int flags)
|
||||
= (flags & ACL_SYMLINK_FOLLOW ? listxattr : llistxattr);
|
||||
while (true)
|
||||
{
|
||||
- ai->size = lsxattr (name, ai->buf, acl_alloc);
|
||||
+ ai->size = (fd < 0
|
||||
+ ? lsxattr (name, ai->buf, acl_alloc)
|
||||
+ : flistxattr (fd, ai->buf, acl_alloc));
|
||||
if (0 < ai->size)
|
||||
break;
|
||||
ai->u.err = ai->size < 0 ? errno : 0;
|
||||
@@ -171,7 +183,9 @@ get_aclinfo (char const *name, struct aclinfo *ai, int flags)
|
||||
break;
|
||||
|
||||
/* The buffer was too small. Find how large it should have been. */
|
||||
- ssize_t size = lsxattr (name, NULL, 0);
|
||||
+ ssize_t size = (fd < 0
|
||||
+ ? lsxattr (name, NULL, 0)
|
||||
+ : flistxattr (fd, NULL, 0));
|
||||
if (size <= 0)
|
||||
{
|
||||
ai->size = size;
|
||||
@@ -214,9 +228,13 @@ get_aclinfo (char const *name, struct aclinfo *ai, int flags)
|
||||
{
|
||||
if (ai->size < 0 || aclinfo_has_xattr (ai, XATTR_NAME_SMACK))
|
||||
{
|
||||
- ssize_t r = smack_new_label_from_path (name, "security.SMACK64",
|
||||
- flags & ACL_SYMLINK_FOLLOW,
|
||||
- &ai->scontext);
|
||||
+ static char const SMACK64[] = "security.SMACK64";
|
||||
+ ssize_t r =
|
||||
+ (fd < 0
|
||||
+ ? smack_new_label_from_path (name, SMACK64,
|
||||
+ flags & ACL_SYMLINK_FOLLOW,
|
||||
+ &ai->scontext)
|
||||
+ : smack_new_label_from_file (fd, SMACK64, &ai->scontext));
|
||||
scontext_err = r < 0 ? errno : 0;
|
||||
}
|
||||
}
|
||||
@@ -226,8 +244,10 @@ get_aclinfo (char const *name, struct aclinfo *ai, int flags)
|
||||
if (ai->size < 0 || aclinfo_has_xattr (ai, XATTR_NAME_SELINUX))
|
||||
{
|
||||
ssize_t r =
|
||||
- ((flags & ACL_SYMLINK_FOLLOW ? getfilecon : lgetfilecon)
|
||||
- (name, &ai->scontext));
|
||||
+ (fd < 0
|
||||
+ ? ((flags & ACL_SYMLINK_FOLLOW ? getfilecon : lgetfilecon)
|
||||
+ (name, &ai->scontext))
|
||||
+ : fgetfilecon (fd, &ai->scontext));
|
||||
scontext_err = r < 0 ? errno : 0;
|
||||
# ifndef SE_SELINUX_INLINE
|
||||
/* Gnulib's selinux-h module is not in use, so getfilecon and
|
||||
@@ -362,11 +382,13 @@ acl_nfs4_nontrivial (uint32_t *xattr, ssize_t nbytes)
|
||||
}
|
||||
#endif
|
||||
|
||||
-#if (!USE_LINUX_XATTR && USE_ACL && HAVE_ACL_GET_FD \
|
||||
- && !HAVE_ACL_EXTENDED_FILE && !HAVE_ACL_TYPE_EXTENDED \
|
||||
- && !HAVE_ACL_GET_LINK_NP)
|
||||
-# include <fcntl.h>
|
||||
-# ifdef O_PATH
|
||||
+#if (!USE_LINUX_XATTR && USE_ACL && !HAVE_ACL_EXTENDED_FILE \
|
||||
+ && !HAVE_ACL_TYPE_EXTENDED)
|
||||
+
|
||||
+# if HAVE_ACL_GET_FD && !HAVE_ACL_GET_LINK_NP
|
||||
+# include <fcntl.h>
|
||||
+# ifdef O_PATH
|
||||
+# define acl_get_fd_np(fd, type) acl_get_fd (fd)
|
||||
|
||||
/* Like acl_get_file, but do not follow symbolic links. */
|
||||
static acl_t
|
||||
@@ -381,8 +403,24 @@ acl_get_link_np (char const *name, acl_type_t type)
|
||||
errno = err;
|
||||
return r;
|
||||
}
|
||||
-# define HAVE_ACL_GET_LINK_NP 1
|
||||
+# define HAVE_ACL_GET_LINK_NP 1
|
||||
+# endif
|
||||
# endif
|
||||
+
|
||||
+static acl_t
|
||||
+acl_get_fdfile (int fd, char const *name, acl_type_t type, int flags)
|
||||
+{
|
||||
+ acl_t (*get) (char const *, acl_type_t) = acl_get_file;
|
||||
+# if HAVE_ACL_GET_LINK_NP /* FreeBSD, NetBSD >= 10, Cygwin >= 2.5 */
|
||||
+ if (0 <= fd)
|
||||
+ return acl_get_fd_np (fd, type);
|
||||
+ if (! (flags & ACL_SYMLINK_FOLLOW))
|
||||
+ get = acl_get_link_np;
|
||||
+# else
|
||||
+ /* Ignore FD and FLAGS, unfortunately. */
|
||||
+# endif
|
||||
+ return get (name, type);
|
||||
+}
|
||||
#endif
|
||||
|
||||
/* Return 1 if NAME has a nontrivial access control list,
|
||||
@@ -398,14 +436,35 @@ acl_get_link_np (char const *name, acl_type_t type)
|
||||
If the d_type value is not known, use DT_UNKNOWN though this may be less
|
||||
efficient. */
|
||||
int
|
||||
-file_has_aclinfo (MAYBE_UNUSED char const *restrict name,
|
||||
+file_has_aclinfo (char const *restrict name,
|
||||
struct aclinfo *restrict ai, int flags)
|
||||
+{
|
||||
+ return fdfile_has_aclinfo (-1, name, ai, flags);
|
||||
+}
|
||||
+
|
||||
+/* Return 1 if FD aka NAME has a nontrivial access control list,
|
||||
+ 0 if ACLs are not supported, or if NAME has no or only a base ACL,
|
||||
+ and -1 (setting errno) on error. Note callers can determine
|
||||
+ if ACLs are not supported as errno is set in that case also.
|
||||
+ Ignore FD if it is negative.
|
||||
+ Set *AI to ACL info regardless of return value.
|
||||
+ FLAGS should be a <dirent.h> d_type value, optionally ORed with
|
||||
+ - _GL_DT_NOTDIR if it is known that NAME is not a directory,
|
||||
+ - ACL_GET_SCONTEXT to retrieve security context and return 1 if present,
|
||||
+ - ACL_SYMLINK_FOLLOW to follow the link if NAME is a symbolic link;
|
||||
+ otherwise do not follow them if possible.
|
||||
+ If the d_type value is not known, use DT_UNKNOWN though this may be less
|
||||
+ efficient. */
|
||||
+int
|
||||
+fdfile_has_aclinfo (MAYBE_UNUSED int fd,
|
||||
+ MAYBE_UNUSED char const *restrict name,
|
||||
+ struct aclinfo *restrict ai, int flags)
|
||||
{
|
||||
MAYBE_UNUSED unsigned char d_type = flags & UCHAR_MAX;
|
||||
|
||||
#if USE_LINUX_XATTR
|
||||
int initial_errno = errno;
|
||||
- get_aclinfo (name, ai, flags);
|
||||
+ get_aclinfo (fd, name, ai, flags);
|
||||
|
||||
if (!aclinfo_may_indicate_xattr (ai) && ai->size <= 0)
|
||||
{
|
||||
@@ -418,11 +477,11 @@ file_has_aclinfo (MAYBE_UNUSED char const *restrict name,
|
||||
In earlier Fedora the two types of ACLs were mutually exclusive.
|
||||
Attempt to work correctly on both kinds of systems. */
|
||||
|
||||
- if (!has_xattr (XATTR_NAME_NFSV4_ACL, ai, name, flags))
|
||||
+ if (!has_xattr (XATTR_NAME_NFSV4_ACL, ai, fd, name, flags))
|
||||
return
|
||||
- (has_xattr (XATTR_NAME_POSIX_ACL_ACCESS, ai, name, flags)
|
||||
+ (has_xattr (XATTR_NAME_POSIX_ACL_ACCESS, ai, fd, name, flags)
|
||||
|| ((d_type == DT_DIR || d_type == DT_UNKNOWN)
|
||||
- && has_xattr (XATTR_NAME_POSIX_ACL_DEFAULT, ai, name, flags)));
|
||||
+ && has_xattr (XATTR_NAME_POSIX_ACL_DEFAULT, ai, fd, name, flags)));
|
||||
|
||||
/* A buffer large enough to hold any trivial NFSv4 ACL.
|
||||
The max length of a trivial NFSv4 ACL is 6 words for owner,
|
||||
@@ -432,8 +491,10 @@ file_has_aclinfo (MAYBE_UNUSED char const *restrict name,
|
||||
everyone is another word to hold "EVERYONE@". */
|
||||
uint32_t buf[2 * (6 + 6 + 7)];
|
||||
|
||||
- int ret = ((flags & ACL_SYMLINK_FOLLOW ? getxattr : lgetxattr)
|
||||
- (name, XATTR_NAME_NFSV4_ACL, buf, sizeof buf));
|
||||
+ int ret = (fd < 0
|
||||
+ ? ((flags & ACL_SYMLINK_FOLLOW ? getxattr : lgetxattr)
|
||||
+ (name, XATTR_NAME_NFSV4_ACL, buf, sizeof buf))
|
||||
+ : fgetxattr (fd, XATTR_NAME_NFSV4_ACL, buf, sizeof buf));
|
||||
if (ret < 0)
|
||||
switch (errno)
|
||||
{
|
||||
@@ -467,20 +528,23 @@ file_has_aclinfo (MAYBE_UNUSED char const *restrict name,
|
||||
/* On Linux, acl_extended_file is an optimized function: It only
|
||||
makes two calls to getxattr(), one for ACL_TYPE_ACCESS, one for
|
||||
ACL_TYPE_DEFAULT. */
|
||||
- ret = ((flags & ACL_SYMLINK_FOLLOW
|
||||
- ? acl_extended_file
|
||||
- : acl_extended_file_nofollow)
|
||||
- (name));
|
||||
+ ret = (fd < 0
|
||||
+ ? ((flags & ACL_SYMLINK_FOLLOW
|
||||
+ ? acl_extended_file
|
||||
+ : acl_extended_file_nofollow)
|
||||
+ (name))
|
||||
+ : acl_extended_fd (fd));
|
||||
# elif HAVE_ACL_TYPE_EXTENDED /* Mac OS X */
|
||||
/* On Mac OS X, acl_get_file (name, ACL_TYPE_ACCESS)
|
||||
and acl_get_file (name, ACL_TYPE_DEFAULT)
|
||||
always return NULL / EINVAL. There is no point in making
|
||||
these two useless calls. The real ACL is retrieved through
|
||||
- acl_get_file (name, ACL_TYPE_EXTENDED). */
|
||||
- acl_t acl = ((flags & ACL_SYMLINK_FOLLOW
|
||||
- ? acl_get_file
|
||||
- : acl_get_link_np)
|
||||
- (name, ACL_TYPE_EXTENDED));
|
||||
+ ACL_TYPE_EXTENDED. */
|
||||
+ acl_t acl =
|
||||
+ (fd < 0
|
||||
+ ? ((flags & ACL_SYMLINK_FOLLOW ? acl_get_file : acl_get_link_np)
|
||||
+ (name, ACL_TYPE_EXTENDED))
|
||||
+ : acl_get_fd_np (fd, ACL_TYPE_EXTENDED));
|
||||
if (acl)
|
||||
{
|
||||
ret = acl_extended_nontrivial (acl);
|
||||
@@ -489,13 +553,8 @@ file_has_aclinfo (MAYBE_UNUSED char const *restrict name,
|
||||
else
|
||||
ret = -1;
|
||||
# else /* FreeBSD, NetBSD >= 10, IRIX, Tru64, Cygwin >= 2.5 */
|
||||
- acl_t (*acl_get_file_or_link) (char const *, acl_type_t) = acl_get_file;
|
||||
-# if HAVE_ACL_GET_LINK_NP /* FreeBSD, NetBSD >= 10, Cygwin >= 2.5 */
|
||||
- if (! (flags & ACL_SYMLINK_FOLLOW))
|
||||
- acl_get_file_or_link = acl_get_link_np;
|
||||
-# endif
|
||||
|
||||
- acl_t acl = acl_get_file_or_link (name, ACL_TYPE_ACCESS);
|
||||
+ acl_t acl = acl_get_fdfile (fd, name, ACL_TYPE_ACCESS, flags);
|
||||
if (acl)
|
||||
{
|
||||
ret = acl_access_nontrivial (acl);
|
||||
@@ -517,7 +576,7 @@ file_has_aclinfo (MAYBE_UNUSED char const *restrict name,
|
||||
&& (d_type == DT_DIR
|
||||
|| (d_type == DT_UNKNOWN && !(flags & _GL_DT_NOTDIR))))
|
||||
{
|
||||
- acl = acl_get_file_or_link (name, ACL_TYPE_DEFAULT);
|
||||
+ acl = acl_get_fdfile (fd, name, ACL_TYPE_DEFAULT, flags);
|
||||
if (acl)
|
||||
{
|
||||
# ifdef __CYGWIN__ /* Cygwin >= 2.5 */
|
||||
@@ -562,7 +621,10 @@ file_has_aclinfo (MAYBE_UNUSED char const *restrict name,
|
||||
|
||||
/* Solaris 10 (newer version), which has additional API declared in
|
||||
<sys/acl.h> (acl_t) and implemented in libsec (acl_set, acl_trivial,
|
||||
- acl_fromtext, ...). */
|
||||
+ acl_fromtext, ...).
|
||||
+
|
||||
+ Ignore FD, unfortunately. That is better than mishandling
|
||||
+ ZFS-style ACLs, as the general case code does. */
|
||||
return acl_trivial (name);
|
||||
|
||||
# else /* Solaris, Cygwin, general case */
|
||||
@@ -586,7 +648,9 @@ file_has_aclinfo (MAYBE_UNUSED char const *restrict name,
|
||||
|
||||
for (;;)
|
||||
{
|
||||
- count = acl (name, GETACL, alloc, entries);
|
||||
+ count = (fd < 0
|
||||
+ ? acl (name, GETACL, alloc, entries)
|
||||
+ : facl (fd, GETACL, alloc, entries));
|
||||
if (count < 0 && errno == ENOSPC)
|
||||
{
|
||||
/* Increase the size of the buffer. */
|
||||
@@ -657,7 +721,9 @@ file_has_aclinfo (MAYBE_UNUSED char const *restrict name,
|
||||
|
||||
for (;;)
|
||||
{
|
||||
- count = acl (name, ACE_GETACL, alloc, entries);
|
||||
+ count = (fd < 0
|
||||
+ ? acl (name, ACE_GETACL, alloc, entries)
|
||||
+ : facl (fd, ACE_GETACL, alloc, entries));
|
||||
if (count < 0 && errno == ENOSPC)
|
||||
{
|
||||
/* Increase the size of the buffer. */
|
||||
@@ -722,7 +788,9 @@ file_has_aclinfo (MAYBE_UNUSED char const *restrict name,
|
||||
struct acl_entry entries[NACLENTRIES];
|
||||
int count;
|
||||
|
||||
- count = getacl (name, NACLENTRIES, entries);
|
||||
+ count = (fd < 0
|
||||
+ ? getacl (name, NACLENTRIES, entries)
|
||||
+ : fgetacl (fd, NACLENTRIES, entries));
|
||||
|
||||
if (count < 0)
|
||||
{
|
||||
@@ -751,7 +819,8 @@ file_has_aclinfo (MAYBE_UNUSED char const *restrict name,
|
||||
{
|
||||
struct stat statbuf;
|
||||
|
||||
- if (stat (name, &statbuf) == -1 && errno != EOVERFLOW)
|
||||
+ if ((fd < 0 ? stat (name, &statbuf) : fstat (fd, &statbuf)) < 0
|
||||
+ && errno != EOVERFLOW)
|
||||
return -1;
|
||||
|
||||
return acl_nontrivial (count, entries);
|
||||
@@ -765,6 +834,7 @@ file_has_aclinfo (MAYBE_UNUSED char const *restrict name,
|
||||
struct acl entries[NACLVENTRIES];
|
||||
int count;
|
||||
|
||||
+ /* Ignore FD, unfortunately. */
|
||||
count = acl ((char *) name, ACL_GET, NACLVENTRIES, entries);
|
||||
|
||||
if (count < 0)
|
||||
@@ -809,7 +879,9 @@ file_has_aclinfo (MAYBE_UNUSED char const *restrict name,
|
||||
/* The docs say that type being 0 is equivalent to ACL_ANY, but it
|
||||
is not true, in AIX 5.3. */
|
||||
type.u64 = ACL_ANY;
|
||||
- if (aclx_get (name, 0, &type, aclbuf, &aclsize, &mode) >= 0)
|
||||
+ if (0 <= (fd < 0
|
||||
+ ? aclx_get (name, 0, &type, aclbuf, &aclsize, &mode)
|
||||
+ : aclx_fget (fd, 0, &type, aclbuf, &aclsize, &mode)))
|
||||
break;
|
||||
if (errno == ENOSYS)
|
||||
return 0;
|
||||
@@ -855,7 +927,10 @@ file_has_aclinfo (MAYBE_UNUSED char const *restrict name,
|
||||
|
||||
union { struct acl a; char room[4096]; } u;
|
||||
|
||||
- if (statacl ((char *) name, STX_NORMAL, &u.a, sizeof (u)) < 0)
|
||||
+ if ((fd < 0
|
||||
+ ? statacl ((char *) name, STX_NORMAL, &u.a, sizeof u)
|
||||
+ : fstatacl (fd, STX_NORMAL, &u.a, sizeof u))
|
||||
+ < 0)
|
||||
return -1;
|
||||
|
||||
return acl_nontrivial (&u.a);
|
||||
@@ -866,6 +941,7 @@ file_has_aclinfo (MAYBE_UNUSED char const *restrict name,
|
||||
struct acl entries[NACLENTRIES];
|
||||
int count;
|
||||
|
||||
+ /* Ignore FD, unfortunately. */
|
||||
count = acl ((char *) name, ACL_GET, NACLENTRIES, entries);
|
||||
|
||||
if (count < 0)
|
||||
diff --git a/lib/qcopy-acl.c b/lib/qcopy-acl.c
|
||||
index ad7966152a..282f4b2d2a 100644
|
||||
--- a/lib/qcopy-acl.c
|
||||
+++ b/lib/qcopy-acl.c
|
||||
@@ -26,6 +26,7 @@
|
||||
#if USE_XATTR
|
||||
|
||||
# include <attr/libattr.h>
|
||||
+# include <dirent.h>
|
||||
# include <string.h>
|
||||
|
||||
# if HAVE_LINUX_XATTR_H
|
||||
@@ -61,6 +62,7 @@ is_attr_permissions (const char *name, struct error_context *ctx)
|
||||
a valid file descriptor, use file descriptor operations, else use
|
||||
filename based operations on SRC_NAME. Likewise for DEST_DESC and
|
||||
DST_NAME.
|
||||
+ MODE should be the source file's st_mode.
|
||||
If access control lists are not available, fchmod the target file to
|
||||
MODE. Also sets the non-permission bits of the destination file
|
||||
(S_ISUID, S_ISGID, S_ISVTX) to those from MODE if any are set.
|
||||
@@ -86,10 +88,29 @@ qcopy_acl (const char *src_name, int source_desc, const char *dst_name,
|
||||
Functions attr_copy_* return 0 in case we copied something OR nothing
|
||||
to copy */
|
||||
if (ret == 0)
|
||||
- ret = source_desc <= 0 || dest_desc <= 0
|
||||
- ? attr_copy_file (src_name, dst_name, is_attr_permissions, NULL)
|
||||
- : attr_copy_fd (src_name, source_desc, dst_name, dest_desc,
|
||||
- is_attr_permissions, NULL);
|
||||
+ {
|
||||
+ ret = source_desc <= 0 || dest_desc <= 0
|
||||
+ ? attr_copy_file (src_name, dst_name, is_attr_permissions, NULL)
|
||||
+ : attr_copy_fd (src_name, source_desc, dst_name, dest_desc,
|
||||
+ is_attr_permissions, NULL);
|
||||
+
|
||||
+ /* Copying can fail with EOPNOTSUPP even when the source
|
||||
+ permissions are trivial (Bug#78328). Don't report an error
|
||||
+ in this case, as the chmod_or_fchmod suffices. */
|
||||
+ if (ret < 0 && errno == EOPNOTSUPP)
|
||||
+ {
|
||||
+ /* fdfile_has_aclinfo cares only about DT_DIR, _GL_DT_NOTDIR,
|
||||
+ and DT_LNK (but DT_LNK is not possible here),
|
||||
+ so use _GL_DT_NOTDIR | DT_UNKNOWN for other file types. */
|
||||
+ int flags = S_ISDIR (mode) ? DT_DIR : _GL_DT_NOTDIR | DT_UNKNOWN;
|
||||
+
|
||||
+ struct aclinfo ai;
|
||||
+ if (!fdfile_has_aclinfo (source_desc, src_name, &ai, flags))
|
||||
+ ret = 0;
|
||||
+ aclinfo_free (&ai);
|
||||
+ errno = EOPNOTSUPP;
|
||||
+ }
|
||||
+ }
|
||||
#else
|
||||
/* no XATTR, so we proceed the old dusty way */
|
||||
struct permission_context ctx;
|
2
debian/patches/series
vendored
Normal file
2
debian/patches/series
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
72_id_checkngroups.patch
|
||||
gnulib-nfs-acl.patch
|
79
debian/rules
vendored
Executable file
79
debian/rules
vendored
Executable file
|
@ -0,0 +1,79 @@
|
|||
#!/usr/bin/make -f
|
||||
# Uncomment this to turn on verbose mode.
|
||||
#export DH_VERBOSE=1
|
||||
#export DH_OPTIONS=-v
|
||||
|
||||
DPKG_EXPORT_BUILDFLAGS = 1
|
||||
include /usr/share/dpkg/default.mk
|
||||
|
||||
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
||||
DEB_CFLAGS_MAINT_APPEND = -DSYSLOG_SUCCESS -DSYSLOG_FAILURE -DSYSLOG_NON_ROOT
|
||||
|
||||
# Renesas SH(sh4) need -mieee option.
|
||||
ifeq ($(DEB_HOST_ARCH_CPU),sh4)
|
||||
DEB_CFLAGS_MAINT_APPEND += -mieee
|
||||
endif
|
||||
|
||||
ifeq ($(DEB_HOST_ARCH),hurd-i386)
|
||||
Y2038 = --disable-year2038
|
||||
endif
|
||||
|
||||
ifneq ($(filter nodoc,$(DEB_BUILD_PROFILES)),)
|
||||
export MAKEINFO = true
|
||||
endif
|
||||
|
||||
BIN_PROGS = cat chgrp chmod chown cp date dd df dir echo false ln ls mkdir \
|
||||
mknod mv pwd readlink rm rmdir vdir sleep stty sync touch true uname \
|
||||
mktemp
|
||||
d=debian/coreutils
|
||||
|
||||
override_dh_update_autotools_config:
|
||||
# don't do this
|
||||
|
||||
override_dh_autoreconf:
|
||||
# don't do this
|
||||
|
||||
override_dh_auto_configure:
|
||||
dh_auto_configure -- --enable-systemd --enable-install-program=arch --with-openssl=auto-gpl-compat --with-packager=$(DEB_VENDOR) --with-packager-version=$(DEB_VERSION) $(Y2038)
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_clean:
|
||||
make distclean || true
|
||||
|
||||
override_dh_auto_test:
|
||||
# tests fail a lot on the buildds
|
||||
|
||||
override_dh_auto_install:
|
||||
dh_auto_install --destdir=$(d)
|
||||
|
||||
override_dh_install-arch:
|
||||
dh_install -a
|
||||
|
||||
# remove stuff provided by other packages
|
||||
ifeq ($(DEB_HOST_ARCH_OS),linux)
|
||||
# kill from procps is linux-specific
|
||||
rm -f $(d)/usr/bin/kill $(d)/usr/share/man/man1/kill.1
|
||||
endif
|
||||
rm -f $(d)/usr/bin/hostname $(d)/usr/share/man/man1/hostname.1
|
||||
rm -f $(d)/usr/bin/uptime $(d)/usr/share/man/man1/uptime.1
|
||||
|
||||
# the [ program doesn't have its own man page yet
|
||||
ln -s test.1 $(d)/usr/share/man/man1/[.1
|
||||
|
||||
# gnu thinks chroot is in bin, debian thinks it's in sbin
|
||||
install -d $(d)/usr/sbin $(d)/usr/share/man/man8
|
||||
mv $(d)/usr/bin/chroot $(d)/usr/sbin/chroot
|
||||
sed s/\"1\"/\"8\"/1 $(d)/usr/share/man/man1/chroot.1 > $(d)/usr/share/man/man8/chroot.8
|
||||
rm $(d)/usr/share/man/man1/chroot.1
|
||||
|
||||
# some build environments will leave a dangling info dir
|
||||
rm -f $(d)/usr/share/info/dir
|
||||
|
||||
ifneq ($(filter nodoc,$(DEB_BUILD_PROFILES)),)
|
||||
# Remove info files and manual pages if building with <nodoc>
|
||||
rm -rf $(d)/usr/share/info/
|
||||
rm -rf $(d)/usr/share/man/
|
||||
endif
|
||||
|
1
debian/source/format
vendored
Normal file
1
debian/source/format
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
3.0 (quilt)
|
4
debian/upstream/metadata
vendored
Normal file
4
debian/upstream/metadata
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
Bug-Database: https://bugs.gnu.org/coreutils
|
||||
Documentation: https://www.gnu.org/software/coreutils/manual/
|
||||
Repository: https://git.savannah.gnu.org/git/coreutils.git
|
||||
Repository-Browse: https://git.savannah.gnu.org/gitweb/?p=coreutils.git
|
53
debian/upstream/signing-key.asc
vendored
Normal file
53
debian/upstream/signing-key.asc
vendored
Normal file
|
@ -0,0 +1,53 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
C5s8YFjVR/96dYI=
|
||||
=ZdDU
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
2
debian/watch
vendored
Normal file
2
debian/watch
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
version=4
|
||||
opts=pgpsigurlmangle=s/$/.sig/ https://ftp.gnu.org/gnu/coreutils/coreutils-([\d+\.]+)\.tar\.(?:gz|bz2|lzma|xz)
|
Loading…
Add table
Add a link
Reference in a new issue