aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2015, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 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 idutils)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix build-system gnu)
  #:use-module (guix licenses)
  #:use-module (gnu packages emacs)
  #:use-module (gnu packages))

(define-public idutils
  (package
    (name "idutils")
    (version "4.6")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/idutils/idutils-"
                                 version ".tar.xz"))
             (sha256
              (base32
               "1hmai3422iaqnp34kkzxdnywl7n7pvlxp11vrw66ybxn9wxg90c1"))
             (modules '((guix build utils)))
             (snippet
              '(begin
                 (substitute* (find-files "lib" "\\.c$")
                   (("#if defined _IO_ftrylockfile")
                    "#if defined _IO_EOF_SEEN"))
                 (substitute* "lib/stdio-impl.h"
                   (("^/\\* BSD stdio derived implementations")
                    (string-append "#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN\n"
                                   "# define _IO_IN_BACKUP 0x100\n"
                                   "#endif\n\n"
                                   "/* BSD stdio derived implementations")))

                 ;; 'gets' is deprecated in glibc 2.33 and its declaration is
                 ;; no longer visible by default from <stdio.h>.
                 (substitute* "lib/stdio.in.h"
                   (("_GL_WARN_ON_USE \\(gets.*") ""))))))
    (build-system gnu-build-system)
    (arguments
     ;; XXX: These Gnulib tests fail with GCC 10 and glibc 2.33; skip them.
     '(#:make-flags '("XFAIL_TESTS=test-sprintf-posix test-isnanl-nolibm")))
    (native-inputs `(("emacs" ,emacs-minimal)))
    (home-page "https://www.gnu.org/software/idutils/")
    (synopsis "Identifier database utilities")
    (description
     "The GNU idutils package includes tools to create an index of textual
tokens used in a list of file names and then to query that index.  Thus, it
allows the user to, for example, find all the uses of a particular function
in a large programming project.  In addition to handling textual tokens, it
can also handle numeric constants and the contents of character strings.")
    (license gpl3+)))
hecker and simulator (TLC); a TLA+ REPL; a semantic analyzer (SANY); the TLATeX typesetting system; PlusCal translator; and more. I have added five wrapper scripts for convenience, rather than invoking `java' manually. The wrapper scripts are not comprehensive; users who are familiar with tla2tools.jar, or have read the book Specifying Systems, may still invoke the commands in the traditional way. The minimum JDK version is 11. I chose to stick with that rather than bumping it to 14 (which is the largest version currently in Guix) because each OpenJDK version in Guix depends on the version before it, and so it needlessly results in many 100s of MiB of unnecessary dependencies. Note that this is _not_ the TLA+ Toolbox, which is the GUI commonly used with TLA+. * gnu/packages/java.scm (tla2tools): New variable. * gnu/packages/patches/tla2tools-build-xml.patch: New patch. * gnu/local.mk (dist_patch_DATA): Add it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Mike Gerwitz 2021-05-05gnu: Add java-jline-reader....This package is part of JLine 3. * gnu/packages/java.scm (java-jline-reader): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Mike Gerwitz 2021-05-05gnu: Add java-jline-terminal....This is part of JLine 3. I was able to get this working properly under Guix by providing ncurses' infocmp, as well as ensuring the *.caps files were present in the JAR, but similar methods didn't work for the tests; if you have Java knowledge, I'd appreciate the help getting those tests enabled. * gnu/packages/java.scm (java-jline-terminal): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Mike Gerwitz 2021-05-05gnu: Add java-eclipse-lsp4j packages....All of these packages are components of java-eclipse-lsp4j, packaged independently. This contains only what was needed for tla2tools, and so there are parts of java-eclipse-lsp4j that are not packaged. Note that this does not package the latest version (0.12.0 at the time of writing)---it depends on the Xtend language, which is a huge packaging effort. 0.10.0 is the version expected by tla2tools, for which this dependency was introduced. * gnu/packages/java.scm (java-eclipse-lsp4j-common): New variable. (java-eclipse-lsp4j-jsonrpc): New variable. (java-eclipse-lsp4j-jsonrpc-debug): New variable. (java-eclipse-lsp4j-generator): New variable. (java-eclipse-lsp4j-debug): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Mike Gerwitz 2021-05-05gnu: Add java-eclipse-xtext-xbase-lib....This package is a component of xtext-lib. The rest of xtext-lib was not added. * gnu/packages/java.scm (java-eclipse-xtext-xbase-lib): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Mike Gerwitz 2021-05-05gnu: Add java-gson-2.8.6....This introduces a new package rather than upgrading the exist java-gson package because it is built using OpenJDK11; I didn't want to have to propagate that JDK dependency to the other packages that use it. OpenJDK 11 was chosen becuase this dependency was introduced for tla2tools. * gnu/packages/java.scm (java-gson-2.8.6): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Mike Gerwitz 2021-05-04gnu: java-javaparser: Upgrade os.name to ‘Guix’....* gnu/packages/java.scm (java-javaparser)[arguments]: Drop ‘SD’. Tobias Geerinckx-Rice 2021-04-21gnu: openjdk: Disallow references to the JDK used for build....This ensures JDKs don't unintentionally keep references to the one used to build them, as reported at <https://issues.guix.gnu.org/31719#7> and fixed by 97a43db8b4416a1450aa61737edba9cf4126cf1c. * gnu/packages/java.scm (icedtea-8)[arguments]: Add #:disallowed-references. (openjdk9)[arguments]: Likewise. (openjdk10)[arguments]: Likewise. (openjdk11)[arguments]: Likewise. Ludovic Courtès 2021-04-21gnu: openjdk: Avoid non-top-level 'use-modules'....* gnu/packages/java.scm (icedtea-8, openjdk9, openjdk11)[arguments]: Replace non-top-level 'use-modules' by '@'. Ludovic Courtès 2021-04-21gnu: openjdk: Fix library substitution when libraries aren't found....* gnu/packages/java.scm (icedtea-8, openjdk9, openjdk11)[arguments]: Change 'find-library' to always return a string. Change 'find-library' callers to use 'string-append' rather than 'format'. Starting from 97a43db8b4416a1450aa61737edba9cf4126cf1c, 'find-library' could return #f and JNI substitutions would emit a literal "#f". Co-authored-by: Ludovic Courtès <ludo@gnu.org> Carlo Zancanaro 2021-04-21gnu: ant: Update to 1.10.10....* gnu/packages/java.scm (ant): Update to 1.10.10. Tobias Geerinckx-Rice 2021-04-20gnu: openjdk: Clean up runtime dependencies between Java versions....* gnu/packages/java.scm (icedtea-8, openjdk9, openjdk11): Do not consider icedtea/openjdk input paths when rewriting JNI libraries. Signed-off-by: Andreas Enge <andreas@enge.fr> Carlo Zancanaro 2021-04-01gnu: Fix packages that were importing Guile modules from the host....Those packages were importing (ice-9 match) & co. from the host Guile, which could potentially lead to different derivations depending on the Guile in use. Uncovered by the warning emitted by 'gexp-modules'. * gnu/packages/admin.scm (inxi-minimal)[arguments]: Remove Guile modules from #:modules. * gnu/packages/dns.scm (ddclient)[arguments]: Likewise. * gnu/packages/tex.scm (texlive-latex-koma-script)[arguments]: Likewise. * gnu/packages/java.scm (openjdk11)[arguments]: Likewise for #:imported-modules. Ludovic Courtès 2021-03-12gnu: java-openjfx-graphics: Install native libraries....* gnu/packages/java.scm (java-openjfx-graphics)[arguments]: Add phase copy-missing-file and build-native. [native-inputs]: Add missing source file. Ricardo Wurmus 2021-03-11gnu: Add java-openjfx-controls....* gnu/packages/java.scm (java-openjfx-controls): New variable. Ricardo Wurmus 2021-02-16gnu: java-args4j: Use a source file-name....* gnu/packages/java.scm (java-args4j)[source]: Add file-name field. Efraim Flashner 2021-02-15gnu: Add java-args4j....* gnu/packages/java.scm (java-args4j): New variable. Ricardo Wurmus 2021-02-12gnu: Fix indentation in OpenJDK packages....* gnu/packages/java.scm (openjdk9, openjdk10, openjdk11, openjdk12) (openjdk13, openjdk14): Untabify and indent with Emacs. Leo Prikler 2021-02-12gnu: openjdk@11: Add phase to hardcode libraries....This fixes a NullPointerException related to using fontconfig, see also <https://bugs.gnu.org/41177>. * gnu/packages/java.scm (openjdk11)[arguments]: Add patch-jni-libs phase. Signed-off-by: Leo Prikler <leo.prikler@student.tugraz.at> Björn Höfling 2021-02-12gnu: openjdk@9 : Add phase to hardcode libraries....This fixes a NullPointerException related to using fontconfig, see also <https://bugs.gnu.org/41177>. * gnu/packages/java.scm (openjdk9)[arguments]: Add patch-jni-libs phase. Signed-off-by: Leo Prikler <leo.prikler@student.tugraz.at> Björn Höfling 2021-01-17gnu: abcl: Update to 1.8.0....* gnu/packages/java.scm (abcl): Update to 1.8.0. Signed-off-by: Guillaume Le Vaillant <glv@posteo.net> Vincent Legoll