Subject: Re: [bug#74597] [PATCH] gnu: bluez: Update to 5.79.

From: Leo Famulari <[email-masked]>
Date: Sun, 11 May 2025 11:14:27 -0400

On Thu, Nov 28, 2024 at 10:11:51PM +0100, Julian Flake wrote:
> * gnu/packages/linux.scm (bluez): Update to 5.79.

Thanks for this patch!

I added it to the 'kernel-team' Git branch where it is being built now
on the build farm:

https://qa.guix.gnu.org/branch/kernel-team

However, with this patch, the bluez package fails to build, because the
installation procedure tries to write to /etc/bluetooth and fails:

------
[...]
 /gnu/store/7h0mnlwalw23j9jmvz5n1i5mqkgb4d06-coreutils-9.1/bin/mkdir -p '/etc/bluetooth'
/gnu/store/7h0mnlwalw23j9jmvz5n1i5mqkgb4d06-coreutils-9.1/bin/mkdir: cannot create directory ‘/etc/bluetooth’: Permission denied
make[2]: *** [Makefile:11515: install-confDATA] Error 1
make[1]: *** [Makefile:12389: install-am] Error 2
make: *** [Makefile:12382: install] Error 2
error: in phase 'install': uncaught exception:
%exception #<&invoke-error program: "make" arguments: ("install") exit-status: 2 term-signal: #f stop-signal: #f> 
phase `install' failed after 0.6 seconds
------

I worked around this by changing the value of sysconfdir:

------
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index eff6f7978a9..7d8eba34c66 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -6633,7 +6633,7 @@ (define-public bluez
     (arguments
      (list
       #:configure-flags
-      #~(list "--sysconfdir=/etc"
+      #~(list (string-append "--sysconfdir=" #$output "/etc")
               "--localstatedir=/var"
               "--enable-library"
               "--enable-wiimote"
------

... would that work correctly, or will bluez then look for run-time
configuration in the wrong location? I think that bluez should look for
configuration files in the well-known location /etc/bluetooth. Do you
agree?

Also, with that change, the installation procedure then fails to write
to /var:

------
[...]
install -dm555 /gnu/store/q084wf1nvq0zjs9bym5wj3l5f11nw41h-bluez-5.79/etc/bluetooth
install -dm700 /var/lib/bluetooth
install: cannot create directory ‘/var’: Permission denied
make[3]: *** [Makefile:13927: bluetoothd-fix-permissions] Error 1
make[2]: *** [Makefile:13172: install-data-am] Error 2
make[1]: *** [Makefile:12389: install-am] Error 2
make: *** [Makefile:12382: install] Error 2
error: in phase 'install': uncaught exception:
%exception #<&invoke-error program: "make" arguments: ("install") exit-status: 2 term-signal: #f stop-signal: #f> 
phase `install' failed after 0.9 seconds
------

What do you think?

Do you remember if you saw these problems when you made this patch, and
they are caused by a changed in the build tools, or is this the first
test of the patch?