aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/cobol.scm
blob: b864dfff0f0662ada3596c5a37511b6657104b8d (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2018, 2021-2023 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; 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 cobol)
  #:use-module (gnu packages)
  #:use-module (guix build-system gnu)
  #:use-module (guix licenses)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix gexp)
  #:use-module (gnu packages dbm)
  #:use-module (gnu packages multiprecision)
  #:use-module (gnu packages ncurses)
  #:use-module (gnu packages perl)
  #:use-module (gnu packages web)
  #:use-module (gnu packages xml))

(define-public gnucobol
  (package
    (name "gnucobol")
    (version "3.2")
    (source
      (origin
        (method url-fetch)
        (uri (string-append
               "mirror://gnu/gnucobol/gnucobol-"
               version ".tar.xz"))
        (sha256
         (base32
          "1qifkkrmscc5csri1l4rm9pbik74c3pc5za1rzx7jizddks8md1v"))))
    (arguments
     (list
       #:configure-flags
       #~(list (string-append "LDFLAGS=-Wl,-rpath="
                              #$output "/lib")
               (string-append "JSON_C_CFLAGS=-I"
                              (search-input-directory %build-inputs
                              "/include/json-c")))
       #:phases
       #~(modify-phases %standard-phases
           (add-after 'unpack 'place-cobol85-test-suite
             (lambda* (#:key inputs #:allow-other-keys)
               (let ((newcob (assoc-ref inputs "newcob")))
                 (copy-file newcob "tests/cobol85/newcob.val.Z"))))
           (add-before 'check 'set-TERM
             ;; Some tests expect a known terminal
             (lambda _ (setenv "TERM" "xterm-256color"))))
       #:test-target "checkall"))
    (native-inputs
     `(("perl" ,perl)
       ("newcob" ,(origin
                    (method url-fetch)
                    (uri "https://www.itl.nist.gov/div897/ctg/suites/newcob.val.Z")
                    (sha256
                     (base32
                      "1yb1plmv4firfnbb119r2vh1hay221w1ya34nyz0qwsxppfr56hy"))))))
    (inputs
     (list bdb gmp json-c libxml2 ncurses))
    (build-system gnu-build-system)
    (home-page "https://www.gnu.org/software/gnucobol/")
    (synopsis "Modern COBOL compiler")
    (description
     "GnuCOBOL is a free, modern COBOL compiler.  It implements a substantial
part of COBOL 85, X/Open COBOL and newer ISO COBOL standards as well as many
extensions from other COBOL compilers (IBM COBOL, MicroFocus COBOL, ACUCOBOL-GT
and others).")
    (license gpl3+)))
r> 2021-10-03bash completion: Append to $COMPREPLY where possible...._guix_complete is always called with a fresh empty array. * etc/completion/bash/guix (_guix_complete_command) (_guix_complete_subcommand, _guix_complete_installed_package) (_guix_complete_option, _guix_complete_pid): Append to $COMPREPLY rather than re-assigning. Tobias Geerinckx-Rice 2021-10-03bash completion: Consolidate similar $command ‘if’ branches....* etc/completion/bash/guix (_guix_complete): Combine the ‘upgrade’ and ‘remove’ commands, as well as ‘download’, ‘gc’, and ‘hash’. Tobias Geerinckx-Rice 2021-08-28zsh completion: Add missing commands and arguments....* etc/completion/zsh/_guix (_guix_install, _guix_remove, _guix_upgrade): New functions. (_guix_build, _guix_challenge, _guix_download, _guix_environment, _guix_packages, _guix_gc, _guix_hash, _guix_lint, _guix_package, _guix_publish, _guix_pull, _guix_refresh, _guix_size, _guix_system): Add some of the missing arguments. (_guix_cmds): Add missing commands. Co-authored-by: Brice Waegeneire <brice@waegenei.re> Noah Evans 2021-06-16bash_completion: Complete options for ‘guix environment’....Note that there are still plenty of bugs that this series didn't fix, e.g.: $ guix time-machine -- system reconf<Tab> * etc/completion/bash/guix (_guix_complete): Call _guix_complete_option if the word at point looks like an option. Tobias Geerinckx-Rice 2021-06-16bash completion: Complete options for the right command....* etc/completion/bash/guix (_guix_complete_option): Receive two arguments and complete the second based on the first, instead of blindly completing the very last word based on the very first (sub)command. (_guix_complete): Adjust both calls. Tobias Geerinckx-Rice 2021-06-16bash completion: Really support subcommands....* etc/completion/bash/guix (_guix_is_option): New function. (_guix_is_command): Remove function to replace it with simple string comparison… (_guix_complete): …here. Complete the ‘innermost’ command at point. Tobias Geerinckx-Rice