Subject: [bug#38436] [PATCH] gnu: Add gfortran-toolchain

From: Ludovic Courtès <[email-masked]>
Date: Mon, 09 Dec 2019 15:30:38 +0100

Hi Konrad,

Konrad Hinsen <[email-masked]> skribis:

> * gnu/packages/commencement.scm: (gfortran-toolchain): New variable.
> * gnu/packages/commencement.scm: (make-gcc-toolchain): Added argument "language"

This LGTM, though I’d have a minor request:

> -      (synopsis "Complete GCC tool chain for C/C++ development")
> +      (synopsis (format #f
> +                        "Complete GCC tool chain for ~a development"
> +                        language))
>        (description
> -       "This package provides a complete GCC tool chain for C/C++ development to
> -be   installed in user profiles.  This includes GCC, as well as libc (headers
> -an  d binaries, plus debugging symbols in the @code{debug} output), and Binutils.")
> +       (format
> +        #f
> +        "This package provides a complete GCC tool chain for ~a development to
> +be installed in user profiles.  This includes GCC, as well as libc (headers
> +and binaries, plus debugging symbols in the @code{debug} output), and Binutils."
> +        language))

There’s this weird requirement that for the sake of i18n, we must not
construct synopses/descriptions like this:

  https://guix.gnu.org/manual/devel/en/html_node/Synopses-and-Descriptions.html

I’d suggest something as shown below.

Could you update the patch along those lines?

Thanks,
Ludo’.

diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 68030376fc..00de771bc4 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -2523,8 +2523,12 @@ COREUTILS-FINAL vs. COREUTILS, etc."
 ;; (define-public gcc-glibc-2.27-toolchain
 ;;   (make-gcc-toolchain gcc glibc-2.27))
 
-(define* (make-gcc-toolchain gcc
+(define* (make-gcc-toolchain language gcc
                              #:optional
+                             ;; Note: Keep the synopsis literal string here so
+                             ;; that xgettext "sees" it.
+                             (synopsis
+                              "Complete GCC tool chain for C/C++ development")
                              (libc #f))
   "Return a complete toolchain for GCC. If LIBC is specified, target that libc."
   (let ((gcc (if libc (make-gcc-libc gcc libc) gcc))
@@ -2559,7 +2563,7 @@ COREUTILS-FINAL vs. COREUTILS, etc."
       (search-paths (package-search-paths gcc))
 
       (license (package-license gcc))
-      (synopsis "Complete GCC tool chain for C/C++ development")
+      (synopsis synopsis)
       (description
        "This package provides a complete GCC tool chain for C/C++ development to
 be   installed in user profiles.  This includes GCC, as well as libc (headers