Public bug reported:
Scripts generated by Autoconf 2.69 do not accept uutils mkdir in
AC_PROG_MKDIR_P, because its --version output doesn't match the strings
that check looks for. They then fall back to a relative "install-sh -d"
path, which can break builds. This makes atheme-services fail to build
from source in stonking.
== Details ==
Autoconf 2.69's AC_PROG_MKDIR_P only accepts mkdir if `mkdir --version`
starts with one of:
'mkdir (GNU coreutils) '*
'mkdir (coreutils) '*
'mkdir (fileutils) '4.1*
uutils mkdir (coreutils-from-uutils / rust-coreutils 0.12.0-1ubuntu1)
presumably prints "mkdir (uutils coreutils) ...", which matches none of
them. (This is inferred from the configure result below; the exact
uutils --version output was not checked directly.) Newer Autoconf uses
the looser pattern 'mkdir ('*'coreutils) '*, so regenerated configure
scripts are fine. But many upstream tarballs still ship 2.69-generated
configure scripts that the packaging does not regenerate.
When the check fails, configure falls back to MKDIR_P="$ac_install_sh
-d". That is often a relative path such as "build-aux/install-sh -c -d",
which breaks when it is used from a subdirectory.
== Example: atheme-services 7.2.12-2.1 ==
https://launchpad.net/ubuntu/+source/atheme-
services/7.2.12-2.1/+build/32793374
The top-level configure is regenerated by dh_autoreconf and finds mkdir:
checking for a race-free mkdir -p... /usr/bin/mkdir -p
modules/contrib/configure is the shipped Autoconf 2.69 copy and does not:
checking for a thread-safe mkdir -p... build-aux/install-sh -c -d
make install then runs it from modules/contrib/src and fails:
/bin/bash: line 3: build-aux/install-sh: No such file or directory
make[4]: *** [../buildsys.mk:510: install] Error 127
Debian (GNU coreutils) builds the same version fine on all
architectures. atheme-services has been missing from Ubuntu since this
started (it also failed in resolute).
== Possible fixes ==
- rust-coreutils: make mkdir --version output match what old Autoconf checks
accept, e.g. include "(coreutils)" or "(GNU coreutils)" the way other tools do
for compatibility. Whether that is acceptable to uutils is up to the
maintainers.
- Per package: regenerate the stale configure scripts, or pass
MKDIR_P="/usr/bin/mkdir -p" to configure. For atheme-services, either of these
should work (untested):
override_dh_autoreconf:
dh_autoreconf autoreconf -- -f -i -I m4 . modules/contrib
or adding MKDIR_P="/usr/bin/mkdir -p" to dh_auto_configure.
Other packages with unregenerated Autoconf 2.69 sub-configures are
likely affected the same way.
** Affects: atheme-services (Ubuntu)
Importance: Undecided
Status: New
** Affects: rust-coreutils (Ubuntu)
Importance: Undecided
Status: New
** Tags: update-excuse
** Tags added: update-excuse
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2169228
Title:
mkdir: --version not recognised by Autoconf 2.69 AC_PROG_MKDIR_P,
falls back to relative install-sh (breaks atheme-services FTBFS)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/atheme-services/+bug/2169228/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs