1 Changes in release 4.01:
3 * dd now accepts skip=nB and seek=nB, to advance past some number of bytes, n,
4 that is smaller than the block size.
5 * dd (without conv=notrunc) now uses ftruncate only on regular files
6 * chmod --changes (-c) once again issues diagnostics only for the files
7 with changed permissions
8 * mkdir now gives one diagnostic (rather than two) for certain failures
9 * mkdir portability fix for NetBSD
11 * touch now interprets a lone numeric argument of 8 or 10 digits as a file name,
12 rather than as a date/time in the obsolescent `MMDDhhmm[YY]' format.
13 * mkdir no longer sets the permissions of the final directory component
14 if it already exists (this bug, too, was introduced recently)
15 * ls's --full-time format string is now locale dependent
17 * mkdir: fix a bug introduced in 4.0.30 whereby `mkdir existing-dir' would
18 succeed. Now it fails, as it should (and used to).
20 * mkdir: fix a bug introduced in 4.0.28 whereby parent directories created
21 via `mkdir -p' would have permissions that did not account for the umask
23 * ls.c wouldn't compile on some systems: fix it
24 * `cp -R --parents dir1/ dir2' failed on NetBSD, due to a portability problem
26 * ls is much more efficient on systems (e.g., linux-2.4.*) that store file
27 type information in directory entries.
28 * shred now automatically determines the size of each block device argument
29 * ls's date/time format strings are now local dependent
30 * mkdir, mknod, mkfifo, and chmod work better in conjunction with ACLs
31 * `cp --parents dir1/ dir2' no longer gets a failed assertion
32 * shred now determines the size of block devices like /dev/fd0
33 * `shred --exact file1 file2' now erases `file1', too
35 * install once again unlinks an existing destination before trying to open it
36 * mv no longer gets a failed assertion when moving a directory (specified with
37 a trailing slash) from one partition to another, and giving it a different
38 name at the destination.
39 * `cp --link -f src existing-dest' no longer fails (bug introduced in 4.0z)
40 * cp's new --remove-destination option now works with -R
42 * `cp -p' once again preserves `special' permission bits (this bug was
44 * mv's --force (-f) option now controls solely whether mv prompts (per POSIX)
45 * `cp -f' now first attempts to open an existing destination file, and only
46 if that fails does it resort to unlinking the file and retrying the open.
47 Before, it would unlink the file before trying to open it.
48 * cp accepts a new option, --remove-destination, that provides the old behavior
49 * cp's -f option no longer cancels the effect of --interactive (-i) (per POSIX)
50 * when ls sorts directory entries, it now honors the current locale settings
51 * dd's `skip=BLOCKS' operator once again works on systems with a buggy lseek
52 function (Linux, at least on SCSI tape devices)
53 * fix a typo in install-sh
55 * cp now accepts the POSIX-mandated -H and -L options.
56 * cp -p and mv now try to preserve uid even if you're not root, as per POSIX.2.
57 This affects behavior only on hosts that let you give files away via chmod.
58 * du would fail when given `.' or `..' followed by other command line arguments
59 * Using cp's short-named `-P' option evokes the warning that that the
60 meaning of `-P' will soon change. Use `--parents' instead.
61 * chgrp, chmod, and chown: when used with the --verbose option, might give an
62 invalid diagnostic (due to clobbered errno) when failing.
64 * Fix cp so that `cp -r DIR1/ DIR2' works properly once again.
65 * New ls option --quoting-style=clocale acts like --quoting-style=locale,
66 except that it quotes "like this" by default instead of `like this'.
68 * When `cp -pR' fails to copy a file, it now preserves permissions, owner,
69 and group of the containing directory.
71 * df, du, and ls now round disk usage up and disk free space down
72 * df, du, ls: --block-size=N now works for values of N that are e.g.,
73 not a multiple of the file's block size
75 * give proper diagnostic for mv usage error
76 * fix compile problem with lib/strnlen.c
78 * `cp -d -u' no longer fails with certain existing destination symlinks
79 * rmdir and mkdir accept -v as synonym for --verbose
81 * rm no longer segfaults on certain very deep hierarchies
82 * IMPORTANT SECURITY FIX: a running `rm -r' may no longer be subverted to
83 remove unintended directories
84 * cp can now remove unwritable files in interactive mode; contrary to how mv
85 works, cp's --interactive (-i) option does *not* cancel the effect of a
86 preceding --force (-f) option.
87 * all programs fail when printing --help or --version output to a full device
88 * install no longer performs chmod if chown fails (see ChangeLog for example)
90 * `du dir/subdir1 dir/subdir2' no longer fails
91 * chown accepts new option: --from=CURRENT_OWNER:CURRENT_GROUP
92 * cp accepts new option: --strip-trailing-slashes
93 * install --directory (-d) may now be used to set special bits
94 e.g., `install -m a=rwx,o+t -d DIR' now honors the `o+t' part
95 * cp, mv, ln, install: document that while the --backup option takes an
96 optional argument, the -b option accepts none
97 * `ls -e' fails with a more useful diagnostic
98 * df produces better output for loop file system mount points
100 * install -D bug is fixed
101 * chown now works properly when the specified login name contains a period
102 This is at the expense of always looking up the entire USER.GROUP string
103 as a login name first, and only then (upon failure) interpreting the `.'
104 as a separator and looking up `USER'. To avoid the extra getpwnam call,
105 always use the POSIX-mandated `:' character as the separator.
106 * `du some-other-dir' no longer fails if it can't open the current directory
107 * `mv DIR EXISTING-FILE' no longer removes EXISTING-FILE. Now it gets an error
108 as POSIX says it must.
109 * touch no longer hangs on fifos
111 * various tools: quote multibyte characters correctly in diagnostics
112 * mv: portability fix for alpha
113 * dd: portability fix
114 * unified lib/: now that directory and most of the configuration framework
115 is common between fileutils, textutils, and sh-utils
117 * Include lib/nanosleep.h.
119 * cp, install, ln, and mv: when making backup files in verbose mode, these
120 commands now print the backup file name on the same line as the rest of the
121 information, e.g., `a -> b (backup: b.~13~)' rather than on a separate line
122 as all but ln used to do. ln didn't output the backup file name at all.
124 * mv accepts new option: --strip-trailing-slashes (soon, many other
126 * df no longer hangs when there is an inaccessible mount point unrelated to PATH
127 * rmdir --verbose no longer prints extra, bogus diagnosic upon failure
128 * fix df bug that made it print bogus values in the `Use%' column.
129 * touch -d once again parses dates with `hh:mm ZONE' time zone info.
131 * ls -l honors a trailing slash on a symlink argument, per POSIX.
132 * shred no longer appears to infloop when asked to remove files in
133 unwritable directories
134 * `ls -ul' and `ls -uc' sort by name once again, as they should
136 * mv may now be used to move a file onto a symlink to itself when that
137 symlink is on a separate partition. With fileutils-4.0j, it would
138 fail with a diagnostic saying they were the same file.
139 * touch would fail with the misleading diagnostic `no such file' when asked
140 to create a file in an unwritable directory. Now it says something like
141 `permission denied' or `read-only file system'.
143 * mkdir may now be used to set special bits e.g., `mkdir -m o+t dir' works
144 * touch can now change the time(s) of a file you own even if you don't have
145 read or write access to it
146 * rm no longer dumps core after warning about directory cycles
147 * mv now refuses to move a file onto a symlink to itself when that symlink
148 is on a separate partition. Before, it would remove the file and leave
150 * `install -d -g foo 1/2' now sets the `group' of the final component as well
151 as that of the leading one.
152 * df, du, and ls no longer divide by zero when an invalid block size is
153 specified through an environment variable
154 * under certain conditions, chgrp would fail to affect files referenced
155 through symlinks. Now it does.
156 * ln now makes hard links to symlinks on systems that support it.
157 * touch: no longer infloop on dangling symlinks
158 * cp, install, ln, mv: deprecate the --version-control option. Use --backup's
159 new optional argument instead. The old option still works, but now evokes a
161 * cp, install, ln, mv: the --backup option now accepts an optional argument
162 * cp, install, ln, mv: accept new option: --target-directory=DIR
163 * chgrp: accept new option, --dereference. --no-dereference is now the default.
164 * New ls option --quoting-style=locale acts like --quoting-style=c, except
165 with locale-specific quoting symbols (` and ' by default) instead of ".
166 * `df DIR' is less likely to hang due to bad NFS mounts
167 * As per POSIX.2, `df -P' now uses ceiling rather than rounding, and its
168 header now says `1024-blocks ... Capacity' instead of `1k-blocks ... Use%'.
170 * `cp -f FILE FILE' and `mv -f FILE FILE' no longer remove FILE
171 * touch works once again (DST-wise) when certain `--date DATE-TIME'
172 values are specified.
173 * shred's -u option (short form of --remove) is now accepted
175 * cp --one-file-system (-x) no longer crosses filesystem boundaries.
176 * touch can once again operate on directories
178 * New large-file support for AIX and HP-UX, and for cross-compiles.
179 * shred's default options are now suitable for devices, not files, since
180 shred is more reliable on devices. shred now does not remove by default;
181 the old -p or --preserve option was inverted and renamed to -u or --remove.
182 * shred -u now attempts to truncate devices before removing them.
183 * shred -v no longer outputs carriage-returns; shred -vv has no extra effect;
184 shred -v now outputs to stderr.
185 * shred now tries to find the size of a non-regular file by seeking to its end.
186 * dd now opens the output file for *read* access only if `seek=' is used.
188 * `ls --color' no longer segfaults
189 * dd works once again
191 * shred --devices option renamed to -D so that -d, -i and -r can be
193 * shred -s/--size=N option added to specify the size of the object to be
195 * `shred -' now shreds stdout rather than stdin. This is incompatible with -v.
196 * shred now does not need to read from its output file, so opens it O_WRONLY
197 * `ls -l' uses `+' to designate each file that has a custom ACL
198 * eliminate race condition that could make touch truncate a nonempty file
199 * No longer use *_unlocked I/O macros on systems (like solaris5.5.1) where
200 they're not declared, so selected executables (e.g., rm) that are linked
201 with shared libraries will once again run on solaris5.6 systems.
203 * ls recognizes solaris 2 `doors'
205 * ln: Allow creation of a hard link to a dangling symlink
206 * cp, mv, install: --verbose now prints a message for each backup-related
208 * portability fixes for copy.c's code to detect move-directory-into-self
209 * upgrade to automake-1.3b
210 * upgrade to autoconf-2.13, and...
211 * remove some of the kludges in m4/*.m4 that permitted
213 * concurrent `mkdir -p' processes no longer fail when creating the
215 * argmatch.c has been fixed so that the unambiguous usage `ls --color=n'
216 no longer evokes an error.
217 * now, specifying an improper argument for an option that accepts enumerated
218 values evokes diagnostics like this:
219 $ src/touch --time=x file
220 src/touch: invalid argument `x' for `--time'
222 - `atime', `access', `use'
224 Try `src/touch --help' for more information.
226 * ls --quoting-style=c prints correct octal escapes for certain nonprinting
227 characters in file names.
228 * fix `ls -R .' formatting bug that broke mktexlsr
229 * moving a directory into itself is properly diagnosed in more cases
230 * moving a directory containing hard-linked files now works
232 Changes in release 4.0:
234 * rm -rf '' no longer gets a failed assertion on the Hurd
236 * rm simply fails as it should (rather than segfaulting) for
237 `mkdir -m 0100 x; rm -rf x'
239 * still *more* mktime.c portability tweaks
241 * mktime.c portability tweak for headers with GNU libc 5.4.44.
243 * mktime.c works around problems with Digital Unix 4.0A and 4.0D.
244 * mktime.c handles dates in the spring-forward gap the same way other
246 * install accepts long option --suffix=SUFFIX
248 * man/Makefile.maint framework tweaks
249 * add test for `mv -i' bug
251 * fix serious bug whereby `touch a b; echo n|mv -i a b' would remove b.
254 * avoid `root `cp -a' from Netapp snapshot' corruption
256 * `install -D' now works
257 * distribute maintainer Makefiles in man/
259 * man pages are now automatically generated from a combination of --help
260 output and the contents of new (though mostly empty), man/*.x files.
262 * touch now interprets `-t TIME-DATE' as POSIX specifies
263 * `ls EMPTY-DIR EMPTY-DIR' once again outputs the directory names
266 * `ls -R EMPTY-DIR' now outputs the name of the directory
268 * mv now fails (as it should) upon attempt to move a directory into itself
269 * `cp -a --one-file-system' now copies any mount point directories it
270 encounters on the selected file system.
272 * cp (with --update) and ls compare time stamps with subsecond resolution when
273 available (e.g., on systems with recent Linux kernels and on Solaris 2.6).
274 * install once again does the -m-specified chmod *after* running strip
275 (this fixes another bug introduced in 3.16o)
277 * df accept a new option --local (-l)
278 * touch works around a system-specific bug so it now affects existing,
279 zero-length files on certain systems
280 * chown now works even on certain SVR3 systems where it used to fail
282 * include gettext's m4 macros
284 * non-portable cp tests removed
285 * --without-included-regex now means don't compile regex.c
288 * `df', `du', and `ls' now accept a new option --block-size=SIZE,
289 where SIZE can be a positive integer block size, followed by an
290 optional SI prefix (e.g. `k' for kilo, `M' for Mega), followed by an
291 optional `B' (for ``byte'', indicating powers of 1024, which is the
292 default) or `D' (for ``decimal byte'', indicating powers of 1000).
293 SIZE can also be `human-readable' (for -h or --human-readable
294 behavior) or `si' (for -H or --si behavior).
295 * These suffixes can also be used by `dd'; e.g. `dd bs=1MB' is equivalent
297 * The default block size for the `df' command is now obtained from the
298 DF_BLOCK_SIZE environment variable or, if that is not set, from BLOCK_SIZE.
299 Similarly for `du' and `ls'.
300 * The output columns of `df' have been adjusted slightly to accommodate
302 * fix gettext-related link failures seen when configuring certain ways
304 * fix install bug introduced in 3.16o
305 * build/test changes only
307 * chown accepts new option, --dereference. --no-dereference is now the default.
308 * install now shares core copying code with mv and cp
309 * mv (between distinct filesystems) now uses more of the core copying code
310 * fixed a bug or two in mv
311 * df once again displays negative numbers when that's what's returned
314 * `mv dir dir' once again does *not* remove dir/
315 * ls accepts new options:
316 --indicator-style=none (no indicators, the default)
317 --indicator-style=classify (all indicators)
318 (equivalent to -F or --classify)
319 --indicator-style=file-type (file type indicators)
320 (equivalent to -p or --file-type)
322 --quoting-style=literal (do not quote output)
323 --quoting-style=shell (minimally quote output for the shell)
324 --quoting-style=shell-always (always quote output with '' for the shell)
325 --quoting-style=c (quote output as for a C-language string)
326 (equivalent to -Q or --quote-name)
327 --quoting-style=escape (like c but omit enclosing "")
328 (equivalent to -b or --escape)
330 --show-control-chars is the opposite of --hide-control-chars
331 This option can be useful if output is to a terminal,
332 to override the default beahvior of hiding control characters.
334 * The QUOTING_STYLE environment variable can now be used to specify the
335 default value for ls's --quoting-style option. If not specified,
336 the default quoting style is 'literal', but this default may change to
337 'shell' in a future version of this package.
338 * ls's quoting style now affects operands in diagnostics, too.
339 * ls's --dired option now outputs the quoting style
340 using the format of the new --quoting-style option.
341 * ls's -e or --quote-shell option (introduced in 3.16j) has been removed;
342 use --quoting-style=shell to get its functionality.
344 * mv can move (and doesn't read) special files
345 * remove maintainer mode
347 * mv can finally move non-regular files between partitions
349 * install accepts new option, -D
351 * du accepts new options, --exclude=PAT and --exclude-from=FILE (-X FILE)
352 * ls now quotes file names for the shell by default, if they contain
353 characters that need quoting. Use -N to get the old default behavior.
354 The new behavior is also enabled by the new option -e or --quote-shell.
355 * ln --backup is now consistent with cp and mv in that --force is no longer
356 required when the destination is an existing non-directory.
357 * install accepts new option, --verbose (-v)
358 * mkdir -p is a lot faster when creating very deep directories on some systems
359 * rm -i no longer exits with status indicating failure solely because the
360 user declines to remove a file
361 * rm -r is a lot faster on some systems when removing deep hierarchies
362 * chgrp, chmod, and chown no longer give contradictory output when --verbose
363 is used and an operation fails
364 * ls's multicolumn option now uses variable width columns to conserve
366 * install accepts new option, --preserve-timestamps
367 * du --megabytes --total now shows total in megabytes
368 * ls accepts new option, -h or --human-readable
369 * df, du, and ls now accept new option, -H or --si, for powers of 1000 not 1024
370 * df, du, and ls now consistently round to nearest, with ties going to even
371 * df, du, and ls now use `k' instead of `K' for `kilo',
372 and support larger abbreviations T(era), P(eta), E(xa), Z(etta), Y(otta)
373 * touch -d DATE now works on Unicos
374 * du accepts new option --max-depth=N
375 * rmdir accepts new options: --ignore-fail-on-non-empty and --verbose
376 * on most hosts df, du, and ls now overflow at 2**64 bytes, not 2**31 bytes
377 * all programs now work on large files on LFS systems like Solaris 2.6 and
378 Linux with the pre-2.1 development version of GNU libc.
379 * df now works with OpenBSD 2.1 beta
380 * cp -d FILE SYMLINK-TO-FILE doesn't erase FILE. Now it gives an error.
382 Changes in release 3.16:
383 * du --megabytes (-m) works
384 * ls -l works even on systems with non-POSIX strftime in their C library
386 Changes in release 3.15:
387 * touch --date=DATE bug (due to broken getdate.y) has been fixed
388 * ls -l no longer misformats the date when run in a locale for which the
389 locale's abbreviated week-day name (strftime's %a format) is shorter or
390 longer than the `normal' three bytes (with LANG=de it's a two-byte string).
391 * Using --program-prefix no longer applies the prefix twice
392 * ls --color properly restores color attributes upon completion when the
393 normal (`no') color attribute is not the default color.
394 * with ls -s --color, the `total' and size of the first file are printed
395 * ls --color stats symlinks and distinguishes between regular symlinks
397 * cp --preserve preserves owner and group of symlinks on Linux when run
399 * dircolors no longer accepts --print-data-base (alternate spelling of
402 Changes in release 3.14:
403 * ls --color highlights based on suffix rules only for regular files
404 * touch --date=DATE accepts dates like those in an RCS log listing, e.g.,
405 `1992/11/01 05:44:34'.
406 * install SRC DST no longer rejects non-regular, non-directory SRC
407 * df accepts -F as a synonym for -t for compatibility with Solaris
408 * cp -i /dev/null existing-file now prompts before overwriting the target
409 * ls --color highlights orphaned symlinks text on terminals that support it
410 * ls -l honors current locale with respect to abbreviated month names (and,
411 with --full-time day names) on systems with a locale-supporting strftime
412 function, e.g., ones based on recent versions of the GNU C library
413 * ls -l recognizes Cray's migrated dmf files.
414 * chgrp no longer aborts when given a group number larger than INT_MAX
415 * chgrp now fails when run by root with an unrecognized group name
416 * when possible, cp -p preserves owner/group even on symlinks in case
417 they're in a directory that has the sticky-bit set.
418 * cp --recursive --parents SRC DEST works when SRC is an absolute file name.
420 Changes in release 3.13:
421 * ls properly determines window size on SunOS and Solaris systems
422 * ls accepts new option --color[=WHEN] where WHEN is `always', `never',
423 or `auto'. --color=never is the default. --color is equivalent
425 * new program: dircolors
426 * ls allows 0 as argument to --tabsize (-T) option. Using --tabsize=0
427 inhibits the use of TAB characters for separating columns.
428 * you can create a backup of FILE with cp --force --backup FILE FILE. Before,
429 that command failed saying that ``FILE' and `FILE' are the same file'.
430 * uses automake-generated Makefile templates
431 * chown and chgrp accept new option --no-dereference (-h)
432 * ln -f FILE FILE fails with a diagnostic rather than silently removing FILE
433 * when building on systems that have getopt_long (most GNU-oriented ones),
434 the system-provided function will be used -- so executables may be a
436 * cp -p, and mv modify owner and/or group of symlinks on systems
437 (like Solaris) that provide the lchown system call.
438 * df no longer invokes the sync system call by default. You can use the
439 --sync option to make df invoke sync before getting file system sizes.
440 * internationalized diagnostic messages
441 * mkdir accepts new option: --verbose
442 * `cp file D/' uses the full file name `D/file' instead of `D//file'.
443 * cp --backup a~ a fails instead of silently destroying the source file
444 * df and du have new options --human-readable (-h) and --megabytes (-m).
445 * install now honors --backup (-b), --suffix=SUFFIX (-S SUFFIX), and
446 --version-control=WORD (-V WORD) options just as cp, ln, and mv do.
447 * ln --verbose output is less prone to misinterpretation
448 * ls -o works like -lG; for compatibility with other versions of ls
449 * cp has a new option to control creation of sparse files:
450 --sparse={auto,always,never}. --sparse=auto is the default.
451 * rm -rf '' behaves properly on SunOS 4 systems
452 * touch: rename long option name, --file, to --reference.
453 `touch --file' will continue to work a little longer.
454 * df fails if the same file system type is both selected and excluded.
455 * df works around SunOS statfs brokenness wrt filesystems larger than 2GB
456 * df better handles inconsistent mtab entries
457 * `ls -lDR dir dir2' works
458 * `ls -c' does what it's supposed to
459 * all programs include program name in --version output
460 * `ls --quote-name' works
461 * mv properly determines whether src and dest are the same file
462 Before, it could (though with very low probability) fail to do the move,
463 reporting that distinct source and destination are the same file.
464 * du --dereference (-L) works with directory symlinks
465 * du works on SunOS 4 systems even when accounting is enabled
466 * many programs that convert strings to integers now use strtol or strtoul
469 User-visible changes in release 3.12:
471 User-visible changes in release 3.11:
473 User-visible changes in release 3.10:
474 * mkdir -p now ignores arguments that are existing directories. Before,
475 (contrary to POSIX spec) it would attempt to change ownership and/or
476 protections of existing directories listed on the command line. And
477 it would fail when such a directory was owned by another user.
478 * Fix bug in cp that made the commands `mkdir dir; touch foo; cp -P foo dir'
479 incorrectly change the permissions on directory, dir.
480 * df accepts a new option, --no-sync, that inhibits the default invocation
481 of the sync system call.
482 * ls accepts a new option, --dired, that makes emacs' dired mode more efficient
483 * skeletal texinfo documentation (mainly just the `invoking' nodes)
484 * ln accepts a new option: --no-dereference (-n). With this option,
485 if the destination command line argument is a symlink to a directory,
486 use that as the destination instead of the file in the directory.
487 * `ln -i no-such-file existing-file' gives a diagnostic and fails.
488 Before, if you responded `yes' to the prompt it would both remove
489 `existing-file' and fail to make a link.
490 * du no longer requires read access to all of the directory components
491 of the current working directory on systems with fchdir.
492 * touch -d 'date' is no longer off by one hour.
494 * Fix bug in cp that made the commands `ln -s . s; cp -rd s r' incorrectly
495 create `r' as a symlink instead of as a regular file.
496 * du's -S and -c options now work when used together.
497 Before, the grand total was always reported to be zero.
499 Major changes in release 3.9:
500 * --help gives a one-line description of each option and shows the
501 correspondence between short and long-named options.
502 * work around systems with BROKEN_STAT_MACROS
503 * work around problem where $(srcdir)/config.h was used instead of
504 ../config.h -- this happened only when building in a subdirectory
505 and when config.h remained in $(srcdir) from a previous ./configure.
506 * GNU chmod treats symlinks the same way other vendor's versions do.
507 Now symlinks listed on the command line are processed (they were
508 ignored before); the permissions of the dereferenced files are
509 changed. Symlinks encountered in recursive traversals are still
510 ignored. This makes GNU chmod act more like e.g. Sun's.
511 * configure uses config.h, so DEFS won't exceed preprocessor limits of
512 some compilers on the number of symbols defined via -D.
513 * ls and cp can handle mount points on more systems
514 * cp, mkdir, and rmdir long option --path renamed to --parents; --path
515 will still work for a while
516 * cp, ln, and mv convert `cp A B/' to cp A B/A when A is not a directory.
517 This change affects only the two-argument form of the commands. It makes
518 such commands fail when the target has a trailing slash but is not a
519 directory or symlink to a directory and the source is not a directory.
520 They used to succeed, ignoring the implicitly contradictory trailing slash.
522 Major changes in release 3.8:
523 * install isn't as likely to produce spurious errors
524 * avoid redundant compilations for `dir' and `vdir';
525 * configure properly defines STAT_STATFS2_BSIZE on a Pyramid MIServer
528 Major changes in release 3.7:
530 Major changes in release 3.6:
531 * `ln -s dir_pathname .' works when the pathname has a trailing slash
532 * with the --version option programs print the version and exit immediately
533 * GNU ls -f works like Unix ls -f
534 * mktime replacement works
536 Major changes in release 3.5:
537 * adds support for DEC Alpha under OSF/1
538 * configuring with gcc uses CFLAGS='-g -O' by default
539 * all programs accept --help and --version options
540 * long-named options must be introduced with `--'; `+' is no longer
541 accepted since it is incompatible with the POSIX.2 standard
542 * chmod accepts long-named options
543 * dd conv=unblock doesn't hang
544 * new df option --exclude=fstype
545 * new ls option --full-time
547 Major changes in release 3.4:
548 * cp -p and mv preserve setuid and setgid bits
549 * chown works on systems where sizeof(uid_t) != sizeof(int)
550 or sizeof(uid) != sizeof(gid)
551 * catch errors from spurious slashes at ends of arguments
553 Major changes in release 3.3:
554 * df sped up by not calling sync for every filesystem
555 * df ported to AIX (RS/6000 and PS/2), and SVR2 port fixed
556 * df -i now also prints the total number of inodes per filesystem
557 * ls sped up by not reading symlink contents unnecessarily
558 * du doesn't die on POSIX systems when the root filesystem is NFS mounted
559 * cp and mv report chown Permission denied errors when run by root