aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu packages cedille)
  #:use-module (gnu packages)
  #:use-module (gnu packages agda)
  #:use-module (gnu packages emacs-xyz)
  #:use-module (gnu packages haskell)
  #:use-module (gnu packages haskell-xyz)
  #:use-module (guix build-system emacs)
  #:use-module (guix git-download)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages))

(define-public cedille
  (package
    (name "cedille")
    (version "1.1.2")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/cedille/cedille")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32
         "1h5s6ayh3s76z184jai3jidcs4cjk8s4nvkkv2am8dg4gfsybq22"))))
    (inputs
     (list agda agda-ial ghc ghc-alex ghc-happy))
    (build-system emacs-build-system)
    (arguments
     `(#:phases
       (modify-phases %standard-phases
         (add-after 'unpack 'patch-cedille-paths
           (lambda* (#:key outputs #:allow-other-keys)
             (let ((out (assoc-ref outputs "out")))
               (substitute* "cedille-mode.el"
                 (("/usr/share/emacs/site-lisp/cedille-mode")
                  (string-append
                   out "/share/emacs/site-lisp/cedille")))
               (substitute* "cedille-mode/cedille-mode-info.el"
                 (("\\(concat cedille-path-el \"cedille-info-main.info\"\\)")
                  (string-append
                   "\"" out "/share/info/cedille-info-main.info.gz\"")))
               #t)))
         (add-after 'patch-cedille-paths 'copy-cedille-mode
           (lambda* (#:key outputs #:allow-other-keys)
             (let* ((out (assoc-ref outputs "out"))
                    (lisp
                     (string-append
                      out "/share/emacs/site-lisp/cedille/")))
               (mkdir-p (string-append lisp "cedille-mode"))
               (copy-recursively
                "cedille-mode"
                (string-append lisp "cedille-mode"))
               (mkdir-p (string-append lisp "se-mode"))
               (copy-recursively
                "se-mode"
                (string-append lisp "se-mode"))
               #t)))
         ;; FIXME: Byte compilation fails
         (delete 'build)
         (replace 'check
           (lambda _
             (with-directory-excursion "cedille-tests"
               (invoke "sh" "run-tests.sh"))))
         (add-after 'unpack 'patch-libraries
           (lambda _ (patch-shebang "create-libraries.sh") #t))
         (add-after 'unpack 'copy-ial
           (lambda* (#:key inputs #:allow-other-keys)
             (copy-recursively
              (search-input-directory inputs "/include/agda/ial")
              "ial")
             ;; Ambiguous module if main is included from ial
             (delete-file "ial/main.agda")
             #t))
         (add-after 'check 'build-cedille
           ;; Agda has a hard time with parallel compilation
           (lambda _
             (invoke "touch" "src/Templates.hs")
             (make-file-writable  "src/Templates.hs")
             (invoke "touch" "src/templates.agda")
             (make-file-writable  "src/templates.agda")
             (invoke "make" "--jobs=1")))
         (add-after 'install 'install-cedille
           (lambda* (#:key outputs #:allow-other-keys)
             (let ((out (assoc-ref outputs "out")))
               (copy-recursively
                "lib" (string-append out "/lib/cedille"))
               (install-file "cedille" (string-append out "/bin"))
               (install-file "core/cedille-core"
                             (string-append out "/bin"))
               (install-file "docs/info/cedille-info-main.info"
                             (string-append out "/share/info"))
               #t))))))
    (home-page "https://cedille.github.io/")
    (synopsis
     "Language based on Calculus of Dependent Lambda Eliminations")
    (description
     "Cedille is an interactive theorem-prover and dependently typed
programming language, based on extrinsic (aka Curry-style) type theory.  This
makes it rather different from type theories like Coq and Agda, which are
intrinsic (aka Church-style).  In Cedille, terms are nothing more than
annotated versions of terms of pure untyped lambda calculus.  In contrast, in
Coq or Agda, the typing annotations are intrinsic parts of terms.  The typing
annotations can only be erased as an optimization under certain conditions,
not by virtue of the definition of the type theory.")
    (license license:expat)))
es/firmware.scm (make-opensbi-package): Remove specific #:xgcc for the cross-toolchain, there is not reason for it now. Also set the microarch to rv64g, so that it builds. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Josselin Poiret 2023-03-09gnu: make-openbios-package: Enable building from aarch64, riscv64....* gnu/packages/firmware.scm (make-openbios-package)[source]: Add patch to correctly detect aarch64 and riscv64 build hosts. (openbios-qemu-ppc)[arguments]: Remove aarch64 workaround for #:system. * gnu/packages/patches/openbios-aarch64-riscv64-support.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. Efraim Flashner 2023-03-09gnu: make-openbios-package: Enable setting configure-flags....* gnu/packages/firmware.scm (make-openbios-package)[arguments]: Adjust custom 'configure phase to apply configure-flags. Efraim Flashner 2023-02-20gnu: make-openbios-package: Update to 1.1-1.af97fd7....* gnu/packages/firmware.scm (make-openbios-package): Update to 1.1-1.af97fd7. [source]: Remove patch. [native-inputs]: Build with gcc-10. Add fcode-utils. * gnu/packages/patches/openbios-gcc-warnings.patch: Remove file. * ngu/local.mk (dist_patch_DATA): Remove it. Efraim Flashner 2023-02-20gnu: Add fcode-utils....* gnu/packages/firmware.scm (fcode-utils): New variable. Efraim Flashner 2023-02-08gnu: sgabios: Don't build for a specific target....* gnu/packages/firmware.scm (sgabios)[arguments]: Set target to #f since we're building a firmware file. Efraim Flashner 2023-02-08gnu: seabios: Don't build for a specific target....* gnu/packages/firmware.scm (seabios)[arguments]: Set target to #f since we're producing a firmware file. Efraim Flashner 2023-02-08gnu: openbios-qemu-ppc: Don't build for a specific target....* gnu/packages/firmware.scm (openbios-qemu-ppc)[arguments]: Set target to #f since we're producing a firmware file and not a binary. Efraim Flashner 2023-02-08gnu: openbios-qemu-ppc: Fix building on aarch64-linux....* gnu/packages/firmware.scm (openbios-qemu-ppc)[arguments]: When building from aarch64-linux build for armhf-linux. Efraim Flashner 2023-01-18gnu: make-arm-trusted-firmware: Simplify build....Reuse knowledge from recent U-Boot modifications to streamline the package definition. * gnu/packages/firmware.scm (make-arm-trusted-firmware): Change optional argument ARCH to keyword TRIPLET. Default to aarch64-linux-gnu. [arguments]: Use gexps. Add a #:target argument. Streamline how the CROSS_COMPILE make flag is computed. [native-inputs]: Delete field. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Maxim Cournoyer 2023-01-13gnu: ovmf-arm: Fix syntax error on armhf-linux....* gnu/packages/firmware.scm (ovmf-arm)[arguments]: Don't add an empty set-env phase when building for armhf-linux. Marius Bakke 2023-01-13gnu: ovmf-aarch64: Fix syntax error on aarch64-linux....* gnu/packages/firmware.scm (ovmf-aarch64)[arguments]: Don't add an empty set-env phase when building for aarch64. Marius Bakke 2023-01-05gnu: ath9k-htc-firmware: Fix deprecation warnings....* gnu/packages/firmware.scm (ath9k-htc-firmware): Invoke cross-binutils using keyword arguments. Maxim Cournoyer 2022-12-25gnu: Add opensbi-qemu....* gnu/packages/firmware.scm (opensbi-qemu): New variable. Marius Bakke 2022-12-25gnu: opensbi: Use the same source file name regardless of variant....* gnu/packages/firmware.scm (make-opensbi-package)[source](file-name): Don't use the NAME variable which changes depending on the variant. Marius Bakke 2022-12-25gnu: Add openbios-qemu-ppc....* gnu/packages/firmware.scm (make-openbios-package): New procedure. (openbios-qemu-ppc): New variable. * gnu/packages/patches/openbios-gcc-warnings.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. Marius Bakke 2022-12-23gnu: sgabios: Fix build on cross-build architectures....* gnu/packages/firmware.scm (sgabios)[arguments]: When cross-building add a make-flag to use the correct objcopy. Efraim Flashner 2022-12-22gnu: Add sgabios....* gnu/packages/firmware.scm (sgabios): New variable. Marius Bakke 2022-12-22gnu: Install QEMU firmare files to 'share/qemu'....This paves the way for using a native search path in the future. * gnu/packages/bootloaders.scm (ipxe-qemu)[arguments]: Install firmware files to 'share/qemu' instead of 'share/firmware'. * gnu/packages/firmware.scm (seabios-qemu)[arguments]: Likewise. * gnu/packages/virtualization.scm (qemu)[arguments]: Adjust accordingly. Marius Bakke 2022-12-22gnu: SeaBIOS: Split QEMU variants out to separate package....* gnu/packages/firmware.scm (seabios)[arguments]: Move custom build and install phases out to ... (seabios-qemu): ... this new variable. * gnu/packages/virtualization.scm (qemu)[inputs]: Change from SEABIOS to SEABIOS-QEMU. Marius Bakke 2022-12-21gnu: seabios: Enable for all architectures....* gnu/packages/firmware.scm (seabios)[native-inputs]: When not building from an i686-linux or x86_64-linux machine add cross-gcc and cross-binutils for i686-linux-gnu. [arguments]: When not building from an i686-linux or x86_64-linux machine adjust the Makefile to find the cross build tools needed. [supported-architectures]: Remove field. Efraim Flashner 2022-12-20gnu: seabios: Limit to i686-linux and x86_64-linux....* gnu/packages/firmware.scm (seabios)[supported-systems]: New field. Efraim Flashner 2022-12-20gnu: Add edk2-tools....* gnu/packages/firmware.scm (edk2-tools): New variable. Marius Bakke 2022-12-19gnu: SeaBIOS: Prettify version string....* gnu/packages/firmware.scm (seabios)[arguments]: Display version as "1.16.1/GNU Guix" instead of "1.16.1-guix". Marius Bakke 2022-12-19gnu: SeaBIOS: Build in parallel....* gnu/packages/firmware.scm (seabios)[arguments]: Use N-PAR-FOR-EACH to build the various targets. Marius Bakke 2022-12-19gnu: SeaBIOS: Build more BIOSen....* gnu/packages/firmware.scm (seabios)[arguments]: Build the "128k" and "microvm" BIOSen expected by QEMU. Fix installation of vgabios. Marius Bakke 2022-12-19gnu: SeaBIOS: Remove pre-generated code....* gnu/packages/firmware.scm (seabios)[source](modules, snippet): New fields. [native-inputs]: Add ACPICA. [arguments]: Add build-iasl phase. Marius Bakke 2022-12-19gnu: SeaBIOS: Use G-expression....* gnu/packages/firmware.scm (seabios)[arguments]: Rewrite as gexp. Marius Bakke 2022-12-17gnu: SeaBIOS: Simplify build....* gnu/packages/firmware.scm (seabios)[arguments]: Don't install bios.bin twice. Drop redundant append step. Marius Bakke 2022-12-17gnu: SeaBIOS: Build verbosely....* gnu/packages/firmware.scm (seabios)[arguments]: Add "V=1" to #:make-flags. Marius Bakke 2022-12-17gnu: SeaBIOS: Update to 1.16.1....* gnu/packages/firmware.scm (seabios): Update to 1.16.1. Marius Bakke 2022-11-24gnu: arm-trusted-firmware: Remove blobs in a snippet....* gnu/packages/firmware.scm (make-arm-trusted-firmware)[source]: Add snippet to remove binary blobs. [arguments]: Remove related phase. Efraim Flashner 2022-11-24gnu: arm-trusted-firmware: Update to 2.8....* gnu/packages/firmware.scm (make-arm-trusted-firmware): Update to 2.8. [arguments]: Remove trailing #t from phases. Clean up regexes. Efraim Flashner 2022-11-21gnu: fwupd: Move some inputs to propagated-inputs....* gnu/packages/firmware.scm (fwupd)[propagated-inputs]: Move curl, gcab, glib, gusb, libarchive, gnutls, json-glib and libjcat here from inputs. Signed-off-by: Marius Bakke <marius@gnu.org> Petr Hodina 2022-09-01gnu: fwupd: Disable remotes by default....* gnu/packages/firmware.scm (fwupd) [configure-flags]: Add "-Dlvfs=disabled". [phases]{ensure-all-remotes-are-disabled}: New phase. Maxim Cournoyer 2022-08-31gnu: Add fwupd....* gnu/packages/firmware.scm (fwupd): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Petr Hodina