From patchwork Thu Apr 14 12:16:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Attila Lendvai X-Patchwork-Id: 38582 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 98FCE27BBEA; Thu, 14 Apr 2022 13:22:13 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id B665427BBE9 for ; Thu, 14 Apr 2022 13:22:11 +0100 (BST) Received: from localhost ([::1]:53612 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1neyUE-0002M6-Tb for patchwork@mira.cbaines.net; Thu, 14 Apr 2022 08:22:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44606) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1neyU7-0002J6-1b for guix-patches@gnu.org; Thu, 14 Apr 2022 08:22:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:33400) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1neyU6-0005TD-OX for guix-patches@gnu.org; Thu, 14 Apr 2022 08:22:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1neyU6-0001ME-El for guix-patches@gnu.org; Thu, 14 Apr 2022 08:22:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#49607] [PATCH v2 1/3] gnu: idris: Use wrap-program to define IDRIS_CC References: In-Reply-To: Resent-From: Attila Lendvai Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 14 Apr 2022 12:22:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 49607 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 49607@debbugs.gnu.org Cc: Attila Lendvai Received: via spool by 49607-submit@debbugs.gnu.org id=B49607.16499388715129 (code B ref 49607); Thu, 14 Apr 2022 12:22:02 +0000 Received: (at 49607) by debbugs.gnu.org; 14 Apr 2022 12:21:11 +0000 Received: from localhost ([127.0.0.1]:55524 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1neyTG-0001Ke-Pf for submit@debbugs.gnu.org; Thu, 14 Apr 2022 08:21:11 -0400 Received: from mail-ed1-f46.google.com ([209.85.208.46]:39686) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1neyTF-0001KQ-7v for 49607@debbugs.gnu.org; Thu, 14 Apr 2022 08:21:09 -0400 Received: by mail-ed1-f46.google.com with SMTP id g20so6102998edw.6 for <49607@debbugs.gnu.org>; Thu, 14 Apr 2022 05:21:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=5uWmftaN+JM06weGFTVE1BwNmo2pgFzoR3j0YUdtFPo=; b=GL0G6l1gf4IraQGca5us91WEYP+K5sAH7hz7/OWWqw3Q6vCrdBU6whItu/RWnlPpqn 3C/nc3rZUB/ryGK2GoEDWEz6sqkP/WdgZL0p18R/ZV/OzqfMEcCc9eBDtNZHzlq8BfHT guMx6hgIVpdUh4V0+Hw/MpH/Ox9JyPelv5iLPQofUNRj3xsgReIfdX4kjjI6qr/dTpvA 66fpS8XLJoPCQ4wAbo0tyalsa47iCWf+0hmmto5HuGcT9D+lZcSWTxkTtz+rPraN6QmC bQZ2x/yWFYjQQOm9blZhVjrWRg0f/VgzRaeefgfNnh96wrIcMSrPSVPJCZW2sCF3P9kv P2SA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :mime-version:content-transfer-encoding; bh=5uWmftaN+JM06weGFTVE1BwNmo2pgFzoR3j0YUdtFPo=; b=WC+HI/p0OTu5eSEO9KJ8euf+QzvhMPcvEUyin07Wb7qVjkrpAe6SKqKXOnTAANP8nF 0IgG/TSxsu6PixMdHvMBk/n3ayn/TE6fZQ5CL04WBEikxJkIzgMypNw1Bi/IRUw6Q16W ErIbO6NPzpQoereR4n/E8c7y/RutonNqoL5UyEcv9U9qg14a1zK/MIkBbhCsEiEbaBXb YO0EKkZuvFLKoEBQoWbtlpSTDgbGWAlWoAN3BRuEl0tXWgY4/RnDP8nSRW2Evp9L4DCN VLAw5qcJQma/AShyWZ2ZaQ3/XCthrJ3q7bJJGaac1DVESHZskerZSIhIcctRDNJ1bt0d iF1w== X-Gm-Message-State: AOAM5326B0vhOa7WJlODORv6Pt8mqIpPHWvBU4eIaI8okLsmglzurgud mcjTPA3NkcbbiF9XTnPC/AQ9LK+SnoI= X-Google-Smtp-Source: ABdhPJyYvr5C6qDIg0ZitcyyZR6SEm7LCJBFXtUleUnI+fwJWxiSQIbJ+upiqggpsWhHqsysB+3AzQ== X-Received: by 2002:a50:ff0a:0:b0:419:4240:3be4 with SMTP id a10-20020a50ff0a000000b0041942403be4mr2657678edu.304.1649938863152; Thu, 14 Apr 2022 05:21:03 -0700 (PDT) Received: from lelap.local (catv-89-132-245-188.catv.fixed.vodafone.hu. [89.132.245.188]) by smtp.gmail.com with ESMTPSA id u3-20020a17090657c300b006d01de78926sm582042ejr.22.2022.04.14.05.21.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Apr 2022 05:21:02 -0700 (PDT) From: Attila Lendvai Date: Thu, 14 Apr 2022 14:16:11 +0200 Message-Id: <20220414121612.9815-1-attila@lendvai.name> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 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+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches Idris requires a C compiler at runtime to generate executables. * gnu/packages/idris.scm (idris): Rename the scheme variable to idris-1.3.3 to prepare for adding different versions later on. [inputs]: Add Clang, and bash-minimal (for wrap-program). [phases]: use (cc-for-target). --- i think v2 is ready for inclusion. it can bootstrap idris all the way from GHC, but it also enables a/the bootstrap shortcut for the latest version, and disables substitution for the so called historical versions by default. a bootstrap shortcut is when the makefile builds a checked in build output, which is a scheme file, using Chez Scheme. this way the build farm is not loaded unnecessarily with building a full chain of bootstrap, but at the same time users can trigger/install any of the old versions manually. gnu/packages/idris.scm | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/gnu/packages/idris.scm b/gnu/packages/idris.scm index cdf76244fb..f84431cab9 100644 --- a/gnu/packages/idris.scm +++ b/gnu/packages/idris.scm @@ -21,10 +21,12 @@ (define-module (gnu packages idris) #:use-module (gnu packages) + #:use-module (gnu packages bash) #:use-module (gnu packages haskell-check) #:use-module (gnu packages haskell-web) #:use-module (gnu packages haskell-xyz) #:use-module (gnu packages libffi) + #:use-module (gnu packages llvm) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) @@ -33,9 +35,10 @@ (define-module (gnu packages idris) #:use-module (guix download) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix packages)) + #:use-module (guix packages) + #:use-module (guix utils)) -(define-public idris +(define-public idris-1.3.3 (package (name "idris") (version "1.3.3") @@ -56,7 +59,8 @@ (define-public idris (list perl ghc-cheapskate ghc-tasty ghc-tasty-golden ghc-tasty-rerun)) (inputs - (list gmp + (list bash-minimal + gmp ncurses ghc-aeson ghc-annotated-wl-pprint @@ -95,8 +99,7 @@ (define-public idris ;; This allows us to call the 'idris' binary before installing. (add-after 'unpack 'set-ld-library-path (lambda _ - (setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/dist/build")) - #t)) + (setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/dist/build")))) (add-before 'configure 'update-constraints (lambda _ (substitute* "idris.cabal" @@ -104,8 +107,7 @@ (define-public idris dep)))) (add-before 'configure 'set-cc-command (lambda _ - (setenv "CC" "gcc") - #t)) + (setenv "CC" ,(cc-for-target)))) (add-after 'install 'fix-libs-install-location (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -122,7 +124,6 @@ (define-public idris (let ((out (assoc-ref outputs "out"))) (chmod "test/scripts/timeout" #o755) ;must be executable (setenv "TASTY_NUM_THREADS" (number->string (parallel-job-count))) - (setenv "IDRIS_CC" "gcc") ;Needed for creating executables (setenv "PATH" (string-append out "/bin:" (getenv "PATH"))) (apply (assoc-ref %standard-phases 'check) args)))) (add-before 'check 'restore-libidris_rts @@ -134,8 +135,13 @@ (define-public idris (static (assoc-ref outputs "static")) (filename "/lib/idris/rts/libidris_rts.a")) (rename-file (string-append static filename) - (string-append out filename)) - #t)))))) + (string-append out filename))))) + (add-before 'check 'wrap-program + (lambda* (#:key outputs inputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (exe (string-append out "/bin/idris"))) + (wrap-program exe + `("IDRIS_CC" = (,',(cc-for-target)))))))))) (native-search-paths (list (search-path-specification (variable "IDRIS_LIBRARY_PATH") @@ -149,6 +155,8 @@ (define-public idris Epigram and Agda.") (license license:bsd-3))) +(define-public idris idris-1.3.3) + ;; Idris modules use the gnu-build-system so that the IDRIS_LIBRARY_PATH is set. (define (idris-default-arguments name) `(#:modules ((guix build gnu-build-system) From patchwork Thu Apr 14 12:16:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Attila Lendvai X-Patchwork-Id: 38584 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id DE6AF27BBEA; Thu, 14 Apr 2022 13:22:25 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 707A127BBE9 for ; Thu, 14 Apr 2022 13:22:24 +0100 (BST) Received: from localhost ([::1]:54224 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1neyUR-0002lU-LP for patchwork@mira.cbaines.net; Thu, 14 Apr 2022 08:22:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44612) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1neyU7-0002JN-6Y for guix-patches@gnu.org; Thu, 14 Apr 2022 08:22:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:33401) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1neyU6-0005TH-UE for guix-patches@gnu.org; Thu, 14 Apr 2022 08:22:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1neyU6-0001ML-R0 for guix-patches@gnu.org; Thu, 14 Apr 2022 08:22:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#49607] [PATCH 2/3] gnu: idris: Add idris2 0.5.1, and update idris to 1.3.4. Resent-From: Attila Lendvai Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 14 Apr 2022 12:22:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 49607 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 49607@debbugs.gnu.org Cc: Attila Lendvai Received: via spool by 49607-submit@debbugs.gnu.org id=B49607.16499388875164 (code B ref 49607); Thu, 14 Apr 2022 12:22:02 +0000 Received: (at 49607) by debbugs.gnu.org; 14 Apr 2022 12:21:27 +0000 Received: from localhost ([127.0.0.1]:55527 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1neyTP-0001L0-4k for submit@debbugs.gnu.org; Thu, 14 Apr 2022 08:21:27 -0400 Received: from mail-ej1-f48.google.com ([209.85.218.48]:42888) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1neyTM-0001Kd-1K for 49607@debbugs.gnu.org; Thu, 14 Apr 2022 08:21:17 -0400 Received: by mail-ej1-f48.google.com with SMTP id i27so9663713ejd.9 for <49607@debbugs.gnu.org>; Thu, 14 Apr 2022 05:21:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=vr260DYMCgp4CvkcF7hr2uksDPF/5yw4fHHuMiQ0ge8=; b=Gf8IvSuo2CEc90HnH2FF1SCOY6FMKZ5uX6T3tIyM9dG/bViCqrgbfuHTgGgun+kBdF CMm5itkcveJb3MRd/Vh5OeiNIyvdibN7TCPr90lJgs1MsB2wEK3sW7Aov7uinYi1KdhV M2Zp5LPce46J0A2Q4xLZbBhqK9TCYVcAUZBnBAynSij6Y+fqP8XpvC/9zwOK2NAnRK6Q b7ggzZ+b2mKxFC39uTsub0Yeg68PheGHpQk/tfMVlaNA9IPx2QqX6hhah1Jiw0o0yAea 3DyTPcxg05u4ehrQeXt/T53D6F5S5HMDhrMNNzjy+2StAx2RizMBe78pwk/X+97RGeDy GUEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=vr260DYMCgp4CvkcF7hr2uksDPF/5yw4fHHuMiQ0ge8=; b=pwhzkkshal10kmoRNbMRXvQpgfL3LxB1Va6wGQ3X62e2EWHKx6LbHTKJhW6lyvFbMc XgWh9VSMYpKUDp77VCJKOiymPd6NEGJIEk66dgCcmTFA5ZCWeS33zGSpGJHa/ciJ+8Gw Ep/vqKOPpigm0urPmAqCpQodisPCWq6sLi8vkj6hQc4+9tNYJAametiw4BIlZyUp1zjM wGeCgZdD0mWeYZKGsU6h8oXamsnPhMTuCueFh3l/KnrD27L8kd1Kpa6osyjuMgOBrnBb yQKUnk2cj9wsi3kHuaPOi3BSM1l1uEbhRcJi6kSz1ViDZWCr5HsaQfBHvsZse5vhe6gz 7SLQ== X-Gm-Message-State: AOAM531sg1t/zDPEJm/JVhBGndWcfm5RkKxv9jHzSOuMjzRDD1EwUew5 ZKrRV9T3hPfJS0sZWHSkQ++5Z3Q/t0c= X-Google-Smtp-Source: ABdhPJwyy3TsA+5aAafAOBWX5UvfD9iQm8TXw5KirzREiBIdPuimyz7saD13yXfNQ9kYHhnzV+2geQ== X-Received: by 2002:a17:907:3e16:b0:6df:b4f0:5cc2 with SMTP id hp22-20020a1709073e1600b006dfb4f05cc2mr2089218ejc.285.1649938870061; Thu, 14 Apr 2022 05:21:10 -0700 (PDT) Received: from lelap.local (catv-89-132-245-188.catv.fixed.vodafone.hu. [89.132.245.188]) by smtp.gmail.com with ESMTPSA id u3-20020a17090657c300b006d01de78926sm582042ejr.22.2022.04.14.05.21.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Apr 2022 05:21:09 -0700 (PDT) From: Attila Lendvai Date: Thu, 14 Apr 2022 14:16:12 +0200 Message-Id: <20220414121612.9815-2-attila@lendvai.name> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220414121612.9815-1-attila@lendvai.name> References: <20220414121612.9815-1-attila@lendvai.name> MIME-Version: 1.0 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+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches The extra generality is added so that it is possible to bootstrap Idris HEAD all the way down from GHC. It requires patching past releases, which requires importing them into separate git branches. This work has not been merged into upstream yet, therefore the historical versions in this commit temprorarily point to my own fork, as noted in the comments. The historical versions are marked #:substitutable #false (but they are not hidden), so that they don't load the substitute servers. Idris can bootstrap itself from the checked in Scheme files of the ChezScheme or Racket backends (it can take a so called 'bootstrap shortcut'), therefore the historical versions are not necessary for compiling the latest version. They are only needed when one wants to run the bootstrap of Idris all the way down from Haskell (Idris 1 is written in Haskell). Add a symlink to a versioned binary; e.g. rename the upstream's binary to `bin/idris-1.3.4` and symlink it to `bin/idris`. This helps when multiple versions are installed. * gnu/packages/idris.scm (idris-1.3.4): New variable, the latest from the v1.x line of Idris at the time of writing. (make-idris-package): New function to instantiate a package of Idris2. (idris2-0.5.1): New variable. * gnu/packages/patches/idris-build-with-haskeline-0.8.patch: Deleted. * gnu/packages/patches/idris-build-with-megaparsec-9.patch: Deleted. * gnu/packages/patches/idris-disable-test.patch: Deleted. --- gnu/local.mk | 3 - gnu/packages/idris.scm | 307 +++++++++++++++++- .../idris-build-with-haskeline-0.8.patch | 85 ----- .../idris-build-with-megaparsec-9.patch | 27 -- gnu/packages/patches/idris-disable-test.patch | 19 -- 5 files changed, 293 insertions(+), 148 deletions(-) delete mode 100644 gnu/packages/patches/idris-build-with-haskeline-0.8.patch delete mode 100644 gnu/packages/patches/idris-build-with-megaparsec-9.patch delete mode 100644 gnu/packages/patches/idris-disable-test.patch diff --git a/gnu/local.mk b/gnu/local.mk index 70133e6502..4e46b47ad9 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1283,9 +1283,6 @@ dist_patch_DATA = \ %D%/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch\ %D%/packages/patches/id3lib-CVE-2007-4460.patch \ %D%/packages/patches/id3lib-UTF16-writing-bug.patch \ - %D%/packages/patches/idris-disable-test.patch \ - %D%/packages/patches/idris-build-with-haskeline-0.8.patch \ - %D%/packages/patches/idris-build-with-megaparsec-9.patch \ %D%/packages/patches/idris-test-ffi008.patch \ %D%/packages/patches/ilmbase-fix-tests.patch \ %D%/packages/patches/imagemagick-CVE-2020-27829.patch \ diff --git a/gnu/packages/idris.scm b/gnu/packages/idris.scm index f84431cab9..28e918a486 100644 --- a/gnu/packages/idris.scm +++ b/gnu/packages/idris.scm @@ -19,9 +19,28 @@ ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . +;;; TODO: +;;; +;;; - Idris has multiple backends, but we only register Chez as an +;;; input. Decide how to make backends optional, and/or which ones to package +;;; by default. +;;; +;;; - Set RUNPATH instead of using LD_LIBRARY_PATH. See +;;; http://blog.tremily.us/posts/rpath/ This probably needs patching Idris +;;; because it uses its FFI infrastrucutre to open libidris_support.so, which +;;; is based on dlopen. +;;; +;;; - The reason some of the historical packages point to +;;; github.com/attila-lendvai-patches is that these versions need some +;;; patches to make them buildable today, and these branches haven't been +;;; incorporated into the official repo yet. Once/if that happens, these +;;; URL's can be changed to point to the official repo. + (define-module (gnu packages idris) #:use-module (gnu packages) + #:use-module (gnu packages base) #:use-module (gnu packages bash) + #:use-module (gnu packages chez) #:use-module (gnu packages haskell-check) #:use-module (gnu packages haskell-web) #:use-module (gnu packages haskell-xyz) @@ -29,31 +48,40 @@ (define-module (gnu packages idris) #:use-module (gnu packages llvm) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) + #:use-module (gnu packages node) #:use-module (gnu packages perl) + #:use-module (gnu packages racket) + #:use-module (gnu packages version-control) #:use-module (guix build-system gnu) #:use-module (guix build-system haskell) #:use-module (guix download) + #:use-module (guix git) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix gexp) #:use-module (guix packages) - #:use-module (guix utils)) + #:use-module (guix utils) + #:use-module (ice-9 match) + #:use-module (ice-9 regex) + #:export (make-idris-package)) -(define-public idris-1.3.3 +;;; +;;; Idris 1 +;;; +(define-public idris-1.3.4 (package (name "idris") - (version "1.3.3") + (version "1.3.4") (source (origin - (method url-fetch) - (uri (string-append - "https://hackage.haskell.org/package/" - "idris-" version "/idris-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/idris-lang/Idris-dev.git") + (commit (string-append "v" version)))) (sha256 (base32 - "1pachwc6msw3n1mz2z1r1w6h518w9gbhdvbaa5vi1qp3cn3wm6q4")) - (patches (search-patches "idris-disable-test.patch" - "idris-build-with-haskeline-0.8.patch" - "idris-build-with-megaparsec-9.patch" - "idris-test-ffi008.patch")))) + "0cd2a92323hb9a6wy8sc0cqwnisf4pv8y9y2rxvxcbyv8cs1q8g2")) + (patches (search-patches "idris-test-ffi008.patch")) + (file-name (git-file-name "idris" version)))) (build-system haskell-build-system) (native-inputs ;For tests (list perl ghc-cheapskate ghc-tasty ghc-tasty-golden @@ -141,7 +169,11 @@ (define-public idris-1.3.3 (let* ((out (assoc-ref outputs "out")) (exe (string-append out "/bin/idris"))) (wrap-program exe - `("IDRIS_CC" = (,',(cc-for-target)))))))))) + `("IDRIS_CC" = (,',(cc-for-target)))) + (with-directory-excursion (string-append out "/bin/") + (let ((versioned-name ,(string-append name "-" version))) + (rename-file ,name versioned-name) + (symlink versioned-name ,name))))))))) (native-search-paths (list (search-path-specification (variable "IDRIS_LIBRARY_PATH") @@ -155,7 +187,254 @@ (define-public idris-1.3.3 Epigram and Agda.") (license license:bsd-3))) -(define-public idris idris-1.3.3) +(define-public idris idris-1.3.4) + +;;; +;;; Idris 2 +;;; +(define* (make-idris-package source idris-version + #:key bootstrap-idris + (idris-version-tag #false) + (guix-version (string-append + idris-version + (if idris-version-tag + (string-append + "-" idris-version-tag) + ""))) + (ignore-test-failures? #false) + (unwrap? #true) + (tests? #true) + (historical? #false) + (hidden? #false) ; or (hidden? historical?) + (substitutable? (not historical?)) + (files-to-patch-for-shell + '("src/Compiler/Scheme/Chez.idr" + "src/Compiler/Scheme/Racket.idr" + "src/Compiler/Scheme/Gambit.idr" + "src/Compiler/ES/Node.idr" + "bootstrap/idris2_app/idris2.rkt" + "bootstrap/idris2_app/idris2.ss" + "build/stage1/idris2_app/idris2.ss" + "build/stage1/idris2_app/idris2.rkt" + )) + (with-bootstrap-shortcut? (not historical?))) + "HISTORICAL? means that it's only interesting for historical reasons, e.g. to be +used as a bootsrapping stage. + +WITH-BOOTSTRAP-SHORTCUT? controls whether to use a previous version of Idris to +build us (which is potentially recursive), or use the captured compiler output +(Scheme code)." + (package + (name "idris2") + (version guix-version) + (source (match source + ((commit hash . url) + (origin + (method git-fetch) + (uri (git-reference + (url (if (null? url) + "https://github.com/idris-lang/Idris2.git" + (car url))) + (commit commit))) + (sha256 (base32 hash)) + (file-name (git-file-name name version)))) + ((or (? git-checkout?) + (? local-file?)) + source))) + (build-system gnu-build-system) + (native-inputs + (list (if with-bootstrap-shortcut? + chez-scheme + bootstrap-idris) + clang-toolchain-12 ; older clang-toolchain versions don't have a bin/cc + coreutils which git + node ; only for the tests + racket ; only for the tests + sed)) + (inputs + (list bash-minimal chez-scheme gmp)) + (arguments + (list + #:tests? tests? + #:substitutable? substitutable? + #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + #$(string-append "IDRIS_VERSION=" idris-version) + #$(string-append "IDRIS_VERSION_TAG=" (or idris-version-tag "")) + #$(if with-bootstrap-shortcut? + #~(string-append "SCHEME=" + #$(this-package-input "chez-scheme") + "/bin/scheme") + #~(string-append "BOOTSTRAP_IDRIS=" + #$bootstrap-idris + "/bin/" #$(package-name bootstrap-idris))) + (string-append "PREFIX=" (assoc-ref %outputs "out")) + "-j1") + #:phases + `(modify-phases %standard-phases + (delete 'bootstrap) + (delete 'configure) + (delete 'check) ; check must happen after install and wrap-program + (add-after 'unpack 'patch-paths + (lambda* (#:key inputs #:allow-other-keys) + (let ((files-to-patch (filter file-exists? + ',files-to-patch-for-shell))) + (substitute* files-to-patch + ((,(regexp-quote "#!/bin/sh")) + (string-append "#!" (assoc-ref inputs "bash") "/bin/sh")) + (("/usr/bin/env") + (string-append (assoc-ref inputs "coreutils") "/bin/env")))))) + ,@(if unwrap? + `((add-after 'install 'unwrap + (lambda* (#:key outputs #:allow-other-keys) + ;; The bin/idris2 calls bin/idris2_app/idris2.so which is + ;; the real executable, but it sets LD_LIBRARY_PATH + ;; incorrectly. Remove bin/idris2 and replace it with + ;; bin/idris2_app/idris2.so instead. + (let* ((out (assoc-ref outputs "out")) + (image-base (string-append + out "/bin/idris2_app/idris2")) + (image (if (file-exists? image-base) + image-base + ;; For v0.5.1 and older. + (string-append image-base ".so")))) + (delete-file (string-append out "/bin/idris2")) + (rename-file image (string-append out "/bin/idris2")) + (delete-file-recursively (string-append out "/bin/idris2_app")) + (delete-file-recursively (string-append out "/lib")))))) + '()) + ,@(if with-bootstrap-shortcut? + `((replace 'build + (lambda* (#:key make-flags #:allow-other-keys) + ;; i.e. do not build it using the previous version of + ;; Idris, but rather compile the comitted compiler + ;; output. + (apply invoke "make" "bootstrap" make-flags)))) + '()) + (add-after 'unwrap 'wrap-program + (lambda* (#:key outputs inputs #:allow-other-keys) + (let* ((chez (string-append (assoc-ref inputs "chez-scheme") + "/bin/scheme")) + (out (assoc-ref outputs "out")) + (exe (string-append out "/bin/" ,name)) + (version ,idris-version)) + (wrap-program exe + `("IDRIS2_PREFIX" = (,out)) + `("LD_LIBRARY_PATH" prefix (,(string-append + out "/idris2-" version "/lib"))) + `("CC" = (,',(cc-for-target))) + `("CHEZ" = (,chez))) + (with-directory-excursion (string-append out "/bin/") + (let ((versioned-name ,(string-append name "-" version))) + (rename-file ,name versioned-name) + (symlink versioned-name ,name)))))) + (add-after 'wrap-program 'check + (lambda* (#:key outputs make-flags #:allow-other-keys) + (let ((invoke-make + (lambda (target) + (apply invoke "make" + "INTERACTIVE=" + ;; "THREADS=1" ; for reproducible test output + (string-append "IDRIS2=" + (assoc-ref outputs "out") + "/bin/" ,name) + target make-flags)))) + ;; TODO This is something like how it should be handled, but + ;; the Makefile unconditionally invokes the `testenv` target, + ;; and thus overwrites the `runtest` script when `make test` is + ;; invoked. For now this situation is resolved in the Idris + ;; Makefile, by explicitly invoking the Idris `runtest` wrapper + ;; script with an sh prefix. + ;; + ;;(invoke-make "testenv") + ;;(patch-shebang "build/stage2/runtests") + (,(if ignore-test-failures? + 'false-if-exception + 'begin) + (invoke-make "test")))))))) + (properties `((hidden? . ,hidden?))) + (home-page "https://www.idris-lang.org") + (synopsis "General purpose language with full dependent types") + (description "Idris is a general purpose language with full dependent +types. It is compiled, with eager evaluation. Dependent types allow types to +be predicated on values, meaning that some aspects of a program's behaviour +can be specified precisely in the type. The language is closely related to +Epigram and Agda.") + (license license:bsd-3))) + +(define-public idris2-0.1.1 + ;; branch idris.2 + ;; This is the first (untagged) Idris2 version that bootstraps off of the + ;; Idris1 line. Originally it was in the repo called Idris2-boot. + (make-idris-package '("3c2335ee6bc00b7f417ac672a4ab7b73599abeb3" + "10w10ggyvlw7m1pazbfxr4sj3wpb6z1ap6rg3lxc0z6f2s3x53cb") + "0.1.1" + #:bootstrap-idris idris-1.3.4 + #:historical? #true + #:unwrap? #false + ;; TODO `make bootstrap` needs to be backported into the + ;; Makefile in this branch. Force the bootstrap + ;; shortcut to be turned off. + #:with-bootstrap-shortcut? #false)) + +(define-public idris2-0.2.1 + ;; branch idris.3 + (make-idris-package '("257bbc27498808e8cd4155cc06ea3f6a07541537" + "0idxplcmd6p13i2n0g49bc2snddny4kdr4wvd8854snzsiwqn7p1" + "https://github.com/attila-lendvai-patches/Idris2") + "0.2.1" + #:bootstrap-idris idris2-0.1.1 + #:historical? #true)) + +(define-public idris2-0.2.2 + ;; branch idris.4 + (make-idris-package '("9bc8e6e9834cbc7b52dc6ca2d80d7e96afeb47d1" + "0xzl1mb5yxgp6v36rngy00i59cfy67niyiblcpaksllrgmg639p4" + "https://github.com/attila-lendvai-patches/Idris2") + "0.2.2" + #:bootstrap-idris idris2-0.2.1 + #:historical? #true)) + +(define-public idris2-0.3.0 + ;; branch idris.5 + (make-idris-package '("025b5cd25b76eae28283a10bd155c384e46fbd82" + "00a83paib571ahknipmgw7g9pbym105isk3bz0c1ng41s4kjpsxh" + "https://github.com/attila-lendvai-patches/Idris2") + "0.3.0" + #:bootstrap-idris idris2-0.2.2 + #:historical? #true)) + +(define-public idris2-0.4.0 + ;; branch idris.6 + (make-idris-package '("v0.4.0" + "105jybjf5s0k6003qzfxchzsfcpsxip180bh3mdmi74d464d0h8g") + "0.4.0" + #:bootstrap-idris idris2-0.3.0 + #:ignore-test-failures? #true ; TODO investigate + #:historical? #true)) + +(define-public idris2-0.5.1 + (make-idris-package '("v0.5.1" + "09k5fxnplp6fv3877ynz1lwq9zapxcxbvfvkn6g68yb0ivrff978") + "0.5.1")) + +;; TODO re build failure: in the build sandbox some parts of the test output +;; is missing. I cannot reproduce it in a guix shell. My assumption is that +;; it's an Idris bug that only manifests in certain circumstances. There are +;; some other issues left with the use of #!/bin/sh, too. +(define-public idris2-dev + (make-idris-package '("4bb12225424d76c7874b176e2bfb8b5550c112eb" + "0kb800cgfm0afa83pbyi3x9bpswcl8jz4pr68zy092fs50km3bj7" + "https://github.com/attila-lendvai-patches/Idris2") + "0.5.1" + #:ignore-test-failures? #true + #:idris-version-tag "dev")) + +(define-public idris2 idris2-0.5.1) + +;;; +;;; Idris apps +;;; ;; Idris modules use the gnu-build-system so that the IDRIS_LIBRARY_PATH is set. (define (idris-default-arguments name) diff --git a/gnu/packages/patches/idris-build-with-haskeline-0.8.patch b/gnu/packages/patches/idris-build-with-haskeline-0.8.patch deleted file mode 100644 index 5d1fec2409..0000000000 --- a/gnu/packages/patches/idris-build-with-haskeline-0.8.patch +++ /dev/null @@ -1,85 +0,0 @@ -From 89a87cf666eb8b27190c779e72d0d76eadc1bc14 Mon Sep 17 00:00:00 2001 -From: Niklas Larsson -Date: Sat, 6 Jun 2020 15:29:45 +0200 -Subject: [PATCH] Fix to unblock haskeline-0.8 - ---- -Taken from - - idris.cabal | 2 +- - src/Idris/Output.hs | 8 -------- - src/Idris/REPL.hs | 12 +++++------- - 3 files changed, 6 insertions(+), 16 deletions(-) - -diff --git a/idris.cabal b/idris.cabal -index 38359019a9..bc9e265023 100644 ---- a/idris.cabal -+++ b/idris.cabal -@@ -336,7 +336,7 @@ Library - , directory >= 1.2.2.0 && < 1.2.3.0 || > 1.2.3.0 - , filepath < 1.5 - , fingertree >= 0.1.4.1 && < 0.2 -- , haskeline >= 0.7 && < 0.8 -+ , haskeline >= 0.8 && < 0.9 - , ieee754 >= 0.7 && < 0.9 - , megaparsec >= 7.0.4 && < 9 - , mtl >= 2.1 && < 2.3 -diff --git a/src/Idris/Output.hs b/src/Idris/Output.hs -index 70b4d48a30..6b5d59948c 100644 ---- a/src/Idris/Output.hs -+++ b/src/Idris/Output.hs -@@ -37,21 +37,13 @@ import Prelude hiding ((<$>)) - #endif - - import Control.Arrow (first) --import Control.Monad.Trans.Except (ExceptT(ExceptT), runExceptT) - import Data.List (intersperse, nub) - import Data.Maybe (fromJust, fromMaybe, isJust, listToMaybe) - import qualified Data.Set as S --import System.Console.Haskeline.MonadException (MonadException(controlIO), -- RunIO(RunIO)) - import System.FilePath (replaceExtension) - import System.IO (Handle, hPutStr, hPutStrLn) - import System.IO.Error (tryIOError) - --instance MonadException m => MonadException (ExceptT Err m) where -- controlIO f = ExceptT $ controlIO $ \(RunIO run) -> let -- run' = RunIO (fmap ExceptT . run . runExceptT) -- in fmap runExceptT $ f run' -- - pshow :: IState -> Err -> String - pshow ist err = displayDecorated (consoleDecorate ist) . - renderPretty 1.0 80 . -diff --git a/src/Idris/REPL.hs b/src/Idris/REPL.hs -index 05587d9672..5e0dc21089 100644 ---- a/src/Idris/REPL.hs -+++ b/src/Idris/REPL.hs -@@ -122,23 +122,21 @@ repl orig mods efile - (if colour && not isWindows - then colourisePrompt theme str - else str) ++ " " -- x <- H.catch (H.withInterrupt $ getInputLine prompt) -- (ctrlC (return $ Just "")) -+ x <- H.handleInterrupt (ctrlC (return $ Just "")) (H.withInterrupt $ getInputLine prompt) - case x of - Nothing -> do lift $ when (not quiet) (iputStrLn "Bye bye") - return () - Just input -> -- H.catch -- do ms <- H.catch (H.withInterrupt $ lift $ processInput input orig mods efile) -- (ctrlC (return (Just mods))) -+ do ms <- H.handleInterrupt (ctrlC (return (Just mods))) (H.withInterrupt $ lift $ processInput input orig mods efile) - case ms of - Just mods -> let efile' = fromMaybe efile (listToMaybe mods) - in repl orig mods efile' - Nothing -> return () - -- ctrlC) - -- ctrlC -- where ctrlC :: InputT Idris a -> SomeException -> InputT Idris a -- ctrlC act e = do lift $ iputStrLn (show e) -- act -- repl orig mods -+ where ctrlC :: InputT Idris a -> InputT Idris a -+ ctrlC act = do lift $ iputStrLn "Interrupted" -+ act -- repl orig mods - - showMVs c thm [] = "" - showMVs c thm ms = "Holes: " ++ diff --git a/gnu/packages/patches/idris-build-with-megaparsec-9.patch b/gnu/packages/patches/idris-build-with-megaparsec-9.patch deleted file mode 100644 index 6d7ff1d713..0000000000 --- a/gnu/packages/patches/idris-build-with-megaparsec-9.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 6ea9bc913877d765048d7cdb7fc5aec60b196fac Mon Sep 17 00:00:00 2001 -From: Felix Yan -Date: Wed, 16 Dec 2020 21:48:32 +0800 -Subject: [PATCH] Fix compatibility with megaparsec 9 - ---- -Taken from - - src/Idris/Parser/Stack.hs | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/Idris/Parser/Stack.hs b/src/Idris/Parser/Stack.hs -index fb7b611440..879786f4d2 100644 ---- a/src/Idris/Parser/Stack.hs -+++ b/src/Idris/Parser/Stack.hs -@@ -84,7 +84,11 @@ instance Message ParseError where - (pos, _) = P.reachOffsetNoLine (parseErrorOffset err) (parseErrorPosState err) - #endif - messageText = PP.text . init . P.parseErrorTextPretty . parseError -+#if MIN_VERSION_megaparsec(9,0,0) -+ messageSource err = sline -+#else - messageSource err = Just sline -+#endif - where - #if MIN_VERSION_megaparsec(8,0,0) - (sline, _) = P.reachOffset (parseErrorOffset err) (parseErrorPosState err) diff --git a/gnu/packages/patches/idris-disable-test.patch b/gnu/packages/patches/idris-disable-test.patch deleted file mode 100644 index ec8c7c8451..0000000000 --- a/gnu/packages/patches/idris-disable-test.patch +++ /dev/null @@ -1,19 +0,0 @@ -The "pkg010" test output depends on the version of optparse-applicative being -used. The expected output requires optparse-applicative >= 0.15.1.0. Skip -the test for now. - ---- idris-1.3.3/test/TestData.hs 2021-01-19 23:05:24.238958262 -0600 -+++ idris-1.3.3/test/TestData.hs 2021-01-19 23:10:33.314390997 -0600 -@@ -212,8 +212,10 @@ - ( 5, ANY ), - ( 6, ANY ), - ( 7, ANY ), -- ( 8, ANY ), -- ( 10, ANY )]), -+ ( 8, ANY )]), -+-- FIXME: Expected output depends on optparse-applicative version. -+-- See https://github.com/idris-lang/Idris-dev/issues/4896 -+-- ( 10, ANY )]), - ("prelude", "Prelude", - [ ( 1, ANY )]), - ("primitives", "Primitive types", From patchwork Thu Apr 14 12:16:13 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Attila Lendvai X-Patchwork-Id: 38583 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 5A9ED27BBEA; Thu, 14 Apr 2022 13:22:18 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 1FA1027BBE9 for ; Thu, 14 Apr 2022 13:22:18 +0100 (BST) Received: from localhost ([::1]:53996 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1neyUL-0002cD-6M for patchwork@mira.cbaines.net; Thu, 14 Apr 2022 08:22:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44620) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1neyU7-0002KC-JQ for guix-patches@gnu.org; Thu, 14 Apr 2022 08:22:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:33402) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1neyU7-0005TR-Af for guix-patches@gnu.org; Thu, 14 Apr 2022 08:22:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1neyU7-0001MS-6p for guix-patches@gnu.org; Thu, 14 Apr 2022 08:22:03 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#49607] [PATCH 3/3] gnu: idris: Add doc output and build the html documentation. Resent-From: Attila Lendvai Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 14 Apr 2022 12:22:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 49607 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 49607@debbugs.gnu.org Cc: Attila Lendvai Received: via spool by 49607-submit@debbugs.gnu.org id=B49607.16499388875170 (code B ref 49607); Thu, 14 Apr 2022 12:22:03 +0000 Received: (at 49607) by debbugs.gnu.org; 14 Apr 2022 12:21:27 +0000 Received: from localhost ([127.0.0.1]:55530 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1neyTX-0001LF-D2 for submit@debbugs.gnu.org; Thu, 14 Apr 2022 08:21:27 -0400 Received: from mail-ej1-f43.google.com ([209.85.218.43]:34782) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1neyTP-0001Ko-B7 for 49607@debbugs.gnu.org; Thu, 14 Apr 2022 08:21:19 -0400 Received: by mail-ej1-f43.google.com with SMTP id ks6so9725281ejb.1 for <49607@debbugs.gnu.org>; Thu, 14 Apr 2022 05:21:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=GwHoW2ZE3/RtBK744gIM7HPJxkEg6js/OAnh1xrZkEc=; b=IaNjzmsBYT0k/m/GVCvUbJgcSPdrYROja0Zoh7fLN9fBOAEaH3McklYD8VYTbwPIzd /JfyehcNGYhmv3dmQF0CtQF6vvFNmIGSUefI0yEymiNZ0kRjRGuRQzAdB98rCYDj93HZ ibEIPiXfz41qX7a0h3N242/AxxLcq7KPcj3gXeqXf67/LrduI2xVMDX2jOI5ptFJKnUr JPk6LM61o+D8GI9L7RF7Mi3OVER6vK+gUndjCUcE1VdRu8FBXF817VOvN+LMPtOUXNI8 qyby4D8gFpEJF3Pown/kGvzR0PqcRYA4721+FOFYcj7RLtykRoYlK7P6fa88bq7CRzkE Odew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=GwHoW2ZE3/RtBK744gIM7HPJxkEg6js/OAnh1xrZkEc=; b=VxFK6rwuAUlyqD0EMK1/DGC3qdUC94unoNTPUmtZT9tG34BELQ4k5k9WcOUEsWIVCQ QxtzSSzf1yLftpg8FXSFarPO8Tg4MDiQGjJmJjaWOwOKz0bRJg1/nbhGeUslWWIVK45/ hXRF8OwvRGbm74Af/PwHi3x6Rs6KfVvNo0JZotR23E3SA7AbZZhmv9nW2I/8CCwSG0YJ PdxhCPOCF4mQyoXRMq/uzRPNxhv1isZV0BT7A2a6ftDe8/wW8ppIPKhWSB6XlRkIljlR PABMnMdoDPNU/kV6cYzy9YIgFyUkQLgGBlySe/+oLhkNqq0C9CE/bHss3NmhZAem7HDy Q5ww== X-Gm-Message-State: AOAM5311e44gCWzupEYlv/qBpsooE7L7+XnOZ1oUIksEsbgiP95DSRXv HeBtfMp0ND21G8r5gMRkVWqFx6xQw34= X-Google-Smtp-Source: ABdhPJzETq+NE+3KEp3pXkFLmOQDJqQqn9RK6X/vJv9qTDpl+Wep2gIGmRl4RunL3gLhUmHxrlXWtg== X-Received: by 2002:a17:906:9b85:b0:6db:ab80:7924 with SMTP id dd5-20020a1709069b8500b006dbab807924mr2135954ejc.160.1649938873798; Thu, 14 Apr 2022 05:21:13 -0700 (PDT) Received: from lelap.local (catv-89-132-245-188.catv.fixed.vodafone.hu. [89.132.245.188]) by smtp.gmail.com with ESMTPSA id u3-20020a17090657c300b006d01de78926sm582042ejr.22.2022.04.14.05.21.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Apr 2022 05:21:13 -0700 (PDT) From: Attila Lendvai Date: Thu, 14 Apr 2022 14:16:13 +0200 Message-Id: <20220414121612.9815-3-attila@lendvai.name> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220414121612.9815-1-attila@lendvai.name> References: <20220414121612.9815-1-attila@lendvai.name> MIME-Version: 1.0 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+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches * gnu/packages/idris.scm (make-idris-package): Build the html docs and install it into the doc output. --- gnu/packages/idris.scm | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/gnu/packages/idris.scm b/gnu/packages/idris.scm index 28e918a486..b9b309d6d5 100644 --- a/gnu/packages/idris.scm +++ b/gnu/packages/idris.scm @@ -50,7 +50,9 @@ (define-module (gnu packages idris) #:use-module (gnu packages ncurses) #:use-module (gnu packages node) #:use-module (gnu packages perl) + #:use-module (gnu packages python) #:use-module (gnu packages racket) + #:use-module (gnu packages sphinx) #:use-module (gnu packages version-control) #:use-module (guix build-system gnu) #:use-module (guix build-system haskell) @@ -248,11 +250,17 @@ (define* (make-idris-package source idris-version bootstrap-idris) clang-toolchain-12 ; older clang-toolchain versions don't have a bin/cc coreutils which git - node ; only for the tests - racket ; only for the tests - sed)) + sed + ;; Only for the tests + node + racket + ;; Only for the docs + python-minimal + python-sphinx + python-sphinx-rtd-theme)) (inputs (list bash-minimal chez-scheme gmp)) + (outputs '("out" "doc")) (arguments (list #:tests? tests? @@ -275,6 +283,15 @@ (define* (make-idris-package source idris-version (delete 'bootstrap) (delete 'configure) (delete 'check) ; check must happen after install and wrap-program + (add-before 'build 'build-doc + (lambda* (#:key outputs #:allow-other-keys) + (invoke "make" "--directory" "docs/" "html"))) + (add-after 'build-doc 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + (let ((doc (assoc-ref outputs "doc"))) + (copy-recursively "docs/build/html" + (string-append doc "/share/doc/" + ,name "-" ,version))))) (add-after 'unpack 'patch-paths (lambda* (#:key inputs #:allow-other-keys) (let ((files-to-patch (filter file-exists?