Version 6.9.
[coreutils.git] / README
blob236b2d51abad58925fef9fd6f196fb37f57d45cb
1 These are the GNU core utilities.  This package is the union of
2 the GNU fileutils, sh-utils, and textutils packages.
4 Most of these programs have significant advantages over their Unix
5 counterparts, such as greater speed, additional options, and fewer
6 arbitrary limits.
8 The programs that can be built with this package are:
10   [ base64 basename cat chgrp chmod chown chroot cksum comm cp csplit cut date
11   dd df dir dircolors dirname du echo env expand expr factor false fmt fold
12   ginstall groups head hostid hostname id join kill link ln logname ls
13   md5sum mkdir mkfifo mknod mv nice nl nohup od paste pathchk pinky pr
14   printenv printf ptx pwd readlink rm rmdir seq sha1sum sha224sum sha256sum
15   sha384sum sha512sum shred shuf sleep sort split stat stty su sum sync tac
16   tail tee test touch tr true tsort tty uname unexpand uniq unlink uptime
17   users vdir wc who whoami yes
19 See the file NEWS for a list of major changes in the current release.
21 See the file INSTALL for compilation and installation instructions.
23 These programs are intended to conform to POSIX (with BSD and other
24 extensions), like the rest of the GNU system.  By default they conform
25 to older POSIX (1003.2-1992), and therefore support obsolete usages
26 like "head -10" and "chown owner.group file".  This default is
27 overridden at build-time by the value of <unistd.h>'s _POSIX2_VERSION
28 macro, and this in turn can be overridden at runtime as described in
29 the documentation under "Standards conformance".
31 The ls, dir, and vdir commands are all separate executables instead of
32 one program that checks argv[0] because people often rename these
33 programs to things like gls, gnuls, l, etc.  Renaming a program
34 file shouldn't affect how it operates, so that people can get the
35 behavior they want with whatever name they want.
37 Special thanks to Paul Eggert, Brian Matthews, Bruce Evans, Karl Berry,
38 Kaveh Ghazi, and François Pinard for help with debugging and porting
39 these programs.  Many thanks to all of the people who have taken the
40 time to submit problem reports and fixes.  All contributed changes are
41 attributed in the ChangeLog files.
43 And thanks to the following people who have provided accounts for
44 portability testing on many different types of systems: Bob Proulx,
45 Christian Robert, François Pinard, Greg McGary, Harlan Stenn,
46 Joel N. Weber, Mark D. Roth, Matt Schalit, Nelson H. F. Beebe,
47 Réjean Payette, Sam Tardieu.
49 Thanks to Michael Stone for inflicting test releases of this package
50 on Debian's unstable distribution, and to all the kind folks who used
51 that distribution and found and reported bugs.
53 Note that each man page is now automatically generated from a template
54 and from the corresponding --help usage message.  Patches to the template
55 files (man/*.x) are welcome.  However, the authoritative documentation
56 is in texinfo form in the doc directory.
58 If you run the tests on a SunOS4.1.4 system, expect the ctime-part of
59 the ls `time-1' test to fail.  I believe that is due to a bug in the
60 way Sun implemented link(2) and chmod(2).
63 ***********************
64 Pre-C99 build failure
65 -----------------------
67 There is a new, implicit build requirement:
68 To build the coreutils from source, you should have a C99-conforming
69 compiler, due to the use of declarations after non-declaration statements
70 in several files in src/.  There is code in configure to find and, if
71 possible, enable an appropriate compiler.  However, if configure doesn't
72 find a C99 compiler, it continues nonetheless, and your build will fail.
73 If that happens, simply apply the included patch using the following
74 command, and then run make again:
76   cd src && patch < c99-to-c89.diff
79 ***********************
80 HPUX 11.x build failure
81 -----------------------
83 A known problem exists when compiling on HPUX on both hppa and ia64
84 in 64-bit mode (i.e. +DD64) on HP-UX 11.0, 11.11, and 11.23.  This
85 is not due to a bug in the package but instead due to a bug in the
86 system header file which breaks things in 64-bit mode.  The default
87 compilation mode is 32-bit and the software compiles fine using the
88 default mode.  To build this software in 64-bit mode you will need
89 to fix the system /usr/include/inttypes.h header file.  After
90 correcting that file the software also compiles fine in 64-bit mode.
91 Here is one possible patch to correct the problem:
93 --- /usr/include/inttypes.h.orig        Thu May 30 01:00:00 1996
94 +++ /usr/include/inttypes.h     Sun Mar 23 00:20:36 2003
95 @@ -489 +489 @@
96 -#ifndef __STDC_32_MODE__
97 +#ifndef __LP64__
100 ************************
101 OSF/1 4.0d build failure
102 ------------------------
104 If you use /usr/bin/make on an OSF/1 4.0d system, it will fail due
105 to the presence of the "[" target.  That version of make appears to
106 treat "[" as some syntax relating to locks.  To work around that,
107 the best solution is to use GNU make.  Otherwise, simply remove
108 all mention of "[$(EXEEXT)" from src/Makefile.
112 **********************
113 Running tests as root:
114 ----------------------
116 If you run the tests as root, note that a few of them create files
117 and/or run programs as a non-root user, `nobody' by default.
118 If you want to use some other non-root username, specify it via
119 the NON_ROOT_USERNAME environment variable.  Depending on the
120 permissions with which the working directories have been created,
121 using `nobody' may fail, because that user won't have the required
122 read and write access to the build and test directories.
123 I find that it is best to unpack and build as a non-privileged
124 user, and then to run the following command as that user in order
125 to run the privilege-requiring tests:
127   sudo env NON_ROOT_USERNAME=$USER make -k check
129 If you can run the tests as root, please do so and report any
130 problems.  We get much less test coverage in that mode, and it's
131 arguably more important that these tools work well when run by
132 root than when run by less privileged users.
135 ***************
136 Reporting bugs:
137 ---------------
139 IMPORTANT: if you take the time to report a test failure,
140 please be sure to include the output of running `make check'
141 in verbose mode for each failing test.  For example,
142 if the test that fails is tests/mv/hard-link-1, then you
143 would run this command:
145   env VERBOSE=yes make check -C tests/mv TESTS=hard-link-1 >> log 2>&1
147 For some tests, you can get even more detail by including
148 DEBUG=yes in the environment:
150   env DEBUG=yes VERBOSE=yes make check -C tests/mv TESTS=hard-link-1 >> log 2>&1
152 and then include the contents of the file `log' in your bug report.
154 ***************************************
156 There are many tests, but nowhere near as many as we need.
157 Additions and corrections are very welcome.
159 If you see a problem that you've already reported, feel free to re-report
160 it -- it won't bother me to get a reminder.  Besides, the more messages I
161 get regarding a particular problem the sooner it'll be fixed -- usually.
162 If you sent a complete patch and, after a couple weeks you haven't
163 received any acknowledgement, please ping us.  A complete patch includes
164 a well-written ChangeLog entry, unified (diff -u format) diffs relative
165 to the most recent test release (or, better, relative to the latest
166 sources in the CVS repository), an explanation for why the patch is
167 necessary or useful, and if at all possible, enough information to
168 reproduce whatever problem prompted it.  Plus, you'll earn lots of
169 karma if you include a test case to exercise any bug(s) you fix.
170 Instructions for checking out the latest source via CVS are here:
172   http://savannah.gnu.org/cvs/?group=coreutils
175 If your patch adds a new feature, please try to get some sort of consensus
176 that it is a worthwhile change.  One way to do that is to send mail to
177 bug-coreutils@gnu.org including as much description and justification
178 as you can.  Based on the feedback that generates, you may be able to
179 convince us that it's worth adding.
182 WARNING:  Now that we use the ./bootstrap script, you should not run
183 autoreconf manually.  Doing that will overwrite essential source files
184 with older versions, which may make the package unbuildable or introduce
185 subtle bugs.
188 WARNING:  If you modify files like configure.in, m4/*.m4, aclocal.m4,
189 or any Makefile.am, then don't be surprised if what gets regenerated no
190 longer works.  To make things work, you'll have to be using appropriate
191 versions of automake and autoconf.  As for what versions are `appropriate',
192 use the versions of
194   * autoconf specified via AC_PREREQ in m4/jm-macros.m4
195   * automake specified via AM_INIT_AUTOMAKE in configure.ac
197 Usually it's fine to use versions that are newer than those specified.
199 All of these programs except `test' recognize the `--version' option.
200 When reporting bugs, please include in the subject line both the package
201 name/version and the name of the program for which you found a problem.
203 For general documentation on the coding and usage standards
204 this distribution follows, see the GNU Coding Standards,
205 http://www.gnu.org/prep/standards_toc.html.
207 Mail suggestions and bug reports for these programs to
208 the address on the last line of --help output.
211 ========================================================================
213 Copyright (C) 1998, 2002, 2003, 2004, 2005, 2006 Free Software
214 Foundation, Inc.
216 Permission is granted to copy, distribute and/or modify this document
217 under the terms of the GNU Free Documentation License, Version 1.2 or
218 any later version published by the Free Software Foundation; with no
219 Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
220 Texts.  A copy of the license is included in the ``GNU Free
221 Documentation License'' file as part of this distribution.