[bug#74798] gnu: gdb: Ensure configure-flags are appended to original package

Message ID da50345c588967a3e4332bd96b3c927657e3df4e.1733945442.git.rutherther@ditigal.xyz
State New
Headers
Series [bug#74798] gnu: gdb: Ensure configure-flags are appended to original package |

Commit Message

Rutherther Dec. 11, 2024, 7:35 p.m. UTC
  Since recently there has been a change to gdb package that introduced
configure-flags, three gdb packages broke, since they assumed there are no
configure-flags in gdb. That means they produced the same gdb as gdb-14.

* gnu/packages/embedded.scm (make-gdb-arm-none-eabi)[arguments]: Append
configure-flags to original flags.
* gnu/packages/gdb.scm (gdb-multiarch)[arguments]: Append
configure-flags to original flags.
* gnu/packages/gdb.scm (avr-gdb)[arguments]: Append
configure-flags to original flags.

Change-Id: Ia8748b86dc72197bd4eef307d091b6af44fc5611
---
 gnu/packages/embedded.scm | 14 ++++++++------
 gnu/packages/gdb.scm      | 32 ++++++++++++++++----------------
 2 files changed, 24 insertions(+), 22 deletions(-)


base-commit: 27750bd0cddddab9e900f289a5520314ef66487e
  

Comments

Janneke Nieuwenhuizen Dec. 11, 2024, 8:02 p.m. UTC | #1
Rutherther via Guix-patches via writes:

Hello,

> Since recently there has been a change to gdb package that introduced
> configure-flags, three gdb packages broke, since they assumed there are no
> configure-flags in gdb. That means they produced the same gdb as gdb-14.
>
> * gnu/packages/embedded.scm (make-gdb-arm-none-eabi)[arguments]: Append
> configure-flags to original flags.
> * gnu/packages/gdb.scm (gdb-multiarch)[arguments]: Append
> configure-flags to original flags.
> * gnu/packages/gdb.scm (avr-gdb)[arguments]: Append
> configure-flags to original flags.
>
> Change-Id: Ia8748b86dc72197bd4eef307d091b6af44fc5611

Thank you!  And sorry for breaking things :)

I've changed the commit message to

--8<---------------cut here---------------start------------->8---
gnu: gdb: Fix build of target-specific variants.

This is a follow-up to commit
    baf4a3330762d184f5b10846151a9e3afd7c3dbe
    gnu: Add gdb-15.2, with support for the 64bit Hurd.

That commit changed the gdb package, introducing #:configure-flags, breaking
three gdb packages, since they assumed there are no #:configure-flags in gdb.
That means they produced the same gdb as gdb-14.

This patch fixes that by ensuring #:configure-flags are appended to original
package.

* gnu/packages/embedded.scm (make-gdb-arm-none-eabi)[arguments]:
Append #configure-flags to original flags.
(gdb-multiarch)[arguments]: Likewise.
(avr-gdb)[arguments]: Likewise.
--8<---------------cut here---------------end--------------->8---

and pushed to master as 98908e0777889aeec2796dbdc4f0809a1898dd3b.

Greetings,
Janneke
  

Patch

diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index 0dcfc6669f..930857d0aa 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -741,12 +741,14 @@  (define make-gdb-arm-none-eabi
       (inherit gdb)
       (name "gdb-arm-none-eabi")
       (arguments
-       `(#:configure-flags '("--target=arm-none-eabi"
-                             "--enable-multilib"
-                             "--enable-interwork"
-                             "--enable-languages=c,c++"
-                             "--disable-nls")
-         ,@(package-arguments gdb))))))
+       (substitute-keyword-arguments (package-arguments gdb)
+         ((#:configure-flags flags '())
+          #~(cons* "--target=arm-none-eabi"
+                   "--enable-multilib"
+                   "--enable-interwork"
+                   "--enable-languages=c,c++"
+                   "--disable-nls"
+                   #$flags)))))))
 
 (define-public libjaylink
   (package
diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm
index af5ebde3f6..ef100306b4 100644
--- a/gnu/packages/gdb.scm
+++ b/gnu/packages/gdb.scm
@@ -184,14 +184,14 @@  (define-public gdb-multiarch
   (package/inherit gdb-14
     (name "gdb-multiarch")
     (arguments
-     (append
-      (list #:configure-flags
-            #~(list "--enable-targets=all"
-                    "--enable-multilib"
-                    "--enable-interwork"
-                    "--enable-languages=c,c++"
-                    "--disable-nls"))
-      (package-arguments gdb-14)))
+     (substitute-keyword-arguments (package-arguments gdb-14)
+       ((#:configure-flags flags '())
+        #~(cons* "--enable-targets=all"
+                 "--enable-multilib"
+                 "--enable-interwork"
+                 "--enable-languages=c,c++"
+                 "--disable-nls"
+                 #$flags))))
     (synopsis "The GNU debugger (with all architectures enabled)")))
 
 (define-public gdb-minimal
@@ -210,14 +210,14 @@  (define-public avr-gdb
   (package/inherit gdb-14
     (name "avr-gdb")
     (arguments
-     (append
-      (list #:configure-flags
-            #~(list "--target=avr"
-                    "--disable-nls"
-                    "--enable-languages=c,c++"
-                    "--with-system-readline"
-                    "--enable-source-highlight"))
-      (package-arguments gdb-14)))
+     (substitute-keyword-arguments (package-arguments gdb-14)
+       ((#:configure-flags flags '())
+        #~(cons* "--target=avr"
+                 "--disable-nls"
+                 "--enable-languages=c,c++"
+                 "--with-system-readline"
+                 "--enable-source-highlight"
+                 #$flags))))
     (synopsis "The GNU Debugger for AVR")
     (description
      "GDB is the GNU debugger.  With it, you can monitor what a program is