Hi Collin, > This patch fixes this test failure: > > ./test-hello-c-gnulib-nonrecursive-1.out tmp1016386-out differ: byte 2612, > line 147 > --- ./test-hello-c-gnulib-nonrecursive-1.out 2024-03-24 03:30:48.391074752 > -0700 > +++ tmp1016386-out 2024-03-24 18:33:30.855703830 -0700 > @@ -144,9 +144,9 @@ > m4/wchar_t.m4 > m4/wint_t.m4 > m4/zzgnulib.m4 > -Creating directory ./lib > -Creating directory ./gnulib-m4 > -Creating directory ./build-aux > +Creating directory build-aux > +Creating directory gnulib-m4 > +Creating directory lib
Nice! Thanks, applied. > for f in $files; do echo $f; done \ > | sed -e "$sed_rewrite_new_files" \ > | sed -n -e 's,^\(.*\)/[^/]*,\1,p' \ > | LC_ALL=C sort -u > } > "$tmp"/dirs > > To match this we can reorder gnulib-tool.py and use the dictionary > trick I mentioned here to remove duplicates from a list while > preserving order: > > https://lists.gnu.org/archive/html/bug-gnulib/2024-03/msg00011.html You don't need this trick here, since we sort this part of the list anyway, for compatibility with gnulib-tool.sh. This occurred also with the EXTRA_DIST augmentations: In shell, the easiest way to remove duplicates from a list is to use 'LC_ALL=C sort -u', and accept the sorting as a side-effect. Removing duplicates without sorting is a bit more complicated, so I didn't bother doing that in the past. In gnulib-tool.py, now, although removing duplicates without sorting is easier, we cannot use it, since we need the sorting, for compatibility. Applied with this tweak: 2024-03-25 Bruno Haible <br...@clisp.org> gnulib-tool.py: Simplify last change. * pygnulib/GLImport.py (GLImport.execute): Remove unnecessary list to set and set to list conversion. diff --git a/pygnulib/GLImport.py b/pygnulib/GLImport.py index e101af82f7..803f2d85dd 100644 --- a/pygnulib/GLImport.py +++ b/pygnulib/GLImport.py @@ -1081,8 +1081,8 @@ AC_DEFUN([%s_FILE_LIST], [\n''' % macro_prefix if gentests: dirs += [testsbase] dirs += [auxdir] - dirs += sorted(list(dict.fromkeys([ os.path.dirname(pair[0]) - for pair in filetable['new'] ]))) + dirs += sorted([ os.path.dirname(pair[0]) + for pair in filetable['new'] ]) dirs = [ os.path.join(destdir, d) for d in dirs ] for directory in dirs: