gnu: miniupnpc: Update to 2.0.
[jackhill/guix/guix.git] / gnu / packages / gdb.scm
index 95f542c..c6cc623 100644 (file)
@@ -1,5 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages gdb)
+  #:use-module (gnu packages)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages dejagnu)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages xml)
+  #:use-module (gnu packages guile)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages pkg-config)
   #:use-module ((guix licenses) #:select (gpl3+))
   #:use-module (guix packages)
   #:use-module (guix download)
 (define-public gdb
   (package
     (name "gdb")
-    (version "7.5.1")
+    (version "7.12")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/gdb/gdb-"
-                                 version ".tar.bz2"))
+                                 version ".tar.xz"))
              (sha256
               (base32
-               "084xs90545an51biyy4qd53hsw6p1k6arviq2wlz1a4z526q02q7"))))
+               "152g2qa8337cxif3lkvabjcxfd9jphfb2mza8f1p2c4bjk2z6kw3"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases (alist-cons-after
-                 'configure 'post-configure
-                 (lambda _
-                   (patch-makefile-SHELL "gdb/gdbserver/Makefile.in"))
-                 %standard-phases)))
+     `(#:tests? #f ; FIXME "make check" fails on single-processor systems.
+
+       #:modules ((srfi srfi-1)
+                  ,@%gnu-build-system-modules)
+
+       #:phases (modify-phases %standard-phases
+                  (add-after
+                   'configure 'post-configure
+                   (lambda _
+                     (for-each patch-makefile-SHELL
+                               (find-files "." "Makefile\\.in"))))
+                  (add-after
+                   'install 'remove-libs-already-in-binutils
+                   (lambda* (#:key inputs outputs #:allow-other-keys)
+                     ;; Like Binutils, GDB installs libbfd, libopcodes, etc.
+                     ;; However, this leads to collisions when both are
+                     ;; installed, and really is none of its business,
+                     ;; conceptually.  So remove them.
+                     (let* ((binutils (assoc-ref inputs "binutils"))
+                            (out      (assoc-ref outputs "out"))
+                            (files1   (with-directory-excursion binutils
+                                        (append (find-files "lib")
+                                                (find-files "include"))))
+                            (files2   (with-directory-excursion out
+                                        (append (find-files "lib")
+                                                (find-files "include"))))
+                            (common   (lset-intersection string=?
+                                                         files1 files2)))
+                       (with-directory-excursion out
+                         (for-each delete-file common)
+                         #t)))))))
     (inputs
      `(("expat" ,expat)
        ("mpfr" ,mpfr)
        ("gmp" ,gmp)
        ("readline" ,readline)
        ("ncurses" ,ncurses)
+       ("guile" ,guile-2.0)
        ("python" ,python)
-       ("texinfo" ,texinfo)
-       ("dejagnu" ,dejagnu)))
-    (home-page "http://www.gnu.org/software/gdb/")
+       ("python-wrapper" ,python-wrapper)
+       ("dejagnu" ,dejagnu)
+
+       ;; Allow use of XML-formatted syscall information.  This enables 'catch
+       ;; syscall' and similar commands.
+       ("libxml2" ,libxml2)))
+    (native-inputs
+      `(("texinfo" ,texinfo)
+        ("pkg-config" ,pkg-config)))
+    (home-page "https://www.gnu.org/software/gdb/")
     (synopsis "The GNU debugger")
     (description
-     "GDB, the GNU Project debugger, allows you to see what is going
-on `inside' another program while it executes -- or what another
-program was doing at the moment it crashed.")
+     "GDB is the GNU debugger.  With it, you can monitor what a program is
+doing while it runs or what it was doing just before a crash.  It allows you
+to specify the runtime conditions, to define breakpoints, and to change how
+the program is running to try to fix bugs.  It can be used to debug programs
+written in C, C++, Ada, Objective-C, Pascal and more.")
     (license gpl3+)))