Bernhard Voelker wrote:
doesn't coreutils support platforms where struct dirent lacks a working d_ino?
Yes it does. Thanks for catching that. I installed the attached patches, the first two into gnulib and the last two into coreutils.
Tar needs fixing too, but that'll require a UI change -- Sergey, what do you think?
From 5bdd09b4b5246d852b63455f1d629f38be115bf9 Mon Sep 17 00:00:00 2001 From: Paul Eggert <egg...@cs.ucla.edu> Date: Wed, 26 Feb 2014 23:57:26 -0800 Subject: [PATCH 1/2] savedir: new symbol for fast-read version * lib/savedir.h (SAVEDIR_SORT_FASTREAD): New symbol, for programs like GNU cp that want to use SAVEDIR_SORT_INODE if available, SAVEDIR_SORT_NONE otherwise. Problem reported by Bernhard Voelker in: http://lists.gnu.org/archive/html/coreutils/2014-02/msg00037.html --- ChangeLog | 8 ++++++++ lib/savedir.h | 7 +++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2b6393f..e938204 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2014-02-26 Paul Eggert <egg...@cs.ucla.edu> + + savedir: new symbol for fast-read version + * lib/savedir.h (SAVEDIR_SORT_FASTREAD): New symbol, for programs + like GNU cp that want to use SAVEDIR_SORT_INODE if available, + SAVEDIR_SORT_NONE otherwise. Problem reported by Bernhard Voelker in: + http://lists.gnu.org/archive/html/coreutils/2014-02/msg00037.html + 2014-02-25 Paul Eggert <egg...@penguin.cs.ucla.edu> unistd: port readlink to Mac OS X 10.3.9 diff --git a/lib/savedir.h b/lib/savedir.h index 73fc98a..aff4ad9 100644 --- a/lib/savedir.h +++ b/lib/savedir.h @@ -26,9 +26,12 @@ enum savedir_option { SAVEDIR_SORT_NONE, - SAVEDIR_SORT_NAME + SAVEDIR_SORT_NAME, #if D_INO_IN_DIRENT - , SAVEDIR_SORT_INODE + SAVEDIR_SORT_INODE, + SAVEDIR_SORT_FASTREAD = SAVEDIR_SORT_INODE +#else + SAVEDIR_SORT_FASTREAD = SAVEDIR_SORT_NONE #endif }; -- 1.8.5.3
From e1ae551c70575162d23e9fc926c1404b16f1c712 Mon Sep 17 00:00:00 2001 From: Paul Eggert <egg...@cs.ucla.edu> Date: Wed, 26 Feb 2014 23:58:18 -0800 Subject: [PATCH 2/2] * NEWS: Recent changes are not that important. --- NEWS | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/NEWS b/NEWS index 11cb2ff..45d829b 100644 --- a/NEWS +++ b/NEWS @@ -3,15 +3,6 @@ Important notes Date Modules Changes -2014-02-23 diffseq The members too_expensive, lo_minimal and hi_minimal - were removed from public structureas, and the - find_minimal argument was removed from diag - and compareseq. - -2014-02-11 savedir The savedir and streamsavedir functions have a - new argument specifying how to sort the result. - The fdsavedir function is removed. - 2013-04-24 gettext If your project uses 'gettextize --intl' it is now your responsibility to put -I$(top_builddir)/intl into the Makefile.am for gnulib. @@ -41,6 +32,15 @@ User visible incompatible changes Date Modules Changes +2014-02-23 diffseq The members too_expensive, lo_minimal and hi_minimal + were removed from public structureas, and the + find_minimal argument was removed from diag + and compareseq. + +2014-02-11 savedir The savedir and streamsavedir functions have a + new argument specifying how to sort the result. + The fdsavedir function is removed. + 2013-05-04 gnulib-tool CVS checkout of gnulib are no longer supported. 2013-02-08 careadlinkat This module no longer provides the careadlinkatcwd -- 1.8.5.3
From d76d0d12bcbd34758ac5a65d401c4e91c400e0b0 Mon Sep 17 00:00:00 2001 From: Paul Eggert <egg...@cs.ucla.edu> Date: Thu, 27 Feb 2014 00:05:44 -0800 Subject: [PATCH 1/2] build: update gnulib submodule to latest --- gnulib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnulib b/gnulib index 546ff82..1c6bf3d 160000 --- a/gnulib +++ b/gnulib @@ -1 +1 @@ -Subproject commit 546ff8206b4366d46f9d1fcc08030c2a33a085fa +Subproject commit 1c6bf3d204c0cbd664590bbdc30fdf756d9fdb65 -- 1.8.5.3
From b3b74044074dcb07c0bf3a239bca9124a8910560 Mon Sep 17 00:00:00 2001 From: Paul Eggert <egg...@cs.ucla.edu> Date: Thu, 27 Feb 2014 00:07:14 -0800 Subject: [PATCH 2/2] cp: copy files by inode only if that facility is available * src/copy.c (copy_dir): Use the new SAVEDIR_SORT_FASTREAD, not SAVEDIR_SORT_INODE. Problem reported by Bernhard Voelker in: http://lists.gnu.org/archive/html/coreutils/2014-02/msg00037.html --- src/copy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/copy.c b/src/copy.c index 7afb801..4998386 100644 --- a/src/copy.c +++ b/src/copy.c @@ -598,7 +598,7 @@ copy_dir (char const *src_name_in, char const *dst_name_in, bool new_dst, struct cp_options non_command_line_options = *x; bool ok = true; - name_space = savedir (src_name_in, SAVEDIR_SORT_INODE); + name_space = savedir (src_name_in, SAVEDIR_SORT_FASTREAD); if (name_space == NULL) { /* This diagnostic is a bit vague because savedir can fail in -- 1.8.5.3