From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id gFPVEJrGtGIeeAEAbAwnHQ (envelope-from ) for ; Thu, 23 Jun 2022 22:01:30 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id ABmBEJrGtGJBcQEAauVa8A (envelope-from ) for ; Thu, 23 Jun 2022 22:01:30 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id D46BD13EBF for ; Thu, 23 Jun 2022 22:01:29 +0200 (CEST) Received: from localhost ([::1]:42612 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o4T17-0002ZM-0H for larch@yhetil.org; Thu, 23 Jun 2022 16:01:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37836) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o4T0i-0002Xc-5u for guix-patches@gnu.org; Thu, 23 Jun 2022 16:01:04 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:46078) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1o4T0g-0000da-Ck for guix-patches@gnu.org; Thu, 23 Jun 2022 16:01:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1o4T0g-0005Q7-94 for guix-patches@gnu.org; Thu, 23 Jun 2022 16:01:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#56175] [PATCH 4/4] gnu: Remove unneeded ldc bootstrap packages. Resent-From: Efraim Flashner Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 23 Jun 2022 20:01:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 56175 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 56175@debbugs.gnu.org Cc: Efraim Flashner Received: via spool by 56175-submit@debbugs.gnu.org id=B56175.165601443020787 (code B ref 56175); Thu, 23 Jun 2022 20:01:02 +0000 Received: (at 56175) by debbugs.gnu.org; 23 Jun 2022 20:00:30 +0000 Received: from localhost ([127.0.0.1]:39975 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o4T0A-0005PD-1Q for submit@debbugs.gnu.org; Thu, 23 Jun 2022 16:00:30 -0400 Received: from flashner.co.il ([178.62.234.194]:57694) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o4T08-0005Oy-4M for 56175@debbugs.gnu.org; Thu, 23 Jun 2022 16:00:28 -0400 Received: from localhost (unknown [141.226.14.191]) by flashner.co.il (Postfix) with ESMTPSA id 42D7E4016D; Thu, 23 Jun 2022 20:00:22 +0000 (UTC) From: Efraim Flashner Date: Thu, 23 Jun 2022 22:56:52 +0300 Message-Id: <44bde1070a56447137768cce5a8185a8b70e44b6.1656013840.git.efraim@flashner.co.il> X-Mailer: git-send-email 2.36.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1656014489; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post; bh=wdm3KJ3QvRjzHP542tspVnHipyMrHHyxyPgrJ+LMoxY=; b=t6enW6Rvg1VJs54vTmWI04pZ2ClWC50wz4FiH152XjAUsvGuDNbyia+YqbNyf5XP8BhDhT itWXnTSAosVzDYs1KsWHaNpagIW7s4szEqNL4yLojitDFSaXu8dnjyH0JDk80eO8H1jjrJ cIFcE3rJFXAzKp6eCYeTp9xGjO3RGh/MITHm7hS2WpUJ6UV6Ui9AXDsb1MTccht6JaLOWu 33lr3ER8ooZfu0c2Yv9LiUkI048+YSalrJkBqn2SY8hBCQynpOCq0ac9heQbxW0raqmCk1 prx/pbUB+LVZeccvlcF9KbrJROAftFOfkfIT/xxmmT/zZBX7IwUSkM/pxgomkg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1656014489; a=rsa-sha256; cv=none; b=iEdngunUXGyNBdxANYfsfg1MRuQshlOUlbntCEKXk9fEpfx0gVwKSec8PZZ2tDyo8YsEbN 26QR3wTPCbFB8hLeF/HEhFcbxFuqD3DfhwZcmBBtyTlrJjGOxCsyYGSXIQxZbSgU6Qqz4h xjvI/4Ehs3AG1NaZA6uob2453cfWPu9sTphH1aGuGy2vUOmwZNLHEGQhi/qpeVUf0jJm0e TMOxw1PTzh5WpnM2DVECFL5H2tVm0Qz3SC0MOY4OKNrxih2syyOLYwpK6R5R+anuDoMxab pk4ZagW07U527TxZcc3DFxgDi9IUrWzketcHcm7NGZhoqrPOvGXJI+jhSyj7fw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -2.46 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: D46BD13EBF X-Spam-Score: -2.46 X-Migadu-Scanner: scn0.migadu.com X-TUID: YgGRqldmbbEW * 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 - ;; . - `((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 + ;; . + `((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