;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017, 2019 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2014, 2015, 2016, 2017, 2019, 2020 Eric Bavier <bavier@posteo.net>
+;;; Copyright © 2016, 2017, 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com>
+;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages bison)
+ #:use-module (gnu packages c)
#:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages flex)
#:use-module (gnu packages gtk)
#:use-module (gnu packages golang)
#:use-module (gnu packages image)
+ #:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
#:use-module (gnu packages ncurses)
(sha256
(base32 "0qx0zq8jxzx2as2zf0740g7kvgq163ayn3041di4vwk77490y76v"))))
(build-system gnu-build-system)
+ (native-inputs `(("flex" ,flex)))
(inputs
`(("astyle" ,astyle)
("llvm" ,llvm)
("clang" ,clang)
- ("flex" ,flex)
("indent" ,indent)
("perl" ,perl)
("exporter-lite" ,perl-exporter-lite)
(base32
"17w21spvaxaidi2am5lpsln8yjpyp2zi3s3gc6nsxj5arlgamzgw"))
(patches
- (search-patches "qemu-glibc-2.27.patch"))))
+ (search-patches "qemu-glibc-2.27.patch"
+ "qemu-glibc-2.30.patch"))))
(build-system gnu-build-system)
(arguments
`(;; Running tests in parallel can occasionally lead to failures, like:
(supported-systems (delete "mips64el-linux" %supported-systems))))))
(define-public stress-make
- (let ((commit "9e92dff8f0157f012aaf31de5b8b8112ad720100")
- (revision "1")) ;No official source distribution
+ (let ((commit "97815bed8060de33952475b3498767c91f59ffd9")
+ (revision "2")) ;No official source distribution
(package
(name "stress-make")
(version (git-version "1.0" revision commit))
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/lanl/stress-make.git")
+ (url "https://github.com/lanl/stress-make")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
- "1z1yiwnqyzv3v6152fnjbfh2lr8q8fi5xxfdclnr8l8sd4c1rasp"))))
+ "0k55cy7x0hlc6rgpascl6ibhcfxaash3p9r9r8kwvbm3zag1rmac"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
(add-after 'unpack-make 'set-default-shell
(lambda _
;; Taken mostly directly from (@ (gnu packages base) gnu-make)
- (substitute* (string-append ,make-dir "/job.c")
+ (substitute* (string-append ,make-dir "/src/job.c")
(("default_shell = .*$")
(format #f "default_shell = \"~a\";\n"
(which "sh"))))))
;; by GPLv3 or later.
(license (list license:lgpl3+ license:gpl3+))))
+(define-public remake
+ (package (inherit gnu-make)
+ (name "remake")
+ (version "4.3-1.5")
+ (source (origin
+ (method url-fetch)
+ (uri (let ((upstream-version
+ (match (string-split version #\-)
+ ((ver sub) (string-append ver "%2Bdbg-" sub)))))
+ (string-append "mirror://sourceforge/bashdb/"
+ "remake/" upstream-version "/"
+ "remake-" upstream-version ".tar.gz")))
+ (file-name (string-append "remake-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0xlx2485y0israv2pfghmv74lxcv9i5y65agy69mif76yc4vfvif"))
+ (patches (search-patches "remake-impure-dirs.patch"))))
+ (inputs
+ `(("readline" ,readline)
+ ,@(package-inputs gnu-make)))
+ (home-page "http://bashdb.sourceforge.net/remake/")
+ (description "Remake is an enhanced version of GNU Make that adds improved
+error reporting, better tracing, profiling, and a debugger.")
+ (license license:gpl3+)))
+
(define-public rr
(package
(name "rr")
- (version "5.3.0")
+ (version "5.4.0")
(source (origin
(method git-fetch)
(uri (git-reference
(commit version)))
(sha256
(base32
- "1x6l1xsdksnhz9v50p4r7hhmr077cq20kaywqy1jzdklvkjqzf64"))
+ "1sfldgkkmsdyaqa28i5agcykc63gwm3zjihd64g86i852w8al2w6"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
;; The 'rr_exec_stub' is a static binary, which leads CMake to fail
- ;; with:
- ;;
- ;; file RPATH_CHANGE could not write new RPATH:
- ;;
+ ;; with ‘file RPATH_CHANGE could not write new RPATH: ...’.
;; Clear CMAKE_INSTALL_RPATH to avoid that problem.
(list "-DCMAKE_INSTALL_RPATH="
+ ;; Satisfy the ‘validate-runpath’ phase. This isn't a direct
+ ;; consequence of clearing CMAKE_INSTALL_RPATH.
+ (string-append "-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath="
+ (assoc-ref %build-inputs "capnproto") "/lib")
,@(if (and (not (%current-target-system))
(member (%current-system)
'("x86_64-linux" "aarch64-linux")))
("which" ,which)))
(inputs
`(("gdb" ,gdb)
- ("cpanproto" ,capnproto)
+ ("capnproto" ,capnproto)
("python" ,python)
("python-pexpect" ,python-pexpect)))
(home-page "https://rr-project.org/")
GDB/x86 features like hardware data watchpoints, makes debugging much more
fun.")
(license license:expat)))
+
+(define-public libbacktrace
+ ;; There are no releases nor tags.
+ (let ((revision "1")
+ (commit "5009c113981431ae1843ebd29d6ad24eb32fc1b2"))
+ (package
+ (name "libbacktrace")
+ (version (git-version "1.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ianlancetaylor/libbacktrace")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0663zjpfpnsyv9h3pbp7cgmg9gz79n68bqpdl97y6i0jsx93v1zg"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags '("CFLAGS=-fPIC")))
+ (home-page "https://github.com/ianlancetaylor/libbacktrace")
+ (synopsis "C library for producing symbolic backtraces")
+ (description "The @code{libbacktrace} library can be linked into a C/C++
+program to produce symbolic backtraces.")
+ (license license:bsd-3))))
+
+(define-public libleak
+ (package
+ (name "libleak")
+ (version "0.3.5")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/WuBingzheng/libleak")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1p8mb0hcfp8hdv1klv6rrpkn2zlhjxgkxbbjsk8kszxv7ijln87d"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ;no test suite
+ #:parallel-build? #f ;jobserver unavailable
+ #:phases (modify-phases %standard-phases
+ (add-after 'unpack 'unbundle-libwuya
+ (lambda _
+ (substitute* "Makefile"
+ ((".*make -C libwuya.*") ""))
+ #t))
+ (add-before 'build 'set-CC
+ (lambda _
+ (setenv "CC" "gcc")
+ #t))
+ (delete 'configure) ;no configure script
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out")))
+ (install-file "libleak.so" (string-append out "/lib"))
+ #t))))))
+ (inputs `(("libbacktrace" ,libbacktrace)
+ ("libwuya" ,libwuya)))
+ (home-page "https://github.com/WuBingzheng/libleak")
+ (synopsis "Memory leaks detection tool")
+ (description "The libleak tool detects memory leaks by hooking memory
+functions such as @code{malloc}. It comes as a shared object to be pre-loaded
+via @code{LD_PRELOAD} when launching the application. It prints the full call
+stack at suspicious memory leak points. Modifying or recompiling the target
+program is not required, and the detection can be enabled or disabled while
+the target application is running. The overhead incurred by libleak is
+smaller than that of other tools such as Valgrind, and it aims to be easier to
+use than similar tools like @command{mtrace}.")
+ (license license:gpl2+)))
+
+(define-public mspdebug
+ (package
+ (name "mspdebug")
+ (version "0.25")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dlbeer/mspdebug")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0prgwb5vx6fd4bj12ss1bbb6axj2kjyriyjxqrzd58s5jyyy8d3c"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; no test suite
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)) ; no configure script
+ #:make-flags
+ (list (string-append "CC=" ,(cc-for-target))
+ "INSTALL=install"
+ (string-append "PREFIX=" %output))))
+ (inputs
+ `(("libusb-compat" ,libusb-compat)
+ ("readline" ,readline)))
+ (synopsis "Debugging tool for MSP430 MCUs")
+ (description "MspDebug supports FET430UIF, eZ430, RF2500 and Olimex
+MSP430-JTAG-TINY programmers, as well as many other compatible
+devices. It can be used as a proxy for gdb or as an independent
+debugger with support for programming, disassembly and reverse
+engineering.")
+ (home-page "https://github.com/dlbeer/mspdebug")
+ (license license:gpl2+)))