7bc9494dd5
Upstream changes: 2017-12-27 Pádraig Brady <P@draigBrady.com> version 8.29 * NEWS: Record release date. 2017-12-23 Pádraig Brady <P@draigBrady.com> tests: avoid false failure on AIX 7.2 * tests/tail-2/pipe-f.sh: Close stdout in a subshell to ensure the current shell isn't impacted. Subsequent piped commands like `echo foo | blah` were seen to fail due to the previous closing of stdout. Reported by Assaf Gordon. doc: describe recent build checks for 32 bit time_t * README: Document the new handling of 32 bit time_t, with examples of how to build in 64 bit mode on AIX. Also mention that GNU make is desired on AIX due to its mishandling of the "[" target. Suggested by Assaf Gordon. 2017-12-21 Pádraig Brady <P@draigBrady.com> tests: fix recent portability issues on solaris 10 * tests/misc/ptx.pl: Escape the '^' character which is otherwise considered as a line continuation character. * tests/misc/shred-remove.sh: sed doesn't support \n. maint: remove reference to excluded changelog item * build-aux/git-log-fix: Remove old entry. 2017-12-20 Pádraig Brady <P@draigBrady.com> maint: add doc/coverage to .gitignore * .gitignore: Ignore the generated coverage report. doc: remove older ChangeLog items * Makefile.am: Update the oldest documented version to 8.20 which is now about 5 years old. 2017-12-18 Bernhard Voelker <mail@bernhard-voelker.de> doc: mention which privileges are needed to chmod POSIX specification for chmod(1): https://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.html * doc/coreutils.texi (chmod invocation): Add a sentence about who can change the file mode bits of a file - (almost) a copy from what POSIX requires. Fixes https://bugs.gnu.org/29207. 2017-12-16 Pádraig Brady <P@draigBrady.com> tests: fix recent regressions with dash * tests/misc/timeout.sh: dash outputs the "Killed" message to stderr rather than the terminal. * tests/misc/usage_vs_getopt.sh: dash doesn't yet support the POSIX proposed $'...' shell quoting syntax. build: avoid a signed overflow warning in ptx * src/ptx.c (fix_output_parameters): GCC 6.3.1 with ./configure --enable-single-binary would give: error: assuming signed overflow does not occur when simplifying conditional to constant [-Werror=strict-overflow] if (file_index > 0) So change the type of file_index to signed (size_t). 2017-12-11 Bernhard Voelker <mail@bernhard-voelker.de> maint: adjust for the renamed nstrfime gnulib module * bootstrap.conf: s/strftime/nstrfrime/. 2017-12-11 Pádraig Brady <P@draigBrady.com> build: update gnulib submodule to latest * gnulib: Update with various build/test fixes. tests: fix false failure in new dd/nocache_eof test * test/dd/nocache_eof.sh: Also handle fadvise64_64 which is used on 32 bit x86. Note strace internally maps fadvise64_64 to {arm,xtensa}_fadvise64_64. tail: fix tailing non seekable files on certain systems * src/tail.c (tail_bytes): On systems were blksize_t is unsigned and the same size or wider than off_t (android for example), our initialized (off_t) -1 would be promoted to unsigned before comparison, and thus fail to follow the appropriate path. * tests/tail-2/tail-c.sh: Add a test case. * NEWS: Mention the fix. This issue was introduced in commit v8.23-47-g2662702 Reported at https://github.com/termux/termux-app/issues/233 build: avoid build failure without sys/mtio.h * m4/jm-macros.m4: Check for the header. * src/dd.c: Avoid the workaround where the header is not available (on non glibc systems). * src/shred.c: Likewise. doc: reorganize ls -k and --time-style help * src/ls.c (usage): Clarify -k only applies to -s usage and directory 'total' lines. Move the description of TIME_STYLE out of the option section as it was awkward to read and write there within 80 columns. 2017-12-10 Pádraig Brady <P@draigBrady.com> doc: clarify numeric setuid handling in chmod man page * man/chmod.x: Update the information to state one can clear the setuid and setgid bits for directories numerically using an additional leading '0' or a leading '='. That has been supported since v8.15-64-g8931cdb. Fixes https://bugs.gnu.org/29390 doc: shred: change 'truncate' to the more descriptive 'deallocate' * doc/coreutils.texi (shred invocation): s/truncate/deallocate/. * src/shred.c (usage): Likewise. Fixes https://bugs.gnu.org/29317 doc: clarify that cp --force may recreate files * doc/coreutils.texi (cp invocation): The language used to describe recreating the file was a little confusing as it mentioned opening a removed file. Fixes https://bugs.gnu.org/29315 2017-12-04 Kamil Dudka <kdudka@redhat.com> doc: fix default QUOTING_STYLE for %N format of stat(1) * doc/coreutils.texi (stat invocation): The default value of QUOTING_STYLE for the %N format of 'stat --printf' is 'shell-escape-always'. Fixes https://bugs.gnu.org/29563 Reported by Christian Groessler at https://bugzilla.redhat.com/1520399#c3 2017-12-02 Jean Delvare <jdelvare@suse.de> tests: make ls/block-size more readable * tests/ls/block-size.sh: The output of the test was hard to read. Add comments saying what we are testing to make it easier to understand. 2017-11-29 Bernhard Voelker <mail@bernhard-voelker.de> Pádraig Brady <P@draigBrady.com> tests: verify usage vs. getopt Verify that all options mentioned in usage are actually recognized by the program. * tests/misc/usage_vs_getopt.sh: Add test. * tests/local.mk (all_tests): Reference it. 2017-11-29 Pádraig Brady <P@draigBrady.com> readlink: remove superfluous comma from usage output * src/readlink.c (usage): Remove ',' after --quiet option. 2017-11-29 Bernhard Voelker <mail@bernhard-voelker.de> all: use consistent diagnostics for unknown long options Previously, e.g. cksum failed to output the offending unknown long option: $ cksum --unknown-opt cksum: invalid option -- '-' Try 'cksum --help' for more information. i.e., it tried to diagnose '-' as short option. Instead, it should diagnose the unknown long option: $ cksum --unknown-opt cksum: unrecognized option '--unknown-opt' Try 'cksum --help' for more information. * src/cksum.c (long_options): Add struct with null entry only. (main): Use it in the getopt_long call. * src/dd.c: Likewise. * src/hostid.c: Likewise. * src/hostname.c: Likewise. * src/link.c: Likewise. * src/logname.c: Likewise. * src/nohup.c: Likewise. * src/sleep.c: Likewise. * src/tsort.c: Likewise. * src/unlink.c: Likewise. * src/uptime.c: Likewise. * src/users.c: Likewise. * src/whoami.c: Likewise. * src/yes.c: Likewise. * NEWS (Improvements): Mention the fix. 2017-11-29 Pádraig Brady <P@draigBrady.com> test: fix issues with tests/cp/preserve-mode.sh * tests/cp/preserve-mode.sh: This was the only use of awk, which may not be available on the system resulting in an ineffective test. Also the permissions bits for directories were not being checked at all. build: update gnulib submodule to latest * gnulib: Update with various build/test fixes. 2017-11-28 Pádraig Brady <P@draigBrady.com> build: update gnulib submodule to latest * gnulib: Update including various build fixes. 2017-11-27 Bernhard Voelker <mail@bernhard-voelker.de> timeout: also support short -v option * src/timeout.c (main): Add short option character 'v' to getopt_long call. * tests/misc/timeout.sh: Run the test both for the long and the short option. 2017-11-25 Pádraig Brady <P@draigBrady.com> dd: support iflag=direct with arbitrary sized files * src/dd.c (iread): Handle read error with a non-aligned file offset in the O_DIRECT case. This is not an issue on XFS at least, but on EXT4 the final read will return EINVAL rather than the expected 0 to indicate EOF. * tests/dd/direct.sh: Test the iflag=direct case also. * NEWS: Mention the improvement. 2017-11-24 Pádraig Brady <P@draigBrady.com> timeout: add --verbose to diagnose timeouts This is useful as handling in shell is complicated with the varying exit status in the --kill-after case. * src/timeout.c (main): Handle '-v' and store COMMAND for the diagnostic. (cleanup): Diagnose the signal name before sending. (usage): Document -v, --verbose. * doc/coreutils.texi (timeout invocation): Likewise. * tests/misc/timeout.sh: Add a test case. * NEWS: Mention the new feature Fixes https://bugs.gnu.org/21760 2017-11-19 Pádraig Brady <P@draigBrady.com> tail: seek to the end of block devices * src/tail.c (tail_bytes): Try lseek(..., SEEK_END) when we can't determine the file size. * tests/tail-2/end-of-device.sh: Add a new root only test. * tests/local.mk: Reference the new test. * NEWS: Mention the improvement. Paul Eggert suggested using lseek() (rather than ioctl(BLKGETSIZE64)). Fixes https://bugs.gnu.org/29259 2017-11-14 Bernhard Voelker <mail@bernhard-voelker.de> maint: include the module year2038 from gnulib * bootstrap.conf (gnulib_modules): Add 'year2038' to ensure that time_t is 64-bit (and thus works after 2038). Suggested by Bruno Haible in https://lists.gnu.org/r/bug-gnulib/2017-11/msg00022.html 2017-11-14 Bernhard Voelker <mail@bernhard-voelker.de> maint: update gnulib to latest * gnulib: Update - mainly for the recent year2038 changes. * tests/init.sh: Update from gnulib/tests/init.sh. 2017-11-09 Assaf Gordon <assafgordon@gmail.com> doc: add github issue/pull-request templates These templates instruct contributors not to use github, and instead use the upstream GNU development resources. Discussed in http://lists.gnu.org/archive/html/coreutils/2017-11/msg00007.html . * .github/ISSUE_TEMPLATE.txt, .github/PULL_REQUEST_TEMPLATE.txt: New files. 2017-11-08 Jim Meyering <meyering@fb.com> maint: make hook script reject "/archive/html" in lists.gnu.org URLS * scripts/git-hooks/commit-msg: Require the abbreviated "/r/" form in any log message URL. maint: shorten https://lists.gnu.org/archive/html/... links Each /archive/html/ part can be replace with /r/. Run this to induce the change: git grep -l archive/html|xargs perl -pi -e 's,/archive/html/,/r/,g' * TODO: Perform that substitution. * bootstrap: Likewise. * src/sort.c (sequential_sort): Likewise. * src/tail.c (tail_file): Likewise. * tests/misc/sort-merge-fdlimit.sh: Likewise. * tests/misc/stty-row-col.sh: Likewise. * tests/misc/unexpand.pl: Likewise. * tests/rm/readdir-bug.sh: Likewise. * tests/tail-2/inotify-rotate.sh: Likewise. 2017-11-07 Thomas Deutschmann <whissi@gentoo.org> tests: avoid false failure with inaccessible mount points * tests/ls/readdir-mountpoint-inode.sh: Skip the test if any mount points are inaccessible by the current user. Fixes https://bugs.gnu.org/29167 Reported at: https://bugs.gentoo.org/353164 2017-11-06 Bernhard Voelker <mail@bernhard-voelker.de> doc: fix "Up" field of realpath usage examples Older versions of 'makeinfo' choke on a missing reference: ./doc/coreutils.texi:14177: `Realpath usage examples' has no Up field\ (perhaps incorrect sectioning?). makeinfo: Removing output file `doc/coreutils.info' due to errors; \ use --force to preserve. * doc/coreutils.texi (realpath invocation): Add a menu referencing the usage examples - introduced in v8.27-91-g7449f0d. 2017-11-06 Pádraig Brady <P@draigBrady.com> maint: ensure https:// URLs are used in --help and man pages * configure.ac(AC_INIT): Specify the URL explicitly, so we're not dependent on unreleased autoconf. 2017-10-31 Assaf Gordon <assafgordon@gmail.com> stat: output default formats for --terse in usage Suggested by L A Walsh in https://bugs.gnu.org/28763 . * src/stat.c (fmt_terse_fs): Define format for --terse -f here. (fmt_terse_regular): Define format for --terse here. (fmt_terse_selinux): Likewise for when SELinux is enabled. (default_format): Use the above constants. (usage): Output the formats for the terse modes. 2017-10-30 Pádraig Brady <P@draigBrady.com> df: fix hang with fifo argument * src/df.c (main): stat() before open(), and avoid the optional open when given a fifo argument. * tests/df/unreadable.sh: Add a test case. * NEWS: Mention the fix. Fixes https://bugs.gnu.org/29038 2017-10-28 Jim Meyering <meyering@fb.com> build: ls.c: apply _GL_ATTRIBUTE_PURE to more functions * src/ls.c (DEFINE_SORT_FUNCTIONS): Apply _GL_ATTRIBUTE_PURE to each strcmp-derived function definition, since GCC8 with -Wsuggest-attribute=pure now warns it is needed. 2017-10-26 Vincent Lefevre <vincent@vinc17.net> doc: reference statfs(2) in the stat(1) man page * man/stat.x (SEE ALSO): Mention statfs(2) in addition to stat(2). Note statfs() is generally used rather than statvfs(), so we'll defer that reference to the SEE ALSO section of statfs(2). Fixes https://bugs.gnu.org/28989 2017-10-25 Pádraig Brady <P@draigBrady.com> tests: avoid false failure when O_DIRECT isn't supported * tests/dd/nocache_eof.sh: Only run the O_DIRECT tests when 512 byte alignment is supported. Otherwise with older XFS on systems with > 1MiB pages, or on file systems not supporting O_DIRECT, there would have been false failures. * tests/dd/direct.sh: Clarify the skip message. 2017-10-25 Pádraig Brady <P@draigBrady.com> dd: fix nocache regions passed to posix_fadvise() Previously with oflag=direct the call to invalidate_cache() was not passed to the kernel, as it was less than a page size, and a subsequent call was not made to invalidate the pending space. Similarly with oflag=nocache the pending space at EOF was not invalidated. Even though these amount to only a single page in the page cache it can be significant. For example on XFS before kernel patch v4.9-rc1-4-g0ee7a3f, O_DIRECT files would have been read inefficiently if any pages were cached, even if they were already synced to storage. * src/dd.c (i_nocache_eof, o_nocache_eof): New bools used to control when we want invalidate_cache(,0) to clear to EOF. (cache_round): Use IO_BUFSIZE (currently 132KiB) to minimize calls to the relatively expensive advise function, rather than page_size. This also makes it clear that while the kernel function operates on pages, this size is chosen for performance reasons. (invalidate_cache): Refactor to share more code between input and output paths. Use i_nocache_eof and o_nocache_eof rather than proxying off max_records. Ensure we invalidate full pages when clearing to EOF as the kernel will ignore any non complete pages. Fix the offset used for the output path. (dd_copy): Invalidate the cache of the input after the offset is updated, for consistency and so we don't try to invalidate before the start of the file. When we read EOF on input, set flags so that we invalidate to EOF. (main): Invalidate to EOF in more cases, by depending on the i_nocache_eof and o_nocache_eof flags. * doc/coreutils.texi (dd invocation): Clarify the alignment and persisted caveats on the example applying "nocache" to part of a file. * tests/dd/nocache_eof.sh: A new test. * tests/local.mk: Reference the new test. * NEWS: Mention the bug fix. Issue reported by Eric Bergen. 2017-10-24 Michael Stone <mstone@debian.org> doc: mention QUOTING_STYLE env var in ls man page * src/ls.c (usage): Mention QUOTING_STYLE with the --quoting-style option, and indicate it has lower precedence than that option. 2017-10-24 Pádraig Brady <P@draigBrady.com> maint: apply suggested cleanup to recent stty.c change This should have been part of commit v8.28-17-gf926f7c * src/stty.c (check_argument): Align line continuation chars, and ensure the function macro is immune to usage with if/else. Suggested by Jim Meyering and Paul Eggert. b2sum: fix crash with --check and truncated input * src/md5sum.c (split_3): Ensure we don't walk off the end of the string. * tests/misc/b2sum.sh: Add test cases. Fixes https://bugs.gnu.org/28860 2017-10-24 Pádraig Brady <P@draigBrady.com> stty: fix processing of options when -F is specified This was a latent issue that became significant with the addition of the -F option in FILEUTILS-3_16n-56-ge46a424 * src/stty.c (apply_settings): Refactor argument checking to a function macro. Augment the argument check to ignore NULLed out arguments (already processed -F). * NEWS: Mention the fix. * tests/misc/stty-invalid.sh: Add a test case. Fixes https://bugs.gnu.org/28859 2017-10-24 Pádraig Brady <P@draigBrady.com> timeout: fix a small race that would ignore command exit This fixes a regression from commit v8.26-39-g2f69dba * src/timeout.c (block_cleanup_and_chld): Rename from block_cleanup to indicate we also block SIGCHLD to avoid the race where SIGCHLD fires between waitpid() polling and sigsuspend() waiting for a signal. * NEWS: Mention the fix. 2017-10-24 Thomas Jarosch <thomas.jarosch@intra2net.com> timeout: fix regression when invoked with blocked SIGCHLD We inherit the signal mask from our parent process, therefore ensure SIGCHLD is not blocked. If SIGCHLD is blocked, sigsuspend() won't be interrupted when the child process exits and we hang until the timeout (SIGALRM). This fixes a regression from commit v8.26-39-g2f69dba * src/timeout.c (install_sigchld): Ensure SIGCHLD is unblocked. * NEWS: Mention the issue. 2017-10-02 Pádraig Brady <P@draigBrady.com> build: reinstate distribution of man pages man pages change little between systems, so falling back to distributed pages make sense when cross compiling or lacking perl. * man/local.mk: Add all man pages to EXTRA_DIST so that they're distributed in the generated tarball. Use the dummy-man page generator if cross compiling. Set TZ to avoid a distcheck failure where man pages used a diffent month than those rebuilt (with a .timestamp). * man/dummy-man: Only fall back to generating a stub if copying an existing man page fails. * man/help2man: Sync portable TZ=UTC0 specification from upstream help2man. * NEWS: Mention the build-related change. Fixes https://bugs.gnu.org/28574 2017-10-02 Pádraig Brady <P@draigBrady.com> maint: remove a duplicate entry from THANKS * .mailmap: Prefer Colin Watson's last used email address. 2017-09-25 Paul Eggert <eggert@cs.ucla.edu> copy: revert recent patch for vulnerable dirs I plan to propose a better patch to catch vulnerable parent directories. * NEWS, doc/coreutils.texi (Target directory): Document this. * src/cp.c, src/install.c, src/ln.c, src/mv.c: Do not include targetdir.h. (target_directory_operand): Remove test for vulnerable parents. * src/cp.c (stat_target_operand): Remove. All uses removed. * src/local.mk (noinst_HEADERS): Remove src/targetdir.h. (src_ginstall_SOURCES, src_cp_SOURCES, src_ln_SOURCES) (src_mv_SOURCES): Remove src/targetdir.c. * src/targetdir.c, src/targetdir.h: Remove. * tests/mv/vulnerable-target.sh: Remove. * tests/local.mk (all_root_tests): Remove it. 2017-09-24 Pádraig Brady <P@draigBrady.com> tests: fix test hang on case insenitive file systems * tests/split/filter.sh: Due to an invalid 'FILE = zero.in' construct trying to initialize a FILE variable, it would instead try to run the FILE command which is present on macOS 10.13 with APFS. We also remove a redundant duplicate test clause introduced during a rebase, and simplify the piped timeout command, to avoid requiring a subshell and associated quoting. * THANKS.in: Add the reporter Jack Howarth. Fixes https://bugs.gnu.org/28506 2017-09-21 Pádraig Brady <P@draigBrady.com> tests: avoid a false failure in expr test with UTF8 * tests/misc/expr.pl: Skip the quote varying tests in the multi-byte locales as these tests aren't that interesting in those locales. Also ERR_SUBST is already defined for some tests so awkward to redefine to munge UTF8 quotes to ASCII. 2017-09-20 Assaf Gordon <assafgordon@gmail.com> expr: add detailed syntax error messages Show offending argument instead of a generic 'syntax error' message. Suggested by Bernhard Voelker in https://bugs.gnu.org/28461#13 . * src/expr.c (syntax_error): Remove. (required_more_args): New function. (eval7, main): Replace syntax_error call with detailed die message. * tests/misc/expr.pl: Add tests for new messages. 2017-09-20 Pádraig Brady <P@draigBrady.com> maint: fix new syntax-check failures from HTTPS adjustments * cfg.mk [old_NEWS_hash]: update with `make update-NEWS-hash`. [sc_long_lines]: Avoid flagging (long) URLs in NEWS. * src/sort.c: Tweak to a shorter line. * src/tail.c: Likewise. Introduced in v8.28-4-gbe87d61 maint: fix new syntax check failures from copy restrictions * doc/coreutils.texi: Remove doubled word. * src/targetdir.c: Explicitly mark exported function. * tests/local.mk: This is not a root only test. * tests/mv/vulnerable-target.sh: Use returns_. Introduced in v8.28-3-g44ccd1c shred: reinstate --remove file name length obfuscation This was unintentionally removed in v8.27-60-g2ae1460 * src/shred.c (wipename): Interate through all name lengths. * tests/misc/shred-remove.sh: Add test cases. * NEWS: Mention the bug fix. Fixes https://bugs.gnu.org/28507 2017-09-19 Paul Eggert <eggert@cs.ucla.edu> maint: copy bootstrap from Gnulib all: prefer HTTPS in URLs copy: check for vulnerable target dirs * NEWS, doc/coreutils.texi (Target directory): Document this. * src/cp.c, src/install.c, src/ln.c, src/mv.c: Include targetdir.h. (target_directory_operand): Use the new targetdir_operand_type function to check for vulnerable target directories. * src/cp.c (stat_target_operand): New function. (target_directory_operand, do_copy): Use it. * src/local.mk (noinst_HEADERS): Add src/targetdir.h. (src_ginstall_SOURCES, src_cp_SOURCES, src_ln_SOURCES) (src_mv_SOURCES): Add src/targetdir.c. * src/targetdir.c, src/targetdir.h: New files. * tests/mv/vulnerable-target.sh: New test. * tests/local.mk (all_root_tests): Add it. 2017-09-14 Bernhard Voelker <mail@bernhard-voelker.de> ptx: avoid infloop due to zero-length matches with -S regex * src/ptx.c (find_occurs_in_text): Die with an appropriate error diagnostic when the given regular expression returns a match of length 0. * tests/misc/ptx.pl (S-infloop): Add a test. * NEWS (Bug fixes): Mention the fix. Fixes https://bugs.gnu.org/28417 which was detected using Symbolic Execution techniques developed in the course of the SYMBIOSYS research project at COMSYS, RWTH Aachen University. 2017-09-02 Pádraig Brady <P@draigBrady.com> maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. version 8.28 * NEWS: Record release date. 2017-09-01 Pádraig Brady <P@draigBrady.com> tests: fix false failure in recent ls --hyperlink test * tests/ls/hyperlink.sh: If the hostname or any part of the absolute path would be changed due to URL encoding, the test would fail. Therefore simplify to remove these components of the URL from consideration. maint: avoid a syntax-check failure * .gitignore: Remove lines indicated by sc_gitignore_redundant in a freshly checked out repo. 2017-08-31 Pádraig Brady <P@draigBrady.com> tests: exclude the expensive gnulib fts-tests * gnulib: The only change in this gnulib update is the tagging of the fts-tests module as longrunning, which gnulib-tool currently implicitly excludes. This test was seen to take about 20s and 285MB. Reported by Assaf Gordon on space restricted VMs. tty: don't distinguish input errors * src/tty.c (main): Don't distinguish ENOTTY from other errors, because isatty() doesn't portably distinguish errors. Solaris returns ENOENT for all input errors for example. Musl also returns ENOENT, and ENODEV may be returned as disscussed at: http://openwall.com/lists/musl/2017/04/06/6 * tests/misc/tty.sh: Adjust accordingly. tests: avoid printf '0*d' construct unsupported by ash * tests/ln/sf-1.sh: Generate specific length with space padding which is supported. Reported by Assaf Gordon on Alpine Linux. 2017-08-31 Pádraig Brady <P@draigBrady.com> tests: skip tests upon failure to set SELinux context On some setups the root:object_r:tmp_t context is invalid. This does indicate a limitation in the test framework, but for now we'll relax this to skipping the tests. The tests still run on a Fedora 25 system for example. * tests/cp/cp-a-selinux.sh: Upon chcon error, skip rather than ERROR. * tests/install/install-Z-selinux.sh: Likewise. * tests/misc/chcon.sh: Likewise. * tests/misc/runcon-no-reorder.sh: Likewise. * tests/misc/selinux.sh: Likewise. * tests/mkdir/restorecon.sh: Likewise. 2017-08-30 Kamil Dudka <kdudka@redhat.com> expr: fix a recently introduced memory leak * src/expr.c (eval6): Free memory allocated by mbs_logical_substr(). Introduced in v8.27-47-ga9f2be5. Detected by Coverity Analysis: Error: RESOURCE_LEAK: src/expr.c:851: leaked_storage: Variable "s" going out of scope leaks the storage it points to. 849| char *s = mbs_logical_substr (l->u.s, pos, len); 850| v = str_value (s); 851|-> } 852| freev (l); 853| freev (i1); 2017-08-30 Pádraig Brady <P@draigBrady.com> build: fix build of renameat2 on Alpine Linux * gnulib: The only change included in this update it the added check for the presence of <linux/fs.h> which is not present on Alpine Linux by default. tty: fix exit code with EINVAL * src/tty.c (main): All systems mention that isatty() man return EINVAL as well as (the POSIX compliant) ENOTTY. Also Centos 6 was seen to return EINVAL from ttyname(). * tests/misc/tty.sh: Fix a test issue where we assume standard input is always a valid tty. Reported by Assaf Gordon on OpenSolaris 5.10 and 5.11, and Centos 6.5 2017-08-30 Pádraig Brady <P@draigBrady.com> runcon: revert "disable use of the TIOCSTI ioctl" This reverts commit v8.27-97-g8cb06d4 because the setsid() fallback was not implemented correctly and disabling the ioctl was not a complete solution to the security issue of the child being passed the tty of the parent. Given runcon is not really a sandbox command, the advice is to use `runcon ... setsid ...` to avoid this particular issue. 2017-08-30 Pádraig Brady <P@draigBrady.com> stat: fix determination of max name length on BSD systems We only use one of statfs or statvfs for `stat -f` and on the BSDs we use statfs which doesn't have the f_namelen member. However on OpenBSD and later FreeBSD systems statfs does provide f_namemax, so use that. * NEWS: Mention the improvement for OpenBSD and FreeBSD. * m4/stat-prog.m4: Check for f_namemax in the statfs struct. * src/stat.c: Return '?' rather than '*' when we can't determine the max length of the file system. * tests/ln/sf-1.sh: This test was failing on all BSDs due to '*' being returned for the max length which caused the test to attempt to create 1Mi+1 names. The test now uses a short name when we can't determine the max name length to use. Reported by Assaf Gordon on various BSD based systems. 2017-08-29 Pádraig Brady <P@draigBrady.com> stat,tail: support "AAFS" AppArmor file system * src/stat.c (human_fstype): This file system is used to manage AppArmor policy in the Linux kernel. all: update gnulib submodule to latest * bootstrap: Sync timestamp update. 2017-08-29 Pádraig Brady <P@draigBrady.com> runcon: disable use of the TIOCSTI ioctl Similar to the issue with SELinux sandbox (CVE-2016-7545), children of runcon can inject arbitrary input to the terminal that would be run at the originating terminal privileges. The new libseccomp dependency is widely available and used on modern SELinux systems, but is not available by default on older systems like RHEL6 etc. * m4/jm-macros.m4: Check for libseccomp and warn if unavailable on selinux supporting systems. * src/local.mk: Link runcon with -lseccomp. * src/runcon.c (disable_tty_inject): A new function to disable use of the TIOCSTI using libseccomp, or with setsid() where libseccomp is unavailable. * tests/misc/runcon-no-inject.sh: A new test that uses python to make the TIOCSTI call, and ensure that doesn't succeed. * tests/local.mk: Reference the new test * NEWS: Mention the fix. Addresses http://bugs.gnu.org/24541 2017-08-29 Pádraig Brady <P@draigBrady.com> ls: support --hyperlink to output file:// URIs Terminals such as iTerm2 and VTE based terminals (as of version 0.49.1), support hyperlinks when passed terminals codes as described at: https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda * src/ls.c (gobble_file): Allocate an absolute file name to output. (quote_name): Output the absolute name with the appropriate codes. (file_escape): A new function to encode file names as per rfc8089. (main): Handle the new option and call the file_escape_init() helper. Disable --dired when --hyperlink is specified. (print_dir): Get the absolute file name here too, so that the directory name can be linkified. * NEWS: Mention the new feature. * tests/ls/hyperlink.sh: Add a new test. * tests/local.mk: Reference the new test. * doc/coreutils.texi (ls invocation): Describe --hyperlink. 2017-08-29 Pádraig Brady <P@draigBrady.com> doc: remove older ChangeLog items This saves about 0.5MB uncompressed from the tarball. * Makefile.am: Following on from v8.26-34-g2c64bc8 update the oldest documented version to 8.18 which is now about 5 years old. Also remove older ChangeLogs that were previously thought to be for changes not in the git history, but are adequately recorded upon review. * build-aux/ChangeLog-2007: Remove file. * lib/ChangeLog-2007: Likewise. * m4/ChangeLog-2007: Likewise. 2017-08-29 Colin Watson <cjwatson@debian.org> env: add --chdir option This is useful when chaining with other commands that run commands in a different context, while avoiding using the shell to cd, and thus having to consider shell quoting the chained command. * NEWS (New features): Document the new option. * doc/coreutils.texi (env invocation): Likewise. * src/env.c (usage): Likewise. (main): Implement the new option. * tests/misc/env.sh: Test the new option. 2017-08-29 Pádraig Brady <P@draigBrady.com> tests: don't fail tests when failing to write files * tests/sample-test: Use framework_error_ rather than fail=1 * tests/chown/deref.sh: Likewise. * tests/chown/preserve-root.sh: Likewise. * tests/cp/src-base-dot.sh: Likewise. * tests/dd/unblock-sync.sh: Likewise. * tests/du/2g.sh: Likewise. * tests/du/inacc-dest.sh: Likewise. * tests/du/one-file-system.sh: Likewise. * tests/fmt/goal-option.sh: Likewise. * tests/ln/hard-backup.sh: Likewise. * tests/ls/color-dtype-dir.sh: Likewise. * tests/ls/m-option.sh: Likewise. * tests/ls/stat-dtype.sh: Likewise. * tests/ls/time-style-diag.sh: Likewise. * tests/ls/x-option.sh: Likewise. * tests/misc/chcon.sh: Likewise. * tests/misc/nohup.sh: Likewise. * tests/misc/od-N.sh: Likewise. * tests/misc/sort-compress.sh: Likewise. * tests/misc/tac-continue.sh: Likewise. * tests/misc/time-style.sh: Likewise. * tests/mv/backup-dir.sh: Likewise. * tests/mv/dir2dir.sh: Likewise. * tests/rm/dir-no-w.sh: Likewise. * tests/rm/dir-nonrecur.sh: Likewise. * tests/rm/inaccessible.sh: Likewise. * tests/rm/interactive-always.sh: Likewise. * tests/rm/interactive-once.sh: Likewise. * tests/rm/rm3.sh: Likewise. * tests/rm/v-slash.sh: Likewise. * tests/touch/relative.sh: Likewise. 2017-08-29 Josef Cejka <jcejka@suse.com> Bernhard Voelker <mail@bernhard-voelker.de> df: avoid stat() for dummy file systems with -l When systemd is configured to automount a remote file system - see 'man systemd.automount(5)', then the mount point is initially mounted by systemd with the file system type "autofs". When the resource is used later on, then the wanted file system is mounted over that mount point on demand. 'df -l' triggered systemd to mount the file system because it called stat() on the mount point. Instead of single-casing "autofs" targets, we can avoid stat()ing all dummy file systems (which includes "autofs"), because those are skipped later on in get_dev() anyway. *src/df.c (filter_mount_list): Also skip dummy file systems unless the -a option or a specific target are given. * NEWS: Mention the fix. Fixes http://bugzilla.suse.com/show_bug.cgi?id=1043059 2017-08-29 Assaf Gordon <assafgordon@gmail.com> doc: add 'realpath usage examples' section * doc/coreutils.texi (Realpath usage examples): New section. 2017-08-29 Assaf Gordon <assafgordon@gmail.com> doc: fix realpath index entry The 'readlink' node has '@findex realpath' in it. This results in info doc/coreutils.info realpath incorrectly jumping to the 'readlink' node (instead of the 'realpath' node). Change it to @cindex instead. * doc/coreutils.texi (readlink): Change '@findex realpath' to @cindex. 2017-08-29 Assaf Gordon <assafgordon@gmail.com> realpath: improve usage description for --relative-{to,base} * src/realpath.c (usage): Explicitly say 'DIR' instead of 'FILE' for --relative-{to,base} parameters, to avoid giving the impression that regular files can be used as relative base. * doc/coreutils.texi (realpath): Same. 2017-08-25 Pádraig Brady <P@draigBrady.com> ls: consistently quote symlink targets * src/ls.c (gobble_file): Disable the optimization to avoid quoting if the symlink target itself needs quoting. This was introduced with the quoting alignment adjustments in v8.25-106-g01971c0 * tests/ls/symlink-quote.sh: Add a test. * tests/local.mk: Reference the test. * NEWS: Mention the fix. 2017-08-25 Pádraig Brady <P@draigBrady.com> tail: reinstate inotify use with FIFOs commit v8.27-44-g18f6b22 was too aggressive in only allowing inotify use with regular files. This will support responsive processing of `tail -f fifo | ...` * src/tail.c (any_non_regular): Adjust to allow FIFOs since inotify supports these well. * tests/tail-2/inotify-only-regular.sh: Adjust comment. 2017-08-19 Pádraig Brady <P@draigBrady.com> maint: avoid a syntax check failure * src/sort.c: Don't include stdio--.h as fopen() is no longer used. tests: fix issues on alpine linux * tests/misc/seq-epipe.sh: Remove stale comment. * tests/misc/sort-debug-warn.sh: musl doesn't indicate a set_locale() failure with missing locales, so avoid a test portion in that case. * tests/misc/wc-files0.sh: Avoid a bug on older ash implementations. Addresses http://bugs.gnu.org/28054 2017-08-17 Paul Eggert <eggert@cs.ucla.edu> ptx: fix some integer overflow bugs Problem reported by Lukas Zachar at: http://bugzilla.redhat.com/1482445 * src/ptx.c (line_width, gap_size, maximum_word_length) (reference_max_width, half_line_width, before_max_width) (keyafter_max_width, truncation_string_length, compare_words) (compare_occurs, search_table, find_occurs_in_text, print_spaces) (fix_output_parameters, define_all_fields): Use ptrdiff_t, not int, for object offsets and sizes. (WORD, OCCURS): Use ptrdiff_t, not short int. (WORD_TABLE, number_of_occurs, generate_all_output): Prefer ptrdiff_t to size_t where either will do. (total_line_count, file_line_count, OCCURS, fix_output_parameters) (define_all_fields): Use intmax_t, not int, for line counts. (DELTA): Remove. All uses changed. (OCCURS, find_occurs_in_text, fix_output_parameters): Use int, not size_t, for file indexes. (tail_truncation, before_truncation, keyafter_truncation) (head_truncation, search_table, define_all_fields) (generate_all_output): Use bool for booleans. (digest_word_file, find_occurs_in_text): Use x2nrealloc instead of checking for overflow by hand. (find_occurs_in_text, fix_output_parameters, define_all_fields): Omit unnecessary cast. (fix_output_parameters): Don�<80><99>t assume integers fit in 11 digits. (fix_output_parameters, define_all_fields): Use sprintf return value rather than calling strlen. (define_all_fields): Do not rely on sprintf to generate a string that may contain more than INT_MAX bytes. (main): Use xstrtoimax, not xstrtoul. Use xnmalloc to catch integer overflow. nohup: simplify by using fcntl * src/nohup.c: Do not include cloexec.h. (main): Use fcntl rather than dup + set_cloexec_flag. sort: use pthread_sigmask, not sigprocmask POSIX says sigprocmask has unspecified behavior in a multithreaded program like �<80><98>sort�<80><99>. * src/sort.c (pthread_sigmask) [GNULIB_defined_pthread_functions]: New macro, for use when �<80><98>sort�<80><99> is not multithreaded. (cs_enter, cs_leave): Use it. Pass address, not value, as this is typically a tad faster. All callers changed. sort: minor cleanups * src/sort.c (move_fd): Rename from move_fd_or_die, since it no longer can die. sort: file descriptor discipline Use O_CLOEXEC when creating file descriptors, so that subsidiary processes do not inherit file descriptors that they do not need. This is helpful for �<80><98>sort�<80><99>, as it is a multithreaded program that forks and execs. * bootstrap.conf (gnulib_modules): Add mkostemp, open, pipe2. * src/sort.c (create_temp_file): Open temporary file with O_CLOEXEC. (stream_open): Open the stream with O_CLOEXEC. (pipe_fork): Create the pipe with O_CLOEXEC. (check_output): Open the output file with O_CLOEXEC. (main): Use xfopen/xfclose to handle --files0-from, so that O_CLOEXEC is used properly. This is simpler anyway. * tests/misc/sort-files0-from.pl: Adjust to change in diagnostic wording. build: update gnulib submodule to latest 2017-08-14 Pádraig Brady <P@draigBrady.com> kill: fix signal number to name lookup on AIX * src/operand2sig.c (operand2sig): AIX uses a different bit pattern in the returned status from the wait() functions and from shells. Therefore hardcode the selection of the lower bits of the number. * NEWS: Mention the fix. build: use the appropriate single file include option with xlc * configure.ac: Set USE_XLC_INCLUDE when __xlc__ is defined. * src/local.mk: Use it to select the appropriate include option. Reported by Michael Felt. tests: avoid false failures on AIX * tests/ln/sf-1.sh: Limit the symlink size to 1MiB to avoid memory exhaustion seen on NFS on AIX, giving: + printf '%0*d' 4294967296 0 + ./tests/ln/sf-1.sh: line 38: printf: warning: 0: Result too large * tests/id/setgid.sh: Skip the test when the adjusted gid would equal 4294967295, as that's reserved on AIX. Reported by Michael Felt. sort: handle musl locale differences in --debug reporting * src/sort.c (main): Don't assume hard_LC_COLLATE implies a successful setting of the locale as musl defaults to UTF8 when failing to set the specified locale. * tests/misc/sort-debug-warn.sh: Adjust for the now separated locale debug info and map the musl specific message back to the common case. Addresses https://bugs.gnu.org/28054 seq: produce consistent error messages upon write error * src/seq.c (io_error): Use the same error message as would be generated at exit time when closing the stdout stream. The inconsistency was added with commit v8.25-26-gc92585b. This was noticed due to an inconsistency in the expected error message generated by seq on musl libc. Addresses https://bugs.gnu.org/28054 tests: fix false failure with large printf formats * tests/misc/printf-surprise.sh: With musl libc the large printf format does succeed, outputting data. To avoid SIGPIPE being generated we ignore that signal and then handle the subsequent EPIPE error. Addresses https://bugs.gnu.org/28054 2017-08-12 Jim Meyering <meyering@fb.com> build: adjust warning options to work with latest GCC * configure.ac: Disable some new warnings to avoid false positives. Building with warnings enabled and latest gcc would evoke build failure without these changes. Disable the following in coreutils proper: -Wformat-overflow=2 -Wformat-truncation=2, and disable these for gnulib: -Wformat-truncation=2 -Wduplicated-branches gnulib: update to latest and adjust gl/modules/tempname.diff * gnulib: Update to latest. * gl/modules/tempname.diff: This patch failed to apply. Adjust it to reflect removal of the secure_getenv dependency. chroot: fix typo in preceding change: didn't compile * src/chroot.c (usage): Add backslashes. 2017-08-10 Jim Meyering <meyering@fb.com> doc: correct technicality in chroot's --help output * src/chroot.c (usage): Use correct quoting in descriptive diagnostic. We would run `"$SHELL" -i`, not `${SHELL} -i`. 2017-08-09 Assaf Gordon <assafgordon@gmail.com> doc: fix join example * doc/coreutils.texi (join invocation): Fix incorrect output in example. Reported by Phlosioneer in https://bugs.gnu.org/28014 . 2017-08-04 Paul Eggert <eggert@cs.ucla.edu> build: update gnulib submodule to latest 2017-08-03 Paul Eggert <eggert@cs.ucla.edu> copy: more-accurate warning about destruction * src/copy.c (copy_internal): * tests/cp/backup-is-src.sh, tests/mv/backup-is-src.sh: Say "might destroy", not "would destroy". 2017-08-03 Pádraig Brady <P@draigBrady.com> maint: avoid a syntax-check failure * src/shred.c (wipename): As per the comment, the arguments to error() are sufficiently quoted, so split the call over multiple lines to avoid the syntax-check. 2017-08-02 Paul Eggert <eggert@cs.ucla.edu> build: update gnulib submodule to latest 2017-08-01 Paul Eggert <eggert@cs.ucla.edu> copy: go back to failing 'cp --backup a~ a' Suggested by Kamil Dudka in: http://lists.gnu.org/archive/html/coreutils/2017-07/msg00072.html * NEWS: Document the changed nature of the fix. * doc/coreutils.texi, tests/cp/backup-is-src.sh: * tests/mv/backup-is-src.sh: Revert previous change. * src/copy.c (source_is_dst_backup): New function. (copy_internal): Use it. Fail instead of falling back on numbered backups when it looks like the backup will overwrite the source. Although this reintroduces a race, it's more compatible with previous behavior. 2017-07-31 Paul Eggert <eggert@cs.ucla.edu> copy: sanity-check --suffix * src/cp.c, src/install.c, src/ln.c, src/mv.c (main): Use set_simple_backup_suffix, to sanity-check the user-supplied backup suffix. copy: make backup files more reliably * NEWS, doc/coreutils.texi (Backup options): Document the change. * bootstrap.conf (gnulib_modules): Add backup-rename. * src/copy.c (copy_internal): Silently switch to numbered backups if a simple backup might lose data. Use backup_file_rename to avoid races with numbered backups. * tests/cp/backup-is-src.sh, tests/mv/backup-is-src.sh: Adjust to match new behavior. shred: avoid rename race Use renameat2 to avoid a rename race condition, on recent-enough GNU/Linux. * bootstrap.conf (gnulib_modules): Add renameat2. * src/shred.c: Include renameat2.h. (wipename): Use renameat2 instead of rename. build: update gnulib submodule to latest 2017-07-25 Jim Meyering <meyering@fb.com> maint: fix grammar in a shred.c comment * src/shred.c: Remove spurious "to" in an old comment. 2017-07-23 Pádraig Brady <P@draigBrady.com> maint: fix recent syntax-check failures * .gitignore: Add /lib/utime.h from the recent gnulib update. * src/nproc.c (usage): Adjust spacing to placate help2man. shred: remove redundant zeroing of freed memory * src/shred.c (dopass): shred used to read the input file, and so needed to ensure internal memory was cleared. This is no longer the case since SH-UTILS-1_16f-260-gf381610 so avoid this redundant clearing. (do_wipefd): Likewise. * NEWS: Remove the recent mention of this issue. maint: resync with blake2 upstream * src/blake2/blake2-impl.h: Don't use the equivalent explicit_bzero(). tests: avoid a false failure on AIX * tests/misc/sync.sh: Normalize the error messages when syncing a non read/write directory, as AIX gives the "Is a directory" error. Also ensure that sync(1) returns an error for this case on all systems. 2017-07-20 Paul Eggert <eggert@cs.ucla.edu> shred: use explicit_bzero * NEWS: Document this. * bootstrap.conf (gnulib_modules): Add explicit_bzero. * gl/lib/randint.c (randint_free): * gl/lib/randread.c (randread_free): * src/blake2/blake2-impl.h (secure_zero_memory): * src/shred.c (dopass, do_wipefd): Prefer explicit_bzero to memset when erasing secrets. build: update gnulib submodule to latest 2017-07-10 Andreas Schwab <schwab@linux-m68k.org> nproc: fix indentation of usage output * src/nproc.c (usage): Align output. 2017-07-10 Jim Meyering <meyering@fb.com> groups: do not exit early Most programs take care to operate on all command-line-specified operands before exiting. That is an important feature that allows to identify all problems with the first run. However, groups would exit upon the first problematic user name. Bug introduced via commit v6.10-56-g167b8025ac. * src/groups.c (main): Do not exit immediately upon error. * tests/misc/groups-process-all.sh: New file. Test for this. * tests/local.mk (all_tests): Add it. * NEWS (Bug fixes): Mention this. 2017-07-08 Jim Meyering <jim@meyering.net> tests: groups-dash.sh: avoid false failure * tests/misc/groups-dash.sh: Avoid false failure on a system for which "none" is a valid user name. The first invocation would succeed, and the second would fail with "groups: �<80><98>--�<80><99>: no such user". Use a user name that cannot exist. doc: tweak wording * NEWS (Bug fixes): Tweak wording of the mv/cp-vs-symlink-ownership entry and the one about df. 2017-06-28 Assaf Gordon <assafgordon@gmail.com> expr: add multibyte support Discussed in https://bugs.gnu.org/26779 . * NEWS: Mention the improvement. * bootstrap.conf: Add gnulib modules mbslen,mbschr. * src/expr.c (mbs_logical_substr): New function to return a substring based on logical character positions (instead of bytes). (mbs_logical_cspn): Similar to strcspn/mbscspn, but returns number of logical characters instead of byte offset. (mbs_offset_to_chars): New function to return number of logical characters fitting in a given byte offset. (docolon): Report matched logical characters instead of bytes. (eval6): For length/substr/index operations, use logical characters instead of bytes by calling the above new functions. * tests/misc/expr.pl: Repeat all tests with non-C locale to detect any regressions. * tests/misc/expr-multibyte.pl: New tests with multibyte input. * tests/local.mk: Add new test file. 2017-06-21 Jim Meyering <meyering@fb.com> maint: avoid spurious "make distcheck" failure When the generated file, doc/constants.texi, happens to be older than doc/coreutils.info, it will not be updated until/unless its generated contents change. This is due to way that rule is careful to update the file, to avoid provoking a pointless rerunning of makeinfo. Note that this does not happen when one first runs "make distclean", as recommended in README-release. However, I sometimes run it as a more-rigorous "make check", and shouldn't have to manually run "make distclean" first, in that case. Before this change, one could reproduce the failure by running `touch -dyesterday doc/constants.texi && make distcheck`. It would fail with "makeinfo: could not open ../../doc/coreutils.info-t for writing: Permission denied" * Makefile.am (dist-hook): Touch the two generated files, so that they cannot be out of date wrt doc/coreutils.texi. 2017-06-17 Pádraig Brady <P@draigBrady.com> maint: use C99 for loop initial declarations where possible This results in a net reduction of about 120 lines. tail: only use inotify with regular files * src/tail.c (any_non_regular): A new function to check passed files. (main): Use the above to skip inotify if any non regular files passed like /dev/tty or /dev/ttyUSB0 etc. * tests/tail-2/inotify-only-regular.sh: A new test. * tests/local.mk: Reference the new test. * NEWS: Mention the bug fix. Fixes http://bugs.gnu.org/21265 and http://bugs.gnu.org/27368 tail: with -f don't warn if doing a blocking read of a tty * src/tail.c: (main): Only issue the warning about -f being ineffective when we're not going into simple blocking mode. * tests/tail-2/follow-stdin.sh: Ensure the warning is output correctly. Fixes http://bugs.gnu.org/27368 2017-06-11 Pádraig Brady <P@draigBrady.com> tail: exit promptly when output no longer writable This will support use cases like: tail -f file.log | grep -q trigger && process_immediately * src/tail.c (check_output_alive): A new function that uses select on fifos or pipes to detect if they're broken. (tail_forever): Call check_output_alive() periodically. (tail_forever_inotify): Merge the select() call from check_output_alive() into the select() originally present for the --pid case, and adjust accordingly. * tests/tail-2/pipe-f.sh: Add test cases. * NEWS: Mention the improvement. 2017-06-11 Jim Meyering <meyering@fb.com> maint: update to work with GCC7's -Werror=implicit-fallthrough=5 * src/system.h (FALLTHROUGH): Define. * src/cp.c (main): Use new FALLTHROUGH macro in place of comments. * src/basename.c (main): Likewise. * src/dircolors.c (append_quoted): Likewise. * src/echo.c (main): Likewise. * src/fold.c (main): Likewise. * src/join.c (main): Likewise. * src/kill.c (main): Likewise. * src/ls.c (get_funky_string, gobble_file): Likewise. * src/sort.c (parse_field_count, main): Likewise. * src/stat.c (print_it): Likewise. * src/tail.c (parse_obsolete_option): Likewise. * src/test.c (posixtest): Likewise. * src/wc.c (wc): Likewise. * src/who.c (main): Likewise. 2017-06-07 Pádraig Brady <P@draigBrady.com> tail: with --pid, ensure all inotify events are processed * NEWS: Mention the bug fix. * src/tail.c (tail_forever_inotify): With --pid, avoid waiting for new events if there are still events to process. * tests/tail-2/inotify-dir-recreate.sh: Adjust to trigger. tests: fix issues with recently added tail test * tests/tail-2/inotify-dir-recreate.sh: Skip when inotify is not usable. Also remove a bash specific &> construct. 2017-06-03 Pádraig Brady <P@draigBrady.com> copy: don't fail when unable to chown symlinks * src/copy.c (copy_internal): Honor the x->require_preserve flag for symlinks as we do for ordinary files, so we don't exit with failure upon failure to chown a symbolic link. * NEWS: Mention the bug fix. 2017-05-29 Sebastian Kisela <skisela@redhat.com> doc: mention `setpriv --no-new-privs` feature in runcon info * doc/coreutils.texi (runcon invocation): Mention setpriv usage. Discussed at https://bugzilla.redhat.com/1360903 2017-05-18 Pádraig Brady <P@draigBrady.com> mv: distinguish copy and rename operations with --verbose * src/copy.c (copy_internal): In x->move_mode distinguish whether we're copying, creating directory, or renaming. * tests/mv/backup-dir.sh: Adjust to new output. * tests/mv/mv-n.sh: Likewise. * tests/mv/mv-special-1.sh: Likewise. * NEWS: Mention the improvement. Fixes http://bugs.gnu.org/26971 2017-05-11 Prateek saxena <prateeksaxena2@gmail.com> uptime: remove inconsistent AM/PM from current time * src/uptime.c (main): 00-23 was always used for the hour component of the current time, so remove the AM/PM output (which was only present in some locales anyway). Also add seconds to the time to be more consistent with the usual procps-ng uptime implementation on GNU/Linux. * NEWS: Mention the fix. Fixes http://bugs.gnu.org/26783 2017-05-04 Pádraig Brady <P@draigBrady.com> maint: fix various typos in recent commits * NEWS: Grammar fixes. * HACKING: Likewise. 2017-05-04 Jaak Ristioja <jaak.ristioja@cyber.ee> doc: Fixed typo in timeout man page * man/timeout.x: Correct spelling of "currently". Fixes http://bugs.gnu.org/26762 2017-04-30 Pádraig Brady <P@draigBrady.com> doc: update the instructions for generating a coverage report * HACKING: Change from explicit instructions to using gnulib provided coverage testing targets. Also include instructions for adding root only tests to the report. Fixes http://bugs.gnu.org/26709 2017-04-27 Paul Eggert <eggert@cs.ucla.edu> dd: simplify translator�<80><99>s jobs * src/dd.c (print_xfer_stats): Format the SI units directly, without translating them, to simplify the translators�<80><99> jobs. See Bug#26621. 2017-04-27 Pádraig Brady <P@draigBrady.com> date,touch: test and document large TZ security issue Add a test for CVE-2017-7476 which was fixed in gnulib at: http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=94e01571 * tests/misc/date-tz.sh: Add a new test which overwrites enough of the heap to trigger a segfault, even without ASAN enabled. * tests/local.mk: Reference the new test. * NEWS: Mention the bug fix. 2017-04-27 Pádraig Brady <P@draigBrady.com> build: update gnulib submodule to latest * .gitignore: Add new entry as indicated by `make syntax-check`. 2017-04-24 Paul Eggert <eggert@cs.ucla.edu> dd: status=progress outputs "6 s", not "6.00001 s" Problem reported by Benno Schulenberg (Bug#26621). * NEWS: Document this. * src/dd.c (print_xfer_stats): With status=progress, format times with %.0f rather than %g. Improve translator comments. 2017-04-22 Paul Eggert <eggert@cs.ucla.edu> build: update gnulib submodule to latest maint: remove unused functions and constants These were found by clang. * gl/lib/rand-isaac.c (min): * gl/lib/randint.c (shift_right): * src/md5sum.c (algorithm): Remove; unused. date: adjust to gnulib parse-datetime changes * doc/coreutils.texi (Options for date): Capitalize a sentence. * tests/misc/date-debug.sh: Adjust --debug output to match recent changes to Gnulib�<80><99>s parse-datetime module. build: update gnulib submodule to latest * gl/modules/tempname.diff: Update to match current Gnulib. 2017-04-18 Bogdan Drozdowski <bogdandr@op.pl> shred: fix invalid pattern generation for certain sizes * src/shred.c (fillpattern): Fix the "off by one" issue when testing whether we have enough space to copy the already written portion of the buffer to the remainder of the buffer. Specifically for buffer sizes that are (3*(2^x))+1, i.e. 7,13,... we both use an uninitialized byte and invoke undefined behavior in memcpy() operation on overlapping memory regions. * tests/misc/shred-passes.sh: Add an invocation that will trigger either valgrind UMR, or ASAN like: ERROR: AddressSanitizer: memcpy-param-overlap: memory ranges #1 0x403065 in fillpattern src/shred.c:293 A direct test is awkward due to the random writes surrounding the problematic pattern writes. Fixes http://bugs.gnu.org/26545 2017-04-17 Bo Rydberg <bolry@hotmail.com> doc: fix awk example for getting penultimate field * doc/coreutils.texi (cut invocation): Add required brackets. Fixes http://bugs.gnu.org/26519 2017-04-06 Sebastian Kisela <skisela@redhat.com> tail: revert to polling if a followed directory is replaced * src/tail.c (tail_forever_inotify): Add the IN_DELETE_SELF flag when creating watch for the parent directory. After the parent directory is removed, an event is caught and then we switch from inotify to polling mode. Till now, inotify has always frozen because it waited for an event from a watched dir, which has been already deleted and was not added again. * tests/tail-2/inotify-dir-recreate.sh: Add a test case. * tests/local.mk: Reference the new test. * NEWS: Mention the bug fix. Fixes http://bugs.gnu.org/26363 Reported at https://bugzilla.redhat.com/1283760 2017-04-06 Pádraig Brady <P@draigBrady.com> maint: fix syntax-check issues in previous tty commit * src/tty.c: Avoid EXIT_FAILURE to be more descriptive and to placate sc_some_programs_must_avoid_exit_failure. 2017-04-05 Paul Eggert <eggert@cs.ucla.edu> tty: handle misconfigured namespaces On some platforms, isatty succeeds but ttyname fails. POSIX does not seem to allow this, but there it is. Problem reported by Christian Brauner (Bug#26371). While we�<80><99>re at it, check for errors more carefully and return a new exit status 4 if stdin is closed or a similar error occurs. * doc/coreutils.texi (tty invocation): Document new behavior. * init.cfg (stderr_fileno_): Don't assume have_input_tty is not in the environment. * src/tty.c (TTY_STDIN_ERROR): New constant. (main): Exit with nonzero status if there is a usage error, like other coreutils programs. Check for error in getting stdin type. * tests/misc/tty.sh: New file. * tests/local.mk (all_tests): Add it. 2017-04-03 Pádraig Brady <P@draigBrady.com> doc: refactor and update expand and unexpand --help * src/expand-common.c (emit_tab_list_info): A new function to output the extended info on --tab=LIST, including the new '+' and '/' prefixes. * src/expand-common.h: Declare the above. * src/expand.c (usage:): Call emit_tab_list_info and match alignment with that used in unexpand --help. * src/unexpand.c (usage): Likewise. 2017-04-03 Jacob Keller <jacob.e.keller@intel.com> expand,unexpand: add support for incremental tab stops Support --tabs="1,+8" which is equivalent to --tabs="1,9,17,..." useful for viewing unified diff output with its 1 character gutter for example. * doc/coreutils.texi ({expand,unexpand} invocation): Document, using diff processing as the example. * src/expand-common.c (set_increment_size): Update the new increment_size global. (parse_tab_stops): Handle the new '+' prefix. (finalize_tab_stops): Verify both '+' and '/' prefixes are not used together. * tests/misc/expand.pl: Add test cases. * NEWS: Mention the new feature. 2017-03-30 Paul Eggert <eggert@cs.ucla.edu> sort: update comment * src/sort.c: Update identifiers in comment. 2017-03-30 Chris Davies <chris@roaima.co.uk> doc: clarify in dd man page that bs= overrides [io]bs= * src/dd.c (usage): Add the extra info. Reported in https://bugs.debian.org/859021 2017-03-28 Ludovic Courtès <ludo@gnu.org> tests: avoid false ulimit failure on some systems * tests/misc/cut-huge-range.sh: On some systems returns_ may use more memory, so incorporate that in the determination of the ulimit value to use. Noticed on ARMv7 with bash-4.4.12, and x86_64 with bash-4.2.37. Fixes http://bugs.gnu.org/26253 2017-03-28 Pádraig Brady <P@draigBrady.com> maint: avoid syntax check failure with wrapped returns_ * cfg.mk (sc_prohibit_env_returns): Allow wrapped calls to return_ of the form: `wrapper_ returns_ ...` which is needed with the following commit. 2017-03-28 Michael Heimpold <mhei@heimpold.de> split: add new --hex-suffixes option * doc/coreutils.texi (split invocation): Document the new option. * src/split.c (usage): Likewise. (main): Process the new option much like --numeric-suffixes, but with an adjusted alphabet. * tests/split/numeric.sh: Refactor to support --hex mode. * NEWS: Mention the new feature. 2017-03-28 Pádraig Brady <P@draigBrady.com> md5sum,b2sum,sha*sum: don't erroneously trigger BSD reversed mode * src/md5sum.c (split_3): Verify hex digits internally before triggering the global bsd_reversed mode flag. (bsd_split_3): Likewise. * tests/misc/md5sum-bsd.sh: Add a test case. * NEWS: Mention the bug fix. Fixes http://bugs.gnu.org/26263 2017-03-27 Philipp Thomas <pth@suse.de> df: avoid querying excluded file systems * src/df.c (filter_mount_list): Avoid stat() on explicitly excluded file systems, which is especially significant in cases like `-x nfs` which may hang. * NEWS: Mention the bug fix. 2017-03-26 Pádraig Brady <P@draigBrady.com> maint: avoid a static analysis warning in expand-common * src/expand-common.c (next_file): We're dependent on calling this function with NULL to initialize things appropriately. So enforce this with assert(), which avoids a warning from clang-anaylzer. split: process more efficiently when filters exit early * src/split.c (bytes_split): Don't write to an existing filter if it has exited. When filters exit early, skip input data if possible. Refactor out 2 redundant variables. * tests/split/filter.sh: Improve test coverage given the new more efficient processing. Also use a 10TB file to expand the file systems tested on. 2017-03-26 Pádraig Brady <P@draigBrady.com> split: ensure input is processed when filters exit early commit v8.25-4-g62e7af0 introduced the issue as it broke out of the processing loop irrespective of the value of new_file_flag which was used to indicate a finite number of filters or not. For example, this ran forever (as it should): $ yes | split --filter="head -c1 >/dev/null" -b 1000 However this exited immediately due to EPIPE being propagated back through cwrite and the loop not considering new filters: $ yes | split --filter="head -c1 >/dev/null" -b 100000 Similarly processing would exit early for a bounded number of output files, resulting in empty data sent to all but the first: $ truncate -s10T big.in $ split --filter='head -c1 >$FILE' -n 2 big.in $ echo $(stat -c%s x??) 1 0 I was alerted to this code by clang-analyzer, which indicated dead assigments, which is often an indication of code that hasn't considered all cases. * src/split.c (bytes_split): Change the last condition in the processing loop to also consider the number of files before breaking out of the processing loop. * tests/split/filter.sh: Add a test case. * NEWS: Mention the bug fix. 2017-03-11 Pádraig Brady <P@draigBrady.com> tests: avoid a false failure on OS X 10.5.8 * tests/misc/sort-debug-keys.sh: Disparate LC_CTYPE and LC_MESSAGES are not supported, with the result LC_MESSAGES=C is used throughout. Therefore just set LC_ALL in the test, and normalize the message variants with sed. Reported and tested by J Rogowsky. build: fix missing renameat() on OS X 10.5.8 * bootstrap.conf: Depend on renameat. Reported and tested by J Rogowsky. Fixes http://bugs.gnu.org/26044 2017-03-10 Paul Eggert <eggert@cs.ucla.edu> tests: port to tzdb-2017a Problem reported by Bernhard Voelker in: http://lists.gnu.org/archive/html/coreutils/2017-03/msg00026.html * tests/misc/date-debug.sh: Port test to tzdb 2017a, and future-proof the America/Belize test. 2017-03-09 Pádraig Brady <P@draigBrady.com> build: for factor use C in more cases for arm64 and ppc64 * src/longlong.h: Sync from gmp repo incorporating: Use asm-free umul_ppmm() on arm64 and ppc64. doc: rearrange a recent bug entry to an improvement in NEWS * NEWS: The stat,tail change was an improvement, not a bug fix. * cfg.mk [old_NEWS_hash]: update with `make update-NEWS-hash`. maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. version 8.27 * NEWS: Record release date. build: update gnulib submodule to latest Removes extraneous parse-datetime.c generated during build stat,tail: support "RDT" Linux kernel control file system * src/stat.c (human_fstype): This file system is the user interface for resource allocation in Intel's Resource Director Technology. doc: spelling fix for recent doc addition * doc/coreutils.texi (join invocation): s/preceeding/preceding/. 2017-03-08 Bernhard Voelker <mail@bernhard-voelker.de> build: avoid redundant build of tr with --enable-single-binary * src/local.mk [check-duplicate-no-install]: Depend on the single-binary tr, or the system tr, as the edge case where these are not available only result in the sanity check being effectively ignored. 2017-03-08 Assaf Gordon <assafgordon@gmail.com> build: fix 'install-html' target Switching to non-recursive makefiles broke the 'install-html' target: The gettext plumbing requires an 'install-html' target in po/Makefile. This was fixed in gettext v0.19.8.1-41-ge5a008a, but packages using older gettext need to manually patch po/Makefile.in.in. Reported (for 'sed') and suggested fix by Eric Blake in https://bugs.gnu.org/25690 . * bootstrap.conf (bootstrap_epilogue): Add 'install-{html,pdf,dvi,ps}' targets to po/Makefile.in.in (if needed). 2017-03-04 Pádraig Brady <P@draigBrady.com> maint: bump makeinfo --version requirement to 6.1 * bootstrap.conf: s/4.13/6.1/ as versions previous to that generated invalid html with interspersed <span> tags that were visible to the user. Version 6.1 is available for a year now, and is available in most distros. 2017-03-04 Bernhard Voelker <mail@bernhard-voelker.de> doc: avoid makeinfo warning makeinfo issues the following: doc/coreutils.texi:6568: warning: @sc argument all uppercase,\ thus no effect. * doc/coreutils.texi (join invocation): Remove the @sc macro around the all uppercase "GNU". 2017-03-03 Pádraig Brady <P@draigBrady.com> build: update gnulib submodule to latest Fixes a test-lock failure on MacOS timeout: handle multiple children on solaris * src/timeout.c (install_sigchld): A new function to install the SIGCHLD handler using sigaction() rather than signal(), because with the latter on solaris the signal handler is reset to default and thus sigsuspend() only returns for the first finished child. Reported by Assaf Gordon. tests: avoid a spurious failure on older debian * tests/misc/cut-huge-range.sh: Bump up the ulimit, to avoid a false failure due hitting the previously detected ulimit. Reported by Assaf Gordon. build: fix libstdbuf build on AIX 7 * src/libstdbuf.c: undef malloc so as libstdbuf is not linked with gnulib, and anyway the replacement is never needed since we never malloc(0). Reported by Assaf Gordon. 2017-03-02 Assaf Gordon <assafgordon@gmail.com> doc: expand 'join' info section * doc/coreutils.texi (join invocation): Expand section to add examples and more details. Suggested by Dan Jacobson in https://bugs.gnu.org/25870 2017-03-01 Pádraig Brady <P@draigBrady.com> doc: give a stronger security warning in md5/sha1 man pages * man/md5sum.x: Give a more direct warning againt the use of this hash algorithm for security purposes. * man/sha1sum.x: Likewise. Suggested by Jim Meyering. expand: avoid an extraneous warning on 32 bit * src/expand-common (parse-tab-stops): Exit earlier upon overflow so another warning isn't issued (on 32 bit) in add_tab_stop(). Flagged in https://hydra.nixos.org/build/49499970 doc: indicate sha1 has the same limitations as md5 * doc/coreutils.texi (sha1sum invocation): Given that a SHA-1 preimage attack has occurred as documented at http://shattered.io/, document sha1sum as having the same limitations as md5sum. (md5sum): Parameterize the warning for use in both cases. * man/md5sum.x: Mention b2sum(1) as a more secure alternative. * man/sha1sum.x: Give the same warning as done for md5sum(1). maint: avoid a -Werror=null-dereference with GCC-6.3.1 * src/stty.c (sane_mode): Assert to inform the compiler we know the pointer will be valid. expand,unexpand: support specifying a trailing tab size * doc/coreutils.texi (expand invocation): Document the feature. (unexpand invocation): Likewise. * src/expand-common.c (extend_size): A new global to use when the last tab stop is prefixed by '/'. (set_extend_size): A new function to validate and set the new extend_size global. (parse_tab_stops): Call set_extend_size() for '/' prefixes. (finalize_tab_stops): Ensure a single specified '/' is treated like a standard tabsize, but also ensure that when '/' is specified with a single other entry that we process as a list rather than a tab size. (get_next_tab_stop): Use the tab size if set, for items after the user specified tab position list. * tests/misc/expand.pl: Add test cases * NEWS: Mention the new feature. Fixes http://bugs.gnu.org/25540 2017-02-26 Pádraig Brady <P@draigBrady.com> nproc: support OMP_THREAD_LIMIT to set a max value This comes from the latest gnulib. Also handling of OMP_NUM_THREADS has been adjusted to support comma separated values indicating a nesting level, in which case the first value is taken. Also OMP_NUM_THREADS=0 is now ignored instead of being treated as 1, to match the behavior of libgomp. * NEWS: Mention the OMP_THREAD_LIMIT improvement, and OMP_NUM_THREADS now handling nested values. * doc/coreutils.texi (nproc invocation): Describe OMP_THREAD_LIMIT as a way to set the max value, with OMP_THREAD_LIMIT setting the min. * tests/misc/nproc-override.sh: A new test to exercise the updated gnulib code with all combinations of these OMP variables. * tests/local.mk: Reference the new test. 2017-02-26 Pádraig Brady <P@draigBrady.com> build: update gnulib submodule to latest 2017-02-23 Pádraig Brady <P@draigBrady.com> doc: add NEWS for an improvement to dd in the last release * NEWS: Mention the avoidance of the gotcha with specifying a hex constant like count=0x1000 etc. as that previously was silently interpreted as 0. 2017-02-23 Pádraig Brady <P@draigBrady.com> cp: set SELinux context for --parents directories * src/copy.c (set_process_security_ctx, set_file_security_ctx): Export for use in cp.c. * src/copy.h: Likewise. * src/cp.c (make_dir_parents_private): Call the exported functions to set the security context for new and updated directories. * tests/cp/cp-a-selinux.sh: Add a test case. Fixes http://bugs.gnu.org/25378 2017-02-18 Pádraig Brady <P@draigBrady.com> maint: tweaks so syntax tests pass for previous commit * .gitignore: placate sc_gitignore_redundant. * po/POTFILES.in: placate sc_po_check. 2017-02-16 Bernhard Voelker <mail@bernhard-voelker.de> doc: avoid makeinfo warning Commit v8.26-38-g99deaff introduced this warning: MAKEINFO doc/coreutils.info ./doc/coreutils.texi:10268: \ warning: `.' or `,' must follow @xref, not `@'. * doc/coreutils.texi (readlink invocation): Add '.' after @xref macro. 2017-02-16 Paul Eggert <eggert@cs.ucla.edu> maint: xsetmode renamed to xbinary-io * bootstrap.conf, src/base64.c, src/cat.c, src/cksum.c: * src/head.c, src/md5sum.c, src/od.c, src/split.c, src/sum.c: * src/tac.c, src/tail.c, src/tee.c, src/tr.c, src/wc.c: Adjust to renaming of the xsetmode module to xbinary-io, and of the xsetmode function to xset_binary_mode. build: update gnulib submodule to latest 2017-02-15 Paul Eggert <eggert@cs.ucla.edu> maint: use xsetmode, not xfreopen This fixes a bug noted by Eric Blake. Code was using xfreopen to change files to binary mode, but this fails for stdout when in append mode. Such code should use xsetmode instead. This affects only the port on platforms like MS-Windows which distiguish text from binary I/O. * bootstrap.conf (gnulib_modules): Remove xfreopen and add xsetmode. Sort. * src/base64.c (main): * src/cat.c (main): * src/cksum.c (cksum): * src/head.c (head_file, main): * src/md5sum.c (digest_file): * src/od.c (open_next_file): * src/split.c (main): * src/sum.c (bsd_sum_file, sysv_sum_file): * src/tac.c (tac_file, main): * src/tail.c (tail_file): * src/tee.c (tee_files): * src/tr.c (main): * src/wc.c (wc_file): Use xsetmode, not xfreopen. build: update gnulib submodule to latest 2017-02-13 Pádraig Brady <P@draigBrady.com> maint: tweaks so syntax tests pass for previous commit * src/force-link.h: Don't include headers already included by system.h * src/force-link.c: Likewise. Also include system.h and explicitly mark extern functions as such. 2017-02-12 Paul Eggert <eggert@cs.ucla.edu> ln: replace destination links more atomically If the file B already exists, commands like 'ln -f A B' and 'cp -fl A B' no longer remove B before creating the new link. Instead, they arrange for the new link to replace B atomically. This should fix a race condition reported by Mike Crowe (Bug#25680). * NEWS, doc/coreutils.texi (cp invocation, ln invocation): Document this. * bootstrap.conf (gnulib_modules): Add symlinkat. * src/copy.c, src/ln.c: Include force-link.h. * src/copy.c (same_file_ok): It's also OK to remove a destination symlink when creating symbolic links, or when the source and destination are on the same file system and when creating hard links. * src/copy.c (create_hard_link, copy_internal): * src/ln.c (do_link): Rewrite using force_linkat and force_symlinkat, to close a window where the destination temporarily does not exist. * src/cp.c (main): Do not set x.unlink_dest_before_opening merely because we are in link-creation mode. * src/force-link.c, src/force-link.h: New files. * src/local.mk (copy_sources, src_ln_SOURCES): Add them. * tests/cp/same-file.sh: Adjust test case to match fixed behavior. 2017-02-10 Tobias Stoeckmann <tobias@stoeckmann.org> timeout: fix race possibly terminating wrong process The race is unlikely, as timeout(1) needs to receive a signal in the few operations between waitpid() returning and exit(). Also the system needs to have reallocated the just released pid in this time window. Previously we never disabled the signal handler that sent the termination signal to the "child" pid. However once waitpid() has reaped the child, the system is free to allocate that pid, so we must ensure we don't process any further signals. * build-aux/gen-lists-of-programs.sh: Build timeout(1) optionally... * configure.ac: ...predicated on sigsuspend() being available. * src/timeout.c (block_cleanup): A new function to ensure the cleanup() handler is disabled after waitpid has returned. (main): Use sigsuspend() to wait with cleanup() enabled but disabled once it returns, and thus disabled for the waitpid() call. (monitored_pid): Change to the more accurate pid_t. * NEWS: Mention the fix. Fixes http://bugs.gnu.org/25624 2017-02-10 Pádraig Brady <P@draigBrady.com> doc: note the relationship between realpath and readlink * doc/coreutils.texi (realpath invocation): Mention that realpath is the preferred command for canonicalization. (readlink invocation): Likewise. * man/readlink.x: Likewise. 2017-02-08 Janne Snabb <snabb@epipe.com> tail: fix output of redundant headers when resuming * src/tail.c (check_fspec): Only enable printing of the file header if we've actually read some data and this is a new file. Also move printing of the file header to... (dump_remainder): ...here, to allow printing only when data read. * tests/tail-2/overlay-headers.sh: A new test for suspension and resumption of tail. * tests/local.mk: Reference the new test. * NEWS: Mention the fix. Fixes http://bugs.gnu.org/23539 2017-02-08 Pádraig Brady <P@draigBrady.com> tests: fix tail test race causing false failure * tests/tail-2/retry.sh: The replacement of the "missing" directory is not atomic, and therefore tail(1) can take a different path, especially if there is a delay between the rmdir(2) and creat(2). This is noticeable for example with `make coverage` because in that case the coverage files written by rmdir(1) on exit, induce a significant delay thus triggering the issue. tail: fix erroneous status about 'giving up' on file * src/tail.c (recheck): Set f->ignore before we use it to show the appropriate error. * tests/tail-2/retry.sh: Ensure the "giving up" message is not presented. 2017-02-08 Pádraig Brady <P@draigBrady.com> doc: only distribute 5 years of ChangeLogs Remove old log files that have corresponding entries in the source code repository. This saves about 2.5MB uncompressed, 0.5M compressed. * Makefile.am (gen-ChangeLog): Adjust to taking all logs since a particular version (8.15 in this case). Also mention in the truncated log where to get older entries. (changelog_etc): Remove the no longer distributed files. * build-aux/git-log-fix: Remove now unused entries. * ChangeLog-200[5-8]: Delete. * doc/ChangeLog-2007: Likewise. * po/ChangeLog-2007: Likewise. * old/*: Likewise. 2017-02-07 Maxime de Roucy <maxime.deroucy@gmail.com> maint: fix HACKING instructions to run a single test * HACKING: s/make TEST=/make check TEST=/ The 'check' target was missing there since v8.20-57-geac397e. 2017-01-25 Pádraig Brady <P@draigBrady.com> build: fix issue with HAVE_FALLOCATE on centos5 * src/copy.c (punch_hole): Work around an empty definition of HAVE_FALLOCATE which leads to a build error of: "error: #if with no expression" That was triggered by the inclusion of <linux/fs.h> in commit v8.25-68-g89e1fef with kernel-headers-2.6.18. Reported by Nelson H. F. Beebe 2017-01-25 Manolis Ragkousis <manolis837@gmail.com> (tiny change) build: Properly expand cu_install_program when cross-compiling * src/local.mk (cu_install_program): Replace @INSTALL_PROGRAM@ with @INSTALL@ when cross-compiling; missed in commit 477a1e8e. Message-Id: <20170125163329.5690-1-manolis837@gmail.com> 2017-01-21 Mike Swanson <mikeonthecomputer@gmail.com> dircolors: highlight windows archive format * src/dircolors.hin: Match *.{wim,swm,dwn,esd} 2017-01-21 Pádraig Brady <P@draigBrady.com> maint: mention the recent date time zone bug fix * NEWS: Add the bug fix from commit v8.26-27-gb14be50 2017-01-21 Assaf Gordon <assafgordon@gmail.com> maint: appease syntax-check failures due to recent updates * bootstrap: s/time stamp/timestamp/. * old/fileutils/NEWS: Likewise. * src/tail.c: Avoided a long line. 2017-01-21 Paul Eggert <eggert@cs.ucla.edu> date: fix TZ= regression Problem reported by Paul Wise for Debian, in: https://bugs.debian.org/851934 This is fallout from the fix for GNU Bug#23035. * src/date.c (batch_convert): New args TZ and TZSTRING. All uses changed. (batch_convert, main): Adjust to parse_datetime2 API change. (main): Allocate time zone object. * tests/misc/date-debug.sh: Fix incorrect test case, caught by the fix. * tests/misc/date.pl: Test the fix. build: update gnulib submodule to latest 2017-01-15 Jim Meyering <meyering@fb.com> maint: update README-hacking, now that vc-dwim accepts --init * README-hacking: I've just released vc-dwim-1.8, so we can improve the documentation to reference its --initialize option here. 2017-01-15 Paul Eggert <eggert@cs.ucla.edu> date: output "-00" for indeterminate time zone * NEWS: Document this behavior, which comes with recent Gnulib. * doc/coreutils.texi (Formatting file timestamps, du invocation) (Time conversion specifiers, Setting the time, Options for date): Mention when -00 is output for numeric time zones. Be more careful about Internet RFC numbers, ISO 8601, etc. date: new option spelling --rfc-email * NEWS: * doc/coreutils.texi (Time conversion specifiers) (Options for date, Examples of date): Document this. * src/date.c (rfc_email_format): Rename from rfc_2822_format. All uses changed. (usage, long_options): Support --rfc-email. maint: modernize URLs A lot of this is converting http: to https:. Also, gmane went away, so remove URLs that no longer work and are not easy to figure out what they were. Some of this stuff is so old that it no longer matters anyway. build: update gnulib submodule to latest 2017-01-10 Bernhard Voelker <mail@bernhard-voelker.de> doc: move "File timestamps" to a separate chapter The above new section looked a bit odd as the only general documentation in between the utility chapters. * doc/coreutils.texi (File timestamps): Move to a separate chapter. 2017-01-10 Eric Blake <eblake@redhat.com> maint: fix recent syntax check failures Commit 4f650aad was incomplete; it changed NEWS but not the hash, and introduced a grammar error. * cfg.mk (old_NEWS_hash): Update via 'make update-NEWS-hash'. * doc/coreutils.texi (File timestamps): Fix doubled word. 2017-01-09 Paul Eggert <eggert@cs.ucla.edu> doc: cover file timestamps better Prompted by a bug report from Scott Deerwester (Bug#25407). * doc/coreutils.texi (File timestamps): New section. Revamp other sections to use this new section, and use more-consistent terminology. maint: standardize on "timestamp" as per POSIX 2017-01-09 Pádraig Brady <P@draigBrady.com> stty: ensure no side effects from invalid options * src/stty.c (apply_settings): A new function refactored from main() that is used to both check and apply options. (main): Call apply_settings before we open the device, so all validation is done before interacting with a device. * NEWS: Mention the improvement. * tests/misc/stty.sh: Add a test case. 2017-01-06 Assaf Gordon <assafgordon@gmail.com> tests: improve 'date --debug' tests Update tests following improvements to gnulib's parse-datetime.y module. See https://lists.gnu.org/archive/html/bug-gnulib/2017-01/msg00002.html * tests/misc/date-debug.sh: Add tests for each of the gnulib changes. 2017-01-06 Assaf Gordon <assafgordon@gmail.com> build: update gnulib submodule to latest 2017-01-01 Pádraig Brady <P@draigBrady.com> maint: update all copyright year number ranges Run "make update-copyright" and then... * gnulib: Update to latest with copyright year adjusted. * tests/init.sh: Sync with gnulib to pick up copyright year. * bootstrap: Likewise. * tests/sample-test: Adjust to use the single most recent year. 2016-12-28 Zooko <zookog@gmail.com> doc: recommend b2sum as well as SHA2 b2sum is faster, easier to use safely, and more future-proof 2016-12-28 Pádraig Brady <P@draigBrady.com> tests: avoid false fails on NFS due to EPERM * tests/chgrp/basic.sh: On some NFS setups a user is not allowed to set a group on a file even if a member of that group. Therefore skip this test on remote file systems. * tests/chgrp/default-no-deref.sh: Likewise. * tests/chgrp/no-x.sh: Likewise. * tests/chgrp/posix-H.sh: Likewise. * tests/chgrp/recurse.sh: Likewise. * tests/tail-2/inotify-rotate-resources.sh: Change to skipping on remote file systems in the standard way. 2016-12-27 Paul Eggert <eggert@cs.ucla.edu> doc: Update POSIX part of README (Bug#25259) 2016-12-26 Pádraig Brady <P@draigBrady.com> wc: with only --bytes, determine size more efficiently * src/wc.c (wc): Avoid reading the end of the file when the size is not a multiple of PAGE_SIZE, as the special case handling for files in /proc and /sys is only required when st_size is 0 or a multiple of PAGE_SIZE. * tests/misc/wc-proc.sh: Add a test case. 2016-12-20 Pádraig Brady <P@draigBrady.com> maint: correct the version for the previous bug fix While st_size would have been incorrect for subsequent files since v7.1, it was only used since v8.24. * tests/misc/wc-files0.sh: s/7.1/8.24/ * NEWS: Likewise. Reported by Bernhard Voelker 2016-12-19 William R. Fraser <wfraser@codewise.org> wc: fix wrong byte counts when using --files-from0 * src/wc.c (main): Reset fstatus[0].failed between files when reusing the fstatus[0] entry in --files-from0 mode. This ensures a stat() is done for each file, avoiding incorrect counts and redundant reading. * NEWS: Mention the bug fix. * tests/misc/wc-files0.sh: Add a test case. Fixes http://bugs.gnu.org/23073 2016-12-18 Pádraig Brady <P@draigBrady.com> tests: fix typos in previous commit * init.cfg (skip_if_mcstransd_is_running_): Fix typos _introduced my me_ in the previous commit. 2016-12-18 Nicolas Iooss <nicolas.iooss@m4x.org> tests: support non-MLS enabled SELinux systems When running "make check" on a Linux system running SELinux with a non-MLS policy, tests/mkdir/restorecon.sh test fails with: chcon: invalid context: root:object_r:tmp_t:s0: Invalid argument Indeed in such a configuration, contexts cannot have ":s0" suffix. * init.cfg (get_selinux_type): Refactor this function to here from various tests. Update to work with a non-MLS policy. (mls_enabled_): A new function to detect if MLS is enabled. (skip_if_mcstransd_is_running_): Update to not skip when MLS is not enabled. * tests/mkdir/restorecon.sh: Use a valid non-MLS context when needed. * tests/install/install-Z-selinux.sh: Likewise. * tests/cp/cp-a-selinux.sh: Likewise. * tests/misc/selinux.sh: Likewise. * tests/misc/chcon.sh: Skip if non-MLS as --range used throughout. Fixes http://bugs.gnu.org/22631 2016-12-08 Torbjörn Granlund <tg@gmplib.org> factor: retry properly if Pollard rho gives a trivial factorization * src/factor.c (factor_using_pollard_rho): Handle trivial factor g = n. (factor_using_pollard_rho2): Handle trivial factor g1 = n1, g0 = n0. * tests/misc/factor.pl: Add a test case. Fixes http://bugs.gnu.org/25135 2016-12-08 Niels Möller <nisse@lysator.liu.se> factor: fix infinite loop in gcd2_odd * src/factor.c (gcd2_odd): Fix the case a1 == 0, a0 == 0. * NEWS: Mention the bug fix. Fixes http://bugs.gnu.org/25135 2016-12-02 Pádraig Brady <P@draigBrady.com> doc: fix --help for: od -t f[SIZE] * src/od.c (usage): SIZE is that of float, not integer.
77 lines
2.3 KiB
Text
77 lines
2.3 KiB
Text
# $NetBSD: Makefile.common,v 1.18 2018/05/09 08:41:19 wen Exp $
|
|
#
|
|
# used by sysutils/coreutils/Makefile
|
|
# used by misc/gnuls/Makefile
|
|
|
|
DISTNAME= coreutils-8.29
|
|
CATEGORIES= sysutils
|
|
MASTER_SITES= ${MASTER_SITE_GNU:=coreutils/}
|
|
EXTRACT_SUFX= .tar.xz
|
|
|
|
MAINTAINER= pkgsrc-users@NetBSD.org
|
|
HOMEPAGE= http://www.gnu.org/software/coreutils/
|
|
COMMENT= GNU basic file, shell and text manipulation utilities
|
|
LICENSE= gnu-gpl-v3
|
|
|
|
NOT_FOR_PLATFORM= NetBSD-2.0[D-H]-*
|
|
|
|
PATCHDIR= ${.CURDIR}/../../sysutils/coreutils/patches
|
|
DISTINFO_FILE= ${.CURDIR}/../../sysutils/coreutils/distinfo
|
|
|
|
GNU_CONFIGURE= YES
|
|
USE_TOOLS+= msgfmt msgmerge perl xgettext
|
|
USE_PKGLOCALEDIR= YES
|
|
|
|
# --- man/chroot.1 ---
|
|
# GEN man/chroot.1
|
|
# help2man: can't get `--help' info from chroot.td/chroot
|
|
# Try `--no-discard-stderr' if option outputs to stderr
|
|
# *** [man/chroot.1] Error code 127
|
|
MAKE_JOBS_SAFE= NO
|
|
|
|
TEST_TARGET= check
|
|
|
|
.include "../../mk/bsd.prefs.mk"
|
|
|
|
# Otherwise configure aborts when ran by root
|
|
CONFIGURE_ENV+= FORCE_UNSAFE_CONFIGURE=yes
|
|
|
|
CONFIGURE_ENV.Interix+= ac_list_mounted_fs=found
|
|
|
|
CONFIGURE_ENV.DragonFly+= gl_cv_search_pthread_join=-lpthread
|
|
|
|
# Various tests rely on GCC's -O2 behaviour (e.g. -D__NO_INLINE__) and
|
|
# without it we run into undefined symbol issues.
|
|
.if ${OPSYS} == "Darwin" && ${PKGSRC_COMPILER:Mgcc}
|
|
CFLAGS+= -O2
|
|
.endif
|
|
|
|
# clang on SunOS parses -errwarn as an -e entry point argument to the linker,
|
|
# which ignores it as it's a duplicate argument. Turn it off explicitly.
|
|
.if ${PKGSRC_COMPILER} == "clang"
|
|
CONFIGURE_ENV.SunOS+= gl_cv_warn_c__errwarn=no
|
|
.endif
|
|
|
|
# Explicitly disable inotify support whilst it is Linux-specific.
|
|
CONFIGURE_ENV.SunOS+= ac_cv_func_inotify_init=no
|
|
|
|
.if !empty(MACHINE_PLATFORM:MDarwin-[9].*-*)
|
|
CONFIGURE_ENV+= ac_cv_header_sys_acl_h=no jm_cv_func_svid_putenv=yes
|
|
.endif
|
|
|
|
# XXX - this hack is bound to cause fallout on some platform at some point.
|
|
# How can we determine the API version of the builtin gettext?
|
|
.if ${OPSYS} != "Linux"
|
|
CONFIGURE_ENV+= gt_cv_func_gnugettext3_libintl=yes
|
|
.endif
|
|
CONFIGURE_ENV+= MKDIR_P=${MKDIR:Q}
|
|
|
|
CONFIGURE_ARGS+= --program-prefix=g
|
|
|
|
#CONFIGURE_ARGS+= --enable-install-program=su
|
|
#.if ${OPSYS} == "NetBSD" || ${OPSYS} == "FreeBSD" || \
|
|
# ${OPSYS} == "OpenBSD"
|
|
#MAKE_FLAGS+= setuid_root_mode=a=rx
|
|
#MESSAGE_SRC= ${.CURDIR}/MESSAGE.gsu
|
|
#MESSAGE_SUBST+= OPSYS=${OPSYS:Q}
|
|
#.endif
|