Bug#1004348: hurd: FTBFS on hurd-i386 locally
Source: hurd
Version: 0.9.git20211230-5
Severity: important
Tags: patch
User: debian-hurd@lists.debian.org
Usertags: hurd
Hi,
Currently hurd FTBFS on GNU/Hurd due to a problem with the
Makeconf/mkinstalldirs scripts.
>From the build log:
make -C libshouldbeinlibc install
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
../../Makeconf:307: recipe for target '/home/.../hurd-
0.9.git20211230/debian/tmp/lib/i386-gnu' failed
make[3]: *** [/home/.../hurd-0.9.git20211230/debian/tmp/lib/i386-gnu]
Error 1
make[3]: Leaving directory '/home/.../hurd-0.9.git20211230/build-
deb/libshouldbeinlibc'
../Makefile:280: recipe for target 'libshouldbeinlibc-install' failed
make[2]: *** [libshouldbeinlibc-install] Error 2
On the buildd the build succeeds:
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
where
I: NOTICE: Log filtering will replace 'build/hurd-52h0Hx/hurd-
0.9.git20211230' with '<<PKGBUILDDIR>>'
Maybe building hurd in a chroot would also succeed. This has not been
attempted yet.
The attached patch, Makeconf.patch, has been used to successfully build
hurd on GNU/Hurd locally. Alternately one could modify mkinstalldirs
accordingly since MKINSTALLDIRS = $(top_srcdir)/mkinstalldirs, and
replacing mkdir with mkdir -p, as given in mkinstalldirs.patch.
With this patch hurd builds fine too. It might be the preferred
solution.
>From the build log:
make -C libshouldbeinlibc install
make[3]: Entering directory '/home/hurd-0.9.git20211230/build-
deb/libshouldbeinlibc'
mkdir -p /home/.../hurd-0.9.git20211230/debian/tmp/lib
mkdir -p /home/.../hurd-0.9.git20211230/debian/tmp/lib/i386-gnu
mkdir -p /home/.../hurd-0.9.git20211230/debian/tmp/usr
mkdir -p /home/.../hurd-0.9.git20211230/debian/tmp/usr/include
Thanks!
--- 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)
--- 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
Reply to: