bug#45826: SBCL / Common Lisp packages fail to build on aarch64
Hello Leo & Guillaume, > That's a good observation. I hadn't thought of it. > > I'm CC-ing Mathieu Othacehe and guix-sysadmin so that we can disable > these builds until we can fix the bug for real. Mathieu: this might > explain why the build farm is spending all its effort on aarch64. If we want to disable SBCL builds temporarily we can do something similar to what I did to disable Rust builds on non-x86_64 architectures here: 0ed631866cc0b7cece2b0a0b50e39b37ae91bb67. Regarding the rebuilding that is a limitation of the new Cuirass remote building mechanism I am aware of and I need to solve. As build failures are only cached of the machine performing the build and the builds are now distributed to all the machines across the build farm, we need to find a way to centralize the builds failure cache. It would also be nice to optionally publish the build failures cache so that the user doesn't try to build a package that is known to be failing on the build farm. Chris, have you encountered this issue with the Build Coordinator? Thanks, Mathieu
bug#45826: SBCL / Common Lisp packages fail to build on aarch64
Mathieu Othacehe writes: > Hello Leo & Guillaume, > >> That's a good observation. I hadn't thought of it. >> >> I'm CC-ing Mathieu Othacehe and guix-sysadmin so that we can disable >> these builds until we can fix the bug for real. Mathieu: this might >> explain why the build farm is spending all its effort on aarch64. > > If we want to disable SBCL builds temporarily we can do something > similar to what I did to disable Rust builds on non-x86_64 architectures > here: 0ed631866cc0b7cece2b0a0b50e39b37ae91bb67. > > Regarding the rebuilding that is a limitation of the new Cuirass remote > building mechanism I am aware of and I need to solve. As build failures > are only cached of the machine performing the build and the builds are > now distributed to all the machines across the build farm, we need to > find a way to centralize the builds failure cache. > > It would also be nice to optionally publish the build failures cache so > that the user doesn't try to build a package that is known to be failing > on the build farm. Chris, have you encountered this issue with the Build > Coordinator? Not really. The first thing to note is that I'm running the Guix Build Coordinator currently without the guix-daemon --cache-failures option, in fact it's probably unwise to do so, as it would mean that rather than some builds taking place, the guix-daemon could just return a cached failure. I should probably mention this in the README. The way this situation is dealt with in the Guix Build Coordinator is simplified by the agents not attempting builds where the derivation inputs aren't present. If an agent is unable to ensure all the inputs are present, it just reports this to the coordinator. The behaviour is configurable, but the default missing inputs hook will submit a new build for a missing input, but only if one doesn't already exist. Because of this, you don't get the behaviour where some missing prerequisite that fails to built is built over and over again, every time you try and build a derivation that uses it. signature.asc Description: PGP signature
bug#45618: development childhurd fails to build: glib@2.62.6: build system `meson'
Hi Ludo, that is not a fix. A workaround maybe. If possible, I'd like the actual fix to be to make the meson build system support cross compilation. According to https://mesonbuild.com/Cross-compilation.html : >Meson has full support for cross compilation. [...] >meson builddir/ --cross-file x86-linux Also, for the record, I find it a bad idea to switch packages from gnu-build-system to meson-build-system when the package in question supports building itself with either, as long as meson-build-system doesn't support cross-compilation. pgpfFTXmblrdP.pgp Description: OpenPGP digital signature
bug#45936: Cuirass search pagination and ordering is broken
Hello, Fixed with dea570775064573881dbec0c849fd50ff907c31a. Thanks, Mathieu
bug#45826: SBCL / Common Lisp packages fail to build on aarch64
On Sun, Jan 17, 2021 at 10:29:49AM +0100, Mathieu Othacehe wrote: > If we want to disable SBCL builds temporarily we can do something > similar to what I did to disable Rust builds on non-x86_64 architectures > here: 0ed631866cc0b7cece2b0a0b50e39b37ae91bb67. -- diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index 35a96b5754..91b5d6b6ec 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -452,6 +452,7 @@ test = { path = \"../libtest\" } (variable "LIBRARY_PATH") (files '("lib" "lib64") +(supported-systems '("x86_64-linux")) (synopsis "Compiler for the Rust programming language") (description "Rust is a systems programming language that provides memory safety and thread safety guarantees.") -- Hm, this would also prevent users from building the packages on their own machines. We need a way to make changes like this but limit them to the build farm.
bug#45826: SBCL / Common Lisp packages fail to build on aarch64
On Sun, Jan 17, 2021 at 02:11:11PM -0500, Leo Famulari wrote: > On Sun, Jan 17, 2021 at 10:29:49AM +0100, Mathieu Othacehe wrote: > > If we want to disable SBCL builds temporarily we can do something > > similar to what I did to disable Rust builds on non-x86_64 architectures > > here: 0ed631866cc0b7cece2b0a0b50e39b37ae91bb67. > > -- > diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm > index 35a96b5754..91b5d6b6ec 100644 > --- a/gnu/packages/rust.scm > +++ b/gnu/packages/rust.scm > @@ -452,6 +452,7 @@ test = { path = \"../libtest\" } > (variable "LIBRARY_PATH") > (files '("lib" "lib64") > > +(supported-systems '("x86_64-linux")) > (synopsis "Compiler for the Rust programming language") > (description "Rust is a systems programming language that provides memory > safety and thread safety guarantees.") > -- > > Hm, this would also prevent users from building the packages on their > own machines. We need a way to make changes like this but limit them to > the build farm. Would marking it unsubstitutable work? Or would we need build-local -- Efraim Flashner אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted signature.asc Description: PGP signature
bug#45943: php 7.4.14 fails tests on aarch64
php 7.4.14 fails to build on aarch64 due to test suite failures. Reverting back to php 7.4.13 by reverting commit d033540e6c113323089403a26e39f9a288c9c857 works fine for me, though obviously it would be better to track down the exact test suite failure and figure out a proper fix. This blocks numerous other packages from building, such as libsoup, which blocks building of network-manager. live well, vagrant signature.asc Description: PGP signature
bug#45295: “sudo guix system reconfigure” triggers re-clone/update of Git checkout
Ludovic Courtès skribis: > If you do, as a regular user: > > guix pull > sudo guix system reconfigure … > > the ‘guix system reconfigure’, as part of the downgrade-detection > machinery, triggers an update of the channel checkout(s) in > ~root/.cache, even though ~USER/.cache is already up-to-date. > > One way to avoid it might be to special-case the checkout cache > directory for when ‘SUDO_USER’ is set. Attached is a prototype that first clones/fetches from ~USER/.cache into ~root/.cache, in the hope that this avoids the need to access the upstream repo. (It requires ‘set-remote-url!’, which is only in Guile-Git ‘master’.) It’s a bit hacky but I can’t think of a better way to address this issue. In particular, having root use ~USER/.cache directly is not an option: it could end up creating root-owned files there. Thoughts? Ludo’. diff --git a/guix/git.scm b/guix/git.scm index a5103547d3..467d199e37 100644 --- a/guix/git.scm +++ b/guix/git.scm @@ -346,10 +346,7 @@ definitely available in REPOSITORY, false otherwise." (check-out? #t) starting-commit (log-port (%make-void-port "w")) - (cache-directory - (url-cache-directory - url (%repository-cache-directory) - #:recursive? recursive?))) + (cache-directory *unspecified*)) "Update the cached checkout of URL to REF in CACHE-DIRECTORY. Return three values: the cache directory name, and the SHA1 commit (a string) corresponding to REF, and the relation of the new commit relative to STARTING-COMMIT (if @@ -381,12 +378,41 @@ it unchanged." (string-append "origin/" branch (_ ref))) + (define default-cache-directory +(url-cache-directory url (%repository-cache-directory) + #:recursive? recursive?)) + + (when (and (zero? (getuid)) (getenv "SUDO_USER") + (unspecified? cache-directory)) +;; Fetch from the sudoer's cache before attempting to reach URL. +(let* ((home (and=> (false-if-exception (getpwnam (getenv "SUDO_USER"))) +passwd:dir)) + (peer (and home (url-cache-directory +url (string-append home "/.cache/guix/checkouts") +#:recursive? recursive? + (when (and peer (file-exists? peer)) +;; Fetch from PEER. After that, the "origin" remote points to PEER, +;; but we change it back to URL below. +(update-cached-checkout (pk 'update peer) +#:ref ref +#:recursive? recursive? +#:check-out? #f +#:cache-directory +default-cache-directory + (with-libgit2 - (let* ((cache-exists? (openable-repository? cache-directory)) - (repository(if cache-exists? - (repository-open cache-directory) - (clone* url cache-directory + (let* ((cache-directory (if (unspecified? cache-directory) + default-cache-directory + cache-directory)) + (cache-exists? (openable-repository? cache-directory)) + (repository (if cache-exists? + (repository-open cache-directory) + (clone* url cache-directory + ;; Ensure the "origin" remote points to URL. + (set-remote-url! repository "origin" url) + ;; Only fetch remote if it has not been cloned just before. + (pk 'x cache-directory 'avail? (reference-available? repository ref)) (when (and cache-exists? (not (reference-available? repository ref))) (let ((auth-method (%make-auth-ssh-agent))) @@ -433,8 +459,6 @@ it unchanged." #:key recursive? (log-port (%make-void-port "w")) - (cache-directory -(%repository-cache-directory)) (ref '(branch . "master"))) "Return two values: the content of the git repository at URL copied into a store directory and the sha1 of the top level commit in this directory. The @@ -464,10 +488,6 @@ Log progress and checkout info to LOG-PORT." (update-cached-checkout url #:recursive? recursive? #:ref ref -#:cache-directory -(url-cache-directory url cache-directory - #:recursive? -