Subject: bug#77548: closed (Re: bug#77570: Build failures on core packages following daemon changes)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 15 Apr 2025 10:09:02 +0000

Your bug report

#77570: multiple packages fail check phases due to read-only file system root

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
77570: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=77570
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#77570: Build failures on core packages following daemon changes
From: Ludovic Courtès <[email-masked]>
To: Ludovic Courtès <[email-masked]>
Cc: keinflue <[email-masked]>, Ada Stevenson <[email-masked]>, Reepca Russelstein <[email-masked]>, [email-masked]
Date: Tue, 15 Apr 2025 12:07:44 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Commit 3bedd82ac3c7c69e321d79bed6c77e7e055a2063 updated the ‘guix’
package, fixing this particular issue.

Please report any other problems you find.  It’s particularly valuable
if you’re building most things locally.

Ludo’.

Subject: multiple packages fail check phases due to read-only file system root
From: keinflue <[email-masked]>
To: [email-masked]
Cc: Ludo <[email-masked]>
Date: Sat, 05 Apr 2025 09:41:37 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi everyone,

probably since commit 40f69b586a several packages including shepherd, go 
(bootstrap), ruby and scons fail their check phases.

They all fail with EROFS "read-only file system" errors. The pattern 
seems to be that these packages attempt to remove non-existent files 
under /, e.g. /does-not-exist for the pid-file.sh test case in shepherd. 
They expect the unlink/unlinkat syscall to fail with ENOENT, but the 
linux kernel produces EROFS if the file system is read-only, even if the 
file doesn't exist, and glibc does not modify this behavior for the C 
library functions.

On one hand this is probably not POSIX-conforming behavior of 
linux/glibc and there was a patch rectifying this in version 3.2 (commit 
e6bc45d65d) of the kernel, but that regressed with 3.6 (commit 
c30dabfe5d) from what I can tell.

On the the other hand, I do not think that attempting to delete 
arbitrary files on the file system root with the assumption that it will 
fail in specific ways is a good idea either and that the files do not 
actually exist is not a good idea either.

Not sure what the correct approach to fixing this would be.