Eric Blake wrote: > Jim Meyering <jim <at> meyering.net> writes: > >> > [3/5] dirname-lgpl: adjust clients that don't need full dirname >> > Fallout from the split. In particular, test-mkdir and test-rename no >> > longer >> > need libintl. Meanwhile, openat and friends no longer drag in dirname, but >> > still drag in xalloc due to openat-die. > > There's still a problem - rename depends on canonicalize-lgpl, but coreutils > uses gnulib-tool --avoid=canonicalize-lgpl --import canonicalize. > > On the surface, this works just fine - canonicalize_file_name is just as easy > to write as a call to the more powerful canonicalize_filename_mode, rather > than > a wrapper around realpath. > > Unfortunately, canonicalize_filename_mode is GPL, and liberally uses xmalloc. > Which means that the GPL version of canonicalize_file_name(), and thus > rpl_rename(), can now call exit() (making it unsafe for library use), and that > test-rename fails to link for coreutils. But we can't just solve it by adding > @LIBINTL@ to the link line for test-rename, since then it would fail to > compile > when using just canonicalize-lgpl rather than canonicalize. In other words, I > don't know of any way to write modules/rename-tests to conditionally include > @LIBINTL@ only if the GPL rather than the LGPL canonicalize_file_name is in > use. > > I think the only clean solution is to bite the bullet and decide that > canonicalize-lgpl is the only module which can provide canonicalize_file_name, > which in turn means that coreutils needs to quit doing --avoid canonicalize- > lgpl.
Sounds ok, so far, though I confess I don't know what the implications are off-hand.