.ogg 01;37
.qt 01;37
.rm 01;37
+.rmvb 01;37
.ram 01;37
.s3m 01;37
.vob 01;37
---- coreutils-8.9/po/pl.po.orig 2011-01-09 12:30:07.000000000 +0100
-+++ coreutils-8.9/po/pl.po 2011-01-09 13:01:57.685902367 +0100
-@@ -4380,12 +4380,14 @@
- #: src/fmt.c:286
+--- coreutils-8.19/po/pl.po.orig 2012-10-14 10:58:23.839244005 +0200
++++ coreutils-8.19/po/pl.po 2012-10-14 11:00:38.809238341 +0200
+@@ -4497,13 +4497,15 @@
+ #, no-c-format
msgid ""
" -t, --tagged-paragraph indentation of first line different from second\n"
-" -u, --uniform-spacing one space between words, two after sentences\n"
+" -u, --uniform-spacing one space between words, two between sentences\n"
+" -n, --single-spaces single spaces between sentences\n"
" -w, --width=WIDTH maximum line width (default of 75 columns)\n"
+ " -g, --goal=WIDTH goal width (default of 93% of width)\n"
msgstr ""
" -t, --tagged-paragraph wcięcie pierwszej linii inne niż drugiej\n"
" -u, --uniform-spacing jedna spacja między słowami, dwie między "
"zdaniami\n"
+" -n, --single-spaces pojedyncze spacje między zdaniami\n"
- " -w, --width=ILE maksymalna szerokość linii (domyślnie 75 "
+ " -w, --width=SZEROKOŚĆ maksymalna SZEROKOŚĆ linii (domyślnie 75 "
"kolumn)\n"
-
-diff -ur coreutils-7.6.org/src/fmt.c coreutils-7.6/src/fmt.c
---- coreutils-7.6.org/src/fmt.c 2009-09-01 13:01:16.000000000 +0200
-+++ coreutils-7.6/src/fmt.c 2009-09-12 20:25:11.894693234 +0200
+ " -g, --goal=SZEROKOŚĆ docelowa SZEROKOŚĆ (domyślnie 93% of szerokości\n"
+--- coreutils-8.19/src/fmt.c.orig 2012-07-21 16:54:31.000000000 +0200
++++ coreutils-8.19/src/fmt.c 2012-10-14 11:02:27.109233796 +0200
@@ -17,6 +17,7 @@
/* Written by Ross Paterson <rap@doc.ic.ac.uk>. */
#include <stdio.h>
#include <sys/types.h>
#include <getopt.h>
-@@ -38,7 +39,7 @@
+@@ -40,7 +41,7 @@
/* The following parameters represent the program's idea of what is
"best". Adjust to taste, subject to the caveats given. */
#define WIDTH 75
/* Prefer lines to be LEEWAY % shorter than the maximum width, giving
-@@ -50,7 +51,7 @@
+@@ -52,7 +53,7 @@
#define DEF_INDENT 3
/* Costs and bonuses are expressed as the equivalent departure from the
cost of 50 means that it is as bad as a line 5 characters too short
or too long. The definition of SHORT_COST(n) should not be changed.
However, EQUIV(n) may need tuning. */
-@@ -77,11 +78,11 @@
+@@ -79,11 +80,11 @@
#define LINE_COST EQUIV (70)
/* Cost of breaking a line after the first word of a sentence, where
#define ORPHAN_COST(n) (EQUIV (150) / ((n) + 2))
/* Bonus for breaking a line at the end of a sentence. */
-@@ -113,11 +114,30 @@
+@@ -115,11 +116,30 @@
#define MAXWORDS 1000
#define MAXCHARS 5000
/* Size of a tab stop, for expansion on input and re-introduction on
output. */
-@@ -132,8 +152,9 @@
+@@ -134,8 +154,9 @@
/* Static attributes determined during input. */
int space; /* the size of the following space */
unsigned int paren:1; /* starts with open paren */
unsigned int period:1; /* ends in [.?!])* */
-@@ -142,7 +163,7 @@
+@@ -144,7 +165,7 @@
/* The remaining fields are computed during the optimization. */
COST best_cost; /* cost of best paragraph starting here */
WORD *next_break; /* break which achieves best_cost */
};
-@@ -152,16 +173,16 @@
+@@ -154,16 +175,16 @@
static void set_prefix (char *p);
static void fmt (FILE *f);
static bool get_paragraph (FILE *f);
static void put_paragraph (WORD *finish);
static void put_line (WORD *w, int indent);
static void put_word (WORD *w);
-@@ -181,8 +202,11 @@
+@@ -183,8 +204,11 @@
/* If true, don't preserve inter-word spacing (default false). */
static bool uniform;
/* User-supplied maximum line width (default WIDTH). The only output
lines longer than this will each comprise a single word. */
-@@ -190,14 +214,14 @@
+@@ -192,14 +216,14 @@
/* Values derived from the option values. */
+static int prefix_width;
/* The preferred width of text lines, set to LEEWAY % less than max_width. */
- static int best_width;
-@@ -212,10 +236,10 @@
+ static int goal_width;
+@@ -214,10 +238,10 @@
/* Space for the paragraph text -- longer paragraphs are handled neatly
(cf. flush_paragraph()). */
/* The words of a paragraph -- longer paragraphs are handled neatly
(cf. flush_paragraph()). */
-@@ -247,16 +271,16 @@
+@@ -249,16 +273,16 @@
prefix (next_prefix_indent). See get_paragraph() and copy_rest(). */
/* The last character read from the input file. */
void
usage (int status)
-@@ -284,7 +308,8 @@
- stdout);
+@@ -287,7 +311,8 @@
+ format string: xgettext:no-c-format */
fputs (_("\
-t, --tagged-paragraph indentation of first line different from second\n\
- -u, --uniform-spacing one space between words, two after sentences\n\
+ -u, --uniform-spacing one space between words, two between sentences\n\
+ -n, --single-spaces single spaces between sentences\n\
-w, --width=WIDTH maximum line width (default of 75 columns)\n\
+ -g, --goal=WIDTH goal width (default of 93% of width)\n\
"), stdout);
- fputs (HELP_OPTION_DESCRIPTION, stdout);
-@@ -307,6 +332,7 @@
+@@ -311,6 +336,7 @@
{"split-only", no_argument, NULL, 's'},
{"tagged-paragraph", no_argument, NULL, 't'},
{"uniform-spacing", no_argument, NULL, 'u'},
+ {"single-spaces", no_argument, NULL, 'n'},
{"width", required_argument, NULL, 'w'},
+ {"goal", required_argument, NULL, 'g'},
{GETOPT_HELP_OPTION_DECL},
- {GETOPT_VERSION_OPTION_DECL},
-@@ -329,9 +355,10 @@
+@@ -335,9 +361,10 @@
atexit (close_stdout);
crown = tagged = split = uniform = false;
if (argc > 1 && argv[1][0] == '-' && ISDIGIT (argv[1][1]))
{
-@@ -344,7 +371,7 @@
+@@ -350,7 +377,7 @@
argc--;
}
-- while ((optchar = getopt_long (argc, argv, "0123456789cstuw:p:",
-+ while ((optchar = getopt_long (argc, argv, "0123456789cstunw:p:",
+- while ((optchar = getopt_long (argc, argv, "0123456789cstuw:p:g:",
++ while ((optchar = getopt_long (argc, argv, "0123456789cstunw:p:g:",
long_options, NULL))
!= -1)
switch (optchar)
-@@ -372,6 +399,10 @@
+@@ -378,6 +405,10 @@
uniform = true;
break;
case 'w':
max_width_option = optarg;
break;
-@@ -436,26 +467,32 @@
+@@ -461,26 +492,32 @@
}
/* Trim space from the front and back of the string P, yielding the prefix,
}
/* read file F and send formatted output to stdout. */
-@@ -524,24 +561,24 @@
+@@ -550,24 +587,24 @@
static bool
get_paragraph (FILE *f)
{
c = get_prefix (f);
}
-@@ -597,26 +634,26 @@
+@@ -628,26 +665,26 @@
that failed to match the prefix. In the latter, C is \n or EOF.
Return the character (\n or EOF) ending the line. */
}
return c;
}
-@@ -626,11 +663,11 @@
+@@ -657,11 +694,11 @@
otherwise false. */
static bool
}
/* Read a line from input file F, given first non-blank character C
-@@ -641,11 +678,11 @@
+@@ -672,11 +709,11 @@
Return the first non-blank character of the next line. */
WORD *end_of_word;
end_of_parabuf = ¶buf[MAXCHARS];
-@@ -657,6 +694,7 @@
+@@ -688,6 +725,7 @@
/* Scan word. */
word_limit->text = wptr;
do
{
if (wptr == end_of_parabuf)
-@@ -665,10 +703,12 @@
+@@ -696,10 +734,12 @@
flush_paragraph ();
}
*wptr++ = c;
check_punctuation (word_limit);
/* Scan inter-word space. */
-@@ -676,11 +716,11 @@
+@@ -707,11 +747,11 @@
start = in_column;
c = get_space (f, c);
word_limit->space = in_column - start;
if (word_limit == end_of_word)
{
set_other_indent (true);
-@@ -688,34 +728,34 @@
+@@ -719,34 +759,34 @@
}
word_limit++;
}
}
c = get_space (f, c);
}
-@@ -725,21 +765,21 @@
+@@ -756,21 +796,21 @@
/* Read blank characters from input file F, starting with C, and keeping
in_column up-to-date. Return first non-blank character. */
}
}
-@@ -748,9 +788,9 @@
+@@ -779,9 +819,9 @@
static void
check_punctuation (WORD *w)
{
w->paren = isopen (*start);
w->punct = !! ispunct (fin);
-@@ -774,7 +814,9 @@
+@@ -805,7 +845,9 @@
if (word_limit == word)
{
wptr = parabuf;
return;
}
-@@ -806,7 +848,8 @@
+@@ -837,7 +879,8 @@
/* Copy text of words down to start of parabuf -- we use memmove because
the source and target may overlap. */
shift = split_point->text - parabuf;
wptr -= shift;
-@@ -830,53 +873,53 @@
+@@ -861,53 +904,53 @@
fmt_paragraph (void)
{
WORD *start, *w;
}
/* Return the constant component of the cost of breaking before the
-@@ -901,33 +944,33 @@
+@@ -932,33 +975,33 @@
else if ((this - 1)->punct)
cost -= PUNCT_BONUS;
else if (this > word + 1 && (this - 2)->final)
- cost += WIDOW_COST ((this - 1)->length);
-+ cost += WIDOW_COST ((this - 1)->width);
++ cost += WIDOW_COST ((this - 1)->width);
}
if (this->paren)
if (next == word_limit)
return 0;
-- n = best_width - len;
-+ n = best_width - wid;
+- n = goal_width - len;
++ n = goal_width - wid;
cost = SHORT_COST (n);
if (next->next_break != word_limit)
{
cost += RAGGED_COST (n);
}
return cost;
-@@ -956,8 +999,8 @@
+@@ -987,8 +1030,8 @@
out_column = 0;
put_space (prefix_indent);
put_space (indent - out_column);
endline = w->next_break - 1;
-@@ -967,8 +1010,8 @@
+@@ -998,8 +1041,8 @@
put_space (w->space);
}
put_word (w);
}
/* Output to stdout the word W. */
-@@ -976,13 +1019,13 @@
+@@ -1007,13 +1050,13 @@
static void
put_word (WORD *w)
{
}
/* Output to stdout SPACE spaces, or equivalent tabs. */
-@@ -999,13 +1042,13 @@
+@@ -1030,13 +1073,13 @@
if (out_column + 1 < tab_target)
while (out_column < tab_target)
{
link ln logname ls md5sum mkdir mkfifo mknod mktemp mv nice nl nohup
nproc od paste pathchk pinky pr printenv printf ptx pwd readlink realpath
rm rmdir runcon seq sha1sum sha224sum sha256sum sha384sum sha512sum shred
-diff -urN coreutils-8.16.orig//man/Makefile.am coreutils-8.16/man/Makefile.am
---- coreutils-8.16.orig//man/Makefile.am 2012-03-26 09:50:41.000000000 +0000
-+++ coreutils-8.16/man/Makefile.am 2012-04-18 09:07:17.410850573 +0000
-@@ -60,6 +60,7 @@
- false.1: $(common_dep) $(srcdir)/false.x ../src/false.c
- fmt.1: $(common_dep) $(srcdir)/fmt.x ../src/fmt.c
- fold.1: $(common_dep) $(srcdir)/fold.x ../src/fold.c
-+getgid.1: $(common_dep) $(srcdir)/getgid.x ../src/getgid.c
- groups.1: $(common_dep) $(srcdir)/groups.x ../src/groups.c
- head.1: $(common_dep) $(srcdir)/head.x ../src/head.c
- hostid.1: $(common_dep) $(srcdir)/hostid.x ../src/hostid.c
+--- coreutils-8.20/man/local.mk.orig 2012-11-18 07:54:05.958535288 +0100
++++ coreutils-8.20/man/local.mk 2012-11-18 07:55:01.678534127 +0100
+@@ -87,6 +87,7 @@
+ man/false.1: src/false
+ man/fmt.1: src/fmt
+ man/fold.1: src/fold
++man/getgid.1: src/getgid
+ man/groups.1: src/groups
+ man/head.1: src/head
+ man/hostid.1: src/hostid
diff -urN coreutils-8.16.orig//man/getgid.1 coreutils-8.16/man/getgid.1
--- coreutils-8.16.orig//man/getgid.1 1970-01-01 00:00:00.000000000 +0000
+++ coreutils-8.16/man/getgid.1 2012-04-18 09:07:17.410850573 +0000
#. This is a proper name. See the gettext manual, section Names.
#: src/env.c:32 src/printenv.c:45 src/whoami.c:35
msgid "Richard Mlynarik"
-diff -urN coreutils-8.16.orig//src/Makefile.am coreutils-8.16/src/Makefile.am
---- coreutils-8.16.orig//src/Makefile.am 2012-03-24 18:22:13.000000000 +0000
-+++ coreutils-8.16/src/Makefile.am 2012-04-18 09:07:17.411850524 +0000
-@@ -69,6 +69,7 @@
- false \
- fmt \
- fold \
-+ getgid \
- ginstall \
- groups \
- head \
+--- coreutils-8.20/src/local.mk.orig 2012-11-18 07:56:05.651866127 +0100
++++ coreutils-8.20/src/local.mk 2012-11-18 07:59:50.728528105 +0100
+@@ -122,6 +122,7 @@
+ src_false_LDADD = $(LDADD)
+ src_fmt_LDADD = $(LDADD)
+ src_fold_LDADD = $(LDADD)
++src_getgid_LDADD = $(LDADD)
+ src_getlimits_LDADD = $(LDADD)
+ src_ginstall_LDADD = $(LDADD)
+ src_groups_LDADD = $(LDADD)
diff -urN coreutils-8.16.orig//src/getgid.c coreutils-8.16/src/getgid.c
--- coreutils-8.16.orig//src/getgid.c 1970-01-01 00:00:00.000000000 +0000
+++ coreutils-8.16/src/getgid.c 2012-04-18 09:44:16.000000000 +0000
+ printf("%lu\n", (unsigned long int) gr->gr_gid);
+ exit(EXIT_SUCCESS);
+}
+--- coreutils-8.20/build-aux/gen-lists-of-programs.sh.orig 2012-10-23 16:14:12.000000000 +0200
++++ coreutils-8.20/build-aux/gen-lists-of-programs.sh 2012-11-18 08:48:50.915133486 +0100
+@@ -66,6 +66,7 @@
+ false
+ fmt
+ fold
++ getgid
+ ginstall
+ groups
+ head
---- coreutils-8.9/doc/coreutils.texi.orig 2011-01-01 22:19:23.000000000 +0100
-+++ coreutils-8.9/doc/coreutils.texi 2011-01-09 12:28:09.837901529 +0100
-@@ -20,119 +20,111 @@
+--- coreutils-8.21/doc/coreutils.texi.orig 2013-02-11 10:37:28.000000000 +0100
++++ coreutils-8.21/doc/coreutils.texi 2013-02-24 17:41:00.409391351 +0100
+@@ -20,120 +20,109 @@
@syncodeindex pg cp
@syncodeindex vr cp
+@dircategory Core utilities:
@direntry
-* Coreutils: (coreutils). Core GNU (file, text, shell) utilities.
--* Common options: (coreutils)Common options. Common options.
--* File permissions: (coreutils)File permissions. Access modes.
+* Coreutils: (coreutils). Core GNU (file, text, shell) utilities
-+* Common options: (coreutils)Common options. Common options
+ * Common options: (coreutils)Common options.
+-* File permissions: (coreutils)File permissions. Access modes.
+* File permissions: (coreutils)File permissions. Access modes
* Date input formats: (coreutils)Date input formats.
-@end direntry
-* cat: (coreutils)cat invocation. Concatenate and write files.
-* chcon: (coreutils)chcon invocation. Change SELinux CTX of files.
-* chgrp: (coreutils)chgrp invocation. Change file groups.
--* chmod: (coreutils)chmod invocation. Change file permissions.
--* chown: (coreutils)chown invocation. Change file owners/groups.
+-* chmod: (coreutils)chmod invocation. Change access permissions.
+-* chown: (coreutils)chown invocation. Change file owners and groups.
-* chroot: (coreutils)chroot invocation. Specify the root directory.
-* cksum: (coreutils)cksum invocation. Print POSIX CRC checksum.
-* comm: (coreutils)comm invocation. Compare sorted files by line.
-* nl: (coreutils)nl invocation. Number lines and write files.
-* nohup: (coreutils)nohup invocation. Immunize to hangups.
-* nproc: (coreutils)nproc invocation. Print the number of processors.
+-* numfmt: (coreutils)numfmt invocation. Reformat numbers.
-* od: (coreutils)od invocation. Dump files in octal, etc.
-* paste: (coreutils)paste invocation. Merge lines of files.
-* pathchk: (coreutils)pathchk invocation. Check file name portability.
-* stat: (coreutils)stat invocation. Report file(system) status.
-* stdbuf: (coreutils)stdbuf invocation. Modify stdio buffering.
-* stty: (coreutils)stty invocation. Print/change terminal settings.
--* su: (coreutils)su invocation. Modify user and group ID.
-* sum: (coreutils)sum invocation. Print traditional checksum.
-* sync: (coreutils)sync invocation. Synchronize memory and disk.
-* tac: (coreutils)tac invocation. Reverse files.
+* cat: (coreutils)cat. Concatenate and write files
+* chcon: (coreutils)chcon. Change SELinux CTX of files
+* chgrp: (coreutils)chgrp. Change file groups
-+* chmod: (coreutils)chmod. Change file permissions
-+* chown: (coreutils)chown. Change file owners/groups
++* chmod: (coreutils)chmod. Change access permissions
++* chown: (coreutils)chown. Change file owners and groups
+* chroot: (coreutils)chroot. Specify the root directory
+* cksum: (coreutils)cksum. Print POSIX CRC checksum
+* comm: (coreutils)comm. Compare sorted files by line
+* groups: (coreutils)groups. Print group names a user is in
+* head: (coreutils)head. Output the first part of files
+* hostid: (coreutils)hostid. Print numeric host identifier
-+* hostname: (coreutils)hostname. Print or set system name
+* id: (coreutils)id. Print user identity
+* install: (coreutils)install. Copy and change attributes
+* join: (coreutils)join. Join lines on a common field
-+* kill: (coreutils)kill. Send a signal to processes
+* link: (coreutils)link. Make hard links between files
+* ln: (coreutils)ln. Make links between files
+* logname: (coreutils)logname. Print current login name
+* nl: (coreutils)nl. Number lines and write files
+* nohup: (coreutils)nohup. Immunize to hangups
+* nproc: (coreutils)nproc. Print the number of processors
++* numfmt: (coreutils)numfmt. Reformat numbers
+* od: (coreutils)od. Dump files in octal, etc.
+* paste: (coreutils)paste. Merge lines of files
+* pathchk: (coreutils)pathchk. Check file name portability
+* ptx: (coreutils)ptx. Produce permuted indexes
+* pwd: (coreutils)pwd. Print working directory
+* readlink: (coreutils)readlink. Print referent of a symlink
-+* realpath: (coreutils)realpath. Print resolved file names
++* realpath: (coreutils)readpath. Print resolved file names
+* rm: (coreutils)rm. Remove files
+* rmdir: (coreutils)rmdir. Remove empty directories
+* runcon: (coreutils)runcon. Run in specified SELinux CTX
+* stat: (coreutils)stat. Report file(system) status
+* stdbuf: (coreutils)stdbuf. Modify stdio buffering
+* stty: (coreutils)stty. Print/change terminal settings
-+* su: (coreutils)su. Modify user and group ID
+* sum: (coreutils)sum. Print traditional checksum
+* sync: (coreutils)sync. Synchronize memory and disk
+* tac: (coreutils)tac. Reverse files
+* unexpand: (coreutils)unexpand. Convert spaces to tabs
+* uniq: (coreutils)uniq. Uniquify files
+* unlink: (coreutils)unlink. Removal via unlink(2)
-+* uptime: (coreutils)uptime. Print uptime and load
+* users: (coreutils)users. Print current user names
+* vdir: (coreutils)vdir. List directories verbosely
+* wc: (coreutils)wc. Line, word, and byte counts
@end direntry
@copying
-@@ -197,10 +189,9 @@
- * File name manipulation:: dirname basename pathchk mktemp
+@@ -198,10 +187,9 @@
+ * File name manipulation:: dirname basename pathchk mktemp realpath
* Working context:: pwd stty printenv tty
* User information:: id logname whoami groups users who
-* System context:: date arch nproc uname hostname hostid uptime
+* System context:: date arch nproc uname hostid
* SELinux context:: chcon runcon
- * Modified command invocation:: chroot env nice nohup stdbuf su timeout
+ * Modified command invocation:: chroot env nice nohup stdbuf timeout
-* Process control:: kill
* Delaying:: sleep
* Numeric operations:: factor seq
* File permissions:: Access modes
-@@ -228,42 +219,42 @@
+@@ -230,45 +218,45 @@
Output of entire files
Formatting file contents
-* fmt invocation:: Reformat paragraph text
+-* numfmt invocation:: Reformat numbers
-* pr invocation:: Paginate or columnate files for printing
-* fold invocation:: Wrap input lines to fit in specified width
+* fmt:: Reformat paragraph text
++* numfmt:: Reformat numbers
+* pr:: Paginate or columnate files for printing
+* fold:: Wrap input lines to fit in specified width
+ @command{numfmt}: General Options, Units
+
Output of parts of files
-* head invocation:: Output the first part of files
@command{ptx}: Produce permuted indexes
-@@ -275,15 +266,15 @@
+@@ -280,15 +268,15 @@
Operating on fields
@command{tr}: Translate, squeeze, and/or delete characters
-@@ -293,10 +284,10 @@
+@@ -298,10 +286,10 @@
Directory listing
@command{ls}: List directory contents
-@@ -309,51 +300,51 @@
+@@ -314,51 +302,51 @@
Basic operations
@command{test}: Check file types and compare values
-@@ -372,22 +363,22 @@
+@@ -377,22 +365,22 @@
Redirection
@command{stty}: Print or change terminal characteristics
-@@ -400,22 +391,20 @@
+@@ -406,22 +394,20 @@
User information
@command{date}: Print or set system date and time
-@@ -430,31 +419,27 @@
+@@ -436,30 +422,26 @@
SELinux context
-* nice invocation:: Run a command with modified niceness
-* nohup invocation:: Run a command immune to hangups
-* stdbuf invocation:: Run a command with modified I/O buffering
--* su invocation:: Run a command with substitute user and group ID
-* timeout invocation:: Run a command with a time limit
-
-Process control
+* nice:: Run a command with modified niceness
+* nohup:: Run a command immune to hangups
+* stdbuf:: Run a command with modified I/O buffering
-+* su:: Run a command with substitute user and group ID
+* timeout:: Run a command with a time limit
Delaying
File permissions
-@@ -1443,14 +1428,14 @@
+@@ -1477,14 +1459,14 @@
in some way.
@menu
@section @command{cat}: Concatenate and write files
@pindex cat
-@@ -1550,7 +1535,7 @@
+@@ -1584,7 +1566,7 @@
@end smallexample
@section @command{tac}: Concatenate and write files in reverse
@pindex tac
-@@ -1599,7 +1584,7 @@
- @exitstatus
+@@ -1640,7 +1622,7 @@
+ @end example
-@node nl invocation
@section @command{nl}: Number lines and write files
@pindex nl
-@@ -1762,7 +1747,7 @@
+@@ -1803,7 +1785,7 @@
@exitstatus
@section @command{od}: Write files in octal or other formats
@pindex od
-@@ -2016,7 +2001,7 @@
+@@ -2057,7 +2039,7 @@
@exitstatus
@section @command{base64}: Transform data into printable data
@pindex base64
-@@ -2084,13 +2069,13 @@
+@@ -2125,14 +2107,14 @@
These commands reformat the contents of files.
@menu
-* fmt invocation:: Reformat paragraph text.
+-* numfmt invocation:: Reformat numbers.
-* pr invocation:: Paginate or columnate files for printing.
-* fold invocation:: Wrap input lines to fit in specified width.
+* fmt:: Reformat paragraph text.
++* numfmt:: Reformat numbers.
+* pr:: Paginate or columnate files for printing.
+* fold:: Wrap input lines to fit in specified width.
@end menu
@section @command{fmt}: Reformat paragraph text
@pindex fmt
-@@ -2189,7 +2174,7 @@
+@@ -2236,7 +2218,7 @@
+
@exitstatus
+-@node numfmt invocation
++@node numfmt
+ @section @command{numfmt}: Reformat numbers
+
+ @pindex numfmt
+@@ -2556,7 +2538,7 @@
+ == 2,14,74,83,648==
+ @end example
-@node pr invocation
+@node pr
@section @command{pr}: Paginate or columnate files for printing
@pindex pr
-@@ -2329,7 +2314,7 @@
+@@ -2666,7 +2648,7 @@
@cindex time formats
@cindex formatting times
Format header dates using @var{format}, using the same conventions as
--for the command @samp{date +@var{format}}; @xref{date invocation}.
-+for the command @samp{date +@var{format}}; @xref{date}.
+-for the command @samp{date +@var{format}}. @xref{date invocation}.
++for the command @samp{date +@var{format}}. @xref{date}.
Except for directives, which start with
@samp{%}, characters in @var{format} are printed unchanged. You can use
this option to specify an arbitrary string in place of the header date,
-@@ -2556,7 +2541,7 @@
+@@ -2893,7 +2875,7 @@
@exitstatus
@section @command{fold}: Wrap input lines to fit in specified width
@pindex fold
-@@ -2623,13 +2608,13 @@
+@@ -2960,13 +2942,13 @@
These commands output pieces of the input.
@menu
@section @command{head}: Output the first part of files
@pindex head
-@@ -2706,7 +2691,7 @@
+@@ -3043,7 +3025,7 @@
@exitstatus
@section @command{tail}: Output the last part of files
@pindex tail
-@@ -2922,7 +2907,7 @@
+@@ -3273,7 +3255,7 @@
@exitstatus
@section @command{split}: Split a file into pieces.
@pindex split
-@@ -3112,7 +3097,7 @@
+@@ -3502,7 +3484,7 @@
@end example
@section @command{csplit}: Split a file into context-determined pieces
@pindex csplit
-@@ -3303,16 +3288,16 @@
+@@ -3693,16 +3675,16 @@
contents of files.
@menu
@section @command{wc}: Print newline, word, and byte counts
@pindex wc
-@@ -3430,7 +3415,7 @@
+@@ -3820,7 +3802,7 @@
@exitstatus
@section @command{sum}: Print checksum and block counts
@pindex sum
-@@ -3481,7 +3466,7 @@
+@@ -3871,7 +3853,7 @@
@exitstatus
@section @command{cksum}: Print CRC checksum and byte counts
@pindex cksum
-@@ -3515,7 +3500,7 @@
+@@ -3905,7 +3887,7 @@
@exitstatus
@section @command{md5sum}: Print or check MD5 digests
@pindex md5sum
-@@ -3643,7 +3628,7 @@
+@@ -4051,7 +4033,7 @@
@exitstatus
@section @command{sha1sum}: Print or check SHA-1 digests
@pindex sha1sum
-@@ -3655,7 +3640,7 @@
+@@ -4063,7 +4045,7 @@
@command{sha1sum} computes a 160-bit checksum for each specified
@var{file}. The usage and options of this command are precisely the
Note: The SHA-1 digest is more secure than MD5, and no collisions of
it are known (different files having the same fingerprint). However,
-@@ -3695,7 +3680,7 @@
+@@ -4103,7 +4085,7 @@
various lengths (respectively 224, 256, 384 and 512 bits),
collectively known as the SHA-2 hashes. The usage and options of
these commands are precisely the same as for @command{md5sum}.
Note: The SHA384 and SHA512 digests are considerably slower to
compute, especially on 32-bit computers, than SHA224 or SHA256.
-@@ -3710,16 +3695,16 @@
+@@ -4118,16 +4100,16 @@
These commands work with (or produce) sorted files.
@menu
@section @command{sort}: Sort text files
@pindex sort
-@@ -4008,7 +3993,7 @@
+@@ -4413,7 +4395,7 @@
Sort by hashing the input keys and then sorting the hash values.
Choose the hash function at random, ensuring that it is free of
collisions so that differing keys have differing hash values. This is
except that keys with the same value sort together.
If multiple random sort fields are specified, the same random hash
-@@ -4196,7 +4181,7 @@
+@@ -4601,7 +4583,7 @@
@var{n} is set to the number of available processors, but limited
to 8, as there are diminishing performance gains after that.
Note also that using @var{n} threads increases the memory usage by
@item -u
@itemx --unique
-@@ -4214,7 +4199,7 @@
+@@ -4619,7 +4601,7 @@
this equivalence does not extend to arbitrary @command{sort} options.
For example, @code{sort -n -u} inspects only the value of the initial
numeric string when checking for uniqueness, whereas @code{sort -n |
@macro zeroTerminatedOption
@item -z
-@@ -4437,7 +4422,7 @@
+@@ -4842,7 +4824,7 @@
@end itemize
@section @command{shuf}: Shuffling text
@pindex shuf
-@@ -4567,7 +4552,7 @@
+@@ -4972,7 +4954,7 @@
@exitstatus
@section @command{uniq}: Uniquify files
@pindex uniq
-@@ -4589,7 +4574,7 @@
+@@ -4994,7 +4976,7 @@
The input need not be sorted, but repeated input lines are detected
only if they are adjacent. If you want to discard non-adjacent
duplicate lines, perhaps you want to use @code{sort -u}.
@vindex LC_COLLATE
Comparisons honor the rules specified by the @env{LC_COLLATE}
-@@ -4716,7 +4701,7 @@
+@@ -5121,7 +5103,7 @@
@exitstatus
@section @command{comm}: Compare two sorted files line by line
@pindex comm
-@@ -4792,7 +4777,7 @@
+@@ -5203,7 +5185,7 @@
@end table
@section @command{ptx}: Produce permuted indexes
@pindex ptx
-@@ -5249,7 +5234,7 @@
+@@ -5662,7 +5644,7 @@
@end itemize
@section @command{tsort}: Topological sort
@pindex tsort
-@@ -5411,13 +5396,13 @@
+@@ -5824,13 +5806,13 @@
@chapter Operating on fields
@menu
@section @command{cut}: Print selected parts of lines
@pindex cut
-@@ -5522,7 +5507,7 @@
+@@ -5950,7 +5932,7 @@
@exitstatus
@section @command{paste}: Merge lines of files
@pindex paste
-@@ -5592,7 +5577,7 @@
+@@ -6020,7 +6002,7 @@
@exitstatus
@section @command{join}: Join lines on a common field
@pindex join
-@@ -5757,13 +5742,13 @@
+@@ -6194,13 +6176,13 @@
This commands operate on individual characters.
@menu
@section @command{tr}: Translate, squeeze, and/or delete characters
@pindex tr
-@@ -6142,7 +6127,7 @@
+@@ -6580,7 +6562,7 @@
@end itemize
@section @command{expand}: Convert tabs to spaces
@pindex expand
-@@ -6195,7 +6180,7 @@
+@@ -6633,7 +6615,7 @@
@exitstatus
@section @command{unexpand}: Convert spaces to tabs
@pindex unexpand
-@@ -6256,14 +6241,14 @@
+@@ -6694,14 +6676,14 @@
and @command{vdir}, which list information about files.
@menu
@section @command{ls}: List directory contents
@pindex ls
-@@ -7101,7 +7086,7 @@
+@@ -7566,7 +7548,7 @@
@item +@var{format}
@vindex LC_TIME
List timestamps using @var{format}, where @var{format} is interpreted
For example, @option{--time-style="+%Y-%m-%d %H:%M:%S"} causes
@command{ls} to list timestamps like @samp{2002-03-30 23:45:56}. As
with @command{date}, @var{format}'s interpretation is affected by the
-@@ -7293,7 +7278,7 @@
+@@ -7758,7 +7740,7 @@
@end table
@section @command{dir}: Briefly list directory contents
@pindex dir
-@@ -7303,10 +7288,10 @@
+@@ -7768,10 +7750,10 @@
-b}; that is, by default files are listed in columns, sorted vertically,
and special characters are represented by backslash escape sequences.
@section @command{vdir}: Verbosely list directory contents
@pindex vdir
-@@ -7316,7 +7301,7 @@
+@@ -7781,7 +7763,7 @@
-b}; that is, by default files are listed in long format and special
characters are represented by backslash escape sequences.
@section @command{dircolors}: Color setup for @command{ls}
@pindex dircolors
-@@ -7403,16 +7388,16 @@
+@@ -7868,16 +7850,16 @@
copying, moving (renaming), and deleting (removing).
@menu
@section @command{cp}: Copy files and directories
@pindex cp
-@@ -7861,7 +7846,7 @@
+@@ -8332,7 +8314,7 @@
@exitstatus
@section @command{dd}: Convert and copy a file
@pindex dd
-@@ -8226,7 +8211,7 @@
+@@ -8798,7 +8780,7 @@
@exitstatus
@section @command{install}: Copy files and set attributes
@pindex install
-@@ -8407,7 +8392,7 @@
+@@ -8979,7 +8961,7 @@
@exitstatus
@section @command{mv}: Move (rename) files
@pindex mv
-@@ -8538,7 +8523,7 @@
+@@ -9110,7 +9092,7 @@
@exitstatus
@section @command{rm}: Remove files or directories
@pindex rm
-@@ -8693,7 +8678,7 @@
+@@ -9272,7 +9254,7 @@
@exitstatus
@section @command{shred}: Remove files more securely
@pindex shred
-@@ -8703,7 +8688,7 @@
+@@ -9282,7 +9264,7 @@
@command{shred} overwrites devices or files, to help prevent even
very expensive hardware from recovering the data.
not actually destroyed. Only the index listing where the file is
stored is destroyed, and the storage is made available for reuse.
There are undelete utilities that will attempt to reconstruct the index
-@@ -8936,18 +8921,18 @@
+@@ -9529,18 +9511,18 @@
(FIFOs), symbolic links, sockets, and so-called @dfn{special files}.
@menu
@section @command{link}: Make a hard link via the link syscall
@pindex link
-@@ -8960,7 +8945,7 @@
+@@ -9553,7 +9535,7 @@
@code{link} function. @xref{Hard Links, , , libc,
The GNU C Library Reference Manual}.
It avoids the bells and whistles of the more commonly-used
Synopsis:
@example
-@@ -8986,7 +8971,7 @@
+@@ -9579,7 +9561,7 @@
@exitstatus
@section @command{ln}: Make links between files
@pindex ln
-@@ -9215,7 +9200,7 @@
+@@ -9760,7 +9742,7 @@
+ '/tmp/file' -> '../a/file'
+ @end smallexample
+
+-@xref{realpath invocation}, which gives greater control
++@xref{realpath}, which gives greater control
+ over relative file name generation.
+
+ @item -s
+@@ -9824,7 +9806,7 @@
@end smallexample
@section @command{mkdir}: Make directories
@pindex mkdir
-@@ -9294,7 +9279,7 @@
+@@ -9903,7 +9885,7 @@
@exitstatus
@section @command{mkfifo}: Make FIFOs (named pipes)
@pindex mkfifo
-@@ -9341,7 +9326,7 @@
+@@ -9950,7 +9932,7 @@
@exitstatus
@section @command{mknod}: Make block or character special files
@pindex mknod
-@@ -9424,7 +9409,7 @@
+@@ -10033,7 +10015,7 @@
@exitstatus
@section @command{readlink}: Print value of a symlink or canonical file name
@pindex readlink
-@@ -9520,7 +9505,7 @@
+@@ -10135,7 +10117,7 @@
@exitstatus
@section @command{rmdir}: Remove empty directories
@pindex rmdir
-@@ -9568,12 +9553,12 @@
+@@ -10183,12 +10165,12 @@
@end table
@section @command{unlink}: Remove files via the unlink syscall
@pindex unlink
-@@ -9584,7 +9569,7 @@
+@@ -10199,7 +10181,7 @@
@code{unlink} function. @xref{Deleting Files, , , libc,
The GNU C Library Reference Manual}. Synopsis:
It avoids the bells and whistles of the more commonly-used
@example
unlink @var{filename}
-@@ -9618,14 +9603,14 @@
+@@ -10233,14 +10215,14 @@
These commands change file attributes.
@menu
+-* chown invocation:: Change file owners and groups.
-* chgrp invocation:: Change file groups.
-* chmod invocation:: Change access permissions.
--* chown invocation:: Change file owners and groups.
-* touch invocation:: Change file timestamps.
++* chown:: Change file owners and groups.
+* chgrp:: Change file groups.
+* chmod:: Change access permissions.
-+* chown:: Change file owners and groups.
+* touch:: Change file timestamps.
@end menu
@section @command{chown}: Change file owner and group
@pindex chown
-@@ -9843,7 +9828,7 @@
+@@ -10458,7 +10440,7 @@
@end smallexample
@section @command{chgrp}: Change group ownership
@pindex chgrp
-@@ -9966,7 +9951,7 @@
+@@ -10581,7 +10563,7 @@
@end smallexample
@section @command{chmod}: Change access permissions
@pindex chmod
-@@ -10066,7 +10051,7 @@
+@@ -10681,7 +10663,7 @@
@exitstatus
@section @command{touch}: Change file timestamps
@pindex touch
-@@ -10243,15 +10228,15 @@
+@@ -10888,15 +10870,15 @@
file status information, and write buffers to disk.
@menu
@section @command{df}: Report file system disk space usage
@pindex df
-@@ -10464,7 +10449,7 @@
- @samp{ext3} or @samp{reiserfs}.
+@@ -11191,7 +11173,7 @@
+ or @option{-x} is used together with a file name argument.
-@node du invocation
@section @command{du}: Estimate file space usage
@pindex du
-@@ -10662,7 +10647,7 @@
+@@ -11424,7 +11406,7 @@
@item +@var{format}
@vindex LC_TIME
List timestamps using @var{format}, where @var{format} is interpreted
For example, @option{--time-style="+%Y-%m-%d %H:%M:%S"} causes
@command{du} to list timestamps like @samp{2002-03-30 23:45:56}. As
with @command{date}, @var{format}'s interpretation is affected by the
-@@ -10730,7 +10715,7 @@
+@@ -11492,7 +11474,7 @@
@exitstatus
@section @command{stat}: Report file or file system status
@pindex stat
-@@ -10914,7 +10899,7 @@
+@@ -11676,7 +11658,7 @@
@exitstatus
@section @command{sync}: Synchronize data on disk with memory
@pindex sync
-@@ -10941,7 +10926,7 @@
+@@ -11703,7 +11685,7 @@
@exitstatus
@section @command{truncate}: Shrink or extend the size of a file
@pindex truncate
-@@ -11017,13 +11002,13 @@
+@@ -11779,13 +11761,13 @@
This section describes commands that display text strings.
@menu
@section @command{echo}: Print a line of text
@pindex echo
-@@ -11110,12 +11095,12 @@
+@@ -11874,12 +11856,12 @@
@var{string} contains a backslash or if the first argument is
@option{-n}. Portable programs can use the @command{printf} command
if they need to omit trailing newlines or output control characters or
@section @command{printf}: Format and print data
@pindex printf
-@@ -11264,7 +11249,7 @@
+@@ -12033,7 +12015,7 @@
@exitstatus
@section @command{yes}: Print a string until interrupted
@pindex yes
-@@ -11295,14 +11280,14 @@
+@@ -12064,14 +12046,14 @@
pipeline.
@menu
@section @command{false}: Do nothing, unsuccessfully
@pindex false
-@@ -11332,7 +11317,7 @@
- non-@acronym{GNU} hosts.
+@@ -12101,7 +12083,7 @@
+ non-GNU hosts.
-@node true invocation
@section @command{true}: Do nothing, successfully
@pindex true
-@@ -11368,7 +11353,7 @@
+@@ -12137,7 +12119,7 @@
more secure and faster than a shell script implementation, and may safely
be used as a dummy shell for the purpose of disabling accounts.
@section @command{test}: Check file types and compare values
@pindex test
-@@ -11696,7 +11681,7 @@
+@@ -12470,7 +12452,7 @@
@end table
@section @command{expr}: Evaluate expressions
@pindex expr
-@@ -11973,11 +11958,11 @@
+@@ -12747,11 +12729,11 @@
it's described here.
@menu
@section @command{tee}: Redirect output to multiple files or processes
@pindex tee
-@@ -12138,15 +12123,15 @@
+@@ -12912,15 +12894,15 @@
This section describes commands that manipulate file names.
@menu
@section @command{basename}: Strip directory and suffix from a file name
@pindex basename
-@@ -12199,7 +12184,7 @@
+@@ -13006,7 +12988,7 @@
@end smallexample
@section @command{dirname}: Strip last file name component
@pindex dirname
-@@ -12244,7 +12229,7 @@
+@@ -13063,7 +13045,7 @@
@end smallexample
@section @command{pathchk}: Check file name validity and portability
@pindex pathchk
-@@ -12320,7 +12305,7 @@
+@@ -13139,7 +13121,7 @@
1 otherwise.
@end display
@section @command{mktemp}: Create temporary file or directory
@pindex mktemp
-@@ -12506,14 +12491,14 @@
+@@ -13314,7 +13296,7 @@
+ @end display
+
+
+-@node realpath invocation
++@node realpath
+ @section @command{realpath}: Print the resolved file name.
+
+ @pindex realpath
+@@ -13442,14 +13424,14 @@
so forth. See also the user-related commands in the next section.
@menu
@section @command{pwd}: Print working directory
@pindex pwd
-@@ -12560,7 +12545,7 @@
+@@ -13496,7 +13478,7 @@
@exitstatus
@section @command{stty}: Print or change terminal characteristics
@pindex stty
-@@ -13244,7 +13229,7 @@
+@@ -14187,7 +14169,7 @@
@end table
@section @command{printenv}: Print all or some environment variables
@pindex printenv
-@@ -13279,7 +13264,7 @@
+@@ -14222,7 +14204,7 @@
@end display
@section @command{tty}: Print file name of terminal on standard input
@pindex tty
-@@ -13329,16 +13314,16 @@
+@@ -14272,16 +14254,16 @@
logins, groups, and so forth.
@menu
@section @command{id}: Print user identity
@pindex id
-@@ -13424,7 +13409,7 @@
+@@ -14367,7 +14349,7 @@
@end macro
@primaryAndSupplementaryGroups{id,user argument}
@section @command{logname}: Print current login name
@pindex logname
-@@ -13445,7 +13430,7 @@
+@@ -14388,7 +14370,7 @@
@exitstatus
@section @command{whoami}: Print effective user ID
@pindex whoami
-@@ -13461,7 +13446,7 @@
+@@ -14404,7 +14386,7 @@
@exitstatus
@section @command{groups}: Print group names a user is in
@pindex groups
-@@ -13489,7 +13474,7 @@
+@@ -14432,7 +14414,7 @@
@exitstatus
@section @command{users}: Print login names of users currently logged in
@pindex users
-@@ -13520,7 +13505,7 @@
+@@ -14463,7 +14445,7 @@
@exitstatus
@section @command{who}: Print who is currently logged in
@pindex who
-@@ -13679,16 +13664,14 @@
+@@ -14622,16 +14604,14 @@
information.
@menu
@section @command{date}: Print or set system date and time
@pindex date
-@@ -14321,7 +14304,7 @@
+@@ -15324,7 +15304,7 @@
@end itemize
@section @command{arch}: Print machine hardware name
@pindex arch
-@@ -14341,7 +14324,7 @@
+@@ -15344,7 +15324,7 @@
@exitstatus
@section @command{nproc}: Print the number of available processors
@pindex nproc
-@@ -14378,7 +14361,7 @@
+@@ -15381,7 +15361,7 @@
@exitstatus
@section @command{uname}: Print system information
@pindex uname
-@@ -14508,31 +14491,7 @@
+@@ -15511,31 +15491,7 @@
@exitstatus
@section @command{hostid}: Print numeric host identifier
@pindex hostid
-@@ -14556,37 +14515,6 @@
+@@ -15559,37 +15515,6 @@
@exitstatus
@node SELinux context
@chapter SELinux context
-@@ -14598,11 +14526,11 @@
+@@ -15601,11 +15526,11 @@
contexts.
@menu
@section @command{chcon}: Change SELinux context of file
@pindex chcon
-@@ -14689,7 +14617,7 @@
+@@ -15708,7 +15633,7 @@
@exitstatus
@section @command{runcon}: Run a command in specified SELinux context
@pindex runcon
-@@ -14774,17 +14702,17 @@
+@@ -15793,16 +15718,16 @@
user, etc.
@menu
-* nice invocation:: Modify niceness.
-* nohup invocation:: Immunize to hangups.
-* stdbuf invocation:: Modify buffering of standard streams.
--* su invocation:: Modify user and group ID.
-* timeout invocation:: Run with time limit.
+* chroot:: Modify the root directory.
+* env:: Modify environment variables.
+* nice:: Modify niceness.
+* nohup:: Immunize to hangups.
+* stdbuf:: Modify buffering of standard streams.
-+* su:: Modify user and group ID.
+* timeout:: Run with time limit.
@end menu
@section @command{chroot}: Run a command with a different root directory
@pindex chroot
-@@ -14872,7 +14800,7 @@
+@@ -15890,7 +15815,7 @@
@end display
@section @command{env}: Run a command in a modified environment
@pindex env
-@@ -15022,7 +14950,7 @@
+@@ -16040,7 +15965,7 @@
@end display
@section @command{nice}: Run a command with modified niceness
@pindex nice
-@@ -15145,7 +15073,7 @@
+@@ -16167,7 +16092,7 @@
@end example
@section @command{nohup}: Run a command immune to hangups
@pindex nohup
-@@ -15218,7 +15146,7 @@
+@@ -16240,7 +16165,7 @@
instead of 125.
@section @command{stdbuf}: Run a command with modified I/O stream buffering
@pindex stdbuf
-@@ -15297,7 +15225,7 @@
+@@ -16329,7 +16254,7 @@
@end display
--@node su invocation
-+@node su
- @section @command{su}: Run a command with substitute user and group ID
-
- @pindex su
-@@ -15454,7 +15382,7 @@
- might find this idea strange at first.
-
-
-@node timeout invocation
+@node timeout
@section @command{timeout}: Run a command with a time limit
@pindex timeout
-@@ -15515,89 +15443,6 @@
+@@ -16416,90 +16341,6 @@
@end display
-
-The first form of the @command{kill} command sends a signal to all
-@var{pid} arguments. The default signal to send if none is specified
--is @samp{TERM}. The special signal number @samp{0} does not denote a
+-is @samp{TERM}@. The special signal number @samp{0} does not denote a
-valid signal, but can be used to test whether the @var{pid} arguments
-specify processes to which a signal could be sent.
-
-
-If a negative @var{pid} argument is desired as the first one, it
-should be preceded by @option{--}. However, as a common extension to
--@acronym{POSIX}, @option{--} is not required with @samp{kill
+-POSIX, @option{--} is not required with @samp{kill
--@var{signal} -@var{pid}}. The following commands are equivalent:
-
-@example
-A @var{signal} may be a signal name like @samp{HUP}, or a signal
-number like @samp{1}, or an exit status of a process terminated by the
-signal. A signal name can be given in canonical form or prefixed by
--@samp{SIG}. The case of the letters is ignored, except for the
+-@samp{SIG}@. The case of the letters is ignored, except for the
-@option{-@var{signal}} option which must use upper case to avoid
--ambiguity with lower case option letters. For a list of supported
--signal names and numbers see @xref{Signal specifications}.
+-ambiguity with lower case option letters.
+-@xref{Signal specifications}, for a list of supported
+-signal names and numbers.
-
@node Delaying
@chapter Delaying
-@@ -15607,11 +15452,11 @@
+@@ -16509,11 +16350,11 @@
@c Perhaps @command{wait} or other commands should be described here also?
@menu
@section @command{sleep}: Delay for a specified time
@pindex sleep
-@@ -15662,12 +15507,12 @@
+@@ -16563,12 +16404,12 @@
These programs do numerically-related operations.
@menu
@section @command{factor}: Print prime factors
@pindex factor
-@@ -15723,7 +15568,7 @@
+@@ -16626,7 +16467,7 @@
@exitstatus
+++ /dev/null
---- coreutils-4.5.3/lib/physmem.c.orig Fri Nov 16 10:20:25 2001
-+++ coreutils-4.5.3/lib/physmem.c Sun Oct 27 22:35:25 2002
-@@ -31,6 +31,14 @@
- # include <sys/pstat.h>
- #endif
-
-+/* Cap physical memory to something sane */
-+static double
-+physmem_cap (double mem)
-+{
-+ double max = 1 << (sizeof(void *)*8 - 4);
-+ return mem > max ? max : mem;
-+}
-+
- /* Return the total amount of physical memory. */
- double
- physmem_total (void)
-@@ -40,7 +48,7 @@
- double pages = sysconf (_SC_PHYS_PAGES);
- double pagesize = sysconf (_SC_PAGESIZE);
- if (0 <= pages && 0 <= pagesize)
-- return pages * pagesize;
-+ return physmem_cap(pages * pagesize);
- }
- #endif
-
-@@ -106,7 +106,7 @@
- double pages = pss.physical_memory;
- double pagesize = pss.page_size;
- if (0 <= pages && 0 <= pagesize)
-- return pages * pagesize;
-+ return physmem_cap(pages * pagesize);
- }
- }
- #endif
-
+++ /dev/null
---- coreutils-6.7/src/Makefile.am.pam 2006-11-24 21:28:10.000000000 +0000
-+++ coreutils-6.7/src/Makefile.am 2007-01-09 17:00:01.000000000 +0000
-@@ -359,7 +359,7 @@
- uptime_LDADD += $(GETLOADAVG_LIBS)
-
- # for crypt
--su_LDADD += $(LIB_CRYPT)
-+su_LDADD += $(LIB_CRYPT) $(LIB_PAM)
-
- # for various ACL functions
- copy_LDADD += $(LIB_ACL)
---- coreutils-6.10/src/su.c.orig 2007-11-25 14:23:31.000000000 +0100
-+++ coreutils-6.10/src/su.c 2008-03-02 02:07:13.568059486 +0100
-@@ -37,6 +37,16 @@
- restricts who can su to UID 0 accounts. RMS considers that to
- be fascist.
-
-+#ifdef USE_PAM
-+
-+ 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.conf
-+
-+#endif
-+
- 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.
-@@ -58,6 +68,15 @@
- prototype (returning `int') in <unistd.h>. */
- #define getusershell _getusershell_sys_proto_
-
-+#ifdef USE_PAM
-+# include <signal.h>
-+# include <sys/wait.h>
-+# include <sys/fsuid.h>
-+# include <unistd.h>
-+# include <security/pam_appl.h>
-+# include <security/pam_misc.h>
-+#endif /* USE_PAM */
-+
- #include "system.h"
- #include "getpass.h"
-
-@@ -130,10 +130,17 @@
- /* The user to become if none is specified. */
- #define DEFAULT_USER "root"
-
-+#ifndef USE_PAM
- char *crypt (char const *key, char const *salt);
-+#endif
-
--static void run_shell (char const *, char const *, char **, size_t)
-+static void run_shell (char const *, char const *, char **, size_t,
-+ const struct passwd *)
-+#ifdef USE_PAM
-+ ;
-+#else
- ATTRIBUTE_NORETURN;
-+#endif
-
- /* If true, pass the `-f' option to the subshell. */
- static bool fast_startup;
-@@ -215,7 +241,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 if (retval) { \
-+ pam_end(pamh, PAM_SUCCESS); \
-+ return 0; \
-+}
-+#define PAM_BAIL_P_VOID if (retval) { \
-+ pam_end(pamh, PAM_SUCCESS); \
-+return; \
-+}
-+#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. */
-@@ -223,6 +268,44 @@
- static bool
- correct_password (const struct passwd *pw)
- {
-+#ifdef USE_PAM
-+ struct passwd *caller;
-+ char *tty_name, *ttyn;
-+ retval = pam_start(PROGRAM_NAME, pw->pw_name, &conv, &pamh);
-+ PAM_BAIL_P;
-+
-+ if (getuid() != 0 && !isatty(0)) {
-+ fprintf(stderr, _("standard in must be a tty\n"));
-+ exit(1);
-+ }
-+
-+ caller = getpwuid(getuid());
-+ if(caller != NULL && caller->pw_name != NULL) {
-+ retval = pam_set_item(pamh, PAM_RUSER, caller->pw_name);
-+ PAM_BAIL_P;
-+ }
-+
-+ ttyn = ttyname(0);
-+ if (ttyn) {
-+ if (strncmp(ttyn, "/dev/", 5) == 0)
-+ tty_name = ttyn+5;
-+ else
-+ tty_name = ttyn;
-+ retval = pam_set_item(pamh, PAM_TTY, tty_name);
-+ PAM_BAIL_P;
-+ }
-+ retval = pam_authenticate(pamh, 0);
-+ PAM_BAIL_P;
-+ retval = pam_acct_mgmt(pamh, 0);
-+ if (retval == PAM_NEW_AUTHTOK_REQD && getuid()) {
-+ /* password has expired. Offer option to change it. */
-+ retval = pam_chauthtok(pamh, PAM_CHANGE_EXPIRED_AUTHTOK);
-+ PAM_BAIL_P;
-+ }
-+ PAM_BAIL_P;
-+ /* must be authenticated if this point was reached */
-+ return 1;
-+#else /* !USE_PAM */
- char *unencrypted, *encrypted, *correct;
- #if HAVE_GETSPNAM && HAVE_STRUCT_SPWD_SP_PWDP
- /* Shadow passwd stuff for SVR3 and maybe other systems. */
-@@ -247,6 +330,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
-@@ -260,12 +344,18 @@
- /* Leave TERM unchanged. Set HOME, SHELL, USER, LOGNAME, PATH.
- Unset all other environment variables. */
- char const *term = getenv ("TERM");
-+ char const *display = getenv ("DISPLAY");
-+ char const *xauthority = getenv ("XAUTHORITY");
- if (term)
- term = xstrdup (term);
- environ = xmalloc ((6 + !!term) * sizeof (char *));
- environ[0] = NULL;
- if (term)
- xsetenv ("TERM", term);
-+ if (display)
-+ xsetenv ("DISPLAY", display);
-+ if (xauthority)
-+ xsetenv ("XAUTHORITY", xauthority);
- xsetenv ("HOME", pw->pw_dir);
- xsetenv ("SHELL", shell);
- xsetenv ("USER", pw->pw_name);
-@@ -373,8 +373,13 @@
- {
- #ifdef HAVE_INITGROUPS
- errno = 0;
-- if (initgroups (pw->pw_name, pw->pw_gid) == -1)
-+ if (initgroups (pw->pw_name, pw->pw_gid) == -1) {
-+#ifdef USE_PAM
-+ pam_close_session(pamh, 0);
-+ pam_end(pamh, PAM_ABORT);
-+#endif
- error (EXIT_CANCELED, errno, _("cannot set groups"));
-+ }
- endgrent ();
- #endif
- if (setgid (pw->pw_gid))
-@@ -308,6 +403,31 @@
- error (EXIT_FAILURE, errno, _("cannot set user id"));
- }
-
-+#ifdef USE_PAM
-+static int caught=0;
-+/* Signal handler for parent process later */
-+static void su_catch_sig(int sig)
-+{
-+ ++caught;
-+}
-+
-+int
-+pam_copyenv (pam_handle_t *pamh)
-+{
-+ char **env;
-+
-+ env = pam_getenvlist(pamh);
-+ if(env) {
-+ while(*env) {
-+ if (putenv (*env))
-+ xalloc_die ();
-+ env++;
-+ }
-+ }
-+ return(0);
-+}
-+#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
-@@ -315,17 +435,49 @@
-
- static void
- run_shell (char const *shell, char const *command, char **additional_args,
-- size_t n_additional_args)
-+ size_t n_additional_args, const struct passwd *pw)
- {
- 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
-+ int child;
-+ sigset_t ourset;
-+ int status;
-+
-+ retval = pam_open_session(pamh,0);
-+ if (retval != PAM_SUCCESS) {
-+ fprintf (stderr, _("could not open session\n"));
-+ exit (1);
-+ }
-+
-+/* do this at the last possible moment, because environment variables may
-+ be passed even in the session phase
-+*/
-+ if(pam_copyenv(pamh) != PAM_SUCCESS)
-+ fprintf (stderr, _("error copying PAM environment\n"));
-+
-+ /* Credentials should be set in the parent */
-+ if (pam_setcred(pamh, PAM_ESTABLISH_CRED) != PAM_SUCCESS) {
-+ pam_close_session(pamh, 0);
-+ fprintf(stderr, _("could not set PAM credentials\n"));
-+ exit(1);
-+ }
-+
-+ child = fork();
-+ if (child == 0) { /* child shell */
-+ change_identity (pw);
-+ pam_end(pamh, 0);
-+#endif
-
- if (simulate_login)
- {
- char *arg0;
- char *shell_basename;
-
-+ if(chdir(pw->pw_dir))
-+ error(0, errno, _("warning: cannot change directory to %s"), pw->pw_dir);
-+
- shell_basename = last_component (shell);
- arg0 = xmalloc (strlen (shell_basename) + 2);
- arg0[0] = '-';
-@@ -350,6 +502,66 @@
- error (0, errno, "%s", shell);
- exit (exit_status);
- }
-+#ifdef USE_PAM
-+ } else if (child == -1) {
-+ fprintf(stderr, _("can not fork user shell: %s"), strerror(errno));
-+ pam_setcred(pamh, PAM_DELETE_CRED | PAM_SILENT);
-+ pam_close_session(pamh, 0);
-+ pam_end(pamh, PAM_ABORT);
-+ exit(1);
-+ }
-+ /* parent only */
-+ sigfillset(&ourset);
-+ if (sigprocmask(SIG_BLOCK, &ourset, NULL)) {
-+ fprintf(stderr, _("%s: signal malfunction\n"), PROGRAM_NAME);
-+ caught = 1;
-+ }
-+ 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)) {
-+ fprintf(stderr, _("%s: signal masking malfunction\n"), PROGRAM_NAME);
-+ caught = 1;
-+ }
-+ }
-+ if (!caught) {
-+ do {
-+ int pid;
-+
-+ pid = waitpid(-1, &status, WUNTRACED);
-+
-+ if (WIFSTOPPED(status)) {
-+ kill(getpid(), SIGSTOP);
-+ /* once we get here, we must have resumed */
-+ kill(pid, SIGCONT);
-+ }
-+ } while (WIFSTOPPED(status));
-+ }
-+
-+ if (caught) {
-+ fprintf(stderr, _("\nSession terminated, killing shell..."));
-+ kill (child, SIGTERM);
-+ }
-+ /* Not checking retval on this because we need to call close session */
-+ pam_setcred(pamh, PAM_DELETE_CRED | PAM_SILENT);
-+ retval = pam_close_session(pamh, 0);
-+ PAM_BAIL_P_VOID;
-+ retval = pam_end(pamh, PAM_SUCCESS);
-+ PAM_BAIL_P_VOID;
-+ if (caught) {
-+ sleep(2);
-+ kill(child, SIGKILL);
-+ fprintf(stderr, _(" ...killed.\n"));
-+ exit(-1);
-+ }
-+ exit (WEXITSTATUS(status));
-+#endif /* USE_PAM */
- }
-
- /* Return true if SHELL is a restricted shell (one not returned by
-@@ -714,9 +714,9 @@
- shell = xstrdup (shell ? shell : pw->pw_shell);
- modify_environment (pw, shell);
-
-+#ifndef USE_PAM
- change_identity (pw);
-- if (simulate_login && chdir (pw->pw_dir) != 0)
-- error (0, errno, _("warning: cannot change directory to %s"), pw->pw_dir);
-+#endif
-
- /* error() flushes stderr, but does not check for write failure.
- Normally, we would catch this via our atexit() hook of
-@@ -726,5 +726,5 @@
- if (ferror (stderr))
- exit (EXIT_CANCELED);
-
-- run_shell (shell, command, argv + optind, MAX (0, argc - optind));
-+ run_shell (shell, command, argv + optind, MAX (0, argc - optind), pw);
- }
---- coreutils-6.7/doc/coreutils.texi.pam 2006-10-27 15:30:48.000000000 +0100
-+++ coreutils-6.7/doc/coreutils.texi 2007-01-09 17:00:01.000000000 +0000
-@@ -13395,8 +13395,11 @@
- @findex syslog
- @command{su} can optionally be compiled to use @code{syslog} to report
- failed, and optionally successful, @command{su} attempts. (If the system
--supports @code{syslog}.) However, GNU @command{su} does not check if the
--user is a member of the @code{wheel} group; see below.
-+supports @code{syslog}.)
-+
-+This version of @command{su} has support for using PAM for
-+authentication. You can edit @file{/etc/pam.d/su} to customize its
-+behaviour.
-
- The program accepts the following options. Also see @ref{Common options}.
-
-@@ -11892,32 +11892,6 @@
- the exit status of the subshell otherwise
- @end display
-
--@cindex wheel group, not supported
--@cindex group wheel, not supported
--@cindex fascism
--@subsection Why GNU @command{su} does not support the @samp{wheel} group
--
--(This section is by Richard Stallman.)
--
--@cindex Twenex
--@cindex MIT AI lab
--Sometimes a few of the users try to hold total power over all the
--rest. For example, in 1984, a few users at the MIT AI lab decided to
--seize power by changing the operator password on the Twenex system and
--keeping it secret from everyone else. (I was able to thwart this coup
--and give power back to the users by patching the kernel, but I
--wouldn't know how to do that in Unix.)
--
--However, occasionally the rulers do tell someone. Under the usual
--@command{su} mechanism, once someone learns the root password who
--sympathizes with the ordinary users, he or she can tell the rest. The
--``wheel group'' feature would make this impossible, and thus cement the
--power of the rulers.
--
--I'm on the side of the masses, not that of the rulers. If you are
--used to supporting the bosses and sysadmins in whatever they do, you
--might find this idea strange at first.
--
-
- @node Delaying
- @chapter Delaying
---- coreutils-6.10/configure.ac.orig 2008-01-13 09:14:23.000000000 +0100
-+++ coreutils-6.10/configure.ac 2008-03-02 02:08:10.027276914 +0100
-@@ -44,6 +44,13 @@
- gl_INIT
- coreutils_MACROS
-
-+dnl Give the chance to enable PAM
-+AC_ARG_ENABLE(pam, dnl
-+[ --enable-pam Enable use of the PAM libraries],
-+AC_DEFINE(USE_PAM, 1, [Define if you want to use PAM])
-+LIB_PAM="-ldl -lpam -lpam_misc"
-+)
-+
- AC_FUNC_FORK
-
- optional_bin_progs=
-@@ -332,6 +339,13 @@
- AM_GNU_GETTEXT([external], [need-formatstring-macros])
- AM_GNU_GETTEXT_VERSION([0.15])
-
-+# just in case we want PAM
-+AC_SUBST(LIB_PAM)
-+# with PAM su doesn't need libcrypt
-+if test -n "$LIB_PAM" ; then
-+ LIB_CRYPT=
-+fi
-+
- AC_CONFIG_FILES(
- Makefile
- doc/Makefile
---- coreutils-6.10/po/pl.po.orig 2008-01-16 21:22:08.000000000 +0100
-+++ coreutils-6.10/po/pl.po 2008-03-02 02:09:23.671473657 +0100
-@@ -8875,6 +8875,49 @@
- msgid "Usage: %s [OPTION]... [-] [USER [ARG]...]\n"
- msgstr "Składnia: %s [OPCJA]... [-] [UŻYTKOWNIK [ARGUMENT]...]\n"
-
-+#: src/su.c:300
-+msgid "standard in must be a tty\n\n"
-+msgstr "standardowe wejście musi być terminalem\n"
-+
-+#: src/su.c:425
-+msgid "could not open session\n"
-+msgstr "nie można otworzyć sesji\n"
-+
-+#: src/su.c:433
-+msgid "error copying PAM environment\n"
-+msgstr "błąd podczas kopiowania środowiska PAM\n"
-+
-+#: src/su.c:450
-+msgid "could not set PAM credentials\n"
-+msgstr "błąd podczas ustawiania uwierzytelnienia PAM\n"
-+
-+#: src/su.c:471
-+#, c-format
-+msgid "cannot fork user shell: %s"
-+msgstr "nie można utworzyć procesu powłoki użytkownika: %s"
-+
-+#: src/su.c:477
-+#, c-format
-+msgid "%s: signal malfunction\n"
-+msgstr "%s: błędne działanie sygnałów\n"
-+
-+#: src/su.c:490
-+#, c-format
-+msgid "%s: signal masking malfunction\n"
-+msgstr "%s: błędne działanie maskowania sygnałów\n"
-+
-+#: src/su.c:509
-+msgid ""
-+"\n"
-+"Session terminated, killing shell..."
-+msgstr ""
-+"\n"
-+"Sesja zakończona, zabijanie powłoki..."
-+
-+#: src/su.c:519
-+msgid " killed.\n"
-+msgstr " zabito.\n"
-+
- #: src/su.c:372
- msgid ""
- "Change the effective user id and group id to that of USER.\n"
-diff -Nur coreutils-5.2.1.orig/man/es/su.1 coreutils-5.2.1/man/es/su.1
---- coreutils-5.2.1.orig/man/es/su.1 Mon Apr 12 14:26:19 1999
-+++ coreutils-5.2.1/man/es/su.1 Thu Mar 18 17:05:55 2004
-@@ -47,13 +47,6 @@
- puede ser compilado para reportar fallo, y opcionalmente éxito en syslog.
- .B su
- intentará utilizar syslog.
--.PP
--Este programa no soporta el grupo "wheel", el cual restringe quien podrá
--ejecutar
--.B su
--hacia la cuenta de root (el superusuario) ya que esta política podría
--ayudar a los administradores de máquinas a facilitar un uso inadecuado a otros
--usuarios.
- .SS OPCIONES
- .TP
- .I "\-c COMANDO, \-\-command=COMANDO"
-@@ -118,22 +111,3 @@
- .I "\-\-version"
- Escribe información sobre la versión en la salida estándar y acaba sin
- provocar error.
--
--.SH Por que GNU no soporta el grupo "wheel" (por Richard Stallman)
--A veces, algunos listillos intentan hacerse con el poder total
--sobre el resto de usuarios. Por ejemplo, en 1984, un grupo de usuarios del
--laboratorio de Inteligencia Artificial del MIT decidieron tomar el poder
--cambiando el password de operador del sistema Twenex y manteniendolo secreto
--para el resto de usuarios. (De todas maneras, hubiera sido posible desbaratar
--la situación y devolver el control a los usuarios legítimos parcheando el
--kernel, pero no sabría como realizar esta operación en un sistema Unix.)
--.PP
--Sin embargo, casualmente alguien contó el secreto. Mediante el uso habitual de
--.B su
--una vez que alguien conoce el password de root puede contarselo al resto de
--usuarios. El grupo "wheel" hará que esto sea imposible, protegiendo así el poder
--de los superusuarios.
--.PP
--Yo estoy del lado de las masas, no de los superusuarios. Si eres de los que
--estan de acuerdo con los jefes y los administradores de sistemas en cualquier
--cosa que hagan, al principio encontrarás esta idea algo extraña.
-diff -Nur coreutils-5.2.1.orig/man/fr/su.1 coreutils-5.2.1/man/fr/su.1
---- coreutils-5.2.1.orig/man/fr/su.1 Sun Aug 10 12:00:00 2003
-+++ coreutils-5.2.1/man/fr/su.1 Thu Mar 18 17:05:55 2004
-@@ -54,13 +54,6 @@
- peut être compilé afin de fournir des rapports d'échec, et éventuellement
- de réussite des tentatives d'utilisation de
- .BR su .
--.PP
--Ce programme ne gère pas le "groupe wheel" utilisé pour restreindre
--l'accès par
--.B su
--au compte Super-Utilisateur, car il pourrait aider des administrateurs
--système fascistes à disposer d'un pouvoir incontrôlé
--sur les autres utilisateurs.
- .SS OPTIONS
- .TP
- .I "\-c COMMANDE, \-\-command=COMMANDE"
-@@ -119,25 +112,5 @@
- .I "\-\-version"
- Afficher un numéro de version sur la sortie standard et se terminer normalement.
-
--.SH Pourquoi GNU SU ne gère-t-il pas le groupe `wheel' (par Richard Stallman)
--Il peut arriver qu'un petit groupe d'utilisateurs essayent de s'approprier
--l'ensemble du système. Par exemple, en 1984, quelques utilisateurs du
--laboratoire d'I.A du MIT ont tentés de prendre le pouvoir en modifiant
--le mot de passe de l'opérateur sur le système Twenex, et en
--gardant ce mot de passe secret. (J'ai pu les en empêcher en modifiant le noyau, et
--restaurer ainsi les autres accès, mais je ne saurais pas en faire autant
--sous Unix).
--.PP
--Néanmoins, il arrive parfois que les chefs fournissent le mot
--de passe de root à un utilisateur ordinaire.
--Avec le mécanisme habituel de \fBsu\fP,
--une fois que quelqu'un connaît ce mot de passe, il peut le transmettre
--à ses amis. Le principe du "groupe wheel" rend ce partage impossible,
--ce qui renforce la puissance des chefs.
--.PP
--Je me situe du cote du peuple, pas du côté des chefs. Si vous avez l'habitude
--de soutenir les patrons et les administrateurs systèmes quoi qu'ils fassent,
--cette idée peut vous paraître étrange au premier abord.
--
- .SH TRADUCTION
- Christophe Blaess, 1997-2003.
-diff -Nur coreutils-5.2.1.orig/man/hu/su.1 coreutils-5.2.1/man/hu/su.1
---- coreutils-5.2.1.orig/man/hu/su.1 Sun Jul 9 14:19:12 2000
-+++ coreutils-5.2.1/man/hu/su.1 Thu Mar 18 17:05:55 2004
-@@ -151,33 +151,6 @@
- .B "\-\-version"
- A program verziójáról ír ki információt a standard kimenetre, majd
- sikeres visszatérési értékkel kilép.
--.SH Miért nem támogatja a GNU su a wheel csoportot? (Richard Stallman)
--
--Néha a rendszer fölötti teljes ellenõrzést egy néhány emberbõl
--álló csoport akarja kézbe venni. Például 1984-ben pár user a MIT AI
--laborban úgy döntött, hogy átveszik az irányítást a Twenex rendszer
--operátori jelszavának megváltoztatásával, és annak titokban tartásával.
--(A puccsot sikerült leverni, és a felhasználókat jogaikba visszahelyezni
--egy kernel patch segítségével, de Unix alatt ezt nem tudtam volna megcsinálni.)
--(A fordító megj.: a wheel csoportot ezzel a módszerrel könnyen
--önkényesen is leszûkíthetik a csoporttagok , így tulajdonképpen nincs sok értelme.)
--.PP
--Néha az uralmon levõk elárulják a root jelszót. A szokásos su
--mechanizmus szerint, ha valaki megtudja a root jelszót, és
--szimpatizál a többi közönséges felhasználóval, elárulhatja nekik
--is. A wheel csoport ezt lehetetlenné tenné, és így bebetonozná az
--uralmon levõ hatalmát.
--.PP
--Én a tömegek oldalán állok, nem az uralkodókén. Ha te mindig a
--fõnökök és a rendszergazdák oldalán állsz, bármit is tesznek, akkor
--valószínûleg furcsálni fogod ezt a hozzáállást.
--.PP
--A fordító megjegyzése:
--Valami jó azért mégis lenne a wheel csoportban: az, hogy ha a root
--jelszó kitudódna azzal nem tudna bármelyik felhasználó közvetlenül
--visszaélni. A wheel csoporthoz hasonló dolgot lehet elérni a
--.B sudo
--csomaggal.
- .SH MEGJEGYZÉS
- A hibákat a bug-sh-utils@gnu.org címen lehet jelenteni.
- Az oldalt Ragnar Hojland Espinosa <ragnar@macula.net> frissítette.
-diff -Nur coreutils-5.2.1.orig/man/it/su.1 coreutils-5.2.1/man/it/su.1
---- coreutils-5.2.1.orig/man/it/su.1 Mon Jul 1 23:09:38 2002
-+++ coreutils-5.2.1/man/it/su.1 Thu Mar 18 17:05:55 2004
-@@ -52,11 +52,6 @@
- .B su
- può essere compilato per riportare tramite syslog gli errori, ed
- eventualmente anche i successi che ottiene.
--.PP
--Questo programma non supporta un "gruppo wheel" che limita chi può fare
--.B su
--agli account del superuser, poiché ciò può aiutare amministratori di
--sistema "fascisti" a tenere un potere inautorizzato sugli altri utenti.
- .SS OPZIONI
- .TP
- .I "\-c COMANDO, \-\-command=COMANDO"
-@@ -117,21 +112,3 @@
- .I "\-\-version"
- Stampa in standard output informazioni sulla versione e esce (con
- successo).
--.SH Perché GNU su non supporta il gruppo wheel (di Richard Stallman)
--Qualche volta pochi utenti provano a tenere il potere assoluto sul
--resto degli utenti. Per esempio, nel 1984, alcuni utenti nel
--laboratorio di AI del MIT decisero impossessarsi del potere cambiando
--la password dell'operatore su un sistema Twenex e tenendola segreta a
--tutti gli altri (fui in grado di contrastare questo colpaccio e
--restituire il potere agli utenti ``patch-ando'' il kernel, ma non
--saprei come fare ciò in Unix).
--.PP
--Comunque, occasionalmente i sovrani lo fanno. Tramite l'usuale
--meccanismo su, una volta che qualcuno che simpatizzi con gli
--utenti normali, abbia imparato la password di root può dirla anche
--agli altri. La caratteristica del "gruppo wheel" renderebbe ciò
--impossibile, consolidando quindi il potere dei sovrani.
--.PP
--Io sono dalla parte delle masse, non da quella dei sovrani. Se tu sei
--abituato a sostenere i capi e gli amministratori di sistema in tutto
--quello che fanno, potresti trovare questa idea strana all'inizio.
-diff -Nur coreutils-5.2.1.orig/man/ja/su.1 coreutils-5.2.1/man/ja/su.1
---- coreutils-5.2.1.orig/man/ja/su.1 Sun Dec 14 16:06:54 2003
-+++ coreutils-5.2.1/man/ja/su.1 Thu Mar 18 17:05:55 2004
-@@ -83,12 +83,6 @@
- .B su
- ¤¬¼ºÇÔ¤·¤¿¤È¤ syslog ¤Ë¥ì¥Ý¡¼¥È¤¹¤ë¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È
- ¤¬¤Ç¤¤ë¡ÊÀ®¸ù¤ò¥ì¥Ý¡¼¥È¤¹¤ë¤è¤¦¤Ë¤â¤Ç¤¤ë¡Ë¡£
--.PP
--¤³¤Î¥×¥í¥°¥é¥à¤Ï "wheel group" ¤Îµ¡Ç½¡Ê
--.B su
--¤Ë¤è¤Ã¤Æ¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¥¢¥«¥¦¥ó¥È¤Ë¤Ê¤ì¤ë¥æ¡¼¥¶¤òÀ©¸Â¤¹¤ëµ¡Ç½¡Ë¤ò¥µ¥Ý¡¼
--¥È¤·¤Ê¤¤¡£¤³¤ì¤ÏÀìÀ©Åª¤Ê¥·¥¹¥Æ¥à´ÉÍý¼Ô¤¬Â¾¤Î¥æ¡¼¥¶¡¼¤ËÉÔÅö¤Ê¸¢ÎϤò¿¶¤ë
--¤¨¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ç¤¢¤ë¡£
- .SS OPTIONS
- .TP
- .I "\-c COMMAND, \-\-command=COMMAND"
-@@ -151,19 +145,3 @@
- .TP
- .I "\-\-version"
- ¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɸ½à½ÐÎϤËɽ¼¨¤·¡¢¼Â¹ÔÀ®¸ù¤òÊÖ¤·¤Æ½ªÎ»¤¹¤ë¡£
--.SH GNU su ¤Ç wheel ¥°¥ë¡¼¥×¤ò¥µ¥Ý¡¼¥È¤·¤Ê¤¤¤ï¤±¡ÊRichard Stallman¡Ë
--¤È¤¤ª¤ê¡¢¾¯¿ô¤Î¥æ¡¼¥¶¡¼¤Ë¤è¤Ã¤Æ¡¢Â¾¤Î¥æ¡¼¥¶¡¼¤ËÂФ¹¤ëÁ´¸¢¤ò¾¸°®¤·¤è¤¦
--¤È¤¹¤ë»î¤ß¤¬¤Ê¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£Î㤨¤Ð 1984 ǯ¡¢ MIT AI ¥é¥Ü¤Î¾¯¿ô¤Î¥æ¡¼
--¥¶¡¼¤Ï Twenex ¥·¥¹¥Æ¥à¤Î¥ª¥Ú¥ì¡¼¥¿¡¼¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹¸¢¸Â¤ò¶¯Ã¥¤·¡¢¤³¤ì
--¤ò¾¤Î¥æ¡¼¥¶¡¼¤«¤éÈëÆ¿¤¹¤ë¤³¤È¤Ë·èÄꤷ¤¿¡Ê¤³¤ÎºÝ¤Ë¤Ï»ä¤Ï¤³¤Î¥¯¡¼¥Ç¥¿¡¼
--¤Î΢¤ò¤«¤¡¢¥«¡¼¥Í¥ë¤Ë¥Ñ¥Ã¥Á¤òÅö¤Æ¤Æ¸¢¸Â¤ò¼è¤êÊÖ¤¹¤³¤È¤ËÀ®¸ù¤·¤¿¡£¤·¤«
--¤·¤³¤ì¤¬ Unix ¤Ç¤¢¤Ã¤¿¤é¡¢»ä¤Ë¤Ï¤É¤¦¤¹¤ì¤Ð¤è¤¤¤«¤ï¤«¤é¤Ê¤«¤Ã¤¿¤À¤í¤¦¡Ë¡£
--.PP
--¤·¤«¤·¤Ê¤¬¤é¡¢»þ¤Ë¤ÏÀìÀ©¼Ô¤âÈëÌ©¤òϳ¤é¤¹¤â¤Î¤Ç¤¢¤ë¡£Ä̾ï¤Î su ¤Î¥á¥«¥Ë
--¥º¥à¤Ç¤Ï¡¢°ìÈ̥桼¥¶¡¼¤Î¦¤ËΩ¤Ä¼Ô¤¬ root ¤Î¥Ñ¥¹¥ï¡¼¥É¤òÃΤì¤Ð¡¢¤³¤ì¤ò
--¾¤Î¥æ¡¼¥¶¡¼¤Ë¤âÃΤ餻¤ë¤³¤È¤¬¤Ç¤¤ë¡£¤·¤«¤· "wheel group" µ¡Ç½¤Ï¤³¤ì
--¤òÉÔ²Äǽ¤Ë¤·¡¢·ë²Ì¤È¤·¤ÆÀìÀ©¼Ôã¤Î¸¢¸Â¤ò¶¯¸Ç¤¿¤ë¤â¤Î¤Ë¤·¤Æ¤·¤Þ¤¦¡£
--.PP
--»ä¤ÏÂç½°¤Î¦¤ËΩ¤Ä¤â¤Î¤Ç¤¢¤ê¡¢ÀìÀ©Åª¤ÊΩ¾ì¤Ë¤ÏÈ¿ÂФ¹¤ë¡£¤¢¤Ê¤¿¤Ï¥Ü¥¹¤ä
--¥·¥¹¥Æ¥à´ÉÍý¼Ô¤Î¤ä¤ê¸ý¤Ë½¾¤¦¤³¤È¤Ë´·¤ì¤Æ¤¤¤ë¤«¤âÃΤì¤Ê¤¤¤¬¡¢¤½¤Î¾ì¹ç¤Ï
--¤Þ¤º¤½¤Î¤³¤È¼«¿È¤òÉԻ׵Ĥ˻פ¦¤Ù¤¤Ç¤Ï¤Ê¤¤¤À¤í¤¦¤«¡£
-diff -Nur coreutils-5.2.1.orig/man/pl/su.1 coreutils-5.2.1/man/pl/su.1
---- coreutils-5.2.1.orig/man/pl/su.1 Tue Jun 20 16:07:31 2000
-+++ coreutils-5.2.1/man/pl/su.1 Thu Mar 18 17:05:55 2004
-@@ -78,8 +78,6 @@
- mo¿e zostaæ tak skompilowane, by raportowa³o nieudane, lub opcjonalnie
- równie¿ udane próby zmiany id przy u¿yciu
- .BR su .
--Jednak \fBsu\fP w wersji GNU nie sprawdza czy u¿ytkownik jest cz³onkiem grupy
--`wheel' -- patrz poni¿ej.
- .SH OPCJE
- .TP
- .BR \-c " \fIpolecenie\fP, " \-\-command= \fIpolecenie
-@@ -139,25 +137,6 @@
- .TP
- .B \-\-version
- Wy¶wietla numer wersji programu i koñczy pracê.
--.SH Dlaczego GNU `su' nie obs³uguje grupy `wheel'
--
--(Sekcjê tê napisa³ Richard Stallman)
--
--Czasami kilku u¿ytkowników usi³uje sprawowaæ nieograniczon± w³adzê nad
--pozosta³ymi. Na przyk³ad, w 1984, kilku u¿ytkowników w laboratorium AI MIT
--zdecydowa³o siê `przej±æ w³adzê' zmieniaj±c has³o operatora systemu Twenex
--i trzymaj±c je w tajemnicy przed wszystkimi innymi. (Uda³o mi siê
--udaremniæ ten zamach i przywróciæ w³adzê u¿ytkownikom ³ataj±c j±dro, lecz
--nie wiedzia³bym jak zrobiæ to w Uniksie.)
--
--Jednak, od czasu do czasu panuj±cy wyjawiaj± komu¶. Przy zwyk³ym
--mechanizmie `su', kto¶, kto pozna³ has³o root'a i sympatyzuje ze zwyk³ymi
--u¿ytkownikami, mo¿e przekazaæ je pozosta³ym. Funkcja "grupy wheel"
--uniemo¿liwia³aby to, i w ten sposób umacnia³a w³adzê rz±dz±cych.
--
--Jestem po stronie mas, nie po stronie rz±dz±cych. Je¿eli zwyk³e¶ popieraæ
--szefów i administratorów systemów we wszystkim, co robi±, podej¶cie to mo¿e
--pocz±tkowo wydaæ Ci siê dziwne.
- .SH "ZG£ASZANIE B£ÊDÓW"
- B³êdy proszê zg³aszaæ, w jêz.ang., do <bug-sh-utils@gnu.org>.
- .SH COPYRIGHT
---- coreutils-8.16/po/pl.po.orig 2012-03-26 14:08:45.000000000 +0200
-+++ coreutils-8.16/po/pl.po 2012-04-18 18:00:32.969889049 +0200
-@@ -14,10 +14,10 @@
+--- coreutils-8.20/po/pl.po.orig 2012-11-18 07:22:42.025241225 +0100
++++ coreutils-8.20/po/pl.po 2012-11-18 07:46:58.035210874 +0100
+@@ -14,7 +14,7 @@
# 2 format strings: Jakub Bogusz <qboosh@pld-linux.org>, 2007.
msgid ""
msgstr ""
--"Project-Id-Version: coreutils 8.16-pre1\n"
-+"Project-Id-Version: coreutils 8.16\n"
+-"Project-Id-Version: coreutils 8.19\n"
++"Project-Id-Version: coreutils 8.20\n"
"Report-Msgid-Bugs-To: bug-coreutils@gnu.org\n"
- "POT-Creation-Date: 2012-03-26 14:08+0200\n"
--"PO-Revision-Date: 2012-03-20 01:07+0100\n"
-+"PO-Revision-Date: 2012-03-27 00:00+0200\n"
- "Last-Translator: Rafał Maszkowski <rzm@icm.edu.pl>\n"
- "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
- "Language: pl\n"
-@@ -560,15 +560,15 @@
-
- #: lib/spawn-pipe.c:138 lib/spawn-pipe.c:141 lib/spawn-pipe.c:262
- #: lib/spawn-pipe.c:265
--#, fuzzy, c-format
-+#, c-format
- msgid "cannot create pipe"
--msgstr "nie można utworzyć potoku %s"
-+msgstr "nie można utworzyć potoku"
+ "POT-Creation-Date: 2012-10-23 16:59+0100\n"
+ "PO-Revision-Date: 2012-08-20 20:15+0200\n"
+@@ -3173,7 +3173,6 @@
+ " ibs=BAJTÓW czytanie tylu BAJTÓW naraz (domyślnie: 512)\n"
- #: lib/spawn-pipe.c:232 lib/spawn-pipe.c:346 lib/wait-process.c:282
- #: lib/wait-process.c:356
--#, fuzzy, c-format
-+#, c-format
- msgid "%s subprocess failed"
--msgstr "%s: nie udało się ustawienie pozycji"
-+msgstr "%s: błąd procesu potomnego"
+ #: src/dd.c:535
+-#, fuzzy
+ msgid ""
+ " if=FILE read from FILE instead of stdin\n"
+ " iflag=FLAGS read as per the comma separated symbol list\n"
+@@ -3194,10 +3193,10 @@
+ " oddzielonych przecinkami\n"
+ " seek=ILE przeskoczenie ILU bloków o rozmiarze obs na wyjściu\n"
+ " skip=ILE przeskoczenie ILU bloków o rozmiarze ibs na wejściu\n"
+-" status=noxfer bez statystyki kopiowania\n"
++" status=JAKIE JAIE informacje pomijać na wyjściu diagnostycznym;\n"
++" 'noxfer' bez statystyki kopiowania, 'none' bez niczego\n"
- #: lib/strsignal.c:114
+ #: src/dd.c:546
+-#, fuzzy
+ msgid ""
+ "\n"
+ "N and BYTES may be followed by the following multiplicative suffixes:\n"
+@@ -3208,7 +3207,7 @@
+ "\n"
+ msgstr ""
+ "\n"
+-"N, BLOKI i BAJTY mogą mieć następujące przyrostki mnożące:\n"
++"N i BAJTY mogą mieć następujące przyrostki mnożące:\n"
+ "c =1, w =2, b =512, kB =1000, K =1024, MB =1000*1000, M =1024*1024, xM =M\n"
+ "GB =1000*1000*1000, G =1024*1024*1024, itd. dla T, P, E, Z, Y.\n"
+ "\n"
+@@ -3640,7 +3639,7 @@
+ #: src/df.c:319 src/df.c:328
#, c-format
-@@ -794,24 +794,24 @@
- msgstr "Pomoc w używaniu oprogramowania GNU: http://www.gnu.org/gethelp/\n"
+ msgid "%s-%s"
+-msgstr ""
++msgstr "%2$s %1$s"
- #: lib/w32spawn.h:43
--#, fuzzy, c-format
-+#, c-format
- msgid "_open_osfhandle failed"
--msgstr "błąd otwierania pliku"
-+msgstr "błąd _open_osfhandle"
+ #: src/df.c:873
+ msgid ""
+@@ -3989,7 +3988,7 @@
+ #: src/du.c:501
+ #, c-format
+ msgid "mount point %s already traversed"
+-msgstr ""
++msgstr "punkt montowania %s już był przejrzany"
- #: lib/w32spawn.h:84
+ #: src/du.c:611
#, c-format
- msgid "cannot restore fd %d: dup2 failed"
+@@ -4416,17 +4415,17 @@
+ #. This is a proper name. See the gettext manual, section Names.
+ #: src/factor.c:111
+ msgid "Niels Moller"
-msgstr ""
-+msgstr "nie można odtworzyć deskryptora %d: błąd dup2"
++msgstr "Niels Möller"
- #: lib/wait-process.c:223 lib/wait-process.c:255 lib/wait-process.c:317
+ #: src/factor.c:1252 src/factor.c:1352 src/factor.c:1428
#, c-format
- msgid "%s subprocess"
+ msgid "Lucas prime test failure. This should not happen"
-msgstr ""
-+msgstr "proces potomny %s"
++msgstr "Błąd testu Lucasa liczby pierwszej. Nie powinno się zdarzyć"
- #: lib/wait-process.c:274 lib/wait-process.c:346
+ #: src/factor.c:2061
#, c-format
- msgid "%s subprocess got fatal signal %d"
+ msgid "squfof queue overflow"
-msgstr ""
-+msgstr "proces potomny %s otrzymał fatalny sygnał %d"
++msgstr "przepełnienie kolejki squfof"
- #: lib/xfreopen.c:35
- msgid "stdin"
-@@ -5432,7 +5432,6 @@
- " -f, --force skasowanie istniejących CELÓW bez pytania\n"
+ #: src/factor.c:2377
+ msgid "using single-precision arithmetic"
+@@ -6079,7 +6078,7 @@
- #: src/ln.c:403
--#, fuzzy
+ #: src/md5sum.c:184
+ msgid " --tag create a BSD-style checksum\n"
+-msgstr ""
++msgstr " --tag tworzenie sum kontrolnych w stylu BSD\n"
+
+ #: src/md5sum.c:188
msgid ""
- " -i, --interactive prompt whether to remove destinations\n"
- " -L, --logical dereference TARGETs that are symbolic links\n"
-@@ -5450,6 +5449,8 @@
- " symbolicznym do katalogu, traktowany jest "
- "jak\n"
- " zwykły plik\n"
-+" -r, --relative tworzenie dowiązań symbolicznych względem ich\n"
-+" położenia\n"
- " -s, --symbolic tworzenie dowiązań symbolicznych zamiast "
- "zwykłych\n"
-
-@@ -5503,9 +5504,9 @@
- "nie można używać równocześnie --target-directory i --no-target-directory"
-
- #: src/ln.c:588
+@@ -6189,12 +6188,12 @@
+ #: src/md5sum.c:760
+ #, c-format
+ msgid "--tag does not support --text mode"
+-msgstr ""
++msgstr "--tag nie obsługuje trybu --text"
+
+ #: src/md5sum.c:766
-#, fuzzy, c-format
+#, c-format
- msgid "cannot do --relative without --symbolic"
--msgstr "nie można utworzyć dowiązania symbolicznego %s"
-+msgstr "nie można użyć --relative bez --symbolic"
+ msgid "the --tag option is meaningless when verifying checksums"
+-msgstr "opcja --status ma znaczenie tylko przy weryfikacji sum kontrolnych"
++msgstr "opcja --tag nie ma znaczenia przy weryfikacji sum kontrolnych"
- #. This is a proper name. See the gettext manual, section Names.
- #: src/logname.c:30
-@@ -7953,7 +7954,7 @@
+ #: src/md5sum.c:773
+ #, c-format
+@@ -6576,7 +6575,7 @@
+ msgstr "Składnia: %s [OPCJA] [POLECENIE [ARGUMENT]...]\n"
- #: src/relpath.c:130
- msgid "generating relative path"
--msgstr ""
-+msgstr "tworzenie ścieżki względnej"
+ #: src/nice.c:73
+-#, fuzzy, c-format
++#, c-format
+ msgid ""
+ "Run COMMAND with an adjusted niceness, which affects process scheduling.\n"
+ "With no COMMAND, print the current niceness. Niceness values range from\n"
+@@ -6585,9 +6584,10 @@
+ " -n, --adjustment=N add integer N to the niceness (default 10)\n"
+ msgstr ""
+ "Uruchomienie POLECENIA z poprawionym priorytetem, co wpływa na przydział\n"
+-"czasu procesora. Bez POLECENIE wypisuje bieżący priorytet. Priorytet może\n"
++"czasu procesora. Bez POLECENIA wypisuje bieżący priorytet. Priorytet może\n"
+ "mieć wartość od %d (największe przydziały czasu) do %d (najmniejsze).\n"
+ "\n"
++" -n, --adjustment=N dodanie liczby całkowitej N do priorytetu (domyślnie 10)\n"
- #: src/remove.c:286
+ #: src/nice.c:168
#, c-format
+@@ -11250,7 +11250,7 @@
+ #: src/timeout.c:456
+ #, c-format
+ msgid "the monitored command dumped core"
+-msgstr ""
++msgstr "monitorowane polecenie utworzyło zrzut pamięci"
+
+ #. This is a proper name. See the gettext manual, section Names.
+ #: src/touch.c:43
+@@ -11326,7 +11326,6 @@
+ " -m zmiana tylko czasu modyfikacji\n"
+
+ #: src/touch.c:238
+-#, fuzzy
+ msgid ""
+ " -r, --reference=FILE use this file's times instead of current time\n"
+ " -t STAMP use [[CC]YY]MMDDhhmm[.ss] instead of current time\n"
+@@ -11337,9 +11336,9 @@
+ " -r, --reference=PLIK użycie czasu tego PLIKU zamiast czasu bieżącego\n"
+ " -t CZAS użycie [[CC]YY]MMDDhhmm[.ss] zamiast bieżącego "
+ "czasu\n"
+-" --time=SŁOWO ustawienie czasu wg SŁOWA: access atime use (czas\n"
+-" dostępu, to samo co -a), modify mtime (czas\n"
+-" modyfikacji, to samo co -m)\n"
++" --time=SŁOWO ustawienie czasu wg SŁOWA:\n"
++" access, atime, use (czas dostępu, to samo co -a)\n"
++" modify, mtime (czas modyfikacji, to samo co -m)\n"
+
+ #: src/touch.c:247
+ msgid ""
+++ /dev/null
-diff -urNp coreutils-8.7-orig/README coreutils-8.7/README
---- coreutils-8.7-orig/README 2010-10-11 19:35:11.000000000 +0200
-+++ coreutils-8.7/README 2010-11-15 10:10:43.002922253 +0100
-@@ -12,10 +12,10 @@ The programs that can be built with this
- factor false fmt fold groups head hostid hostname id install join kill
- link ln logname ls md5sum mkdir mkfifo mknod mktemp mv nice nl nohup
- nproc od paste pathchk pinky pr printenv printf ptx pwd readlink realpath
-- rm rmdir runcon seq sha1sum sha224sum sha256sum sha384sum sha512sum shred
-- shuf sleep sort split stat stdbuf stty su sum sync tac tail tee test
-- timeout touch tr true truncate tsort tty uname unexpand uniq unlink
-- uptime users vdir wc who whoami yes
-+ rm rmdir runcon runuser seq sha1sum sha224sum sha256sum sha384sum sha512sum
-+ shred shuf sleep sort split stat stdbuf stty su sum sync tac tail tee
-+ test timeout touch tr true truncate tsort tty uname unexpand uniq
-+ unlink uptime users vdir wc who whoami yes
-
- See the file NEWS for a list of major changes in the current release.
-
-diff -urNp coreutils-8.7-orig/AUTHORS coreutils-8.7/AUTHORS
---- coreutils-8.7-orig/AUTHORS 2010-10-11 19:35:11.000000000 +0200
-+++ coreutils-8.7/AUTHORS 2010-11-15 10:08:04.222078001 +0100
-@@ -65,6 +65,7 @@ readlink: Dmitry V. Levin
- rm: Paul Rubin, David MacKenzie, Richard M. Stallman, Jim Meyering
- rmdir: David MacKenzie
- runcon: Russell Coker
-+runuser: David MacKenzie, Dan Walsh
- seq: Ulrich Drepper
- sha1sum: Ulrich Drepper, Scott Miller, David Madore
- sha224sum: Ulrich Drepper, Scott Miller, David Madore
-diff -urNp coreutils-8.7-orig/man/help2man coreutils-8.7/man/help2man
---- coreutils-8.7-orig/man/help2man 2010-10-11 19:35:11.000000000 +0200
-+++ coreutils-8.7/man/help2man 2010-11-15 10:08:51.331054884 +0100
-@@ -555,6 +555,9 @@ while (length)
- $include{$sect} .= $content;
- }
-
-+# There is no info documentation for runuser (shared with su).
-+$opt_no_info = 1 if $program eq 'runuser';
-+
- # Refer to the real documentation.
- unless ($opt_no_info)
- {
---- coreutils-6.7/src/su.c.runuser 2007-01-09 17:27:56.000000000 +0000
-+++ coreutils-6.7/src/su.c 2007-01-09 17:30:12.000000000 +0000
-@@ -109,9 +109,15 @@
- #include "error.h"
-
- /* The official name of this program (e.g., no 'g' prefix). */
-+#ifndef RUNUSER
- #define PROGRAM_NAME "su"
-+#else
-+#define PROGRAM_NAME "runuser"
-+#endif
-
-+#ifndef AUTHORS
- #define AUTHORS proper_name ("David MacKenzie")
-+#endif
-
- #if HAVE_PATHS_H
- # include <paths.h>
-@@ -149,6 +149,10 @@
- char *crypt (char const *key, char const *salt);
- #endif
-
-+#ifndef CHECKPASSWD
-+#define CHECKPASSWD 1
-+#endif
-+
- static void run_shell (char const *, char const *, char **, size_t,
- const struct passwd *)
- #ifdef USE_PAM
-@@ -154,7 +154,11 @@
- #endif
-
- static void run_shell (char const *, char const *, char **, size_t,
-- const struct passwd *)
-+ const struct passwd *
-+#ifdef RUNUSER
-+ , gid_t *groups, int num_groups
-+#endif
-+ )
- #ifdef USE_PAM
- ;
- #else
-@@ -187,6 +201,10 @@
- {"login", no_argument, NULL, 'l'},
- {"preserve-environment", no_argument, NULL, 'p'},
- {"shell", required_argument, NULL, 's'},
-+#ifdef RUNUSER
-+ {"group", required_argument, NULL, 'g'},
-+ {"supp-group", required_argument, NULL, 'G'},
-+#endif
- {GETOPT_HELP_OPTION_DECL},
- {GETOPT_VERSION_OPTION_DECL},
- {NULL, 0, NULL, 0}
-@@ -288,10 +306,12 @@
- retval = pam_start(PROGRAM_NAME, pw->pw_name, &conv, &pamh);
- PAM_BAIL_P;
-
-+#ifndef RUNUSER
- if (getuid() != 0 && !isatty(0)) {
- fprintf(stderr, _("standard in must be a tty\n"));
- exit(1);
- }
-+#endif
-
- caller = getpwuid(getuid());
- if(caller != NULL && caller->pw_name != NULL) {
-@@ -308,6 +328,11 @@
- retval = pam_set_item(pamh, PAM_TTY, tty_name);
- PAM_BAIL_P;
- }
-+#ifdef RUNUSER
-+ if (getuid() != geteuid())
-+ /* safety net: deny operation if we are suid by accident */
-+ error(EXIT_FAILURE, 1, "runuser may not be setuid");
-+#else
- retval = pam_authenticate(pamh, 0);
- PAM_BAIL_P;
- retval = pam_acct_mgmt(pamh, 0);
-@@ -317,6 +342,7 @@
- PAM_BAIL_P;
- }
- PAM_BAIL_P;
-+#endif
- /* must be authenticated if this point was reached */
- return 1;
- #else /* !USE_PAM */
-@@ -398,11 +424,22 @@
- /* Become the user and group(s) specified by PW. */
-
- static void
--change_identity (const struct passwd *pw)
-+change_identity (const struct passwd *pw
-+#ifdef RUNUSER
-+ , gid_t *groups, int num_groups
-+#endif
-+ )
- {
- #ifdef HAVE_INITGROUPS
-+ int rc = 0;
- errno = 0;
-- if (initgroups (pw->pw_name, pw->pw_gid) == -1) {
-+#ifdef RUNUSER
-+ if (num_groups)
-+ rc = setgroups(num_groups, groups);
-+ else
-+#endif
-+ rc = initgroups(pw->pw_name, pw->pw_gid);
-+ if (rc == -1) {
- #ifdef USE_PAM
- pam_close_session(pamh, 0);
- pam_end(pamh, PAM_ABORT);
-@@ -449,7 +486,11 @@
-
- static void
- run_shell (char const *shell, char const *command, char **additional_args,
-- size_t n_additional_args, const struct passwd *pw)
-+ size_t n_additional_args, const struct passwd *pw
-+#ifdef RUNUSER
-+ , gid_t *groups, int num_groups
-+#endif
-+ )
- {
- size_t n_args = 1 + fast_startup + 2 * !!command + n_additional_args + 1;
- char const **args = xnmalloc (n_args, sizeof *args);
-@@ -480,7 +521,11 @@
-
- child = fork();
- if (child == 0) { /* child shell */
-- change_identity (pw);
-+ change_identity (pw
-+#ifdef RUNUSER
-+ , groups, num_groups
-+#endif
-+ );
- pam_end(pamh, 0);
- if (!same_session)
- setsid ();
-@@ -657,6 +702,12 @@
- char *shell = NULL;
- struct passwd *pw;
- struct passwd pw_copy;
-+#ifdef RUNUSER
-+ struct group *gr;
-+ gid_t groups[NGROUPS_MAX];
-+ int num_supp_groups = 0;
-+ int use_gid = 0;
-+#endif
-
- initialize_main (&argc, &argv);
- program_name = argv[0];
-@@ -671,7 +722,11 @@
- simulate_login = false;
- change_environment = true;
-
-- while ((optc = getopt_long (argc, argv, "c:flmps:", longopts, NULL)) != -1)
-+ while ((optc = getopt_long (argc, argv, "c:flmps:"
-+#ifdef RUNUSER
-+ "g:G:"
-+#endif
-+ , longopts, NULL)) != -1)
- {
- switch (optc)
- {
-@@ -701,6 +756,28 @@
- shell = optarg;
- break;
-
-+#ifdef RUNUSER
-+ case 'g':
-+ gr = getgrnam(optarg);
-+ if (!gr)
-+ error (EXIT_FAILURE, 0, _("group %s does not exist"), optarg);
-+ use_gid = 1;
-+ groups[0] = gr->gr_gid;
-+ break;
-+
-+ case 'G':
-+ num_supp_groups++;
-+ if (num_supp_groups >= NGROUPS_MAX)
-+ error (EXIT_FAILURE, 0,
-+ _("Can't specify more than %d supplemental groups"),
-+ NGROUPS_MAX - 1);
-+ gr = getgrnam(optarg);
-+ if (!gr)
-+ error (EXIT_FAILURE, 0, _("group %s does not exist"), optarg);
-+ groups[num_supp_groups] = gr->gr_gid;
-+ break;
-+#endif
-+
- case_GETOPT_HELP_CHAR;
-
- case_GETOPT_VERSION_CHAR (PROGRAM_NAME, AUTHORS);
-@@ -739,7 +816,20 @@
- : DEFAULT_SHELL);
- endpwent ();
-
-- if (!correct_password (pw))
-+#ifdef RUNUSER
-+ if (num_supp_groups && !use_gid)
-+ {
-+ pw->pw_gid = groups[1];
-+ memmove (groups, groups + 1, sizeof(gid_t) * num_supp_groups);
-+ }
-+ else if (use_gid)
-+ {
-+ pw->pw_gid = groups[0];
-+ num_supp_groups++;
-+ }
-+#endif
-+
-+ if (CHECKPASSWD && !correct_password (pw))
- {
- #ifdef SYSLOG_FAILURE
- log_su (pw, false);
-@@ -814,7 +814,11 @@
- modify_environment (pw, shell);
-
- #ifndef USE_PAM
-- change_identity (pw);
-+ change_identity (pw
-+#ifdef RUNUSER
-+ , groups, num_supp_groups
-+#endif
-+ );
- #endif
-
- /* error() flushes stderr, but does not check for write failure.
-@@ -825,5 +829,9 @@
- if (ferror (stderr))
- exit (EXIT_CANCELED);
-
-- run_shell (shell, command, argv + optind, MAX (0, argc - optind), pw);
-+ run_shell (shell, command, argv + optind, MAX (0, argc - optind), pw
-+#ifdef RUNUSER
-+ , groups, num_supp_groups
-+#endif
-+ );
- }
-diff -urNp coreutils-8.7-orig/src/Makefile.am coreutils-8.7/src/Makefile.am
---- coreutils-8.7-orig/src/Makefile.am 2010-11-15 10:07:07.339171659 +0100
-+++ coreutils-8.7/src/Makefile.am 2010-11-15 10:12:14.847094550 +0100
-@@ -100,6 +100,7 @@ EXTRA_PROGRAMS = \
- rm \
- rmdir \
- runcon \
-+ runuser \
- seq \
- sha1sum \
- sha224sum \
-@@ -300,6 +301,10 @@ cp_LDADD += $(copy_LDADD)
- ginstall_LDADD += $(copy_LDADD)
- mv_LDADD += $(copy_LDADD)
-
-+runuser_SOURCES = su.c
-+runuser_CFLAGS = -DRUNUSER -DAUTHORS="\"David MacKenzie, Dan Walsh\""
-+runuser_LDADD = $(LDADD) $(LIB_CRYPT) $(LIB_PAM)
-+
- remove_LDADD =
- mv_LDADD += $(remove_LDADD)
- rm_LDADD += $(remove_LDADD)
-@@ -395,7 +400,7 @@ RELEASE_YEAR = \
- `sed -n '/.*COPYRIGHT_YEAR = \([0-9][0-9][0-9][0-9]\) };/s//\1/p' \
- $(top_srcdir)/lib/version-etc.c`
-
--all-local: su$(EXEEXT)
-+all-local: su$(EXEEXT) runuser$(EXEEXT)
-
- installed_su = $(DESTDIR)$(bindir)/`echo su|sed '$(transform)'`
-
-diff -urNp coreutils-8.7-orig/man/Makefile.am coreutils-8.7/man/Makefile.am
---- coreutils-8.7-orig/man/Makefile.am 2010-10-11 19:35:11.000000000 +0200
-+++ coreutils-8.7/man/Makefile.am 2010-11-15 10:09:21.768922182 +0100
-@@ -94,6 +94,7 @@ readlink.1: $(common_dep) $(srcdir)/read
- rm.1: $(common_dep) $(srcdir)/rm.x ../src/rm.c
- rmdir.1: $(common_dep) $(srcdir)/rmdir.x ../src/rmdir.c
- runcon.1: $(common_dep) $(srcdir)/runcon.x ../src/runcon.c
-+runuser.1: $(common_dep) $(srcdir)/runuser.x ../src/su.c
- seq.1: $(common_dep) $(srcdir)/seq.x ../src/seq.c
- sha1sum.1: $(common_dep) $(srcdir)/sha1sum.x ../src/md5sum.c
- sha224sum.1: $(common_dep) $(srcdir)/sha224sum.x ../src/md5sum.c
-diff -urNp coreutils-8.7-orig/man/runuser.x coreutils-8.7/man/runuser.x
---- coreutils-8.7-orig/man/runuser.x 1970-01-01 01:00:00.000000000 +0100
-+++ coreutils-8.7/man/runuser.x 2010-11-15 10:09:57.437939015 +0100
-@@ -0,0 +1,12 @@
-+[NAME]
-+runuser \- run a shell with substitute user and group IDs
-+[DESCRIPTION]
-+.\" Add any additional description here
-+[SEE ALSO]
-+.TP
-+More detailed Texinfo documentation could be found by command
-+.TP
-+\t\fBinfo coreutils \(aqsu invocation\(aq\fR\t
-+.TP
-+since the command \fBrunuser\fR is trimmed down version of command \fBsu\fR.
-+.br
---- /dev/null 2007-01-09 09:38:07.860075128 +0000
-+++ coreutils-6.7/man/runuser.1 2007-01-09 17:27:56.000000000 +0000
-@@ -0,0 +1,68 @@
-+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.33.
-+.TH RUNUSER "1" "September 2004" "runuser (coreutils) 5.2.1" "User Commands"
-+.SH NAME
-+runuser \- run a shell with substitute user and group IDs, similar to su, but will not run PAM hooks
-+.SH SYNOPSIS
-+.B runuser
-+[\fIOPTION\fR]... [\fI-\fR] [\fIUSER \fR[\fIARG\fR]...]
-+.SH DESCRIPTION
-+.\" Add any additional description here
-+.PP
-+Change the effective user id and group id to that of USER. No PAM hooks
-+are run, and there will be no password prompt. This command is useful
-+when run as the root user. If run as a non-root user without privilege
-+to set user ID, the command will fail.
-+.TP
-+-, \fB\-l\fR, \fB\-\-login\fR
-+make the shell a login shell
-+.TP
-+\fB\-c\fR, \fB\-\-commmand\fR=\fICOMMAND\fR
-+pass a single COMMAND to the shell with \fB\-c\fR
-+.TP
-+\fB\-f\fR, \fB\-\-fast\fR
-+pass \fB\-f\fR to the shell (for csh or tcsh)
-+.TP
-+\fB\-g\fR, \fB\-\-group\fR=\fIGROUP\fR
-+specify the primary group
-+.TP
-+\fB\-G\fR, \fB\-\-supp-group\fR=\fIGROUP\fR
-+specify a supplemental group
-+.TP
-+\fB\-m\fR, \fB\-\-preserve\-environment\fR
-+do not reset environment variables
-+.TP
-+\fB\-p\fR
-+same as \fB\-m\fR
-+.TP
-+\fB\-s\fR, \fB\-\-shell\fR=\fISHELL\fR
-+run SHELL if /etc/shells allows it
-+.TP
-+\fB\-\-help\fR
-+display this help and exit
-+.TP
-+\fB\-\-version\fR
-+output version information and exit
-+.PP
-+A mere - implies \fB\-l\fR. If USER not given, assume root.
-+.SH AUTHOR
-+Written by David MacKenzie, Dan Walsh.
-+.SH "REPORTING BUGS"
-+Report bugs to <bug-coreutils@gnu.org>.
-+.SH COPYRIGHT
-+Copyright \(co 2004 Free Software Foundation, Inc.
-+.br
-+This is free software; see the source for copying conditions. There is NO
-+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-+.SH "SEE ALSO"
-+Since this command is trimmed down version of su use you can use the su manual.
-+The full documentation for
-+.B su
-+is maintained as a Texinfo manual. If the
-+.B info
-+and
-+.B su
-+programs are properly installed at your site, the command
-+.IP
-+.B info coreutils su
-+.PP
-+should give you access to the complete manual.
---- coreutils-6.10/po/pl.po.orig 2008-03-02 14:22:54.123486386 +0100
-+++ coreutils-6.10/po/pl.po 2008-03-02 14:28:35.858960780 +0100
-@@ -8986,6 +8986,16 @@
- msgid "warning: cannot change directory to %s"
- msgstr "uwaga: nie można zmienić katalogu na %s"
-
-+#: src/su.c:runuser
-+#, c-format
-+msgid "group %s does not exist"
-+msgstr "grupa %s nie istnieje"
-+
-+#: src/su.c:runuser
-+#, c-format
-+msgid "Can't specify more than %d supplemental groups"
-+msgstr "Nie można określić więcej niż %d grup dodatkowych"
-+
- #. This is a proper name. See the gettext manual, section Names.
- #: src/sum.c:36
- msgid "Kayvan Aghaiepour"
-diff -urNp coreutils-8.7-orig/tests/misc/help-version coreutils-8.7/tests/misc/help-version
---- coreutils-8.7-orig/tests/misc/help-version 2010-10-11 19:35:11.000000000 +0200
-+++ coreutils-8.7/tests/misc/help-version 2010-11-15 10:45:18.473682325 +0100
-@@ -32,6 +32,7 @@ expected_failure_status_nohup=125
- expected_failure_status_stdbuf=125
- expected_failure_status_su=125
- expected_failure_status_timeout=125
-+expected_failure_status_runuser=125
- expected_failure_status_printenv=2
- expected_failure_status_tty=3
- expected_failure_status_sort=2
-@@ -209,6 +210,7 @@ seq_setup () { args=10; }
- sleep_setup () { args=0; }
- su_setup () { args=--version; }
- stdbuf_setup () { args="-oL true"; }
-+runuser_setup () { args=--version; }
- timeout_setup () { args=--version; }
-
- # I'd rather not run sync, since it spins up disks that I've
-diff -urNp coreutils-8.7-orig/tests/misc/invalid-opt coreutils-8.7/tests/misc/invalid-opt
---- coreutils-8.7-orig/tests/misc/invalid-opt 2010-10-11 19:35:11.000000000 +0200
-+++ coreutils-8.7/tests/misc/invalid-opt 2010-11-15 10:45:46.451938873 +0100
-@@ -37,6 +37,7 @@ my %exit_status =
- sort => 2,
- stdbuf => 125,
- su => 125,
-+ runuser => 125,
- test => 0,
- timeout => 125,
- true => 0,
+++ /dev/null
-diff -uNrp -x '*~' coreutils-5.97-orig/src/su.c coreutils-5.97/src/su.c
---- coreutils-5.97-orig/src/su.c 2006-07-13 12:14:40.000000000 +0100
-+++ coreutils-5.97/src/su.c 2006-07-13 12:24:33.000000000 +0100
-@@ -131,11 +131,15 @@
-
- #include "error.h"
-
--/* The official name of this program (e.g., no 'g' prefix). */
-+/* The official name of this program (e.g., no 'g' prefix).
-+ * - Add a "-l" to the name passed to PAM if this is a login simulation
-+ */
- #ifndef RUNUSER
- #define PROGRAM_NAME "su"
-+#define PROGRAM_NAME_L "su-l"
- #else
- #define PROGRAM_NAME "runuser"
-+#define PROGRAM_NAME_L "runuser-l"
- #endif
-
- #ifndef AUTHORS
-@@ -310,7 +314,8 @@ correct_password (const struct passwd *p
- #ifdef USE_PAM
- struct passwd *caller;
- char *tty_name, *ttyn;
-- retval = pam_start(PROGRAM_NAME, pw->pw_name, &conv, &pamh);
-+ retval = pam_start(simulate_login ? PROGRAM_NAME_L : PROGRAM_NAME,
-+ pw->pw_name, &conv, &pamh);
- PAM_BAIL_P;
-
- #ifndef RUNUSER
+++ /dev/null
---- coreutils-4.5.3/src/su.c.orig Sun Oct 27 21:57:03 2002
-+++ coreutils-4.5.3/src/su.c Sun Oct 27 22:15:05 2002
-@@ -154,6 +154,15 @@
- # define DEFAULT_ROOT_LOGIN_PATH "/usr/ucb:/bin:/usr/bin:/etc"
- #endif
-
-+/* The default paths which get set are both bogus and oddly influenced
-+ by <paths.h> and -D on the commands line. Just to be clear, we'll set
-+ these explicitly. -ewt */
-+#undef DEFAULT_LOGIN_PATH
-+#undef DEFAULT_ROOT_LOGIN_PATH
-+#define DEFAULT_LOGIN_PATH "/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin"
-+#define DEFAULT_ROOT_LOGIN_PATH \
-+ "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin:/usr/X11R6/sbin"
-+
- /* The shell to run if none is given in the user's passwd entry. */
- #define DEFAULT_SHELL "/bin/sh"
-
+#
# Conditional build:
%bcond_with advcopy # progress bar in cp (orphaned patch)
%bcond_without tests # do not perform "make test check"
Summary: GNU Core-utils - basic command line utilities
Summary(pl.UTF-8): GNU Core-utils - podstawowe narzędzia działające z linii poleceń
Name: coreutils
-Version: 8.16
-Release: 2
+Version: 8.21
+Release: 1
License: GPL v3+
Group: Applications/System
Source0: http://ftp.gnu.org/gnu/coreutils/%{name}-%{version}.tar.xz
-# Source0-md5: 89b06f91634208dceba7b36ad1f9e8b9
+# Source0-md5: 065ba41828644eca5dd8163446de5d64
Source1: %{name}-non-english-man-pages.tar.bz2
# Source1-md5: f7c986ebc74ccb8d08ed70141063f14c
Source2: DIR_COLORS
Source3: fileutils.sh
Source4: fileutils.csh
-Source5: su.pamd
-Source6: su-l.pamd
-Source7: runuser.pamd
-Source8: runuser-l.pamd
-Source9: mktemp.1.pl
+Source5: mktemp.1.pl
Patch0: %{name}-info.patch
-Patch1: %{name}-pam.patch
-Patch2: %{name}-getgid.patch
-Patch3: %{name}-su-paths.patch
-Patch4: %{name}-uname-cpuinfo.patch
-Patch5: %{name}-date-man.patch
-Patch6: %{name}-mem.patch
-Patch7: %{name}-7.4-sttytcsadrain.patch
-Patch9: %{name}-fmt-wchars.patch
-Patch10: %{name}-runuser.patch
-Patch11: %{name}-split-pam.patch
-Patch12: %{name}-sparc64.patch
+Patch1: %{name}-getgid.patch
+Patch2: %{name}-uname-cpuinfo.patch
+Patch3: %{name}-date-man.patch
+Patch5: %{name}-7.4-sttytcsadrain.patch
+Patch6: %{name}-fmt-wchars.patch
+Patch7: %{name}-sparc64.patch
# http://translationproject.org/latest/coreutils/pl.po (pass through msgcat to generate shorter diff)
-Patch13: %{name}-pl.po-update.patch
+Patch8: %{name}-pl.po-update.patch
# from http://www.beatex.org/web/advancedcopy.html, edited by shadzik
-Patch14: %{name}-advcopy.patch
+Patch9: %{name}-advcopy.patch
+Patch10: format-security.patch
URL: http://www.gnu.org/software/coreutils/
BuildRequires: acl-devel
BuildRequires: attr-devel
BuildRequires: autoconf >= 2.64
-BuildRequires: automake >= 1:1.11.1
+BuildRequires: automake >= 1:1.11.2
BuildRequires: gcc >= 5:3.2
BuildRequires: gettext-devel >= 0.18.1
BuildRequires: gmp-devel
BuildRequires: help2man
BuildRequires: libcap-devel
BuildRequires: libselinux-devel
-BuildRequires: pam-devel
BuildRequires: rpmbuild(find_lang) >= 1.24
BuildRequires: tar >= 1:1.22
BuildRequires: texinfo >= 4.2
%if %{with tests}
BuildRequires: strace
%endif
-Requires: pam >= 0.77.3
Requires: setup >= 2.4.6-2
-Provides: coreutils-su
Provides: fileutils
Provides: mktemp = %{version}-%{release}
Provides: sh-utils
Provides: stat
Provides: textutils
-Obsoletes: coreutils-su
Obsoletes: fileutils
Obsoletes: mktemp
Obsoletes: sh-utils
Obsoletes: textutils
Conflicts: shadow < 1:4.0.3-6
Conflicts: tetex < 1:2.0.2
-Conflicts: util-linux < 2.13-0.pre7
+# ensure util-linux has su included
+Conflicts: util-linux < 2.22
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
dd df dir dircolors dirname du echo env expand expr factor false fmt
fold install groups head hostid id join link ln logname ls md5sum
mkdir mkfifo mknod mv nice nl nohup od paste pathchk pinky pr printenv
- printf ptx pwd realpath rm rmdir runuser seq sha1sum shred sleep sort
- split stat stty su sum sync tac tail tee test touch tr true tsort tty
- uname unexpand uniq unlink users vdir wc who whoami yes
+ printf ptx pwd realpath rm rmdir seq sha1sum shred sleep sort split
+ stat stty sum sync tac tail tee test touch tr true tsort tty uname
+ unexpand uniq unlink users vdir wc who whoami yes
%description -l pl.UTF-8
Narzędzia podstawowe (core utilities) GNU to połączone paczki GNU
dd df dir dircolors dirname du echo env expand expr factor false fmt
fold ginstall groups head hostid id join link ln logname ls md5sum
mkdir mkfifo mknod mv nice nl nohup od paste pathchk pinky pr printenv
- printf ptx pwd realpath rm rmdir runuser seq sha1sum shred sleep sort
- split stat stty su sum sync tac tail tee test touch tr true tsort tty
- uname unexpand uniq unlink users vdir wc who whoami yes
+ printf ptx pwd realpath rm rmdir seq sha1sum shred sleep sort split
+ stat stty sum sync tac tail tee test touch tr true tsort tty uname
+ unexpand uniq unlink users vdir wc who whoami yes
%prep
%setup -q -a1
-#%patch13 -p1
+#patch8 -p1
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
-%patch4 -p1
%patch5 -p1
%patch6 -p1
-%patch7 -p1
-%patch9 -p1
-%patch10 -p1
-%patch11 -p1
%ifarch sparc64
-%patch12 -p1
+%patch7 -p1
%endif
%if %{with advcopy}
# progress-bar patch, -g,--progress-bar //if in doubt, comment it out
-%patch14 -p1
+%patch9 -p1
%endif
+%patch10 -p1
%{__perl} -pi -e 's@GNU/Linux@TLD Linux@' m4/host-os.m4
# allow rebuilding *.gmo
%{__rm} po/stamp-po
-# fails under C locale:
+# 8-bit-pfx test fails under C locale:
# LC_ALL=C echo -e "ça\nçb\n"|LC_ALL=C fmt -p 'ç'
# fmt: memory exhausted
-%{__sed} -i -e 25,27d tests/misc/fmt
+%{__sed} -i -e 25,27d tests/fmt/base.pl
# /etc/resolv.conf is blocked in pld builders, try some other file
%{__sed} -i -e 's,/etc/resolv.conf,/etc/hosts,' gnulib-tests/test-read-file.c
# getgid needs to be fixed:
# getgid: missing operand
# Try `getgid --help' for more information.
-%{__rm} tests/misc/help-version
-%{__sed} -i -e '/misc\/help-version/d' tests/Makefile.am
+%{__rm} tests/misc/help-version.sh
+%{__sed} -i -e '/misc\/help-version/d' tests/local.mk
# fails on some filesystems (like XFS), where readdir returns d_type=DT_UNKNOWN
-%{__rm} tests/ls/stat-free-color
-%{__sed} -i -e '/ls\/stat-free-color/d' tests/Makefile.am
+%{__rm} tests/ls/stat-free-color.sh
+%{__sed} -i -e '/ls\/stat-free-color/d' tests/local.mk
%build
+build-aux/gen-lists-of-programs.sh --autoconf > m4/cu-progs.m4
+build-aux/gen-lists-of-programs.sh --automake > src/cu-progs.mk
%{__gettextize}
%{__aclocal} -I m4
%{__autoconf}
CFLAGS="%{rpmcflags} -DSYSLOG_SUCCESS -DSYSLOG_FAILURE -DSYSLOG_NON_ROOT" \
DEFAULT_POSIX2_VERSION=199209 \
--disable-silent-rules \
- --enable-install-program=arch,su \
- --enable-no-install-program=hostname,kill,uptime \
- --enable-pam
+ --enable-install-program=arch \
+ --enable-no-install-program=hostname,kill,uptime
%{__make}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/bin,/sbin,%{_bindir},%{_sbindir},/etc/pam.d,/etc/shrc.d}
+install -d $RPM_BUILD_ROOT{/bin,/sbin,%{_bindir},%{_sbindir},/etc/shrc.d}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
sleep,sort,stat,stty,sync,touch,true,unlink,uname} $RPM_BUILD_ROOT/bin
mv -f $RPM_BUILD_ROOT%{_bindir}/chroot $RPM_BUILD_ROOT%{_sbindir}
-mv $RPM_BUILD_ROOT{%{_bindir},/sbin}/runuser
-
-# su is missed by "make install" called by non-root
-install -p src/su $RPM_BUILD_ROOT/bin
cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}
cp -p %{SOURCE3} %{SOURCE4} $RPM_BUILD_ROOT/etc/shrc.d
-cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/pam.d/su
-cp -p %{SOURCE6} $RPM_BUILD_ROOT/etc/pam.d/su-l
-cp -p %{SOURCE7} $RPM_BUILD_ROOT/etc/pam.d/runuser
-cp -p %{SOURCE8} $RPM_BUILD_ROOT/etc/pam.d/runuser-l
cp -a man/pt_BR man/pt
for d in cs da de es fi fr hu id it ja ko nl pl pt ru zh_CN; do
install -d $RPM_BUILD_ROOT%{_mandir}/$d/man1
cp -p man/$d/*.1 $RPM_BUILD_ROOT%{_mandir}/$d/man1
done
-install %{SOURCE9} $RPM_BUILD_ROOT%{_mandir}/pl/man1/mktemp.1
+install %{SOURCE5} $RPM_BUILD_ROOT%{_mandir}/pl/man1/mktemp.1
# unwanted (-f left intentionally - some manuals could have no translations)
-rm -f $RPM_BUILD_ROOT%{_mandir}/*/man1/{hostname,kill,uptime}.1
+rm -f $RPM_BUILD_ROOT%{_mandir}/*/man1/{hostname,kill,su,uptime}.1
# always remove, never packaged but sometimes installed
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
%files -f %{name}.lang
%defattr(644,root,root,755)
%doc AUTHORS ChangeLog NEWS README THANKS THANKS-to-translators TODO
-%attr(755,root,root) /bin/[!s]*
-%attr(755,root,root) /bin/s[!u]*
-%attr(4755,root,root) /bin/su
-%attr(755,root,root) /sbin/runuser
-%attr(755,root,root) %{_bindir}/*
+%attr(755,root,root) /bin/arch
+%attr(755,root,root) /bin/basename
+%attr(755,root,root) /bin/cat
+%attr(755,root,root) /bin/chgrp
+%attr(755,root,root) /bin/chmod
+%attr(755,root,root) /bin/chown
+%attr(755,root,root) /bin/cp
+%attr(755,root,root) /bin/date
+%attr(755,root,root) /bin/dd
+%attr(755,root,root) /bin/df
+%attr(755,root,root) /bin/echo
+%attr(755,root,root) /bin/false
+%attr(755,root,root) /bin/id
+%attr(755,root,root) /bin/link
+%attr(755,root,root) /bin/ln
+%attr(755,root,root) /bin/ls
+%attr(755,root,root) /bin/mkdir
+%attr(755,root,root) /bin/mknod
+%attr(755,root,root) /bin/mktemp
+%attr(755,root,root) /bin/mv
+%attr(755,root,root) /bin/nice
+%attr(755,root,root) /bin/printf
+%attr(755,root,root) /bin/pwd
+%attr(755,root,root) /bin/rm
+%attr(755,root,root) /bin/rmdir
+%attr(755,root,root) /bin/sleep
+%attr(755,root,root) /bin/sort
+%attr(755,root,root) /bin/stat
+%attr(755,root,root) /bin/stty
+%attr(755,root,root) /bin/sync
+%attr(755,root,root) /bin/touch
+%attr(755,root,root) /bin/true
+%attr(755,root,root) /bin/uname
+%attr(755,root,root) /bin/unlink
+%attr(755,root,root) %{_bindir}/[
+%attr(755,root,root) %{_bindir}/base64
+%attr(755,root,root) %{_bindir}/chcon
+%attr(755,root,root) %{_bindir}/cksum
+%attr(755,root,root) %{_bindir}/comm
+%attr(755,root,root) %{_bindir}/csplit
+%attr(755,root,root) %{_bindir}/cut
+%attr(755,root,root) %{_bindir}/dir
+%attr(755,root,root) %{_bindir}/dircolors
+%attr(755,root,root) %{_bindir}/dirname
+%attr(755,root,root) %{_bindir}/du
+%attr(755,root,root) %{_bindir}/env
+%attr(755,root,root) %{_bindir}/expand
+%attr(755,root,root) %{_bindir}/expr
+%attr(755,root,root) %{_bindir}/factor
+%attr(755,root,root) %{_bindir}/fmt
+%attr(755,root,root) %{_bindir}/fold
+%attr(755,root,root) %{_bindir}/getgid
+%attr(755,root,root) %{_bindir}/groups
+%attr(755,root,root) %{_bindir}/head
+%attr(755,root,root) %{_bindir}/hostid
+%attr(755,root,root) %{_bindir}/install
+%attr(755,root,root) %{_bindir}/join
+%attr(755,root,root) %{_bindir}/logname
+%attr(755,root,root) %{_bindir}/md5sum
+%attr(755,root,root) %{_bindir}/mkfifo
+%attr(755,root,root) %{_bindir}/nl
+%attr(755,root,root) %{_bindir}/nohup
+%attr(755,root,root) %{_bindir}/nproc
+%attr(755,root,root) %{_bindir}/numfmt
+%attr(755,root,root) %{_bindir}/od
+%attr(755,root,root) %{_bindir}/paste
+%attr(755,root,root) %{_bindir}/pathchk
+%attr(755,root,root) %{_bindir}/pinky
+%attr(755,root,root) %{_bindir}/pr
+%attr(755,root,root) %{_bindir}/printenv
+%attr(755,root,root) %{_bindir}/ptx
+%attr(755,root,root) %{_bindir}/readlink
+%attr(755,root,root) %{_bindir}/realpath
+%attr(755,root,root) %{_bindir}/runcon
+%attr(755,root,root) %{_bindir}/seq
+%attr(755,root,root) %{_bindir}/sha1sum
+%attr(755,root,root) %{_bindir}/sha224sum
+%attr(755,root,root) %{_bindir}/sha256sum
+%attr(755,root,root) %{_bindir}/sha384sum
+%attr(755,root,root) %{_bindir}/sha512sum
+%attr(755,root,root) %{_bindir}/shred
+%attr(755,root,root) %{_bindir}/shuf
+%attr(755,root,root) %{_bindir}/split
+%attr(755,root,root) %{_bindir}/stdbuf
+%attr(755,root,root) %{_bindir}/sum
+%attr(755,root,root) %{_bindir}/tac
+%attr(755,root,root) %{_bindir}/tail
+%attr(755,root,root) %{_bindir}/tee
+%attr(755,root,root) %{_bindir}/test
+%attr(755,root,root) %{_bindir}/timeout
+%attr(755,root,root) %{_bindir}/tr
+%attr(755,root,root) %{_bindir}/truncate
+%attr(755,root,root) %{_bindir}/tsort
+%attr(755,root,root) %{_bindir}/tty
+%attr(755,root,root) %{_bindir}/unexpand
+%attr(755,root,root) %{_bindir}/uniq
+%attr(755,root,root) %{_bindir}/users
+%attr(755,root,root) %{_bindir}/vdir
+%attr(755,root,root) %{_bindir}/wc
+%attr(755,root,root) %{_bindir}/who
+%attr(755,root,root) %{_bindir}/whoami
+%attr(755,root,root) %{_bindir}/yes
%attr(755,root,root) %{_sbindir}/chroot
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/DIR_COLORS
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/su
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/su-l
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/runuser
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/runuser-l
-%config(noreplace) /etc/shrc.d/fileutils.*sh
+%config(noreplace) /etc/shrc.d/fileutils.csh
+%config(noreplace) /etc/shrc.d/fileutils.sh
%dir %{_libdir}/coreutils
%attr(755,root,root) %{_libdir}/coreutils/libstdbuf.so
-%{_mandir}/man1/*
+%{_mandir}/man1/arch.1*
+%{_mandir}/man1/base64.1*
+%{_mandir}/man1/basename.1*
+%{_mandir}/man1/cat.1*
+%{_mandir}/man1/chcon.1*
+%{_mandir}/man1/chgrp.1*
+%{_mandir}/man1/chmod.1*
+%{_mandir}/man1/chown.1*
+%{_mandir}/man1/chroot.1*
+%{_mandir}/man1/cksum.1*
+%{_mandir}/man1/comm.1*
+%{_mandir}/man1/cp.1*
+%{_mandir}/man1/csplit.1*
+%{_mandir}/man1/cut.1*
+%{_mandir}/man1/date.1*
+%{_mandir}/man1/dd.1*
+%{_mandir}/man1/df.1*
+%{_mandir}/man1/dir.1*
+%{_mandir}/man1/dircolors.1*
+%{_mandir}/man1/dirname.1*
+%{_mandir}/man1/du.1*
+%{_mandir}/man1/echo.1*
+%{_mandir}/man1/env.1*
+%{_mandir}/man1/expand.1*
+%{_mandir}/man1/expr.1*
+%{_mandir}/man1/factor.1*
+%{_mandir}/man1/false.1*
+%{_mandir}/man1/fmt.1*
+%{_mandir}/man1/fold.1*
+%{_mandir}/man1/getgid.1*
+%{_mandir}/man1/groups.1*
+%{_mandir}/man1/head.1*
+%{_mandir}/man1/hostid.1*
+%{_mandir}/man1/id.1*
+%{_mandir}/man1/install.1*
+%{_mandir}/man1/join.1*
+%{_mandir}/man1/link.1*
+%{_mandir}/man1/ln.1*
+%{_mandir}/man1/logname.1*
+%{_mandir}/man1/ls.1*
+%{_mandir}/man1/md5sum.1*
+%{_mandir}/man1/mkdir.1*
+%{_mandir}/man1/mkfifo.1*
+%{_mandir}/man1/mknod.1*
+%{_mandir}/man1/mktemp.1*
+%{_mandir}/man1/mv.1*
+%{_mandir}/man1/nice.1*
+%{_mandir}/man1/nl.1*
+%{_mandir}/man1/nohup.1*
+%{_mandir}/man1/nproc.1*
+%{_mandir}/man1/numfmt.1*
+%{_mandir}/man1/od.1*
+%{_mandir}/man1/paste.1*
+%{_mandir}/man1/pathchk.1*
+%{_mandir}/man1/pinky.1*
+%{_mandir}/man1/pr.1*
+%{_mandir}/man1/printenv.1*
+%{_mandir}/man1/printf.1*
+%{_mandir}/man1/ptx.1*
+%{_mandir}/man1/pwd.1*
+%{_mandir}/man1/readlink.1*
+%{_mandir}/man1/realpath.1*
+%{_mandir}/man1/rm.1*
+%{_mandir}/man1/rmdir.1*
+%{_mandir}/man1/runcon.1*
+%{_mandir}/man1/seq.1*
+%{_mandir}/man1/sha1sum.1*
+%{_mandir}/man1/sha224sum.1*
+%{_mandir}/man1/sha256sum.1*
+%{_mandir}/man1/sha384sum.1*
+%{_mandir}/man1/sha512sum.1*
+%{_mandir}/man1/shred.1*
+%{_mandir}/man1/shuf.1*
+%{_mandir}/man1/sleep.1*
+%{_mandir}/man1/sort.1*
+%{_mandir}/man1/split.1*
+%{_mandir}/man1/stat.1*
+%{_mandir}/man1/stdbuf.1*
+%{_mandir}/man1/stty.1*
+%{_mandir}/man1/sum.1*
+%{_mandir}/man1/sync.1*
+%{_mandir}/man1/tac.1*
+%{_mandir}/man1/tail.1*
+%{_mandir}/man1/tee.1*
+%{_mandir}/man1/test.1*
+%{_mandir}/man1/timeout.1*
+%{_mandir}/man1/touch.1*
+%{_mandir}/man1/tr.1*
+%{_mandir}/man1/true.1*
+%{_mandir}/man1/truncate.1*
+%{_mandir}/man1/tsort.1*
+%{_mandir}/man1/tty.1*
+%{_mandir}/man1/uname.1*
+%{_mandir}/man1/unexpand.1*
+%{_mandir}/man1/uniq.1*
+%{_mandir}/man1/unlink.1*
+%{_mandir}/man1/users.1*
+%{_mandir}/man1/vdir.1*
+%{_mandir}/man1/wc.1*
+%{_mandir}/man1/who.1*
+%{_mandir}/man1/whoami.1*
+%{_mandir}/man1/yes.1*
%lang(cs) %{_mandir}/cs/man1/*
%lang(da) %{_mandir}/da/man1/*
%lang(de) %{_mandir}/de/man1/*
+++ /dev/null
-#%PAM-1.0
-auth include runuser
-session optional pam_keyinit.so force revoke
-session include runuser
+++ /dev/null
-#%PAM-1.0
-auth sufficient pam_rootok.so
-session include system-auth
+++ /dev/null
-#%PAM-1.0
-auth include su
-account include su
-password include su
-session optional pam_keyinit.so force revoke
-session include su
+++ /dev/null
-#%PAM-1.0
-auth sufficient pam_rootok.so
-auth required pam_wheel.so group=wheel use_uid
-auth include system-auth
-account sufficient pam_succeed_if.so uid = 0 use_uid quiet
-account include system-auth
-password include system-auth
-session optional pam_xauth.so
-session include system-auth