diff options
author | Marius Bakke <marius@gnu.org> | 2020-06-14 16:24:34 +0200 |
---|---|---|
committer | Marius Bakke <marius@gnu.org> | 2020-06-14 16:24:34 +0200 |
commit | 4193095e18b602705df94e38a8d60ef1fe380e49 (patch) | |
tree | 2500f31bcfae9b4cb5a23d633395f6892a7bd8a7 /gnu/packages/code.scm | |
parent | a48a3f0640d76cb5e5945557c9aae6dabce39d93 (diff) | |
parent | e88745a655b220b4047f7db5175c828ef9c33e11 (diff) | |
download | guix-4193095e18b602705df94e38a8d60ef1fe380e49.tar.gz |
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu/packages/code.scm')
-rw-r--r-- | gnu/packages/code.scm | 110 |
1 files changed, 100 insertions, 10 deletions
diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index ee47582ec8..6334c97ef2 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013, 2015, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015, 2018 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 Andy Wingo <wingo@igalia.com> @@ -13,6 +13,7 @@ ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2019 Hartmut Goebel <h.goebel@goebel-consult.de> ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2020 Marius Bakke <marius@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -43,11 +44,16 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages bash) + #:use-module (gnu packages c) #:use-module (gnu packages compression) #:use-module (gnu packages cpp) #:use-module (gnu packages emacs) #:use-module (gnu packages gcc) #:use-module (gnu packages graphviz) + #:use-module (gnu packages llvm) + #:use-module (gnu packages linux) + #:use-module (gnu packages lua) + #:use-module (gnu packages ncurses) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages perl-compression) @@ -55,9 +61,8 @@ #:use-module (gnu packages python) #:use-module (gnu packages sqlite) #:use-module (gnu packages texinfo) - #:use-module (gnu packages ncurses) - #:use-module (gnu packages llvm) - #:use-module (gnu packages lua)) + #:use-module (gnu packages web) + #:use-module (gnu packages xml)) ;;; Tools to deal with source code: metrics, cross-references, etc. @@ -135,18 +140,26 @@ highlighting your own code that seemed comprehensible when you wrote it.") (list (string-append "--with-ncurses=" (assoc-ref %build-inputs "ncurses")) (string-append "--with-sqlite3=" - (assoc-ref %build-inputs "sqlite"))) + (assoc-ref %build-inputs "sqlite")) + "--disable-static") #:phases (modify-phases %standard-phases (add-after 'install 'post-install (lambda* (#:key outputs #:allow-other-keys) - ;; Install the Emacs Lisp file in the right place. + ;; Install the plugin files in the right place. (let* ((out (assoc-ref outputs "out")) (data (string-append out "/share/gtags")) + (vim (string-append out "/share/vim/vimfiles/plugin")) (lisp (string-append out "/share/emacs/site-lisp"))) - (install-file (string-append data "/gtags.el") lisp) - (delete-file (string-append data "/gtags.el")) + (mkdir-p lisp) + (mkdir-p vim) + (rename-file (string-append data "/gtags.el") + (string-append lisp "/gtags.el")) + (rename-file (string-append data "/gtags.vim") + (string-append vim "/gtags.vim")) + (rename-file (string-append data "/gtags-cscope.vim") + (string-append vim "/gtags-cscope.vim")) #t)))))) (home-page "https://www.gnu.org/software/global/") (synopsis "Cross-environment source code tag system") @@ -217,7 +230,7 @@ COCOMO model or user-provided parameters.") (define-public cloc (package (name "cloc") - (version "1.84") + (version "1.86") (source (origin (method git-fetch) @@ -226,7 +239,7 @@ COCOMO model or user-provided parameters.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "14xikdwcr6pcnkk2i43zrsj88z8b3mrv0svbnbvxvarw1id83pnn")))) + (base32 "082gj2b3x11bilz8c572dd60vn6n0fhld5zhi7wk7g1wy9wlgm9w")))) (build-system gnu-build-system) (inputs `(("coreutils" ,coreutils) @@ -321,6 +334,83 @@ features that are not supported by the standard @code{stdio} implementation.") (license (license:non-copyleft "http://sourceforge.net/p/ctrio/git/ci/master/tree/README")))) +(define-public universal-ctags + ;; The project is unable to decide whether to use 1.0 or 6.0 as the + ;; first public release version (it started as a fork of another ctags + ;; project that was on version 5.8), and five years later have been + ;; unable to tag a release. Thus, we just take the master branch. + (let ((commit "0c78c0c4a68030df0d025c90bad291108b5e7107") + (revision "0")) + (package + (name "universal-ctags") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/universal-ctags/ctags") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0lnxc3kwi6srw0015m16vyjfdc7pdr9d1qzxjsbfv3c69ag87jhc")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove the bundled PackCC and associated build rules. + (substitute* "Makefile.am" + (("\\$\\(packcc_verbose\\)\\$\\(PACKCC\\)") + "packcc") + (("\\$\\(PEG_SRCS\\) \\$\\(PEG_HEADS\\): packcc\\$\\(EXEEXT\\)") + "$(PEG_SRCS) $(PEG_HEADS):") + (("noinst_PROGRAMS \\+= packcc") + "")) + (delete-file-recursively "misc/packcc") + #t)))) + (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-after 'unpack 'make-files-writable + (lambda _ + (for-each make-file-writable (find-files ".")) + #t)) + (add-before 'bootstrap 'patch-optlib2c + (lambda _ + ;; The autogen.sh script calls out to optlib2c to + ;; generate translations, so we can not wait for the + ;; patch-source-shebangs phase. + (patch-shebang "misc/optlib2c") + #t)) + (add-before 'check 'patch-tests + (lambda _ + (substitute* "misc/units" + (("SHELL=/bin/sh") + (string-append "SHELL=" (which "sh")))) + (substitute* "Tmain/utils.sh" + (("/bin/echo") (which "echo"))) + #t))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("packcc" ,packcc) + ("perl" ,perl) + ("pkg-config" ,pkg-config))) + (inputs + `(("jansson" ,jansson) + ("libseccomp" ,libseccomp) + ("libxml2" ,libxml2) + ("libyaml" ,libyaml))) + (home-page "https://ctags.io/") + (synopsis "Generate tag files for source code") + (description + "Universal Ctags generates an index (or tag) file of language objects +found in source files for many popular programming languages. This index +makes it easy for text editors and other tools to locate the indexed items. +Universal Ctags improves on traditional ctags because of its multilanguage +support, its ability for the user to define new languages searched by regular +expressions, and its ability to generate emacs-style TAGS files.") + (license license:gpl2+)))) + (define-public withershins (package (name "withershins") |