Age | Commit message (Collapse) | Author |
|
* init.cfg (setuidgid_has_perm_): New function.
(require_root_): Use it.
Improved-by: Bernhard Voelker
* NEWS (Build-related): Mention the improvement.
|
|
Anyone developing on coreutils can be assumed to have a new enough
environment, such that enabling gcc warnings by default will be
useful. Tarballs still default to no warnings, and the defaults
can still be overridden with --disable-gcc-warnings.
* configure.ac (gl_gcc_warnings): Set default based on environment.
Suggested by Bernhard Voelker.
|
|
* src/nproc.c (main): Error if any non option parameters.
* NEWS: Mention the change in behavior.
|
|
* src/stat.c (human_fstype): Add a case: vzfs, 0x565A4653 (local).
Reported by Jens Rosenboom in http://bugs.gnu.org/12356
* NEWS (Improvement): Mention it.
|
|
* src/remove.c (excise): Tighten the test for when we defer to an
old errno value: instead of relying solely on an FTS_DNR (unreadable
directory) failure, also test current and replacement errno values.
This change would also have solved the problem addressed by commit
v8.19-106-g57dd067. For more info, see http://bugs.gnu.org/12339#113
|
|
These commands would evoke an invalid diagnostic:
$ mkdir d && ln -s d s && env rm -r s/
rm: cannot remove 's': Too many levels of symbolic links
remove.c was stripping trailing slashes from "s/" before passing
the name to "rm". But a trailing slash may change the semantics,
and thus should not be stripped.
* src/remove.c (rm_fts): Do not strip trailing slashes.
* tests/rm/v-slash.sh: Adapt to new expected output.
* gnulib: Update to latest, for an improved fts.c that merely
normalizes trailing slashes.
Reported by Paul Eggert in discussion of http://bugs.gnu.org/12339
|
|
* tests/local.mk ($(TEST_LOGS)): Depend on $(PROGRAMS), so that
tests are rerun when any program is rebuilt. Technically, we could
specify precisely which few programs are dependents of each test,
but that can come later, if deemed worth the trouble and maintenance
burden. Also, there is the issue of the primary program(s) being
tested (i.e., those itemized via print_ver_) versus those that are
tested incidentally: for example, nearly every test exercises "rm"
when its clean-up code removes files.
|
|
* cfg.mk (exclude_file_name_regexp--sc_file_system): Exempt
'init.cfg', not 'tests/init.cfg'.
|
|
* tests/init.cfg (stty_reversible_init_): Quote '$abs_top_srcdir'
properly.
(fiemap_capable_): Quote '$abs_srcdir' properly.
(require_dirent_d_type_): Likewise.
|
|
* cfg.mk: Don't work by trying to parse the (now gone) file
'tests/Makefile.am'; rather, use the contents of the make variable,
$(all_root_tests), introduced few commits ago.
Fix a few unrelated cosmetic issues while at it.
|
|
* cfg.mk (exclude_file_name_regexp--sc_prohibit_test_backticks): Exempt
'tests/local.mk' rather than 'tests/Makefile.am'.
|
|
Because it requires the presence of the '.git' directory, that is,
can be run only for maintainers working from checked-out sources.
* tests/local.mk (vc_exe_in_TESTS): Rename and move ...
* cfg.mk (sc_tests_list_consistency): ... here, with minor adjustments.
|
|
* src/local.mk (built_programs.list, all_programs.list): These.
|
|
* tests/local.mk (TEST_SUITE_LOGS): Define to 'tests/test-suite.log'.
|
|
* Makefile.am (SUBDIRS): Remove 'tests'.
(include): The '$(top_srcdir)/tests/local.mk' file.
(check-root): Remove this convenience target, it's no longer needed
now that the "real" check-root target once in 'tests/Makefile' will
land in the top-level makefile.
* configure.ac (AC_CONFIG_FILES): Remove 'tests/Makefile'.
* tests/Makefile.am: Rename ...
* tests/local.mk: ... like this, with a lot of adjustments.
* tests/init.cfg: Move ...
* init.cfg: ... here. This is necessary, for a limitation of the
gnulib-provided 'tests/init.sh', which unconditionally look for
'init.cfg' in the $(srcdir) directory.
* tests/*/*.sh: Adjust: expect init.sh to be in '$srcdir/tests',
not in '$srcdir', and extend $PATH with './src', not with '../src'.
* tests/Coreutils.pm: Adjust similarly.
* tests/pr/pr-tests.pl ($pfx): Likewise.
|
|
This is just a preparatory refactoring in view of future changes.
* configure.ac (AC_SUBST): New 'built_programs'.
* tests/Makefile.am (AM_TESTS_ENVIRONMENT): Simply define the exported
variable 'built_programs' to the expansion of the '$(built_programs)'
AC_SUBST'd make variable.
(.built-programs): Remove this now-unneeded convenience target.
(CLEANFILES, check_DATA): Delete, no longer needed.
|
|
* cfg.mk (sc_no_exec_perl_coreutils): This. Our new testsuite
layout (perl tests having '.pl' suffix, shell tests having '.sh'
suffix) makes it basically impossible to run into the issue this
check guarded against.
|
|
* cfg.mk: Here.
|
|
* tests/Makefile.am (root-hint): Here. The interested user can see
the reasons why some tests are skipped by looking at the messages
they display on the console; here's an excerpt:
...
PASS: misc/id-groups.sh
id-setgid.sh: skipped test: must be run as root
SKIP: misc/id-setgid.sh
PASS: misc/md5sum.pl
...
PASS: df/total-verify.sh
2g.sh: skipped test: very expensive: disabled by default
SKIP: du/2g.sh
...
Clear enough, and more specific and precise that a generic "some tests
might need to be run as root" message. And if that user is interested
in making those tests run anyway, he'll just take a look to the README
files to look for info. So there's no reason to pollute the stdout
with another "hint" that is subsumed by those messages, and that might
go unnoticed anyway.
Moreover, and possibly more importantly, that hint wasn't being
displayed anyway, even before this change! That's because the
'root-hint' target was listed as prerequisite for the 'check-recursive'
target, which however was not a dependency of the 'check' target in
'tests/Makefile.am', because that file contains no $(SUBDIRS)
definition.
|
|
* tests/Makefile.am (vc_exe_in_TESTS): Adjust to look, in the 'tests/'
subdirectory, for files that have one of the extensions listed in
$(TEST_EXTENSIONS), rather than for executable files.
|
|
* tests/Makefile.am (vc_exe_in_TESTS): It is easy to adjust this
recipe to also work in VPATH setups, also thanks to modifications
done by previous changes.
|
|
* tests/Makefile.am (vc_exe_in_TESTS): No need to depend on Makefile:
this target is .PHONY, so it is always run anyway.
|
|
* tests/Makefile.am (TESTS): Rename ...
(all_tests): ... like this, so that we'll still be able to know the
complete list of our tests even if the user overrides TESTS from the
command line (which he's allowed to do by the test harness API).
(root_tests): Rename ...
(all_root_tests): ... like this, for similar reasons.
(TESTS, root_tests): Redefine their defaults to to $(all_tests) and
$(all_root_tests) respectively.
(vc_exe_in_TESTS): It can now safely use $(all_tests) to get the
complete list of test cases according to the Makefile, instead of
having to resort to "parsing" of Makefile.am.
(EXTRA_DIST): Use $(all_tests), not $(TESTS).
(v_, w_): Delete, no longer needed.
|
|
* tests/Makefile.am (check-local): Here, by making this depend
on 'vc_exe_in_TESTS' ...
(check): ... rather than making this depend on them. While the old
usage worked, it relied on an implementation detail rather than on
documented behavior.
* src/local.mk (check-local): Similarly, make this depend on
'check-README' and 'check-duplicate-no-install' ...
(check): ... rather than on this.
|
|
* scripts/autotools-install: Honor $MAKE. This might be useful
on systems where the make implementation available in $PATH
by default is limited (Solaris) or broken (HP-UX).
|
|
* scripts/autotools-install: Here.
|
|
* src/touch.c (usage): Indent --time=... to line up with all of the
other long options.
|
|
It would still pass, but would print many diagnostics like this:
Can't open src/Makefile.am: No such file or directory.
* cfg.mk (local-checks-to-skip): Temporarily disable a test.
This test will need to be adapted to work with a non-recursive
build set-up, in which there is no Makefile.am alongside each program.
Reported by Bernhard Voelker.
|
|
* configure.ac: Disable a new gcc warning, -Wsuggest-attribute=format,
since it triggers on copy.c (which I'm not inclined to adjust) and
factor.c's use of vfprintf which would appear to require a change
to stdio.h.
|
|
* dist-check.mk (built_programs): There's no need to issue recursive
make calls in 'src/' to define this (in fact, that works no longer
now that 'src/Makefile.am' is gone). Simply define this to the sorted
contents of $(bin_PROGRAMS), with the 'src/' prefix and the $(EXEEXT)
suffix (if any) removed. Reported by Jim Meyering.
|
|
* man/local.mk: With commit v8.19-84-g08cf455, man page creation
would fail when using a build directory name containing e.g.,
spaces.
|
|
* man/local.mk: Creating a prog.1 man page requires running
src/prog --help.
List the exceptions, e.g., install.1 depends on src/ginstall
and arch.1 depends on src/uname.
|
|
* cfg.mk (check-programs-vs-x): The new variable,
$(all-progs-but-lbracket) contains libstdbuf.so, and it does
not have a corresponding .x file, so exempt it.
|
|
* man/local.mk (distclean-local): Remove $(ALL_MANS) when doing
a VPATH build. If it's not done, generated manpages can be left
around in the build directory after a "make distclean", causing
failures in "make distcheck".
|
|
* man/local.mk (.x.1): Use '$(MKDIR_P)' rather than bare 'mkdir'
where appropriate. Reported by Jim Meyering.
|
|
* src/local.mk (AM_CPPFLAGS): Add 'src' to the directories that
are searched for #include'd files.
|
|
* configure.ac: No need to use 'gl_ADD_PROG' and an indirection
variable '$optional_pkglib_progs' to declare the 'libstdbuf.so'
"libexec" program; the decision to whether compile that program
is not up to the user, but it only and simply depends on whether
the 'stdbuf' "bin" program is to be built or not.
|
|
* man/local.mk (mandpep): Rename ...
(mandeps): ... like this. Make $(ALL_MANS) depend on its
content. List 'src/system.h' in here, instead of making
$(ALL_MANS) depend on it explicitly.
(man/*.1): No need to list $(mandep) among the dependencies
any longer.
|
|
* man/local.mk: All of the manpages should depend on 'src/system.h',
and all of them should be cleaned by "make maintainer-clean", that
is, added to MAINTAINERCLEANFILES. Make it be so.
Some minor cosmetic tweakings and reorderings while at it.
|
|
* configure.ac: Adjust and improve few comments.
(MAN): Rename ...
(man1_MANS): ... to this.
Ensure it isn't initialized in all Makefiles (which would lead
to spurious errors), by calling AM_SUBST_NOTMAKE on it.
Also call AM_SUBST_NOTMAKE on 'EXTRA_MANS', for consistency.
* man/local.mk (man1_MANS): Simply define to '@man1_MANS@'.
|
|
And list $(man1_MANS) directly in $(EXTRA_DIST) instead.
This is similar to what is done for $(EXTRA_MANS), thus
improving consistency and readability.
* man/local.mk (dist_man1_MANS): Rename ...
(man1_MANS): ... like this.
(EXTRA_DIST): Add its contents.
* cfg.mk (check-x-vs-1): Fix a botched comment.
|
|
* man/local.mk (man_aux): This was used only once, so inline its
expansion at its sole point of use ...
(EXTRA_DIST): ... here.
|
|
The AC_SUBST'd variable '$(NO_INSTALL_PROGS_DEFAULT)' is only used in
makefile expressions expanding the list of manual pages that are not
built by default (but might need to be when a distribution tarball
is created). Such expressions exploited a feature of make variable
expansion -- namely, $(VAR:%=dir/%.x) -- that, while seemingly quite
portable in practice, is not POSIX-conforming, and could break on
lesser vendor make implementations. So kill two birds with one stone,
by getting rid of the $(NO_INSTALL_PROGS_DEFAULT) intermediate variable
and improving makefile portability in the process.
While at it, we also clean up some other minor naming inconsistency
and useless indirection.
* configure.ac (NO_INSTALL_PROGS_DEFAULT): Don't define or AC_SUBST
anymore; instead ...
(EXTRA_MANS): ... define and AC_SUBST these.
* man/local.mk (extra_man_1): Rename ...
(EXTRA_MANS): ... like this, explicitly making clear it's AC_SUBST'd.
(extra_man_x): It's used only once, no need to define it; just inline
its only expansion where needed.
(EXTRA_DIST): Adjust.
(ALL_MANS): New, union of $(EXTRA_MANS) and $(dist_man1_MANS).
* cfg.mk (check-x-vs-1, sc_option_desc_uppercase): Rely on $(ALL_MANS)
rather than on $(NO_INSTALL_PROGS_DEFAULT) and $(dist_man1_MANS).
|
|
The code deciding which coreutils programs to build (depending on
defaults, system capabilities, and user requests) is overly complex
and rather confusing. Let's begin simplifying it by removing some
non-strictly-necessary indirection variables.
* configure.ac: Adjust and improve few comments.
(OPTIONAL_BIN_PROGS, OPTIONAL_PKGLIB_PROGS): Rename ...
(bin_PROGRAMS, pkglibexec_PROGRAMS): ... like these, respectively.
Ensure they aren't initialized in all Makefiles (which would lead
to spurious errors), by calling AM_SUBST_NOTMAKE on them.
* src/local.mk: Adjust and improve few comments.
(bin_PROGRAMS, pkglibexec_PROGRAMS): Simply define
to the corresponding '@substitution@'.
|
|
* src/.gitignore: Here, adding the '.dirstamp' file generated
by the C compilation rules.
|
|
* build-aux/gen-lists-of-programs.sh: In heading comments here.
|
|
Some of them can be simplified after the previous changes, some
of them have been downright broken by them, and need fixing.
* src/local.mk: Adjust some comments.
(EXTRA_DIST): Avoid SPACE-TAB sequences.
(src/dircolors.h, src/fs.h src/fs-is-local.h): Avoid 8-SPACES
indentation.
(_sc_check-AUTHORS): Move ...
* cfg.mk (sc_check-AUTHORS): ... here (superseding the old rule
with the same name, that was just a recursive invocation to it).
Adjust the paths of the invoked coreutils programs, to account
for the fact that this rule now runs in the top-level build dir,
not in the 'src/' subdir. Other minor cosmetic adjustments.
(ALL_RECURSIVE_TARGETS): Remove 'sc_option_desc_uppercase' and
'sc_man_file_correlation', since they no longer entail any
recursive make invocation.
(sc_option_desc_uppercase): Remove dependency from $(all_programs):
it isn't actually needed.
(check-programs-vs-x): Likewise. Also, fix heading comments to
truly reflect what this check does.
(all-progs-but-lbracket): Strip the 'src/' prefix from each entry
in the list of programs; this avoids a spurious failure in the
'check-programs-vs-x' recipe.
(.PHONY): No need to list targets 'sc_man_file_correlation' and
'sc_option_desc_uppercase': they are automatically declared phony
by 'maint.mk', being recognized as syntax checks.
|
|
It was unneeded and broken since the removal of 'su' from GNU
coreutils, in commit v8.17-16-g928dd73 of 2012-06-06, "su: remove
program (util-linux is now the best source for it)".
* Makefile.am (install-root): Remove.
(ALL_RECURSIVE_TARGETS): Update.
|
|
This is a follow up on today's commit v8.19-60-g4f2e62b".
* Makefile.am ($(top_srcdir)/m4/cu-progs.m4,
$(srcdir)/src/cu-progs.mk): New, generate these files from the
'build-aux/gen-lists-of-programs.sh', the same way it's done
from the bootstrap script.
* bootstrap.conf (bootstrap_post_import_hook): Add comment about
the necessity to keep those new rules synced with the commands
here. Enhance those commands so to that the generated files are
set read-only.
|
|
* src/local.mk (dist-hook): Don't use this to ensure all the
programs, even the ones disabled by default or by the user, are
built (doing so is required to ensure the distributed manpages
are properly built). This would build those programs too late
anyway, causing errors like:
$ make dist
make dist-xz am__post_remove_distdir='@:'
make[1]: Entering directory `~/src/coreutils'
GEN man/arch.1
help2man: can't get '--help' info from man/arch.td/arch
make[1]: *** [man/arch.1] Error 127
make[1]: Leaving directory `~/src/coreutils'
make: *** [dist] Error 2
Instead, ...
* man/local.mk (extra_man_x, extra_man_1): define these ...
($(extra_man_1)): ... and make this depend on $(all_programs).
(EXTRA_DIST): Adjust.
Adjust some comments as well.
|