This commit is contained in:
commit
d88e232f02
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
89
acl-test.diff
Normal file
89
acl-test.diff
Normal file
@ -0,0 +1,89 @@
|
||||
2006-12-13 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* tests/mv/acl (skip): Check for acl support in the file system.
|
||||
|
||||
* tests/mv/Makefile.am (XFAIL_TESTS): Remove.
|
||||
(TESTS_ENVIRONMENT): Pass CONFIG_HEADER.
|
||||
|
||||
2006-12-12 Jim Meyering <jim@meyering.net>
|
||||
|
||||
* m4/acl.m4 (gl_ACL_GET_FILE): Fix logic error.
|
||||
Reported by Andreas Schwab <schwab@suse.de>.
|
||||
|
||||
diff --git a/tests/mv/Makefile.am b/tests/mv/Makefile.am
|
||||
index 57581cd..0a1f2db 100644
|
||||
--- a/tests/mv/Makefile.am
|
||||
+++ b/tests/mv/Makefile.am
|
||||
@@ -20,7 +20,6 @@
|
||||
|
||||
AUTOMAKE_OPTIONS = 1.3 gnits
|
||||
|
||||
-XFAIL_TESTS = acl
|
||||
TESTS = \
|
||||
hard-verbose \
|
||||
backup-dir \
|
||||
@@ -48,4 +47,5 @@ TESTS_ENVIRONMENT = \
|
||||
PERL="$(PERL)" \
|
||||
EGREP="$(EGREP)" \
|
||||
PATH="$(VG_PATH_PREFIX)`pwd`/../../src$(PATH_SEPARATOR)$$PATH" \
|
||||
+ CONFIG_HEADER=$(CONFIG_HEADER) \
|
||||
PROG=mv
|
||||
diff --git a/tests/mv/acl b/tests/mv/acl
|
||||
index f570656..df3bb01 100755
|
||||
--- a/tests/mv/acl
|
||||
+++ b/tests/mv/acl
|
||||
@@ -24,6 +24,13 @@
|
||||
# Make sure we get English translations.
|
||||
. $srcdir/../lang-default
|
||||
|
||||
+# Skip this test if cp was built without ACL support:
|
||||
+grep '^#define USE_ACL 0' $CONFIG_HEADER > /dev/null && \
|
||||
+ {
|
||||
+ echo 1>&2 "$0: insufficient ACL support, so skipping this test"
|
||||
+ (exit 77); exit 77
|
||||
+ }
|
||||
+
|
||||
if test "$VERBOSE" = yes; then
|
||||
set -x
|
||||
mv --version
|
||||
@@ -46,15 +53,26 @@ framework_failure=0
|
||||
mkdir -p $tmp || framework_failure=1
|
||||
cd $tmp || framework_failure=1
|
||||
|
||||
+touch file || framework_failure=1
|
||||
+
|
||||
if test $framework_failure = 1; then
|
||||
echo 'failure in testing framework'
|
||||
(exit 1); exit 1
|
||||
fi
|
||||
|
||||
+skip=no
|
||||
+# Ensure that setfacl and getfacl work on this file system.
|
||||
+setfacl -m user:bin:rw file 2> /dev/null || skip=yes
|
||||
+acl1=`getfacl file` || skip=yes
|
||||
+
|
||||
+test $skip = yes &&
|
||||
+ {
|
||||
+ echo "$0: '.' is not on a suitable file system for this test" 1>&2
|
||||
+ echo "$0: skipping this test" 1>&2
|
||||
+ (exit 77); exit 77
|
||||
+ }
|
||||
+
|
||||
# move the access acl of a file
|
||||
-touch file || framework_failure=1
|
||||
-setfacl -m user:bin:rw file || framework_failure=1
|
||||
-acl1=`getfacl file` || framework_failure=1
|
||||
mv file $other_partition_tmpdir || fail=1
|
||||
acl2=`cd $other_partition_tmpdir && getfacl file` || framework_failure=1
|
||||
test "$acl1" = "$acl2" || fail=1
|
||||
--- a/m4/acl.m4
|
||||
+++ b/m4/acl.m4
|
||||
@@ -53,7 +53,7 @@
|
||||
#include <errno.h>
|
||||
]],
|
||||
[[return !! (!acl_get_file (".", ACL_TYPE_ACCESS)
|
||||
- || errno == ENOENT);]])],
|
||||
+ && errno == ENOENT);]])],
|
||||
[gl_cv_func_working_acl_get_file=yes],
|
||||
[gl_cv_func_working_acl_get_file=no],
|
||||
[gl_cv_func_working_acl_get_file=cross-compiling])])
|
38
coreutils-5.0-pam-env.patch
Normal file
38
coreutils-5.0-pam-env.patch
Normal file
@ -0,0 +1,38 @@
|
||||
--- coreutils-5.3.0/src/su.c
|
||||
+++ coreutils-5.3.0/src/su.c
|
||||
@@ -521,6 +521,21 @@
|
||||
}
|
||||
|
||||
/* child shell */
|
||||
+
|
||||
+ /* Export env variables declared by PAM modules */
|
||||
+ {
|
||||
+ const char *const *env;
|
||||
+
|
||||
+ env = (const char *const *) pam_getenvlist (pamh);
|
||||
+ while (env && *env)
|
||||
+ {
|
||||
+
|
||||
+ if (putenv (*env) != 0)
|
||||
+ xalloc_die ();
|
||||
+ env++;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
pam_end (pamh, 0);
|
||||
#endif
|
||||
|
||||
@@ -726,9 +741,12 @@
|
||||
shell = NULL;
|
||||
}
|
||||
shell = xstrdup (shell ? shell : pw->pw_shell);
|
||||
+ change_identity (pw);
|
||||
+
|
||||
+ /* Set environment after pam_open_session, which may put KRB5CCNAME
|
||||
+ into the pam_env, etc. */
|
||||
modify_environment (pw, shell);
|
||||
|
||||
- change_identity (pw);
|
||||
if (simulate_login && chdir (pw->pw_dir) != 0)
|
||||
error (0, errno, _("warning: cannot change directory to %s"), pw->pw_dir);
|
||||
|
3998
coreutils-5.3.0-i18n-0.1.patch
Normal file
3998
coreutils-5.3.0-i18n-0.1.patch
Normal file
File diff suppressed because it is too large
Load Diff
21
coreutils-5.3.0-pie.diff
Normal file
21
coreutils-5.3.0-pie.diff
Normal file
@ -0,0 +1,21 @@
|
||||
--- lib/Makefile.am
|
||||
+++ lib/Makefile.am
|
||||
@@ -20,6 +20,7 @@
|
||||
include gnulib.mk
|
||||
|
||||
AM_CFLAGS = $(WARNING_CFLAGS) $(WERROR_CFLAGS)
|
||||
+AM_CFLAGS += -fpie
|
||||
|
||||
noinst_PROGRAMS = t-fpending
|
||||
LDADD = $(noinst_LIBRARIES)
|
||||
--- src/Makefile.am
|
||||
+++ src/Makefile.am
|
||||
@@ -105,6 +105,8 @@
|
||||
|
||||
su_SOURCES = su.c getdef.c
|
||||
su_LDADD = $(LDADD) $(LIB_CRYPT) -lpam -lpam_misc -ldl
|
||||
+su_CFLAGS = -fpie
|
||||
+su_LDFLAGS = -pie
|
||||
|
||||
dir_LDADD += $(LIB_ACL)
|
||||
ls_LDADD += $(LIB_ACL)
|
143
coreutils-5.3.0-sbin4su.diff
Normal file
143
coreutils-5.3.0-sbin4su.diff
Normal file
@ -0,0 +1,143 @@
|
||||
--- src/su.c
|
||||
+++ src/su.c
|
||||
@@ -344,6 +344,117 @@
|
||||
#endif /* !USE_PAM */
|
||||
}
|
||||
|
||||
+/* Add or clear /sbin and /usr/sbin for the su command
|
||||
+ used without `-'. */
|
||||
+
|
||||
+/* Set if /sbin is found in path. */
|
||||
+#define SBIN_MASK 0x01
|
||||
+/* Set if /usr/sbin is found in path. */
|
||||
+#define USBIN_MASK 0x02
|
||||
+
|
||||
+static char *
|
||||
+addsbin (const char *const path)
|
||||
+{
|
||||
+ unsigned char smask = 0;
|
||||
+ char *ptr, *tmp, *cur, *ret = NULL;
|
||||
+ size_t len;
|
||||
+
|
||||
+ if (!path || *path == 0)
|
||||
+ return NULL;
|
||||
+
|
||||
+ tmp = xstrdup (path);
|
||||
+ cur = tmp;
|
||||
+ for (ptr = strsep (&cur, ":"); ptr != NULL; ptr = strsep (&cur, ":"))
|
||||
+ {
|
||||
+ if (!strcmp (ptr, "/sbin"))
|
||||
+ smask |= SBIN_MASK;
|
||||
+ if (!strcmp (ptr, "/usr/sbin"))
|
||||
+ smask |= USBIN_MASK;
|
||||
+ }
|
||||
+
|
||||
+ if ((smask & (USBIN_MASK|SBIN_MASK)) == (USBIN_MASK|SBIN_MASK))
|
||||
+ {
|
||||
+ free (tmp);
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ len = strlen (path);
|
||||
+ if (!(smask & USBIN_MASK))
|
||||
+ len += strlen ("/usr/sbin:");
|
||||
+
|
||||
+ if (!(smask & SBIN_MASK))
|
||||
+ len += strlen (":/sbin");
|
||||
+
|
||||
+ ret = xmalloc (len + 1);
|
||||
+ strcpy (tmp, path);
|
||||
+
|
||||
+ *ret = 0;
|
||||
+ cur = tmp;
|
||||
+ for (ptr = strsep (&cur, ":"); ptr; ptr = strsep (&cur, ":"))
|
||||
+ {
|
||||
+ if (!strcmp (ptr, "."))
|
||||
+ continue;
|
||||
+ if (*ret)
|
||||
+ strcat (ret, ":");
|
||||
+ if (!(smask & USBIN_MASK) && !strcmp (ptr, "/bin"))
|
||||
+ {
|
||||
+ strcat (ret, "/usr/sbin:");
|
||||
+ strcat (ret, ptr);
|
||||
+ smask |= USBIN_MASK;
|
||||
+ continue;
|
||||
+ }
|
||||
+ if (!(smask & SBIN_MASK) && !strcmp (ptr, "/usr/bin"))
|
||||
+ {
|
||||
+ strcat (ret, ptr);
|
||||
+ strcat (ret, ":/sbin");
|
||||
+ smask |= SBIN_MASK;
|
||||
+ continue;
|
||||
+ }
|
||||
+ strcat (ret, ptr);
|
||||
+ }
|
||||
+ free (tmp);
|
||||
+
|
||||
+ if (!(smask & USBIN_MASK))
|
||||
+ strcat (ret, ":/usr/sbin");
|
||||
+
|
||||
+ if (!(smask & SBIN_MASK))
|
||||
+ strcat (ret, ":/sbin");
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+static char *
|
||||
+clearsbin (const char *const path)
|
||||
+{
|
||||
+ char *ptr, *tmp, *cur, *ret = NULL;
|
||||
+
|
||||
+ if (!path || *path == 0)
|
||||
+ return NULL;
|
||||
+
|
||||
+ tmp = strdup (path);
|
||||
+ if (!tmp)
|
||||
+ return NULL;
|
||||
+
|
||||
+ ret = xmalloc (strlen (path) + 1);
|
||||
+ *ret = 0;
|
||||
+ cur = tmp;
|
||||
+ for (ptr = strsep (&cur, ":"); ptr; ptr = strsep (&cur, ":"))
|
||||
+ {
|
||||
+ if (!strcmp (ptr, "/sbin"))
|
||||
+ continue;
|
||||
+ if (!strcmp (ptr, "/usr/sbin"))
|
||||
+ continue;
|
||||
+ if (!strcmp (ptr, "/usr/local/sbin"))
|
||||
+ continue;
|
||||
+ if (*ret)
|
||||
+ strcat (ret, ":");
|
||||
+ strcat (ret, ptr);
|
||||
+ }
|
||||
+ free (tmp);
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
/* Update `environ' for the new shell based on PW, with SHELL being
|
||||
the value for the SHELL environment variable. */
|
||||
|
||||
@@ -383,6 +494,22 @@
|
||||
DEFAULT_LOGIN_PATH)
|
||||
: getdef_str ("SUPATH",
|
||||
DEFAULT_ROOT_LOGIN_PATH)));
|
||||
+ else
|
||||
+ {
|
||||
+ char const *path = getenv ("PATH");
|
||||
+ char *new = NULL;
|
||||
+
|
||||
+ if (pw->pw_uid)
|
||||
+ new = clearsbin (path);
|
||||
+ else
|
||||
+ new = addsbin (path);
|
||||
+
|
||||
+ if (new)
|
||||
+ {
|
||||
+ xsetenv ("PATH", new);
|
||||
+ free (new);
|
||||
+ }
|
||||
+ }
|
||||
if (pw->pw_uid)
|
||||
{
|
||||
xsetenv ("USER", pw->pw_name);
|
764
coreutils-6.7.diff
Normal file
764
coreutils-6.7.diff
Normal file
@ -0,0 +1,764 @@
|
||||
--- doc/coreutils.texi
|
||||
+++ doc/coreutils.texi
|
||||
@@ -64,8 +64,6 @@
|
||||
* fold: (coreutils)fold invocation. Wrap long input lines.
|
||||
* groups: (coreutils)groups invocation. Print group names a user is in.
|
||||
* head: (coreutils)head invocation. Output the first part of files.
|
||||
-* hostid: (coreutils)hostid invocation. Print numeric host identifier.
|
||||
-* hostname: (coreutils)hostname invocation. Print or set system name.
|
||||
* id: (coreutils)id invocation. Print user identity.
|
||||
* install: (coreutils)install invocation. Copy and change attributes.
|
||||
* join: (coreutils)join invocation. Join lines on a common field.
|
||||
@@ -398,8 +396,6 @@
|
||||
|
||||
* date invocation:: Print or set system date and time
|
||||
* uname invocation:: Print system information
|
||||
-* hostname invocation:: Print or set system name
|
||||
-* hostid invocation:: Print numeric host identifier.
|
||||
|
||||
@command{date}: Print or set system date and time
|
||||
|
||||
@@ -12190,8 +12186,6 @@
|
||||
@menu
|
||||
* date invocation:: Print or set system date and time.
|
||||
* uname invocation:: Print system information.
|
||||
-* hostname invocation:: Print or set system name.
|
||||
-* hostid invocation:: Print numeric host identifier.
|
||||
@end menu
|
||||
|
||||
|
||||
@@ -12949,55 +12943,6 @@
|
||||
@exitstatus
|
||||
|
||||
|
||||
-@node hostname invocation
|
||||
-@section @command{hostname}: Print or set system name
|
||||
-
|
||||
-@pindex hostname
|
||||
-@cindex setting the hostname
|
||||
-@cindex printing the hostname
|
||||
-@cindex system name, printing
|
||||
-@cindex appropriate privileges
|
||||
-
|
||||
-With no arguments, @command{hostname} prints the name of the current host
|
||||
-system. With one argument, it sets the current host name to the
|
||||
-specified string. You must have appropriate privileges to set the host
|
||||
-name. Synopsis:
|
||||
-
|
||||
-@example
|
||||
-hostname [@var{name}]
|
||||
-@end example
|
||||
-
|
||||
-The only options are @option{--help} and @option{--version}. @xref{Common
|
||||
-options}.
|
||||
-
|
||||
-@exitstatus
|
||||
-
|
||||
-
|
||||
-@node hostid invocation
|
||||
-@section @command{hostid}: Print numeric host identifier.
|
||||
-
|
||||
-@pindex hostid
|
||||
-@cindex printing the host identifier
|
||||
-
|
||||
-@command{hostid} prints the numeric identifier of the current host
|
||||
-in hexadecimal. This command accepts no arguments.
|
||||
-The only options are @option{--help} and @option{--version}.
|
||||
-@xref{Common options}.
|
||||
-
|
||||
-For example, here's what it prints on one system I use:
|
||||
-
|
||||
-@example
|
||||
-$ hostid
|
||||
-1bac013d
|
||||
-@end example
|
||||
-
|
||||
-On that system, the 32-bit quantity happens to be closely
|
||||
-related to the system's Internet address, but that isn't always
|
||||
-the case.
|
||||
-
|
||||
-@exitstatus
|
||||
-
|
||||
-
|
||||
@node Modified command invocation
|
||||
@chapter Modified command invocation
|
||||
|
||||
--- src/Makefile.am
|
||||
+++ src/Makefile.am
|
||||
@@ -103,7 +103,8 @@
|
||||
# If necessary, add -lm to resolve use of pow in lib/strtod.c.
|
||||
uptime_LDADD = $(LDADD) $(POW_LIB) $(GETLOADAVG_LIBS)
|
||||
|
||||
-su_LDADD = $(LDADD) $(LIB_CRYPT)
|
||||
+su_SOURCES = su.c getdef.c
|
||||
+su_LDADD = $(LDADD) $(LIB_CRYPT) -lpam -lpam_misc -ldl
|
||||
|
||||
dir_LDADD += $(LIB_ACL)
|
||||
ls_LDADD += $(LIB_ACL)
|
||||
--- src/getdef.c
|
||||
+++ src/getdef.c
|
||||
@@ -0,0 +1,257 @@
|
||||
+/* Copyright (C) 2003, 2004, 2005 Thorsten Kukuk
|
||||
+ Author: Thorsten Kukuk <kukuk@suse.de>
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License version 2 as
|
||||
+ published by the Free Software Foundation.
|
||||
+
|
||||
+ 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, write to the Free Software Foundation,
|
||||
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
+
|
||||
+#ifdef HAVE_CONFIG_H
|
||||
+#include <config.h>
|
||||
+#endif
|
||||
+
|
||||
+#define _GNU_SOURCE
|
||||
+
|
||||
+#include <errno.h>
|
||||
+#include <ctype.h>
|
||||
+#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
+#include <limits.h>
|
||||
+
|
||||
+#include "getdef.h"
|
||||
+
|
||||
+struct item {
|
||||
+ char *name; /* name of the option. */
|
||||
+ char *value; /* value of the option. */
|
||||
+ struct item *next; /* pointer to next option. */
|
||||
+};
|
||||
+
|
||||
+static struct item *list = NULL;
|
||||
+
|
||||
+void
|
||||
+free_getdef_data (void)
|
||||
+{
|
||||
+ struct item *ptr;
|
||||
+
|
||||
+ ptr = list;
|
||||
+ while (ptr != NULL)
|
||||
+ {
|
||||
+ struct item *tmp;
|
||||
+ tmp = ptr->next;
|
||||
+ free (ptr->name);
|
||||
+ free (ptr->value);
|
||||
+ free (ptr);
|
||||
+ ptr = tmp;
|
||||
+ }
|
||||
+
|
||||
+ list = NULL;
|
||||
+}
|
||||
+
|
||||
+/* Add a new entry to the list. */
|
||||
+static void
|
||||
+store (const char *name, const char *value)
|
||||
+{
|
||||
+ struct item *new = malloc (sizeof (struct item));
|
||||
+
|
||||
+ if (new == NULL)
|
||||
+ abort ();
|
||||
+
|
||||
+ if (name == NULL)
|
||||
+ abort ();
|
||||
+
|
||||
+ new->name = strdup (name);
|
||||
+ new->value = strdup (value?:"");
|
||||
+ new->next = list;
|
||||
+ list = new;
|
||||
+}
|
||||
+
|
||||
+/* search a special entry in the list and return the value. */
|
||||
+static const char *
|
||||
+search (const char *name)
|
||||
+{
|
||||
+ struct item *ptr;
|
||||
+
|
||||
+ ptr = list;
|
||||
+ while (ptr != NULL)
|
||||
+ {
|
||||
+ if (strcasecmp (name, ptr->name) == 0)
|
||||
+ return ptr->value;
|
||||
+ ptr = ptr->next;
|
||||
+ }
|
||||
+
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
+/* Load the login.defs file (/etc/login.defs) */
|
||||
+static void
|
||||
+load_defaults_internal (const char *filename)
|
||||
+{
|
||||
+ FILE *fp;
|
||||
+ char *buf = NULL;
|
||||
+ size_t buflen = 0;
|
||||
+
|
||||
+ fp = fopen (filename, "r");
|
||||
+ if (NULL == fp)
|
||||
+ return;
|
||||
+
|
||||
+ while (!feof (fp))
|
||||
+ {
|
||||
+ char *tmp, *cp;
|
||||
+#if defined(HAVE_GETLINE)
|
||||
+ ssize_t n = getline (&buf, &buflen, fp);
|
||||
+#elif defined (HAVE_GETDELIM)
|
||||
+ ssize_t n = getdelim (&buf, &buflen, '\n', fp);
|
||||
+#else
|
||||
+ ssize_t n;
|
||||
+
|
||||
+ if (buf == NULL)
|
||||
+ {
|
||||
+ buflen = 8096;
|
||||
+ buf = malloc (buflen);
|
||||
+ }
|
||||
+ buf[0] = '\0';
|
||||
+ fgets (buf, buflen - 1, fp);
|
||||
+ if (buf != NULL)
|
||||
+ n = strlen (buf);
|
||||
+ else
|
||||
+ n = 0;
|
||||
+#endif /* HAVE_GETLINE / HAVE_GETDELIM */
|
||||
+ cp = buf;
|
||||
+
|
||||
+ if (n < 1)
|
||||
+ break;
|
||||
+
|
||||
+ tmp = strchr (cp, '#'); /* remove comments */
|
||||
+ if (tmp)
|
||||
+ *tmp = '\0';
|
||||
+ while (isspace ((int)*cp)) /* remove spaces and tabs */
|
||||
+ ++cp;
|
||||
+ if (*cp == '\0') /* ignore empty lines */
|
||||
+ continue;
|
||||
+
|
||||
+ if (cp[strlen (cp) - 1] == '\n')
|
||||
+ cp[strlen (cp) - 1] = '\0';
|
||||
+
|
||||
+ tmp = strsep (&cp, " \t=");
|
||||
+ if (cp != NULL)
|
||||
+ while (isspace ((int)*cp) || *cp == '=')
|
||||
+ ++cp;
|
||||
+
|
||||
+ store (tmp, cp);
|
||||
+ }
|
||||
+ fclose (fp);
|
||||
+
|
||||
+ if (buf)
|
||||
+ free (buf);
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+load_defaults (void)
|
||||
+{
|
||||
+ load_defaults_internal ("/etc/default/su");
|
||||
+ load_defaults_internal ("/etc/login.defs");
|
||||
+}
|
||||
+
|
||||
+int
|
||||
+getdef_bool (const char *name, int dflt)
|
||||
+{
|
||||
+ const char *val;
|
||||
+
|
||||
+ if (list == NULL)
|
||||
+ load_defaults ();
|
||||
+
|
||||
+ val = search (name);
|
||||
+
|
||||
+ if (val == NULL)
|
||||
+ return dflt;
|
||||
+
|
||||
+ return (strcasecmp (val, "yes") == 0);
|
||||
+}
|
||||
+
|
||||
+long
|
||||
+getdef_num (const char *name, long dflt)
|
||||
+{
|
||||
+ const char *val;
|
||||
+ char *cp;
|
||||
+ long retval;
|
||||
+
|
||||
+ if (list == NULL)
|
||||
+ load_defaults ();
|
||||
+
|
||||
+ val = search (name);
|
||||
+
|
||||
+ if (val == NULL)
|
||||
+ return dflt;
|
||||
+
|
||||
+ retval = strtol (val, &cp, 0);
|
||||
+ if (*cp != '\0' ||
|
||||
+ ((retval == LONG_MAX || retval == LONG_MIN) && errno == ERANGE))
|
||||
+ {
|
||||
+ fprintf (stderr,
|
||||
+ "%s contains invalid numerical value: %s!\n",
|
||||
+ name, val);
|
||||
+ retval = dflt;
|
||||
+ }
|
||||
+ return retval;
|
||||
+}
|
||||
+
|
||||
+unsigned long
|
||||
+getdef_unum (const char *name, unsigned long dflt)
|
||||
+{
|
||||
+ const char *val;
|
||||
+ char *cp;
|
||||
+ unsigned long retval;
|
||||
+
|
||||
+ if (list == NULL)
|
||||
+ load_defaults ();
|
||||
+
|
||||
+ val = search (name);
|
||||
+
|
||||
+ if (val == NULL)
|
||||
+ return dflt;
|
||||
+
|
||||
+ retval = strtoul (val, &cp, 0);
|
||||
+ if (*cp != '\0' || (retval == ULONG_MAX && errno == ERANGE))
|
||||
+ {
|
||||
+ fprintf (stderr,
|
||||
+ "%s contains invalid numerical value: %s!\n",
|
||||
+ name, val);
|
||||
+ retval = dflt;
|
||||
+ }
|
||||
+ return retval;
|
||||
+}
|
||||
+
|
||||
+const char *
|
||||
+getdef_str (const char *name, const char *dflt)
|
||||
+{
|
||||
+ const char *retval;
|
||||
+
|
||||
+ if (list == NULL)
|
||||
+ load_defaults ();
|
||||
+
|
||||
+ retval = search (name);
|
||||
+
|
||||
+ return retval ?: dflt;
|
||||
+}
|
||||
+
|
||||
+#if defined(TEST)
|
||||
+
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+ printf ("CYPT=%s\n", getdef_str ("cRypt", "no"));
|
||||
+ printf ("LOG_UNKFAIL_ENAB=%s\n", getdef_str ("log_unkfail_enab",""));
|
||||
+ printf ("DOESNOTEXIST=%s\n", getdef_str ("DOESNOTEXIST","yes"));
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+#endif
|
||||
--- src/getdef.h
|
||||
+++ src/getdef.h
|
||||
@@ -0,0 +1,29 @@
|
||||
+/* Copyright (C) 2003, 2005 Thorsten Kukuk
|
||||
+ Author: Thorsten Kukuk <kukuk@suse.de>
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License version 2 as
|
||||
+ published by the Free Software Foundation.
|
||||
+
|
||||
+ 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, write to the Free Software Foundation,
|
||||
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
+
|
||||
+#ifndef _GETDEF_H_
|
||||
+
|
||||
+#define _GETDEF_H_ 1
|
||||
+
|
||||
+extern int getdef_bool (const char *name, int dflt);
|
||||
+extern long getdef_num (const char *name, long dflt);
|
||||
+extern unsigned long getdef_unum (const char *name, unsigned long dflt);
|
||||
+extern const char *getdef_str (const char *name, const char *dflt);
|
||||
+
|
||||
+/* Free all data allocated by getdef_* calls before. */
|
||||
+extern void free_getdef_data (void);
|
||||
+
|
||||
+#endif /* _GETDEF_H_ */
|
||||
--- src/install.c
|
||||
+++ src/install.c
|
||||
@@ -572,7 +572,8 @@
|
||||
while (pid != wait (&status)) /* Wait for kid to finish. */
|
||||
/* Do nothing. */ ;
|
||||
if (status)
|
||||
- error (EXIT_FAILURE, 0, _("strip failed"));
|
||||
+ /* Don't fail just because `strip' failed. */
|
||||
+ error (0, 0, _("strip failed"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
--- src/su.c
|
||||
+++ src/su.c
|
||||
@@ -38,6 +38,12 @@
|
||||
restricts who can su to UID 0 accounts. RMS considers that to
|
||||
be fascist.
|
||||
|
||||
+ Actually, with PAM, su has nothing to do with whether or not a
|
||||
+ wheel group is enforced by su. RMS tries to restrict your access
|
||||
+ to a su which implements the wheel group, but PAM considers that
|
||||
+ to be fascist, and gives the user/sysadmin the opportunity to
|
||||
+ enforce a wheel group by proper editing of /etc/pam.d/su
|
||||
+
|
||||
Compile-time options:
|
||||
-DSYSLOG_SUCCESS Log successful su's (by default, to root) with syslog.
|
||||
-DSYSLOG_FAILURE Log failed su's (by default, to root) with syslog.
|
||||
@@ -53,6 +59,13 @@
|
||||
#include <sys/types.h>
|
||||
#include <pwd.h>
|
||||
#include <grp.h>
|
||||
+#ifdef USE_PAM
|
||||
+#include <security/pam_appl.h>
|
||||
+#include <security/pam_misc.h>
|
||||
+#include <signal.h>
|
||||
+#include <sys/wait.h>
|
||||
+#include <sys/fsuid.h>
|
||||
+#endif
|
||||
|
||||
/* Hide any system prototype for getusershell.
|
||||
This is necessary because some Cray systems have a conflicting
|
||||
@@ -66,6 +79,9 @@
|
||||
|
||||
#if HAVE_SYSLOG_H && HAVE_SYSLOG
|
||||
# include <syslog.h>
|
||||
+# define SYSLOG_SUCCESS 1
|
||||
+# define SYSLOG_FAILURE 1
|
||||
+# define SYSLOG_NON_ROOT 1
|
||||
#else
|
||||
# undef SYSLOG_SUCCESS
|
||||
# undef SYSLOG_FAILURE
|
||||
@@ -99,19 +115,13 @@
|
||||
# include <paths.h>
|
||||
#endif
|
||||
|
||||
+#include "getdef.h"
|
||||
+
|
||||
/* The default PATH for simulated logins to non-superuser accounts. */
|
||||
-#ifdef _PATH_DEFPATH
|
||||
-# define DEFAULT_LOGIN_PATH _PATH_DEFPATH
|
||||
-#else
|
||||
-# define DEFAULT_LOGIN_PATH ":/usr/ucb:/bin:/usr/bin"
|
||||
-#endif
|
||||
+#define DEFAULT_LOGIN_PATH "/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin"
|
||||
|
||||
/* The default PATH for simulated logins to superuser accounts. */
|
||||
-#ifdef _PATH_DEFPATH_ROOT
|
||||
-# define DEFAULT_ROOT_LOGIN_PATH _PATH_DEFPATH_ROOT
|
||||
-#else
|
||||
-# define DEFAULT_ROOT_LOGIN_PATH "/usr/ucb:/bin:/usr/bin:/etc"
|
||||
-#endif
|
||||
+#define DEFAULT_ROOT_LOGIN_PATH "/usr/sbin:/bin:/usr/bin:/sbin:/usr/X11R6/bin"
|
||||
|
||||
/* The shell to run if none is given in the user's passwd entry. */
|
||||
#define DEFAULT_SHELL "/bin/sh"
|
||||
@@ -119,7 +129,9 @@
|
||||
/* The user to become if none is specified. */
|
||||
#define DEFAULT_USER "root"
|
||||
|
||||
+#ifndef USE_PAM
|
||||
char *crypt ();
|
||||
+#endif
|
||||
char *getusershell ();
|
||||
void endusershell ();
|
||||
void setusershell ();
|
||||
@@ -216,7 +228,26 @@
|
||||
}
|
||||
#endif
|
||||
|
||||
+#ifdef USE_PAM
|
||||
+
|
||||
+static pam_handle_t *pamh = NULL;
|
||||
+static int retval;
|
||||
+static struct pam_conv conv =
|
||||
+{
|
||||
+ misc_conv,
|
||||
+ NULL
|
||||
+};
|
||||
+
|
||||
+#define PAM_BAIL_P(a) \
|
||||
+ if (retval) \
|
||||
+ { \
|
||||
+ pam_end (pamh, PAM_SUCCESS); \
|
||||
+ a; \
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
/* Ask the user for a password.
|
||||
+ If PAM is in use, let PAM ask for the password if necessary.
|
||||
Return true if the user gives the correct password for entry PW,
|
||||
false if not. Return true without asking for a password if run by UID 0
|
||||
or if PW has an empty password. */
|
||||
@@ -224,10 +255,49 @@
|
||||
static bool
|
||||
correct_password (const struct passwd *pw)
|
||||
{
|
||||
+#ifdef USE_PAM
|
||||
+ const struct passwd *lpw;
|
||||
+ const char *cp;
|
||||
+
|
||||
+ retval = pam_start ("su", pw->pw_name, &conv, &pamh);
|
||||
+ PAM_BAIL_P (return false);
|
||||
+
|
||||
+ if (isatty (0) && (cp = ttyname (0)) != NULL)
|
||||
+ {
|
||||
+ const char *tty;
|
||||
+
|
||||
+ if (strncmp (cp, "/dev/", 5) == 0)
|
||||
+ tty = cp + 5;
|
||||
+ else
|
||||
+ tty = cp;
|
||||
+ retval = pam_set_item (pamh, PAM_TTY, tty);
|
||||
+ PAM_BAIL_P (return false);
|
||||
+ }
|
||||
+ cp = getlogin ();
|
||||
+ if (!(cp && *cp && (lpw = getpwnam (cp)) != NULL && lpw->pw_uid == getuid ()))
|
||||
+ lpw = getpwuid (getuid ());
|
||||
+ if (lpw)
|
||||
+ {
|
||||
+ retval = pam_set_item (pamh, PAM_RUSER, (const void *) lpw->pw_name);
|
||||
+ PAM_BAIL_P (return false);
|
||||
+ }
|
||||
+ retval = pam_authenticate (pamh, 0);
|
||||
+ PAM_BAIL_P (return false);
|
||||
+ retval = pam_acct_mgmt (pamh, 0);
|
||||
+ if (retval == PAM_NEW_AUTHTOK_REQD)
|
||||
+ {
|
||||
+ /* password has expired. Offer option to change it. */
|
||||
+ retval = pam_chauthtok (pamh, PAM_CHANGE_EXPIRED_AUTHTOK);
|
||||
+ PAM_BAIL_P (return false);
|
||||
+ }
|
||||
+ PAM_BAIL_P (return false);
|
||||
+ /* must be authenticated if this point was reached */
|
||||
+ return true;
|
||||
+#else /* !USE_PAM */
|
||||
char *unencrypted, *encrypted, *correct;
|
||||
#if HAVE_GETSPNAM && HAVE_STRUCT_SPWD_SP_PWDP
|
||||
/* Shadow passwd stuff for SVR3 and maybe other systems. */
|
||||
- struct spwd *sp = getspnam (pw->pw_name);
|
||||
+ const struct spwd *sp = getspnam (pw->pw_name);
|
||||
|
||||
endspent ();
|
||||
if (sp)
|
||||
@@ -248,6 +318,7 @@
|
||||
encrypted = crypt (unencrypted, correct);
|
||||
memset (unencrypted, 0, strlen (unencrypted));
|
||||
return STREQ (encrypted, correct);
|
||||
+#endif /* !USE_PAM */
|
||||
}
|
||||
|
||||
/* Update `environ' for the new shell based on PW, with SHELL being
|
||||
@@ -272,8 +343,8 @@
|
||||
xsetenv ("USER", pw->pw_name);
|
||||
xsetenv ("LOGNAME", pw->pw_name);
|
||||
xsetenv ("PATH", (pw->pw_uid
|
||||
- ? DEFAULT_LOGIN_PATH
|
||||
- : DEFAULT_ROOT_LOGIN_PATH));
|
||||
+ ? getdef_str ("PATH", DEFAULT_LOGIN_PATH)
|
||||
+ : getdef_str ("SUPATH", DEFAULT_ROOT_LOGIN_PATH)));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -283,6 +354,12 @@
|
||||
{
|
||||
xsetenv ("HOME", pw->pw_dir);
|
||||
xsetenv ("SHELL", shell);
|
||||
+ if (getdef_bool ("ALWAYS_SET_PATH", 0))
|
||||
+ xsetenv ("PATH", (pw->pw_uid
|
||||
+ ? getdef_str ("PATH",
|
||||
+ DEFAULT_LOGIN_PATH)
|
||||
+ : getdef_str ("SUPATH",
|
||||
+ DEFAULT_ROOT_LOGIN_PATH)));
|
||||
if (pw->pw_uid)
|
||||
{
|
||||
xsetenv ("USER", pw->pw_name);
|
||||
@@ -303,12 +380,35 @@
|
||||
error (EXIT_FAIL, errno, _("cannot set groups"));
|
||||
endgrent ();
|
||||
#endif
|
||||
+#ifdef USE_PAM
|
||||
+ retval = pam_setcred (pamh, PAM_ESTABLISH_CRED);
|
||||
+ if (retval != PAM_SUCCESS)
|
||||
+ error (EXIT_FAIL, 0, "%s", pam_strerror (pamh, retval));
|
||||
+
|
||||
+ retval = pam_open_session (pamh,0);
|
||||
+ if (retval != PAM_SUCCESS)
|
||||
+ {
|
||||
+ pam_setcred (pamh, PAM_DELETE_CRED);
|
||||
+ error (EXIT_FAIL, 0, "could not open session: %s",
|
||||
+ pam_strerror (pamh, retval));
|
||||
+ }
|
||||
+#endif /* USE_PAM */
|
||||
if (setgid (pw->pw_gid))
|
||||
error (EXIT_FAIL, errno, _("cannot set group id"));
|
||||
if (setuid (pw->pw_uid))
|
||||
error (EXIT_FAIL, errno, _("cannot set user id"));
|
||||
}
|
||||
|
||||
+#ifdef USE_PAM
|
||||
+static bool caught = false;
|
||||
+/* Signal handler for parent process later */
|
||||
+static void
|
||||
+su_catch_sig (int sig)
|
||||
+{
|
||||
+ caught = true;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
/* Run SHELL, or DEFAULT_SHELL if SHELL is empty.
|
||||
If COMMAND is nonzero, pass it to the shell with the -c option.
|
||||
Pass ADDITIONAL_ARGS to the shell as more arguments; there
|
||||
@@ -321,6 +421,88 @@
|
||||
size_t n_args = 1 + fast_startup + 2 * !!command + n_additional_args + 1;
|
||||
char const **args = xnmalloc (n_args, sizeof *args);
|
||||
size_t argno = 1;
|
||||
+#ifdef USE_PAM
|
||||
+ pid_t child;
|
||||
+ sigset_t ourset;
|
||||
+ int status;
|
||||
+
|
||||
+ child = fork ();
|
||||
+ if (child == (pid_t) -1)
|
||||
+ error (EXIT_FAILURE, errno, "cannot fork");
|
||||
+
|
||||
+ if (child != 0)
|
||||
+ {
|
||||
+ /* parent only */
|
||||
+ sigfillset (&ourset);
|
||||
+ if (sigprocmask (SIG_BLOCK, &ourset, NULL))
|
||||
+ {
|
||||
+ error (0, errno, "cannot block signals");
|
||||
+ caught = true;
|
||||
+ }
|
||||
+ if (!caught)
|
||||
+ {
|
||||
+ struct sigaction action;
|
||||
+ action.sa_handler = su_catch_sig;
|
||||
+ sigemptyset (&action.sa_mask);
|
||||
+ action.sa_flags = 0;
|
||||
+ sigemptyset (&ourset);
|
||||
+ if (sigaddset (&ourset, SIGTERM)
|
||||
+ || sigaddset (&ourset, SIGALRM)
|
||||
+ || sigaction (SIGTERM, &action, NULL)
|
||||
+ || sigprocmask (SIG_UNBLOCK, &ourset, NULL))
|
||||
+ {
|
||||
+ error (0, errno, "cannot set signal handler");
|
||||
+ caught = true;
|
||||
+ }
|
||||
+ }
|
||||
+ if (!caught)
|
||||
+ {
|
||||
+ for (;;)
|
||||
+ {
|
||||
+ pid_t pid;
|
||||
+
|
||||
+ pid = waitpid (child, &status, WUNTRACED);
|
||||
+
|
||||
+ if (WIFSTOPPED (status))
|
||||
+ {
|
||||
+ kill (getpid (), SIGSTOP);
|
||||
+ /* once we get here, we must have resumed */
|
||||
+ kill (pid, SIGCONT);
|
||||
+ }
|
||||
+ else
|
||||
+ break;
|
||||
+ }
|
||||
+ if (WIFSIGNALED (status))
|
||||
+ status = WTERMSIG (status) + 128;
|
||||
+ else
|
||||
+ status = WEXITSTATUS (status);
|
||||
+ }
|
||||
+ else
|
||||
+ status = 1;
|
||||
+
|
||||
+ if (caught)
|
||||
+ {
|
||||
+ fprintf (stderr, "\nSession terminated, killing shell...");
|
||||
+ kill (child, SIGTERM);
|
||||
+ }
|
||||
+ retval = pam_setcred (pamh, PAM_DELETE_CRED);
|
||||
+ PAM_BAIL_P (exit (EXIT_FAILURE));
|
||||
+ retval = pam_close_session (pamh, 0);
|
||||
+ PAM_BAIL_P (exit (EXIT_FAILURE));
|
||||
+ retval = pam_end (pamh, PAM_SUCCESS);
|
||||
+ PAM_BAIL_P (exit (EXIT_FAILURE));
|
||||
+ if (caught)
|
||||
+ {
|
||||
+ sleep (2);
|
||||
+ kill (child, SIGKILL);
|
||||
+ fprintf (stderr, " ...killed.\n");
|
||||
+ }
|
||||
+ exit (status);
|
||||
+ }
|
||||
+
|
||||
+ /* child shell */
|
||||
+ pam_end (pamh, 0);
|
||||
+#endif
|
||||
|
||||
if (simulate_login)
|
||||
{
|
||||
@@ -339,6 +521,11 @@
|
||||
args[argno++] = "-f";
|
||||
if (command)
|
||||
{
|
||||
+ if (simulate_login)
|
||||
+ /* Bash 2.0 have to be invoked as `-su'. See the comments in
|
||||
+ `shell.c (run_startup_files)'. */
|
||||
+ args[0] = "-su";
|
||||
+
|
||||
args[argno++] = "-c";
|
||||
args[argno++] = command;
|
||||
}
|
||||
@@ -495,6 +682,9 @@
|
||||
#ifdef SYSLOG_FAILURE
|
||||
log_su (pw, false);
|
||||
#endif
|
||||
+#ifdef USE_PAM
|
||||
+ sleep (getdef_num ("FAIL_DELAY", 1));
|
||||
+#endif
|
||||
error (EXIT_FAIL, 0, _("incorrect password"));
|
||||
}
|
||||
#ifdef SYSLOG_SUCCESS
|
||||
--- src/system.h
|
||||
+++ src/system.h
|
||||
@@ -173,7 +173,7 @@
|
||||
# define DEV_BSIZE BBSIZE
|
||||
#endif
|
||||
#ifndef DEV_BSIZE
|
||||
-# define DEV_BSIZE 4096
|
||||
+# define DEV_BSIZE 512
|
||||
#endif
|
||||
|
||||
/* Extract or fake data from a `struct stat'.
|
||||
--- tests/help-version
|
||||
+++ tests/help-version
|
||||
@@ -190,7 +190,7 @@
|
||||
|
||||
for i in $all_programs; do
|
||||
# Skip these.
|
||||
- case $i in chroot|stty|tty|false) continue;; esac
|
||||
+ case $i in chroot|stty|tty|false|df) continue;; esac
|
||||
|
||||
rm -rf $tmp_in $tmp_in2 $tmp_dir $tmp_out
|
||||
echo > $tmp_in
|
||||
--- tests/other-fs-tmpdir
|
||||
+++ tests/other-fs-tmpdir
|
||||
@@ -44,6 +44,8 @@
|
||||
fi
|
||||
|
||||
done
|
||||
+# Autobuild hack
|
||||
+test -f /bin/uname.bin && other_partition_tmpdir=
|
||||
|
||||
if test -z "$other_partition_tmpdir"; then
|
||||
cat <<EOF 1>&2
|
3
coreutils-6.7.tar.bz2
Normal file
3
coreutils-6.7.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4d7027cc803682decdadf850095dce7e22cc08eba2b1283e16d0fb7a675ac1f0
|
||||
size 5315342
|
44
coreutils-changelog.diff
Normal file
44
coreutils-changelog.diff
Normal file
@ -0,0 +1,44 @@
|
||||
2005-10-20 Andreas Gruenbacher <agruen@suse.de>
|
||||
|
||||
* Add support for access control lists and extended attributes
|
||||
(see below).
|
||||
|
||||
* lib/acl.h: Remove HAVE_ACL symbol; <sys/acl.h> is needed for POSIX
|
||||
ACLs even if there is no acl system call.
|
||||
|
||||
* lib/acl.c (file_has_acl, copy_acl, set_acl): Add Linux/POSIX ACL
|
||||
implementation.
|
||||
|
||||
* src/copy.c (get_dest_mode): Remove, no longer correct with acls.
|
||||
|
||||
* src/copy.c (copy_internal): Check effective permissions after
|
||||
mkdir(). Add S_IRWXU only after saving the default permissions,
|
||||
so that the default permissions can be restored. This is needed
|
||||
with POSIX 1003.1e draft 17 acls. Add dst_mode and dst_mode_valid,
|
||||
which are set when the destination file mode is changed
|
||||
temporarily. Remove obsolete ran_chown.
|
||||
|
||||
* src/copy.c (copy_internal): Use copy_acl and set_acl instead of
|
||||
chmod.
|
||||
|
||||
* src/copy.c: Add --attributes option for controlling which extended
|
||||
attributes to copy.
|
||||
|
||||
* src/cp.c (make_path_private): Remove the mode parameter. Pass in
|
||||
cp_options, instead of cp_options->xstat only. Stat the source dir,
|
||||
and create the destination dir with the source dir's mode as create
|
||||
mode (see analog change to src/copy.c (copy_internal)). Check if the
|
||||
effective permissions include S_IRWXU. Remember the original mode
|
||||
only if needed later.
|
||||
|
||||
* src/cp.c, src/install.c, src/mv.c, src/copy.h: Remove umask_kill,
|
||||
and never change the startup umask. The functions creating files
|
||||
need the original umask to create the correct permissions inside
|
||||
directories with default ACLs.
|
||||
|
||||
* src/cp.c (struct dir_attr, re_protect, make_path_private): Replace
|
||||
is_new_dir by mode and mode_valid variables.
|
||||
|
||||
* src/ls.c: change `HAVE_ACL' to `USE_ACL' for POSIX ACLs: POSIX ACLs
|
||||
have no acl syscall.
|
||||
|
58
coreutils-sysinfo.diff
Normal file
58
coreutils-sysinfo.diff
Normal file
@ -0,0 +1,58 @@
|
||||
--- coreutils-5.90/src/uname.c
|
||||
+++ coreutils-5.90/src/uname.c
|
||||
@@ -287,6 +287,36 @@
|
||||
# endif
|
||||
}
|
||||
#endif
|
||||
+ if (element == unknown)
|
||||
+ {
|
||||
+ struct utsname name;
|
||||
+ static char processor[sizeof (name.machine)];
|
||||
+ if (uname (&name) != 0)
|
||||
+ error (EXIT_FAILURE, errno, _("cannot get system name"));
|
||||
+ strcpy (processor, name.machine);
|
||||
+ element = processor;
|
||||
+#ifdef __linux__
|
||||
+ if (!strcmp (element, "i686"))
|
||||
+ {
|
||||
+ /* Check for Athlon */
|
||||
+ char line[1024];
|
||||
+ FILE *f = fopen ("/proc/cpuinfo", "r");
|
||||
+ if (f)
|
||||
+ {
|
||||
+ while (fgets (line, sizeof (line), f) > 0)
|
||||
+ {
|
||||
+ if (strncmp (line, "vendor_id", 9) == 0)
|
||||
+ {
|
||||
+ if (strstr (line, "AuthenticAMD"))
|
||||
+ element = "athlon";
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ fclose (f);
|
||||
+ }
|
||||
+ }
|
||||
+#endif
|
||||
+ }
|
||||
if (! (toprint == UINT_MAX && element == unknown))
|
||||
print_element (element);
|
||||
}
|
||||
@@ -312,6 +342,18 @@
|
||||
element = hardware_platform;
|
||||
}
|
||||
#endif
|
||||
+ if (element == unknown)
|
||||
+ {
|
||||
+ struct utsname name;
|
||||
+ static char hardware_platform[sizeof (name.machine)];
|
||||
+ if (uname (&name) != 0)
|
||||
+ error (EXIT_FAILURE, errno, _("cannot get system name"));
|
||||
+ strcpy (hardware_platform, name.machine);
|
||||
+ if (hardware_platform[0] == 'i' && hardware_platform[2] == '8'
|
||||
+ && hardware_platform[3] == '6' && hardware_platform[4] == 0)
|
||||
+ hardware_platform[1] = '3';
|
||||
+ element = hardware_platform;
|
||||
+ }
|
||||
if (! (toprint == UINT_MAX && element == unknown))
|
||||
print_element (element);
|
||||
}
|
321
coreutils-xattr.diff
Normal file
321
coreutils-xattr.diff
Normal file
@ -0,0 +1,321 @@
|
||||
Index: coreutils-6.2/configure.ac
|
||||
===================================================================
|
||||
--- coreutils-6.2.orig/configure.ac
|
||||
+++ coreutils-6.2/configure.ac
|
||||
@@ -246,6 +246,9 @@ AC_CHECK_DECLS([strtoimax, strtoumax])
|
||||
|
||||
cu_LIB_CHECK
|
||||
|
||||
+# Extended attribute copying.
|
||||
+AC_FUNC_XATTR
|
||||
+
|
||||
AM_GNU_GETTEXT([external], [need-formatstring-macros])
|
||||
AM_GNU_GETTEXT_VERSION([0.15])
|
||||
|
||||
Index: coreutils-6.2/m4/xattr.m4
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ coreutils-6.2/m4/xattr.m4
|
||||
@@ -0,0 +1,38 @@
|
||||
+# xattr.m4 - check for Extended Attributes (Linux)
|
||||
+
|
||||
+# Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
+
|
||||
+# 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 2, 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, write to the Free Software Foundation,
|
||||
+# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
+
|
||||
+# Written by Andreas Gruenbacher.
|
||||
+
|
||||
+AC_DEFUN([AC_FUNC_XATTR],
|
||||
+[
|
||||
+ AC_CHECK_HEADERS(attr/error_context.h attr/libattr.h)
|
||||
+ if test "$ac_cv_header_attr_libattr_h" = yes \
|
||||
+ && test "$ac_cv_header_attr_error_context_h" = yes; then
|
||||
+ use_xattr=1
|
||||
+ else
|
||||
+ use_xattr=0
|
||||
+ fi
|
||||
+ AC_DEFINE_UNQUOTED(USE_XATTR, $use_xattr,
|
||||
+ [Define if you want extended attribute support.])
|
||||
+ xattr_saved_LIBS=$LIBS
|
||||
+ AC_SEARCH_LIBS(attr_copy_file, attr,
|
||||
+ [test "$ac_cv_search_attr_copy_file" = "none required" || LIB_XATTR=$ac_cv_search_attr_copy_file])
|
||||
+ AC_SUBST(LIB_XATTR)
|
||||
+ AC_CHECK_FUNCS(attr_copy_file)
|
||||
+ LIBS=$xattr_saved_LIBS
|
||||
+])
|
||||
Index: coreutils-6.2/src/Makefile.am
|
||||
===================================================================
|
||||
--- coreutils-6.2.orig/src/Makefile.am
|
||||
+++ coreutils-6.2/src/Makefile.am
|
||||
@@ -112,6 +112,10 @@ cp_LDADD += $(LIB_ACL)
|
||||
mv_LDADD += $(LIB_ACL)
|
||||
ginstall_LDADD += $(LIB_ACL)
|
||||
|
||||
+cp_LDADD += $(LIB_XATTR)
|
||||
+mv_LDADD += $(LIB_XATTR)
|
||||
+ginstall_LDADD += $(LIB_XATTR)
|
||||
+
|
||||
$(PROGRAMS): ../lib/libcoreutils.a
|
||||
|
||||
SUFFIXES = .sh
|
||||
Index: coreutils-6.2/src/copy.c
|
||||
===================================================================
|
||||
--- coreutils-6.2.orig/src/copy.c
|
||||
+++ coreutils-6.2/src/copy.c
|
||||
@@ -53,6 +53,12 @@
|
||||
#include "xreadlink.h"
|
||||
#include "yesno.h"
|
||||
|
||||
+#if USE_XATTR
|
||||
+# include <stdarg.h>
|
||||
+# include <attr/error_context.h>
|
||||
+# include <attr/libattr.h>
|
||||
+#endif
|
||||
+
|
||||
#ifndef HAVE_FCHOWN
|
||||
# define HAVE_FCHOWN false
|
||||
# define fchown(fd, uid, gid) (-1)
|
||||
@@ -118,6 +124,98 @@ is_ancestor (const struct stat *sb, cons
|
||||
return false;
|
||||
}
|
||||
|
||||
+#if USE_XATTR
|
||||
+static void
|
||||
+copy_xattr_error (struct error_context *ctx, const char *fmt, ...)
|
||||
+{
|
||||
+ int err = errno;
|
||||
+ va_list ap;
|
||||
+ int len;
|
||||
+ char *buffer;
|
||||
+
|
||||
+ /* There is no error function that takes a va_list argument,
|
||||
+ so we print the message in a buffer first. */
|
||||
+
|
||||
+ va_start (ap, fmt);
|
||||
+ len = vsnprintf (NULL, 0, fmt, ap);
|
||||
+ va_end (ap);
|
||||
+ if (len > 0)
|
||||
+ {
|
||||
+ buffer = xmalloc (len + 1);
|
||||
+ va_start (ap, fmt);
|
||||
+ vsnprintf (buffer, len + 1, fmt, ap);
|
||||
+ va_end (ap);
|
||||
+ error (0, err, "%s", buffer);
|
||||
+ free (buffer);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static const char *
|
||||
+copy_xattr_quote (struct error_context *ctx, const char *str)
|
||||
+{
|
||||
+ return xstrdup (quote (str));
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+copy_xattr_free (struct error_context *ctx, const char *str)
|
||||
+{
|
||||
+ free ((void *) str);
|
||||
+}
|
||||
+
|
||||
+struct copy_xattr_context {
|
||||
+ struct error_context ctx;
|
||||
+ struct cp_options *x;
|
||||
+};
|
||||
+
|
||||
+static int
|
||||
+copy_xattr_filter (const char *name, struct error_context *ctx)
|
||||
+{
|
||||
+ struct copy_xattr_context *copy_ctx = (struct copy_xattr_context *) ctx;
|
||||
+ int action;
|
||||
+
|
||||
+ /* We handle POSIX ACLs separately. */
|
||||
+ if (!strcmp(name, "system.posix_acl_access")
|
||||
+ || !strcmp(name, "system.posix_acl_default"))
|
||||
+ return 0;
|
||||
+
|
||||
+ action = attr_copy_action(name, ctx);
|
||||
+ return (action != ATTR_ACTION_SKIP &&
|
||||
+ (!copy_ctx->x->preserve_mode
|
||||
+ || action != ATTR_ACTION_PERMISSIONS));
|
||||
+}
|
||||
+#endif /* USE_XATTR */
|
||||
+
|
||||
+static bool
|
||||
+copy_xattrs (const char *src_path, int source_desc, const char *dst_path,
|
||||
+ int dest_desc, const struct cp_options *x)
|
||||
+{
|
||||
+ struct copy_xattr_context copy_xattr_ctx = {
|
||||
+ { copy_xattr_error,
|
||||
+ copy_xattr_quote,
|
||||
+ copy_xattr_free },
|
||||
+ x
|
||||
+ };
|
||||
+
|
||||
+#if USE_XATTR
|
||||
+ if (x->preserve_xattrs)
|
||||
+ {
|
||||
+ int ret;
|
||||
+
|
||||
+ if (source_desc != -1 && dest_desc != -1)
|
||||
+ ret = attr_copy_fd(src_path, source_desc, dst_path, dest_desc,
|
||||
+ copy_xattr_filter, ©_xattr_ctx.ctx);
|
||||
+ else
|
||||
+ ret = attr_copy_file (src_path, dst_path,
|
||||
+ copy_xattr_filter, ©_xattr_ctx.ctx);
|
||||
+ return ret == 0 || !x->require_preserve;
|
||||
+ }
|
||||
+ else
|
||||
+ return true;
|
||||
+#else /* USE_XATTR */
|
||||
+ return true;
|
||||
+#endif /* USE_XATTR */
|
||||
+}
|
||||
+
|
||||
/* Read the contents of the directory SRC_NAME_IN, and recursively
|
||||
copy the contents to DST_NAME_IN. NEW_DST is true if
|
||||
DST_NAME_IN is a directory that was created previously in the
|
||||
@@ -509,6 +607,9 @@ copy_reg (char const *src_name, char con
|
||||
}
|
||||
}
|
||||
|
||||
+ if (!copy_xattrs (src_name, source_desc, dst_name, dest_desc, x))
|
||||
+ return_val = false;
|
||||
+
|
||||
set_author (dst_name, dest_desc, src_sb);
|
||||
|
||||
if (x->preserve_mode || x->move_mode)
|
||||
@@ -1755,6 +1856,9 @@ copy_internal (char const *src_name, cha
|
||||
return false;
|
||||
}
|
||||
|
||||
+ if (!copy_xattrs (src_name, -1, dst_name, -1, x))
|
||||
+ delayed_ok = false;
|
||||
+
|
||||
set_author (dst_name, -1, &src_sb);
|
||||
|
||||
if (x->preserve_mode || x->move_mode)
|
||||
Index: coreutils-6.2/src/copy.h
|
||||
===================================================================
|
||||
--- coreutils-6.2.orig/src/copy.h
|
||||
+++ coreutils-6.2/src/copy.h
|
||||
@@ -128,6 +128,9 @@ struct cp_options
|
||||
bool preserve_mode;
|
||||
bool preserve_timestamps;
|
||||
|
||||
+ /* If true, attempt to copy extended attributes. */
|
||||
+ bool preserve_xattrs;
|
||||
+
|
||||
/* Enabled for mv, and for cp by the --preserve=links option.
|
||||
If true, attempt to preserve in the destination files any
|
||||
logical hard links between the source files. If used with cp's
|
||||
Index: coreutils-6.2/src/cp.c
|
||||
===================================================================
|
||||
--- coreutils-6.2.orig/src/cp.c
|
||||
+++ coreutils-6.2/src/cp.c
|
||||
@@ -191,7 +191,7 @@ Mandatory arguments to long options are
|
||||
-p same as --preserve=mode,ownership,timestamps\n\
|
||||
--preserve[=ATTR_LIST] preserve the specified attributes (default:\n\
|
||||
mode,ownership,timestamps), if possible\n\
|
||||
- additional attributes: links, all\n\
|
||||
+ additional attributes: links, xattrs, all\n\
|
||||
"), stdout);
|
||||
fputs (_("\
|
||||
--no-preserve=ATTR_LIST don't preserve the specified attributes\n\
|
||||
@@ -724,6 +724,7 @@ cp_option_init (struct cp_options *x)
|
||||
x->preserve_links = false;
|
||||
x->preserve_mode = false;
|
||||
x->preserve_timestamps = false;
|
||||
+ x->preserve_xattrs = false;
|
||||
|
||||
x->require_preserve = false;
|
||||
x->recursive = false;
|
||||
@@ -752,18 +753,21 @@ decode_preserve_arg (char const *arg, st
|
||||
PRESERVE_TIMESTAMPS,
|
||||
PRESERVE_OWNERSHIP,
|
||||
PRESERVE_LINK,
|
||||
+ PRESERVE_XATTRS,
|
||||
PRESERVE_ALL
|
||||
};
|
||||
static enum File_attribute const preserve_vals[] =
|
||||
{
|
||||
PRESERVE_MODE, PRESERVE_TIMESTAMPS,
|
||||
- PRESERVE_OWNERSHIP, PRESERVE_LINK, PRESERVE_ALL
|
||||
+ PRESERVE_OWNERSHIP, PRESERVE_LINK,
|
||||
+ PRESERVE_XATTRS, PRESERVE_ALL
|
||||
};
|
||||
/* Valid arguments to the `--preserve' option. */
|
||||
static char const* const preserve_args[] =
|
||||
{
|
||||
"mode", "timestamps",
|
||||
- "ownership", "links", "all", NULL
|
||||
+ "ownership", "links",
|
||||
+ "xattrs", "all", NULL
|
||||
};
|
||||
ARGMATCH_VERIFY (preserve_args, preserve_vals);
|
||||
|
||||
@@ -799,11 +803,16 @@ decode_preserve_arg (char const *arg, st
|
||||
x->preserve_links = on_off;
|
||||
break;
|
||||
|
||||
+ case PRESERVE_XATTRS:
|
||||
+ x->preserve_xattrs = on_off;
|
||||
+ break;
|
||||
+
|
||||
case PRESERVE_ALL:
|
||||
x->preserve_mode = on_off;
|
||||
x->preserve_timestamps = on_off;
|
||||
x->preserve_ownership = on_off;
|
||||
x->preserve_links = on_off;
|
||||
+ x->preserve_xattrs = on_off;
|
||||
break;
|
||||
|
||||
default:
|
||||
Index: coreutils-6.2/src/install.c
|
||||
===================================================================
|
||||
--- coreutils-6.2.orig/src/install.c
|
||||
+++ coreutils-6.2/src/install.c
|
||||
@@ -154,6 +154,7 @@ cp_option_init (struct cp_options *x)
|
||||
x->preserve_links = false;
|
||||
x->preserve_mode = false;
|
||||
x->preserve_timestamps = false;
|
||||
+ x->preserve_xattrs = false;
|
||||
x->require_preserve = false;
|
||||
x->recursive = false;
|
||||
x->sparse_mode = SPARSE_AUTO;
|
||||
Index: coreutils-6.2/src/mv.c
|
||||
===================================================================
|
||||
--- coreutils-6.2.orig/src/mv.c
|
||||
+++ coreutils-6.2/src/mv.c
|
||||
@@ -125,6 +125,7 @@ cp_option_init (struct cp_options *x)
|
||||
x->preserve_links = true;
|
||||
x->preserve_mode = true;
|
||||
x->preserve_timestamps = true;
|
||||
+ x->preserve_xattrs = true;
|
||||
x->require_preserve = false; /* FIXME: maybe make this an option */
|
||||
x->recursive = true;
|
||||
x->sparse_mode = SPARSE_AUTO; /* FIXME: maybe make this an option */
|
||||
Index: coreutils-6.2/doc/coreutils.texi
|
||||
===================================================================
|
||||
--- coreutils-6.2.orig/doc/coreutils.texi
|
||||
+++ coreutils-6.2/doc/coreutils.texi
|
||||
@@ -6948,6 +6948,8 @@ Preserve in the destination files
|
||||
any links between corresponding source files.
|
||||
@c Give examples illustrating how hard links are preserved.
|
||||
@c Also, show how soft links map to hard links with -L and -H.
|
||||
+@itemx xattrs
|
||||
+Preserve extended attributes. (See /etc/xattr.conf.)
|
||||
@itemx all
|
||||
Preserve all file attributes.
|
||||
Equivalent to specifying all of the above.
|
898
coreutils.changes
Normal file
898
coreutils.changes
Normal file
@ -0,0 +1,898 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Dec 13 13:27:36 CET 2006 - schwab@suse.de
|
||||
|
||||
- Fix acl tests.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Dec 9 01:00:28 CET 2006 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 6.7.
|
||||
** Bug fixes
|
||||
When cp -p copied a file with special mode bits set, the same bits
|
||||
were set on the copy even when ownership could not be preserved.
|
||||
This could result in files that were setuid to the wrong user.
|
||||
To fix this, special mode bits are now set in the copy only if its
|
||||
ownership is successfully preserved. Similar problems were fixed
|
||||
with mv when copying across file system boundaries. This problem
|
||||
affects all versions of coreutils through 6.6.
|
||||
cp --preserve=ownership would create output files that temporarily
|
||||
had too-generous permissions in some cases. For example, when
|
||||
copying a file with group A and mode 644 into a group-B sticky
|
||||
directory, the output file was briefly readable by group B.
|
||||
Fix similar problems with cp options like -p that imply
|
||||
--preserve=ownership, with install -d when combined with either -o
|
||||
or -g, and with mv when copying across file system boundaries.
|
||||
This bug affects coreutils 6.0 through 6.6.
|
||||
du --one-file-system (-x) would skip subdirectories of any directory
|
||||
listed as second or subsequent command line argument. This bug affects
|
||||
coreutils-6.4, 6.5 and 6.6.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 22 16:16:52 CET 2006 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 6.6.
|
||||
** Bug fixes
|
||||
ls would segfault (dereference a NULL pointer) for a file with a
|
||||
nameless group or owner. This bug was introduced in coreutils-6.5.
|
||||
A bug in the latest official m4/gettext.m4 (from gettext-0.15)
|
||||
made configure fail to detect gettext support, due to the unusual
|
||||
way in which coreutils uses AM_GNU_GETTEXT.
|
||||
** Improved robustness
|
||||
Now, du (and the other fts clients: chmod, chgrp, chown) honor a
|
||||
trailing slash in the name of a symlink-to-directory even on
|
||||
Solaris 9, by working around its buggy fstatat implementation.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Nov 20 11:34:05 CET 2006 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 6.5.
|
||||
** Bug fixes
|
||||
du (and the other fts clients: chmod, chgrp, chown) would exit early
|
||||
when encountering an inaccessible directory on a system with native
|
||||
openat support (i.e., linux-2.6.16 or newer along with glibc-2.4
|
||||
or newer). This bug was introduced with the switch to gnulib's
|
||||
openat-based variant of fts, for coreutils-6.0.
|
||||
"ln --backup f f" now produces a sensible diagnostic
|
||||
** New features
|
||||
rm accepts a new option: --one-file-system
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 23 10:58:38 CEST 2006 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 6.4.
|
||||
** Bug fixes
|
||||
chgrp and chown would malfunction when invoked with both -R and -H and
|
||||
with one or more of the following: --preserve-root, --verbose, --changes,
|
||||
--from=o:g (chown only). This bug was introduced with the switch to
|
||||
gnulib's openat-based variant of fts, for coreutils-6.0.
|
||||
cp --backup dir1 dir2, would rename an existing dir2/dir1 to dir2/dir1~.
|
||||
This bug was introduced in coreutils-6.0.
|
||||
With --force (-f), rm no longer fails for ENOTDIR.
|
||||
For example, "rm -f existing-non-directory/anything" now exits
|
||||
successfully, ignoring the error about a nonexistent file.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 9 14:48:23 CEST 2006 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 6.3.
|
||||
** Improved robustness
|
||||
pinky no longer segfaults on Darwin 7.9.0 (MacOS X 10.3.9) due to a
|
||||
buggy native getaddrinfo function.
|
||||
rm works around a bug in Darwin 7.9.0 (MacOS X 10.3.9) that would
|
||||
sometimes keep it from removing all entries in a directory on an HFS+
|
||||
or NFS-mounted partition.
|
||||
sort would fail to handle very large input (around 40GB) on systems with a
|
||||
mkstemp function that returns a file descriptor limited to 32-bit offsets.
|
||||
** Bug fixes
|
||||
chmod would fail unnecessarily in an unusual case: when an initially-
|
||||
inaccessible argument is rendered accessible by chmod's action on a
|
||||
preceding command line argument. This bug also affects chgrp, but
|
||||
it is harder to demonstrate. It does not affect chown. The bug was
|
||||
introduced with the switch from explicit recursion to the use of fts
|
||||
in coreutils-5.1.0 (2003-10-15).
|
||||
cp -i and mv -i occasionally neglected to prompt when the copy or move
|
||||
action was bound to fail. This bug dates back to before fileutils-4.0.
|
||||
With --verbose (-v), cp and mv would sometimes generate no output,
|
||||
or neglect to report file removal.
|
||||
For the "groups" command:
|
||||
"groups" no longer prefixes the output with "user :" unless more
|
||||
than one user is specified; this is for compatibility with BSD.
|
||||
"groups user" now exits nonzero when it gets a write error.
|
||||
"groups" now processes options like --help more compatibly.
|
||||
shuf would infloop, given 8KB or more of piped input
|
||||
** Portability
|
||||
Versions of chmod, chown, chgrp, du, and rm (tools that use openat etc.)
|
||||
compiled for Solaris 8 now also work when run on Solaris 10.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 5 00:16:42 CEST 2006 - agruen@suse.de
|
||||
|
||||
- cp: Replace the old --attributes=regex option with
|
||||
--preserve=xattrs. Only copy extended attributes if this
|
||||
option is given. Use libattr's new copy_attr_action() function
|
||||
to check which attributes to copy in /etc/xattr.conf.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 19 13:20:47 CEST 2006 - schwab@suse.de
|
||||
|
||||
- Disable broken autopoint.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 18 13:13:58 CEST 2006 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 6.2.
|
||||
** Changes in behavior
|
||||
mkdir -p and install -d (or -D) now use a method that forks a child
|
||||
process if the working directory is unreadable and a later argument
|
||||
uses a relative file name. This avoids some race conditions, but it
|
||||
means you may need to kill two processes to stop these programs.
|
||||
rm now rejects attempts to remove the root directory, e.g., `rm -fr /'
|
||||
now fails without removing anything. Likewise for any file name with
|
||||
a final `./' or `../' component.
|
||||
tail now ignores the -f option if POSIXLY_CORRECT is set, no file
|
||||
operand is given, and standard input is any FIFO; formerly it did
|
||||
this only for pipes.
|
||||
** Infrastructure changes
|
||||
Coreutils now uses gnulib via the gnulib-tool script.
|
||||
If you check the source out from CVS, then follow the instructions
|
||||
in README-cvs. Although this represents a large change to the
|
||||
infrastructure, it should cause no change in how the tools work.
|
||||
** Bug fixes
|
||||
cp --backup no longer fails when the last component of a source file
|
||||
name is "." or "..".
|
||||
"ls --color" would highlight other-writable and sticky directories
|
||||
no differently than regular directories on a file system with
|
||||
dirent.d_type support.
|
||||
"mv -T --verbose --backup=t A B" now prints the " (backup: B.~1~)"
|
||||
suffix when A and B are directories as well as when they are not.
|
||||
mv and "cp -r" no longer fail when invoked with two arguments
|
||||
where the first one names a directory and the second name ends in
|
||||
a slash and doesn't exist. E.g., "mv dir B/", for nonexistent B,
|
||||
now succeeds, once more. This bug was introduced in coreutils-5.3.0.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 1 15:56:51 CEST 2006 - schwab@suse.de
|
||||
|
||||
- Fix sbin patch [#202632].
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Aug 21 11:32:53 CEST 2006 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 6.1.
|
||||
** Changes in behavior
|
||||
df now considers BSD "kernfs" file systems to be dummies
|
||||
** Bug fixes
|
||||
cp --sparse preserves sparseness at the end of a file, even when
|
||||
the file's apparent size is not a multiple of its block size.
|
||||
[introduced with the original design, in fileutils-4.0r, 2000-04-29]
|
||||
df (with a command line argument) once again prints its header
|
||||
[introduced in coreutils-6.0]
|
||||
ls -CF would misalign columns in some cases involving non-stat'able files
|
||||
[introduced in coreutils-6.0]
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 15 17:50:41 CEST 2006 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 6.0.
|
||||
** Improved robustness
|
||||
df: if the file system claims to have more available than total blocks,
|
||||
report the number of used blocks as being "total - available"
|
||||
(a negative number) rather than as garbage.
|
||||
dircolors: a new autoconf run-test for AIX's buggy strndup function
|
||||
prevents malfunction on that system; may also affect cut, expand,
|
||||
and unexpand.
|
||||
fts no longer changes the current working directory, so its clients
|
||||
(chmod, chown, chgrp, du) no longer malfunction under extreme conditions.
|
||||
pwd and other programs using lib/getcwd.c work even on file systems
|
||||
where dirent.d_ino values are inconsistent with those from stat.st_ino.
|
||||
rm's core is now reentrant: rm --recursive (-r) now processes
|
||||
hierarchies without changing the working directory at all.
|
||||
** Changes in behavior
|
||||
basename and dirname now treat // as different from / on platforms
|
||||
where the two are distinct.
|
||||
chmod, install, and mkdir now preserve a directory's set-user-ID and
|
||||
set-group-ID bits unless you explicitly request otherwise. E.g.,
|
||||
`chmod 755 DIR' and `chmod u=rwx,go=rx DIR' now preserve DIR's
|
||||
set-user-ID and set-group-ID bits instead of clearing them, and
|
||||
similarly for `mkdir -m 755 DIR' and `mkdir -m u=rwx,go=rx DIR'. To
|
||||
clear the bits, mention them explicitly in a symbolic mode, e.g.,
|
||||
`mkdir -m u=rwx,go=rx,-s DIR'. To set them, mention them explicitly
|
||||
in either a symbolic or a numeric mode, e.g., `mkdir -m 2755 DIR',
|
||||
`mkdir -m u=rwx,go=rx,g+s' DIR. This change is for convenience on
|
||||
systems where these bits inherit from parents. Unfortunately other
|
||||
operating systems are not consistent here, and portable scripts
|
||||
cannot assume the bits are set, cleared, or preserved, even when the
|
||||
bits are explicitly mentioned. For example, OpenBSD 3.9 `mkdir -m
|
||||
777 D' preserves D's setgid bit but `chmod 777 D' clears it.
|
||||
Conversely, Solaris 10 `mkdir -m 777 D', `mkdir -m g-s D', and
|
||||
`chmod 0777 D' all preserve D's setgid bit, and you must use
|
||||
something like `chmod g-s D' to clear it.
|
||||
`cp --link --no-dereference' now works also on systems where the
|
||||
link system call cannot create a hard link to a symbolic link.
|
||||
This change has no effect on systems with a Linux-based kernel.
|
||||
csplit and nl now use POSIX syntax for regular expressions, not
|
||||
Emacs syntax. As a result, character classes like [[:print:]] and
|
||||
interval expressions like A\{1,9\} now have their usual meaning,
|
||||
. no longer matches the null character, and \ must precede the + and
|
||||
? operators.
|
||||
date: a command like date -d '2006-04-23 21 days ago' would print
|
||||
the wrong date in some time zones. (see the test for an example)
|
||||
df now considers "none" and "proc" file systems to be dummies and
|
||||
therefore does not normally display them. Also, inaccessible file
|
||||
systems (which can be caused by shadowed mount points or by chrooted
|
||||
bind mounts) are now dummies, too.
|
||||
expr no longer complains about leading ^ in a regular expression
|
||||
(the anchor is ignored), or about regular expressions like A** (the
|
||||
second "*" is ignored). expr now exits with status 2 (not 3) for
|
||||
errors it detects in the expression's values; exit status 3 is now
|
||||
used only for internal errors (such as integer overflow, which expr
|
||||
now checks for).
|
||||
install and mkdir now implement the X permission symbol correctly,
|
||||
e.g., `mkdir -m a+X dir'; previously the X was ignored.
|
||||
install now creates parent directories with mode u=rwx,go=rx (755)
|
||||
instead of using the mode specified by the -m option; and it does
|
||||
not change the owner or group of parent directories. This is for
|
||||
compatibility with BSD and closes some race conditions.
|
||||
ln now uses different (and we hope clearer) diagnostics when it fails.
|
||||
ln -v now acts more like FreeBSD, so it generates output only when
|
||||
successful and the output is easier to parse.
|
||||
ls now defaults to --time-style='locale', not --time-style='posix-long-iso'.
|
||||
However, the 'locale' time style now behaves like 'posix-long-iso'
|
||||
if your locale settings appear to be messed up. This change
|
||||
attempts to have the default be the best of both worlds.
|
||||
mkfifo and mknod no longer set special mode bits (setuid, setgid,
|
||||
and sticky) with the -m option.
|
||||
nohup's usual diagnostic now more precisely specifies the I/O
|
||||
redirections, e.g., "ignoring input and appending output to
|
||||
nohup.out". Also, nohup now redirects stderr to nohup.out (or
|
||||
$HOME/nohup.out) if stdout is closed and stderr is a tty; this is in
|
||||
response to Open Group XCU ERN 71.
|
||||
rm --interactive now takes an optional argument, although the
|
||||
default of using no argument still acts like -i.
|
||||
rm no longer fails to remove an empty, unreadable directory
|
||||
seq changes:
|
||||
seq defaults to a minimal fixed point format that does not lose
|
||||
information if seq's operands are all fixed point decimal numbers.
|
||||
You no longer need the `-f%.f' in `seq -f%.f 1048575 1024 1050623',
|
||||
for example, since the default format now has the same effect.
|
||||
seq now lets you use %a, %A, %E, %F, and %G formats.
|
||||
seq now uses long double internally rather than double.
|
||||
sort now reports incompatible options (e.g., -i and -n) rather than
|
||||
silently ignoring one of them.
|
||||
stat's --format=FMT option now works the way it did before 5.3.0:
|
||||
FMT is automatically newline terminated. The first stable release
|
||||
containing this change was 5.92.
|
||||
stat accepts the new option --printf=FMT, where FMT is *not*
|
||||
automatically newline terminated.
|
||||
stat: backslash escapes are interpreted in a format string specified
|
||||
via --printf=FMT, but not one specified via --format=FMT. That includes
|
||||
octal (\ooo, at most three octal digits), hexadecimal (\xhh, one or
|
||||
two hex digits), and the standard sequences (\a, \b, \f, \n, \r, \t,
|
||||
\v, \", \\).
|
||||
With no operand, 'tail -f' now silently ignores the '-f' only if
|
||||
standard input is a FIFO or pipe and POSIXLY_CORRECT is set.
|
||||
Formerly, it ignored the '-f' when standard input was a FIFO, pipe,
|
||||
or socket.
|
||||
** Scheduled for removal
|
||||
ptx's --copyright (-C) option is scheduled for removal in 2007, and
|
||||
now evokes a warning. Use --version instead.
|
||||
rm's --directory (-d) option is scheduled for removal in 2006. This
|
||||
option has been silently ignored since coreutils 5.0. On systems
|
||||
that support unlinking of directories, you can use the "unlink"
|
||||
command to unlink a directory.
|
||||
Similarly, we are considering the removal of ln's --directory (-d,
|
||||
-F) option in 2006. Please write to <bug-coreutils@gnu.org> if this
|
||||
would cause a problem for you. On systems that support hard links
|
||||
to directories, you can use the "link" command to create one.
|
||||
** New programs
|
||||
base64: base64 encoding and decoding (RFC 3548) functionality.
|
||||
sha224sum: print or check a SHA224 (224-bit) checksum
|
||||
sha256sum: print or check a SHA256 (256-bit) checksum
|
||||
sha384sum: print or check a SHA384 (384-bit) checksum
|
||||
sha512sum: print or check a SHA512 (512-bit) checksum
|
||||
shuf: Shuffle lines of text.
|
||||
** New features
|
||||
chgrp now supports --preserve-root, --no-preserve-root (default),
|
||||
as it was documented to do, and just as chmod, chown, and rm do.
|
||||
New dd iflag= and oflag= flags:
|
||||
'directory' causes dd to fail unless the file is a directory, on
|
||||
hosts that support this (e.g., Linux kernels, version 2.1.126 and
|
||||
later). This has limited utility but is present for completeness.
|
||||
'noatime' causes dd to read a file without updating its access
|
||||
time, on hosts that support this (e.g., Linux kernels, version
|
||||
2.6.8 and later).
|
||||
'nolinks' causes dd to fail if the file has multiple hard links,
|
||||
on hosts that support this (e.g., Solaris 10 and later).
|
||||
ls accepts the new option --group-directories-first, to make it
|
||||
list directories before files.
|
||||
rm now accepts the -I (--interactive=once) option. This new option
|
||||
prompts once if rm is invoked recursively or if more than three
|
||||
files are being deleted, which is less intrusive than -i prompting
|
||||
for every file, but provides almost the same level of protection
|
||||
against mistakes.
|
||||
shred and sort now accept the --random-source option.
|
||||
sort now accepts the --random-sort (-R) option and `R' ordering option.
|
||||
sort now supports obsolete usages like "sort +1 -2" unless
|
||||
POSIXLY_CORRECT is set. However, when conforming to POSIX
|
||||
1003.1-2001 "sort +1" still sorts the file named "+1".
|
||||
wc accepts a new option --files0-from=FILE, where FILE contains a
|
||||
list of NUL-terminated file names.
|
||||
** Bug fixes
|
||||
cat with any of the options, -A -v -e -E -T, when applied to a
|
||||
file in /proc or /sys (linux-specific), would truncate its output,
|
||||
usually printing nothing.
|
||||
cp -p would fail in a /proc-less chroot, on some systems
|
||||
When `cp -RL' encounters the same directory more than once in the
|
||||
hierarchy beneath a single command-line argument, it no longer confuses
|
||||
them with hard-linked directories.
|
||||
fts-using tools (chmod, chown, chgrp, du) no longer fail due to
|
||||
a double-free bug -- it could be triggered by making a directory
|
||||
inaccessible while e.g., du is traversing the hierarchy under it.
|
||||
fts-using tools (chmod, chown, chgrp, du) no longer misinterpret
|
||||
a very long symlink chain as a dangling symlink. Before, such a
|
||||
misinterpretation would cause these tools not to diagnose an ELOOP error.
|
||||
ls --indicator-style=file-type would sometimes stat a symlink
|
||||
unnecessarily.
|
||||
ls --file-type worked like --indicator-style=slash (-p),
|
||||
rather than like --indicator-style=file-type.
|
||||
mv: moving a symlink into the place of an existing non-directory is
|
||||
now done atomically; before, mv would first unlink the destination.
|
||||
mv -T DIR EMPTY_DIR no longer fails unconditionally. Also, mv can
|
||||
now remove an empty destination directory: mkdir -p a b/a; mv a b
|
||||
rm (on systems with openat) can no longer exit before processing
|
||||
all command-line arguments.
|
||||
rm is no longer susceptible to a few low-probability memory leaks.
|
||||
rm -r no longer fails to remove an inaccessible and empty directory
|
||||
rm -r's cycle detection code can no longer be tricked into reporting
|
||||
a false positive (introduced in fileutils-4.1.9).
|
||||
shred --remove FILE no longer segfaults on Gentoo systems
|
||||
sort would fail for large inputs (~50MB) on systems with a buggy
|
||||
mkstemp function. sort and tac now use the replacement mkstemp
|
||||
function, and hence are no longer subject to limitations (of 26 or 32,
|
||||
on the maximum number of files from a given template) on HP-UX 10.20,
|
||||
SunOS 4.1.4, Solaris 2.5.1 and OSF1/Tru64 V4.0F&V5.1.
|
||||
tail -f once again works on a file with the append-only
|
||||
attribute (affects at least Linux ext2, ext3, xfs file systems)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 8 15:29:32 CEST 2006 - schwab@suse.de
|
||||
|
||||
- Move sux to %{_bindir}.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jun 26 13:20:23 CEST 2006 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 5.97.
|
||||
** Bug fixes
|
||||
rebuild with better autoconf test for when the lstat replacement
|
||||
function is needed -- required for Solaris 9
|
||||
cat with any of the options, -A -v -e -E -T, when applied to a
|
||||
file in /proc or /sys (linux-specific), would truncate its output,
|
||||
usually printing nothing.
|
||||
** Improved robustness
|
||||
dircolors: a new autoconf run-test for AIX's buggy strndup function
|
||||
prevents malfunction on that system; may also affect cut, expand,
|
||||
and unexpand.
|
||||
** New features
|
||||
chgrp now supports --preserve-root, --no-preserve-root (default),
|
||||
as it was documented to do, and just as chmod, chown, and rm do.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 22 15:38:27 CEST 2006 - schwab@suse.de
|
||||
|
||||
- Fix conflict with <fcntl.h>.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 22 13:34:26 CEST 2006 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 5.96.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat May 13 16:39:03 CEST 2006 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 5.95.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 7 16:34:42 CEST 2006 - cthiel@suse.de
|
||||
|
||||
- added Obsoletes: libselinux (hack for bug #156519)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 13 01:31:31 CET 2006 - schwab@suse.de
|
||||
|
||||
- Fix spurious failure with cp -LR.
|
||||
- Move check for /proc.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 30 16:27:11 CET 2006 - schwab@suse.de
|
||||
|
||||
- Always print newline after format in stat [#145905].
|
||||
- Barf if /proc is not mounted.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 25 21:30:02 CET 2006 - mls@suse.de
|
||||
|
||||
- converted neededforbuild to BuildRequires
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 19 16:43:57 CET 2006 - meissner@suse.de
|
||||
|
||||
- Do not strip /bin/su.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 11 15:20:50 CET 2006 - schwab@suse.de
|
||||
|
||||
- Fix infloop when ignoring characters [#141756].
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 19 12:03:23 CET 2005 - kukuk@suse.de
|
||||
|
||||
- Add fallback if futimesat does not work
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 5 17:15:17 CET 2005 - ke@suse.de
|
||||
|
||||
- Fix typo in German translation file; reported by Olaf Hering
|
||||
[#105863].
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 5 16:53:58 CET 2005 - schwab@suse.de
|
||||
|
||||
- Drop SELinux support.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 15 16:47:44 CET 2005 - uli@suse.de
|
||||
|
||||
- some tests fail on ARM (QEMU problem?); ignore for now
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Nov 6 17:42:27 CET 2005 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 5.93.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 2 14:55:10 CET 2005 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 5.92.
|
||||
- Fix invalid use of va_list.
|
||||
- Add some fixes from cvs.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 20 10:16:26 CEST 2005 - schwab@suse.de
|
||||
|
||||
- Reenable DEFAULT_POSIX2_VERSION.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 19 19:04:17 CEST 2005 - agruen@suse.de
|
||||
|
||||
- Add acl and xattr patches.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 17 15:45:25 CEST 2005 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 5.91.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Oct 1 16:05:24 CEST 2005 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 5.90.
|
||||
- Disable acl patches for now.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Sep 25 21:33:05 CEST 2005 - schwab@suse.de
|
||||
|
||||
- Fix warning.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Aug 24 15:07:03 CEST 2005 - werner@suse.de
|
||||
|
||||
- Let `su' handle /sbin and /usr/sbin in path
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Aug 1 16:48:44 CEST 2005 - kukuk@suse.de
|
||||
|
||||
- And yet another uninitialized variable fix.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jul 29 16:01:07 CEST 2005 - schwab@suse.de
|
||||
|
||||
- Fix another uninitialized variable.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jul 6 18:33:56 CEST 2005 - schwab@suse.de
|
||||
|
||||
- Fix uninitialized variable.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jul 4 11:00:33 CEST 2005 - schwab@suse.de
|
||||
|
||||
- Update i18n patch.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jun 20 23:11:53 CEST 2005 - schwab@suse.de
|
||||
|
||||
- Fix last change.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 15 17:34:06 CEST 2005 - kukuk@suse.de
|
||||
|
||||
- Compile/link su with -fpie/-pie
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat May 21 16:46:32 CEST 2005 - kukuk@suse.de
|
||||
|
||||
- Add support for /etc/default/su
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 2 11:32:05 CEST 2005 - kukuk@suse.de
|
||||
|
||||
- Don't overwrite PATH if su is called with "-" option.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 2 14:29:21 CET 2005 - schwab@suse.de
|
||||
|
||||
- Fix merge error [#67103].
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 28 16:18:57 CET 2005 - schwab@suse.de
|
||||
|
||||
- Call pam_getenvlist before pam_end.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 28 13:16:14 CET 2005 - schwab@suse.de
|
||||
|
||||
- Link su to sux [#66830].
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 2 19:48:49 CET 2005 - schwab@suse.de
|
||||
|
||||
- Handle xfs and jfs in stat [#50415].
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 2 02:02:28 CET 2005 - schwab@suse.de
|
||||
|
||||
- Handle subfs like autofs.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 25 13:52:57 CET 2005 - schwab@suse.de
|
||||
|
||||
- Fix path_concat.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 20 17:26:10 CET 2005 - schwab@suse.de
|
||||
|
||||
- Use pam_xauth [#42238].
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 14 22:04:46 CET 2005 - schwab@suse.de
|
||||
|
||||
- Fix merge error [#49853].
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 11 18:39:44 CET 2005 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 5.3.0.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Nov 8 17:15:39 CET 2004 - kukuk@suse.de
|
||||
|
||||
- Use common-* PAM config files for su PAM configuration
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 25 15:01:04 CEST 2004 - schwab@suse.de
|
||||
|
||||
- Fix last change.
|
||||
- Fix selinux patch.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 20 01:55:31 CEST 2004 - ro@suse.de
|
||||
|
||||
- remove no language support (nb is already there)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Oct 2 03:08:31 CEST 2004 - agruen@suse.de
|
||||
|
||||
- #46609: Fix chown and chgrp utilities for uid == (uid_t) -1 and
|
||||
gid == (gid_t) -1 case.
|
||||
- Add missing #include to have NULL defined in lib/acl.c
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 10 00:13:28 CEST 2004 - schwab@suse.de
|
||||
|
||||
- Fix uninitialized variable [#44929].
|
||||
- Fix selinux patch.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Aug 25 13:32:20 CEST 2004 - schwab@suse.de
|
||||
|
||||
- Fix hardlink accounting patch.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 24 18:07:35 CEST 2004 - schwab@suse.de
|
||||
|
||||
- Update testsuite for change in chown.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 24 16:34:33 CEST 2004 - schwab@suse.de
|
||||
|
||||
- Precompute length in caller of ismbblank to avoid quadratic behaviour
|
||||
[#40741].
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 17 15:33:12 CEST 2004 - schwab@suse.de
|
||||
|
||||
- Fix handling of symlinks in chown [#40691].
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Apr 17 20:09:11 CEST 2004 - schwab@suse.de
|
||||
|
||||
- Pacify autobuild.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 2 14:48:24 CEST 2004 - schwab@suse.de
|
||||
|
||||
- Add support for IUTF8 in stty.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 30 18:39:10 CEST 2004 - schwab@suse.de
|
||||
|
||||
- Fix merge error in selinux patch [#37431].
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 29 14:51:59 CEST 2004 - schwab@suse.de
|
||||
|
||||
- Fix hardlink accounting in du.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 22 14:19:59 CET 2004 - schwab@suse.de
|
||||
|
||||
- Fix race in the testsuite.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 15 16:21:20 CET 2004 - kukuk@suse.de
|
||||
|
||||
- Update SELinux patch to new libselinux interface
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 15 11:25:54 CET 2004 - schwab@suse.de
|
||||
|
||||
- Fix date parsing.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Mar 13 18:21:40 CET 2004 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 5.2.1.
|
||||
* Includes mv fix.
|
||||
* Fix sparse handling in cp.
|
||||
* Fix descriptor leak in nohup.
|
||||
* Fix POSIX issues in expr.
|
||||
* Always allow user.group in chown.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Mar 12 18:18:33 CET 2004 - schwab@suse.de
|
||||
|
||||
- Fix sysinfo patch [#35337].
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Mar 12 16:57:21 CET 2004 - schwab@suse.de
|
||||
|
||||
- Fix preserving links in mv.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 3 15:28:06 CET 2004 - schwab@suse.de
|
||||
|
||||
- Fix help output from mkdir.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 20 01:06:39 CET 2004 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 5.2.0.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 9 18:03:45 CET 2004 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 5.1.3.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 2 17:20:11 CET 2004 - agruen@suse.de
|
||||
|
||||
- Update acl and xattr patches, and add some Changelog text.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 26 14:34:12 CET 2004 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 5.1.2.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 23 17:16:32 CET 2004 - schwab@suse.de
|
||||
|
||||
- Don't link [ to test.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 19 13:26:00 CET 2004 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 5.1.1.
|
||||
- Default to POSIX.2-1992.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 16 12:26:48 CET 2004 - kukuk@suse.de
|
||||
|
||||
- Add pam-devel to neededforbuild
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 9 13:51:53 CET 2004 - schwab@suse.de
|
||||
|
||||
- Fix spurious test failure.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 8 16:48:32 CET 2004 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 5.1.0.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Dec 12 23:08:27 CET 2003 - schwab@suse.de
|
||||
|
||||
- Fix use of AC_SEARCH_LIBS.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 9 17:31:09 CET 2003 - schwab@suse.de
|
||||
|
||||
- Cleanup SELinux patch.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 9 16:07:28 CET 2003 - kukuk@suse.de
|
||||
|
||||
- Add SELinux patch.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 26 11:59:34 CET 2003 - schwab@suse.de
|
||||
|
||||
- Fix sorting of months in multibyte case [#33299].
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 22 15:33:21 CEST 2003 - schwab@suse.de
|
||||
|
||||
- Fix building without extended attributes.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 15 15:17:11 CEST 2003 - schwab@suse.de
|
||||
|
||||
- Cleanup sysinfo patch.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 19 11:09:36 CEST 2003 - kukuk@suse.de
|
||||
|
||||
- Add missing textutil to Provides
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Aug 25 17:42:23 CEST 2003 - agruen@suse.de
|
||||
|
||||
- Fix uname command to report reasonable processor and platform
|
||||
information (coreutils-sysinfo.diff: based on similar RedHat
|
||||
patch).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jul 21 15:23:56 CEST 2003 - schwab@suse.de
|
||||
|
||||
- Fix typo in i18n patch for join.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jul 18 12:05:56 CEST 2003 - schwab@suse.de
|
||||
|
||||
- Avoid abort in sort on inconsistent locales [#26506].
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 15 15:16:37 CEST 2003 - okir@suse.de
|
||||
|
||||
- make su export variables declared via pam_putenv
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed May 28 10:15:39 CEST 2003 - kukuk@suse.de
|
||||
|
||||
- PAM fixes for su:
|
||||
- Move pam_open_session call before dropping privilegs, session
|
||||
management needs max. possible credentials and needs to be done
|
||||
before we change into the home directory of the user.
|
||||
- Don't set PAM_TTY and PAM_RUSER to fake names.
|
||||
- Use conversion function from libpam_misc.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri May 16 11:11:44 CEST 2003 - schwab@suse.de
|
||||
|
||||
- Fix exit status from su.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 24 11:43:14 CEST 2003 - ro@suse.de
|
||||
|
||||
- fix head calling syntax
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Apr 7 13:11:19 CEST 2003 - schwab@suse.de
|
||||
|
||||
- Only delete info entries when removing last version.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 4 17:58:20 CEST 2003 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 5.0.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 31 12:53:29 CEST 2003 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 4.5.12.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 20 18:10:25 CET 2003 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 4.5.11.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 10 13:42:36 CET 2003 - schwab@suse.de
|
||||
|
||||
- Fix LFS bug in du [#24960].
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 27 15:39:06 CET 2003 - schwab@suse.de
|
||||
|
||||
- Readd textutils i18n patches.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 27 14:53:19 CET 2003 - agruen@suse.de
|
||||
|
||||
- Per hint from Andreas Schwab, don't use awk in autoconf. (The
|
||||
improved test is simpler, too.)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 27 05:29:05 CET 2003 - agruen@suse.de
|
||||
|
||||
- Fix autoconf test for attr_copy_file that caused all binaries
|
||||
to be linked needlessly against libattr.so.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 25 15:18:39 CET 2003 - agruen@suse.de
|
||||
|
||||
- Extended attribute copying: Use the newly exported
|
||||
attr_copy_check_permissions() callback exported by libattr.so,
|
||||
so that the EA copying done by coreutils is consistent with
|
||||
other apps [#24244].
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 24 16:27:21 CET 2003 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 4.5.8.
|
||||
* Fixes bugs in du.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 17 15:00:04 CET 2003 - agruen@suse.de
|
||||
|
||||
- Add extended attribute copying patch: Affects cp, mv, install.
|
||||
See the cp manual page for details on the changes in cp. The
|
||||
mv utility always tries to copy extended attributes; install
|
||||
never does.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 10 13:16:58 CET 2003 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 4.5.7.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 7 13:47:58 CET 2003 - kukuk@suse.de
|
||||
|
||||
- Use pam_unix2.so instead of pam_unix.so, use same rules for
|
||||
password changing as passwd.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 6 17:48:08 CET 2003 - schwab@suse.de
|
||||
|
||||
- Use %install_info.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 6 17:05:42 CET 2003 - schwab@suse.de
|
||||
|
||||
- Update to coreutils 4.5.6.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 3 14:47:47 CET 2003 - schwab@suse.de
|
||||
|
||||
- Package created, combining textutils, sh-utils and fileutils.
|
||||
|
738
coreutils.spec
Normal file
738
coreutils.spec
Normal file
@ -0,0 +1,738 @@
|
||||
#
|
||||
# spec file for package coreutils (Version 6.7)
|
||||
#
|
||||
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
# This file and all modifications and additions to the pristine
|
||||
# package are under the same license as the package itself.
|
||||
#
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
# norootforbuild
|
||||
|
||||
Name: coreutils
|
||||
BuildRequires: help2man libacl-devel pam-devel
|
||||
URL: http://www.gnu.org/software/coreutils/
|
||||
License: GNU General Public License (GPL)
|
||||
Group: System/Base
|
||||
Provides: fileutil fileutils sh-utils sh_utils shellutl stat textutil textutils textutl txtutils
|
||||
Obsoletes: fileutil fileutils sh-utils sh_utils stat textutil textutils
|
||||
Obsoletes: libselinux <= 1.23.11-3 libselinux-32bit >= 9 libselinux-64bit = 9 libselinux-x86 = 9
|
||||
Autoreqprov: on
|
||||
PreReq: %{install_info_prereq}
|
||||
Version: 6.7
|
||||
Release: 3
|
||||
Summary: GNU Core Utilities
|
||||
Source: coreutils-%{version}.tar.bz2
|
||||
Source1: su.pamd
|
||||
Source2: su.default
|
||||
Patch: coreutils-%{version}.diff
|
||||
Patch1: coreutils-xattr.diff
|
||||
Patch30: coreutils-changelog.diff
|
||||
Patch4: coreutils-5.3.0-i18n-0.1.patch
|
||||
Patch5: i18n-uninit.diff
|
||||
Patch6: i18n-infloop.diff
|
||||
Patch7: coreutils-5.0-pam-env.patch
|
||||
Patch8: coreutils-sysinfo.diff
|
||||
Patch9: acl-test.diff
|
||||
Patch10: getcwd.diff
|
||||
Patch16: invalid-ids.diff
|
||||
Patch17: no-no.diff
|
||||
Patch20: coreutils-5.3.0-pie.diff
|
||||
Patch21: coreutils-5.3.0-sbin4su.diff
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
||||
%description
|
||||
Basic file, shell, and text manipulation utilities. The package
|
||||
contains the following programs:
|
||||
|
||||
basename cat chgrp chmod chown chroot cksum comm cp csplit cut date dd
|
||||
df dir dircolors dirname du echo env expand expr factor false fmt fold
|
||||
install groups head id join kill link ln logname ls md5sum mkdir mkfifo
|
||||
mknod mv nice nl nohup od paste pathchk pinky pr printenv printf ptx
|
||||
pwd readlink rm rmdir seq sha1sum shred sleep sort split stat stty su
|
||||
sum sync tac tail tee test touch tr true tsort tty uname unexpand uniq
|
||||
unlink uptime users vdir wc who whoami yes
|
||||
|
||||
|
||||
|
||||
Authors:
|
||||
--------
|
||||
Arnold Robbins <arnold@audiofax.com>
|
||||
Colin Plumb <colin@nyx.net>
|
||||
David M. Ihnat
|
||||
David MacKenzie <djm@gnu.org>
|
||||
François Pinard <pinard@iro.umontreal.ca>
|
||||
H. Peter Anvin <hpa@transmeta.com>
|
||||
Ian Lance Taylor <ian@airs.com>
|
||||
Jay Lepreau <lepreau@cs.utah.edu>
|
||||
Jim Kingdon
|
||||
Jim Meyering <jim@meyering.net>
|
||||
Joseph Arceneaux
|
||||
Kaveh Ghazi
|
||||
Kayvan Aghaiepour
|
||||
Larry McVoy <lm@sgi.com>
|
||||
Mark Kettenis <kettenis@phys.uva.nl>
|
||||
Michael Meskes
|
||||
Michael Stone <mstone@debian.org>
|
||||
Mike Haertel
|
||||
Mike Parker
|
||||
Paul Eggert <eggert@twinsun.com>
|
||||
Paul Rubin <phr@ocf.berkeley.edu>
|
||||
Pete TerMaat
|
||||
Randy Smith
|
||||
Richard M. Stallman <rms@gnu.org>
|
||||
Richard Mlynarik
|
||||
Roland Huebner <ro-huebner@gmx.de>
|
||||
Roland McGrath <roland@redhat.com>
|
||||
Ross Paterson <rap@doc.ic.ac.uk>
|
||||
Scott Bartram
|
||||
Scott Miller
|
||||
Stuart Kemp <skemp@peter.bmc.com>
|
||||
Torbjorn Granlund <tege@nada.kth.se>
|
||||
Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch1 -p1
|
||||
%patch4 -p1
|
||||
%patch5
|
||||
%patch6
|
||||
%patch
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
%patch10
|
||||
%patch16 -p1
|
||||
%patch17
|
||||
%patch20
|
||||
%patch21
|
||||
rm -f po/no.*
|
||||
|
||||
%build
|
||||
AUTOPOINT=true autoreconf -fi
|
||||
./configure CFLAGS="-DUSE_PAM $RPM_OPT_FLAGS -Wall" \
|
||||
DEFAULT_POSIX2_VERSION=199209 \
|
||||
--prefix=%{_prefix} --mandir=%{_mandir} \
|
||||
--infodir=%{_infodir} --without-included-regex
|
||||
make %{?jobs:-j%jobs} PAMLIBS="-lpam -ldl"
|
||||
if test $EUID -eq 0; then
|
||||
su nobody -c make check
|
||||
make check-root VERBOSE=yes
|
||||
else
|
||||
%ifarch %arm
|
||||
make -k check VERBOSE=yes || echo make check failed
|
||||
%else
|
||||
make check VERBOSE=yes
|
||||
%endif
|
||||
fi
|
||||
|
||||
%install
|
||||
make DESTDIR="$RPM_BUILD_ROOT" install
|
||||
test -f $RPM_BUILD_ROOT%{_bindir}/su || \
|
||||
install src/su $RPM_BUILD_ROOT%{_bindir}/su
|
||||
install -d $RPM_BUILD_ROOT/bin
|
||||
for i in basename cat chgrp chmod chown cp date dd df echo false kill ln ls mkdir mknod mv pwd rm rmdir sleep sort stty su sync touch true uname
|
||||
do
|
||||
mv $RPM_BUILD_ROOT%{_bindir}/$i $RPM_BUILD_ROOT/bin/$i
|
||||
test $i = su && echo -n '%%attr(4755,root,root) '
|
||||
echo /bin/$i
|
||||
done > bin.files
|
||||
ln -sf ../../bin/basename ../../bin/sort ../../bin/touch $RPM_BUILD_ROOT%{_bindir}
|
||||
install -d -m 755 $RPM_BUILD_ROOT/etc/pam.d
|
||||
install -m 644 $RPM_SOURCE_DIR/su.pamd $RPM_BUILD_ROOT/etc/pam.d/su
|
||||
install -d -m 755 $RPM_BUILD_ROOT/etc/default
|
||||
install -m 644 $RPM_SOURCE_DIR/su.default $RPM_BUILD_ROOT/etc/default/su
|
||||
ln -sf /bin/su $RPM_BUILD_ROOT%{_bindir}/sux
|
||||
rm -f $RPM_BUILD_ROOT%{_bindir}/hostid
|
||||
rm -f $RPM_BUILD_ROOT%{_bindir}/hostname
|
||||
rm -f $RPM_BUILD_ROOT%{_mandir}/man1/hostid.1
|
||||
rm -f $RPM_BUILD_ROOT%{_mandir}/man1/hostname.1
|
||||
%find_lang %name
|
||||
cat bin.files %name.lang > extra-files
|
||||
|
||||
%post
|
||||
%install_info --info-dir=%{_infodir} %{_infodir}/coreutils.info.gz
|
||||
|
||||
%postun
|
||||
%install_info_delete --info-dir=%{_infodir} %{_infodir}/coreutils.info.gz
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
%files -f extra-files
|
||||
%defattr(-,root,root)
|
||||
%doc README NEWS
|
||||
%config /etc/pam.d/su
|
||||
%config(noreplace) /etc/default/su
|
||||
%{_bindir}/*
|
||||
%doc %{_infodir}/coreutils.info*.gz
|
||||
%doc %{_mandir}/man1/*.1.gz
|
||||
%dir %{_prefix}/share/locale/*/LC_TIME
|
||||
|
||||
%changelog -n coreutils
|
||||
* Wed Dec 13 2006 - schwab@suse.de
|
||||
- Fix acl tests.
|
||||
* Sat Dec 09 2006 - schwab@suse.de
|
||||
- Update to coreutils 6.7.
|
||||
** Bug fixes
|
||||
When cp -p copied a file with special mode bits set, the same bits
|
||||
were set on the copy even when ownership could not be preserved.
|
||||
This could result in files that were setuid to the wrong user.
|
||||
To fix this, special mode bits are now set in the copy only if its
|
||||
ownership is successfully preserved. Similar problems were fixed
|
||||
with mv when copying across file system boundaries. This problem
|
||||
affects all versions of coreutils through 6.6.
|
||||
cp --preserve=ownership would create output files that temporarily
|
||||
had too-generous permissions in some cases. For example, when
|
||||
copying a file with group A and mode 644 into a group-B sticky
|
||||
directory, the output file was briefly readable by group B.
|
||||
Fix similar problems with cp options like -p that imply
|
||||
--preserve=ownership, with install -d when combined with either -o
|
||||
or -g, and with mv when copying across file system boundaries.
|
||||
This bug affects coreutils 6.0 through 6.6.
|
||||
du --one-file-system (-x) would skip subdirectories of any directory
|
||||
listed as second or subsequent command line argument. This bug affects
|
||||
coreutils-6.4, 6.5 and 6.6.
|
||||
* Wed Nov 22 2006 - schwab@suse.de
|
||||
- Update to coreutils 6.6.
|
||||
** Bug fixes
|
||||
ls would segfault (dereference a NULL pointer) for a file with a
|
||||
nameless group or owner. This bug was introduced in coreutils-6.5.
|
||||
A bug in the latest official m4/gettext.m4 (from gettext-0.15)
|
||||
made configure fail to detect gettext support, due to the unusual
|
||||
way in which coreutils uses AM_GNU_GETTEXT.
|
||||
** Improved robustness
|
||||
Now, du (and the other fts clients: chmod, chgrp, chown) honor a
|
||||
trailing slash in the name of a symlink-to-directory even on
|
||||
Solaris 9, by working around its buggy fstatat implementation.
|
||||
* Mon Nov 20 2006 - schwab@suse.de
|
||||
- Update to coreutils 6.5.
|
||||
** Bug fixes
|
||||
du (and the other fts clients: chmod, chgrp, chown) would exit early
|
||||
when encountering an inaccessible directory on a system with native
|
||||
openat support (i.e., linux-2.6.16 or newer along with glibc-2.4
|
||||
or newer). This bug was introduced with the switch to gnulib's
|
||||
openat-based variant of fts, for coreutils-6.0.
|
||||
"ln --backup f f" now produces a sensible diagnostic
|
||||
** New features
|
||||
rm accepts a new option: --one-file-system
|
||||
* Mon Oct 23 2006 - schwab@suse.de
|
||||
- Update to coreutils 6.4.
|
||||
** Bug fixes
|
||||
chgrp and chown would malfunction when invoked with both -R and -H and
|
||||
with one or more of the following: --preserve-root, --verbose, --changes,
|
||||
--from=o:g (chown only). This bug was introduced with the switch to
|
||||
gnulib's openat-based variant of fts, for coreutils-6.0.
|
||||
cp --backup dir1 dir2, would rename an existing dir2/dir1 to dir2/dir1~.
|
||||
This bug was introduced in coreutils-6.0.
|
||||
With --force (-f), rm no longer fails for ENOTDIR.
|
||||
For example, "rm -f existing-non-directory/anything" now exits
|
||||
successfully, ignoring the error about a nonexistent file.
|
||||
* Mon Oct 09 2006 - schwab@suse.de
|
||||
- Update to coreutils 6.3.
|
||||
** Improved robustness
|
||||
pinky no longer segfaults on Darwin 7.9.0 (MacOS X 10.3.9) due to a
|
||||
buggy native getaddrinfo function.
|
||||
rm works around a bug in Darwin 7.9.0 (MacOS X 10.3.9) that would
|
||||
sometimes keep it from removing all entries in a directory on an HFS+
|
||||
or NFS-mounted partition.
|
||||
sort would fail to handle very large input (around 40GB) on systems with a
|
||||
mkstemp function that returns a file descriptor limited to 32-bit offsets.
|
||||
** Bug fixes
|
||||
chmod would fail unnecessarily in an unusual case: when an initially-
|
||||
inaccessible argument is rendered accessible by chmod's action on a
|
||||
preceding command line argument. This bug also affects chgrp, but
|
||||
it is harder to demonstrate. It does not affect chown. The bug was
|
||||
introduced with the switch from explicit recursion to the use of fts
|
||||
in coreutils-5.1.0 (2003-10-15).
|
||||
cp -i and mv -i occasionally neglected to prompt when the copy or move
|
||||
action was bound to fail. This bug dates back to before fileutils-4.0.
|
||||
With --verbose (-v), cp and mv would sometimes generate no output,
|
||||
or neglect to report file removal.
|
||||
For the "groups" command:
|
||||
"groups" no longer prefixes the output with "user :" unless more
|
||||
than one user is specified; this is for compatibility with BSD.
|
||||
"groups user" now exits nonzero when it gets a write error.
|
||||
"groups" now processes options like --help more compatibly.
|
||||
shuf would infloop, given 8KB or more of piped input
|
||||
** Portability
|
||||
Versions of chmod, chown, chgrp, du, and rm (tools that use openat etc.)
|
||||
compiled for Solaris 8 now also work when run on Solaris 10.
|
||||
* Thu Oct 05 2006 - agruen@suse.de
|
||||
- cp: Replace the old --attributes=regex option with
|
||||
--preserve=xattrs. Only copy extended attributes if this
|
||||
option is given. Use libattr's new copy_attr_action() function
|
||||
to check which attributes to copy in /etc/xattr.conf.
|
||||
* Tue Sep 19 2006 - schwab@suse.de
|
||||
- Disable broken autopoint.
|
||||
* Mon Sep 18 2006 - schwab@suse.de
|
||||
- Update to coreutils 6.2.
|
||||
** Changes in behavior
|
||||
mkdir -p and install -d (or -D) now use a method that forks a child
|
||||
process if the working directory is unreadable and a later argument
|
||||
uses a relative file name. This avoids some race conditions, but it
|
||||
means you may need to kill two processes to stop these programs.
|
||||
rm now rejects attempts to remove the root directory, e.g., `rm -fr /'
|
||||
now fails without removing anything. Likewise for any file name with
|
||||
a final `./' or `../' component.
|
||||
tail now ignores the -f option if POSIXLY_CORRECT is set, no file
|
||||
operand is given, and standard input is any FIFO; formerly it did
|
||||
this only for pipes.
|
||||
** Infrastructure changes
|
||||
Coreutils now uses gnulib via the gnulib-tool script.
|
||||
If you check the source out from CVS, then follow the instructions
|
||||
in README-cvs. Although this represents a large change to the
|
||||
infrastructure, it should cause no change in how the tools work.
|
||||
** Bug fixes
|
||||
cp --backup no longer fails when the last component of a source file
|
||||
name is "." or "..".
|
||||
"ls --color" would highlight other-writable and sticky directories
|
||||
no differently than regular directories on a file system with
|
||||
dirent.d_type support.
|
||||
"mv -T --verbose --backup=t A B" now prints the " (backup: B.~1~)"
|
||||
suffix when A and B are directories as well as when they are not.
|
||||
mv and "cp -r" no longer fail when invoked with two arguments
|
||||
where the first one names a directory and the second name ends in
|
||||
a slash and doesn't exist. E.g., "mv dir B/", for nonexistent B,
|
||||
now succeeds, once more. This bug was introduced in coreutils-5.3.0.
|
||||
* Fri Sep 01 2006 - schwab@suse.de
|
||||
- Fix sbin patch [#202632].
|
||||
* Mon Aug 21 2006 - schwab@suse.de
|
||||
- Update to coreutils 6.1.
|
||||
** Changes in behavior
|
||||
df now considers BSD "kernfs" file systems to be dummies
|
||||
** Bug fixes
|
||||
cp --sparse preserves sparseness at the end of a file, even when
|
||||
the file's apparent size is not a multiple of its block size.
|
||||
[introduced with the original design, in fileutils-4.0r, 2000-04-29]
|
||||
df (with a command line argument) once again prints its header
|
||||
[introduced in coreutils-6.0]
|
||||
ls -CF would misalign columns in some cases involving non-stat'able files
|
||||
[introduced in coreutils-6.0]
|
||||
* Tue Aug 15 2006 - schwab@suse.de
|
||||
- Update to coreutils 6.0.
|
||||
** Improved robustness
|
||||
df: if the file system claims to have more available than total blocks,
|
||||
report the number of used blocks as being "total - available"
|
||||
(a negative number) rather than as garbage.
|
||||
dircolors: a new autoconf run-test for AIX's buggy strndup function
|
||||
prevents malfunction on that system; may also affect cut, expand,
|
||||
and unexpand.
|
||||
fts no longer changes the current working directory, so its clients
|
||||
(chmod, chown, chgrp, du) no longer malfunction under extreme conditions.
|
||||
pwd and other programs using lib/getcwd.c work even on file systems
|
||||
where dirent.d_ino values are inconsistent with those from stat.st_ino.
|
||||
rm's core is now reentrant: rm --recursive (-r) now processes
|
||||
hierarchies without changing the working directory at all.
|
||||
** Changes in behavior
|
||||
basename and dirname now treat // as different from / on platforms
|
||||
where the two are distinct.
|
||||
chmod, install, and mkdir now preserve a directory's set-user-ID and
|
||||
set-group-ID bits unless you explicitly request otherwise. E.g.,
|
||||
`chmod 755 DIR' and `chmod u=rwx,go=rx DIR' now preserve DIR's
|
||||
set-user-ID and set-group-ID bits instead of clearing them, and
|
||||
similarly for `mkdir -m 755 DIR' and `mkdir -m u=rwx,go=rx DIR'. To
|
||||
clear the bits, mention them explicitly in a symbolic mode, e.g.,
|
||||
`mkdir -m u=rwx,go=rx,-s DIR'. To set them, mention them explicitly
|
||||
in either a symbolic or a numeric mode, e.g., `mkdir -m 2755 DIR',
|
||||
`mkdir -m u=rwx,go=rx,g+s' DIR. This change is for convenience on
|
||||
systems where these bits inherit from parents. Unfortunately other
|
||||
operating systems are not consistent here, and portable scripts
|
||||
cannot assume the bits are set, cleared, or preserved, even when the
|
||||
bits are explicitly mentioned. For example, OpenBSD 3.9 `mkdir -m
|
||||
777 D' preserves D's setgid bit but `chmod 777 D' clears it.
|
||||
Conversely, Solaris 10 `mkdir -m 777 D', `mkdir -m g-s D', and
|
||||
`chmod 0777 D' all preserve D's setgid bit, and you must use
|
||||
something like `chmod g-s D' to clear it.
|
||||
`cp --link --no-dereference' now works also on systems where the
|
||||
link system call cannot create a hard link to a symbolic link.
|
||||
This change has no effect on systems with a Linux-based kernel.
|
||||
csplit and nl now use POSIX syntax for regular expressions, not
|
||||
Emacs syntax. As a result, character classes like [[:print:]] and
|
||||
interval expressions like A\{1,9\} now have their usual meaning,
|
||||
. no longer matches the null character, and \ must precede the + and
|
||||
? operators.
|
||||
date: a command like date -d '2006-04-23 21 days ago' would print
|
||||
the wrong date in some time zones. (see the test for an example)
|
||||
df now considers "none" and "proc" file systems to be dummies and
|
||||
therefore does not normally display them. Also, inaccessible file
|
||||
systems (which can be caused by shadowed mount points or by chrooted
|
||||
bind mounts) are now dummies, too.
|
||||
expr no longer complains about leading ^ in a regular expression
|
||||
(the anchor is ignored), or about regular expressions like A** (the
|
||||
second "*" is ignored). expr now exits with status 2 (not 3) for
|
||||
errors it detects in the expression's values; exit status 3 is now
|
||||
used only for internal errors (such as integer overflow, which expr
|
||||
now checks for).
|
||||
install and mkdir now implement the X permission symbol correctly,
|
||||
e.g., `mkdir -m a+X dir'; previously the X was ignored.
|
||||
install now creates parent directories with mode u=rwx,go=rx (755)
|
||||
instead of using the mode specified by the -m option; and it does
|
||||
not change the owner or group of parent directories. This is for
|
||||
compatibility with BSD and closes some race conditions.
|
||||
ln now uses different (and we hope clearer) diagnostics when it fails.
|
||||
ln -v now acts more like FreeBSD, so it generates output only when
|
||||
successful and the output is easier to parse.
|
||||
ls now defaults to --time-style='locale', not --time-style='posix-long-iso'.
|
||||
However, the 'locale' time style now behaves like 'posix-long-iso'
|
||||
if your locale settings appear to be messed up. This change
|
||||
attempts to have the default be the best of both worlds.
|
||||
mkfifo and mknod no longer set special mode bits (setuid, setgid,
|
||||
and sticky) with the -m option.
|
||||
nohup's usual diagnostic now more precisely specifies the I/O
|
||||
redirections, e.g., "ignoring input and appending output to
|
||||
nohup.out". Also, nohup now redirects stderr to nohup.out (or
|
||||
$HOME/nohup.out) if stdout is closed and stderr is a tty; this is in
|
||||
response to Open Group XCU ERN 71.
|
||||
rm --interactive now takes an optional argument, although the
|
||||
default of using no argument still acts like -i.
|
||||
rm no longer fails to remove an empty, unreadable directory
|
||||
seq changes:
|
||||
seq defaults to a minimal fixed point format that does not lose
|
||||
information if seq's operands are all fixed point decimal numbers.
|
||||
You no longer need the `-f%%.f' in `seq -f%%.f 1048575 1024 1050623',
|
||||
for example, since the default format now has the same effect.
|
||||
seq now lets you use %%a, %%A, %%E, %%F, and %%G formats.
|
||||
seq now uses long double internally rather than double.
|
||||
sort now reports incompatible options (e.g., -i and -n) rather than
|
||||
silently ignoring one of them.
|
||||
stat's --format=FMT option now works the way it did before 5.3.0:
|
||||
FMT is automatically newline terminated. The first stable release
|
||||
containing this change was 5.92.
|
||||
stat accepts the new option --printf=FMT, where FMT is *not*
|
||||
automatically newline terminated.
|
||||
stat: backslash escapes are interpreted in a format string specified
|
||||
via --printf=FMT, but not one specified via --format=FMT. That includes
|
||||
octal (\ooo, at most three octal digits), hexadecimal (\xhh, one or
|
||||
two hex digits), and the standard sequences (\a, \b, \f, \n, \r, \t,
|
||||
\v, \", \\).
|
||||
With no operand, 'tail -f' now silently ignores the '-f' only if
|
||||
standard input is a FIFO or pipe and POSIXLY_CORRECT is set.
|
||||
Formerly, it ignored the '-f' when standard input was a FIFO, pipe,
|
||||
or socket.
|
||||
** Scheduled for removal
|
||||
ptx's --copyright (-C) option is scheduled for removal in 2007, and
|
||||
now evokes a warning. Use --version instead.
|
||||
rm's --directory (-d) option is scheduled for removal in 2006. This
|
||||
option has been silently ignored since coreutils 5.0. On systems
|
||||
that support unlinking of directories, you can use the "unlink"
|
||||
command to unlink a directory.
|
||||
Similarly, we are considering the removal of ln's --directory (-d,
|
||||
-F) option in 2006. Please write to <bug-coreutils@gnu.org> if this
|
||||
would cause a problem for you. On systems that support hard links
|
||||
to directories, you can use the "link" command to create one.
|
||||
** New programs
|
||||
base64: base64 encoding and decoding (RFC 3548) functionality.
|
||||
sha224sum: print or check a SHA224 (224-bit) checksum
|
||||
sha256sum: print or check a SHA256 (256-bit) checksum
|
||||
sha384sum: print or check a SHA384 (384-bit) checksum
|
||||
sha512sum: print or check a SHA512 (512-bit) checksum
|
||||
shuf: Shuffle lines of text.
|
||||
** New features
|
||||
chgrp now supports --preserve-root, --no-preserve-root (default),
|
||||
as it was documented to do, and just as chmod, chown, and rm do.
|
||||
New dd iflag= and oflag= flags:
|
||||
'directory' causes dd to fail unless the file is a directory, on
|
||||
hosts that support this (e.g., Linux kernels, version 2.1.126 and
|
||||
later). This has limited utility but is present for completeness.
|
||||
'noatime' causes dd to read a file without updating its access
|
||||
time, on hosts that support this (e.g., Linux kernels, version
|
||||
2.6.8 and later).
|
||||
'nolinks' causes dd to fail if the file has multiple hard links,
|
||||
on hosts that support this (e.g., Solaris 10 and later).
|
||||
ls accepts the new option --group-directories-first, to make it
|
||||
list directories before files.
|
||||
rm now accepts the -I (--interactive=once) option. This new option
|
||||
prompts once if rm is invoked recursively or if more than three
|
||||
files are being deleted, which is less intrusive than -i prompting
|
||||
for every file, but provides almost the same level of protection
|
||||
against mistakes.
|
||||
shred and sort now accept the --random-source option.
|
||||
sort now accepts the --random-sort (-R) option and `R' ordering option.
|
||||
sort now supports obsolete usages like "sort +1 -2" unless
|
||||
POSIXLY_CORRECT is set. However, when conforming to POSIX
|
||||
1003.1-2001 "sort +1" still sorts the file named "+1".
|
||||
wc accepts a new option --files0-from=FILE, where FILE contains a
|
||||
list of NUL-terminated file names.
|
||||
** Bug fixes
|
||||
cat with any of the options, -A -v -e -E -T, when applied to a
|
||||
file in /proc or /sys (linux-specific), would truncate its output,
|
||||
usually printing nothing.
|
||||
cp -p would fail in a /proc-less chroot, on some systems
|
||||
When `cp -RL' encounters the same directory more than once in the
|
||||
hierarchy beneath a single command-line argument, it no longer confuses
|
||||
them with hard-linked directories.
|
||||
fts-using tools (chmod, chown, chgrp, du) no longer fail due to
|
||||
a double-free bug -- it could be triggered by making a directory
|
||||
inaccessible while e.g., du is traversing the hierarchy under it.
|
||||
fts-using tools (chmod, chown, chgrp, du) no longer misinterpret
|
||||
a very long symlink chain as a dangling symlink. Before, such a
|
||||
misinterpretation would cause these tools not to diagnose an ELOOP error.
|
||||
ls --indicator-style=file-type would sometimes stat a symlink
|
||||
unnecessarily.
|
||||
ls --file-type worked like --indicator-style=slash (-p),
|
||||
rather than like --indicator-style=file-type.
|
||||
mv: moving a symlink into the place of an existing non-directory is
|
||||
now done atomically; before, mv would first unlink the destination.
|
||||
mv -T DIR EMPTY_DIR no longer fails unconditionally. Also, mv can
|
||||
now remove an empty destination directory: mkdir -p a b/a; mv a b
|
||||
rm (on systems with openat) can no longer exit before processing
|
||||
all command-line arguments.
|
||||
rm is no longer susceptible to a few low-probability memory leaks.
|
||||
rm -r no longer fails to remove an inaccessible and empty directory
|
||||
rm -r's cycle detection code can no longer be tricked into reporting
|
||||
a false positive (introduced in fileutils-4.1.9).
|
||||
shred --remove FILE no longer segfaults on Gentoo systems
|
||||
sort would fail for large inputs (~50MB) on systems with a buggy
|
||||
mkstemp function. sort and tac now use the replacement mkstemp
|
||||
function, and hence are no longer subject to limitations (of 26 or 32,
|
||||
on the maximum number of files from a given template) on HP-UX 10.20,
|
||||
SunOS 4.1.4, Solaris 2.5.1 and OSF1/Tru64 V4.0F&V5.1.
|
||||
tail -f once again works on a file with the append-only
|
||||
attribute (affects at least Linux ext2, ext3, xfs file systems)
|
||||
* Tue Aug 08 2006 - schwab@suse.de
|
||||
- Move sux to %%{_bindir}.
|
||||
* Mon Jun 26 2006 - schwab@suse.de
|
||||
- Update to coreutils 5.97.
|
||||
** Bug fixes
|
||||
rebuild with better autoconf test for when the lstat replacement
|
||||
function is needed -- required for Solaris 9
|
||||
cat with any of the options, -A -v -e -E -T, when applied to a
|
||||
file in /proc or /sys (linux-specific), would truncate its output,
|
||||
usually printing nothing.
|
||||
** Improved robustness
|
||||
dircolors: a new autoconf run-test for AIX's buggy strndup function
|
||||
prevents malfunction on that system; may also affect cut, expand,
|
||||
and unexpand.
|
||||
** New features
|
||||
chgrp now supports --preserve-root, --no-preserve-root (default),
|
||||
as it was documented to do, and just as chmod, chown, and rm do.
|
||||
* Thu Jun 22 2006 - schwab@suse.de
|
||||
- Fix conflict with <fcntl.h>.
|
||||
* Mon May 22 2006 - schwab@suse.de
|
||||
- Update to coreutils 5.96.
|
||||
* Sat May 13 2006 - schwab@suse.de
|
||||
- Update to coreutils 5.95.
|
||||
* Fri Apr 07 2006 - cthiel@suse.de
|
||||
- added Obsoletes: libselinux (hack for bug #156519)
|
||||
* Mon Feb 13 2006 - schwab@suse.de
|
||||
- Fix spurious failure with cp -LR.
|
||||
- Move check for /proc.
|
||||
* Mon Jan 30 2006 - schwab@suse.de
|
||||
- Always print newline after format in stat [#145905].
|
||||
- Barf if /proc is not mounted.
|
||||
* Wed Jan 25 2006 - mls@suse.de
|
||||
- converted neededforbuild to BuildRequires
|
||||
* Thu Jan 19 2006 - meissner@suse.de
|
||||
- Do not strip /bin/su.
|
||||
* Wed Jan 11 2006 - schwab@suse.de
|
||||
- Fix infloop when ignoring characters [#141756].
|
||||
* Mon Dec 19 2005 - kukuk@suse.de
|
||||
- Add fallback if futimesat does not work
|
||||
* Mon Dec 05 2005 - ke@suse.de
|
||||
- Fix typo in German translation file; reported by Olaf Hering
|
||||
[#105863].
|
||||
* Mon Dec 05 2005 - schwab@suse.de
|
||||
- Drop SELinux support.
|
||||
* Tue Nov 15 2005 - uli@suse.de
|
||||
- some tests fail on ARM (QEMU problem?); ignore for now
|
||||
* Sun Nov 06 2005 - schwab@suse.de
|
||||
- Update to coreutils 5.93.
|
||||
* Wed Nov 02 2005 - schwab@suse.de
|
||||
- Update to coreutils 5.92.
|
||||
- Fix invalid use of va_list.
|
||||
- Add some fixes from cvs.
|
||||
* Thu Oct 20 2005 - schwab@suse.de
|
||||
- Reenable DEFAULT_POSIX2_VERSION.
|
||||
* Wed Oct 19 2005 - agruen@suse.de
|
||||
- Add acl and xattr patches.
|
||||
* Mon Oct 17 2005 - schwab@suse.de
|
||||
- Update to coreutils 5.91.
|
||||
* Sat Oct 01 2005 - schwab@suse.de
|
||||
- Update to coreutils 5.90.
|
||||
- Disable acl patches for now.
|
||||
* Sun Sep 25 2005 - schwab@suse.de
|
||||
- Fix warning.
|
||||
* Wed Aug 24 2005 - werner@suse.de
|
||||
- Let `su' handle /sbin and /usr/sbin in path
|
||||
* Mon Aug 01 2005 - kukuk@suse.de
|
||||
- And yet another uninitialized variable fix.
|
||||
* Fri Jul 29 2005 - schwab@suse.de
|
||||
- Fix another uninitialized variable.
|
||||
* Wed Jul 06 2005 - schwab@suse.de
|
||||
- Fix uninitialized variable.
|
||||
* Mon Jul 04 2005 - schwab@suse.de
|
||||
- Update i18n patch.
|
||||
* Mon Jun 20 2005 - schwab@suse.de
|
||||
- Fix last change.
|
||||
* Wed Jun 15 2005 - kukuk@suse.de
|
||||
- Compile/link su with -fpie/-pie
|
||||
* Sat May 21 2005 - kukuk@suse.de
|
||||
- Add support for /etc/default/su
|
||||
* Mon May 02 2005 - kukuk@suse.de
|
||||
- Don't overwrite PATH if su is called with "-" option.
|
||||
* Wed Mar 02 2005 - schwab@suse.de
|
||||
- Fix merge error [#67103].
|
||||
* Mon Feb 28 2005 - schwab@suse.de
|
||||
- Call pam_getenvlist before pam_end.
|
||||
* Mon Feb 28 2005 - schwab@suse.de
|
||||
- Link su to sux [#66830].
|
||||
* Wed Feb 02 2005 - schwab@suse.de
|
||||
- Handle xfs and jfs in stat [#50415].
|
||||
* Wed Feb 02 2005 - schwab@suse.de
|
||||
- Handle subfs like autofs.
|
||||
* Tue Jan 25 2005 - schwab@suse.de
|
||||
- Fix path_concat.
|
||||
* Thu Jan 20 2005 - schwab@suse.de
|
||||
- Use pam_xauth [#42238].
|
||||
* Fri Jan 14 2005 - schwab@suse.de
|
||||
- Fix merge error [#49853].
|
||||
* Tue Jan 11 2005 - schwab@suse.de
|
||||
- Update to coreutils 5.3.0.
|
||||
* Mon Nov 08 2004 - kukuk@suse.de
|
||||
- Use common-* PAM config files for su PAM configuration
|
||||
* Mon Oct 25 2004 - schwab@suse.de
|
||||
- Fix last change.
|
||||
- Fix selinux patch.
|
||||
* Wed Oct 20 2004 - ro@suse.de
|
||||
- remove no language support (nb is already there)
|
||||
* Sat Oct 02 2004 - agruen@suse.de
|
||||
- #46609: Fix chown and chgrp utilities for uid == (uid_t) -1 and
|
||||
gid == (gid_t) -1 case.
|
||||
- Add missing #include to have NULL defined in lib/acl.c
|
||||
* Fri Sep 10 2004 - schwab@suse.de
|
||||
- Fix uninitialized variable [#44929].
|
||||
- Fix selinux patch.
|
||||
* Wed Aug 25 2004 - schwab@suse.de
|
||||
- Fix hardlink accounting patch.
|
||||
* Mon May 24 2004 - schwab@suse.de
|
||||
- Update testsuite for change in chown.
|
||||
* Mon May 24 2004 - schwab@suse.de
|
||||
- Precompute length in caller of ismbblank to avoid quadratic behaviour
|
||||
[#40741].
|
||||
* Mon May 17 2004 - schwab@suse.de
|
||||
- Fix handling of symlinks in chown [#40691].
|
||||
* Sat Apr 17 2004 - schwab@suse.de
|
||||
- Pacify autobuild.
|
||||
* Fri Apr 02 2004 - schwab@suse.de
|
||||
- Add support for IUTF8 in stty.
|
||||
* Tue Mar 30 2004 - schwab@suse.de
|
||||
- Fix merge error in selinux patch [#37431].
|
||||
* Mon Mar 29 2004 - schwab@suse.de
|
||||
- Fix hardlink accounting in du.
|
||||
* Mon Mar 22 2004 - schwab@suse.de
|
||||
- Fix race in the testsuite.
|
||||
* Mon Mar 15 2004 - kukuk@suse.de
|
||||
- Update SELinux patch to new libselinux interface
|
||||
* Mon Mar 15 2004 - schwab@suse.de
|
||||
- Fix date parsing.
|
||||
* Sat Mar 13 2004 - schwab@suse.de
|
||||
- Update to coreutils 5.2.1.
|
||||
* Includes mv fix.
|
||||
* Fix sparse handling in cp.
|
||||
* Fix descriptor leak in nohup.
|
||||
* Fix POSIX issues in expr.
|
||||
* Always allow user.group in chown.
|
||||
* Fri Mar 12 2004 - schwab@suse.de
|
||||
- Fix sysinfo patch [#35337].
|
||||
* Fri Mar 12 2004 - schwab@suse.de
|
||||
- Fix preserving links in mv.
|
||||
* Wed Mar 03 2004 - schwab@suse.de
|
||||
- Fix help output from mkdir.
|
||||
* Fri Feb 20 2004 - schwab@suse.de
|
||||
- Update to coreutils 5.2.0.
|
||||
* Mon Feb 09 2004 - schwab@suse.de
|
||||
- Update to coreutils 5.1.3.
|
||||
* Mon Feb 02 2004 - agruen@suse.de
|
||||
- Update acl and xattr patches, and add some Changelog text.
|
||||
* Mon Jan 26 2004 - schwab@suse.de
|
||||
- Update to coreutils 5.1.2.
|
||||
* Fri Jan 23 2004 - schwab@suse.de
|
||||
- Don't link [ to test.
|
||||
* Mon Jan 19 2004 - schwab@suse.de
|
||||
- Update to coreutils 5.1.1.
|
||||
- Default to POSIX.2-1992.
|
||||
* Fri Jan 16 2004 - kukuk@suse.de
|
||||
- Add pam-devel to neededforbuild
|
||||
* Fri Jan 09 2004 - schwab@suse.de
|
||||
- Fix spurious test failure.
|
||||
* Thu Jan 08 2004 - schwab@suse.de
|
||||
- Update to coreutils 5.1.0.
|
||||
* Fri Dec 12 2003 - schwab@suse.de
|
||||
- Fix use of AC_SEARCH_LIBS.
|
||||
* Tue Dec 09 2003 - schwab@suse.de
|
||||
- Cleanup SELinux patch.
|
||||
* Tue Dec 09 2003 - kukuk@suse.de
|
||||
- Add SELinux patch.
|
||||
* Wed Nov 26 2003 - schwab@suse.de
|
||||
- Fix sorting of months in multibyte case [#33299].
|
||||
* Wed Oct 22 2003 - schwab@suse.de
|
||||
- Fix building without extended attributes.
|
||||
* Wed Oct 15 2003 - schwab@suse.de
|
||||
- Cleanup sysinfo patch.
|
||||
* Fri Sep 19 2003 - kukuk@suse.de
|
||||
- Add missing textutil to Provides
|
||||
* Mon Aug 25 2003 - agruen@suse.de
|
||||
- Fix uname command to report reasonable processor and platform
|
||||
information (coreutils-sysinfo.diff: based on similar RedHat
|
||||
patch).
|
||||
* Mon Jul 21 2003 - schwab@suse.de
|
||||
- Fix typo in i18n patch for join.
|
||||
* Fri Jul 18 2003 - schwab@suse.de
|
||||
- Avoid abort in sort on inconsistent locales [#26506].
|
||||
* Tue Jul 15 2003 - okir@suse.de
|
||||
- make su export variables declared via pam_putenv
|
||||
* Wed May 28 2003 - kukuk@suse.de
|
||||
- PAM fixes for su:
|
||||
- Move pam_open_session call before dropping privilegs, session
|
||||
management needs max. possible credentials and needs to be done
|
||||
before we change into the home directory of the user.
|
||||
- Don't set PAM_TTY and PAM_RUSER to fake names.
|
||||
- Use conversion function from libpam_misc.
|
||||
* Fri May 16 2003 - schwab@suse.de
|
||||
- Fix exit status from su.
|
||||
* Thu Apr 24 2003 - ro@suse.de
|
||||
- fix head calling syntax
|
||||
* Mon Apr 07 2003 - schwab@suse.de
|
||||
- Only delete info entries when removing last version.
|
||||
* Fri Apr 04 2003 - schwab@suse.de
|
||||
- Update to coreutils 5.0.
|
||||
* Mon Mar 31 2003 - schwab@suse.de
|
||||
- Update to coreutils 4.5.12.
|
||||
* Thu Mar 20 2003 - schwab@suse.de
|
||||
- Update to coreutils 4.5.11.
|
||||
* Mon Mar 10 2003 - schwab@suse.de
|
||||
- Fix LFS bug in du [#24960].
|
||||
* Thu Feb 27 2003 - schwab@suse.de
|
||||
- Readd textutils i18n patches.
|
||||
* Thu Feb 27 2003 - agruen@suse.de
|
||||
- Per hint from Andreas Schwab, don't use awk in autoconf. (The
|
||||
improved test is simpler, too.)
|
||||
* Thu Feb 27 2003 - agruen@suse.de
|
||||
- Fix autoconf test for attr_copy_file that caused all binaries
|
||||
to be linked needlessly against libattr.so.
|
||||
* Tue Feb 25 2003 - agruen@suse.de
|
||||
- Extended attribute copying: Use the newly exported
|
||||
attr_copy_check_permissions() callback exported by libattr.so,
|
||||
so that the EA copying done by coreutils is consistent with
|
||||
other apps [#24244].
|
||||
* Mon Feb 24 2003 - schwab@suse.de
|
||||
- Update to coreutils 4.5.8.
|
||||
* Fixes bugs in du.
|
||||
* Mon Feb 17 2003 - agruen@suse.de
|
||||
- Add extended attribute copying patch: Affects cp, mv, install.
|
||||
See the cp manual page for details on the changes in cp. The
|
||||
mv utility always tries to copy extended attributes; install
|
||||
never does.
|
||||
* Mon Feb 10 2003 - schwab@suse.de
|
||||
- Update to coreutils 4.5.7.
|
||||
* Fri Feb 07 2003 - kukuk@suse.de
|
||||
- Use pam_unix2.so instead of pam_unix.so, use same rules for
|
||||
password changing as passwd.
|
||||
* Thu Feb 06 2003 - schwab@suse.de
|
||||
- Use %%install_info.
|
||||
* Thu Feb 06 2003 - schwab@suse.de
|
||||
- Update to coreutils 4.5.6.
|
||||
* Mon Feb 03 2003 - schwab@suse.de
|
||||
- Package created, combining textutils, sh-utils and fileutils.
|
11
getcwd.diff
Normal file
11
getcwd.diff
Normal file
@ -0,0 +1,11 @@
|
||||
--- lib/getcwd.c
|
||||
+++ lib/getcwd.c
|
||||
@@ -137,7 +137,7 @@
|
||||
size_t allocated = size;
|
||||
size_t used;
|
||||
|
||||
-#if HAVE_PARTLY_WORKING_GETCWD && !defined AT_FDCWD
|
||||
+#if HAVE_PARTLY_WORKING_GETCWD
|
||||
/* The system getcwd works, except it sometimes fails when it
|
||||
shouldn't, setting errno to ERANGE, ENAMETOOLONG, or ENOENT. If
|
||||
AT_FDCWD is not defined, the algorithm below is O(N**2) and this
|
12
i18n-infloop.diff
Normal file
12
i18n-infloop.diff
Normal file
@ -0,0 +1,12 @@
|
||||
--- src/sort.c
|
||||
+++ src/sort.c
|
||||
@@ -1838,7 +1838,8 @@
|
||||
if (MBLENGTH == (size_t)-2 || MBLENGTH == (size_t)-1) \
|
||||
STATE = state_bak; \
|
||||
if (!ignore) \
|
||||
- COPY[NEW_LEN++] = TEXT[i++]; \
|
||||
+ COPY[NEW_LEN++] = TEXT[i]; \
|
||||
+ i++; \
|
||||
continue; \
|
||||
} \
|
||||
\
|
25
i18n-uninit.diff
Normal file
25
i18n-uninit.diff
Normal file
@ -0,0 +1,25 @@
|
||||
--- src/cut.c
|
||||
+++ src/cut.c
|
||||
@@ -869,7 +869,10 @@
|
||||
c = getc (stream);
|
||||
empty_input = (c == EOF);
|
||||
if (c != EOF)
|
||||
- ungetc (c, stream);
|
||||
+ {
|
||||
+ ungetc (c, stream);
|
||||
+ wc = 0;
|
||||
+ }
|
||||
else
|
||||
wc = WEOF;
|
||||
|
||||
--- src/expand.c
|
||||
+++ src/expand.c
|
||||
@@ -414,7 +414,7 @@
|
||||
for (;;)
|
||||
{
|
||||
/* Input character, or EOF. */
|
||||
- wint_t wc;
|
||||
+ wint_t wc = 0;
|
||||
|
||||
/* If true, perform translations. */
|
||||
bool convert = true;
|
47
invalid-ids.diff
Normal file
47
invalid-ids.diff
Normal file
@ -0,0 +1,47 @@
|
||||
While uid_t and gid_t are both unsigned, the values (uid_t) -1 and
|
||||
(gid_t) -1 are reserved. A uid or gid argument of -1 to the chown(2)
|
||||
system call means to leave the uid/gid unchanged. Catch this case
|
||||
so that trying to set a uid or gid to -1 will result in an error.
|
||||
|
||||
Test cases:
|
||||
|
||||
chown 4294967295 file
|
||||
chown :4294967295 file
|
||||
chgrp 4294967295 file
|
||||
|
||||
Andreas Gruenbacher <agruen@suse.de>
|
||||
|
||||
Index: coreutils-5.2.1/lib/userspec.c
|
||||
================================================================================
|
||||
--- coreutils-5.3.0/lib/userspec.c
|
||||
+++ coreutils-5.3.0/lib/userspec.c
|
||||
@@ -184,7 +184,7 @@
|
||||
{
|
||||
unsigned long int tmp;
|
||||
if (xstrtoul (u, NULL, 10, &tmp, "") == LONGINT_OK
|
||||
- && tmp <= MAXUID)
|
||||
+ && tmp <= MAXUID && tmp != (uid_t) -1)
|
||||
unum = tmp;
|
||||
else
|
||||
error_msg = E_invalid_user;
|
||||
@@ -214,7 +214,8 @@
|
||||
if (grp == NULL)
|
||||
{
|
||||
unsigned long int tmp;
|
||||
- if (xstrtoul (g, NULL, 10, &tmp, "") == LONGINT_OK && tmp <= MAXGID)
|
||||
+ if (xstrtoul (g, NULL, 10, &tmp, "") == LONGINT_OK && tmp <= MAXGID
|
||||
+ && tmp != (gid_t) -1)
|
||||
gnum = tmp;
|
||||
else
|
||||
error_msg = E_invalid_group;
|
||||
--- coreutils-5.3.0/src/chgrp.c
|
||||
+++ coreutils-5.3.0/src/chgrp.c
|
||||
@@ -91,7 +91,7 @@
|
||||
{
|
||||
unsigned long int tmp;
|
||||
if (! (xstrtoul (name, NULL, 10, &tmp, "") == LONGINT_OK
|
||||
- && tmp <= GID_T_MAX))
|
||||
+ && tmp <= GID_T_MAX && tmp != (gid_t) -1))
|
||||
error (EXIT_FAILURE, 0, _("invalid group %s"), quote (name));
|
||||
gid = tmp;
|
||||
}
|
10
no-no.diff
Normal file
10
no-no.diff
Normal file
@ -0,0 +1,10 @@
|
||||
--- po/LINGUAS
|
||||
+++ po/LINGUAS
|
||||
@@ -19,7 +19,6 @@
|
||||
ms
|
||||
nb
|
||||
nl
|
||||
-no
|
||||
pl
|
||||
pt
|
||||
pt_BR
|
11
su.default
Normal file
11
su.default
Normal file
@ -0,0 +1,11 @@
|
||||
# Per default, only "su -" will set a new PATH.
|
||||
# If this variable is changed to "yes" (default is "no"),
|
||||
# every su call will overwrite the PATH variable.
|
||||
ALWAYS_SET_PATH=no
|
||||
|
||||
# Default path.
|
||||
PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin
|
||||
|
||||
# Default path for a user invoking su to root.
|
||||
SUPATH=/usr/sbin:/bin:/usr/bin:/sbin:/usr/X11R6/bin
|
||||
|
Loading…
Reference in New Issue
Block a user