[PATCH 0/4] Update D bootstrap

DoneSubmitted by Efraim Flashner.
Details
One participant
  • Efraim Flashner
Owner
unassigned
Severity
normal
E
E
Efraim Flashner wrote on 23 Jun 21:53 +0200
(address . guix-patches@gnu.org)(name . Efraim Flashner)(address . efraim@flashner.co.il)
cover.1656013840.git.efraim@flashner.co.il
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
E
E
Efraim Flashner wrote on 23 Jun 21:56 +0200
[PATCH 1/4] Revert "gnu: ldc-bootstrap-0.17: Add support for aarch64-linux."
(address . 56175@debbugs.gnu.org)(name . Efraim Flashner)(address . efraim@flashner.co.il)
fe21c0f642ae296da665f0d1e84fb0bc268fd13d.1656013840.git.efraim@flashner.co.il
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(-)

Toggle diff (34 lines)
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@elephly.net>
 ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
-;;; Copyright © 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@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
E
E
Efraim Flashner wrote on 23 Jun 21:56 +0200
[PATCH 2/4] gnu: Add gdmd.
(address . 56175@debbugs.gnu.org)
05854af00eb9719e90a0f326d8d7ad53de19c110.1656013840.git.efraim@flashner.co.il
From: Esther Flashner <esther@flashner.co.il>

* gnu/packages/dlang.scm (gdmd): New variable.

Co-authored-by: Efraim Flashner <efraim@flashner.co.il>
---
gnu/packages/dlang.scm | 45 +++++++++++++++++++++++++++++++++++++++++-
1 file changed, 44 insertions(+), 1 deletion(-)

Toggle diff (86 lines)
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@elephly.net>
 ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
-;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022 Esther Flashner <esther@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
E
E
Efraim Flashner wrote on 23 Jun 21:56 +0200
[PATCH 3/4] gnu: ldc-bootstrap-1.27: Build with gdmd.
(address . 56175@debbugs.gnu.org)
4f23fd3ff907e0a65cb46bdac4359a958341884b.1656013840.git.efraim@flashner.co.il
From: Esther Flashner <esther@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@flashner.co.il>
---
gnu/packages/dlang.scm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

Toggle diff (16 lines)
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
E
E
Efraim Flashner wrote on 23 Jun 21:56 +0200
[PATCH 4/4] gnu: Remove unneeded ldc bootstrap packages.
(address . 56175@debbugs.gnu.org)(name . Efraim Flashner)(address . efraim@flashner.co.il)
44bde1070a56447137768cce5a8185a8b70e44b6.1656013840.git.efraim@flashner.co.il
* 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(-)

Toggle diff (262 lines)
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
E
E
Efraim Flashner wrote on 26 Jun 14:15 +0200
Re: bug#56175: Acknowledgement ([PATCH 0/4] Update D bootstrap)
(address . 56175-done@debbugs.gnu.org)
YrhN85y7l4tjB1Ar@3900XT
Patch pushed.

--
Efraim Flashner <efraim@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
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAmK4TfMACgkQQarn3Mo9
g1FuGxAAkmdmILp+/tC9E/R/9MmSxUesVXmmAjsyRp7K384/KlsBYf9kosr90U5B
dkGxSwhVAcshMqBubxddPUEILlr8e5Q6ARNBtUMQgz8eeNO+rK1+nAkkUk5oF7pZ
f13XTTvgJM7QweEvZaICF5KwfgzeJtwCm58nqP6BZ3UUZP1N+iDxHymoaY/7foS0
qamu++2RhMP13EQ/L9t2NAGgeEIrxIfq8HgTFF/kmabE5k5J9xOlfsgM3rTCAyaG
HREoukdjYLHWNjQVpybFw/OaBk2UR1wxxyIWxb9KQdLLmccJx0fyva7TII5XwVvr
GtQw6sC+WICWDbQ4tLuN4j892SX4BO9xJFd0tAH9lzdvmqIEfrUhg6bdwv0WFuTI
59Qd9rT3LmEqeoQ741Ex1iVR+kmYPtKuY5jDjFc5H9e+8gfr9FIXjlSfu8q14LSy
QW2xPJAhTj0auQjid4L8jnpZrRHHKg47+shQ16PeTx3nf6RfsF1Fnw9anH+buQok
9qVBi0902UVjTkoFwKXE+pqf3nGBfObd5jMjr+BNGrtRsp7mq5gmvz0g5sW4GseU
juoHJDjbFsXfwRtM+5EYig7sMEfPYJoeBEl8dMME0ALMD1x/3ln0pWqjsbPywwPE
IGksYkz0aSTFutCaX5CXj0slpcehDyW8okDfewdabto4ibaNwqY=
=uSee
-----END PGP SIGNATURE-----


Closed
?
Your comment

This issue is archived.

To comment on this conversation send email to 56175@debbugs.gnu.org