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)))
(hplip): Update to 3.22.10. [arguments]: Absorb the fix-more-hard-coded-file-names phase from hplip-next into the fix-hard-coded-file-names phase. (hplip-next): Delete variable. Maxim Cournoyer 2023-04-14gnu: cups-minimal: Add config to native inputs unconditionally....* gnu/packages/cups.scm (cups-minimal) [native-inputs]: Always add config. Maxim Cournoyer 2023-04-14Merge branch 'master' into core-updates....Conflicts: gnu/local.mk gnu/packages/build-tools.scm gnu/packages/certs.scm gnu/packages/check.scm gnu/packages/compression.scm gnu/packages/cups.scm gnu/packages/fontutils.scm gnu/packages/gnuzilla.scm gnu/packages/guile.scm gnu/packages/ibus.scm gnu/packages/image-processing.scm gnu/packages/linux.scm gnu/packages/music.scm gnu/packages/nss.scm gnu/packages/pdf.scm gnu/packages/python-xyz.scm gnu/packages/qt.scm gnu/packages/ruby.scm gnu/packages/shells.scm gnu/packages/tex.scm gnu/packages/video.scm gnu/packages/vulkan.scm gnu/packages/web.scm gnu/packages/webkit.scm gnu/packages/wm.scm Maxim Cournoyer 2023-04-10gnu: cups-minimal: Fix cross-building to riscv64-linux....* gnu/packages/cups.scm (cups-minimal)[arguments]: When building for riscv64-linux replace the config.guess and config.sub files. [native-inputs]: When building for riscv64-linux add config. Efraim Flashner 2023-03-02Merge remote-tracking branch 'savannah/master' into core-updates...Conflicts: gnu/local.mk gnu/packages/autotools.scm gnu/packages/cmake.scm gnu/packages/gnuzilla.scm gnu/packages/haskell.scm gnu/packages/pdf.scm gnu/packages/python-xyz.scm gnu/packages/samba.scm gnu/packages/tex.scm gnu/packages/tls.scm gnu/packages/wxwidgets.scm Christopher Baines 2023-02-19gnu: epson-inkjet-printer-escpr: Update to 1.7.24....* gnu/packages/cups.scm (epson-inkjet-printer-escpr): Update to 1.7.24. Tobias Geerinckx-Rice 2023-02-19gnu: hplip-next: Simplify the fix-more-hard-coded-file-names phase....* gnu/packages/cups.scm (hplip-next) [phases]: Only substitute python files in the fix-more-hard-coded-file-names phase. This greatly reduce the time taken by the phase (from 21 s to 0.4 s) on my system, and is functionally equivalent. Maxim Cournoyer 2023-02-18gnu: hplip-next: Update to 3.22.10....* gnu/packages/cups.scm (hplip-next): Update to 3.22.10. Maxim Cournoyer 2023-02-18gnu: Add hplip-next....* gnu/packages/cups.scm (hplip-next): New variable. Maxim Cournoyer 2023-01-30Merge remote-tracking branch 'origin/master' into core-updates... Conflicts: doc/guix.texi gnu/local.mk gnu/packages/admin.scm gnu/packages/base.scm gnu/packages/chromium.scm gnu/packages/compression.scm gnu/packages/databases.scm gnu/packages/diffoscope.scm gnu/packages/freedesktop.scm gnu/packages/gnome.scm gnu/packages/gnupg.scm gnu/packages/guile.scm gnu/packages/inkscape.scm gnu/packages/llvm.scm gnu/packages/openldap.scm gnu/packages/pciutils.scm gnu/packages/ruby.scm gnu/packages/samba.scm gnu/packages/sqlite.scm gnu/packages/statistics.scm gnu/packages/syndication.scm gnu/packages/tex.scm gnu/packages/tls.scm gnu/packages/version-control.scm gnu/packages/xml.scm guix/build-system/copy.scm guix/scripts/home.scm Efraim Flashner 2022-11-27gnu: epson-inkjet-printer-escpr: Update to 1.7.22....* gnu/packages/cups.scm (epson-inkjet-printer-escpr): Update to 1.7.22. Tobias Geerinckx-Rice 2022-09-13gnu: cups-pk-helper: Replace polkit with polkit-duktape....This avoids the error: "package `cups-pk-helper@0.2.7' has an invalid input: ("_" #<syntax-transformer polkit>)". On core-updates, polkit-duktape is the default polkit anyway. * gnu/packages/cups.scm (cups-pk-helper)[inputs]: Replace polkit with polkit-duktape. Maxim Cournoyer 2022-08-27gnu: Remove duplicate module import....This is a fixup for merge commit ad384816fe260be98bc53701d9d761197ef162fc. * gnu/packages/cups.scm: Don't import (guix gexp) twice. Marius Bakke 2022-08-27Merge branch 'staging' into core-updatesMarius Bakke 2022-08-07gnu: cups-pk-helper: Add etc/dbus-1 compatibility symlink....* gnu/packages/cups.scm (cups-pk-helper)[arguments]: Add an 'install-compatibility-symlink phase. Tobias Geerinckx-Rice 2022-08-07gnu: epson-inkjet-printer-escpr: Update to 1.7.21....* gnu/packages/cups.scm (epson-inkjet-printer-escpr): Update to 1.7.21. Tobias Geerinckx-Rice 2022-08-07gnu: cups-pk-helper: Make references non-native....* gnu/packages/cups.scm (cups-pk-helper)[native-inputs]: Move cups & polkit from here… [inputs]: …to here. Make cups-minimal. Add glib. Tobias Geerinckx-Rice 2022-08-07gnu: cups-pk-helper: Update to 0.2.7....* gnu/packages/cups.scm (cups-pk-helper): Update to 0.2.7. [build-system]: Switch to Meson. [arguments]: Explicitly disable tests. [native-inputs]: Remove unused intltool and add glib:bin. Tobias Geerinckx-Rice 2022-06-08Merge branch 'master' into core-updatesLudovic Courtès 2022-05-29gnu: cups-minimal, cups: Use G-expressions, new input style....* gnu/packages/cups.scm (cups-minimal, cups)[arguments]: Rewrite as G-expressions. [inputs]: Remove input labels. Tobias Geerinckx-Rice 2022-05-29gnu: cups-filters: Update to 1.28.15....* gnu/packages/cups.scm (cups-filters): Update to 1.28.15. Tobias Geerinckx-Rice 2022-05-29gnu: hplip: Update to 3.22.4....* gnu/packages/cups.scm (hplip): Update to 3.22.4. Tobias Geerinckx-Rice 2022-05-29gnu: cups: Add Linux PAM support....* gnu/packages/cups.scm (cups)[inputs]: Add linux-pam. Tobias Geerinckx-Rice 2022-05-29gnu: cups-minimal, cups: Update to 2.4.2....* gnu/packages/cups.scm (cups-minimal, cups): Update to 2.4.2. [arguments]: Remove --disable-* #:configure-flags as they do nothing. Add (different) --without-* ones that do. Run a newly passing test; skip a newly failing test. [home-page]: Link to specific subdirectory. [description]: Better describe the state & direction of the project. * gnu/services/cups.scm (comma-separated-string-list-or-#f?) (serialize-comma-separated-string-list-or-#f): New procedures. (cups-configuration): Update <default-auth-type> and <browse-dns-sd-sub-types> defaults. Remove obsolete <classification>, <listen-back-log>, <page-log-format> and <rip-cache> fields. Add new <max-subscriptions>, <max-subscriptions-per-job>, <max-subscriptions-per-printer>, <max-subscriptions-per-user>, and <ready-paper-sizes> ones. * doc/guix.texi (Desktop Services): Likewise for their documentation. Tobias Geerinckx-Rice 2022-05-29gnu: foomatic-filters: Use project home page....* gnu/packages/cups.scm (foomatic-filters)[home-page]: Point upstream. Tobias Geerinckx-Rice 2022-05-22gnu: cups-filters: Enable driverless printing....* gnu/packages/cups.scm (cups-filters) [source]: Substitute all ‘pkg.*dir’s, needed to… [arguments]: …remove "--disable-driverless" from #:configure-flags. Tobias Geerinckx-Rice 2022-05-22gnu: cups-filters: Remove input labels....* gnu/packages/cups.scm (cups-filters)[inputs]: Remove input labels. [arguments]: Adjust accordingly. Tobias Geerinckx-Rice 2022-05-22gnu: cups-filters: Use G-expressions....* gnu/packages/cups.scm (cups-filters)[source, arguments]: Rewrite as G-expressions. Tobias Geerinckx-Rice