From fb59f4f392635f459ed199a3d291dbdb7c437aae Mon Sep 17 00:00:00 2001 From: Jiajie Chen Date: Tue, 11 Apr 2023 16:18:45 +0800 Subject: [PATCH] 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 Change-Id: I5b381e77f6e6ed89431856f409a5a6e8b9fd765c --- gnu/packages/lsof.scm | 96 ++++++++++++++----------------------------- 1 file changed, 31 insertions(+), 65 deletions(-) diff --git a/gnu/packages/lsof.scm b/gnu/packages/lsof.scm index 5f413483f4..8fd932daaf 100644 --- a/gnu/packages/lsof.scm +++ b/gnu/packages/lsof.scm @@ -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.