Bug#1004348: hurd: FTBFS on hurd-i386 locally
Hello,
Svante Signell, le mar. 25 janv. 2022 16:15:46 +0100, a ecrit:
> make[3]: Entering directory '/home/.../hurd-0.9.git20211230/build-deb/
> libshouldbeinlibc'
> mkdir /home
> mkdir: cannot create directory ‘/home’: File exists
> mkdir /home/.../hurd-0.9.git20211230/debian/tmp/lib
> mkdir /home/.../hurd-0.9.git20211230/debian/tmp/lib/i386-gnu
Is this really unmodified source code? I don't see how there could be an
mkdir /home
triggered by the build rules you are patching:
> --- a/Makeconf 2022-01-25 10:57:58.000000000 +0100
> +++ b/Makeconf 2022-01-25 10:57:41.000000000 +0100
> @@ -240,7 +240,7 @@
> all: $(install-targets)
> install: $(DESTDIR)$(installationdir) $(addprefix $(DESTDIR)$(installationdir)/,$(install-targets))
> $(DESTDIR)$(installationdir):
> - @$(MKINSTALLDIRS) $@
> + -@$(MKINSTALLDIRS) $@
> $(addprefix $(DESTDIR)$(installationdir)/,$(installable)): $(DESTDIR)$(installationdir)/%: %
> $(INSTALL_PROGRAM) $(INSTALL-$<-ops) $< $@
> else
> @@ -255,7 +255,7 @@
> install-headers: $(DESTDIR)$(includedir)/$(installhdrsubdir) $(addprefix $(DESTDIR)$(includedir)/$(installhdrsubdir)/,$(installhdrs))
>
> $(DESTDIR)$(includedir)/$(installhdrsubdir): $(DESTDIR)$(includedir)
> - @$(MKINSTALLDIRS) $@
> + -@$(MKINSTALLDIRS) $@
>
> # Arrange to have the headers installed locally anytime we build the library.
> # Not quite perfect, but at least it does end up getting done; and once done
> @@ -304,7 +304,7 @@
>
> # Making installation directories
> $(addprefix $(DESTDIR),$(installationdirlist)): %:
> - @$(MKINSTALLDIRS) $@
> + -@$(MKINSTALLDIRS) $@
>
> # Building the target
> ifneq ($(makemode),misc)
None of these are to be /home
> --- a/mkinstalldirs 2021-12-30 15:16:15.000000000 +0100
> +++ b/mkinstalldirs 2022-01-25 15:41:19.000000000 +0100
> @@ -22,9 +22,9 @@
> esac
>
> if test ! -d "$pathcomp"; then
> - echo "mkdir $pathcomp" 1>&2
> + echo "mkdir -p $pathcomp" 1>&2
>
> - mkdir "$pathcomp" || lasterr=$?
> + mkdir -p "$pathcomp" || lasterr=$?
>
> if test ! -d "$pathcomp"; then
> errstatus=$lasterr
The -d test just above makes it so that since /home already exists, no
mkdir would be called.
> make[3]: Entering directory '/<<PKGBUILDDIR>>/build-
> deb/libshouldbeinlibc'
> mkdir /<<PKGBUILDDIR>>/debian/tmp/lib
> mkdir /<<PKGBUILDDIR>>/debian/tmp/lib/i386-gnu
> mkdir /<<PKGBUILDDIR>>/debian/tmp/usr
> mkdir /<<PKGBUILDDIR>>/debian/tmp/usr/include
Here there is not even an "mkdir" printed, so it's not the patch that
fixed it, but something else, which is what you should rather be after.
I'd say revert your patch, and check e.g. with stat why exactly the
"test ! -d $pathcomp"
wouldn't say that /home is already a directory.
And check with e.g. echo what rule exactly produces such
mkdir /home
on your system, there is really no reason for it to be there.
Samuel
Reply to: