Package: guix-patches;
Reported by: Efraim Flashner <efraim <at> flashner.co.il>
Date: Thu, 23 Jun 2022 19:55:02 UTC
Severity: normal
Tags: patch
Done: Efraim Flashner <efraim <at> flashner.co.il>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 56175 in the body.
You can then email your comments to 56175 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
guix-patches <at> gnu.org
:bug#56175
; Package guix-patches
.
(Thu, 23 Jun 2022 19:55:02 GMT) Full text and rfc822 format available.Efraim Flashner <efraim <at> flashner.co.il>
:guix-patches <at> gnu.org
.
(Thu, 23 Jun 2022 19:55:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Efraim Flashner <efraim <at> flashner.co.il> To: guix-patches <at> gnu.org Cc: Efraim Flashner <efraim <at> flashner.co.il> Subject: [PATCH 0/4] Update D bootstrap Date: Thu, 23 Jun 2022 22:53:25 +0300
I'm not even sure how we made it to ldc but we decided that since we have GDC and gdc-toolchain it should be possible to bootstrap ldc with gdc. Some internet sleuthing later we discovered gdmd and now we have these patches. Efraim Flashner (2): Revert "gnu: ldc-bootstrap-0.17: Add support for aarch64-linux." gnu: Remove unneeded ldc bootstrap packages. Esther Flashner (2): gnu: Add gdmd. gnu: ldc-bootstrap-1.27: Build with gdmd. gnu/packages/dlang.scm | 253 ++++++++++++++--------------------------- 1 file changed, 87 insertions(+), 166 deletions(-) base-commit: c98f412de6c6cd36c9167a92c9539e8ce66141e2 -- 2.36.1
guix-patches <at> gnu.org
:bug#56175
; Package guix-patches
.
(Thu, 23 Jun 2022 19:58:02 GMT) Full text and rfc822 format available.Message #8 received at 56175 <at> debbugs.gnu.org (full text, mbox):
From: Efraim Flashner <efraim <at> flashner.co.il> To: 56175 <at> debbugs.gnu.org Cc: Efraim Flashner <efraim <at> flashner.co.il> Subject: [PATCH 1/4] Revert "gnu: ldc-bootstrap-0.17: Add support for aarch64-linux." Date: Thu, 23 Jun 2022 22:56:49 +0300
This reverts commit 4f6ed3d2f8531ce1b75dc79365ce67587d8cb7e1. While this does allow building ldc on aarch64, it isn't actually helpful. --- gnu/packages/dlang.scm | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/gnu/packages/dlang.scm b/gnu/packages/dlang.scm index 75e2155c83..403fcbbd6b 100644 --- a/gnu/packages/dlang.scm +++ b/gnu/packages/dlang.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2017 Ricardo Wurmus <rekado <at> elephly.net> ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me <at> tobias.gr> ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury <at> disroot.org> -;;; Copyright © 2021, 2022 Efraim Flashner <efraim <at> flashner.co.il> +;;; Copyright © 2021 Efraim Flashner <efraim <at> flashner.co.il> ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer <at> gmail.com> ;;; ;;; This file is part of GNU Guix. @@ -103,17 +103,13 @@ (define ldc-bootstrap-0.17 (sha256 (base32 "1q6hm4fkrcwys83x0p4kfg9xrc1b9g2qicqif2zy5z4nsfsb5vgs")))) (build-system cmake-build-system) - (supported-systems '("x86_64-linux" "i686-linux" - "armhf-linux" "aarch64-linux")) + (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux")) (properties ;; Some of the tests take a very long time on ARMv7. See ;; <https://lists.gnu.org/archive/html/guix-devel/2018-02/msg00312.html>. `((max-silent-time . ,(* 3600 3)))) (arguments `(#:tests? #f ;requires obsolete python-lit test dependency - ,@(if (target-aarch64?) - '(#:system "armhf-linux") - '()) #:phases (modify-phases %standard-phases (add-after 'unpack 'unpack-submodule-sources -- 2.36.1
guix-patches <at> gnu.org
:bug#56175
; Package guix-patches
.
(Thu, 23 Jun 2022 20:00:02 GMT) Full text and rfc822 format available.Message #11 received at 56175 <at> debbugs.gnu.org (full text, mbox):
From: Efraim Flashner <efraim <at> flashner.co.il> To: 56175 <at> debbugs.gnu.org Cc: Efraim Flashner <efraim <at> flashner.co.il>, Esther Flashner <esther <at> flashner.co.il> Subject: [PATCH 2/4] gnu: Add gdmd. Date: Thu, 23 Jun 2022 22:56:50 +0300
From: Esther Flashner <esther <at> flashner.co.il> * gnu/packages/dlang.scm (gdmd): New variable. Co-authored-by: Efraim Flashner <efraim <at> flashner.co.il> --- gnu/packages/dlang.scm | 45 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/gnu/packages/dlang.scm b/gnu/packages/dlang.scm index 403fcbbd6b..43f24d4033 100644 --- a/gnu/packages/dlang.scm +++ b/gnu/packages/dlang.scm @@ -5,8 +5,9 @@ ;;; Copyright © 2017 Ricardo Wurmus <rekado <at> elephly.net> ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me <at> tobias.gr> ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury <at> disroot.org> -;;; Copyright © 2021 Efraim Flashner <efraim <at> flashner.co.il> +;;; Copyright © 2021, 2022 Efraim Flashner <efraim <at> flashner.co.il> ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer <at> gmail.com> +;;; Copyright © 2022 Esther Flashner <esther <at> flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,19 +29,23 @@ (define-module (gnu packages dlang) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix gexp) #:use-module (guix utils) #:use-module ((guix build utils) #:hide (delete which)) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) + #:use-module (guix build-system copy) #:use-module (gnu packages) #:use-module (gnu packages base) #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages curl) + #:use-module (gnu packages gcc) #:use-module (gnu packages gdb) #:use-module (gnu packages libedit) #:use-module (gnu packages llvm) #:use-module (gnu packages ninja) + #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) @@ -86,6 +91,44 @@ (define-public rdmd and freshness without requiring additional information from the user.") (license license:boost1.0))) +(define-public gdmd + (let ((commit "ff2c97a47408fb71c18a2d453294d18808a97cc5") + (revision "1")) + (package + (name "gdmd") + (version (git-version "0.1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/D-Programming-GDC/gdmd") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0pd70clk70069xcjysaas7zszzmigrcw1zl2xxv8kzdg7y7xrzvm")))) + (build-system copy-build-system) + (arguments + (list + #:install-plan + #~'(("dmd-script" "bin/gdmd") + ("dmd-script.1" "share/man/man1/gdmd.1")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'adjust-gdc-location + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "dmd-script" + (("my \\$gdc_dir.*") + (string-append "my $gdc_dir = \"" + (dirname (search-input-file inputs "/bin/gdc")) + "\";\n")))))))) + (inputs + (list gdc-10 perl)) + (home-page "https://github.com/D-Programming-GDC/gdmd") + (synopsis "DMD-like wrapper for GDC") + (description "This package provides a DMD-like wrapper for the +@acronym{GNU D Compiler,GDC}.") + (license license:gpl3+)))) + ;;; The 0.17.6 version is the last release to support being bootstrapped ;;; without a D compiler (requiring only a C++ compiler). ;;; TODO: Bootstrap ldc from GDC (the D frontend for GCC). -- 2.36.1
guix-patches <at> gnu.org
:bug#56175
; Package guix-patches
.
(Thu, 23 Jun 2022 20:00:02 GMT) Full text and rfc822 format available.Message #14 received at 56175 <at> debbugs.gnu.org (full text, mbox):
From: Efraim Flashner <efraim <at> flashner.co.il> To: 56175 <at> debbugs.gnu.org Cc: Efraim Flashner <efraim <at> flashner.co.il>, Esther Flashner <esther <at> flashner.co.il> Subject: [PATCH 3/4] gnu: ldc-bootstrap-1.27: Build with gdmd. Date: Thu, 23 Jun 2022 22:56:51 +0300
From: Esther Flashner <esther <at> flashner.co.il> * gnu/packages/dlang.scm (ldc-bootstrap-1.27)[native-inputs]: Replace ldc-bootstrap-1.24 with gdmd. [supported-systems]: Mark all systems supported. Co-authored-by: Efraim Flashner <efraim <at> flashner.co.il> --- gnu/packages/dlang.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/dlang.scm b/gnu/packages/dlang.scm index 43f24d4033..514919a75b 100644 --- a/gnu/packages/dlang.scm +++ b/gnu/packages/dlang.scm @@ -317,7 +317,8 @@ (define ldc-bootstrap-1.27 (fold alist-replace (package-native-inputs ldc-bootstrap-1.24) '("ldc" "llvm") - `((,ldc-bootstrap-1.24) (,llvm-11)))))) + `((,gdmd) (,llvm-11)))) + (supported-systems %supported-systems))) (define-public ldc (package -- 2.36.1
guix-patches <at> gnu.org
:bug#56175
; Package guix-patches
.
(Thu, 23 Jun 2022 20:01:02 GMT) Full text and rfc822 format available.Message #17 received at 56175 <at> debbugs.gnu.org (full text, mbox):
From: Efraim Flashner <efraim <at> flashner.co.il> To: 56175 <at> debbugs.gnu.org Cc: Efraim Flashner <efraim <at> flashner.co.il> Subject: [PATCH 4/4] gnu: Remove unneeded ldc bootstrap packages. Date: Thu, 23 Jun 2022 22:56:52 +0300
* gnu/packages/dlang.scm (ldc-bootstrap-0.17, ldc-bootstrap-1.12, ldc-bootstrap-1.24): Remove packages. (ldc-bootstrap-1.27): Rename to ldc-bootstrap. Absorb inherited package adjustments. (ldc): Adjust to ldc-bootstrap-1.27 renaming. --- gnu/packages/dlang.scm | 207 +++++++++-------------------------------- 1 file changed, 44 insertions(+), 163 deletions(-) diff --git a/gnu/packages/dlang.scm b/gnu/packages/dlang.scm index 514919a75b..cc7abacd29 100644 --- a/gnu/packages/dlang.scm +++ b/gnu/packages/dlang.scm @@ -129,99 +129,71 @@ (define-public gdmd @acronym{GNU D Compiler,GDC}.") (license license:gpl3+)))) -;;; The 0.17.6 version is the last release to support being bootstrapped -;;; without a D compiler (requiring only a C++ compiler). -;;; TODO: Bootstrap ldc from GDC (the D frontend for GCC). -(define ldc-bootstrap-0.17 +;; We use GDC, the D frontend for GCC, to bootstrap ldc. We then use +;; ldc to bootstrap itself so that no reference remains to GDC. +(define ldc-bootstrap (package (name "ldc") - (version "0.17.6") + (version "1.27.1") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ldc-developers/ldc") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) + (method url-fetch) + (uri (string-append "https://github.com/ldc-developers/ldc/releases" + "/download/v" version "/ldc-" version "-src.tar.gz")) (sha256 - (base32 "1q6hm4fkrcwys83x0p4kfg9xrc1b9g2qicqif2zy5z4nsfsb5vgs")))) + (base32 "1775001ba6n8w46ln530kb5r66vs935ingnppgddq8wqnc0gbj4k")))) (build-system cmake-build-system) - (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux")) - (properties - ;; Some of the tests take a very long time on ARMv7. See - ;; <https://lists.gnu.org/archive/html/guix-devel/2018-02/msg00312.html>. - `((max-silent-time . ,(* 3600 3)))) (arguments - `(#:tests? #f ;requires obsolete python-lit test dependency + `(#:tests? #f ;skip in the bootstrap + #:build-type "Release" + #:configure-flags + (list "-GNinja") + #:make-flags ;used as build targets + (list "all") #:phases (modify-phases %standard-phases - (add-after 'unpack 'unpack-submodule-sources - (lambda* (#:key inputs #:allow-other-keys) - (let ((unpack (lambda (input target) - (let ((source (assoc-ref inputs input))) - ;; Git checkouts are directories as long as - ;; there are no patches; tarballs otherwise. - (if (file-is-directory? source) - (copy-recursively source target) - (with-directory-excursion target - (invoke "tar" "xvf" source - "--strip-components=1"))))))) - (unpack "phobos-src" "runtime/phobos") - (unpack "druntime-src" "runtime/druntime") - (unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite")))) - (add-after 'unpack-submodule-sources 'patch-paths + (add-after 'unpack 'patch-paths (lambda* (#:key inputs #:allow-other-keys) (substitute* "runtime/phobos/std/process.d" (("/bin/sh") (which "sh")) - (("echo") (which "echo"))) - (substitute* "runtime/phobos/std/datetime.d" - (("/usr/share/zoneinfo/") - (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo")) - (("tzName == \"[+]VERSION\"") - "(tzName == \"+VERSION\" || \ -std.algorithm.endsWith(tzName, \"/leapseconds\"))"))))))) + (("echo") (which "echo"))))) + (replace 'build + ;; Building with Make would result in "make: *** [Makefile:166: + ;; all] Error 2". + (lambda* (#:key make-flags parallel-tests? #:allow-other-keys) + (let ((job-count (number->string (or (and parallel-tests? + (parallel-job-count)) + 1)))) + (apply invoke "cmake" "--build" "." "-j" job-count + "--target" make-flags)))) + (replace 'install + (lambda _ + (invoke "cmake" "--install" ".")))))) (inputs `(("libconfig" ,libconfig) ("libedit" ,libedit) ("tzdata" ,tzdata) ("zlib" ,zlib))) (native-inputs - `(("llvm" ,llvm-6) + ;; Importing (gnu packages commencement) would introduce a cycle. + `(("ld-gold-wrapper" ,(module-ref (resolve-interface + '(gnu packages commencement)) + 'ld-gold-wrapper)) + ("llvm" ,llvm-11) + ("ldc" ,gdmd) + ("ninja" ,ninja) ("python-wrapper" ,python-wrapper) - ("unzip" ,unzip) - ("phobos-src" - ,(origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ldc-developers/phobos") - (commit (string-append "ldc-v" version)))) - (file-name (git-file-name "phobos" version)) - (sha256 - (base32 "15jzs38wanks2jfp2izzl7zqrp4c8ai54ppsgm8ws86p3sbbkmj8")))) - ("druntime-src" - ,(origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ldc-developers/druntime") - (commit (string-append "ldc-v" version)))) - (file-name (git-file-name "druntime" version)) - (sha256 - (base32 "00wr2kiggwnd8h7by51fhj1xc65hv1ysip5gbgdbkfar58p2d0bb")))) - ("dmd-testsuite-src" - ,(origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ldc-developers/dmd-testsuite") - (commit (string-append "ldc-v" version)))) - (file-name (git-file-name "dmd-testsuite" version)) - (sha256 - (base32 "1d1c0979wbippldrkjf7szyj4n87hxz8dwqg1r5b3aai37g9kcky")))))) + ("unzip" ,unzip))) (home-page "http://wiki.dlang.org/LDC") (synopsis "LLVM-based compiler for the D programming language") (description "LDC is an LLVM compiler for the D programming language. It is based on the latest DMD compiler that was written in C and is used for bootstrapping more recent compilers written in D.") + (properties + ;; Some of the tests take a very long time on ARMv7. See + ;; <https://lists.gnu.org/archive/html/guix-devel/2018-02/msg00312.html>. + `((max-silent-time . ,(* 3600 3)))) ;; Most of the code is released under BSD-3, except for code originally ;; written for GDC, which is released under GPLv2+, and the DMD frontend, ;; which is released under the "Boost Software License version 1.0". @@ -229,102 +201,11 @@ (define ldc-bootstrap-0.17 license:gpl2+ license:boost1.0)))) -;;; This is the last version that supports being built with 32 bit machines -;;; from 0.17. -(define ldc-bootstrap-1.12 - (package - (inherit ldc-bootstrap-0.17) - (version "1.12.0") - (source - (origin - (method url-fetch) - ;; The official release include the matching source code releases of - ;; phobos, druntime and dmd-testsuite. - (uri (string-append "https://github.com/ldc-developers/ldc/releases" - "/download/v" version "/ldc-" version "-src.tar.gz")) - (sha256 - (base32 "1fdma1w8j37wkr0pqdar11slkk36qymamxnk6d9k8ybhjmxaaawm")))) - (arguments - (substitute-keyword-arguments (package-arguments ldc-bootstrap-0.17) - ((#:build-type _ #f) "Release") - ((#:configure-flags _ #f) - `(list "-GNinja")) - ((#:make-flags _ #f) ;used as build targets - `(list "all")) - ((#:tests? _) #f) - ((#:phases phases) - `(modify-phases ,phases - (delete 'unpack-submodule-sources) - (replace 'patch-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* '("runtime/phobos/std/process.d") - (("/bin/sh") (which "sh")) - (("echo") (which "echo"))))) - (replace 'build - ;; Building with Make would result in "make: *** [Makefile:166: - ;; all] Error 2". - (lambda* (#:key make-flags parallel-tests? #:allow-other-keys) - (let ((job-count (number->string (or (and parallel-tests? - (parallel-job-count)) - 1)))) - (apply invoke "cmake" "--build" "." "-j" job-count - "--target" make-flags)))) - (replace 'install - (lambda _ - (invoke "cmake" "--install" "."))))))) - (native-inputs - ;; Importing (gnu packages commencement) would introduce a cycle. - `(("ld-gold-wrapper" ,(module-ref (resolve-interface - '(gnu packages commencement)) - 'ld-gold-wrapper)) - ("llvm" ,llvm-6) - ("ldc" ,ldc-bootstrap-0.17) - ("ninja" ,ninja) - ("python-wrapper" ,python-wrapper) - ("unzip" ,unzip))))) - -;;; For 32 bits systems, 1.12 cannot build 1.27 directly, so we need another -;;; hop. -(define ldc-bootstrap-1.24 - (package - (inherit ldc-bootstrap-1.12) - (version "1.24.0") - (source - (origin - (method url-fetch) - (uri (string-append "https://github.com/ldc-developers/ldc/releases" - "/download/v" version "/ldc-" version "-src.tar.gz")) - (sha256 - (base32 "0g5svf55i0kq55q49awmwqj9qi1n907cyrn1vjdjgs8nx6nn35gx")))) - (native-inputs - (fold alist-replace - (package-native-inputs ldc-bootstrap-1.12) - '("ldc" "llvm") - `((,ldc-bootstrap-1.12) (,llvm-11)))))) - -(define ldc-bootstrap-1.27 - (package - (inherit ldc-bootstrap-1.24) - (version "1.27.1") - (source - (origin - (method url-fetch) - (uri (string-append "https://github.com/ldc-developers/ldc/releases" - "/download/v" version "/ldc-" version "-src.tar.gz")) - (sha256 - (base32 "1775001ba6n8w46ln530kb5r66vs935ingnppgddq8wqnc0gbj4k")))) - (native-inputs - (fold alist-replace - (package-native-inputs ldc-bootstrap-1.24) - '("ldc" "llvm") - `((,gdmd) (,llvm-11)))) - (supported-systems %supported-systems))) - (define-public ldc (package - (inherit ldc-bootstrap-1.27) + (inherit ldc-bootstrap) (arguments - (substitute-keyword-arguments (package-arguments ldc-bootstrap-1.27) + (substitute-keyword-arguments (package-arguments ldc-bootstrap) ((#:make-flags _ #f) '(list "all" ;; Also build the test runner binaries. @@ -458,8 +339,8 @@ (define (gnu-triplet->clang-arch system) "-E" "dmd-testsuite|lit-tests|ldc2-unittest"))))))))) (native-inputs (append (delete "llvm" - (alist-replace "ldc" (list ldc-bootstrap-1.27) - (package-native-inputs ldc-bootstrap-1.27))) + (alist-replace "ldc" (list ldc-bootstrap) + (package-native-inputs ldc-bootstrap))) `(("clang" ,clang-11) ;propagates llvm and clang-runtime ("python-lit" ,python-lit)))))) -- 2.36.1
Efraim Flashner <efraim <at> flashner.co.il>
:Efraim Flashner <efraim <at> flashner.co.il>
:Message #22 received at 56175-done <at> debbugs.gnu.org (full text, mbox):
From: Efraim Flashner <efraim <at> flashner.co.il> To: 56175-done <at> debbugs.gnu.org Subject: Re: bug#56175: Acknowledgement ([PATCH 0/4] Update D bootstrap) Date: Sun, 26 Jun 2022 15:15:47 +0300
[Message part 1 (text/plain, inline)]
Patch pushed. -- Efraim Flashner <efraim <at> flashner.co.il> אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Mon, 25 Jul 2022 11:24:12 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.