* [bug#55999] [PATCHSET] Various D fixes
@ 2022-06-15 18:52 ( via Guix-patches via
2022-06-15 18:53 ` [bug#55999] [PATCH 1/2] gnu: packages: Replace rdmd with d-tools ( via Guix-patches via
` (2 more replies)
0 siblings, 3 replies; 11+ messages in thread
From: ( via Guix-patches via @ 2022-06-15 18:52 UTC (permalink / raw)
To: 55999
This fixes <https://issues.guix.gnu.org/55953>.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [bug#55999] [PATCH 1/2] gnu: packages: Replace rdmd with d-tools.
2022-06-15 18:52 [bug#55999] [PATCHSET] Various D fixes ( via Guix-patches via
@ 2022-06-15 18:53 ` ( via Guix-patches via
2022-06-15 18:53 ` [bug#55999] [PATCH 2/2] gnu: packages: Update dub to v1.23.0 ( via Guix-patches via
2022-06-17 6:16 ` [bug#55999] [PATCH 1/2] gnu: packages: Replace rdmd with d-tools Maxime Devos
2022-06-17 17:20 ` [bug#55999] [PATCH v2 " ( via Guix-patches via
2022-06-24 17:56 ` [bug#55999] [PATCH v3 1/3] gnu: packages: Replace rdmd with d-tools ( via Guix-patches via
2 siblings, 2 replies; 11+ messages in thread
From: ( via Guix-patches via @ 2022-06-15 18:53 UTC (permalink / raw)
To: 55999; +Cc: (
* gnu/packages/dlang.scm (rdmd): Remove variable.
* gnu/packages/dlang.scm (d-tools): New variable.
This fixes the build of rdmd and updates it to the latest version, along
with running rdmd_test.d, building dustmite along with rdmd, and
renaming the package to d-tools to reflect that change.
---
gnu/packages/dlang.scm | 76 +++++++++++++++++++++++++-----------------
1 file changed, 45 insertions(+), 31 deletions(-)
diff --git a/gnu/packages/dlang.scm b/gnu/packages/dlang.scm
index 403fcbbd6b..e0ded5c3c8 100644
--- a/gnu/packages/dlang.scm
+++ b/gnu/packages/dlang.scm
@@ -7,6 +7,7 @@
;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022 ( <paren@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -27,6 +28,7 @@ (define-module (gnu packages dlang)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module ((guix build utils) #:hide (delete which))
@@ -48,42 +50,54 @@ (define-module (gnu packages dlang)
#:use-module (gnu packages xorg)
#:use-module (srfi srfi-1))
-(define-public rdmd
+(define-public d-tools
(package
- (name "rdmd")
- (version "2.077.1")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/dlang/tools/archive/v" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "0c8w373rv6iz3xfid94w40ncv2lr2ncxi662qsr4lda4aghczmq7"))))
+ (name "d-tools")
+ (version "2.100.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dlang/tools")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1jbn0hyskv4ykcckw0iganpyrm0bq2lggswspw21r4hgnxkmjbyw"))))
(build-system gnu-build-system)
(arguments
- '(#:phases
- (modify-phases %standard-phases
- (delete 'configure)
- (delete 'check) ; There is no Makefile, so there's no 'make check'.
- (replace
- 'build
- (lambda _
- (invoke "ldc2" "rdmd.d")))
- (replace
- 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
- (install-file "rdmd" bin)))))))
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'build
+ (lambda _
+ (mkdir-p "bin")
+ (setenv "CC" #$(cc-for-target))
+ (setenv "LD" #$(ld-for-target))
+ (invoke "ldc2" "rdmd.d" "--of" "bin/rdmd")
+ (apply invoke "ldc2" "--of=bin/dustmite"
+ (find-files "DustMite" ".*\\.d"))))
+ (replace 'check
+ (lambda _
+ (invoke "bin/rdmd" "rdmd_test.d" "bin/rdmd"
+ "--rdmd-default-compiler" "ldmd2")))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (man (string-append out "/man")))
+ (copy-recursively "bin" bin)
+ (copy-recursively "man" man)))))))
(native-inputs
- (list ldc))
- (home-page "https://github.com/D-Programming-Language/tools/")
- (synopsis "Specialized equivalent to 'make' for the D language")
+ (list ldc
+ (module-ref (resolve-interface
+ '(gnu packages commencement))
+ 'ld-gold-wrapper)))
+ (home-page "https://github.com/dlang/tools")
+ (synopsis "Useful D-related tools")
(description
- "rdmd is a companion to the dmd compiler that simplifies the typical
-edit-compile-link-run or edit-make-run cycle to a rapid edit-run cycle. Like
-make and other tools, rdmd uses the relative dates of the files involved to
-minimize the amount of work necessary. Unlike make, rdmd tracks dependencies
-and freshness without requiring additional information from the user.")
+ "@code{d-tools} provides two useful tools for the D language: @code{rdmd},
+which runs D source files as scripts, and @code{dustmite}, which reduces D code
+to a minimal test case.")
(license license:boost1.0)))
;;; The 0.17.6 version is the last release to support being bootstrapped
--
2.36.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [bug#55999] [PATCH 2/2] gnu: packages: Update dub to v1.23.0.
2022-06-15 18:53 ` [bug#55999] [PATCH 1/2] gnu: packages: Replace rdmd with d-tools ( via Guix-patches via
@ 2022-06-15 18:53 ` ( via Guix-patches via
2022-06-17 6:16 ` [bug#55999] [PATCH 1/2] gnu: packages: Replace rdmd with d-tools Maxime Devos
1 sibling, 0 replies; 11+ messages in thread
From: ( via Guix-patches via @ 2022-06-15 18:53 UTC (permalink / raw)
To: 55999; +Cc: (
* gnu/packages/dlang.scm (dub): Update to version 1.23.0.
This also fixes Dub's build, which was previously failing because of how
ancient it was.
---
gnu/packages/dlang.scm | 40 ++++++++++++++++++++++------------------
1 file changed, 22 insertions(+), 18 deletions(-)
diff --git a/gnu/packages/dlang.scm b/gnu/packages/dlang.scm
index e0ded5c3c8..2341f1769e 100644
--- a/gnu/packages/dlang.scm
+++ b/gnu/packages/dlang.scm
@@ -436,7 +436,7 @@ (define (gnu-triplet->clang-arch system)
(define-public dub
(package
(name "dub")
- (version "1.7.2")
+ (version "1.23.0")
(source
(origin
(method git-fetch)
@@ -445,26 +445,30 @@ (define-public dub
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "073ibvgm1gphcqs1yjrav9ryp677nh3b194nxmvicwgvdc0sb6w9"))))
+ (base32 "06a4whsl1m600k096nwif83n7za3vr7pj1xwapncy5fcad1gmady"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ; it would have tested itself by installing some packages (vibe etc)
- #:phases
- (modify-phases %standard-phases
- (delete 'configure) ; no configure script
- (replace 'build
- (lambda _
- (invoke "./build.sh")))
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin")))
- (install-file "bin/dub" bin)
- #t))))))
- (inputs
- (list curl))
+ (list #:tests? #f ; it would have tested itself by installing some packages (vibe etc)
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure) ; no configure script
+ (replace 'build
+ (lambda* (#:key native-inputs #:allow-other-keys)
+ (setenv "CC" #$(cc-for-target))
+ (setenv "LD" #$(ld-for-target))
+ (invoke "./build.d")))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (install-file "bin/dub" bin)))))))
+ (inputs (list curl))
(native-inputs
- (list ldc))
+ (list ldc
+ d-tools
+ (module-ref (resolve-interface
+ '(gnu packages commencement))
+ 'ld-gold-wrapper)))
(home-page "https://code.dlang.org/getting_started")
(synopsis "Package and build manager for D projects")
(description
--
2.36.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [bug#55999] [PATCH 1/2] gnu: packages: Replace rdmd with d-tools.
2022-06-15 18:53 ` [bug#55999] [PATCH 1/2] gnu: packages: Replace rdmd with d-tools ( via Guix-patches via
2022-06-15 18:53 ` [bug#55999] [PATCH 2/2] gnu: packages: Update dub to v1.23.0 ( via Guix-patches via
@ 2022-06-17 6:16 ` Maxime Devos
2022-06-17 15:43 ` ( via Guix-patches via
1 sibling, 1 reply; 11+ messages in thread
From: Maxime Devos @ 2022-06-17 6:16 UTC (permalink / raw)
To: (, 55999
[-- Attachment #1: Type: text/plain, Size: 417 bytes --]
( via Guix-patches via schreef op wo 15-06-2022 om 19:53 [+0100]:
> + (replace 'check
> + (lambda _
> + (invoke "bin/rdmd" "rdmd_test.d" "bin/rdmd"
> + "--rdmd-default-compiler" "ldmd2")))
Run "./pre-inst guix lint d-tools", it will have a remark.
Greetings,
Maxime.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* [bug#55999] [PATCH 1/2] gnu: packages: Replace rdmd with d-tools.
2022-06-17 6:16 ` [bug#55999] [PATCH 1/2] gnu: packages: Replace rdmd with d-tools Maxime Devos
@ 2022-06-17 15:43 ` ( via Guix-patches via
0 siblings, 0 replies; 11+ messages in thread
From: ( via Guix-patches via @ 2022-06-17 15:43 UTC (permalink / raw)
To: Maxime Devos, 55999
On Fri Jun 17, 2022 at 7:16 AM BST, Maxime Devos wrote:
> Run "./pre-inst guix lint d-tools", it will have a remark.
thanks; sending new patch in a moment :)
^ permalink raw reply [flat|nested] 11+ messages in thread
* [bug#55999] [PATCH v2 1/2] gnu: packages: Replace rdmd with d-tools.
2022-06-15 18:52 [bug#55999] [PATCHSET] Various D fixes ( via Guix-patches via
2022-06-15 18:53 ` [bug#55999] [PATCH 1/2] gnu: packages: Replace rdmd with d-tools ( via Guix-patches via
@ 2022-06-17 17:20 ` ( via Guix-patches via
2022-06-17 17:20 ` [bug#55999] [PATCH v2 2/2] gnu: packages: Update dub to v1.23.0 ( via Guix-patches via
2022-06-24 17:56 ` [bug#55999] [PATCH v3 1/3] gnu: packages: Replace rdmd with d-tools ( via Guix-patches via
2 siblings, 1 reply; 11+ messages in thread
From: ( via Guix-patches via @ 2022-06-17 17:20 UTC (permalink / raw)
To: 55999; +Cc: (
* gnu/packages/dlang.scm (rdmd): Remove variable.
* gnu/packages/dlang.scm (d-tools): New variable.
This fixes the build of rdmd and updates it to the latest version, along
with running rdmd_test.d, building dustmite along with rdmd, and
renaming the package to d-tools to reflect that change.
---
gnu/packages/dlang.scm | 75 +++++++++++++++++++++++++-----------------
1 file changed, 45 insertions(+), 30 deletions(-)
diff --git a/gnu/packages/dlang.scm b/gnu/packages/dlang.scm
index 403fcbbd6b..7010994d2c 100644
--- a/gnu/packages/dlang.scm
+++ b/gnu/packages/dlang.scm
@@ -7,6 +7,7 @@
;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022 ( <paren@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -27,6 +28,7 @@ (define-module (gnu packages dlang)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module ((guix build utils) #:hide (delete which))
@@ -48,42 +50,55 @@ (define-module (gnu packages dlang)
#:use-module (gnu packages xorg)
#:use-module (srfi srfi-1))
-(define-public rdmd
+(define-public d-tools
(package
- (name "rdmd")
- (version "2.077.1")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/dlang/tools/archive/v" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (name "d-tools")
+ (version "2.100.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dlang/tools")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32
- "0c8w373rv6iz3xfid94w40ncv2lr2ncxi662qsr4lda4aghczmq7"))))
+ (base32 "1jbn0hyskv4ykcckw0iganpyrm0bq2lggswspw21r4hgnxkmjbyw"))))
(build-system gnu-build-system)
(arguments
- '(#:phases
- (modify-phases %standard-phases
- (delete 'configure)
- (delete 'check) ; There is no Makefile, so there's no 'make check'.
- (replace
- 'build
- (lambda _
- (invoke "ldc2" "rdmd.d")))
- (replace
- 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
- (install-file "rdmd" bin)))))))
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'build
+ (lambda _
+ (mkdir-p "bin")
+ (setenv "CC" #$(cc-for-target))
+ (setenv "LD" #$(ld-for-target))
+ (invoke "ldc2" "rdmd.d" "--of" "bin/rdmd")
+ (apply invoke "ldc2" "--of=bin/dustmite"
+ (find-files "DustMite" ".*\\.d"))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "bin/rdmd" "rdmd_test.d" "bin/rdmd"
+ "--rdmd-default-compiler" "ldmd2"))))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (man (string-append out "/man")))
+ (copy-recursively "bin" bin)
+ (copy-recursively "man" man)))))))
(native-inputs
- (list ldc))
- (home-page "https://github.com/D-Programming-Language/tools/")
- (synopsis "Specialized equivalent to 'make' for the D language")
+ (list ldc
+ (module-ref (resolve-interface
+ '(gnu packages commencement))
+ 'ld-gold-wrapper)))
+ (home-page "https://github.com/dlang/tools")
+ (synopsis "Useful D-related tools")
(description
- "rdmd is a companion to the dmd compiler that simplifies the typical
-edit-compile-link-run or edit-make-run cycle to a rapid edit-run cycle. Like
-make and other tools, rdmd uses the relative dates of the files involved to
-minimize the amount of work necessary. Unlike make, rdmd tracks dependencies
-and freshness without requiring additional information from the user.")
+ "@code{d-tools} provides two useful tools for the D language: @code{rdmd},
+which runs D source files as scripts, and @code{dustmite}, which reduces D code
+to a minimal test case.")
(license license:boost1.0)))
;;; The 0.17.6 version is the last release to support being bootstrapped
--
2.36.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [bug#55999] [PATCH v2 2/2] gnu: packages: Update dub to v1.23.0.
2022-06-17 17:20 ` [bug#55999] [PATCH v2 " ( via Guix-patches via
@ 2022-06-17 17:20 ` ( via Guix-patches via
0 siblings, 0 replies; 11+ messages in thread
From: ( via Guix-patches via @ 2022-06-17 17:20 UTC (permalink / raw)
To: 55999; +Cc: (
* gnu/packages/dlang.scm (dub): Update to version 1.23.0.
This also fixes Dub's build, which was previously failing because of how
ancient it was.
---
gnu/packages/dlang.scm | 52 +++++++++++++++++++++++-------------------
1 file changed, 28 insertions(+), 24 deletions(-)
diff --git a/gnu/packages/dlang.scm b/gnu/packages/dlang.scm
index 7010994d2c..34486f212c 100644
--- a/gnu/packages/dlang.scm
+++ b/gnu/packages/dlang.scm
@@ -437,35 +437,39 @@ (define (gnu-triplet->clang-arch system)
(define-public dub
(package
(name "dub")
- (version "1.7.2")
+ (version "1.23.0")
(source
(origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/dlang/dub")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "073ibvgm1gphcqs1yjrav9ryp677nh3b194nxmvicwgvdc0sb6w9"))))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dlang/dub")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "06a4whsl1m600k096nwif83n7za3vr7pj1xwapncy5fcad1gmady"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ; it would have tested itself by installing some packages (vibe etc)
- #:phases
- (modify-phases %standard-phases
- (delete 'configure) ; no configure script
- (replace 'build
- (lambda _
- (invoke "./build.sh")))
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin")))
- (install-file "bin/dub" bin)
- #t))))))
- (inputs
- (list curl))
+ (list #:tests? #f ; Tests try to install various packages.
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'build
+ (lambda _
+ (setenv "CC" #$(cc-for-target))
+ (setenv "LD" #$(ld-for-target))
+ (invoke "./build.d")))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (install-file "bin/dub" bin)))))))
+ (inputs (list curl))
(native-inputs
- (list ldc))
+ (list ldc
+ d-tools
+ (module-ref (resolve-interface
+ '(gnu packages commencement))
+ 'ld-gold-wrapper)))
(home-page "https://code.dlang.org/getting_started")
(synopsis "Package and build manager for D projects")
(description
--
2.36.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [bug#55999] [PATCH v3 1/3] gnu: packages: Replace rdmd with d-tools.
2022-06-15 18:52 [bug#55999] [PATCHSET] Various D fixes ( via Guix-patches via
2022-06-15 18:53 ` [bug#55999] [PATCH 1/2] gnu: packages: Replace rdmd with d-tools ( via Guix-patches via
2022-06-17 17:20 ` [bug#55999] [PATCH v2 " ( via Guix-patches via
@ 2022-06-24 17:56 ` ( via Guix-patches via
2022-06-24 17:56 ` [bug#55999] [PATCH v3 2/3] gnu: packages: Update dub to v1.23.0 ( via Guix-patches via
2022-06-24 17:56 ` [bug#55999] [PATCH v3 3/3] guix: Modernize dub-build-system somewhat ( via Guix-patches via
2 siblings, 2 replies; 11+ messages in thread
From: ( via Guix-patches via @ 2022-06-24 17:56 UTC (permalink / raw)
To: 55999; +Cc: (
* gnu/packages/dlang.scm (rdmd): Remove variable.
* gnu/packages/dlang.scm (d-tools): New variable.
This fixes the build of rdmd and updates it to the latest version, along
with running rdmd_test.d, building dustmite along with rdmd, and
renaming the package to d-tools to reflect that change.
---
gnu/packages/dlang.scm | 75 +++++++++++++++++++++++++-----------------
1 file changed, 45 insertions(+), 30 deletions(-)
diff --git a/gnu/packages/dlang.scm b/gnu/packages/dlang.scm
index 403fcbbd6b..7010994d2c 100644
--- a/gnu/packages/dlang.scm
+++ b/gnu/packages/dlang.scm
@@ -7,6 +7,7 @@
;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022 ( <paren@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -27,6 +28,7 @@ (define-module (gnu packages dlang)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module ((guix build utils) #:hide (delete which))
@@ -48,42 +50,55 @@ (define-module (gnu packages dlang)
#:use-module (gnu packages xorg)
#:use-module (srfi srfi-1))
-(define-public rdmd
+(define-public d-tools
(package
- (name "rdmd")
- (version "2.077.1")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/dlang/tools/archive/v" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (name "d-tools")
+ (version "2.100.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dlang/tools")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32
- "0c8w373rv6iz3xfid94w40ncv2lr2ncxi662qsr4lda4aghczmq7"))))
+ (base32 "1jbn0hyskv4ykcckw0iganpyrm0bq2lggswspw21r4hgnxkmjbyw"))))
(build-system gnu-build-system)
(arguments
- '(#:phases
- (modify-phases %standard-phases
- (delete 'configure)
- (delete 'check) ; There is no Makefile, so there's no 'make check'.
- (replace
- 'build
- (lambda _
- (invoke "ldc2" "rdmd.d")))
- (replace
- 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
- (install-file "rdmd" bin)))))))
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'build
+ (lambda _
+ (mkdir-p "bin")
+ (setenv "CC" #$(cc-for-target))
+ (setenv "LD" #$(ld-for-target))
+ (invoke "ldc2" "rdmd.d" "--of" "bin/rdmd")
+ (apply invoke "ldc2" "--of=bin/dustmite"
+ (find-files "DustMite" ".*\\.d"))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "bin/rdmd" "rdmd_test.d" "bin/rdmd"
+ "--rdmd-default-compiler" "ldmd2"))))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (man (string-append out "/man")))
+ (copy-recursively "bin" bin)
+ (copy-recursively "man" man)))))))
(native-inputs
- (list ldc))
- (home-page "https://github.com/D-Programming-Language/tools/")
- (synopsis "Specialized equivalent to 'make' for the D language")
+ (list ldc
+ (module-ref (resolve-interface
+ '(gnu packages commencement))
+ 'ld-gold-wrapper)))
+ (home-page "https://github.com/dlang/tools")
+ (synopsis "Useful D-related tools")
(description
- "rdmd is a companion to the dmd compiler that simplifies the typical
-edit-compile-link-run or edit-make-run cycle to a rapid edit-run cycle. Like
-make and other tools, rdmd uses the relative dates of the files involved to
-minimize the amount of work necessary. Unlike make, rdmd tracks dependencies
-and freshness without requiring additional information from the user.")
+ "@code{d-tools} provides two useful tools for the D language: @code{rdmd},
+which runs D source files as scripts, and @code{dustmite}, which reduces D code
+to a minimal test case.")
(license license:boost1.0)))
;;; The 0.17.6 version is the last release to support being bootstrapped
--
2.36.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [bug#55999] [PATCH v3 2/3] gnu: packages: Update dub to v1.23.0.
2022-06-24 17:56 ` [bug#55999] [PATCH v3 1/3] gnu: packages: Replace rdmd with d-tools ( via Guix-patches via
@ 2022-06-24 17:56 ` ( via Guix-patches via
2022-06-24 17:56 ` [bug#55999] [PATCH v3 3/3] guix: Modernize dub-build-system somewhat ( via Guix-patches via
1 sibling, 0 replies; 11+ messages in thread
From: ( via Guix-patches via @ 2022-06-24 17:56 UTC (permalink / raw)
To: 55999; +Cc: (
* gnu/packages/dlang.scm (dub): Update to version 1.23.0.
This also fixes Dub's build, which was previously failing because of how
ancient it was.
---
gnu/packages/dlang.scm | 52 +++++++++++++++++++++++-------------------
1 file changed, 28 insertions(+), 24 deletions(-)
diff --git a/gnu/packages/dlang.scm b/gnu/packages/dlang.scm
index 7010994d2c..34486f212c 100644
--- a/gnu/packages/dlang.scm
+++ b/gnu/packages/dlang.scm
@@ -437,35 +437,39 @@ (define (gnu-triplet->clang-arch system)
(define-public dub
(package
(name "dub")
- (version "1.7.2")
+ (version "1.23.0")
(source
(origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/dlang/dub")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "073ibvgm1gphcqs1yjrav9ryp677nh3b194nxmvicwgvdc0sb6w9"))))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dlang/dub")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "06a4whsl1m600k096nwif83n7za3vr7pj1xwapncy5fcad1gmady"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ; it would have tested itself by installing some packages (vibe etc)
- #:phases
- (modify-phases %standard-phases
- (delete 'configure) ; no configure script
- (replace 'build
- (lambda _
- (invoke "./build.sh")))
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin")))
- (install-file "bin/dub" bin)
- #t))))))
- (inputs
- (list curl))
+ (list #:tests? #f ; Tests try to install various packages.
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'build
+ (lambda _
+ (setenv "CC" #$(cc-for-target))
+ (setenv "LD" #$(ld-for-target))
+ (invoke "./build.d")))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (install-file "bin/dub" bin)))))))
+ (inputs (list curl))
(native-inputs
- (list ldc))
+ (list ldc
+ d-tools
+ (module-ref (resolve-interface
+ '(gnu packages commencement))
+ 'ld-gold-wrapper)))
(home-page "https://code.dlang.org/getting_started")
(synopsis "Package and build manager for D projects")
(description
--
2.36.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [bug#55999] [PATCH v3 3/3] guix: Modernize dub-build-system somewhat.
2022-06-24 17:56 ` [bug#55999] [PATCH v3 1/3] gnu: packages: Replace rdmd with d-tools ( via Guix-patches via
2022-06-24 17:56 ` [bug#55999] [PATCH v3 2/3] gnu: packages: Update dub to v1.23.0 ( via Guix-patches via
@ 2022-06-24 17:56 ` ( via Guix-patches via
2022-06-25 21:37 ` bug#55999: " Tobias Geerinckx-Rice via Guix-patches via
1 sibling, 1 reply; 11+ messages in thread
From: ( via Guix-patches via @ 2022-06-24 17:56 UTC (permalink / raw)
To: 55999; +Cc: (
* guix/build-system/dub.scm (default-ld-gold-wrapper): New variable.
(lower): Add keyed argument ld-gold-wrapper.
[bag]<build-inputs>: Add ld-gold-wrapper.
* guix/build/dub-build-system.scm (configure): Remove trailing #t, and
fix docstring formatting.
(build): Remove trailing #t, and avoid substituting ".dub/dub.json" as
Dub no longer produces it.
(check): Same as (build).
(install): Remove trailing #t.
---
guix/build-system/dub.scm | 8 ++++++++
guix/build/dub-build-system.scm | 26 ++++++++------------------
2 files changed, 16 insertions(+), 18 deletions(-)
diff --git a/guix/build-system/dub.scm b/guix/build-system/dub.scm
index 55ad7decb8..1577f4a0c7 100644
--- a/guix/build-system/dub.scm
+++ b/guix/build-system/dub.scm
@@ -51,6 +51,12 @@ (define (default-pkg-config)
(let ((pkg-config (resolve-interface '(gnu packages pkg-config))))
(module-ref pkg-config 'pkg-config)))
+;; LDC doesn't work with the bfd linker.
+(define (default-ld-gold-wrapper)
+ "Return the default ld-gold-wrapper package."
+ (let ((commencement (resolve-interface '(gnu packages commencement))))
+ (module-ref commencement 'ld-gold-wrapper)))
+
(define %dub-build-system-modules
;; Build-side modules imported by default.
`((guix build dub-build-system)
@@ -100,6 +106,7 @@ (define* (lower name
(ldc (default-ldc))
(dub (default-dub))
(pkg-config (default-pkg-config))
+ (ld-gold-wrapper (default (default-ld-gold-wrapper)))
#:allow-other-keys
#:rest arguments)
"Return a bag for NAME."
@@ -121,6 +128,7 @@ (define private-keywords
,@(standard-packages)))
(build-inputs `(("ldc" ,ldc)
("dub" ,dub)
+ ("ld-gold-wrapper" ,ld-gold-wrapper)
,@native-inputs))
(outputs outputs)
(build dub-build)
diff --git a/guix/build/dub-build-system.scm b/guix/build/dub-build-system.scm
index 3ab50733de..9ee0433ffd 100644
--- a/guix/build/dub-build-system.scm
+++ b/guix/build/dub-build-system.scm
@@ -48,10 +48,10 @@ (define (package-name->d-package-name name)
(_ #f)))
(define* (configure #:key inputs #:allow-other-keys)
- "Prepare one new directory with all the required dependencies.
- It's necessary to do this (instead of just using /gnu/store as the
- directory) because we want to hide the libraries in subdirectories
- lib/dub/... instead of polluting the user's profile root."
+ "Prepare one new directory with all the required dependencies. It's necessary
+to do this (instead of just using /gnu/store as the directory) because we want
+to hide the libraries in subdirectories lib/dub/... instead of polluting the
+user's profile root."
(let* ((dir (mkdtemp! "/tmp/dub.XXXXXX"))
(vendor-dir (string-append dir "/vendor")))
(setenv "HOME" dir)
@@ -67,8 +67,7 @@ (define* (configure #:key inputs #:allow-other-keys)
(symlink (string-append path "/lib/dub/" d-basename)
(string-append vendor-dir "/" d-basename))))))))
inputs)
- (invoke "dub" "add-path" vendor-dir)
- #t))
+ (invoke "dub" "add-path" vendor-dir)))
(define (grep string file-name)
"Find the first occurrence of STRING in the file named FILE-NAME.
@@ -92,19 +91,11 @@ (define* (build #:key (dub-build-flags '())
(unless (or (grep* "sourceLibrary" "package.json")
(grep* "sourceLibrary" "dub.sdl") ; note: format is different!
(grep* "sourceLibrary" "dub.json"))
- (apply invoke `("dub" "build" ,@dub-build-flags))
- (substitute* ".dub/dub.json"
- (("\"lastUpgrade\": \"[^\"]*\"")
- "\"lastUpgrade\": \"1970-01-01T00:00:00.0000000\"")))
- #t)
+ (apply invoke `("dub" "build" ,@dub-build-flags))))
(define* (check #:key tests? #:allow-other-keys)
(when tests?
- (invoke "dub" "test")
- (substitute* ".dub/dub.json"
- (("\"lastUpgrade\": \"[^\"]*\"")
- "\"lastUpgrade\": \"1970-01-01T00:00:00.0000000\"")))
- #t)
+ (invoke "dub" "test")))
(define* (install #:key inputs outputs #:allow-other-keys)
"Install a given DUB package."
@@ -115,8 +106,7 @@ (define* (install #:key inputs outputs #:allow-other-keys)
;; TODO remove "-test-application"
(copy-recursively "bin" outbin)
(mkdir-p outlib)
- (copy-recursively "." (string-append outlib))
- #t))
+ (copy-recursively "." (string-append outlib))))
(define %standard-phases
(modify-phases gnu:%standard-phases
--
2.36.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* bug#55999: [PATCH v3 3/3] guix: Modernize dub-build-system somewhat.
2022-06-24 17:56 ` [bug#55999] [PATCH v3 3/3] guix: Modernize dub-build-system somewhat ( via Guix-patches via
@ 2022-06-25 21:37 ` Tobias Geerinckx-Rice via Guix-patches via
0 siblings, 0 replies; 11+ messages in thread
From: Tobias Geerinckx-Rice via Guix-patches via @ 2022-06-25 21:37 UTC (permalink / raw)
To: (; +Cc: 55999-done, guix-patches
[-- Attachment #1: Type: text/plain, Size: 255 bytes --]
Hi ),
I split these patches up into more atomic parts, made a few minor
tweaks I deemed fit, and pushed them to master in two stages as
4c63796545ce2a1f7cd556a831bb92c7b3166358 et al and
30edb241a9ba50fefbd08438b5ffba25b10c6e61 et al.
Thanks!
T G-R
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 247 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2022-06-25 21:42 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-06-15 18:52 [bug#55999] [PATCHSET] Various D fixes ( via Guix-patches via
2022-06-15 18:53 ` [bug#55999] [PATCH 1/2] gnu: packages: Replace rdmd with d-tools ( via Guix-patches via
2022-06-15 18:53 ` [bug#55999] [PATCH 2/2] gnu: packages: Update dub to v1.23.0 ( via Guix-patches via
2022-06-17 6:16 ` [bug#55999] [PATCH 1/2] gnu: packages: Replace rdmd with d-tools Maxime Devos
2022-06-17 15:43 ` ( via Guix-patches via
2022-06-17 17:20 ` [bug#55999] [PATCH v2 " ( via Guix-patches via
2022-06-17 17:20 ` [bug#55999] [PATCH v2 2/2] gnu: packages: Update dub to v1.23.0 ( via Guix-patches via
2022-06-24 17:56 ` [bug#55999] [PATCH v3 1/3] gnu: packages: Replace rdmd with d-tools ( via Guix-patches via
2022-06-24 17:56 ` [bug#55999] [PATCH v3 2/3] gnu: packages: Update dub to v1.23.0 ( via Guix-patches via
2022-06-24 17:56 ` [bug#55999] [PATCH v3 3/3] guix: Modernize dub-build-system somewhat ( via Guix-patches via
2022-06-25 21:37 ` bug#55999: " Tobias Geerinckx-Rice via Guix-patches via
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).