1 |
GNU coreutils NEWS -*- outline -*- |
2 |
|
3 |
* Noteworthy changes in release 6.9+ (????-??-??) [stable] |
4 |
|
5 |
** New programs |
6 |
|
7 |
arch: equivalent to uname -m, not installed by default |
8 |
But don't install this program on Solaris systems. |
9 |
|
10 |
** Programs no longer installed by default |
11 |
|
12 |
hostname, su |
13 |
|
14 |
** Changes in behavior |
15 |
|
16 |
pr -F no longer suppresses the footer or the first two blank lines in |
17 |
the header. This is for compatibility with BSD and POSIX. |
18 |
|
19 |
tr now warns about an unescaped backslash at end of string. |
20 |
The tr from coreutils-5.2.1 and earlier would fail for such usage, |
21 |
and Solaris' tr ignores that final byte. |
22 |
|
23 |
** New features |
24 |
|
25 |
Add SELinux support (FIXME: add details here) |
26 |
|
27 |
uniq accepts a new option: --zero-terminated (-z). As with the sort |
28 |
option of the same name, this makes uniq consume and produce |
29 |
NUL-terminated lines rather than newline-terminated lines. |
30 |
|
31 |
wc no longer warns about character decoding errors in multibyte locales. |
32 |
This means for example that "wc /bin/sh" now produces normal output |
33 |
(though the word count will have no real meaning) rather than many |
34 |
error messages. |
35 |
|
36 |
** New build options |
37 |
|
38 |
By default, "make install" no longer attempts to install (or even build) su. |
39 |
To change that, use ./configure --enable-install-program=su. |
40 |
If you also want to install the new "arch" program, do this: |
41 |
./configure --enable-install-program=arch,su. |
42 |
|
43 |
You can inhibit the compilation and installation of selected programs |
44 |
at configure time. For example, to avoid installing "hostname" and |
45 |
"uptime", use ./configure --enable-no-install-program=hostname,uptime |
46 |
Note: currently, "make check" passes, even when arch and su are not |
47 |
built (that's the new default). However, if you inhibit the building |
48 |
and installation of other programs, don't be surprised if some parts |
49 |
of "make check" fail. |
50 |
|
51 |
** Remove deprecated options |
52 |
|
53 |
df no longer accepts the --kilobytes option. |
54 |
du no longer accepts the --kilobytes or --megabytes options. |
55 |
ls no longer accepts the --kilobytes option. |
56 |
ptx longer accepts the --copyright option. |
57 |
who no longer accepts -i or --idle. |
58 |
|
59 |
** Improved robustness |
60 |
|
61 |
ln -f can no longer silently clobber a just-created hard link. |
62 |
In some cases, ln could be seen as being responsible for data loss. |
63 |
For example, given directories a, b, c, and files a/f and b/f, we |
64 |
should be able to do this safely: ln -f a/f b/f c && rm -f a/f b/f |
65 |
However, before this change, ln would succeed, and thus cause the |
66 |
loss of the contents of a/f. |
67 |
|
68 |
stty no longer silently accepts certain invalid hex values |
69 |
in its 35-colon commmand-line argument |
70 |
|
71 |
** Bug fixes |
72 |
|
73 |
chmod no longer ignores a dangling symlink. Now, chmod fails |
74 |
with a diagnostic saying that it cannot operate on such a file. |
75 |
[bug introduced in coreutils-5.1.0] |
76 |
|
77 |
cp attempts to read a regular file, even if stat says it is empty. |
78 |
Before, "cp /proc/cpuinfo c" would create an empty file when the kernel |
79 |
reports stat.st_size == 0, while "cat /proc/cpuinfo > c" would "work", |
80 |
and create a nonempty one. [bug introduced in coreutils-6.0] |
81 |
|
82 |
cp no longer fails to write through a dangling symlink |
83 |
[bug introduced in coreutils-6.7]. cp --parents no |
84 |
longer mishandles symlinks to directories in file name |
85 |
components in the source, e.g., "cp --parents symlink/a/b |
86 |
d" no longer fails. Also, 'cp' no longer considers a |
87 |
destination symlink to be the same as the referenced file when |
88 |
copying links or making backups. For example, if SYM is a symlink |
89 |
to FILE, "cp -l FILE SYM" now reports an error instead of silently |
90 |
doing nothing. The behavior of 'cp' is now better documented when |
91 |
the destination is a symlink. |
92 |
|
93 |
"cp -i --update older newer" no longer prompts; same for mv |
94 |
|
95 |
"cp -i" now detects read errors on standard input, and no longer consumes |
96 |
too much seekable input; same for ln, install, mv, and rm. |
97 |
|
98 |
cut now diagnoses a range starting with zero (e.g., -f 0-2) as invalid; |
99 |
before, it would treat it as if it started with 1 (-f 1-2). |
100 |
|
101 |
"cut -f 2-0" now fails; before, it was equivalent to "cut -f 2-" |
102 |
|
103 |
cut now diagnoses the '-' in "cut -f -" as an invalid range, rather |
104 |
than interpreting it as the unlimited range, "1-". |
105 |
|
106 |
du -s now includes the size of any stat'able-but-inaccessible directory |
107 |
in the total size. |
108 |
|
109 |
du (without -s) prints whatever it knows of the size of an inaccessible |
110 |
directory. Before, du would print nothing for such a directory. |
111 |
|
112 |
ls -x DIR would sometimes output the wrong string in place of the |
113 |
first entry. [introduced in coreutils-6.8] |
114 |
|
115 |
ls --color would mistakenly color a dangling symlink as if it were |
116 |
a regular symlink. This would happen only when the dangling symlink |
117 |
was not a command-line argument and in a directory with d_type support. |
118 |
[introduced in coreutils-6.0] |
119 |
|
120 |
ls --color, (with a custom LS_COLORS envvar value including the |
121 |
ln=target attribute) would mistakenly output the string "target" |
122 |
before the name of each symlink. [introduced in coreutils-6.0] |
123 |
|
124 |
od's --skip (-j) option now works even when the kernel says that a |
125 |
nonempty regular file has stat.st_size = 0. This happens at least |
126 |
with files in /proc and linux-2.6.22. |
127 |
|
128 |
"od -j L FILE" had a bug: when the number of bytes to skip, L, is exactly |
129 |
the same as the length of FILE, od would skip *no* bytes. When the number |
130 |
of bytes to skip is exactly the sum of the lengths of the first N files, |
131 |
od would skip only the first N-1 files. [introduced in textutils-2.0.9] |
132 |
|
133 |
seq no longer mishandles obvious cases like "seq 0 0.000001 0.000003", |
134 |
so workarounds like "seq 0 0.000001 0.0000031" are no longer needed. |
135 |
|
136 |
Obsolete sort usage with an invalid ordering-option character, e.g., |
137 |
"env _POSIX2_VERSION=199209 sort +1x" no longer makes sort free an |
138 |
invalid pointer [introduced in coreutils-6.5] |
139 |
|
140 |
sorting very long lines (relative to the amount of available memory) |
141 |
no longer provokes unaligned memory access |
142 |
|
143 |
split --line-bytes=N (-C N) no longer creates an empty file |
144 |
[this bug is present at least as far back as textutils-1.22 (Jan, 1997)] |
145 |
|
146 |
tr -c no longer aborts when translating with Set2 larger than the |
147 |
complement of Set1. [introduced with the original version, in 1992] |
148 |
|
149 |
|
150 |
* Noteworthy changes in release 6.9 (2007-03-22) [stable] |
151 |
|
152 |
** Bug fixes |
153 |
|
154 |
cp -x (--one-file-system) would fail to set mount point permissions |
155 |
|
156 |
The default block size and output format for df -P are now unaffected by |
157 |
the DF_BLOCK_SIZE, BLOCK_SIZE, and BLOCKSIZE environment variables. It |
158 |
is still affected by POSIXLY_CORRECT, though. |
159 |
|
160 |
Using pr -m -s (i.e. merging files, with TAB as the output separator) |
161 |
no longer inserts extraneous spaces between output columns. |
162 |
|
163 |
* Noteworthy changes in release 6.8 (2007-02-24) [not-unstable] |
164 |
|
165 |
** Bug fixes |
166 |
|
167 |
chgrp, chmod, and chown now honor the --preserve-root option. |
168 |
Before, they would warn, yet continuing traversing and operating on /. |
169 |
|
170 |
chmod no longer fails in an environment (e.g., a chroot) with openat |
171 |
support but with insufficient /proc support. |
172 |
|
173 |
"cp --parents F/G D" no longer creates a directory D/F when F is not |
174 |
a directory (and F/G is therefore invalid). |
175 |
|
176 |
"cp --preserve=mode" would create directories that briefly had |
177 |
too-generous permissions in some cases. For example, when copying a |
178 |
directory with permissions 777 the destination directory might |
179 |
temporarily be setgid on some file systems, which would allow other |
180 |
users to create subfiles with the same group as the directory. Fix |
181 |
similar problems with 'install' and 'mv'. |
182 |
|
183 |
cut no longer dumps core for usage like "cut -f2- f1 f2" with two or |
184 |
more file arguments. This was due to a double-free bug, introduced |
185 |
in coreutils-5.3.0. |
186 |
|
187 |
dd bs= operands now silently override any later ibs= and obs= |
188 |
operands, as POSIX and tradition require. |
189 |
|
190 |
"ls -FRL" always follows symbolic links on Linux. Introduced in |
191 |
coreutils-6.0. |
192 |
|
193 |
A cross-partition "mv /etc/passwd ~" (by non-root) now prints |
194 |
a reasonable diagnostic. Before, it would print this: |
195 |
"mv: cannot remove `/etc/passwd': Not a directory". |
196 |
|
197 |
pwd and "readlink -e ." no longer fail unnecessarily when a parent |
198 |
directory is unreadable. |
199 |
|
200 |
"rm -rf /etc/passwd" (run by non-root) now prints a diagnostic. |
201 |
Before it would print nothing. |
202 |
|
203 |
"rm --interactive=never F" no longer prompts for an unwritable F |
204 |
|
205 |
** New features |
206 |
|
207 |
sort's new --compress-program=PROG option specifies a compression |
208 |
program to use when writing and reading temporary files. |
209 |
This can help save both time and disk space when sorting large inputs. |
210 |
|
211 |
sort accepts the new option -C, which acts like -c except no diagnostic |
212 |
is printed. Its --check option now accepts an optional argument, and |
213 |
--check=quiet and --check=silent are now aliases for -C, while |
214 |
--check=diagnose-first is an alias for -c or plain --check. |
215 |
|
216 |
|
217 |
* Noteworthy changes in release 6.7 (2006-12-08) [stable] |
218 |
|
219 |
** Bug fixes |
220 |
|
221 |
When cp -p copied a file with special mode bits set, the same bits |
222 |
were set on the copy even when ownership could not be preserved. |
223 |
This could result in files that were setuid to the wrong user. |
224 |
To fix this, special mode bits are now set in the copy only if its |
225 |
ownership is successfully preserved. Similar problems were fixed |
226 |
with mv when copying across file system boundaries. This problem |
227 |
affects all versions of coreutils through 6.6. |
228 |
|
229 |
cp --preserve=ownership would create output files that temporarily |
230 |
had too-generous permissions in some cases. For example, when |
231 |
copying a file with group A and mode 644 into a group-B sticky |
232 |
directory, the output file was briefly readable by group B. |
233 |
Fix similar problems with cp options like -p that imply |
234 |
--preserve=ownership, with install -d when combined with either -o |
235 |
or -g, and with mv when copying across file system boundaries. |
236 |
This bug affects all versions of coreutils through 6.6. |
237 |
|
238 |
du --one-file-system (-x) would skip subdirectories of any directory |
239 |
listed as second or subsequent command line argument. This bug affects |
240 |
coreutils-6.4, 6.5 and 6.6. |
241 |
|
242 |
|
243 |
* Noteworthy changes in release 6.6 (2006-11-22) [stable] |
244 |
|
245 |
** Bug fixes |
246 |
|
247 |
ls would segfault (dereference a NULL pointer) for a file with a |
248 |
nameless group or owner. This bug was introduced in coreutils-6.5. |
249 |
|
250 |
A bug in the latest official m4/gettext.m4 (from gettext-0.15) |
251 |
made configure fail to detect gettext support, due to the unusual |
252 |
way in which coreutils uses AM_GNU_GETTEXT. |
253 |
|
254 |
** Improved robustness |
255 |
|
256 |
Now, du (and the other fts clients: chmod, chgrp, chown) honor a |
257 |
trailing slash in the name of a symlink-to-directory even on |
258 |
Solaris 9, by working around its buggy fstatat implementation. |
259 |
|
260 |
|
261 |
* Major changes in release 6.5 (2006-11-19) [stable] |
262 |
|
263 |
** Bug fixes |
264 |
|
265 |
du (and the other fts clients: chmod, chgrp, chown) would exit early |
266 |
when encountering an inaccessible directory on a system with native |
267 |
openat support (i.e., linux-2.6.16 or newer along with glibc-2.4 |
268 |
or newer). This bug was introduced with the switch to gnulib's |
269 |
openat-based variant of fts, for coreutils-6.0. |
270 |
|
271 |
"ln --backup f f" now produces a sensible diagnostic |
272 |
|
273 |
** New features |
274 |
|
275 |
rm accepts a new option: --one-file-system |
276 |
|
277 |
|
278 |
* Major changes in release 6.4 (2006-10-22) [stable] |
279 |
|
280 |
** Bug fixes |
281 |
|
282 |
chgrp and chown would malfunction when invoked with both -R and -H and |
283 |
with one or more of the following: --preserve-root, --verbose, --changes, |
284 |
--from=o:g (chown only). This bug was introduced with the switch to |
285 |
gnulib's openat-based variant of fts, for coreutils-6.0. |
286 |
|
287 |
cp --backup dir1 dir2, would rename an existing dir2/dir1 to dir2/dir1~. |
288 |
This bug was introduced in coreutils-6.0. |
289 |
|
290 |
With --force (-f), rm no longer fails for ENOTDIR. |
291 |
For example, "rm -f existing-non-directory/anything" now exits |
292 |
successfully, ignoring the error about a nonexistent file. |
293 |
|
294 |
|
295 |
* Major changes in release 6.3 (2006-09-30) [stable] |
296 |
|
297 |
** Improved robustness |
298 |
|
299 |
pinky no longer segfaults on Darwin 7.9.0 (MacOS X 10.3.9) due to a |
300 |
buggy native getaddrinfo function. |
301 |
|
302 |
rm works around a bug in Darwin 7.9.0 (MacOS X 10.3.9) that would |
303 |
sometimes keep it from removing all entries in a directory on an HFS+ |
304 |
or NFS-mounted partition. |
305 |
|
306 |
sort would fail to handle very large input (around 40GB) on systems with a |
307 |
mkstemp function that returns a file descriptor limited to 32-bit offsets. |
308 |
|
309 |
** Bug fixes |
310 |
|
311 |
chmod would fail unnecessarily in an unusual case: when an initially- |
312 |
inaccessible argument is rendered accessible by chmod's action on a |
313 |
preceding command line argument. This bug also affects chgrp, but |
314 |
it is harder to demonstrate. It does not affect chown. The bug was |
315 |
introduced with the switch from explicit recursion to the use of fts |
316 |
in coreutils-5.1.0 (2003-10-15). |
317 |
|
318 |
cp -i and mv -i occasionally neglected to prompt when the copy or move |
319 |
action was bound to fail. This bug dates back to before fileutils-4.0. |
320 |
|
321 |
With --verbose (-v), cp and mv would sometimes generate no output, |
322 |
or neglect to report file removal. |
323 |
|
324 |
For the "groups" command: |
325 |
|
326 |
"groups" no longer prefixes the output with "user :" unless more |
327 |
than one user is specified; this is for compatibility with BSD. |
328 |
|
329 |
"groups user" now exits nonzero when it gets a write error. |
330 |
|
331 |
"groups" now processes options like --help more compatibly. |
332 |
|
333 |
shuf would infloop, given 8KB or more of piped input |
334 |
|
335 |
** Portability |
336 |
|
337 |
Versions of chmod, chown, chgrp, du, and rm (tools that use openat etc.) |
338 |
compiled for Solaris 8 now also work when run on Solaris 10. |
339 |
|
340 |
|
341 |
* Major changes in release 6.2 (2006-09-18) [stable candidate] |
342 |
|
343 |
** Changes in behavior |
344 |
|
345 |
mkdir -p and install -d (or -D) now use a method that forks a child |
346 |
process if the working directory is unreadable and a later argument |
347 |
uses a relative file name. This avoids some race conditions, but it |
348 |
means you may need to kill two processes to stop these programs. |
349 |
|
350 |
rm now rejects attempts to remove the root directory, e.g., `rm -fr /' |
351 |
now fails without removing anything. Likewise for any file name with |
352 |
a final `./' or `../' component. |
353 |
|
354 |
tail now ignores the -f option if POSIXLY_CORRECT is set, no file |
355 |
operand is given, and standard input is any FIFO; formerly it did |
356 |
this only for pipes. |
357 |
|
358 |
** Infrastructure changes |
359 |
|
360 |
Coreutils now uses gnulib via the gnulib-tool script. |
361 |
If you check the source out from CVS, then follow the instructions |
362 |
in README-cvs. Although this represents a large change to the |
363 |
infrastructure, it should cause no change in how the tools work. |
364 |
|
365 |
** Bug fixes |
366 |
|
367 |
cp --backup no longer fails when the last component of a source file |
368 |
name is "." or "..". |
369 |
|
370 |
"ls --color" would highlight other-writable and sticky directories |
371 |
no differently than regular directories on a file system with |
372 |
dirent.d_type support. |
373 |
|
374 |
"mv -T --verbose --backup=t A B" now prints the " (backup: B.~1~)" |
375 |
suffix when A and B are directories as well as when they are not. |
376 |
|
377 |
mv and "cp -r" no longer fail when invoked with two arguments |
378 |
where the first one names a directory and the second name ends in |
379 |
a slash and doesn't exist. E.g., "mv dir B/", for nonexistent B, |
380 |
now succeeds, once more. This bug was introduced in coreutils-5.3.0. |
381 |
|
382 |
|
383 |
* Major changes in release 6.1 (2006-08-19) [unstable] |
384 |
|
385 |
** Changes in behavior |
386 |
|
387 |
df now considers BSD "kernfs" file systems to be dummies |
388 |
|
389 |
** New features |
390 |
|
391 |
printf now supports the 'I' flag on hosts whose underlying printf |
392 |
implementations support 'I', e.g., "printf %Id 2". |
393 |
|
394 |
** Bug fixes |
395 |
|
396 |
cp --sparse preserves sparseness at the end of a file, even when |
397 |
the file's apparent size is not a multiple of its block size. |
398 |
[introduced with the original design, in fileutils-4.0r, 2000-04-29] |
399 |
|
400 |
df (with a command line argument) once again prints its header |
401 |
[introduced in coreutils-6.0] |
402 |
|
403 |
ls -CF would misalign columns in some cases involving non-stat'able files |
404 |
[introduced in coreutils-6.0] |
405 |
|
406 |
* Major changes in release 6.0 (2006-08-15) [unstable] |
407 |
|
408 |
** Improved robustness |
409 |
|
410 |
df: if the file system claims to have more available than total blocks, |
411 |
report the number of used blocks as being "total - available" |
412 |
(a negative number) rather than as garbage. |
413 |
|
414 |
dircolors: a new autoconf run-test for AIX's buggy strndup function |
415 |
prevents malfunction on that system; may also affect cut, expand, |
416 |
and unexpand. |
417 |
|
418 |
fts no longer changes the current working directory, so its clients |
419 |
(chmod, chown, chgrp, du) no longer malfunction under extreme conditions. |
420 |
|
421 |
pwd and other programs using lib/getcwd.c work even on file systems |
422 |
where dirent.d_ino values are inconsistent with those from stat.st_ino. |
423 |
|
424 |
rm's core is now reentrant: rm --recursive (-r) now processes |
425 |
hierarchies without changing the working directory at all. |
426 |
|
427 |
** Changes in behavior |
428 |
|
429 |
basename and dirname now treat // as different from / on platforms |
430 |
where the two are distinct. |
431 |
|
432 |
chmod, install, and mkdir now preserve a directory's set-user-ID and |
433 |
set-group-ID bits unless you explicitly request otherwise. E.g., |
434 |
`chmod 755 DIR' and `chmod u=rwx,go=rx DIR' now preserve DIR's |
435 |
set-user-ID and set-group-ID bits instead of clearing them, and |
436 |
similarly for `mkdir -m 755 DIR' and `mkdir -m u=rwx,go=rx DIR'. To |
437 |
clear the bits, mention them explicitly in a symbolic mode, e.g., |
438 |
`mkdir -m u=rwx,go=rx,-s DIR'. To set them, mention them explicitly |
439 |
in either a symbolic or a numeric mode, e.g., `mkdir -m 2755 DIR', |
440 |
`mkdir -m u=rwx,go=rx,g+s' DIR. This change is for convenience on |
441 |
systems where these bits inherit from parents. Unfortunately other |
442 |
operating systems are not consistent here, and portable scripts |
443 |
cannot assume the bits are set, cleared, or preserved, even when the |
444 |
bits are explicitly mentioned. For example, OpenBSD 3.9 `mkdir -m |
445 |
777 D' preserves D's setgid bit but `chmod 777 D' clears it. |
446 |
Conversely, Solaris 10 `mkdir -m 777 D', `mkdir -m g-s D', and |
447 |
`chmod 0777 D' all preserve D's setgid bit, and you must use |
448 |
something like `chmod g-s D' to clear it. |
449 |
|
450 |
`cp --link --no-dereference' now works also on systems where the |
451 |
link system call cannot create a hard link to a symbolic link. |
452 |
This change has no effect on systems with a Linux-based kernel. |
453 |
|
454 |
csplit and nl now use POSIX syntax for regular expressions, not |
455 |
Emacs syntax. As a result, character classes like [[:print:]] and |
456 |
interval expressions like A\{1,9\} now have their usual meaning, |
457 |
. no longer matches the null character, and \ must precede the + and |
458 |
? operators. |
459 |
|
460 |
date: a command like date -d '2006-04-23 21 days ago' would print |
461 |
the wrong date in some time zones. (see the test for an example) |
462 |
|
463 |
df changes: |
464 |
|
465 |
df now considers "none" and "proc" file systems to be dummies and |
466 |
therefore does not normally display them. Also, inaccessible file |
467 |
systems (which can be caused by shadowed mount points or by |
468 |
chrooted bind mounts) are now dummies, too. |
469 |
|
470 |
df now fails if it generates no output, so you can inspect the |
471 |
exit status of a command like "df -t ext3 -t reiserfs DIR" to test |
472 |
whether DIR is on a file system of type "ext3" or "reiserfs". |
473 |
|
474 |
expr no longer complains about leading ^ in a regular expression |
475 |
(the anchor is ignored), or about regular expressions like A** (the |
476 |
second "*" is ignored). expr now exits with status 2 (not 3) for |
477 |
errors it detects in the expression's values; exit status 3 is now |
478 |
used only for internal errors (such as integer overflow, which expr |
479 |
now checks for). |
480 |
|
481 |
install and mkdir now implement the X permission symbol correctly, |
482 |
e.g., `mkdir -m a+X dir'; previously the X was ignored. |
483 |
|
484 |
install now creates parent directories with mode u=rwx,go=rx (755) |
485 |
instead of using the mode specified by the -m option; and it does |
486 |
not change the owner or group of parent directories. This is for |
487 |
compatibility with BSD and closes some race conditions. |
488 |
|
489 |
ln now uses different (and we hope clearer) diagnostics when it fails. |
490 |
ln -v now acts more like FreeBSD, so it generates output only when |
491 |
successful and the output is easier to parse. |
492 |
|
493 |
ls now defaults to --time-style='locale', not --time-style='posix-long-iso'. |
494 |
However, the 'locale' time style now behaves like 'posix-long-iso' |
495 |
if your locale settings appear to be messed up. This change |
496 |
attempts to have the default be the best of both worlds. |
497 |
|
498 |
mkfifo and mknod no longer set special mode bits (setuid, setgid, |
499 |
and sticky) with the -m option. |
500 |
|
501 |
nohup's usual diagnostic now more precisely specifies the I/O |
502 |
redirections, e.g., "ignoring input and appending output to |
503 |
nohup.out". Also, nohup now redirects stderr to nohup.out (or |
504 |
$HOME/nohup.out) if stdout is closed and stderr is a tty; this is in |
505 |
response to Open Group XCU ERN 71. |
506 |
|
507 |
rm --interactive now takes an optional argument, although the |
508 |
default of using no argument still acts like -i. |
509 |
|
510 |
rm no longer fails to remove an empty, unreadable directory |
511 |
|
512 |
seq changes: |
513 |
|
514 |
seq defaults to a minimal fixed point format that does not lose |
515 |
information if seq's operands are all fixed point decimal numbers. |
516 |
You no longer need the `-f%.f' in `seq -f%.f 1048575 1024 1050623', |
517 |
for example, since the default format now has the same effect. |
518 |
|
519 |
seq now lets you use %a, %A, %E, %F, and %G formats. |
520 |
|
521 |
seq now uses long double internally rather than double. |
522 |
|
523 |
sort now reports incompatible options (e.g., -i and -n) rather than |
524 |
silently ignoring one of them. |
525 |
|
526 |
stat's --format=FMT option now works the way it did before 5.3.0: |
527 |
FMT is automatically newline terminated. The first stable release |
528 |
containing this change was 5.92. |
529 |
|
530 |
stat accepts the new option --printf=FMT, where FMT is *not* |
531 |
automatically newline terminated. |
532 |
|
533 |
stat: backslash escapes are interpreted in a format string specified |
534 |
via --printf=FMT, but not one specified via --format=FMT. That includes |
535 |
octal (\ooo, at most three octal digits), hexadecimal (\xhh, one or |
536 |
two hex digits), and the standard sequences (\a, \b, \f, \n, \r, \t, |
537 |
\v, \", \\). |
538 |
|
539 |
With no operand, 'tail -f' now silently ignores the '-f' only if |
540 |
standard input is a FIFO or pipe and POSIXLY_CORRECT is set. |
541 |
Formerly, it ignored the '-f' when standard input was a FIFO, pipe, |
542 |
or socket. |
543 |
|
544 |
** Scheduled for removal |
545 |
|
546 |
ptx's --copyright (-C) option is scheduled for removal in 2007, and |
547 |
now evokes a warning. Use --version instead. |
548 |
|
549 |
rm's --directory (-d) option is scheduled for removal in 2006. This |
550 |
option has been silently ignored since coreutils 5.0. On systems |
551 |
that support unlinking of directories, you can use the "unlink" |
552 |
command to unlink a directory. |
553 |
|
554 |
Similarly, we are considering the removal of ln's --directory (-d, |
555 |
-F) option in 2006. Please write to <bug-coreutils@gnu.org> if this |
556 |
would cause a problem for you. On systems that support hard links |
557 |
to directories, you can use the "link" command to create one. |
558 |
|
559 |
** New programs |
560 |
|
561 |
base64: base64 encoding and decoding (RFC 3548) functionality. |
562 |
sha224sum: print or check a SHA224 (224-bit) checksum |
563 |
sha256sum: print or check a SHA256 (256-bit) checksum |
564 |
sha384sum: print or check a SHA384 (384-bit) checksum |
565 |
sha512sum: print or check a SHA512 (512-bit) checksum |
566 |
shuf: Shuffle lines of text. |
567 |
|
568 |
** New features |
569 |
|
570 |
chgrp now supports --preserve-root, --no-preserve-root (default), |
571 |
as it was documented to do, and just as chmod, chown, and rm do. |
572 |
|
573 |
New dd iflag= and oflag= flags: |
574 |
|
575 |
'directory' causes dd to fail unless the file is a directory, on |
576 |
hosts that support this (e.g., Linux kernels, version 2.1.126 and |
577 |
later). This has limited utility but is present for completeness. |
578 |
|
579 |
'noatime' causes dd to read a file without updating its access |
580 |
time, on hosts that support this (e.g., Linux kernels, version |
581 |
2.6.8 and later). |
582 |
|
583 |
'nolinks' causes dd to fail if the file has multiple hard links, |
584 |
on hosts that support this (e.g., Solaris 10 and later). |
585 |
|
586 |
ls accepts the new option --group-directories-first, to make it |
587 |
list directories before files. |
588 |
|
589 |
rm now accepts the -I (--interactive=once) option. This new option |
590 |
prompts once if rm is invoked recursively or if more than three |
591 |
files are being deleted, which is less intrusive than -i prompting |
592 |
for every file, but provides almost the same level of protection |
593 |
against mistakes. |
594 |
|
595 |
shred and sort now accept the --random-source option. |
596 |
|
597 |
sort now accepts the --random-sort (-R) option and `R' ordering option. |
598 |
|
599 |
sort now supports obsolete usages like "sort +1 -2" unless |
600 |
POSIXLY_CORRECT is set. However, when conforming to POSIX |
601 |
1003.1-2001 "sort +1" still sorts the file named "+1". |
602 |
|
603 |
wc accepts a new option --files0-from=FILE, where FILE contains a |
604 |
list of NUL-terminated file names. |
605 |
|
606 |
** Bug fixes |
607 |
|
608 |
cat with any of the options, -A -v -e -E -T, when applied to a |
609 |
file in /proc or /sys (linux-specific), would truncate its output, |
610 |
usually printing nothing. |
611 |
|
612 |
cp -p would fail in a /proc-less chroot, on some systems |
613 |
|
614 |
When `cp -RL' encounters the same directory more than once in the |
615 |
hierarchy beneath a single command-line argument, it no longer confuses |
616 |
them with hard-linked directories. |
617 |
|
618 |
fts-using tools (chmod, chown, chgrp, du) no longer fail due to |
619 |
a double-free bug -- it could be triggered by making a directory |
620 |
inaccessible while e.g., du is traversing the hierarchy under it. |
621 |
|
622 |
fts-using tools (chmod, chown, chgrp, du) no longer misinterpret |
623 |
a very long symlink chain as a dangling symlink. Before, such a |
624 |
misinterpretation would cause these tools not to diagnose an ELOOP error. |
625 |
|
626 |
ls --indicator-style=file-type would sometimes stat a symlink |
627 |
unnecessarily. |
628 |
|
629 |
ls --file-type worked like --indicator-style=slash (-p), |
630 |
rather than like --indicator-style=file-type. |
631 |
|
632 |
mv: moving a symlink into the place of an existing non-directory is |
633 |
now done atomically; before, mv would first unlink the destination. |
634 |
|
635 |
mv -T DIR EMPTY_DIR no longer fails unconditionally. Also, mv can |
636 |
now remove an empty destination directory: mkdir -p a b/a; mv a b |
637 |
|
638 |
rm (on systems with openat) can no longer exit before processing |
639 |
all command-line arguments. |
640 |
|
641 |
rm is no longer susceptible to a few low-probability memory leaks. |
642 |
|
643 |
rm -r no longer fails to remove an inaccessible and empty directory |
644 |
|
645 |
rm -r's cycle detection code can no longer be tricked into reporting |
646 |
a false positive (introduced in fileutils-4.1.9). |
647 |
|
648 |
shred --remove FILE no longer segfaults on Gentoo systems |
649 |
|
650 |
sort would fail for large inputs (~50MB) on systems with a buggy |
651 |
mkstemp function. sort and tac now use the replacement mkstemp |
652 |
function, and hence are no longer subject to limitations (of 26 or 32, |
653 |
on the maximum number of files from a given template) on HP-UX 10.20, |
654 |
SunOS 4.1.4, Solaris 2.5.1 and OSF1/Tru64 V4.0F&V5.1. |
655 |
|
656 |
tail -f once again works on a file with the append-only |
657 |
attribute (affects at least Linux ext2, ext3, xfs file systems) |
658 |
|
659 |
* Major changes in release 5.97 (2006-06-24) [stable] |
660 |
* Major changes in release 5.96 (2006-05-22) [stable] |
661 |
* Major changes in release 5.95 (2006-05-12) [stable] |
662 |
* Major changes in release 5.94 (2006-02-13) [stable] |
663 |
|
664 |
[see the b5_9x branch for details] |
665 |
|
666 |
* Major changes in release 5.93 (2005-11-06) [stable] |
667 |
|
668 |
** Bug fixes |
669 |
|
670 |
dircolors no longer segfaults upon an attempt to use the new |
671 |
STICKY_OTHER_WRITABLE (OWT) attribute. |
672 |
|
673 |
du no longer overflows a counter when processing a file larger than |
674 |
2^31-1 on some 32-bit systems (at least some AIX 5.1 configurations). |
675 |
|
676 |
md5sum once again defaults to using the ` ' non-binary marker |
677 |
(rather than the `*' binary marker) by default on Unix-like systems. |
678 |
|
679 |
mkdir -p and install -d no longer exit nonzero when asked to create |
680 |
a directory like `nonexistent/.' |
681 |
|
682 |
rm emits a better diagnostic when (without -r) it fails to remove |
683 |
a directory on e.g., Solaris 9/10 systems. |
684 |
|
685 |
tac now works when stdin is a tty, even on non-Linux systems. |
686 |
|
687 |
"tail -c 2 FILE" and "touch 0101000000" now operate as POSIX |
688 |
1003.1-2001 requires, even when coreutils is conforming to older |
689 |
POSIX standards, as the newly-required behavior is upward-compatible |
690 |
with the old. |
691 |
|
692 |
The documentation no longer mentions rm's --directory (-d) option. |
693 |
|
694 |
** Build-related bug fixes |
695 |
|
696 |
installing .mo files would fail |
697 |
|
698 |
|
699 |
* Major changes in release 5.92 (2005-10-22) [stable] |
700 |
|
701 |
** Bug fixes |
702 |
|
703 |
chmod now diagnoses an invalid mode string starting with an octal digit |
704 |
|
705 |
dircolors now properly quotes single-quote characters |
706 |
|
707 |
|
708 |
* Major changes in release 5.91 (2005-10-17) [stable candidate] |
709 |
|
710 |
** Bug fixes |
711 |
|
712 |
"mkdir -p /a/b/c" no longer fails merely because a leading prefix |
713 |
directory (e.g., /a or /a/b) exists on a read-only file system. |
714 |
|
715 |
** Removed options |
716 |
|
717 |
tail's --allow-missing option has been removed. Use --retry instead. |
718 |
|
719 |
stat's --link and -l options have been removed. |
720 |
Use --dereference (-L) instead. |
721 |
|
722 |
** Deprecated options |
723 |
|
724 |
Using ls, du, or df with the --kilobytes option now evokes a warning |
725 |
that the long-named option is deprecated. Use `-k' instead. |
726 |
|
727 |
du's long-named --megabytes option now evokes a warning. |
728 |
Use -m instead. |
729 |
|
730 |
|
731 |
* Major changes in release 5.90 (2005-09-29) [unstable] |
732 |
|
733 |
** Bring back support for `head -NUM', `tail -NUM', etc. even when |
734 |
conforming to POSIX 1003.1-2001. The following changes apply only |
735 |
when conforming to POSIX 1003.1-2001; there is no effect when |
736 |
conforming to older POSIX versions. |
737 |
|
738 |
The following usages now behave just as when conforming to older POSIX: |
739 |
|
740 |
date -I |
741 |
expand -TAB1[,TAB2,...] |
742 |
fold -WIDTH |
743 |
head -NUM |
744 |
join -j FIELD |
745 |
join -j1 FIELD |
746 |
join -j2 FIELD |
747 |
join -o FIELD_NAME1 FIELD_NAME2... |
748 |
nice -NUM |
749 |
od -w |
750 |
pr -S |
751 |
split -NUM |
752 |
tail -[NUM][bcl][f] [FILE] |
753 |
|
754 |
The following usages no longer work, due to the above changes: |
755 |
|
756 |
date -I TIMESPEC (use `date -ITIMESPEC' instead) |
757 |
od -w WIDTH (use `od -wWIDTH' instead) |
758 |
pr -S STRING (use `pr -SSTRING' instead) |
759 |
|
760 |
A few usages still have behavior that depends on which POSIX standard is |
761 |
being conformed to, and portable applications should beware these |
762 |
problematic usages. These include: |
763 |
|
764 |
Problematic Standard-conforming replacement, depending on |
765 |
usage whether you prefer the behavior of: |
766 |
POSIX 1003.2-1992 POSIX 1003.1-2001 |
767 |
sort +4 sort -k 5 sort ./+4 |
768 |
tail +4 tail -n +4 tail ./+4 |
769 |
tail - f tail f [see (*) below] |
770 |
tail -c 4 tail -c 10 ./4 tail -c4 |
771 |
touch 12312359 f touch -t 12312359 f touch ./12312359 f |
772 |
uniq +4 uniq -s 4 uniq ./+4 |
773 |
|
774 |
(*) "tail - f" does not conform to POSIX 1003.1-2001; to read |
775 |
standard input and then "f", use the command "tail -- - f". |
776 |
|
777 |
These changes are in response to decisions taken in the January 2005 |
778 |
Austin Group standardization meeting. For more details, please see |
779 |
"Utility Syntax Guidelines" in the Minutes of the January 2005 |
780 |
Meeting <http://www.opengroup.org/austin/docs/austin_239.html>. |
781 |
|
782 |
** Binary input and output are now implemented more consistently. |
783 |
These changes affect only platforms like MS-DOS that distinguish |
784 |
between binary and text files. |
785 |
|
786 |
The following programs now always use text input/output: |
787 |
|
788 |
expand unexpand |
789 |
|
790 |
The following programs now always use binary input/output to copy data: |
791 |
|
792 |
cp install mv shred |
793 |
|
794 |
The following programs now always use binary input/output to copy |
795 |
data, except for stdin and stdout when it is a terminal. |
796 |
|
797 |
head tac tail tee tr |
798 |
(cat behaves similarly, unless one of the options -bensAE is used.) |
799 |
|
800 |
cat's --binary or -B option has been removed. It existed only on |
801 |
MS-DOS-like platforms, and didn't work as documented there. |
802 |
|
803 |
md5sum and sha1sum now obey the -b or --binary option, even if |
804 |
standard input is a terminal, and they no longer report files to be |
805 |
binary if they actually read them in text mode. |
806 |
|
807 |
** Changes for better conformance to POSIX |
808 |
|
809 |
cp, ln, mv, rm changes: |
810 |
|
811 |
Leading white space is now significant in responses to yes-or-no questions. |
812 |
For example, if "rm" asks "remove regular file `foo'?" and you respond |
813 |
with " y" (i.e., space before "y"), it counts as "no". |
814 |
|
815 |
dd changes: |
816 |
|
817 |
On a QUIT or PIPE signal, dd now exits without printing statistics. |
818 |
|
819 |
On hosts lacking the INFO signal, dd no longer treats the USR1 |
820 |
signal as if it were INFO when POSIXLY_CORRECT is set. |
821 |
|
822 |
If the file F is non-seekable and contains fewer than N blocks, |
823 |
then before copying "dd seek=N of=F" now extends F with zeroed |
824 |
blocks until F contains N blocks. |
825 |
|
826 |
fold changes: |
827 |
|
828 |
When POSIXLY_CORRECT is set, "fold file -3" is now equivalent to |
829 |
"fold file ./-3", not the obviously-erroneous "fold file ./-w3". |
830 |
|
831 |
ls changes: |
832 |
|
833 |
-p now marks only directories; it is equivalent to the new option |
834 |
--indicator-style=slash. Use --file-type or |
835 |
--indicator-style=file-type to get -p's old behavior. |
836 |
|
837 |
nice changes: |
838 |
|
839 |
Documentation and diagnostics now refer to "nicenesses" (commonly |
840 |
in the range -20...19) rather than "nice values" (commonly 0...39). |
841 |
|
842 |
nohup changes: |
843 |
|
844 |
nohup now ignores the umask when creating nohup.out. |
845 |
|
846 |
nohup now closes stderr if it is a terminal and stdout is closed. |
847 |
|
848 |
nohup now exits with status 127 (not 1) when given an invalid option. |
849 |
|
850 |
pathchk changes: |
851 |
|
852 |
It now rejects the empty name in the normal case. That is, |
853 |
"pathchk -p ''" now fails, and "pathchk ''" fails unless the |
854 |
current host (contra POSIX) allows empty file names. |
855 |
|
856 |
The new -P option checks whether a file name component has leading "-", |
857 |
as suggested in interpretation "Austin-039:XCU:pathchk:pathchk -p" |
858 |
<http://www.opengroup.org/austin/interps/doc.tpl?gdid=6232>. |
859 |
It also rejects the empty name even if the current host accepts it; see |
860 |
<http://www.opengroup.org/austin/interps/doc.tpl?gdid=6233>. |
861 |
|
862 |
The --portability option is now equivalent to -p -P. |
863 |
|
864 |
** Bug fixes |
865 |
|
866 |
chmod, mkdir, mkfifo, and mknod formerly mishandled rarely-used symbolic |
867 |
permissions like =xX and =u, and did not properly diagnose some invalid |
868 |
strings like g+gr, ug,+x, and +1. These bugs have been fixed. |
869 |
|
870 |
csplit could produce corrupt output, given input lines longer than 8KB |
871 |
|
872 |
dd now computes statistics using a realtime clock (if available) |
873 |
rather than the time-of-day clock, to avoid glitches if the |
874 |
time-of-day is changed while dd is running. Also, it avoids |
875 |
using unsafe code in signal handlers; this fixes some core dumps. |
876 |
|
877 |
expr and test now correctly compare integers of unlimited magnitude. |
878 |
|
879 |
expr now detects integer overflow when converting strings to integers, |
880 |
rather than silently wrapping around. |
881 |
|
882 |
ls now refuses to generate time stamps containing more than 1000 bytes, to |
883 |
foil potential denial-of-service attacks on hosts with very large stacks. |
884 |
|
885 |
"mkdir -m =+x dir" no longer ignores the umask when evaluating "+x", |
886 |
and similarly for mkfifo and mknod. |
887 |
|
888 |
"mkdir -p /tmp/a/b dir" no longer attempts to create the `.'-relative |
889 |
directory, dir (in /tmp/a), when, after creating /tmp/a/b, it is unable |
890 |
to return to its initial working directory. Similarly for "install -D |
891 |
file /tmp/a/b/file". |
892 |
|
893 |
"pr -D FORMAT" now accepts the same formats that "date +FORMAT" does. |
894 |
|
895 |
stat now exits nonzero if a file operand does not exist |
896 |
|
897 |
** Improved robustness |
898 |
|
899 |
Date no longer needs to allocate virtual memory to do its job, |
900 |
so it can no longer fail due to an out-of-memory condition, |
901 |
no matter how large the result. |
902 |
|
903 |
** Improved portability |
904 |
|
905 |
hostid now prints exactly 8 hexadecimal digits, possibly with leading zeros, |
906 |
and without any spurious leading "fff..." on 64-bit hosts. |
907 |
|
908 |
nice now works on Darwin 7.7.0 in spite of its invalid definition of NZERO. |
909 |
|
910 |
`rm -r' can remove all entries in a directory even when it is on a |
911 |
file system for which readdir is buggy and that was not checked by |
912 |
coreutils' old configure-time run-test. |
913 |
|
914 |
sleep no longer fails when resumed after being suspended on linux-2.6.8.1, |
915 |
in spite of that kernel's buggy nanosleep implementation. |
916 |
|
917 |
** New features |
918 |
|
919 |
chmod -w now complains if its behavior differs from what chmod a-w |
920 |
would do, and similarly for chmod -r, chmod -x, etc. |
921 |
|
922 |
cp and mv: the --reply=X option is deprecated |
923 |
|
924 |
date accepts the new option --rfc-3339=TIMESPEC. The old --iso-8601 (-I) |
925 |
option is deprecated; it still works, but new applications should avoid it. |
926 |
date, du, ls, and pr's time formats now support new %:z, %::z, %:::z |
927 |
specifiers for numeric time zone offsets like -07:00, -07:00:00, and -07. |
928 |
|
929 |
dd has new iflag= and oflag= flags "binary" and "text", which have an |
930 |
effect only on nonstandard platforms that distinguish text from binary I/O. |
931 |
|
932 |
dircolors now supports SETUID, SETGID, STICKY_OTHER_WRITABLE, |
933 |
OTHER_WRITABLE, and STICKY, with ls providing default colors for these |
934 |
categories if not specified by dircolors. |
935 |
|
936 |
du accepts new options: --time[=TYPE] and --time-style=STYLE |
937 |
|
938 |
join now supports a NUL field separator, e.g., "join -t '\0'". |
939 |
join now detects and reports incompatible options, e.g., "join -t x -t y", |
940 |
|
941 |
ls no longer outputs an extra space between the mode and the link count |
942 |
when none of the listed files has an ACL. |
943 |
|
944 |
md5sum --check now accepts multiple input files, and similarly for sha1sum. |
945 |
|
946 |
If stdin is a terminal, nohup now redirects it from /dev/null to |
947 |
prevent the command from tying up an OpenSSH session after you logout. |
948 |
|
949 |
"rm -FOO" now suggests "rm ./-FOO" if the file "-FOO" exists and |
950 |
"-FOO" is not a valid option. |
951 |
|
952 |
stat -f -c %S outputs the fundamental block size (used for block counts). |
953 |
stat -f's default output format has been changed to output this size as well. |
954 |
stat -f recognizes file systems of type XFS and JFS |
955 |
|
956 |
"touch -" now touches standard output, not a file named "-". |
957 |
|
958 |
uname -a no longer generates the -p and -i outputs if they are unknown. |
959 |
|
960 |
* Major changes in release 5.3.0 (2005-01-08) [unstable] |
961 |
|
962 |
** Bug fixes |
963 |
|
964 |
Several fixes to chgrp and chown for compatibility with POSIX and BSD: |
965 |
|
966 |
Do not affect symbolic links by default. |
967 |
Now, operate on whatever a symbolic link points to, instead. |
968 |
To get the old behavior, use --no-dereference (-h). |
969 |
|
970 |
--dereference now works, even when the specified owner |
971 |
and/or group match those of an affected symlink. |
972 |
|
973 |
Check for incompatible options. When -R and --dereference are |
974 |
both used, then either -H or -L must also be used. When -R and -h |
975 |
are both used, then -P must be in effect. |
976 |
|
977 |
-H, -L, and -P have no effect unless -R is also specified. |
978 |
If -P and -R are both specified, -h is assumed. |
979 |
|
980 |
Do not optimize away the chown() system call when the file's owner |
981 |
and group already have the desired value. This optimization was |
982 |
incorrect, as it failed to update the last-changed time and reset |
983 |
special permission bits, as POSIX requires. |
984 |
|
985 |
"chown : file", "chown '' file", and "chgrp '' file" now succeed |
986 |
without changing the uid or gid, instead of reporting an error. |
987 |
|
988 |
Do not report an error if the owner or group of a |
989 |
recursively-encountered symbolic link cannot be updated because |
990 |
the file system does not support it. |
991 |
|
992 |
chmod now accepts multiple mode-like options, e.g., "chmod -r -w f". |
993 |
|
994 |
chown is no longer subject to a race condition vulnerability, when |
995 |
used with --from=O:G and without the (-h) --no-dereference option. |
996 |
|
997 |
cut's --output-delimiter=D option works with abutting byte ranges. |
998 |
|
999 |
dircolors's documentation now recommends that shell scripts eval |
1000 |
"`dircolors`" rather than `dircolors`, to avoid shell expansion pitfalls. |
1001 |
|
1002 |
du no longer segfaults when a subdirectory of an operand |
1003 |
directory is removed while du is traversing that subdirectory. |
1004 |
Since the bug was in the underlying fts.c module, it also affected |
1005 |
chown, chmod, and chgrp. |
1006 |
|
1007 |
du's --exclude-from=FILE and --exclude=P options now compare patterns |
1008 |
against the entire name of each file, rather than against just the |
1009 |
final component. |
1010 |
|
1011 |
echo now conforms to POSIX better. It supports the \0ooo syntax for |
1012 |
octal escapes, and \c now terminates printing immediately. If |
1013 |
POSIXLY_CORRECT is set and the first argument is not "-n", echo now |
1014 |
outputs all option-like arguments instead of treating them as options. |
1015 |
|
1016 |
expand and unexpand now conform to POSIX better. They check for |
1017 |
blanks (which can include characters other than space and tab in |
1018 |
non-POSIX locales) instead of spaces and tabs. Unexpand now |
1019 |
preserves some blanks instead of converting them to tabs or spaces. |
1020 |
|
1021 |
"ln x d/" now reports an error if d/x is a directory and x a file, |
1022 |
instead of incorrectly creating a link to d/x/x. |
1023 |
|
1024 |
ls no longer segfaults on systems for which SIZE_MAX != (size_t) -1. |
1025 |
|
1026 |
md5sum and sha1sum now report an error when given so many input |
1027 |
lines that their line counter overflows, instead of silently |
1028 |
reporting incorrect results. |
1029 |
|
1030 |
Fixes for "nice": |
1031 |
|
1032 |
If it fails to lower the niceness due to lack of permissions, |
1033 |
it goes ahead and runs the command anyway, as POSIX requires. |
1034 |
|
1035 |
It no longer incorrectly reports an error if the current niceness |
1036 |
happens to be -1. |
1037 |
|
1038 |
It no longer assumes that nicenesses range from -20 through 19. |
1039 |
|
1040 |
It now consistently adjusts out-of-range nicenesses to the |
1041 |
closest values in range; formerly it sometimes reported an error. |
1042 |
|
1043 |
pathchk no longer accepts trailing options, e.g., "pathchk -p foo -b" |
1044 |
now treats -b as a file name to check, not as an invalid option. |
1045 |
|
1046 |
`pr --columns=N' was not equivalent to `pr -N' when also using |
1047 |
either -s or -w. |
1048 |
|
1049 |
pr now supports page numbers up to 2**64 on most hosts, and it |
1050 |
detects page number overflow instead of silently wrapping around. |
1051 |
pr now accepts file names that begin with "+" so long as the rest of |
1052 |
the file name does not look like a page range. |
1053 |
|
1054 |
printf has several changes: |
1055 |
|
1056 |
It now uses 'intmax_t' (not 'long int') to format integers, so it |
1057 |
can now format 64-bit integers on most modern hosts. |
1058 |
|
1059 |
On modern hosts it now supports the C99-inspired %a, %A, %F conversion |
1060 |
specs, the "'" and "0" flags, and the ll, j, t, and z length modifiers |
1061 |
(this is compatible with recent Bash versions). |
1062 |
|
1063 |
The printf command now rejects invalid conversion specifications |
1064 |
like %#d, instead of relying on undefined behavior in the underlying |
1065 |
printf function. |
1066 |
|
1067 |
ptx now diagnoses invalid values for its --width=N (-w) |
1068 |
and --gap-size=N (-g) options. |
1069 |
|
1070 |
mv (when moving between partitions) no longer fails when |
1071 |
operating on too many command-line-specified nonempty directories. |
1072 |
|
1073 |
"readlink -f" is more compatible with prior implementations |
1074 |
|
1075 |
rm (without -f) no longer hangs when attempting to remove a symlink |
1076 |
to a file on an off-line NFS-mounted partition. |
1077 |
|
1078 |
rm no longer gets a failed assertion under some unusual conditions. |
1079 |
|
1080 |
rm no longer requires read access to the current directory. |
1081 |
|
1082 |
"rm -r" would mistakenly fail to remove files under a directory |
1083 |
for some types of errors (e.g., read-only file system, I/O error) |
1084 |
when first encountering the directory. |
1085 |
|
1086 |
"sort" fixes: |
1087 |
|
1088 |
"sort -o -" now writes to a file named "-" instead of to standard |
1089 |
output; POSIX requires this. |
1090 |
|
1091 |
An unlikely race condition has been fixed where "sort" could have |
1092 |
mistakenly removed a temporary file belonging to some other process. |
1093 |
|
1094 |
"sort" no longer has O(N**2) behavior when it creates many temporary files. |
1095 |
|
1096 |
tac can now handle regular, nonseekable files like Linux's |
1097 |
/proc/modules. Before, it would produce no output for such a file. |
1098 |
|
1099 |
tac would exit immediately upon I/O or temp-file creation failure. |
1100 |
Now it continues on, processing any remaining command line arguments. |
1101 |
|
1102 |
"tail -f" no longer mishandles pipes and fifos. With no operands, |
1103 |
tail now ignores -f if standard input is a pipe, as POSIX requires. |
1104 |
When conforming to POSIX 1003.2-1992, tail now supports the SUSv2 b |
1105 |
modifier (e.g., "tail -10b file") and it handles some obscure cases |
1106 |
more correctly, e.g., "tail +cl" now reads the file "+cl" rather |
1107 |
than reporting an error, "tail -c file" no longer reports an error, |
1108 |
and "tail - file" no longer reads standard input. |
1109 |
|
1110 |
tee now exits when it gets a SIGPIPE signal, as POSIX requires. |
1111 |
To get tee's old behavior, use the shell command "(trap '' PIPE; tee)". |
1112 |
Also, "tee -" now writes to standard output instead of to a file named "-". |
1113 |
|
1114 |
"touch -- MMDDhhmm[yy] file" is now equivalent to |
1115 |
"touch MMDDhhmm[yy] file" even when conforming to pre-2001 POSIX. |
1116 |
|
1117 |
tr no longer mishandles a second operand with leading "-". |
1118 |
|
1119 |
who now prints user names in full instead of truncating them after 8 bytes. |
1120 |
|
1121 |
The following commands now reject unknown options instead of |
1122 |
accepting them as operands, so that users are properly warned that |
1123 |
options may be added later. Formerly they accepted unknown options |
1124 |
as operands; e.g., "basename -a a" acted like "basename -- -a a". |
1125 |
|
1126 |
basename dirname factor hostname link nohup sync unlink yes |
1127 |
|
1128 |
** New features |
1129 |
|
1130 |
For efficiency, `sort -m' no longer copies input to a temporary file |
1131 |
merely because the input happens to come from a pipe. As a result, |
1132 |
some relatively-contrived examples like `cat F | sort -m -o F - G' |
1133 |
are no longer safe, as `sort' might start writing F before `cat' is |
1134 |
done reading it. This problem cannot occur unless `-m' is used. |
1135 |
|
1136 |
When outside the default POSIX locale, the 'who' and 'pinky' |
1137 |
commands now output time stamps like "2004-06-21 13:09" instead of |
1138 |
the traditional "Jun 21 13:09". |
1139 |
|
1140 |
pwd now works even when run from a working directory whose name |
1141 |
is longer than PATH_MAX. |
1142 |
|
1143 |
cp, install, ln, and mv have a new --no-target-directory (-T) option, |
1144 |
and -t is now a short name for their --target-directory option. |
1145 |
|
1146 |
cp -pu and mv -u (when copying) now don't bother to update the |
1147 |
destination if the resulting time stamp would be no newer than the |
1148 |
preexisting time stamp. This saves work in the common case when |
1149 |
copying or moving multiple times to the same destination in a file |
1150 |
system with a coarse time stamp resolution. |
1151 |
|
1152 |
cut accepts a new option, --complement, to complement the set of |
1153 |
selected bytes, characters, or fields. |
1154 |
|
1155 |
dd now also prints the number of bytes transferred, the time, and the |
1156 |
transfer rate. The new "status=noxfer" operand suppresses this change. |
1157 |
|
1158 |
dd has new conversions for the conv= option: |
1159 |
|
1160 |
nocreat do not create the output file |
1161 |
excl fail if the output file already exists |
1162 |
fdatasync physically write output file data before finishing |
1163 |
fsync likewise, but also write metadata |
1164 |
|
1165 |
dd has new iflag= and oflag= options with the following flags: |
1166 |
|
1167 |
append append mode (makes sense for output file only) |
1168 |
direct use direct I/O for data |
1169 |
dsync use synchronized I/O for data |
1170 |
sync likewise, but also for metadata |
1171 |
nonblock use non-blocking I/O |
1172 |
nofollow do not follow symlinks |
1173 |
noctty do not assign controlling terminal from file |
1174 |
|
1175 |
stty now provides support (iutf8) for setting UTF-8 input mode. |
1176 |
|
1177 |
With stat, a specified format is no longer automatically newline terminated. |
1178 |
If you want a newline at the end of your output, append `\n' to the format |
1179 |
string. |
1180 |
|
1181 |
'df', 'du', and 'ls' now take the default block size from the |
1182 |
BLOCKSIZE environment variable if the BLOCK_SIZE, DF_BLOCK_SIZE, |
1183 |
DU_BLOCK_SIZE, and LS_BLOCK_SIZE environment variables are not set. |
1184 |
Unlike the other variables, though, BLOCKSIZE does not affect |
1185 |
values like 'ls -l' sizes that are normally displayed as bytes. |
1186 |
This new behavior is for compatibility with BSD. |
1187 |
|
1188 |
du accepts a new option --files0-from=FILE, where FILE contains a |
1189 |
list of NUL-terminated file names. |
1190 |
|
1191 |
Date syntax as used by date -d, date -f, and touch -d has been |
1192 |
changed as follows: |
1193 |
|
1194 |
Dates like `January 32' with out-of-range components are now rejected. |
1195 |
|
1196 |
Dates can have fractional time stamps like 2004-02-27 14:19:13.489392193. |
1197 |
|
1198 |
Dates can be entered via integer counts of seconds since 1970 when |
1199 |
prefixed by `@'. For example, `@321' represents 1970-01-01 00:05:21 UTC. |
1200 |
|
1201 |
Time zone corrections can now separate hours and minutes with a colon, |
1202 |
and can follow standard abbreviations like "UTC". For example, |
1203 |
"UTC +0530" and "+05:30" are supported, and are both equivalent to "+0530". |
1204 |
|
1205 |
Date values can now have leading TZ="..." assignments that override |
1206 |
the environment only while that date is being processed. For example, |
1207 |
the following shell command converts from Paris to New York time: |
1208 |
|
1209 |
TZ="America/New_York" date --date='TZ="Europe/Paris" 2004-10-31 06:30' |
1210 |
|
1211 |
`date' has a new option --iso-8601=ns that outputs |
1212 |
nanosecond-resolution time stamps. |
1213 |
|
1214 |
echo -e '\xHH' now outputs a byte whose hexadecimal value is HH, |
1215 |
for compatibility with bash. |
1216 |
|
1217 |
ls now exits with status 1 on minor problems, 2 if serious trouble. |
1218 |
|
1219 |
ls has a new --hide=PATTERN option that behaves like |
1220 |
--ignore=PATTERN, except that it is overridden by -a or -A. |
1221 |
This can be useful for aliases, e.g., if lh is an alias for |
1222 |
"ls --hide='*~'", then "lh -A" lists the file "README~". |
1223 |
|
1224 |
In the following cases POSIX allows the default GNU behavior, |
1225 |
so when POSIXLY_CORRECT is set: |
1226 |
|
1227 |
false, printf, true, unlink, and yes all support --help and --option. |
1228 |
ls supports TABSIZE. |
1229 |
pr no longer depends on LC_TIME for the date format in non-POSIX locales. |
1230 |
printf supports \u, \U, \x. |
1231 |
tail supports two or more files when using the obsolete option syntax. |
1232 |
|
1233 |
The usual `--' operand is now supported by chroot, hostid, hostname, |
1234 |
pwd, sync, and yes. |
1235 |
|
1236 |
`od' now conforms to POSIX better, and is more compatible with BSD: |
1237 |
|
1238 |
The older syntax "od [-abcdfilosx]... [FILE] [[+]OFFSET[.][b]]" now works |
1239 |
even without --traditional. This is a change in behavior if there |
1240 |
are one or two operands and the last one begins with +, or if |
1241 |
there are two operands and the latter one begins with a digit. |
1242 |
For example, "od foo 10" and "od +10" now treat the last operand as |
1243 |
an offset, not as a file name. |
1244 |
|
1245 |
-h is no longer documented, and may be withdrawn in future versions. |
1246 |
Use -x or -t x2 instead. |
1247 |
|
1248 |
-i is now equivalent to -t dI (not -t d2), and |
1249 |
-l is now equivalent to -t dL (not -t d4). |
1250 |
|
1251 |
-s is now equivalent to -t d2. The old "-s[NUM]" or "-s NUM" |
1252 |
option has been renamed to "-S NUM". |
1253 |
|
1254 |
The default output format is now -t oS, not -t o2, i.e., short int |
1255 |
rather than two-byte int. This makes a difference only on hosts like |
1256 |
Cray systems where the C short int type requires more than two bytes. |
1257 |
|
1258 |
readlink accepts new options: --canonicalize-existing (-e) |
1259 |
and --canonicalize-missing (-m). |
1260 |
|
1261 |
The stat option --filesystem has been renamed to --file-system, for |
1262 |
consistency with POSIX "file system" and with cp and du --one-file-system. |
1263 |
|
1264 |
** Removed features |
1265 |
|
1266 |
md5sum and sha1sum's undocumented --string option has been removed. |
1267 |
|
1268 |
tail's undocumented --max-consecutive-size-changes option has been removed. |
1269 |
|
1270 |
* Major changes in release 5.2.1 (2004-03-12) [stable] |
1271 |
|
1272 |
** Bug fixes |
1273 |
|
1274 |
mv could mistakenly fail to preserve hard links when moving two |
1275 |
or more arguments between partitions. |
1276 |
|
1277 |
`cp --sparse=always F /dev/hdx' no longer tries to use lseek to create |
1278 |
holes in the destination. |
1279 |
|
1280 |
nohup now sets the close-on-exec flag for its copy of the stderr file |
1281 |
descriptor. This avoids some nohup-induced hangs. For example, before |
1282 |
this change, if you ran `ssh localhost', then `nohup sleep 600 </dev/null &', |
1283 |
and then exited that remote shell, the ssh session would hang until the |
1284 |
10-minute sleep terminated. With the fixed nohup, the ssh session |
1285 |
terminates immediately. |
1286 |
|
1287 |
`expr' now conforms to POSIX better: |
1288 |
|
1289 |
Integers like -0 and 00 are now treated as zero. |
1290 |
|
1291 |
The `|' operator now returns 0, not its first argument, if both |
1292 |
arguments are null or zero. E.g., `expr "" \| ""' now returns 0, |
1293 |
not the empty string. |
1294 |
|
1295 |
The `|' and `&' operators now use short-circuit evaluation, e.g., |
1296 |
`expr 1 \| 1 / 0' no longer reports a division by zero. |
1297 |
|
1298 |
** New features |
1299 |
|
1300 |
`chown user.group file' now has its traditional meaning even when |
1301 |
conforming to POSIX 1003.1-2001, so long as no user has a name |
1302 |
containing `.' that happens to equal `user.group'. |
1303 |
|
1304 |
|
1305 |
* Major changes in release 5.2.0 (2004-02-19) [stable] |
1306 |
|
1307 |
** Bug fixes |
1308 |
|
1309 |
none |
1310 |
|
1311 |
|
1312 |
* Major changes in release 5.1.3 (2004-02-08): candidate to become stable 5.2.0 |
1313 |
|
1314 |
** Bug fixes |
1315 |
|
1316 |
`cp -d' now works as required even on systems like OSF V5.1 that |
1317 |
declare stat and lstat as `static inline' functions. |
1318 |
|
1319 |
time stamps output by stat now include actual fractional seconds, |
1320 |
when available -- or .0000000 for files without that information. |
1321 |
|
1322 |
seq no longer infloops when printing 2^31 or more numbers. |
1323 |
For reference, seq `echo 2^31|bc` > /dev/null takes about one hour |
1324 |
on a 1.6 GHz Athlon 2000 XP. Now it can output 2^53-1 numbers before |
1325 |
misbehaving. |
1326 |
|
1327 |
* Major changes in release 5.1.2 (2004-01-25): |
1328 |
|
1329 |
** Bug fixes |
1330 |
|
1331 |
rmdir -p exits with status 1 on error; formerly it sometimes exited |
1332 |
with status 0 when given more than one argument. |
1333 |
|
1334 |
nohup now always exits with status 127 when it finds an error, |
1335 |
as POSIX requires; formerly it sometimes exited with status 1. |
1336 |
|
1337 |
Several programs (including cut, date, dd, env, hostname, nl, pr, |
1338 |
stty, and tr) now always exit with status 1 when they find an error; |
1339 |
formerly they sometimes exited with status 2. |
1340 |
|
1341 |
factor no longer reports a usage error if stdin has the wrong format. |
1342 |
|
1343 |
paste no longer infloops on ppc systems (bug introduced in 5.1.1) |
1344 |
|
1345 |
|
1346 |
* Major changes in release 5.1.1 (2004-01-17): |
1347 |
|
1348 |
** Configuration option |
1349 |
|
1350 |
You can select the default level of POSIX conformance at configure-time, |
1351 |
e.g., by ./configure DEFAULT_POSIX2_VERSION=199209 |
1352 |
|
1353 |
** Bug fixes |
1354 |
|
1355 |
fold -s works once again on systems with differing sizes for int |
1356 |
and size_t (bug introduced in 5.1.0) |
1357 |
|
1358 |
** New features |
1359 |
|
1360 |
touch -r now specifies the origin for any relative times in the -d |
1361 |
operand, if both options are given. For example, "touch -r FOO -d |
1362 |
'-5 seconds' BAR" sets BAR's modification time to be five seconds |
1363 |
before FOO's. |
1364 |
|
1365 |
join: The obsolete options "-j1 FIELD", "-j2 FIELD", and |
1366 |
"-o LIST1 LIST2..." are no longer supported on POSIX 1003.1-2001 systems. |
1367 |
Portable scripts should use "-1 FIELD", "-2 FIELD", and |
1368 |
"-o LIST1,LIST2..." respectively. If join was compiled on a |
1369 |
POSIX 1003.1-2001 system, you may enable the old behavior |
1370 |
by setting _POSIX2_VERSION=199209 in your environment. |
1371 |
[This change was reverted in coreutils 5.3.1.] |
1372 |
|
1373 |
|
1374 |
* Major changes in release 5.1.0 (2003-12-21): |
1375 |
|
1376 |
** New features |
1377 |
|
1378 |
chgrp, chmod, and chown can now process (with -R) hierarchies of virtually |
1379 |
unlimited depth. Before, they would fail to operate on any file they |
1380 |
encountered with a relative name of length PATH_MAX (often 4096) or longer. |
1381 |
|
1382 |
chgrp, chmod, chown, and rm accept the new options: |
1383 |
--preserve-root, --no-preserve-root (default) |
1384 |
|
1385 |
chgrp and chown now accept POSIX-mandated -L, -H, and -P options |
1386 |
|
1387 |
du can now process hierarchies of virtually unlimited depth. |
1388 |
Before, du was limited by the user's stack size and it would get a |
1389 |
stack overflow error (often a segmentation fault) when applied to |
1390 |
a hierarchy of depth around 30,000 or larger. |
1391 |
|
1392 |
du works even when run from an inaccessible directory |
1393 |
|
1394 |
du -D now dereferences all symlinks specified on the command line, |
1395 |
not just the ones that reference directories |
1396 |
|
1397 |
du now accepts -P (--no-dereference), for compatibility with du |
1398 |
of NetBSD and for consistency with e.g., chown and chgrp |
1399 |
|
1400 |
du's -H option will soon have the meaning required by POSIX |
1401 |
(--dereference-args, aka -D) rather then the current meaning of --si. |
1402 |
Now, using -H elicits a warning to that effect. |
1403 |
|
1404 |
When given -l and similar options, ls now adjusts the output column |
1405 |
widths to fit the data, so that output lines are shorter and have |
1406 |
columns that line up better. This may adversely affect shell |
1407 |
scripts that expect fixed-width columns, but such shell scripts were |
1408 |
not portable anyway, even with old GNU ls where the columns became |
1409 |
ragged when a datum was too wide. |
1410 |
|
1411 |
du accepts a new option, -0/--null, to make it produce NUL-terminated |
1412 |
output lines |
1413 |
|
1414 |
** Bug fixes |
1415 |
|
1416 |
printf, seq, tail, and sleep now parse floating-point operands |
1417 |
and options in the C locale. POSIX requires this for printf. |
1418 |
|
1419 |
od -c -w9999999 no longer segfaults |
1420 |
|
1421 |
csplit no longer reads from freed memory (dumping core on some systems) |
1422 |
|
1423 |
csplit would mistakenly exhaust virtual memory in some cases |
1424 |
|
1425 |
ls --width=N (for very large N) is no longer subject to an address |
1426 |
arithmetic bug that could result in bounds violations. |
1427 |
|
1428 |
ls --width=N (with -x or -C) no longer allocates more space |
1429 |
(potentially much more) than necessary for a given directory. |
1430 |
|
1431 |
dd `unblock' and `sync' may now be combined (e.g., dd conv=unblock,sync) |
1432 |
|
1433 |
* Major changes in release 5.0.91 (2003-09-08): |
1434 |
|
1435 |
** New features |
1436 |
|
1437 |
date accepts a new option --rfc-2822, an alias for --rfc-822. |
1438 |
|
1439 |
split accepts a new option -d or --numeric-suffixes. |
1440 |
|
1441 |
cp, install, mv, and touch now preserve microsecond resolution on |
1442 |
file timestamps, on platforms that have the 'utimes' system call. |
1443 |
Unfortunately there is no system call yet to preserve file |
1444 |
timestamps to their full nanosecond resolution; microsecond |
1445 |
resolution is the best we can do right now. |
1446 |
|
1447 |
sort now supports the zero byte (NUL) as a field separator; use -t '\0'. |
1448 |
The -t '' option, which formerly had no effect, is now an error. |
1449 |
|
1450 |
sort option order no longer matters for the options -S, -d, -i, -o, and -t. |
1451 |
Stronger options override weaker, and incompatible options are diagnosed. |
1452 |
|
1453 |
`sha1sum --check' now accepts the BSD format for SHA1 message digests |
1454 |
in addition to the BSD format for MD5 ones. |
1455 |
|
1456 |
who -l now means `who --login', not `who --lookup', per POSIX. |
1457 |
who's -l option has been eliciting an unconditional warning about |
1458 |
this impending change since sh-utils-2.0.12 (April 2002). |
1459 |
|
1460 |
** Bug fixes |
1461 |
|
1462 |
Mistakenly renaming a file onto itself, e.g., via `mv B b' when `B' is |
1463 |
the same directory entry as `b' no longer destroys the directory entry |
1464 |
referenced by both `b' and `B'. Note that this would happen only on |
1465 |
file systems like VFAT where two different names may refer to the same |
1466 |
directory entry, usually due to lower->upper case mapping of file names. |
1467 |
Now, the above can happen only on file systems that perform name mapping and |
1468 |
that support hard links (stat.st_nlink > 1). This mitigates the problem |
1469 |
in two ways: few file systems appear to be affected (hpfs and ntfs are), |
1470 |
when the bug is triggered, mv no longer removes the last hard link to a file. |
1471 |
*** ATTENTION ***: if you know how to distinguish the following two cases |
1472 |
without writing to the file system in question, please let me know: |
1473 |
1) B and b refer to the same directory entry on a file system like NTFS |
1474 |
(B may well have a link count larger than 1) |
1475 |
2) B and b are hard links to the same file |
1476 |
|
1477 |
stat no longer overruns a buffer for format strings ending in `%' |
1478 |
|
1479 |
fold -s -wN would infloop for N < 8 with TABs in the input. |
1480 |
E.g., this would not terminate: printf 'a\t' | fold -w2 -s |
1481 |
|
1482 |
`split -a0', although of questionable utility, is accepted once again. |
1483 |
|
1484 |
`df DIR' used to hang under some conditions on OSF/1 5.1. Now it doesn't. |
1485 |
|
1486 |
seq's --width (-w) option now works properly even when the endpoint |
1487 |
requiring the larger width is negative and smaller than the other endpoint. |
1488 |
|
1489 |
seq's default step is 1, even if LAST < FIRST. |
1490 |
|
1491 |
paste no longer mistakenly outputs 0xFF bytes for a nonempty input file |
1492 |
without a trailing newline. |
1493 |
|
1494 |
`tail -n0 -f FILE' and `tail -c0 -f FILE' no longer perform what amounted |
1495 |
to a busy wait, rather than sleeping between iterations. |
1496 |
|
1497 |
tail's long-undocumented --allow-missing option now elicits a warning |
1498 |
|
1499 |
|
1500 |
* Major changes in release 5.0.90 (2003-07-29): |
1501 |
|
1502 |
** New features |
1503 |
|
1504 |
sort is now up to 30% more CPU-efficient in some cases |
1505 |
|
1506 |
`test' is now more compatible with Bash and POSIX: |
1507 |
|
1508 |
`test -t', `test --help', and `test --version' now silently exit |
1509 |
with status 0. To test whether standard output is a terminal, use |
1510 |
`test -t 1'. To get help and version info for `test', use |
1511 |
`[ --help' and `[ --version'. |
1512 |
|
1513 |
`test' now exits with status 2 (not 1) if there is an error. |
1514 |
|
1515 |
wc count field widths now are heuristically adjusted depending on the input |
1516 |
size, if known. If only one count is printed, it is guaranteed to |
1517 |
be printed without leading spaces. |
1518 |
|
1519 |
Previously, wc did not align the count fields if POSIXLY_CORRECT was set, |
1520 |
but POSIX did not actually require this undesirable behavior, so it |
1521 |
has been removed. |
1522 |
|
1523 |
** Bug fixes |
1524 |
|
1525 |
kill no longer tries to operate on argv[0] (introduced in 5.0.1) |
1526 |
Why wasn't this noticed? Although many tests use kill, none of |
1527 |
them made an effort to avoid using the shell's built-in kill. |
1528 |
|
1529 |
`[' invoked with no arguments no longer evokes a segfault |
1530 |
|
1531 |
rm without --recursive (aka -r or -R) no longer prompts regarding |
1532 |
unwritable directories, as required by POSIX. |
1533 |
|
1534 |
uniq -c now uses a SPACE, not a TAB between the count and the |
1535 |
corresponding line, as required by POSIX. |
1536 |
|
1537 |
expr now exits with status 2 if the expression is syntactically valid, |
1538 |
and with status 3 if an error occurred. POSIX requires this. |
1539 |
|
1540 |
expr now reports trouble if string comparison fails due to a collation error. |
1541 |
|
1542 |
split now generates suffixes properly on EBCDIC hosts. |
1543 |
|
1544 |
split -a0 now works, as POSIX requires. |
1545 |
|
1546 |
`sort --version' and `sort --help' fail, as they should |
1547 |
when their output is redirected to /dev/full. |
1548 |
|
1549 |
`su --version > /dev/full' now fails, as it should. |
1550 |
|
1551 |
** Fewer arbitrary limitations |
1552 |
|
1553 |
cut requires 97% less memory when very large field numbers or |
1554 |
byte offsets are specified. |
1555 |
|
1556 |
|
1557 |
* Major changes in release 5.0.1 (2003-07-15): |
1558 |
|
1559 |
** New programs |
1560 |
- new program: `[' (much like `test') |
1561 |
|
1562 |
** New features |
1563 |
- head now accepts --lines=-N (--bytes=-N) to print all but the |
1564 |
N lines (bytes) at the end of the file |
1565 |
- md5sum --check now accepts the output of the BSD md5sum program, e.g., |
1566 |
MD5 (f) = d41d8cd98f00b204e9800998ecf8427e |
1567 |
- date -d DATE can now parse a DATE string like May-23-2003 |
1568 |
- chown: `.' is no longer recognized as a separator in the OWNER:GROUP |
1569 |
specifier on POSIX 1003.1-2001 systems. If chown *was not* compiled |
1570 |
on such a system, then it still accepts `.', by default. If chown |
1571 |
was compiled on a POSIX 1003.1-2001 system, then you may enable the |
1572 |
old behavior by setting _POSIX2_VERSION=199209 in your environment. |
1573 |
- chown no longer tries to preserve set-user-ID and set-group-ID bits; |
1574 |
on some systems, the chown syscall resets those bits, and previous |
1575 |
versions of the chown command would call chmod to restore the original, |
1576 |
pre-chown(2) settings, but that behavior is problematic. |
1577 |
1) There was a window whereby a malicious user, M, could subvert a |
1578 |
chown command run by some other user and operating on files in a |
1579 |
directory where M has write access. |
1580 |
2) Before (and even now, on systems with chown(2) that doesn't reset |
1581 |
those bits), an unwary admin. could use chown unwittingly to create e.g., |
1582 |
a set-user-ID root copy of /bin/sh. |
1583 |
|
1584 |
** Bug fixes |
1585 |
- chown --dereference no longer leaks a file descriptor per symlink processed |
1586 |
- `du /' once again prints the `/' on the last line |
1587 |
- split's --verbose option works once again [broken in 4.5.10 and 5.0] |
1588 |
- tail -f is no longer subject to a race condition that could make it |
1589 |
delay displaying the last part of a file that had stopped growing. That |
1590 |
bug could also make tail -f give an unwarranted `file truncated' warning. |
1591 |
- du no longer runs out of file descriptors unnecessarily |
1592 |
- df and `readlink --canonicalize' no longer corrupt the heap on |
1593 |
non-glibc, non-solaris systems |
1594 |
- `env -u UNSET_VARIABLE' no longer dumps core on non-glibc systems |
1595 |
- readlink's --canonicalize option now works on systems like Solaris that |
1596 |
lack the canonicalize_file_name function but do have resolvepath. |
1597 |
- mv now removes `a' in this example on all systems: touch a; ln a b; mv a b |
1598 |
This behavior is contrary to POSIX (which requires that the mv command do |
1599 |
nothing and exit successfully), but I suspect POSIX will change. |
1600 |
- date's %r format directive now honors locale settings |
1601 |
- date's `-' (no-pad) format flag now affects the space-padded-by-default |
1602 |
conversion specifiers, %e, %k, %l |
1603 |
- fmt now diagnoses invalid obsolescent width specifications like `-72x' |
1604 |
- fmt now exits nonzero when unable to open an input file |
1605 |
- tsort now fails when given an odd number of input tokens, |
1606 |
as required by POSIX. Before, it would act as if the final token |
1607 |
appeared one additional time. |
1608 |
|
1609 |
** Fewer arbitrary limitations |
1610 |
- tail's byte and line counts are no longer limited to OFF_T_MAX. |
1611 |
Now the limit is UINTMAX_MAX (usually 2^64). |
1612 |
- split can now handle --bytes=N and --lines=N with N=2^31 or more. |
1613 |
|
1614 |
** Portability |
1615 |
- `kill -t' now prints signal descriptions (rather than `?') on systems |
1616 |
like Tru64 with __sys_siglist but no strsignal function. |
1617 |
- stat.c now compiles on Ultrix systems |
1618 |
- sleep now works on AIX systems that lack support for clock_gettime |
1619 |
- rm now works around Darwin6.5's broken readdir function |
1620 |
Before `rm -rf DIR' would fail to remove all files in DIR |
1621 |
if there were more than 338. |
1622 |
|
1623 |
* Major changes in release 5.0 (2003-04-02): |
1624 |
- false --help now exits nonzero |
1625 |
|
1626 |
[4.5.12] |
1627 |
* printf no longer treats \x specially when POSIXLY_CORRECT is set |
1628 |
* printf avoids buffer overrun with format ending in a backslash and |
1629 |
* printf avoids buffer overrun with incomplete conversion specifier |
1630 |
* printf accepts multiple flags in a single conversion specifier |
1631 |
|
1632 |
[4.5.11] |
1633 |
* seq no longer requires that a field width be specified |
1634 |
* seq no longer fails when given a field width of `0' |
1635 |
* seq now accepts ` ' and `'' as valid format flag characters |
1636 |
* df now shows a HOSTNAME: prefix for each remote-mounted file system on AIX 5.1 |
1637 |
* portability tweaks for HP-UX, AIX 5.1, DJGPP |
1638 |
|
1639 |
[4.5.10] |
1640 |
* printf no longer segfaults for a negative field width or precision |
1641 |
* shred now always enables --exact for non-regular files |
1642 |
* du no longer lists hard-linked files more than once |
1643 |
* du no longer dumps core on some systems due to `infinite' recursion |
1644 |
via nftw's use of the buggy replacement function in getcwd.c |
1645 |
* portability patches for a few vendor compilers and 64-bit systems |
1646 |
* du -S *really* now works like it did before the change in 4.5.5 |
1647 |
|
1648 |
[4.5.9] |
1649 |
* du no longer truncates file sizes or sums to fit in 32-bit size_t |
1650 |
* work around Linux kernel bug in getcwd (fixed in 2.4.21-pre4), so that pwd |
1651 |
now fails if the name of the working directory is so long that getcwd |
1652 |
truncates it. Before it would print the truncated name and exit successfully. |
1653 |
* `df /some/mount-point' no longer hangs on a GNU libc system when another |
1654 |
hard-mounted NFS file system (preceding /some/mount-point in /proc/mounts) |
1655 |
is inaccessible. |
1656 |
* rm -rf now gives an accurate diagnostic when failing to remove a file |
1657 |
under certain unusual conditions |
1658 |
* mv and `cp --preserve=links' now preserve multiple hard links even under |
1659 |
certain unusual conditions where they used to fail |
1660 |
|
1661 |
[4.5.8] |
1662 |
* du -S once again works like it did before the change in 4.5.5 |
1663 |
* stat accepts a new file format, %B, for the size of each block reported by %b |
1664 |
* du accepts new option: --apparent-size |
1665 |
* du --bytes (-b) works the same way it did in fileutils-3.16 and before |
1666 |
* du reports proper sizes for directories (not zero) (broken in 4.5.6 or 4.5.7) |
1667 |
* df now always displays under `Filesystem', the device file name |
1668 |
corresponding to the listed mount point. Before, for a block- or character- |
1669 |
special file command line argument, df would display that argument. E.g., |
1670 |
`df /dev/hda' would list `/dev/hda' as the `Filesystem', rather than say |
1671 |
/dev/hda3 (the device on which `/' is mounted), as it does now. |
1672 |
* test now works properly when invoked from a set user ID or set group ID |
1673 |
context and when testing access to files subject to alternate protection |
1674 |
mechanisms. For example, without this change, a set-UID program that invoked |
1675 |
`test -w F' (to see if F is writable) could mistakenly report that it *was* |
1676 |
writable, even though F was on a read-only file system, or F had an ACL |
1677 |
prohibiting write access, or F was marked as immutable. |
1678 |
|
1679 |
[4.5.7] |
1680 |
* du would fail with more than one DIR argument when any but the last did not |
1681 |
contain a slash (due to a bug in ftw.c) |
1682 |
|
1683 |
[4.5.6] |
1684 |
* du no longer segfaults on Solaris systems (fixed heap-corrupting bug in ftw.c) |
1685 |
* du --exclude=FILE works once again (this was broken by the rewrite for 4.5.5) |
1686 |
* du no longer gets a failed assertion for certain hierarchy lay-outs |
1687 |
involving hard-linked directories |
1688 |
* `who -r' no longer segfaults when using non-C-locale messages |
1689 |
* df now displays a mount point (usually `/') for non-mounted |
1690 |
character-special and block files |
1691 |
|
1692 |
[4.5.5] |
1693 |
* ls --dired produces correct byte offset for file names containing |
1694 |
nonprintable characters in a multibyte locale |
1695 |
* du has been rewritten to use a variant of GNU libc's ftw.c |
1696 |
* du now counts the space associated with a directory's directory entry, |
1697 |
even if it cannot list or chdir into that subdirectory. |
1698 |
* du -S now includes the st_size of each entry corresponding to a subdirectory |
1699 |
* rm on FreeBSD can once again remove directories from NFS-mounted file systems |
1700 |
* ls has a new option --dereference-command-line-symlink-to-dir, which |
1701 |
corresponds to the new default behavior when none of -d, -l -F, -H, -L |
1702 |
has been specified. |
1703 |
* ls dangling-symlink now prints `dangling-symlink'. |
1704 |
Before, it would fail with `no such file or directory'. |
1705 |
* ls -s symlink-to-non-dir and ls -i symlink-to-non-dir now print |
1706 |
attributes of `symlink', rather than attributes of their referents. |
1707 |
* Fix a bug introduced in 4.5.4 that made it so that ls --color would no |
1708 |
longer highlight the names of files with the execute bit set when not |
1709 |
specified on the command line. |
1710 |
* shred's --zero (-z) option no longer gobbles up any following argument. |
1711 |
Before, `shred --zero file' would produce `shred: missing file argument', |
1712 |
and worse, `shred --zero f1 f2 ...' would appear to work, but would leave |
1713 |
the first file untouched. |
1714 |
* readlink: new program |
1715 |
* cut: new feature: when used to select ranges of byte offsets (as opposed |
1716 |
to ranges of fields) and when --output-delimiter=STRING is specified, |
1717 |
output STRING between ranges of selected bytes. |
1718 |
* rm -r can no longer be tricked into mistakenly reporting a cycle. |
1719 |
* when rm detects a directory cycle, it no longer aborts the entire command, |
1720 |
but rather merely stops processing the affected command line argument. |
1721 |
|
1722 |
[4.5.4] |
1723 |
* cp no longer fails to parse options like this: --preserve=mode,ownership |
1724 |
* `ls --color -F symlink-to-dir' works properly |
1725 |
* ls is much more efficient on directories with valid dirent.d_type. |
1726 |
* stty supports all baud rates defined in linux-2.4.19. |
1727 |
* `du symlink-to-dir/' would improperly remove the trailing slash |
1728 |
* `du ""' would evoke a bounds violation. |
1729 |
* In the unlikely event that running `du /' resulted in `stat ("/", ...)' |
1730 |
failing, du would give a diagnostic about `' (empty string) rather than `/'. |
1731 |
* printf: a hexadecimal escape sequence has at most two hex. digits, not three. |
1732 |
* The following features have been added to the --block-size option |
1733 |
and similar environment variables of df, du, and ls. |
1734 |
- A leading "'" generates numbers with thousands separators. |
1735 |
For example: |
1736 |
$ ls -l --block-size="'1" file |
1737 |
-rw-rw-r-- 1 eggert src 47,483,707 Sep 24 23:40 file |
1738 |
- A size suffix without a leading integer generates a suffix in the output. |
1739 |
For example: |
1740 |
$ ls -l --block-size="K" |
1741 |
-rw-rw-r-- 1 eggert src 46371K Sep 24 23:40 file |
1742 |
* ls's --block-size option now affects file sizes in all cases, not |
1743 |
just for --block-size=human-readable and --block-size=si. Fractional |
1744 |
sizes are now always rounded up, for consistency with df and du. |
1745 |
* df now displays the block size using powers of 1000 if the requested |
1746 |
block size seems to be a multiple of a power of 1000. |
1747 |
* nl no longer gets a segfault when run like this `yes|nl -s%n' |
1748 |
|
1749 |
[4.5.3] |
1750 |
* du --dereference-args (-D) no longer fails in certain cases |
1751 |
* `ln --target-dir=DIR' no longer fails when given a single argument |
1752 |
|
1753 |
[4.5.2] |
1754 |
* `rm -i dir' (without --recursive (-r)) no longer recurses into dir |
1755 |
* `tail -c N FILE' now works with files of size >= 4GB |
1756 |
* `mkdir -p' can now create very deep (e.g. 40,000-component) directories |
1757 |
* rmdir -p dir-with-trailing-slash/ no longer fails |
1758 |
* printf now honors the `--' command line delimiter |
1759 |
* od's 8-byte formats x8, o8, and u8 now work |
1760 |
* tail now accepts fractional seconds for its --sleep-interval=S (-s) option |
1761 |
|
1762 |
[4.5.1] |
1763 |
* du and ls now report sizes of symbolic links (before they'd always report 0) |
1764 |
* uniq now obeys the LC_COLLATE locale, as per POSIX 1003.1-2001 TC1. |
1765 |
|
1766 |
======================================================================== |
1767 |
Here are the NEWS entries made from fileutils-4.1 until the |
1768 |
point at which the packages merged to form the coreutils: |
1769 |
|
1770 |
[4.1.11] |
1771 |
* `rm symlink-to-unwritable' doesn't prompt [introduced in 4.1.10] |
1772 |
[4.1.10] |
1773 |
* rm once again gives a reasonable diagnostic when failing to remove a file |
1774 |
owned by someone else in a sticky directory [introduced in 4.1.9] |
1775 |
* df now rounds all quantities up, as per POSIX. |
1776 |
* New ls time style: long-iso, which generates YYYY-MM-DD HH:MM. |
1777 |
* Any time style can be preceded by "posix-"; this causes "ls" to |
1778 |
use traditional timestamp format when in the POSIX locale. |
1779 |
* The default time style is now posix-long-iso instead of posix-iso. |
1780 |
Set TIME_STYLE="posix-iso" to revert to the behavior of 4.1.1 thru 4.1.9. |
1781 |
* `rm dangling-symlink' doesn't prompt [introduced in 4.1.9] |
1782 |
* stat: remove support for --secure/-s option and related %S and %C format specs |
1783 |
* stat: rename --link/-l to --dereference/-L. |
1784 |
The old options will continue to work for a while. |
1785 |
[4.1.9] |
1786 |
* rm can now remove very deep hierarchies, in spite of any limit on stack size |
1787 |
* new programs: link, unlink, and stat |
1788 |
* New ls option: --author (for the Hurd). |
1789 |
* `touch -c no-such-file' no longer fails, per POSIX |
1790 |
[4.1.8] |
1791 |
* mv no longer mistakenly creates links to preexisting destination files |
1792 |
that aren't moved |
1793 |
[4.1.7] |
1794 |
* rm: close a hole that would allow a running rm process to be subverted |
1795 |
[4.1.6] |
1796 |
* New cp option: --copy-contents. |
1797 |
* cp -r is now equivalent to cp -R. Use cp -R -L --copy-contents to get the |
1798 |
traditional (and rarely desirable) cp -r behavior. |
1799 |
* ls now accepts --time-style=+FORMAT, where +FORMAT works like date's format |
1800 |
* The obsolete usage `touch [-acm] MMDDhhmm[YY] FILE...' is no longer |
1801 |
supported on systems conforming to POSIX 1003.1-2001. Use touch -t instead. |
1802 |
* cp and inter-partition mv no longer give a misleading diagnostic in some |
1803 |
unusual cases |
1804 |
[4.1.5] |
1805 |
* cp -r no longer preserves symlinks |
1806 |
* The block size notation is now compatible with SI and with IEC 60027-2. |
1807 |
For example, --block-size=1MB now means --block-size=1000000, |
1808 |
whereas --block-size=1MiB now means --block-size=1048576. |
1809 |
A missing `B' (e.g. `1M') has the same meaning as before. |
1810 |
A trailing `B' now means decimal, not binary; this is a silent change. |
1811 |
The nonstandard `D' suffix (e.g. `1MD') is now obsolescent. |
1812 |
* -H or --si now outputs the trailing 'B', for consistency with the above. |
1813 |
* Programs now output trailing 'K' (not 'k') to mean 1024, as per IEC 60027-2. |
1814 |
* New df, du short option -B is short for --block-size. |
1815 |
* You can omit an integer `1' before a block size suffix, |
1816 |
e.g. `df -BG' is equivalent to `df -B 1G' and to `df --block-size=1G'. |
1817 |
* The following options are now obsolescent, as their names are |
1818 |
incompatible with IEC 60027-2: |
1819 |
df, du: -m or --megabytes (use -BM or --block-size=1M) |
1820 |
df, du, ls: --kilobytes (use --block-size=1K) |
1821 |
[4.1.4] |
1822 |
* df --local no longer lists smbfs file systems whose name starts with // |
1823 |
* dd now detects the Linux/tape/lseek bug at run time and warns about it. |
1824 |
[4.1.3] |
1825 |
* ls -R once again outputs a blank line between per-directory groups of files. |
1826 |
This was broken by the cycle-detection change in 4.1.1. |
1827 |
* dd once again uses `lseek' on character devices like /dev/mem and /dev/kmem. |
1828 |
On systems with the linux kernel (at least up to 2.4.16), dd must still |
1829 |
resort to emulating `skip=N' behavior using reads on tape devices, because |
1830 |
lseek has no effect, yet appears to succeed. This may be a kernel bug. |
1831 |
[4.1.2] |
1832 |
* cp no longer fails when two or more source files are the same; |
1833 |
now it just gives a warning and doesn't copy the file the second time. |
1834 |
E.g., cp a a d/ produces this: |
1835 |
cp: warning: source file `a' specified more than once |
1836 |
* chmod would set the wrong bit when given symbolic mode strings like |
1837 |
these: g=o, o=g, o=u. E.g., `chmod a=,o=w,ug=o f' would give a mode |
1838 |
of --w-r---w- rather than --w--w--w-. |
1839 |
[4.1.1] |
1840 |
* mv (likewise for cp), now fails rather than silently clobbering one of |
1841 |
the source files in the following example: |
1842 |
rm -rf a b c; mkdir a b c; touch a/f b/f; mv a/f b/f c |
1843 |
* ls -R detects directory cycles, per POSIX. It warns and doesn't infloop. |
1844 |
* cp's -P option now means the same as --no-dereference, per POSIX. |
1845 |
Use --parents to get the old meaning. |
1846 |
* When copying with the -H and -L options, cp can preserve logical |
1847 |
links between source files with --preserve=links |
1848 |
* cp accepts new options: |
1849 |
--preserve[={mode,ownership,timestamps,links,all}] |
1850 |
--no-preserve={mode,ownership,timestamps,links,all} |
1851 |
* cp's -p and --preserve options remain unchanged and are equivalent |
1852 |
to `--preserve=mode,ownership,timestamps' |
1853 |
* mv and cp accept a new option: --reply={yes,no,query}; provides a consistent |
1854 |
mechanism to control whether one is prompted about certain existing |
1855 |
destination files. Note that cp's and mv's -f options don't have the |
1856 |
same meaning: cp's -f option no longer merely turns off `-i'. |
1857 |
* remove portability limitations (e.g., PATH_MAX on the Hurd, fixes for |
1858 |
64-bit systems) |
1859 |
* mv now prompts before overwriting an existing, unwritable destination file |
1860 |
when stdin is a tty, unless --force (-f) is specified, as per POSIX. |
1861 |
* mv: fix the bug whereby `mv -uf source dest' would delete source, |
1862 |
even though it's older than dest. |
1863 |
* chown's --from=CURRENT_OWNER:CURRENT_GROUP option now works |
1864 |
* cp now ensures that the set-user-ID and set-group-ID bits are cleared for |
1865 |
the destination file when when copying and not preserving permissions. |
1866 |
* `ln -f --backup k k' gives a clearer diagnostic |
1867 |
* ls no longer truncates user names or group names that are longer |
1868 |
than 8 characters. |
1869 |
* ls's new --dereference-command-line option causes it to dereference |
1870 |
symbolic links on the command-line only. It is the default unless |
1871 |
one of the -d, -F, or -l options are given. |
1872 |
* ls -H now means the same as ls --dereference-command-line, as per POSIX. |
1873 |
* ls -g now acts like ls -l, except it does not display owner, as per POSIX. |
1874 |
* ls -n now implies -l, as per POSIX. |
1875 |
* ls can now display dates and times in one of four time styles: |
1876 |
|
1877 |
- The `full-iso' time style gives full ISO-style time stamps like |
1878 |
`2001-05-14 23:45:56.477817180 -0700'. |
1879 |
- The 'iso' time style gives ISO-style time stamps like '2001-05-14 ' |
1880 |
and '05-14 23:45'. |
1881 |
- The 'locale' time style gives locale-dependent time stamps like |
1882 |
'touko 14 2001' and 'touko 14 23:45' (in a Finnish locale). |
1883 |
- The 'posix-iso' time style gives traditional POSIX-locale |
1884 |
time stamps like 'May 14 2001' and 'May 14 23:45' unless the user |
1885 |
specifies a non-POSIX locale, in which case it uses ISO-style dates. |
1886 |
This is the default. |
1887 |
|
1888 |
You can specify a time style with an option like --time-style='iso' |
1889 |
or with an environment variable like TIME_STYLE='iso'. GNU Emacs 21 |
1890 |
and later can parse ISO dates, but older Emacs versions cannot, so |
1891 |
if you are using an older version of Emacs outside the default POSIX |
1892 |
locale, you may need to set TIME_STYLE="locale". |
1893 |
|
1894 |
* --full-time is now an alias for "-l --time-style=full-iso". |
1895 |
|
1896 |
|
1897 |
======================================================================== |
1898 |
Here are the NEWS entries made from sh-utils-2.0 until the |
1899 |
point at which the packages merged to form the coreutils: |
1900 |
|
1901 |
[2.0.15] |
1902 |
* date no longer accepts e.g., September 31 in the MMDDhhmm syntax |
1903 |
* fix a bug in this package's .m4 files and in configure.ac |
1904 |
[2.0.14] |
1905 |
* nohup's behavior is changed as follows, to conform to POSIX 1003.1-2001: |
1906 |
- nohup no longer adjusts scheduling priority; use "nice" for that. |
1907 |
- nohup now redirects stderr to stdout, if stderr is not a terminal. |
1908 |
- nohup exit status is now 126 if command was found but not invoked, |
1909 |
127 if nohup failed or if command was not found. |
1910 |
[2.0.13] |
1911 |
* uname and uptime work better on *BSD systems |
1912 |
* pathchk now exits nonzero for a path with a directory component |
1913 |
that specifies a non-directory |
1914 |
[2.0.12] |
1915 |
* kill: new program |
1916 |
* who accepts new options: --all (-a), --boot (-b), --dead (-d), --login, |
1917 |
--process (-p), --runlevel (-r), --short (-s), --time (-t), --users (-u). |
1918 |
The -u option now produces POSIX-specified results and is the same as |
1919 |
the long option `--users'. --idle is no longer the same as -u. |
1920 |
* The following changes apply on systems conforming to POSIX 1003.1-2001: |
1921 |
- `date -I' is no longer supported. Instead, use `date --iso-8601'. |
1922 |
- `nice -NUM' is no longer supported. Instead, use `nice -n NUM'. |
1923 |
[This change was reverted in coreutils 5.3.1.] |
1924 |
* New 'uname' options -i or --hardware-platform, and -o or --operating-system. |
1925 |
'uname -a' now outputs -i and -o information at the end. |
1926 |
New uname option --kernel-version is an alias for -v. |
1927 |
Uname option --release has been renamed to --kernel-release, |
1928 |
and --sysname has been renamed to --kernel-name; |
1929 |
the old options will work for a while, but are no longer documented. |
1930 |
* 'expr' now uses the LC_COLLATE locale for string comparison, as per POSIX. |
1931 |
* 'expr' now requires '+' rather than 'quote' to quote tokens; |
1932 |
this removes an incompatibility with POSIX. |
1933 |
* date -d 'last friday' would print a date/time that was one hour off |
1934 |
(e.g., 23:00 on *thursday* rather than 00:00 of the preceding friday) |
1935 |
when run such that the current time and the target date/time fall on |
1936 |
opposite sides of a daylight savings time transition. |
1937 |
This problem arose only with relative date strings like `last monday'. |
1938 |
It was not a problem with strings that include absolute dates. |
1939 |
* factor is twice as fast, for large numbers |
1940 |
[2.0.11] |
1941 |
* setting the date now works properly, even when using -u |
1942 |
* `date -f - < /dev/null' no longer dumps core |
1943 |
* some DOS/Windows portability changes |
1944 |
[2.0j] |
1945 |
* `date -d DATE' now parses certain relative DATEs correctly |
1946 |
[2.0i] |
1947 |
* fixed a bug introduced in 2.0h that made many programs fail with a |
1948 |
`write error' when invoked with the --version option |
1949 |
[2.0h] |
1950 |
* all programs fail when printing --help or --version output to a full device |
1951 |
* printf exits nonzero upon write failure |
1952 |
* yes now detects and terminates upon write failure |
1953 |
* date --rfc-822 now always emits day and month names from the `C' locale |
1954 |
* portability tweaks for Solaris8, Ultrix, and DOS |
1955 |
[2.0g] |
1956 |
* date now handles two-digit years with leading zeros correctly. |
1957 |
* printf interprets unicode, \uNNNN \UNNNNNNNN, on systems with the |
1958 |
required support; from Bruno Haible. |
1959 |
* stty's rprnt attribute now works on HPUX 10.20 |
1960 |
* seq's --equal-width option works more portably |
1961 |
[2.0f] |
1962 |
* fix build problems with ut_name vs. ut_user |
1963 |
[2.0e] |
1964 |
* stty: fix long-standing bug that caused test failures on at least HPUX |
1965 |
systems when COLUMNS was set to zero |
1966 |
* still more portability fixes |
1967 |
* unified lib/: now that directory and most of the configuration framework |
1968 |
is common between fileutils, textutils, and sh-utils |
1969 |
[2.0d] |
1970 |
* fix portability problem with sleep vs lib/strtod.c's requirement for -lm |
1971 |
[2.0c] |
1972 |
* fix portability problems with nanosleep.c and with the new code in sleep.c |
1973 |
[2.0b] |
1974 |
* Regenerate lib/Makefile.in so that nanosleep.c is distributed. |
1975 |
[2.0a] |
1976 |
* sleep accepts floating point arguments on command line |
1977 |
* sleep's clock continues counting down when sleep is suspended |
1978 |
* when a suspended sleep process is resumed, it continues sleeping if |
1979 |
there is any time remaining |
1980 |
* who once again prints whatever host information it has, even without --lookup |
1981 |
|
1982 |
======================================================================== |
1983 |
For older NEWS entries for the fileutils, textutils, and sh-utils |
1984 |
packages, see ./old/*/NEWS. |
1985 |
|
1986 |
This package began as the union of the following: |
1987 |
textutils-2.1, fileutils-4.1.11, sh-utils-2.0.15. |
1988 |
|
1989 |
======================================================================== |
1990 |
|
1991 |
Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 Free Software |
1992 |
Foundation, Inc. |
1993 |
|
1994 |
Permission is granted to copy, distribute and/or modify this document |
1995 |
under the terms of the GNU Free Documentation License, Version 1.2 or |
1996 |
any later version published by the Free Software Foundation; with no |
1997 |
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover |
1998 |
Texts. A copy of the license is included in the ``GNU Free |
1999 |
Documentation License'' file as part of this distribution. |