** Description changed:

- gkamus 1.0-0ubuntu7 fails to build in stonking:
- https://launchpad.net/ubuntu/+source/gkamus/1.0-0ubuntu7/+build/32793444
+ [ Impact ]
  
-   test -z "/usr/bin" || .././install-sh -c -d ".../debian/tmp/usr/bin"
-   /bin/bash: line 1: .././install-sh: Permission denied
-   make[3]: *** [Makefile:236: install-binPROGRAMS] Error 126
+ atheme-services fails to build from source in stonking when built with
+ rust-coreutils.
  
- The shipped (automake 1.11-era) configure hardcodes the accepted `mkdir
- --version` outputs for its "thread-safe mkdir -p" check:
+ The package ships modules/contrib with a stale Autoconf 2.69-generated 
configure script. Autoconf 2.69 AC_PROG_MKDIR_P checks `mkdir --version` 
against:
+   'mkdir (GNU coreutils) '* | 'mkdir (coreutils) '* | 'mkdir (fileutils) '4.1*
  
-   'mkdir (GNU coreutils) '* | 'mkdir (coreutils) '* | 'mkdir (fileutils)
- '4.1*
+ Because rust-coreutils outputs `mkdir (uutils coreutils) <version>`, the
+ pattern does not match and configure falls back to `MKDIR_P = build-
+ aux/install-sh -c -d`. During `make install` inside
+ `modules/contrib/src`, invoking `$(MKDIR_P)` fails with Error 127
+ because `build-aux/install-sh` does not exist relative to the build
+ subdirectory.
  
- With rust-coreutils providing mkdir, none of these match, so configure
- falls back to `MKDIR_P = ./install-sh -c -d` (build log: "checking for a
- thread-safe mkdir -p... ./install-sh -c -d"). install-sh (as well as
- missing and depcomp) are mode 0664 in gkamus_1.0.orig.tar.gz, so the
- install step fails.
+ [ Fix ]
+ 
+ In debian/rules, set `export MKDIR_P = /bin/mkdir -p`. This pre-
+ populates the MKDIR_P variable for both top-level and sub-package
+ configure scripts and make invocations, bypassing the obsolete version-
+ string check and preventing fallback to the non-existent relative
+ install-sh.
+ 
+ [ Test Plan ]
+ 
+ 1. In a clean Ubuntu stonking environment with rust-coreutils installed:
+    apt build-dep atheme-services
+    dpkg-buildpackage -us -uc -b
+ 2. Verify that modules/contrib configure resolves MKDIR_P to /bin/mkdir -p 
instead of build-aux/install-sh.
+ 3. Verify that `make install` inside `modules/contrib/src` completes with 
exit code 0.
+ 4. Verify that binary packages (atheme-services, atheme-services-contrib, 
atheme-services-dbgsym) are produced successfully.
+ 
+ [ Where problems could occur ]
+ 
+ The fix exports MKDIR_P=/bin/mkdir -p in debian/rules. /bin/mkdir -p is
+ standard across all Debian and Ubuntu systems. No impact on runtime
+ binaries or behavior; changes are restricted strictly to package build
+ and installation time.
+ 
+ [ Other Info ]
+ 
+ 1. Upstream uutils declined PR #15034 
(https://github.com/uutils/coreutils/pull/15034) to keep their branding in 
--version. Therefore, rust-coreutils will not carry a version-string delta, and 
packages with stale Autoconf 2.69 sub-configures must set MKDIR_P directly.
+ 2. Target release: stonking (atheme-services 7.2.12-2.1ubuntu1).
+ 3. Testbed verification: Clean build verified on Ubuntu testbed; all binary 
packages built with 0 errors.
+ 
+ --- [ Original Report ]
+ 
+ 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.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2169226

Title:
  gkamus FTBFS: old configure doesn't recognise uutils mkdir, falls back
  to non-executable install-sh

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gkamus/+bug/2169226/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to