Subject: Re: bug#63161: Issue with mkinstalldirs and symb links

From: Karl Berry <[email-masked]>
Date: Sat, 29 Apr 2023 22:48:15 +0200

Thanks for the report.

    The glibc installing process is calling
    ./scripts/mkinstalldirs [..]/lib64
    which failed to mkdir -p it.

With literal brackets? I don't understand.

+      if test -L "$@"; then
+        echo "mkdir -p -- \"\$(realpath $*)\""

Neither test -L nor (especially) realpath are portable.
(test -h can be used for the former; have to resort to ls -l|sed
for the latter, I think.)

In any case, "resolving" a broken link is a fundamental change in
behavior.  I'm doubtful that is desirable at this late date. I'm not
sure it's mkinstalldir's job to figure out that you made a broken
symlink and create the directory it points to. If I'm understanding your
scenario correctly.

What do others think? --thanks, karl.