guix: lint: Make exception for package name starting description.
[jackhill/guix/guix.git] / gnu / packages / elf.scm
CommitLineData
2ed5b0f4 1;;; GNU Guix --- Functional package management for GNU
b6772a01 2;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
2ed5b0f4
LC
3;;;
4;;; This file is part of GNU Guix.
5;;;
6;;; GNU Guix is free software; you can redistribute it and/or modify it
7;;; under the terms of the GNU General Public License as published by
8;;; the Free Software Foundation; either version 3 of the License, or (at
9;;; your option) any later version.
10;;;
11;;; GNU Guix is distributed in the hope that it will be useful, but
12;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14;;; GNU General Public License for more details.
15;;;
16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18
19(define-module (gnu packages elf)
20 #:use-module (guix packages)
21 #:use-module (guix download)
22 #:use-module (guix build-system gnu)
3e778ad3 23 #:use-module ((guix licenses) #:select (gpl3+ lgpl3+ lgpl2.0+))
0841dcf7 24 #:use-module (gnu packages)
2ed5b0f4
LC
25 #:use-module (gnu packages m4)
26 #:use-module (gnu packages compression))
27
28(define-public elfutils
29 (package
30 (name "elfutils")
31 (version "0.157")
32 (source (origin
33 (method url-fetch)
34 (uri (string-append
35 "https://fedorahosted.org/releases/e/l/elfutils/"
36 version "/elfutils-" version ".tar.bz2"))
37 (sha256
38 (base32
39 "11ffbihw9zs2dhmlww9zilwvmv6v1pr6bvnz5dnzn0lxq70ckbag"))))
40 (build-system gnu-build-system)
41
42 ;; Separate programs because that's usually not what elfutils users want,
43 ;; and because they duplicate what Binutils provides.
44 (outputs '("out" ; libelf.so, elfutils/*.h, etc.
45 "bin")) ; ld, nm, objdump, etc.
46
47 (native-inputs `(("m4" ,m4)))
48 (inputs `(("zlib" ,zlib)))
49 (home-page "https://fedorahosted.org/elfutils/")
b6772a01
LC
50 (synopsis "Linker and ELF manipulation tools")
51 (description
52 "This package provides command-line tools to manipulate binaries in the
53Executable and Linkable Format (ELF). This includes ld, ar, objdump,
54addr2line, and more.")
2ed5b0f4
LC
55
56 ;; Libraries are dual-licensed LGPLv3.0+ | GPLv2, and programs are GPLv3+.
57 (license lgpl3+)))
3e778ad3
LC
58
59(define-public libelf
60 (package
61 (name "libelf")
62 (version "0.8.13")
63 (source (origin
64 (method url-fetch)
65 (uri (string-append "http://www.mr511.de/software/libelf-"
66 version ".tar.gz"))
67 (sha256
68 (base32
69 "0vf7s9dwk2xkmhb79aigqm0x0yfbw1j0b9ksm51207qwr179n6jr"))))
70 (build-system gnu-build-system)
71 (arguments '(#:phases (alist-replace
72 'configure
73 (lambda* (#:key outputs #:allow-other-keys)
74 ;; This old `configure' script doesn't support
75 ;; variables passed as arguments.
76 (let ((out (assoc-ref outputs "out")))
77 (setenv "CONFIG_SHELL" (which "bash"))
78 (zero?
79 (system* "./configure"
80 (string-append "--prefix=" out)))))
81 %standard-phases)))
82 (home-page "http://www.mr511.de/software/english.html")
9e771e3b 83 (synopsis "ELF object file access library")
3e778ad3
LC
84 (description "libelf is a C library to access ELF object files.")
85 (license lgpl2.0+)))
86
87(define-public patchelf
88 (package
89 (name "patchelf")
90 (version "0.6")
91 (source (origin
92 (method url-fetch)
93 (uri (string-append
94 "http://nixos.org/releases/patchelf/patchelf-"
95 version
96 "/patchelf-" version ".tar.bz2"))
97 (sha256
98 (base32
0841dcf7
MW
99 "00bw29vdsscsili65wcb5ay0gvg1w0ljd00sb5xc6br8bylpyzpw"))
100 (patches (list (search-patch "patchelf-page-size.patch")))))
3e778ad3
LC
101 (build-system gnu-build-system)
102 (home-page "http://nixos.org/patchelf.html")
103 (synopsis "Modify the dynamic linker and RPATH of ELF executables")
104 (description
105 "PatchELF allows the ELF \"interpreter\" and RPATH of an ELF binary to be
106changed.")
107 (license gpl3+)))