Subject: Re: [bug#76899] Request for merging "c++-team" branch

From: Greg Hogan <[email-masked]>
Date: Fri, 25 Jul 2025 12:16:30 -0400

On Fri, Jul 25, 2025 at 10:15 AM Andreas Enge <[email-masked]> wrote:
>
> Hello,
>
> this branch is now first in line.
> Could you rebase it on master, possible a commit known (in an hour or two)
> to data.qa.guix.gnu.org, or for the time being just commit
>    eb7fb3c59d8de06ef942dce55ceb9565917e7ddb
> which is the merge of qt-team?
>
> And maybe add the commit of https://codeberg.org/guix/guix/pulls/1569 on top.
>
> Right now QA shows a lot of blocked packages:
>    https://qa.guix.gnu.org/branch/c++-team
>
> And CI failed with this message, inside
>    https://ci.guix.gnu.org/eval/2073835/log/raw
>
> (exception unbound-variable (value #f) (value "Unbound variable: ~S") (value (cmake-next)) (value #f))
> builder for `/gnu/store/sfff5zisrfw5r5s8dw5gsdwm413jdkr7-guix-package-cache.drv' failed to produce output path `/gnu/store/5b2bcrf30gh2q3rpzinq6ri1sxb1lnp1-guix-package-cache'
> cannot build derivation `/gnu/store/dzz0dd83pz4gx76rbhzp7zdz9b0x1354-profile.drv': 1 dependencies couldn't be built
>
> I wonder if this indicates a problem with the branch, cmake-next is
> definitely a package related to changes in this branch:
> grep cmake-next gnu/packages/*.scm
> gnu/packages/video.scm:      #:cmake cmake-next                ;needs cmake >= 3.28
> gnu/packages/xdisorg.scm:      #:cmake cmake-next
> So I think this is a place where cmake-next used to be used, but
> it does not exist anymore.
>
> See this commit:
> commit 83144c271c19af3a686a52c176fbb495f2c6d8dc
> Author: Murilo <[email-masked]>
> Date:   Tue Jul 22 14:53:44 2025 -0300
>
>     gnu: hyprsunset: Update to 0.3.0.
>
>     * gnu/packages/xdisorg.scm (hyprsunset): Update to 0.3.0.
>     [native-inputs]: Change gcc-14 to gcc-15.
>     [inputs]: Add hyprlang.
>     [arguments]{cmake}: Use cmake-next.
>
>     Signed-off-by: John Kehayias <[email-masked]>
>
> And this one:
> commit 686cc8728ebe6b0572bebb31fb671f5fa0880cf2
> Author: 宋文武 <[email-masked]>
> Date:   Mon Feb 10 13:05:44 2025 +0800
>
>     gnu: obs: Upduate to 31.0.1.
>
>     * gnu/packages/patches/obs-modules-location.patch: Adjust for 31.0.1.
>     * gnu/packages/video.scm (obs): Update to 31.0.1.
>     [inputs]: Add rnnoise and uthash.
>     [arguments]: Use cmake-next.  Add "-DENABLE_NVENC=OFF" to configure-flags.
>     Set OBS_EXECUTABLE_RPATH, OBS_LIBRARY_RPATH and OBS_MODULE_RPATH.
>
>     Change-Id: Iaa8e7fceb04b3bf7e69cb0a040938ca90dfa46d0
>     Signed-off-by: Andreas Enge <[email-masked]>
>
> I think this is a place where textual git rebases do work, but are not
> semantically correct; we will need a fixup to the commit that removes
> cmake-next to handle these two packages.
>
> Thanks,
>
> Andreas

I have the branch ready to go (and did find the recent use of
cmake-next earlier today) when the data service gives the next
greenlight.

QA found a build failure in [email-masked], so I am also locally testing
the following patch for a subtle bug lurking since 2020 (llvm is
currently aliased to llvm-13).

diff --git i/gnu/packages/llvm.scm w/gnu/packages/llvm.scm
index 087aa15f885..12a91c7579f 100644
--- i/gnu/packages/llvm.scm
+++ w/gnu/packages/llvm.scm
@@ -1352,7 +1352,7 @@ (define-public llvm-3.9.1
         "1vi9sf7rx1q04wj479rsvxayb6z740iaz3qniwp266fgp5a07n8z"))))
     (outputs '("out"))
     (arguments
-     (substitute-keyword-arguments (package-arguments llvm)
+     (substitute-keyword-arguments (package-arguments llvm-6)
        ((#:phases phases)
         #~(modify-phases #$phases
             (add-before 'build 'shared-lib-workaround