;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2016, 2017, 2019 Eric Bavier ;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018, 2019 Rutger Helling ;;; Copyright © 2019 Pkill -9 ;;; Copyright © 2020 Vincent Legoll ;;; ;;; 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 . (define-module (gnu packages debug) #:use-module (guix packages) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) #:use-module (gnu packages) #:use-module (gnu packages attr) #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages code) #:use-module (gnu packages compression) #:use-module (gnu packages flex) #:use-module (gnu packages gdb) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) #:use-module (gnu packages golang) #:use-module (gnu packages image) #:use-module (gnu packages linux) #:use-module (gnu packages llvm) #:use-module (gnu packages ncurses) #:use-module (gnu packages ninja) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pretty-print) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages readline) #:use-module (gnu packages serialization) #:use-module (gnu packages virtualization) #:use-module (gnu packages xdisorg) #:use-module (ice-9 match) #:use-module (srfi srfi-1)) (define-public delta (package (name "delta") (version "2006.08.03") (source (origin (method url-fetch) (uri (list (string-append "mirror://debian/pool/main/d/delta/" "delta_" version ".orig.tar.gz") ;; This uri seems to send guix download into an infinite loop (string-append "http://delta.tigris.org/files/documents/3103/" "33566/delta-" version ".tar.gz"))) (sha256 (base32 "184wh35pf2ddx97319s6sgkzpz48xxkbwzcjpycv009bm53lh61q")))) (build-system gnu-build-system) (inputs ;Installed programs are perl scripts `(("perl" ,perl))) (arguments `(#:phases (modify-phases %standard-phases (replace 'install (lambda* (#:key outputs #:allow-other-keys) ;; Makefile contains no install target (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin")) (doc (string-append out "/share/doc/delta-" ,version))) (begin (for-each (lambda (h) (install-file h doc)) `("License.txt" ,@(find-files "www" ".*\\.html"))) (for-each (lambda (b) (install-file b bin)) `("delta" "multidelta" "topformflat")))) #t)) (delete 'configure)))) ; no configure script (home-page "http://delta.tigris.org/") (synopsis "Heuristical file minimizer") (description "Delta assists you in minimizing \"interesting\" files subject to a test of their interestingness. A common such situation is when attempting to isolate a small failure-inducing substring of a large input that causes your program to exhibit a bug.") ;; See License.txt, which is a bsd-3 license, despite the project's ;; home-page pointing to a bsd-2 license. (license license:bsd-3))) (define-public c-reduce (package (name "c-reduce") (version "2.10.0") (source (origin (method url-fetch) (uri (list (string-append "http://embed.cs.utah.edu/creduce/" "creduce-" version ".tar.gz"))) (sha256 (base32 "0qx0zq8jxzx2as2zf0740g7kvgq163ayn3041di4vwk77490y76v")))) (build-system gnu-build-system) (native-inputs `(("flex" ,flex))) (inputs `(("astyle" ,astyle) ("llvm" ,llvm) ("clang" ,clang) ("indent" ,indent) ("perl" ,perl) ("exporter-lite" ,perl-exporter-lite) ("file-which" ,perl-file-which) ("getopt-tabular" ,perl-getopt-tabular) ("regex-common" ,perl-regexp-common) ("term-readkey" ,perl-term-readkey))) (arguments `(#:phases (modify-phases %standard-phases (replace 'check (lambda _ (with-directory-excursion "tests" ;; Running all tests can take a looong time, and tests 4 and 5 ;; require frama-c or kcc. So run just one for sanity. (invoke "./run_tests" "1")))) (add-after 'install 'set-load-paths (lambda* (#:key inputs outputs #:allow-other-keys) ;; Tell creduce where to find the perl modules it needs. (let* ((out (assoc-ref outputs "out")) (prog (string-append out "/bin/creduce"))) (wrap-program prog `("PERL5LIB" ":" prefix ,(map (lambda (p) (string-append (assoc-ref inputs p)