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

From: Panaiotis Arnaud <[email-masked]>
Date: Fri, 28 Apr 2023 14:29:36 +0000

Hi,

I encounter an issue while working with glibc with script scripts/mkinstalldirs. In scriptversion=2018-03-07.03; # UTC.

I had a symbolic link lib64->lib and the folder lib did not exist.

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

I made a working patch for my case, which need to be reworked as a loop (As I use the script with a single argument $@ and not a list of them).

Here is my solution:
--- a/scripts/mkinstalldirs.old 2023-04-28 15:25:12.087611912 +0200
+++ b/scripts/mkinstalldirs     2023-04-28 15:27:28.056402448 +0200
@@ -78,8 +78,13 @@
case $dirmode in
   '')
     if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
-      echo "mkdir -p -- $*"
-      exec mkdir -p -- "$@"
+      if test -L "$@"; then
+        echo "mkdir -p -- \"\$(realpath $*)\""
+        exec mkdir -p -- "$(realpath $@)"
+      else
+        echo "mkdir -p -- $*"
+        exec mkdir -p -- "$@"
+      fi
     else
       # On NextStep and OpenStep, the 'mkdir' command does not
       # recognize any option.  It will interpret all options as

Best regards,

Arnaud Panaïotis
Freelance Lead developer
APsudo