;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Peter Feigl <peter.feigl@nexoid.at>
;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
-;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au>
;;; Copyright © 2017 Ethan R. Jones <doubleplusgood23@gmail.com>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2019 Brett Gilio <brettg@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system emacs)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system perl)
#:use-module (gnu packages python)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web)
+ #:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages terminals)
#:use-module (gnu packages texinfo)
(define-public sudo
(package
(name "sudo")
- (version "1.8.26")
+ (version "1.8.27")
(source (origin
(method url-fetch)
(uri
version ".tar.gz")))
(sha256
(base32
- "1qpyyfga8rs02p3186sns8qvh2bzwa48ka845nrcqh83dyd23nj0"))
+ "1h1f7v9pv0rzp14cxzv8kaa8mdd717fbqv83l7c5dvvi8jwnisvv"))
(modules '((guix build utils)))
(snippet
'(begin
(define-public detox
(package
(name "detox")
- (version "1.2.0")
+ (version "1.3.0")
(source (origin
- (method url-fetch)
- (uri (string-append "mirror://sourceforge/detox/detox/" version
- "/detox-" version ".tar.bz2"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dharple/detox.git")
+ (commit (string-append "v" version))))
(sha256
(base32
- "1y6vvjqsg54kl49cry73jbfhr04s7wjs779vrr9zrq6kww7dkymb"))))
+ "1dd608c7g65s5lj02cddvani3q9kzirddgkjqa22ap9d4f8b9xgr"))))
(build-system gnu-build-system)
- ;; Both flex and popt are used in this case for their runtime libraries
- ;; (libfl and libpopt).
- (inputs
- `(("flex" ,flex)
- ("popt" ,popt)))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("flex" ,flex)))
(arguments
- `(#:configure-flags `(,(string-append "--with-popt="
- (assoc-ref %build-inputs "popt")))
- #:tests? #f)) ;no 'check' target
- (home-page "http://detox.sourceforge.net")
+ `(#:tests? #f ;no 'check' target
+ #:phases (modify-phases %standard-phases
+ (add-after 'unpack 'delete-configure
+ ;; The "configure" script is present, but otherwise the
+ ;; project is not bootstrapped: missing install-sh and
+ ;; Makefile.in, so delete it so the bootstrap phase will
+ ;; take over.
+ (lambda _ (delete-file "configure") #t)))))
+ (home-page "https://github.com/dharple/detox")
(synopsis "Clean up file names")
(description
"Detox is a program that renames files to make them easier to work with
(define-public tree
(package
(name "tree")
- (version "1.7.0")
+ (version "1.8.0")
(source (origin
(method url-fetch)
(uri (string-append
"http://mama.indstate.edu/users/ice/tree/src/tree-"
version ".tgz"))
(sha256
- (base32 "04kviw799qxly08zb8n5mgxfd96gyis6x69q2qiw86jnh87c4mv9"))))
+ (base32 "1hmpz6k0mr6salv0nprvm1g0rdjva1kx03bdf1scw8a38d5mspbi"))))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases (delete 'configure))
(define-public smartmontools
(package
(name "smartmontools")
- (version "6.6")
+ (version "7.0")
(source (origin
(method url-fetch)
(uri (string-append
version "/smartmontools-" version ".tar.gz"))
(sha256
(base32
- "0m1hllbb78rr6cxkbalmz1gqkl0psgq8rrmv4gwcmz34n07kvx2i"))))
+ "077nx2rn9szrg6isdh0938zbp7vr3dsyxl4jdyyzv1xwhqksrqg5"))))
(build-system gnu-build-system)
(inputs `(("libcap-ng" ,libcap-ng)))
(home-page "https://www.smartmontools.org/")
(source
(origin
(method url-fetch)
- (uri (string-append
- "https://pypi.python.org/packages/source/g/graphios/graphios-"
- version ".tar.gz"))
+ (uri (pypi-uri "graphios" version))
(sha256
(base32
"1h87hvc315wg6lklbf4l7csd3n5pgljwrfli1p3nasdi0izgn66i"))))
(define-public ansible
(package
(name "ansible")
- (version "2.5.7")
+ (version "2.7.6")
(source
(origin
(method url-fetch)
(uri (pypi-uri "ansible" version))
(sha256
(base32
- "0wbsjjx3xjlm8g50a9j9c6p9rn23jx32yn1234bf5rmj1qgy3p85"))
- (patches (search-patches "ansible-wrap-program-hack.patch"))))
+ "0f7b2ghm34ql8yv90wr0ngd6w7wyvnlcxpc3snkj86kcjsnmx1bd"))))
(build-system python-build-system)
(native-inputs
`(("python-bcrypt" ,python-bcrypt)
("python-jinja2" ,python-jinja2)
("python-pyyaml" ,python-pyyaml)
("python-paramiko" ,python-paramiko)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; Several ansible commands (ansible-config, ansible-console, etc.)
+ ;; are just symlinks to a single ansible executable. The ansible
+ ;; executable behaves differently based on the value of
+ ;; sys.argv[0]. This does not work well with our wrap phase, and
+ ;; therefore the following two phases are required as a workaround.
+ (add-after 'unpack 'hide-wrapping
+ (lambda _
+ ;; Overwrite sys.argv[0] to hide the wrapper script from it.
+ (substitute* "bin/ansible"
+ (("import traceback" all)
+ (string-append all "
+import re
+sys.argv[0] = re.sub(r'\\.([^/]*)-real$', r'\\1', sys.argv[0])
+")))
+ #t))
+ (add-after 'wrap 'fix-symlinks
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (for-each
+ (lambda (subprogram)
+ ;; The symlinks point to the ansible wrapper script. Make
+ ;; them point to the real executable (.ansible-real).
+ (delete-file (string-append out "/bin/.ansible-" subprogram "-real"))
+ (symlink (string-append out "/bin/.ansible-real")
+ (string-append out "/bin/.ansible-" subprogram "-real"))
+ ;; The wrapper scripts of the symlinks invoke the ansible
+ ;; wrapper script. Fix them to invoke the correct executable.
+ (substitute* (string-append out "/bin/ansible-" subprogram)
+ (("/bin/ansible")
+ (string-append "/bin/.ansible-" subprogram "-real"))))
+ (list "config" "console" "doc" "galaxy"
+ "inventory" "playbook" "pull" "vault")))
+ #t)))))
(home-page "https://www.ansible.com/")
(synopsis "Radically simple IT automation")
(description "Ansible is a radically simple IT automation system. It
things like zero-downtime rolling updates with load balancers.")
(license license:gpl3+)))
+(define-public emacs-ansible-doc
+ (let ((commit "86083a7bb2ed0468ca64e52076b06441a2f8e9e0"))
+ (package
+ (name "emacs-ansible-doc")
+ (version (git-version "0.4" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lunaryorn/ansible-doc.el")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0lap404ch74w99n3xip176jr42b38xhyzkfnkyqg0g3wk2cd3aq8"))))
+ (build-system emacs-build-system)
+ ;; Unmaintained by upstream.
+ (home-page "https://github.com/lunaryorn/ansible-doc.el")
+ (synopsis "Ansible documentation for Emacs")
+ (description
+ "This package provides an Ansible documentation for GNU Emacs.
+
+@code{ansible-doc} allows you to view the documentation of an Ansible
+module and @code{ansible-doc-mode} minor mode adds documentation
+lookup to YAML Mode. You could enable the mode with @code{(add-hook
+'yaml-mode-hook #'ansible-doc-mode)}.")
+ (license license:gpl3+))))
+
(define-public cpulimit
(package
(name "cpulimit")
;; TODO Add zenmap output.
(outputs '("out" "ndiff"))
(arguments
- '(#:configure-flags '("--without-zenmap")
+ `(#:configure-flags '("--without-zenmap")
#:phases
(modify-phases %standard-phases
(add-after 'configure 'patch-Makefile
(string-append "prefix=" out)
args))
(define (python-path dir)
- (string-append dir "/lib/python2.7/site-packages"))
+ (string-append dir "/lib/python"
+ ,(version-major+minor
+ (package-version python))
+ "/site-packages"))
(let ((out (assoc-ref outputs "out"))
(ndiff (assoc-ref outputs "ndiff")))
(for-each mkdir-p (list out ndiff))
(define-public thefuck
(package
(name "thefuck")
- (version "3.27")
+ (version "3.28")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/nvbn/thefuck/archive/"
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0my32n2x8x0f0wr8ql7qgk9qhb6ibv5b1rqs5b2r4nadv0gpiv96"))
+ "1i11qlnbg95nx7dcf6wqvfz7b230dqr5m981md4hvyaa1qw3xj5m"))
(patches (search-patches "thefuck-test-environ.patch"))))
(build-system python-build-system)
(arguments
(version "1.7.2")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://github.com/01org/thermal_daemon/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256 (base32
- "15a6vb67y5wsmf0irrq7sxam18yqpz64130k83ryf24mp40h661b"))))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/01org/thermal_daemon")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1cs2pq8xvfnsvrhg2bxawk4kn3z1qmfrnpnhs178pvfbglzh15hc"))))
(build-system gnu-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'bootstrap
- (lambda _
- (invoke "sh" "autogen.sh")
- #t)))
- #:configure-flags
+ `(#:configure-flags
(let ((out (assoc-ref %outputs "out")))
(list (string-append "--sysconfdir="
out "/etc")
- (string-append "--with-udev-dir="
- out "/lib/udev")
(string-append "--with-dbus-sys-dir="
out "/etc/dbus-1/system.d")
"--localstatedir=/var"))))
(define-public pscircle
(package
(name "pscircle")
- (version "1.1.0")
+ (version "1.3.0")
(source
(origin
- (method url-fetch)
- (uri (string-append
- "https://gitlab.com/mildlyparallel/pscircle/-/archive/v"
- version "/pscircle-v" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/mildlyparallel/pscircle.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1k757yf2bmgfrjd417l6kpcf83hlvi0z1791vz967mwcklrsb3fj"))))
+ "0qsif00dkqa8ky3vl2ycx5anx2yk62nrv47f5lrlqzclz91f00fx"))))
(build-system meson-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(description "This package provides tools to manage clients of the
Logitech Unifying Receiver.")
(license license:gpl2)))
+
+(define-public lynis
+ (package
+ (name "lynis")
+ (version "2.7.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/CISOfy/lynis")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1nv2dqd2k2n8mcdr6xl5g713xxkgvja6487by1wn4k0b416jij9i"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Remove proprietary plugins. As of now, all plugins supplied with
+ ;; lynis are proprietary. In the future, if free plugins are
+ ;; provided, whitelist them from deletion.
+ (for-each delete-file (find-files "plugins"))
+ #t))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(;; For tests
+ ("lynis-sdk"
+ ,(origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/CISOfy/lynis-sdk")
+ (commit "3310aef4f2b3dd97d166c96ad0253c89c4ad390d")))
+ (file-name (git-file-name "lynis-sdk" version))
+ (sha256
+ (base32
+ "0sqsrm5wal742yrwps8bqb8a8lxd93n4b93n3kkm1b30nbs25g7y"))))))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "lynis"
+ (("/usr/share/lynis")
+ (string-append (assoc-ref outputs "out") "/share/lynis")))
+ (substitute* "include/functions"
+ (("/usr/local/etc/lynis")
+ (string-append (assoc-ref outputs "out") "/etc/lynis")))
+ #t))
+ (delete 'build)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (install-file "lynis" (string-append out "/bin/"))
+ (install-file "default.prf" (string-append out "/etc/lynis"))
+ (for-each
+ (lambda (dir)
+ (copy-recursively dir (string-append out "/share/lynis/" dir)))
+ (list "db" "include" "plugins"))
+ (install-file "lynis.8" (string-append out "/share/man/man8"))
+ #t)))
+ (replace 'check
+ (lambda* (#:key inputs #:allow-other-keys)
+ (copy-recursively (assoc-ref inputs "lynis-sdk") "../lynis-sdk")
+ (setenv "LANG" "en_US.UTF-8")
+ (let ((lynis-dir (getcwd)))
+ (with-directory-excursion "../lynis-sdk"
+ (substitute* "config"
+ (("\\.\\./lynis") lynis-dir))
+ (substitute* "unit-tests/tests-language-translations.sh"
+ (("\\.\\./lynis") lynis-dir))
+ (invoke "sh" "lynis-devkit" "run" "unit-tests"))))))))
+ (home-page "https://cisofy.com/lynis/")
+ (synopsis "Security auditing tool")
+ (description "Lynis is a security auditing tool. It performs an in-depth
+security scan and runs on the system itself. The primary goal is to test
+security defenses and provide tips for further system hardening. It will also
+scan for general system information, vulnerable software packages, and
+possible configuration issues.")
+ (license license:gpl3+)))
+
+(define-public ngrep
+ (package
+ (name "ngrep")
+ (version "1.47")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jpr5/ngrep/")
+ (commit (string-append "V" (string-replace-substring version "." "_")))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1x2fyd7wdqlj1r76ilal06cl2wmbz0ws6i3ys204sbjh1cj6dcl7"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("libpcap" ,libpcap)))
+ (arguments
+ `(#:tests? #f ;; No tests.
+ #:configure-flags (list (string-append "--with-pcap-includes="
+ (assoc-ref %build-inputs "libpcap")
+ "/include/pcap"))))
+ (home-page "https://github.com/jpr5/ngrep/")
+ (synopsis "Grep-like utility to search for network packets on an interface")
+ (description "@command{ngrep} is like GNU grep applied to the network
+layer. It's a PCAP-based tool that allows you to specify an extended regular
+or hexadecimal expression to match against data payloads of packets. It
+understands many kinds of protocols, including IPv4/6, TCP, UDP, ICMPv4/6,
+IGMP and Raw, across a wide variety of interface types, and understands BPF
+filter logic in the same fashion as more common packet sniffing tools, such as
+tcpdump and snoop.")
+ (license license:bsd-3)))