gnu: icecat: Update to 78.10.0-guix0-preview1 [security fixes].
[jackhill/guix/guix.git] / gnu / packages / lsof.scm
CommitLineData
938081b9
AE
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
b6ea329a 3;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
518b21e0 4;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
d70478da 5;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
938081b9
AE
6;;;
7;;; This file is part of GNU Guix.
8;;;
9;;; GNU Guix is free software; you can redistribute it and/or modify it
10;;; under the terms of the GNU General Public License as published by
11;;; the Free Software Foundation; either version 3 of the License, or (at
12;;; your option) any later version.
13;;;
14;;; GNU Guix is distributed in the hope that it will be useful, but
15;;; WITHOUT ANY WARRANTY; without even the implied warranty of
16;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17;;; GNU General Public License for more details.
18;;;
19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21
22(define-module (gnu packages lsof)
b5b73a82 23 #:use-module ((guix licenses) #:prefix license:)
938081b9 24 #:use-module (guix packages)
518b21e0 25 #:use-module (guix git-download)
938081b9 26 #:use-module (guix build-system gnu)
f942c09b 27 #:use-module (guix utils)
2bf50213 28 #:use-module (gnu packages)
518b21e0 29 #:use-module (gnu packages groff)
938081b9
AE
30 #:use-module (gnu packages perl))
31
32(define-public lsof
33 (package
34 (name "lsof")
518b21e0 35 (version "4.94.0")
cb443e55
TGR
36 (source
37 (origin
518b21e0
TGR
38 (method git-fetch)
39 (uri (git-reference
40 (url "https://github.com/lsof-org/lsof")
41 (commit version)))
42 (file-name (git-file-name name version))
cb443e55 43 (sha256
2bf50213
TGR
44 (base32 "0yxv2jg6rnzys49lyrz9yjb4knamah4xvlqj596y6ix3vm4k3chp"))
45 (patches (search-patches "lsof-fatal-test-failures.patch"))))
938081b9 46 (build-system gnu-build-system)
518b21e0
TGR
47 (native-inputs
48 `(("groff" ,groff) ; for soelim
49 ("perl" ,perl)))
938081b9 50 (arguments
16cb3b8f 51 `(#:phases
b6ea329a 52 (modify-phases %standard-phases
b6ea329a
EF
53 (replace 'configure
54 (lambda _
f942c09b 55 (setenv "LSOF_CC" ,(cc-for-target))
b6ea329a 56 (setenv "LSOF_MAKE" "make")
d70478da
LC
57
58 ;; By default, the makefile captures the output of 'uname -a'.
59 ;; Provide a fixed output instead to make builds reproducible.
60 (setenv "LSOF_SYSINFO"
61 (string-append "GNU/" (utsname:sysname (uname))
62 " (GNU Guix)"))
63
b7fd3e96
TGR
64 (invoke "./Configure" "linux")
65 #t))
c2799070
TGR
66 (add-after 'configure 'patch-timestamps
67 (lambda _
68 (substitute* "Makefile"
6f6f9ef0
MB
69 (("`date`") "`date --date=@1`"))
70 #t))
518b21e0
TGR
71 (add-after 'build 'build-man-page
72 (lambda _
73 (with-output-to-file "lsof.8"
74 (lambda _ (invoke "soelim" "Lsof.8")))
75 #t))
16cb3b8f
TGR
76 (add-before 'check 'disable-failing-tests
77 (lambda _
78 (substitute* "tests/Makefile"
79 ;; Fails with ‘ERROR!!! client gethostbyaddr() failure’.
80 (("(STDTST=.*) LTsock" _ prefix) prefix)
81 ;; Fails without access to a remote NFS server.
6f6f9ef0
MB
82 (("(OPTTST=.*) LTnfs" _ prefix) prefix))
83 #t))
16cb3b8f 84 (replace 'check
70303d07
TGR
85 (lambda* (#:key tests? #:allow-other-keys)
86 (when tests?
87 (with-directory-excursion "tests"
88 ;; Tests refuse to run on ‘unvalidated’ platforms.
89 (make-file-writable "TestDB")
90 (invoke "./Add2TestDB")
16cb3b8f 91
70303d07
TGR
92 ;; The ‘standard’ tests suggest running ‘optional’ ones as well.
93 (invoke "make" "standard" "optional")))
94 #t))
b6ea329a
EF
95 (replace 'install
96 (lambda* (#:key outputs #:allow-other-keys)
97 (let ((out (assoc-ref outputs "out")))
4ae3549f
EF
98 (install-file "lsof" (string-append out "/bin"))
99 (install-file "lsof.8" (string-append out "/share/man/man8")))
100 #t)))))
35b9e423 101 (synopsis "Display information about open files")
938081b9
AE
102 (description
103 "Lsof stands for LiSt Open Files, and it does just that.
104It lists information about files that are open by the processes running
105on the system.")
106 (license (license:fsf-free
107 "file://00FAQ"
108 "License inspired by zlib, see point 1.9 of 00FAQ in the distribution."))
3720a6f8 109 (home-page "https://people.freebsd.org/~abe/")))