GNU bug report logs -
#38436
[PATCH] gnu; Add gfortran-toolchain
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 38436 in the body.
You can then email your comments to 38436 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
guix-patches <at> gnu.org
:
bug#38436
; Package
guix-patches
.
(Sat, 30 Nov 2019 14:51:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Konrad Hinsen <konrad.hinsen <at> fastmail.net>
:
New bug report received and forwarded. Copy sent to
guix-patches <at> gnu.org
.
(Sat, 30 Nov 2019 14:51:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/commencement.scm: (gfortran-toolchain): New variable.
* gnu/packages/commencement.scm: (make-gcc-toolchain): Added argument "language"
---
gnu/packages/commencement.scm | 52 +++++++++++++++++++++++------------
1 file changed, 34 insertions(+), 18 deletions(-)
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 6a382c7517..8c57af749e 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -2515,16 +2515,23 @@ COREUTILS-FINAL vs. COREUTILS, etc."
;;; GCC toolchain.
;;;
+;;; Toolchain packages combine everything needed for compilation,
+;;; and ensure that ld-wrapper comes before binutils' ld in the
+;;; user's profile, as otherwise dynamic library lookup would not
+;;; work correctly.
+
;; Using the following procedure, a gcc toolchain targeting glibc-2.27 can be
;; instantiated like this:
;;
;; (define-public gcc-glibc-2.27-toolchain
;; (make-gcc-toolchain gcc glibc-2.27))
-(define* (make-gcc-toolchain gcc
- #:optional
- (libc #f))
- "Return a complete toolchain for GCC. If LIBC is specified, target that libc."
+(define* (make-gcc-toolchain language
+ gcc
+ #:optional
+ (libc #f))
+ "Return a complete toolchain for GCC. If LIBC is specified, target that libc.
+ Insert LANGUAGE into the documentation strings."
(let ((gcc (if libc (make-gcc-libc gcc libc) gcc))
(libc (if libc libc glibc-final)))
(package
@@ -2557,17 +2564,19 @@ 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 (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))
(home-page "https://gcc.gnu.org/")
(outputs '("out" "debug" "static"))
- ;; The main raison d'être of this "meta-package" is (1) to conveniently
- ;; install everything that we need, and (2) to make sure ld-wrapper comes
- ;; before Binutils' ld in the user's profile.
(inputs `(("gcc" ,gcc)
("ld-wrapper" ,(car (assoc-ref %final-inputs "ld-wrapper")))
("binutils" ,binutils-final)
@@ -2576,27 +2585,34 @@ an d binaries, plus debugging symbols in the @code{debug} output), and Binutils
("libc-static" ,libc "static"))))))
(define-public gcc-toolchain
- (make-gcc-toolchain gcc-final))
+ (make-gcc-toolchain "C/C++" gcc-final))
(define-public gcc-toolchain-4.8
- (make-gcc-toolchain gcc-4.8))
+ (make-gcc-toolchain "C/C++" gcc-4.8))
(define-public gcc-toolchain-4.9
- (make-gcc-toolchain gcc-4.9))
+ (make-gcc-toolchain "C/C++" gcc-4.9))
(define-public gcc-toolchain-5
- (make-gcc-toolchain gcc-5))
+ (make-gcc-toolchain "C/C++" gcc-5))
(define-public gcc-toolchain-6
- (make-gcc-toolchain gcc-6))
+ (make-gcc-toolchain "C/C++" gcc-6))
(define-public gcc-toolchain-7
gcc-toolchain)
(define-public gcc-toolchain-8
- (make-gcc-toolchain gcc-8))
+ (make-gcc-toolchain "C/C++" gcc-8))
(define-public gcc-toolchain-9
- (make-gcc-toolchain gcc-9))
+ (make-gcc-toolchain "C/C++" gcc-9))
+
+;; Provide the toolchain package only for the version of gfortran
+;; that is used by Guix intenally to build Fortran libraries,
+;; because combining code compiled with different versions can
+;; cause problems.
+(define-public gfortran-toolchain
+ (make-gcc-toolchain "Fortran" gfortran))
;;; commencement.scm ends here
--
2.24.0
Information forwarded
to
guix-patches <at> gnu.org
:
bug#38436
; Package
guix-patches
.
(Mon, 02 Dec 2019 15:02:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 38436 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/commencement.scm: (gfortran-toolchain): New variable.
* gnu/packages/commencement.scm: (make-gcc-toolchain): Added argument "language"
---
gnu/packages/commencement.scm | 52 +++++++++++++++++++++++------------
1 file changed, 34 insertions(+), 18 deletions(-)
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 6a382c7517..8c57af749e 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -2515,16 +2515,23 @@ COREUTILS-FINAL vs. COREUTILS, etc."
;;; GCC toolchain.
;;;
+;;; Toolchain packages combine everything needed for compilation,
+;;; and ensure that ld-wrapper comes before binutils' ld in the
+;;; user's profile, as otherwise dynamic library lookup would not
+;;; work correctly.
+
;; Using the following procedure, a gcc toolchain targeting glibc-2.27 can be
;; instantiated like this:
;;
;; (define-public gcc-glibc-2.27-toolchain
;; (make-gcc-toolchain gcc glibc-2.27))
-(define* (make-gcc-toolchain gcc
- #:optional
- (libc #f))
- "Return a complete toolchain for GCC. If LIBC is specified, target that libc."
+(define* (make-gcc-toolchain language
+ gcc
+ #:optional
+ (libc #f))
+ "Return a complete toolchain for GCC. If LIBC is specified, target that libc.
+ Insert LANGUAGE into the documentation strings."
(let ((gcc (if libc (make-gcc-libc gcc libc) gcc))
(libc (if libc libc glibc-final)))
(package
@@ -2557,17 +2564,19 @@ 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 (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))
(home-page "https://gcc.gnu.org/")
(outputs '("out" "debug" "static"))
- ;; The main raison d'être of this "meta-package" is (1) to conveniently
- ;; install everything that we need, and (2) to make sure ld-wrapper comes
- ;; before Binutils' ld in the user's profile.
(inputs `(("gcc" ,gcc)
("ld-wrapper" ,(car (assoc-ref %final-inputs "ld-wrapper")))
("binutils" ,binutils-final)
@@ -2576,27 +2585,34 @@ an d binaries, plus debugging symbols in the @code{debug} output),
and Binutils
("libc-static" ,libc "static"))))))
(define-public gcc-toolchain
- (make-gcc-toolchain gcc-final))
+ (make-gcc-toolchain "C/C++" gcc-final))
(define-public gcc-toolchain-4.8
- (make-gcc-toolchain gcc-4.8))
+ (make-gcc-toolchain "C/C++" gcc-4.8))
(define-public gcc-toolchain-4.9
- (make-gcc-toolchain gcc-4.9))
+ (make-gcc-toolchain "C/C++" gcc-4.9))
(define-public gcc-toolchain-5
- (make-gcc-toolchain gcc-5))
+ (make-gcc-toolchain "C/C++" gcc-5))
(define-public gcc-toolchain-6
- (make-gcc-toolchain gcc-6))
+ (make-gcc-toolchain "C/C++" gcc-6))
(define-public gcc-toolchain-7
gcc-toolchain)
(define-public gcc-toolchain-8
- (make-gcc-toolchain gcc-8))
+ (make-gcc-toolchain "C/C++" gcc-8))
(define-public gcc-toolchain-9
- (make-gcc-toolchain gcc-9))
+ (make-gcc-toolchain "C/C++" gcc-9))
+
+;; Provide the toolchain package only for the version of gfortran
+;; that is used by Guix intenally to build Fortran libraries,
+;; because combining code compiled with different versions can
+;; cause problems.
+(define-public gfortran-toolchain
+ (make-gcc-toolchain "Fortran" gfortran))
;;; commencement.scm ends here
--
2.24.0
Information forwarded
to
guix-patches <at> gnu.org
:
bug#38436
; Package
guix-patches
.
(Mon, 09 Dec 2019 14:31:01 GMT)
Full text and
rfc822 format available.
Message #11 received at 38436 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hi Konrad,
Konrad Hinsen <konrad.hinsen <at> fastmail.net> 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’.
[Message part 2 (text/x-patch, inline)]
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
Information forwarded
to
guix-patches <at> gnu.org
:
bug#38436
; Package
guix-patches
.
(Tue, 10 Dec 2019 13:12:02 GMT)
Full text and
rfc822 format available.
Message #14 received at 38436 <at> debbugs.gnu.org (full text, mbox):
Hi Ludo,
> 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
Is that a specific rule for Guix? GNU gettext allows format strings,
and its manual refers to
https://people.csail.mit.edu/jaffer/slib/Format-Specification.html
for format string syntax in Scheme. For Guile specifically,
it refers to (ice-9 format).
Cheers,
Konrad
Information forwarded
to
guix-patches <at> gnu.org
:
bug#38436
; Package
guix-patches
.
(Tue, 10 Dec 2019 14:39:01 GMT)
Full text and
rfc822 format available.
Message #17 received at 38436 <at> debbugs.gnu.org (full text, mbox):
Hi,
Konrad Hinsen <konrad.hinsen <at> fastmail.net> skribis:
>> 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
>
> Is that a specific rule for Guix?
Specific to the ‘guix-package’ domain, even.
Concretely, the idea is that <package> objects carry the untranslated
English-language synopsis and description. This is useful for things
like ‘guix search’ or for web page generators, because they can query
translation explicitly when they need it.
We could allow constructed strings in there, like this:
(package
;; …
(synopsis (format #f (G_ "This is a ~a compiler") "C")))
But in that case, we’d have to perform translation right in the ‘G_’
call, and thus <package> would end up carrying a translated string.
So far we’ve managed to avoid that, it’s a constraint, but hopefully one
we can live with.
I hope that makes sense!
Ludo’.
Information forwarded
to
guix-patches <at> gnu.org
:
bug#38436
; Package
guix-patches
.
(Wed, 11 Dec 2019 10:31:02 GMT)
Full text and
rfc822 format available.
Message #20 received at 38436 <at> debbugs.gnu.org (full text, mbox):
Hi Ludo,
>> Is that a specific rule for Guix?
>
> Specific to the ‘guix-package’ domain, even.
Thanks for the explanation! That all makes sense, it's just not very
obvious.
I'll send a revised patch in which all synopses and descriptions are
literal string.
Cheers,
Konrad.
Information forwarded
to
guix-patches <at> gnu.org
:
bug#38436
; Package
guix-patches
.
(Wed, 11 Dec 2019 10:31:02 GMT)
Full text and
rfc822 format available.
Message #23 received at 38436 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/commencement.scm: (gfortran-toolchain): New variable.
* gnu/packages/commencement.scm: (make-gcc-toolchain): Added argument "language"
---
gnu/packages/commencement.scm | 54 ++++++++++++++++++++++++-----------
1 file changed, 38 insertions(+), 16 deletions(-)
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 68030376fc..e147836fc5 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -2517,16 +2517,29 @@ COREUTILS-FINAL vs. COREUTILS, etc."
;;; GCC toolchain.
;;;
-;; Using the following procedure, a gcc toolchain targeting glibc-2.27 can be
-;; instantiated like this:
-;;
-;; (define-public gcc-glibc-2.27-toolchain
-;; (make-gcc-toolchain gcc glibc-2.27))
+;;; Toolchain packages combine everything needed for compilation,
+;;; and ensure that ld-wrapper comes before binutils' ld in the
+;;; user's profile, as otherwise dynamic library lookup would not
+;;; work correctly.
+
+;; The synopsis and description must be literal strings (not constructed
+;; using string-append or format) to make them translatable.
+(define gcc-synopsis
+ "Complete GCC tool chain for C/C++ development")
+(define gcc-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
+and binaries, plus debugging symbols in the @code{debug} output), and
+binutils.")
(define* (make-gcc-toolchain gcc
- #:optional
- (libc #f))
- "Return a complete toolchain for GCC. If LIBC is specified, target that libc."
+ #:optional
+ (synopsis gcc-synopsis)
+ (description gcc-description)
+ (libc #f))
+ "Return a complete toolchain for GCC. If SYNOPSIS and/or
+DESCRIPTION are given, use them for documentation instead of the
+defaults for the C/C++ toolchain. If LIBC is specified, target that libc."
(let ((gcc (if libc (make-gcc-libc gcc libc) gcc))
(libc (if libc libc glibc-final)))
(package
@@ -2559,17 +2572,11 @@ COREUTILS-FINAL vs. COREUTILS, etc."
(search-paths (package-search-paths gcc))
(license (package-license gcc))
- (synopsis "Complete GCC tool chain for C/C++ development")
- (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.")
+ (synopsis synopsis)
+ (description description)
(home-page "https://gcc.gnu.org/")
(outputs '("out" "debug" "static"))
- ;; The main raison d'être of this "meta-package" is (1) to conveniently
- ;; install everything that we need, and (2) to make sure ld-wrapper comes
- ;; before Binutils' ld in the user's profile.
(inputs `(("gcc" ,gcc)
("ld-wrapper" ,(car (assoc-ref %final-inputs "ld-wrapper")))
("binutils" ,binutils-final)
@@ -2601,4 +2608,19 @@ an d binaries, plus debugging symbols in the @code{debug} output), and Binutils
(define-public gcc-toolchain-9
(make-gcc-toolchain gcc-9))
+;; Provide the Fortran toolchain package only for the version of gfortran that
+;; is used by Guix intenally to build Fortran libraries, because combining
+;; code compiled with different versions can cause problems.
+
+(define gfortran-synopsis
+ "Complete GCC tool chain for Fortran development")
+(define gfortran-description
+ "This package provides a complete GCC tool chain for Fortran 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.")
+
+(define-public gfortran-toolchain
+ (make-gcc-toolchain gfortran gfortran-synopsis gfortran-description))
+
;;; commencement.scm ends here
--
2.24.0
Information forwarded
to
guix-patches <at> gnu.org
:
bug#38436
; Package
guix-patches
.
(Wed, 11 Dec 2019 13:02:02 GMT)
Full text and
rfc822 format available.
Message #26 received at 38436 <at> debbugs.gnu.org (full text, mbox):
Hi Konrad,
Konrad Hinsen <konrad.hinsen <at> fastmail.net> skribis:
> * gnu/packages/commencement.scm: (gfortran-toolchain): New variable.
> * gnu/packages/commencement.scm: (make-gcc-toolchain): Added argument "language"
We’re almost there. :-)
> +;; The synopsis and description must be literal strings (not constructed
> +;; using string-append or format) to make them translatable.
> +(define gcc-synopsis
> + "Complete GCC tool chain for C/C++ development")
> +(define gcc-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
> +and binaries, plus debugging symbols in the @code{debug} output), and
> +binutils.")
>
> (define* (make-gcc-toolchain gcc
> - #:optional
> - (libc #f))
> - "Return a complete toolchain for GCC. If LIBC is specified, target that libc."
> + #:optional
> + (synopsis gcc-synopsis)
> + (description gcc-description)
xgettext recognizes (synopsis "foo"), but it won’t catch the variables
defined above, because they’re not preceded by the ‘synopsis’ keyword or
anything.
That’s why I proposed in <https://issues.guix.gnu.org/issue/38436#2> to
arrange to keep the string wrapped in (synopsis …).
It’d be great if you could give it a spin, or I can make the change on
your behalf if you prefer.
Apologies for making something simple somewhat complicated!
Thanks,
Ludo’.
Information forwarded
to
guix-patches <at> gnu.org
:
bug#38436
; Package
guix-patches
.
(Wed, 11 Dec 2019 20:36:02 GMT)
Full text and
rfc822 format available.
Message #29 received at 38436 <at> debbugs.gnu.org (full text, mbox):
Hi Ludo,
> xgettext recognizes (synopsis "foo"), but it won’t catch the variables
> defined above, because they’re not preceded by the ‘synopsis’ keyword or
> anything.
OK, so what's the exact rule? If the literal string has to be right
after the symbol "synopsis", then your optional-arg approach shouldn't
work when the argument is supplied at the call site (in
gfortran-toolchain).
That would still leave the option of doing something like
(define-public gfortran-toolchain
(package (inherit (make-gcc-toolchain gfortran))
(synopsis ...)
(description ...)
Cheers,
Konrad.
Information forwarded
to
guix-patches <at> gnu.org
:
bug#38436
; Package
guix-patches
.
(Thu, 12 Dec 2019 13:22:01 GMT)
Full text and
rfc822 format available.
Message #32 received at 38436 <at> debbugs.gnu.org (full text, mbox):
Hi Konrad,
Konrad Hinsen <konrad.hinsen <at> fastmail.net> skribis:
>> xgettext recognizes (synopsis "foo"), but it won’t catch the variables
>> defined above, because they’re not preceded by the ‘synopsis’ keyword or
>> anything.
>
> OK, so what's the exact rule? If the literal string has to be right
> after the symbol "synopsis", then your optional-arg approach shouldn't
> work when the argument is supplied at the call site (in
> gfortran-toolchain).
Good point!
The exact rule is given the the ‘--keyword’ options in
po/packages/Makevars. Namely, xgettext will recognize:
(synopsis "…")
Thus, something like:
(define* (foo #:key (synopsis "…"))
…)
works.
Now, for gfortran, you could resort to a not-so-fancy hack (used in
‘define-word-list-dictionary’ in (gnu packages aspell)) like this:
(let-syntax ((synopsis (syntax-rules () ((_ str) str))))
(make-gcc-toolchain gfortran #:synopsis (synopsis "…")))
Quite an effort for this little thing, but I couldn’t find of anything
simpler.
HTH,
Ludo’.
Information forwarded
to
guix-patches <at> gnu.org
:
bug#38436
; Package
guix-patches
.
(Thu, 12 Dec 2019 15:20:01 GMT)
Full text and
rfc822 format available.
Message #35 received at 38436 <at> debbugs.gnu.org (full text, mbox):
Hi Ludo,
> The exact rule is given the the ‘--keyword’ options in
> po/packages/Makevars. Namely, xgettext will recognize:
Great, good to know!
> (let-syntax ((synopsis (syntax-rules () ((_ str) str))))
> (make-gcc-toolchain gfortran #:synopsis (synopsis "…")))
>
> Quite an effort for this little thing, but I couldn’t find of anything
> simpler.
It looks like I still don't understand how this works. Why wouldn't
the simpler
(let ((synopsis (lambda (_) _)))
(make-gcc-toolchain gfortran #:synopsis (synopsis "…")))
be sufficient? And is there a good reason to prefer such constructs
to
(define-public gfortran-toolchain
(package (inherit (make-gcc-toolchain gfortran))
(synopsis ...)
(description ...)
which I think expresses the intention more clearly?
Cheers,
Konrad
Information forwarded
to
guix-patches <at> gnu.org
:
bug#38436
; Package
guix-patches
.
(Thu, 12 Dec 2019 21:23:02 GMT)
Full text and
rfc822 format available.
Message #38 received at 38436 <at> debbugs.gnu.org (full text, mbox):
Konrad Hinsen <konrad.hinsen <at> fastmail.net> skribis:
>> (let-syntax ((synopsis (syntax-rules () ((_ str) str))))
>> (make-gcc-toolchain gfortran #:synopsis (synopsis "…")))
>>
>> Quite an effort for this little thing, but I couldn’t find of anything
>> simpler.
>
> It looks like I still don't understand how this works. Why wouldn't
> the simpler
>
> (let ((synopsis (lambda (_) _)))
> (make-gcc-toolchain gfortran #:synopsis (synopsis "…")))
Ah yes, that would work too.
> be sufficient? And is there a good reason to prefer such constructs
> to
>
> (define-public gfortran-toolchain
> (package (inherit (make-gcc-toolchain gfortran))
> (synopsis ...)
> (description ...)
>
> which I think expresses the intention more clearly?
Oh I guess I had overlooked this proposal, I agree that it’s nicer.
Apologies for the confusion!
Ludo’.
Information forwarded
to
guix-patches <at> gnu.org
:
bug#38436
; Package
guix-patches
.
(Fri, 13 Dec 2019 12:54:01 GMT)
Full text and
rfc822 format available.
Message #41 received at 38436 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/commencement.scm: (gfortran-toolchain): New variable.
---
gnu/packages/commencement.scm | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 68030376fc..541dedce0d 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -2601,4 +2601,17 @@ an d binaries, plus debugging symbols in the @code{debug} output), and Binutils
(define-public gcc-toolchain-9
(make-gcc-toolchain gcc-9))
+;; Provide the Fortran toolchain package only for the version of gfortran that
+;; is used by Guix intenally to build Fortran libraries, because combining
+;; code compiled with different versions can cause problems.
+
+(define-public gfortran-toolchain
+ (package (inherit (make-gcc-toolchain gfortran))
+ (synopsis "Complete GCC tool chain for Fortran development")
+ (description "This package provides a complete GCC tool chain for
+Fortran development to be installed in user profiles. This includes
+gfortran, as well as libc (headers and binaries, plus debugging symbols
+in the @code{debug} output), and binutils.")))
+
+
;;; commencement.scm ends here
--
2.24.0
Information forwarded
to
guix-patches <at> gnu.org
:
bug#38436
; Package
guix-patches
.
(Fri, 13 Dec 2019 12:57:02 GMT)
Full text and
rfc822 format available.
Message #44 received at 38436 <at> debbugs.gnu.org (full text, mbox):
Ludovic Courtès <ludo <at> gnu.org> writes:
> Oh I guess I had overlooked this proposal, I agree that it’s nicer.
Patch submitted. It's probably also the shortest possible
patch to get the desired result.
Cheers,
Konrad
Information forwarded
to
guix-patches <at> gnu.org
:
bug#38436
; Package
guix-patches
.
(Fri, 13 Dec 2019 12:58:02 GMT)
Full text and
rfc822 format available.
Message #47 received at 38436 <at> debbugs.gnu.org (full text, mbox):
On 13.12.19 13:53, Konrad Hinsen wrote:
> * gnu/packages/commencement.scm: (gfortran-toolchain): New variable.
> ---
> gnu/packages/commencement.scm | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
> index 68030376fc..541dedce0d 100644
> --- a/gnu/packages/commencement.scm
> +++ b/gnu/packages/commencement.scm
> @@ -2601,4 +2601,17 @@ an d binaries, plus debugging symbols in the @code{debug} output), and Binutils
> (define-public gcc-toolchain-9
> (make-gcc-toolchain gcc-9))
>
> +;; Provide the Fortran toolchain package only for the version of gfortran that
> +;; is used by Guix intenally to build Fortran libraries, because combining
^ internally
Reply sent
to
Ludovic Courtès <ludo <at> gnu.org>
:
You have taken responsibility.
(Sat, 14 Dec 2019 23:23:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Konrad Hinsen <konrad.hinsen <at> fastmail.net>
:
bug acknowledged by developer.
(Sat, 14 Dec 2019 23:23:02 GMT)
Full text and
rfc822 format available.
Message #52 received at 38436-done <at> debbugs.gnu.org (full text, mbox):
Hi,
Konrad Hinsen <konrad.hinsen <at> fastmail.net> skribis:
> * gnu/packages/commencement.scm: (gfortran-toolchain): New variable.
Applied, thanks! I fixed that typo that Jonathan reported.
Ludo’.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sun, 12 Jan 2020 12:24:03 GMT)
Full text and
rfc822 format available.
This bug report was last modified 4 years and 105 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.