Hello community, here is the log from the commit of package coreutils checked in at Fri Nov 30 16:07:09 CET 2007. -------- --- coreutils/coreutils.changes 2007-07-23 15:15:24.000000000 +0200 +++ /mounts/work_src_done/STABLE/coreutils/coreutils.changes 2007-11-29 14:30:01.000000000 +0100 @@ -1,0 +2,124 @@ +Thu Nov 29 14:28:26 CET 2007 - schwab@suse.de + +- Update to coreutils-6.9.89.48 snapshot. + ** New programs + arch: equivalent to uname -m, not installed by default + But don't install this program on Solaris systems. + mktemp: create a temporary file or directory (or names) + ** Programs no longer installed by default + hostname, su + ** Changes in behavior + cp, by default, refuses to copy through a dangling destination symlink + Set POSIXLY_CORRECT if you require the old, risk-prone behavior. + pr -F no longer suppresses the footer or the first two blank lines in + the header. This is for compatibility with BSD and POSIX. + tr now warns about an unescaped backslash at end of string. + The tr from coreutils-5.2.1 and earlier would fail for such usage, + and Solaris' tr ignores that final byte. + ** New features + Add SELinux support (FIXME: add details here) + cp -p tries to preserve the GID of a file even if preserving the UID + is not possible. + uniq accepts a new option: --zero-terminated (-z). As with the sort + option of the same name, this makes uniq consume and produce + NUL-terminated lines rather than newline-terminated lines. + wc no longer warns about character decoding errors in multibyte locales. + This means for example that "wc /bin/sh" now produces normal output + (though the word count will have no real meaning) rather than many + error messages. + ** New build options + By default, "make install" no longer attempts to install (or even build) su. + To change that, use ./configure --enable-install-program=su. + If you also want to install the new "arch" program, do this: + ./configure --enable-install-program=arch,su. + You can inhibit the compilation and installation of selected programs + at configure time. For example, to avoid installing "hostname" and + "uptime", use ./configure --enable-no-install-program=hostname,uptime + Note: currently, "make check" passes, even when arch and su are not + built (that's the new default). However, if you inhibit the building + and installation of other programs, don't be surprised if some parts + of "make check" fail. + ** Remove deprecated options + df no longer accepts the --kilobytes option. + du no longer accepts the --kilobytes or --megabytes options. + ls no longer accepts the --kilobytes option. + ptx longer accepts the --copyright option. + who no longer accepts -i or --idle. + ** Improved robustness + ln -f can no longer silently clobber a just-created hard link. + In some cases, ln could be seen as being responsible for data loss. + For example, given directories a, b, c, and files a/f and b/f, we + should be able to do this safely: ln -f a/f b/f c && rm -f a/f b/f + However, before this change, ln would succeed, and thus cause the + loss of the contents of a/f. + stty no longer silently accepts certain invalid hex values + in its 35-colon commmand-line argument + ** Bug fixes + chmod no longer ignores a dangling symlink. Now, chmod fails + with a diagnostic saying that it cannot operate on such a file. + [bug introduced in coreutils-5.1.0] + cp attempts to read a regular file, even if stat says it is empty. + Before, "cp /proc/cpuinfo c" would create an empty file when the kernel + reports stat.st_size == 0, while "cat /proc/cpuinfo > c" would "work", + and create a nonempty one. [bug introduced in coreutils-6.0] + cp no longer fails to write through a dangling symlink + [bug introduced in coreutils-6.7]. cp --parents no + longer mishandles symlinks to directories in file name + components in the source, e.g., "cp --parents symlink/a/b + d" no longer fails. Also, 'cp' no longer considers a + destination symlink to be the same as the referenced file when + copying links or making backups. For example, if SYM is a symlink + to FILE, "cp -l FILE SYM" now reports an error instead of silently + doing nothing. The behavior of 'cp' is now better documented when + the destination is a symlink. + "cp -i --update older newer" no longer prompts; same for mv + "cp -i" now detects read errors on standard input, and no longer consumes + too much seekable input; same for ln, install, mv, and rm. + cut now diagnoses a range starting with zero (e.g., -f 0-2) as invalid; + before, it would treat it as if it started with 1 (-f 1-2). + "cut -f 2-0" now fails; before, it was equivalent to "cut -f 2-" + cut now diagnoses the '-' in "cut -f -" as an invalid range, rather + than interpreting it as the unlimited range, "1-". + date -d now accepts strings of the form e.g., 'YYYYMMDD +N days', + in addition to the usual 'YYYYMMDD N days'. + du -s now includes the size of any stat'able-but-inaccessible directory + in the total size. + du (without -s) prints whatever it knows of the size of an inaccessible + directory. Before, du would print nothing for such a directory. + ls -x DIR would sometimes output the wrong string in place of the + first entry. [introduced in coreutils-6.8] + ls --color would mistakenly color a dangling symlink as if it were + a regular symlink. This would happen only when the dangling symlink + was not a command-line argument and in a directory with d_type support. + [introduced in coreutils-6.0] + ls --color, (with a custom LS_COLORS envvar value including the + ln=target attribute) would mistakenly output the string "target" + before the name of each symlink. [introduced in coreutils-6.0] + od's --skip (-j) option now works even when the kernel says that a + nonempty regular file has stat.st_size = 0. This happens at least + with files in /proc and linux-2.6.22. + "od -j L FILE" had a bug: when the number of bytes to skip, L, is exactly + the same as the length of FILE, od would skip *no* bytes. When the number + of bytes to skip is exactly the sum of the lengths of the first N files, + od would skip only the first N-1 files. [introduced in textutils-2.0.9] + ./printf %.10000000f 1 could get an internal ENOMEM error and generate + no output, yet erroneously exit with status 0. Now it diagnoses the error + and exits with nonzero status. [present in initial implementation] + seq no longer mishandles obvious cases like "seq 0 0.000001 0.000003", + so workarounds like "seq 0 0.000001 0.0000031" are no longer needed. + seq would mistakenly reject some valid format strings containing %%, + and would mistakenly accept some invalid ones. e.g., %g%% and %%g, resp. + "seq .1 .1" would mistakenly generate no output on some systems + Obsolete sort usage with an invalid ordering-option character, e.g., + "env _POSIX2_VERSION=199209 sort +1x" no longer makes sort free an + invalid pointer [introduced in coreutils-6.5] + sorting very long lines (relative to the amount of available memory) + no longer provokes unaligned memory access + split --line-bytes=N (-C N) no longer creates an empty file + [this bug is present at least as far back as textutils-1.22 (Jan, 1997)] + tr -c no longer aborts when translating with Set2 larger than the + complement of Set1. [present in the original version, in 1992] + tr no longer rejects an unmatched [:lower:] or [:upper:] in SET1. + [present in the original version] + +------------------------------------------------------------------- Old: ---- coreutils-6.9.diff coreutils-6.9.tar.bz2 fchownat.diff futimens.diff ls-x.diff misalign.diff no-no.diff New: ---- coreutils-6.9.89.48-96961.tar.lzma coreutils-6.9.89.48.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ coreutils.spec ++++++ --- /var/tmp/diff_new_pack.my4549/_old 2007-11-30 16:06:24.000000000 +0100 +++ /var/tmp/diff_new_pack.my4549/_new 2007-11-30 16:06:24.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package coreutils (Version 6.9) +# spec file for package coreutils (Version 6.9.89.48) # # Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -8,22 +8,22 @@ # 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/ +BuildRequires: help2man libacl-devel lzma pam-devel +Url: http://www.gnu.org/software/coreutils/ License: GPL v2 or later Group: System/Base -Provides: fileutils sh-utils stat textutils -Obsoletes: fileutils sh-utils stat textutils +Provides: fileutils sh-utils stat textutils mktemp +Obsoletes: fileutils sh-utils stat textutils mktemp Obsoletes: libselinux <= 1.23.11-3 libselinux-32bit >= 9 libselinux-64bit = 9 libselinux-x86 = 9 -Autoreqprov: on +AutoReqProv: on PreReq: %{install_info_prereq} -Version: 6.9 -Release: 30 +Version: 6.9.89.48 +Release: 1 Summary: GNU Core Utilities -Source: coreutils-%{version}.tar.bz2 +%define treeish 96961 +Source: coreutils-%{version}-%treeish.tar.lzma Source1: su.pamd Source2: su.default Patch: coreutils-%{version}.diff @@ -32,15 +32,10 @@ Patch4: coreutils-5.3.0-i18n-0.1.patch Patch5: i18n-uninit.diff Patch6: i18n-infloop.diff -Patch7: fchownat.diff Patch8: coreutils-sysinfo.diff -Patch9: ls-x.diff -Patch10: futimens.diff Patch11: i18n-monthsort.diff Patch12: i18n-random.diff -Patch13: misalign.diff Patch16: invalid-ids.diff -Patch17: no-no.diff Patch20: coreutils-6.8-su.diff Patch21: coreutils-6.8.0-pie.diff Patch22: coreutils-5.3.0-sbin4su.diff @@ -50,12 +45,13 @@ 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 +[ base64 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 groups head id install 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 sha224sum sha256sum +sha384sum sha512sum shred shuf sleep sort split stat stty su sum sux +sync tac tail tee test touch tr true tsort tty uname unexpand uniq unlink uptime users vdir wc who whoami yes @@ -97,33 +93,29 @@ Ulrich Drepper <drepper@redhat.com> %prep -%setup -q +%setup -q -n %name-%version-%treeish %patch1 -p1 %patch4 -p1 %patch5 %patch6 %patch -%patch7 %patch8 -p1 -%patch9 -p1 -chmod +x tests/ls/x-option -%patch10 %patch11 %patch12 -%patch13 -p1 %patch16 -p1 -%patch17 %patch20 %patch21 %patch22 -rm -f po/no.* %build AUTOPOINT=true autoreconf -fi +gl_cv_func_printf_directive_n=yes \ ./configure CFLAGS="$RPM_OPT_FLAGS -Wall" \ - DEFAULT_POSIX2_VERSION=199209 \ --prefix=%{_prefix} --mandir=%{_mandir} \ - --infodir=%{_infodir} --without-included-regex + --infodir=%{_infodir} --without-included-regex \ + --enable-install-program=arch,su \ + --enable-no-install-program=hostid \ + DEFAULT_POSIX2_VERSION=199209 make %{?jobs:-j%jobs} PAMLIBS="-lpam -ldl" if test $EUID -eq 0; then su nobody -c make check @@ -141,7 +133,7 @@ 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 +for i in arch basename cat chgrp chmod chown cp date dd df echo false kill ln ls mkdir mknod mktemp 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) ' @@ -154,10 +146,6 @@ 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 @@ -182,6 +170,127 @@ %dir %{_prefix}/share/locale/*/LC_TIME %changelog +* Thu Nov 29 2007 - schwab@suse.de +- Update to coreutils-6.9.89.48 snapshot. + ** New programs + arch: equivalent to uname -m, not installed by default + But don't install this program on Solaris systems. + mktemp: create a temporary file or directory (or names) + ** Programs no longer installed by default + hostname, su + ** Changes in behavior + cp, by default, refuses to copy through a dangling destination symlink + Set POSIXLY_CORRECT if you require the old, risk-prone behavior. + pr -F no longer suppresses the footer or the first two blank lines in + the header. This is for compatibility with BSD and POSIX. + tr now warns about an unescaped backslash at end of string. + The tr from coreutils-5.2.1 and earlier would fail for such usage, + and Solaris' tr ignores that final byte. + ** New features + Add SELinux support (FIXME: add details here) + cp -p tries to preserve the GID of a file even if preserving the UID + is not possible. + uniq accepts a new option: --zero-terminated (-z). As with the sort + option of the same name, this makes uniq consume and produce + NUL-terminated lines rather than newline-terminated lines. + wc no longer warns about character decoding errors in multibyte locales. + This means for example that "wc /bin/sh" now produces normal output + (though the word count will have no real meaning) rather than many + error messages. + ** New build options + By default, "make install" no longer attempts to install (or even build) su. + To change that, use ./configure --enable-install-program=su. + If you also want to install the new "arch" program, do this: + ./configure --enable-install-program=arch,su. + You can inhibit the compilation and installation of selected programs + at configure time. For example, to avoid installing "hostname" and + "uptime", use ./configure --enable-no-install-program=hostname,uptime + Note: currently, "make check" passes, even when arch and su are not + built (that's the new default). However, if you inhibit the building + and installation of other programs, don't be surprised if some parts + of "make check" fail. + ** Remove deprecated options + df no longer accepts the --kilobytes option. + du no longer accepts the --kilobytes or --megabytes options. + ls no longer accepts the --kilobytes option. + ptx longer accepts the --copyright option. + who no longer accepts -i or --idle. + ** Improved robustness + ln -f can no longer silently clobber a just-created hard link. + In some cases, ln could be seen as being responsible for data loss. + For example, given directories a, b, c, and files a/f and b/f, we + should be able to do this safely: ln -f a/f b/f c && rm -f a/f b/f + However, before this change, ln would succeed, and thus cause the + loss of the contents of a/f. + stty no longer silently accepts certain invalid hex values + in its 35-colon commmand-line argument + ** Bug fixes + chmod no longer ignores a dangling symlink. Now, chmod fails + with a diagnostic saying that it cannot operate on such a file. + [bug introduced in coreutils-5.1.0] + cp attempts to read a regular file, even if stat says it is empty. + Before, "cp /proc/cpuinfo c" would create an empty file when the kernel + reports stat.st_size == 0, while "cat /proc/cpuinfo > c" would "work", + and create a nonempty one. [bug introduced in coreutils-6.0] + cp no longer fails to write through a dangling symlink + [bug introduced in coreutils-6.7]. cp --parents no + longer mishandles symlinks to directories in file name + components in the source, e.g., "cp --parents symlink/a/b + d" no longer fails. Also, 'cp' no longer considers a + destination symlink to be the same as the referenced file when + copying links or making backups. For example, if SYM is a symlink + to FILE, "cp -l FILE SYM" now reports an error instead of silently + doing nothing. The behavior of 'cp' is now better documented when + the destination is a symlink. + "cp -i --update older newer" no longer prompts; same for mv + "cp -i" now detects read errors on standard input, and no longer consumes + too much seekable input; same for ln, install, mv, and rm. + cut now diagnoses a range starting with zero (e.g., -f 0-2) as invalid; + before, it would treat it as if it started with 1 (-f 1-2). + "cut -f 2-0" now fails; before, it was equivalent to "cut -f 2-" + cut now diagnoses the '-' in "cut -f -" as an invalid range, rather + than interpreting it as the unlimited range, "1-". + date -d now accepts strings of the form e.g., 'YYYYMMDD +N days', + in addition to the usual 'YYYYMMDD N days'. + du -s now includes the size of any stat'able-but-inaccessible directory + in the total size. + du (without -s) prints whatever it knows of the size of an inaccessible + directory. Before, du would print nothing for such a directory. + ls -x DIR would sometimes output the wrong string in place of the + first entry. [introduced in coreutils-6.8] + ls --color would mistakenly color a dangling symlink as if it were + a regular symlink. This would happen only when the dangling symlink + was not a command-line argument and in a directory with d_type support. + [introduced in coreutils-6.0] + ls --color, (with a custom LS_COLORS envvar value including the + ln=target attribute) would mistakenly output the string "target" + before the name of each symlink. [introduced in coreutils-6.0] + od's --skip (-j) option now works even when the kernel says that a + nonempty regular file has stat.st_size = 0. This happens at least + with files in /proc and linux-2.6.22. + "od -j L FILE" had a bug: when the number of bytes to skip, L, is exactly + the same as the length of FILE, od would skip *no* bytes. When the number + of bytes to skip is exactly the sum of the lengths of the first N files, + od would skip only the first N-1 files. [introduced in textutils-2.0.9] + ./printf %%.10000000f 1 could get an internal ENOMEM error and generate + no output, yet erroneously exit with status 0. Now it diagnoses the error + and exits with nonzero status. [present in initial implementation] + seq no longer mishandles obvious cases like "seq 0 0.000001 0.000003", + so workarounds like "seq 0 0.000001 0.0000031" are no longer needed. + seq would mistakenly reject some valid format strings containing %%, + and would mistakenly accept some invalid ones. e.g., %%g%% and %%g, resp. + "seq .1 .1" would mistakenly generate no output on some systems + Obsolete sort usage with an invalid ordering-option character, e.g., + "env _POSIX2_VERSION=199209 sort +1x" no longer makes sort free an + invalid pointer [introduced in coreutils-6.5] + sorting very long lines (relative to the amount of available memory) + no longer provokes unaligned memory access + split --line-bytes=N (-C N) no longer creates an empty file + [this bug is present at least as far back as textutils-1.22 (Jan, 1997)] + tr -c no longer aborts when translating with Set2 larger than the + complement of Set1. [present in the original version, in 1992] + tr no longer rejects an unmatched [:lower:] or [:upper:] in SET1. + [present in the original version] * Mon Jul 23 2007 - schwab@suse.de - Fix random sort. - Fix invalid free. ++++++ coreutils-5.3.0-i18n-0.1.patch ++++++ ++++ 1202 lines (skipped) ++++ between coreutils/coreutils-5.3.0-i18n-0.1.patch ++++ and /mounts/work_src_done/STABLE/coreutils/coreutils-5.3.0-i18n-0.1.patch ++++++ coreutils-6.8-su.diff ++++++ --- /var/tmp/diff_new_pack.my4549/_old 2007-11-30 16:06:24.000000000 +0100 +++ /var/tmp/diff_new_pack.my4549/_new 2007-11-30 16:06:24.000000000 +0100 @@ -1,8 +1,31 @@ Index: src/Makefile.am -=================================================================== ---- src/Makefile.am.orig +================================================================================ +--- configure.ac ++++ configure.ac +@@ -46,6 +46,20 @@ coreutils_MACROS + + AC_FUNC_FORK + ++AC_ARG_ENABLE(pam, AS_HELP_STRING([--disable-pam], ++ [Enable PAM support in su (default=auto)]), , [enable_pam=yes]) ++if test "x$enable_pam" != xno; then ++ AC_CHECK_LIB([pam], [pam_start], [enable_pam=yes], [enable_pam=no]) ++ AC_CHECK_LIB([pam_misc], [misc_conv], [:], [enable_pam=no]) ++ if test "x$enable_pam" != xno; then ++ AC_DEFINE(USE_PAM, 1, [Define if you want to use PAM]) ++ PAM_LIBS="-lpam -lpam_misc" ++ AC_SUBST(PAM_LIBS) ++ fi ++fi ++AC_MSG_CHECKING([whether to enable PAM support in su]) ++AC_MSG_RESULT([$enable_pam]) ++ + optional_bin_progs= + AC_CHECK_FUNCS(uname, + gl_ADD_PROG([optional_bin_progs], [uname])) +--- src/Makefile.am +++ src/Makefile.am -@@ -102,7 +102,8 @@ tail_LDADD = $(nanosec_libs) +@@ -124,7 +124,8 @@ tail_LDADD = $(nanosec_libs) # If necessary, add -lm to resolve use of pow in lib/strtod.c. uptime_LDADD = $(LDADD) $(POW_LIB) $(GETLOADAVG_LIBS) @@ -10,11 +33,9 @@ +su_SOURCES = su.c getdef.c +su_LDADD = $(LDADD) $(LIB_CRYPT) $(PAM_LIBS) - dir_LDADD += $(LIB_ACL) - ls_LDADD += $(LIB_ACL) -Index: src/getdef.c -=================================================================== ---- /dev/null + dir_LDADD += $(LIB_ACL_TRIVIAL) $(LIB_ACL) + ls_LDADD += $(LIB_ACL_TRIVIAL) $(LIB_ACL) +--- src/getdef.c +++ src/getdef.c @@ -0,0 +1,257 @@ +/* Copyright (C) 2003, 2004, 2005 Thorsten Kukuk @@ -274,9 +295,7 @@ +} + +#endif -Index: src/getdef.h -=================================================================== ---- /dev/null +--- src/getdef.h +++ src/getdef.h @@ -0,0 +1,29 @@ +/* Copyright (C) 2003, 2005 Thorsten Kukuk @@ -308,11 +327,9 @@ +extern void free_getdef_data (void); + +#endif /* _GETDEF_H_ */ -Index: src/su.c -=================================================================== ---- src/su.c.orig +--- src/su.c +++ src/su.c -@@ -38,6 +38,16 @@ +@@ -37,6 +37,16 @@ restricts who can su to UID 0 accounts. RMS considers that to be fascist. @@ -329,7 +346,7 @@ 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 +63,13 @@ +@@ -52,6 +62,13 @@ #include <sys/types.h> #include <pwd.h> #include <grp.h> @@ -343,7 +360,7 @@ /* Hide any system prototype for getusershell. This is necessary because some Cray systems have a conflicting -@@ -66,6 +83,9 @@ +@@ -65,6 +82,9 @@ #if HAVE_SYSLOG_H && HAVE_SYSLOG # include <syslog.h> @@ -353,7 +370,7 @@ #else # undef SYSLOG_SUCCESS # undef SYSLOG_FAILURE -@@ -99,19 +119,13 @@ +@@ -98,19 +118,13 @@ # include <paths.h> #endif @@ -377,7 +394,7 @@ /* The shell to run if none is given in the user's passwd entry. */ #define DEFAULT_SHELL "/bin/sh" -@@ -119,13 +133,22 @@ +@@ -118,13 +132,22 @@ /* The user to become if none is specified. */ #define DEFAULT_USER "root" @@ -400,7 +417,7 @@ static void run_shell (char const *, char const *, char **, size_t) ATTRIBUTE_NORETURN; -@@ -216,7 +239,163 @@ log_su (struct passwd const *pw, bool su +@@ -215,7 +238,163 @@ log_su (struct passwd const *pw, bool su } #endif @@ -470,7 +487,7 @@ + if (retval != PAM_SUCCESS) + { + cleanup_pam(retval); -+ error (EXIT_FAIL, 0, _("cannot not open session: %s"), ++ error (EXIT_FAILURE, 0, _("cannot not open session: %s"), + pam_strerror (pamh, retval)); + } + else @@ -564,7 +581,7 @@ 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 +403,52 @@ log_su (struct passwd const *pw, bool su +@@ -223,10 +402,52 @@ log_su (struct passwd const *pw, bool su static bool correct_password (const struct passwd *pw) { @@ -618,7 +635,7 @@ endspent (); if (sp) -@@ -248,6 +469,7 @@ correct_password (const struct passwd *p +@@ -247,6 +468,7 @@ correct_password (const struct passwd *p encrypted = crypt (unencrypted, correct); memset (unencrypted, 0, strlen (unencrypted)); return STREQ (encrypted, correct); @@ -626,7 +643,7 @@ } /* Update `environ' for the new shell based on PW, with SHELL being -@@ -272,8 +494,8 @@ modify_environment (const struct passwd +@@ -271,8 +493,8 @@ modify_environment (const struct passwd xsetenv ("USER", pw->pw_name); xsetenv ("LOGNAME", pw->pw_name); xsetenv ("PATH", (pw->pw_uid @@ -637,7 +654,7 @@ } else { -@@ -283,6 +505,12 @@ modify_environment (const struct passwd +@@ -282,6 +504,12 @@ modify_environment (const struct passwd { xsetenv ("HOME", pw->pw_dir); xsetenv ("SHELL", shell); @@ -650,13 +667,13 @@ if (pw->pw_uid) { xsetenv ("USER", pw->pw_name); -@@ -290,19 +518,41 @@ modify_environment (const struct passwd +@@ -289,19 +517,41 @@ modify_environment (const struct passwd } } } + +#ifdef USE_PAM -+ export_pamenv(); ++ export_pamenv (); +#endif } @@ -669,12 +686,12 @@ #ifdef HAVE_INITGROUPS errno = 0; if (initgroups (pw->pw_name, pw->pw_gid) == -1) -- error (EXIT_FAIL, errno, _("cannot set groups")); +- error (EXIT_FAILURE, errno, _("cannot set groups")); + { +#ifdef USE_PAM + cleanup_pam(PAM_ABORT); +#endif -+ error (EXIT_FAIL, errno, _("cannot set groups")); ++ error (EXIT_FAILURE, errno, _("cannot set groups")); + } endgrent (); #endif @@ -682,7 +699,7 @@ +#ifdef USE_PAM + retval = pam_setcred (pamh, PAM_ESTABLISH_CRED); + if (retval != PAM_SUCCESS) -+ error (EXIT_FAIL, 0, "%s", pam_strerror (pamh, retval)); ++ error (EXIT_FAILURE, 0, "%s", pam_strerror (pamh, retval)); + else + _pam_cred_established = 1; +#endif @@ -692,17 +709,17 @@ +change_identity (const struct passwd *pw) +{ if (setgid (pw->pw_gid)) - error (EXIT_FAIL, errno, _("cannot set group id")); + error (EXIT_FAILURE, errno, _("cannot set group id")); if (setuid (pw->pw_uid)) -@@ -495,6 +745,7 @@ main (int argc, char **argv) +@@ -494,6 +744,7 @@ main (int argc, char **argv) #ifdef SYSLOG_FAILURE log_su (pw, false); #endif + sleep (getdef_num ("FAIL_DELAY", 1)); - error (EXIT_FAIL, 0, _("incorrect password")); + error (EXIT_FAILURE, 0, _("incorrect password")); } #ifdef SYSLOG_SUCCESS -@@ -516,9 +767,21 @@ main (int argc, char **argv) +@@ -515,9 +766,21 @@ main (int argc, char **argv) shell = NULL; } shell = xstrdup (shell ? shell : pw->pw_shell); @@ -725,28 +742,3 @@ if (simulate_login && chdir (pw->pw_dir) != 0) error (0, errno, _("warning: cannot change directory to %s"), pw->pw_dir); -Index: configure.ac -=================================================================== ---- configure.ac.orig -+++ configure.ac -@@ -41,6 +41,20 @@ coreutils_MACROS - - AC_FUNC_FORK - -+AC_ARG_ENABLE(pam, AS_HELP_STRING([--disable-pam],dnl -+ [Enable PAM support in su (default=auto)]),,[enable_pam=yes]) -+if test "x$enable_pam" != xno; then -+ AC_CHECK_LIB([pam], [pam_start], [enable_pam=yes], [enable_pam=no]) -+ AC_CHECK_LIB([pam_misc], [misc_conv], [:], [enable_pam=no]) -+ if test "x$enable_pam" != xno; then -+ AC_DEFINE(USE_PAM, 1, [Define if you want to use PAM]) -+ PAM_LIBS="-lpam -lpam_misc" -+ AC_SUBST(PAM_LIBS) -+ fi -+fi -+AC_MSG_CHECKING([whether to enable PAM support in su]) -+AC_MSG_RESULT([$enable_pam]) -+ - AC_CHECK_FUNCS(uname, - OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS uname\$(EXEEXT)" - MAN="$MAN uname.1") ++++++ coreutils-6.9.diff -> coreutils-6.9.89.48.diff ++++++ --- coreutils/coreutils-6.9.diff 2007-07-23 12:36:37.000000000 +0200 +++ /mounts/work_src_done/STABLE/coreutils/coreutils-6.9.89.48.diff 2007-11-15 15:11:23.000000000 +0100 @@ -2,7 +2,7 @@ ================================================================================ --- doc/coreutils.texi +++ doc/coreutils.texi -@@ -64,8 +64,6 @@ +@@ -65,8 +65,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. @@ -11,8 +11,8 @@ * 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. -@@ -399,8 +397,6 @@ System context - +@@ -400,8 +398,6 @@ System context + * arch invocation:: Print machine hardware name * date invocation:: Print or set system date and time * uname invocation:: Print system information -* hostname invocation:: Print or set system name @@ -20,8 +20,8 @@ @command{date}: Print or set system date and time -@@ -12306,8 +12302,6 @@ information. - @menu +@@ -12452,8 +12448,6 @@ information. + * arch invocation:: Print machine hardware name. * date invocation:: Print or set system date and time. * uname invocation:: Print system information. -* hostname invocation:: Print or set system name. @@ -29,7 +29,7 @@ @end menu -@@ -13065,55 +13059,6 @@ Print the kernel version. +@@ -13234,55 +13228,6 @@ Print the kernel version. @exitstatus @@ -85,20 +85,27 @@ @node Modified command invocation @chapter Modified command invocation ---- src/sort.c -+++ src/sort.c -@@ -3517,10 +3517,7 @@ main (int argc, char **argv) - if (! (key->sword | key->schar)) - key->sword = SIZE_MAX; - if (! s || *set_ordering (s, key, bl_start)) -- { -- free (key); -- key = NULL; -- } -+ key = NULL; - else - { - if (minus_pos_usage) +--- m4/gnulib-comp.m4 ++++ m4/gnulib-comp.m4 +@@ -235,7 +235,6 @@ AC_DEFUN([gl_INIT], + gl_POSIXVER + gl_FUNC_PRINTF_FREXP + gl_FUNC_PRINTF_FREXPL +- m4_divert_text([INIT_PREPARE], [gl_printf_safe=yes]) + gl_FUNC_PUTENV + gl_STDLIB_MODULE_INDICATOR([putenv]) + gl_QUOTE +--- man/Makefile.am ++++ man/Makefile.am +@@ -179,7 +179,7 @@ check-x-vs-1: + PATH=../src$(PATH_SEPARATOR)$$PATH; export PATH; \ + t=ls-files.$$$$; \ + (cd $(srcdir) && ls -1 *.x) | sed 's/\.x$$//' | $(ASSORT) > $$t;\ +- (echo $(dist_man_MANS) $(NO_INSTALL_PROGS_DEFAULT) \ ++ (echo $(dist_man_MANS) $(NO_INSTALL_PROGS_DEFAULT) hostid \ + | tr -s ' ' '\n' | sed 's/\.1$$//') \ + | $(ASSORT) -u | diff - $$t || { rm $$t; exit 1; }; \ + rm $$t --- src/system.h +++ src/system.h @@ -168,7 +168,7 @@ enum @@ -110,20 +117,19 @@ #endif /* Extract or fake data from a `struct stat'. ---- tests/help-version -+++ tests/help-version -@@ -197,7 +197,7 @@ lbracket_args=": ]" - - for i in $all_programs; do +--- tests/misc/help-version ++++ tests/misc/help-version +@@ -205,6 +205,7 @@ lbracket_args=": ]" + for i in $built_programs; do # Skip these. -- case $i in chroot|stty|tty|false) continue;; esac -+ case $i in chroot|stty|tty|false|df) continue;; esac + case $i in chroot|stty|tty|false|chcon|runcon) continue;; esac ++ case $i in 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 @@ for d in $CANDIDATE_TMP_DIRS; do +@@ -42,6 +42,8 @@ for d in $CANDIDATE_TMP_DIRS; do fi done ++++++ coreutils-xattr.diff ++++++ --- /var/tmp/diff_new_pack.my4549/_old 2007-11-30 16:06:24.000000000 +0100 +++ /var/tmp/diff_new_pack.my4549/_new 2007-11-30 16:06:24.000000000 +0100 @@ -1,10 +1,10 @@ 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 +================================================================================ +--- coreutils-6.9.89.48-96961/configure.ac ++++ coreutils-6.9.89.48-96961/configure.ac +@@ -325,6 +325,9 @@ CONFIG_STATUS_DEPENDENCIES='$(top_srcdir + AC_SUBST([CONFIG_STATUS_DEPENDENCIES]) + ############################################################################ +# Extended attribute copying. +AC_FUNC_XATTR @@ -12,10 +12,19 @@ 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 +--- coreutils-6.9.89.48-96961/doc/coreutils.texi ++++ coreutils-6.9.89.48-96961/doc/coreutils.texi +@@ -7087,6 +7087,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. +--- coreutils-6.9.89.48-96961/m4/xattr.m4 ++++ coreutils-6.9.89.48-96961/m4/xattr.m4 @@ -0,0 +1,38 @@ +# xattr.m4 - check for Extended Attributes (Linux) + @@ -55,13 +64,11 @@ + 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) +--- coreutils-6.9.89.48-96961/src/Makefile.am ++++ coreutils-6.9.89.48-96961/src/Makefile.am +@@ -135,6 +135,10 @@ ginstall_LDADD += $(LIB_ACL) + + stat_LDADD = $(LDADD) $(LIB_SELINUX) +cp_LDADD += $(LIB_XATTR) +mv_LDADD += $(LIB_XATTR) @@ -69,13 +76,11 @@ + $(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" + # Get the release year from ../lib/version-etc.c. +--- coreutils-6.9.89.48-96961/src/copy.c ++++ coreutils-6.9.89.48-96961/src/copy.c +@@ -56,6 +56,12 @@ + #include "areadlink.h" #include "yesno.h" +#if USE_XATTR @@ -87,7 +92,7 @@ #ifndef HAVE_FCHOWN # define HAVE_FCHOWN false # define fchown(fd, uid, gid) (-1) -@@ -118,6 +124,98 @@ is_ancestor (const struct stat *sb, cons +@@ -113,6 +119,98 @@ is_ancestor (const struct stat *sb, cons return false; } @@ -186,7 +191,7 @@ /* 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 +@@ -640,6 +738,9 @@ copy_reg (char const *src_name, char con } } @@ -196,8 +201,8 @@ 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; +@@ -1939,6 +2040,9 @@ copy_internal (char const *src_name, cha + } } + if (!copy_xattrs (src_name, -1, dst_name, -1, x)) @@ -206,11 +211,9 @@ 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 +--- coreutils-6.9.89.48-96961/src/copy.h ++++ coreutils-6.9.89.48-96961/src/copy.h +@@ -134,6 +134,9 @@ struct cp_options bool preserve_mode; bool preserve_timestamps; @@ -220,52 +223,51 @@ /* 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 +--- coreutils-6.9.89.48-96961/src/cp.c ++++ coreutils-6.9.89.48-96961/src/cp.c +@@ -197,7 +197,8 @@ 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\ +- additional attributes: context, links, all\n\ ++ additional attributes: context, links,\n\ ++ 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) +@@ -751,6 +752,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->preserve_security_context = false; + x->require_preserve_context = false; - x->require_preserve = false; - x->recursive = false; -@@ -752,18 +753,21 @@ decode_preserve_arg (char const *arg, st +@@ -788,19 +790,21 @@ decode_preserve_arg (char const *arg, st PRESERVE_TIMESTAMPS, PRESERVE_OWNERSHIP, PRESERVE_LINK, + PRESERVE_XATTRS, + PRESERVE_CONTEXT, 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 +- PRESERVE_OWNERSHIP, PRESERVE_LINK, PRESERVE_CONTEXT, PRESERVE_ALL ++ PRESERVE_OWNERSHIP, PRESERVE_LINK, PRESERVE_XATTRS, PRESERVE_CONTEXT, ++ 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 +- "ownership", "links", "context", "all", NULL ++ "ownership", "links", "xattrs", "context", "all", NULL }; ARGMATCH_VERIFY (preserve_args, preserve_vals); -@@ -799,11 +803,16 @@ decode_preserve_arg (char const *arg, st +@@ -836,6 +840,10 @@ decode_preserve_arg (char const *arg, st x->preserve_links = on_off; break; @@ -273,49 +275,34 @@ + x->preserve_xattrs = on_off; + break; + - case PRESERVE_ALL: - x->preserve_mode = on_off; + case PRESERVE_CONTEXT: + x->preserve_security_context = on_off; + x->require_preserve_context = on_off; +@@ -846,6 +854,7 @@ decode_preserve_arg (char const *arg, st x->preserve_timestamps = on_off; x->preserve_ownership = on_off; x->preserve_links = on_off; + x->preserve_xattrs = on_off; + if (selinux_enabled) + x->preserve_security_context = 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) +--- coreutils-6.9.89.48-96961/src/install.c ++++ coreutils-6.9.89.48-96961/src/install.c +@@ -176,6 +176,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->require_preserve_context = 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) +--- coreutils-6.9.89.48-96961/src/mv.c ++++ coreutils-6.9.89.48-96961/src/mv.c +@@ -136,6 +136,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->preserve_security_context = selinux_enabled; 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. + x->require_preserve_context = false; ++++++ invalid-ids.diff ++++++ --- /var/tmp/diff_new_pack.my4549/_old 2007-11-30 16:06:25.000000000 +0100 +++ /var/tmp/diff_new_pack.my4549/_new 2007-11-30 16:06:25.000000000 +0100 @@ -13,9 +13,9 @@ 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 @@ +--- coreutils-6.9-316-e6f4b/lib/userspec.c ++++ coreutils-6.9-316-e6f4b/lib/userspec.c +@@ -169,7 +169,7 @@ parse_with_separator (char const *spec, { unsigned long int tmp; if (xstrtoul (u, NULL, 10, &tmp, "") == LONGINT_OK @@ -24,7 +24,7 @@ unum = tmp; else error_msg = E_invalid_user; -@@ -214,7 +214,8 @@ +@@ -200,7 +200,8 @@ parse_with_separator (char const *spec, if (grp == NULL) { unsigned long int tmp; @@ -34,14 +34,14 @@ 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 @@ +--- coreutils-6.9-316-e6f4b/src/chgrp.c ++++ coreutils-6.9-316-e6f4b/src/chgrp.c +@@ -90,7 +90,7 @@ parse_group (const char *name) { 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)); + error (EXIT_FAILURE, 0, _("invalid group: %s"), quote (name)); gid = tmp; } ++++++ su.default ++++++ --- coreutils/su.default 2006-02-13 01:54:42.000000000 +0100 +++ /mounts/work_src_done/STABLE/coreutils/su.default 2007-10-09 15:46:28.000000000 +0200 @@ -4,8 +4,8 @@ ALWAYS_SET_PATH=no # Default path. -PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin +PATH=/usr/local/bin:/bin:/usr/bin # Default path for a user invoking su to root. -SUPATH=/usr/sbin:/bin:/usr/bin:/sbin:/usr/X11R6/bin +SUPATH=/usr/sbin:/bin:/usr/bin:/sbin ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@Hilbert.suse.de