Skip to content

Think a better way to handle architectures with fewer substitutes like riscv64-linux #18

@viferga

Description

@viferga

After one month from the 1.5.0 release, riscv64-linux builds started to fail. As of today, the current build takes 12h on my PC and it breaks in cmake-bootstrap package build during tests.

This is problematic, from Guix I received that isn't the same as building with Qemu that in the CI machines they have (they have real hardware).

Also substitutes are getting up to date a different rates.

Here is the ratio of substitutes of each official CI server: https://qa.guix.gnu.org/branch/master

I tried to use this: https://guix.gnu.org/manual/1.5.0/en/guix.html#Channels-with-Substitutes

Here:

; (use-modules (guix ci))
; (list (channel-with-substitutes-available
; (channel
; (name 'guix)
; (url "https://git.guix.gnu.org/guix.git")
; (branch "master")
; (introduction
; (make-channel-introduction
; "9edb3f66fd807b096b48283debdcddccfea34bad"
; (openpgp-fingerprint
; "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"))))
; "https://ci.guix.gnu.org"))

Which can only be used with https://ci.guix.gnu.org and https://git.guix.gnu.org/guix.git but I benchmarked the builds and it works slower. Also I checked the fixed commits and it's always pulling into HEAD, although we build riscv64-linux and it seems it is not working because otherwise the pull won't fallback into build the dependencies.

This system is good (if it worked), it would be great if we can find a way to validate it across any CI and make it work properly. That would be the perfect solution.

A part from that, one workaround that I thought in order to achieve this is to delay the builds, for example build the v20260127 the next month (fixing to a commit of that day), maybe there there are more substitutes and it can be built.

Right now I just disabled riscv64-linux architecture in order to avoid headaches.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions