summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorAndreas Enge <andreas@enge.fr>2013-03-05 00:14:44 +0100
committerAndreas Enge <andreas@enge.fr>2013-03-05 00:14:44 +0100
commit938081b9cecba95803a6581b2ff4e9fc0d781ab6 (patch)
treeca136c95c9e4226aa4e27d33ff9ebfe1a7aea310 /gnu
parent2a1e82bb5c2ae28b0018aa765cff6733136b3f70 (diff)
downloadguix-938081b9cecba95803a6581b2ff4e9fc0d781ab6.tar.gz
gnu: Add lsof.
* gnu/packages/lsof.scm: New file.
* Makefile.am (MODULES): Add it.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/lsof.scm75
1 files changed, 75 insertions, 0 deletions
diff --git a/gnu/packages/lsof.scm b/gnu/packages/lsof.scm
new file mode 100644
index 0000000000..d0cdefd533
--- /dev/null
+++ b/gnu/packages/lsof.scm
@@ -0,0 +1,75 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages lsof)
+  #:use-module ((guix licenses)
+                #:renamer (symbol-prefix-proc 'license:))
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages perl))
+
+(define-public lsof
+  (package
+   (name "lsof")
+   (version "4.87")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append "ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_"
+                                version ".tar.bz2"))
+            (sha256 (base32
+                     "0b6si72sml7gr9784ak491cxxbm9mx5bh174yg6rrirbv04kgpfz"))))
+   (build-system gnu-build-system)
+   (inputs `(("perl" ,perl)))
+   (arguments
+    `(#:tests? #f ; no test target
+      #:phases
+      (alist-replace
+       'unpack
+       (lambda* (#:key source name version #:allow-other-keys)
+         (let ((unpack (assoc-ref %standard-phases 'unpack)))
+           (apply unpack (list #:source source))
+           (apply unpack (list #:source (car (find-files "." "\\.tar$"))))))
+      (alist-replace
+       'configure
+       (lambda* (#:key #:allow-other-keys)
+         (setenv "LSOF_CC" "gcc")
+         (setenv "LSOF_MAKE" "make")
+         (system* "./Configure" "linux"))
+      (alist-replace
+       'install
+       (lambda* (#:key outputs #:allow-other-keys)
+         (let ((out (assoc-ref outputs "out")))
+           (mkdir out)
+           (mkdir (string-append out "/bin"))
+           (copy-file "lsof" (string-append out "/bin/lsof"))
+           (mkdir (string-append out "/share"))
+           (mkdir (string-append out "/share/man"))
+           (mkdir (string-append out "/share/man/man8"))
+           (copy-file "lsof.8" (string-append out "/share/man/man8/lsof.8"))
+         ))
+       %standard-phases)))))
+   (synopsis "lsof displays information about open files")
+   (description
+    "Lsof stands for LiSt Open Files, and it does just that.
+It lists information about files that are open by the processes running
+on the system.")
+   (license (license:fsf-free
+             "file://00FAQ"
+             "License inspired by zlib, see point 1.9 of 00FAQ in the distribution."))
+   (home-page "http://people.freebsd.org/~abe/")))