gnu: lsof: Update to 4.98.0

* gnu/packages/lsof.scm (lsof): Update to 4.98.0.
[native-inputs]: Add automake, autoconf, pkg-config, procps and util-linux.
[arguments]<#:phases>: Remove replace configure,install phases. Remove
patch-timestamps,build-man-page phases. Adjust and move disable-failing-tests
to before bootstrap.

Signed-off-by: Zheng Junjie <zhengjunjie@iscas.ac.cn>
Change-Id: I5b381e77f6e6ed89431856f409a5a6e8b9fd765c
This commit is contained in:
Jiajie Chen 2023-04-11 16:18:45 +08:00 committed by Zheng Junjie
parent eff3ff9878
commit fb59f4f392
No known key found for this signature in database
GPG key ID: 3B5AA993E1A2DFF0

View file

@ -27,78 +27,44 @@ (define-module (gnu packages lsof)
#:use-module (guix build-system gnu)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages groff)
#:use-module (gnu packages perl))
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages linux))
(define-public lsof
(package
(name "lsof")
(version "4.94.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/lsof-org/lsof")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0yxv2jg6rnzys49lyrz9yjb4knamah4xvlqj596y6ix3vm4k3chp"))
(patches (search-patches "lsof-fatal-test-failures.patch"))))
(version "4.98.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/lsof-org/lsof")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0cjmhd01p5a9cy52lirv1rkidrzhyn366f4h212jcf1cmp8xh0hd"))))
(build-system gnu-build-system)
(native-inputs
(list groff ; for soelim
perl))
(native-inputs (list automake
autoconf
groff ;for soelim
perl
pkg-config
procps ;for ps
util-linux)) ;for unshare
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda _
(setenv "LSOF_CC" ,(cc-for-target))
,@(if (%current-target-system)
'((setenv "LINUX_CONF_CC" "gcc"))
'())
(setenv "LSOF_MAKE" "make")
;; By default, the makefile captures the output of 'uname -a'.
;; Provide a fixed output instead to make builds reproducible.
(setenv "LSOF_SYSINFO"
(string-append "GNU/" (utsname:sysname (uname))
" (GNU Guix)"))
(invoke "./Configure" "linux")))
(add-after 'configure 'patch-timestamps
(lambda _
(substitute* "Makefile"
(("`date`") "`date --date=@1`"))))
(add-after 'build 'build-man-page
(lambda _
(with-output-to-file "lsof.8"
(lambda _ (invoke "soelim" "Lsof.8")))))
(add-before 'check 'disable-failing-tests
(lambda _
(substitute* "tests/Makefile"
;; Fails with ERROR!!! client gethostbyaddr() failure.
(("(STDTST=.*) LTsock" _ prefix) prefix)
;; LTnfs fails without access to a remote NFS server, and LTlock
;; fails when run on a Btrfs file system (see:
;; https://github.com/lsof-org/lsof/issues/152).
(("OPTTST=[[:space:]]*LTbigf LTdnlc LTlock LTnfs")
"OPTTST = LTbigf LTdnlc"))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(with-directory-excursion "tests"
;; Tests refuse to run on unvalidated platforms.
(make-file-writable "TestDB")
(invoke "./Add2TestDB")
;; The standard tests suggest running optional ones as well.
(invoke "make" "standard" "optional")))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(install-file "lsof" (string-append out "/bin"))
(install-file "lsof.8" (string-append out "/share/man/man8"))))))))
`(#:phases (modify-phases %standard-phases
(add-before 'bootstrap 'disable-failing-tests
(lambda _
(substitute* "Makefile.am"
;; Fails with ERROR!!! client gethostbyaddr() failure.
(("(TESTS \\+=.*) tests/LTsock" _ prefix)
prefix)
;; Fails because /proc not mounted in sandbox
(("\tdialects/linux/tests/case-20-epoll.bash \\\\")
"\\")))))))
(synopsis "Display information about open files")
(description
"Lsof stands for LiSt Open Files, and it does just that.