;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Taylan Ulrich Bayırlı/Kammer ;;; ;;; 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 . (define-module (gnu packages nmap) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system glib-or-gtk) #:use-module ((guix licenses) #:prefix license:) #:use-module ((gnu packages admin) #:select (libpcap)) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) #:use-module (gnu packages lua) #:use-module (gnu packages pcre) #:use-module (gnu packages python) #:use-module (gnu packages tls)) (define-public nmap (package (name "nmap") (version "7.01") (source (origin (method url-fetch) (uri (string-append "http://nmap.org/dist/nmap-" version ".tar.bz2")) (sha256 (base32 "01bpc820fmjl1vd08a3j9fpa84psaa7c3cxc8wpzabms8ckcs7yg")))) (build-system glib-or-gtk-build-system) (inputs `(("openssl" ,openssl) ("libpcap" ,libpcap) ("pcre" ,pcre) ("lua" ,lua) ("python" ,python-2) ("pygtk" ,python2-pygtk) ("pygobject" ,python2-pygobject-2) ("pycairo" ,python2-pycairo) ;; XXX Add liblinear here once it's packaged. (Nmap uses its ;; own version when it can't find it.) )) (outputs '("out" "ndiff" "zenmap")) (arguments '(#:phases (modify-phases %standard-phases (replace 'install (lambda* (#:key inputs outputs #:allow-other-keys) (define (make out . args) (unless (zero? (apply system* "make" (string-append "prefix=" out) args)) (error "make failed"))) (define (python-path dir) (string-append dir "/lib/python2.7/site-packages")) (let ((out (assoc-ref outputs "out")) (ndiff (assoc-ref outputs "ndiff")) (zenmap (assoc-ref outputs "zenmap")) (pygtk (assoc-ref inputs "pygtk")) (pygobject (assoc-ref inputs "pygobject")) (pycairo (assoc-ref inputs "pycairo"))) (for-each mkdir-p (list out ndiff zenmap)) (make out "install-nmap" "install-nse" "install-ncat" "install-nping") (make ndiff "install-ndiff") (make zenmap "install-zenmap") (wrap-program (string-append ndiff "/bin/ndiff") `("PYTHONPATH" prefix (,(python-path ndiff)))) (wrap-program (string-append zenmap "/bin/zenmap") `("PYTHONPATH" prefix (,(python-path zenmap) ,(string-append (python-path pygtk) "/gtk-2.0") ,(python-path pygobject) ,(python-path pycairo)))) )))) ;; Nmap can't cope with out-of-source building. #:out-of-source? #f ;; Tests require network access, which build processes don't have. #:tests? #f)) (home-page "http://nmap.org/") (synopsis "Network discovery and security auditing tool") (description "Nmap (\"Network Mapper\") is a network discovery and security auditing tool. It is also useful for tasks such as network inventory, managing service upgrade schedules, and monitoring host or service uptime. It also provides an advanced netcat implementation (ncat), a utility for comparing scan results (ndiff), a packet generation and response analysis tool (nping), and the Zenmap GUI and results viewer.") (license license:gpl2)))