;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013 Nikita Karetnikov ;;; Copyright © 2015 Mathieu Lirzin ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2016, 2018–2022 Tobias Geerinckx-Rice ;;; Copyright © 2016, 2019-2021, 2023 Efraim Flashner ;;; Copyright © 2016, 2023 Janneke Nieuwenhuizen ;;; Copyright © 2016 Roel Janssen ;;; Copyright © 2016, 2017 Marius Bakke ;;; Copyright © 2017 Hartmut Goebel ;;; Copyright © 2017 Stefan Reichör ;;; Copyright © 2018 Vasile Dumitrascu ;;; Copyright © 2018 Eric Bavier ;;; Copyright © 2018 Rutger Helling ;;; Copyright © 2018, 2019, 2020 Pierre Neidhardt ;;; Copyright © 2019, 2021 Leo Famulari ;;; Copyright © 2019 Pierre Langlois ;;; Copyright © 2020 Pkill -9 ;;; Copyright © 2020 Vincent Legoll ;;; Copyright © 2020 Raghav Gururajan ;;; Copyright © 2021 Michael Rohleder ;;; Copyright © 2021 Mathieu Othacehe ;;; Copyright © 2021 Brice Waegeneire ;;; Copyright © 2021 Justin Veilleux ;;; Copyright © 2014, 2022 Ludovic Courtès ;;; Copyright © 2022 Maxim Cournoyer ;;; Copyright © 2022 Disseminate Dissent ;;; Copyright © 2023 Timotej Lazar ;;; ;;; 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 ve;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012-2024 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2014, 2015, 2016, 2018, 2019, 2020 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015-2018, 2020-2023 Eric Bavier <bavier@posteo.net> ;;; Copyright © 2015, 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015 Alex Sassmannshausen <alex.sassmannshausen@gmail.com> ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr> ;;; Copyright © 2016, 2017, 2020 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl> ;;; Copyright © 2016, 2017, 2023 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016-2024 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 Nikita <nikita@n0.is> ;;; Copyright © 2016–2022 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 © 2017 Christine Lemmer-Webber <cwebber@dustycloud.org> ;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2018, 2019 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@gnu.org> ;;; Copyright © 2019,2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> ;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org> ;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2019, 2021, 2022 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2019, 2020, 2021 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2020, 2023, 2024 Janneke Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2020, 2021, 2022 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com> ;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021, 2023, 2024 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at> ;;; Copyright © 2021 qblade <qblade@protonmail.com> ;;; Copyright © 2021 Hyunseok Kim <lasnesne@lagunposprasihopre.org> ;;; Copyright © 2021 David Larsson <david.larsson@selfhosted.xyz> ;;; Copyright © 2021 WinterHound <winterhound@yandex.com> ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; Copyright © 2021 muradm <mail@muradm.net> ;;; Copyright © 2021 pineapples <guixuser6392@protonmail.com> ;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com> ;;; Copyright © 2021-2024 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; Copyright © 2022 Wamm K. D. <jaft.r@outlook.com> ;;; Copyright © 2022 Roman Riabenko <roman@riabenko.com> ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com> ;;; Copyright © 2022 Andreas Rammhold <andreas@rammhold.de> ;;; Copyright © 2022 ( <paren@disroot.org> ;;; Copyright © 2022, 2023 Matthew James Kraai <kraai@ftbfs.org> ;;; Copyright © 2022 jgart <jgart@dismail.de> ;;; Copyright © 2023 Juliana Sims <juli@incana.org> ;;; Copyright © 2023 Lu Hui <luhux76@gmail.com> ;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream> ;;; Copyright © 2023 Alexey Abramov <levenson@mmer.org> ;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu> ;;; Copyright © 2023 Tobias Kortkamp <tobias.kortkamp@gmail.com> ;;; Copyright © 2023 Jaeme Sifat <jaeme@runbox.com> ;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr> ;;; Copyright © 2023 Tomás Ortín Fernández <tomasortin@mailbox.org> ;;; Copyright © 2024 dan <i@dan.games> ;;; Copyright © 2024 gemmaro <gemmaro.dev@gmail.com> ;;; Copyright © 2024 Richard Sent <richard@freakingpenguin.com> ;;; Copyright © 2024 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2024 nathan <nathan_mail@nborghese.com> ;;; Copyright © 2024 Nikita Domnitskii <nikita@domnitskii.me> ;;; ;;; 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 admin) #:use-module (guix build-system cargo) #:use-module (guix build-system cmake) #:use-module (guix build-system emacs) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (guix build-system meson) #:use-module (guix build-system perl) #:use-module (guix build-system python) #:use-module (guix build-system pyproject) #:use-module (guix build-system qt) #:use-module (guix build-system ruby) #:use-module (guix build-system trivial) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix gexp) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix platform) #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages acl) #:use-module (gnu packages algebra) #:use-module (gnu packages attr) #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages boost) #:use-module (gnu packages c) #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages cpp) #:use-module (gnu packages crates-graphics) #:use-module (gnu packages crates-io) #:use-module (gnu packages crates-windows) #:use-module (gnu packages crypto) #:use-module (gnu packages cryptsetup) #:use-module (gnu packages curl) #:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages datastructures) #:use-module (gnu packages debian) #:use-module (gnu packages dns) #:use-module (gnu packages elf) #:use-module (gnu packages file) #:use-module (gnu packages flex) #:use-module (gnu packages fonts) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gawk) #:use-module (gnu packages gettext) #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) #:use-module (gnu packages golang-compression) #:use-module (gnu packages golang-xyz) #:use-module (gnu packages groff) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages guile-xyz) #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) #:use-module (gnu packages inkscape) #:use-module (gnu packages kerberos) #:use-module (gnu packages libbsd) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages lua) #:use-module (gnu packages m4) #:use-module (gnu packages mail) #:use-module (gnu packages man) #:use-module (gnu packages markup) #:use-module (gnu packages mcrypt) #:use-module (gnu packages mpi) #:use-module (gnu packages ncurses) #:use-module (gnu packages nettle) #:use-module (gnu packages networking) #:use-module (gnu packages openldap) #:use-module (gnu packages package-management) #:use-module (gnu packages patchutils) #:use-module (gnu packages pciutils) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) #:use-module (gnu packages pkg-config) #:use-module (gnu packages polkit) #:use-module (gnu packages python) #:use-module (gnu packages python-build) #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages readline) #:use-module (gnu packages ruby) #:use-module (gnu packages selinux) #:use-module (gnu packages serialization) #:use-module (gnu packages sqlite) #:use-module (gnu packages ssh) #:use-module (gnu packages sphinx) #:use-module (gnu packages tcl) #:use-module (gnu packages terminals) #:use-module (gnu packages texinfo) #:use-module (gnu packages textutils) #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) #:use-module (gnu packages web) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xml) #:use-module (gnu packages xorg)) ;; This package uses su instead of sudo (because of SpaceFM). (define-public ktsuss (package (name "ktsuss") (version "2.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/nomius/ktsuss") (commit version))) (sha256 (base32 "0q9931f9hp47v1n8scli4bdg2rkjpf5jf8v7jj2gdn83aia1r2hz")) (file-name (git-file-name name version)))) (build-system glib-or-gtk-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-after 'unpack 'patch-file-names (lambda _ (substitute* "configure.ac" (("supath=`which su 2>/dev/null`") "supath=/run/privileged/bin/su")) #t))))) (native-inputs (list autoconf automake libtool pkg-config)) (inputs (list glib gtk+-2)) (synopsis "Graphical front end for @command{su}") (description "Ktsuss stands for ``Keep the @command{su} simple, stupid''. It is a graphical version of @command{su} written in C and GTK+ 2, with simplicity in mind.") (home-page "https://github.com/nomius/ktsuss") (license license:bsd-3))) (define-public aide (package (name "aide") (version "0.18.8") (source (origin (method url-fetch) (uri (string-append "https://github.com/aide/aide/releases/download/v" version "/aide-" version ".tar.gz")) (sha256 (base32 "0q1sp0vwrwbmw6ymw1kwd4i8walijwppa0dq61b2qzni6b32srhn")))) (build-system gnu-build-system) (arguments (list #:configure-flags #~(list "--with-posix-acl" "--with-selinux" "--with-xattr" "--with-config-file=/etc/aide.conf"))) (native-inputs (list bison flex pkg-config)) (inputs (list acl attr libgcrypt libgpg-error libmhash libselinux pcre2 `(,zlib "static") zlib)) (synopsis "File and directory integrity checker") (description "AIDE (Advanced Intrusion Detection Environment) is a file and directory integrity checker. It creates a database from the regular expression rules that it finds from its configuration files. Once this database is initialized it can be used to verify the integrity of the files. It has several message digest algorithms that are used to check the integrity of files. All of the usual file attributes can be checked for inconsistencies.") (home-page "https://aide.github.io/") (license license:gpl2+))) (define-public progress (package (name "progress") (version "0.17") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/Xfennec/progress") (commit (string-append "v" version)))) (sha256 (base32 "1cg1vdk2891sdcbn7yc9a6mzdxplm63qsk1kq0jr4j8ym28v09xf")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (native-inputs (list pkg-config which)) (inputs (list ncurses)) (arguments (list #:tests? #f ; no test suite #:make-flags #~(list (string-append "CC=" #$(cc-for-target)) (string-append "PKG_CONFIG=" #$(pkg-config-for-target)) (string-append "PREFIX=" #$output)) #:phases #~(modify-phases %standard-phases (delete 'configure)))) ; no configure script (home-page "https://github.com/Xfennec/progress") (synopsis "Program to view the progress of the coreutils commands") (description "A program that looks for coreutils basic commands (cp, mv, dd, tar, gzip/gunzip, cat, etc.) currently running on your system and displays the percentage of copied data. It can also show estimated time and throughput, and provides a \"top-like\" mode (monitoring).") (license license:gpl3+))) (define-public shepherd-0.8 (package (name "shepherd") (version "0.8.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/shepherd/shepherd-" version ".tar.gz")) (sha256 (base32 "0x9zr0x3xvk4qkb6jnda451d5iyrl06cz1bjzjsm0lxvjj3fabyk")) (modules '((guix build utils))) (snippet '(begin ;; Build with -O1 to work around <https://bugs.gnu.org/48368>. (substitute* "Makefile.in" (("compile --target") "compile -O1 --target")))))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--localstatedir=/var") #:make-flags '("GUILE_AUTO_COMPILE=0"))) (native-inputs (list pkg-config ;; This is the Guile we use as a cross-compiler... guile-3.0)) (inputs ;; ... and this is the one that appears in shebangs when cross-compiling. (list guile-3.0 ;; The 'shepherd' command uses Readline when used interactively. It's ;; an unusual use case though, so we don't propagate it. guile-readline)) (synopsis "System service manager") (description "The GNU Shepherd is a daemon-managing daemon, meaning that it supervises the execution of system services, replacing similar functionality found in typical init systems. It provides dependency-handling through a convenient interface and is based on GNU Guile.") (license license:gpl3+) (home-page "https://www.gnu.org/software/shepherd/"))) (define-public shepherd-0.9 (package (inherit shepherd-0.8) (version "0.9.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/shepherd/shepherd-" version ".tar.gz")) (sha256 (base32 "0qy2yq13xhf05an5ilz7grighdxicx56211yaarqq5qigiiybc32")))) (arguments (list #:configure-flags #~'("--localstatedir=/var") #:make-flags #~'("GUILE_AUTO_COMPILE=0") #:phases (if (%current-target-system) #~(modify-phases %standard-phases (add-before 'configure 'set-fibers-directory (lambda _ ;; When cross-compiling, refer to the target ;; Fibers, not the native one. (substitute* '("herd.in" "shepherd.in") (("%FIBERS_SOURCE_DIRECTORY%") #$(file-append (this-package-input "guile-fibers") "/share/guile/site/3.0")) (("%FIBERS_OBJECT_DIRECTORY%") #$(file-append (this-package-input "guile-fibers") "/lib/guile/3.0/site-ccache")))))) #~%standard-phases))) (native-inputs (list pkg-config guile-3.0 guile-fibers-1.1)) ;for cross-compilation (inputs (list guile-3.0 guile-fibers-1.1)))) (define-public shepherd-0.10 (package (inherit shepherd-0.9) (version "0.10.5") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/shepherd/shepherd-" version ".tar.gz")) (sha256 (base32 "0k40n9qm5r5rqf94isa1857ghd4329zc5rjf3ll2572gpiw3ij4x")))) (native-inputs (modify-inputs (package-native-inputs shepherd-0.9) (replace "guile-fibers" ;; Work around ;; <https://github.com/wingo/fibers/issues/89>. This ;; affects any system without a functional real-time ;; clock (RTC), but in practice these are typically Arm ;; single-board computers. (if (or (target-arm?) (target-riscv64?)) guile-fibers-1.1 guile-fibers)))) (inputs (modify-inputs (package-inputs shepherd-0.9) (replace "guile-fibers" (this-package-native-input "guile-fibers")))))) (define-public shepherd-1.0 (package (inherit shepherd-0.10) (version "1.0.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/shepherd/shepherd-" version ".tar.gz")) (sha256 (base32 "0z4yxl8g0k3b6k4x7b3ks10x31hs46j5kmw0ah5cr417n0rszrp8")))))) (define-public shepherd shepherd-0.10) (define-public guile2.2-shepherd (package (inherit shepherd-0.10) (name "guile2.2-shepherd") (native-inputs (list pkg-config guile-2.2)) (inputs (list guile-2.2 guile2.2-fibers)))) (define-public shepherd-run (package (name "shepherd-run") (version "0.2.0") (source (origin (method git-fetch) (uri (git-reference (url "https://git.sr.ht/~efraim/shepherd-run") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0mvn5qi4bq9nsb1462pbzssb1z5w2s160lqd2ps3rjjc4z3f3gjj")))) (build-system gnu-build-system) (arguments (list #:make-flags #~(list (string-append "PREFIX=" #$output)) #:phases #~(modify-phases %standard-phases (delete 'configure) ; No configure script. ;; First 'check checks the shell script which loads the gawk code. ;; This 'check checks the installed gawk script. (add-after 'patch-shebangs 'check-again (lambda args (apply (assoc-ref %standard-phases 'check) (append args (list #:make-flags (list (string-append "BINARY=" %output "/bin/shepherd-run")))))))))) (native-inputs (list diffutils help2man)) (inputs (list gawk)) (synopsis "Create GNU Shepherd services from the command line") (description "Shepherd-run is a script which assists in creating one-off shepherd services from the command line. It is meant to partially fill the void left by @command{systemd-run}, since GNU Guix uses GNU Shepherd as its system service manager.") (home-page "https://git.sr.ht/~efraim/shepherd-run") (license license:gpl3+))) (define-public swineherd (package (name "swineherd") (version "0.0.4") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/BIMSBbioinfo/swineherd") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0iij1pl0y410k1dk1ifa56dxmjb1blv0y3k5rxy794gwg6w6c480")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--localstatedir=/var") #:make-flags '("GUILE_AUTO_COMPILE=0"))) (native-inputs (list autoconf automake guile-3.0 pkg-config texinfo)) (propagated-inputs (list btrfs-progs guile-config guile-fibers-1.3 guile-netlink guile-3.0 guix shepherd-0.10)) (home-page "https://github.com/BIMSBbioinfo/swineherd") (synopsis "System container manager") (description "This project aims to provide an extension to the Shepherd, retraining it as a swineherd, a manager of crude system containers. It does this by providing a Shepherd service @code{swineherd} that talks to the Shepherd process to create Guix System containers as Shepherd services. It also comes with an optional HTTP API server.") (license license:gpl3+))) (define-public cfm (package (name "cfm") (version "0.6.6") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/WillEccles/cfm") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "14gapia902f29wa4dlrrj8jcwcff9bfvyhjccw9ddy2gxx2g8wmr")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no test suite #:make-flags (list (string-append "CC=" ,(cc-for-target)) (string-append "PREFIX=" (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases ;; Keeping xdg-open optional avoids a size increase of 293%. (delete 'configure)))) ; no configure script (home-page "https://eccles.dev/cfm/") (synopsis "Simple terminal file manager with @command{vi}-inspired key bindings") (description "The Cactus File Manager (@command{cfm}) helps you manage your files visually from a text terminal. It aims to be simple and fast, with key bindings inspired by @command{vi}.") (license license:mpl2.0))) (define-public cloud-utils (package (name "cloud-utils") (version "0.33") (source (origin (method url-fetch) (uri (string-append "https://launchpad.net/cloud-utils/trunk/" version "/+download/cloud-utils-" version ".tar.gz")) (sha256 (base32 "0xxdi55lzw7j91zfajw7jhd2ilsqj2dy04i9brlk8j3pvb5ma8hk")))) (build-system gnu-build-system) (arguments '(#:modules ((guix build gnu-build-system) (guix build utils) (srfi srfi-26)) #:make-flags (let ((out (assoc-ref %outputs "out"))) (list (string-append "BINDIR=" out "/bin") (string-append "MANDIR=" out "/share/man/man1") (string-append "DOCDIR=" out "/share/doc"))) #:phases (modify-phases %standard-phases (delete 'configure) (delete 'check) (add-after 'install 'wrap (lambda* (#:key outputs inputs #:allow-other-keys) (let ((growpart (string-append (assoc-ref outputs "out") "/bin/growpart"))) (wrap-program growpart `("PATH" ":" prefix ,(map dirname (map (cut search-input-file inputs <>) (list "bin/readlink" "sbin/sfdisk" "bin/sed" "bin/grep" "bin/awk" "bin/udevadm" "bin/flock"))))))))))) (inputs (list bash-minimal ;for wrap-program coreutils ;for readlink and cat sed ;growpart grep ;growpart gawk ;awk for growpart eudev ;udevadm for growpart python util-linux)) ;sfdisk, flock, partx, blkid for growpart (home-page "https://launchpad.net/cloud-utils") (synopsis "Set of utilities for cloud computing environments") (description "This package contains a set of utilities for cloud computing environments: @itemize @bullet @item @command{cloud-localds} Create a disk for cloud-init to utilize nocloud @item @command{cloud-publish-image} Wrapper for cloud image publishing @item @command{cloud-publish-tarball} Wrapper for publishing cloud tarballs @item @command{cloud-publish-ubuntu} Import a Ubuntu cloud image @item @command{ec2metadata} Query and display @acronym{EC2,Amazon Elastic Compute Cloud} metadata @item @command{growpart} Grow a partition to fill the device @item @command{mount-image-callback} Mount a file and run a command @item @command{resize-part-image} Resize a partition image to a new size @item @command{ubuntu-cloudimg-query} Get the latest Ubuntu @acronym{AMI,Amazon Machine Image} @item @command{ubuntu-ec2-run} Run a @acronym{EC2,Amazon Elastic Compute Cloud} instance using Ubuntu @item @command{vcs-run} Obtain a repository, and run a command @item @command{write-mime-multipart} Handle multipart @acronym{MIME,Multipurpose Internet Mail Extensions} messages @end itemize") (license license:gpl3))) (define-public daemontools (package (name "daemontools") (version "0.76") (source (origin (method url-fetch) (uri (string-append "https://cr.yp.to/daemontools/" "daemontools-" version ".tar.gz")) (sha256 (base32 "07scvw88faxkscxi91031pjkpccql6wspk4yrlnsbrrb5c0kamd5")))) (build-system gnu-build-system) (arguments `(#:tests? #f ;; No tests as far as I can tell. #:phases (modify-phases %standard-phases (add-after 'unpack 'chdir (lambda _ (chdir ,(string-append "daemontools-" version)) #t)) (delete 'configure) (add-before 'build 'patch (lambda _ (substitute* "src/error.h" (("extern int errno;") "#include <errno.h>")) #t)) (replace 'build (lambda _ (invoke "package/compile"))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin"))) (for-each (lambda (file) (install-file file bin)) (find-files "command"))) #t))))) (synopsis "Tools for managing UNIX style services") (description "@code{daemontools} is a collection of tools for managing UNIX services.") (license license:public-domain) (home-page "https://cr.yp.to/daemontools.html"))) (define-public daemonize (package (name "daemonize") (version "1.7.8") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/bmc/daemonize") (commit (string-append "release-" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0w4g0iyssyw7dd0061881z8s5czcl01mz6v00znax57zfxjqpvnm")))) (build-system gnu-build-system) (arguments '(#:tests? #f)) ; No tests available. (home-page "https://software.clapper.org/daemonize/") (synopsis "Command line utility to run a program as a daemon") (description "daemonize runs a command as a Unix daemon. It will close all open file descriptors, change working directory of the process to the root filesystem, reset its umask, run in the background, ignore I/O signals, handle @code{SIGCHLD}, etc. Most programs that are designed to be run as daemons do that work for themselves. However, you’ll occasionally run across one that does not. When you must run a daemon program that does not properly make itself into a true Unix daemon, you can use daemonize to force it to run as a true daemon.") (license license:bsd-3))) (define-public dfc (package (name "dfc") (version "3.1.1") (source (origin (method url-fetch) (uri (string-append "https://projects.gw-computing.net/attachments/download/615/dfc-" version ".tar.gz")) (sha256 (base32 "0m1fd7l85ckb7bq4c5c3g257bkjglm8gq7x42pkmpp87fkknc94n")))) (build-system cmake-build-system) (arguments '(#:tests? #f)) ; There are no tests. (native-inputs (list gettext-minimal)) (home-page "https://projects.gw-computing.net/projects/dfc") (synopsis "Display file system space usage using graphs and colors") (description "dfc (df color) is a modern version of df. It uses colors, draws pretty graphs and can export its output to different formats.") (license license:bsd-3))) (define-public facter (package (name "facter") (version "4.4.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/puppetlabs/facter") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "080v0ml2svw2vbzfa659v8718pmhh2kav0l0q1jjvc6mm8sgnmmn")))) (build-system ruby-build-system) (arguments (list #:phases #~(modify-phases %standard-phases (add-after 'unpack 'delete-facter-ng-gemspec (lambda _ ;; XXX: ruby-build-system incorrectly finds ;; facter-ng.gemspec from this directory and tries to ;; build that instead of the proper facter.gemspec. ;; Just delete it as a workaround, as it appears to ;; only exist for backwards-compatibility after the ;; facter-ng->facter rename. (delete-file "agent/facter-ng.gemspec"))) (add-after 'unpack 'embed-absolute-references ;; Refer to absolute executable file names to avoid propagation. (lambda* (#:key inputs #:allow-other-keys) (substitute* (find-files "lib/facter/resolvers" "\\.rb$") (("execute\\('(which |)([^ ']+)" _ _ name) (string-append "execute('" (or (which name) name)))))) (delete 'check) (add-after 'wrap 'check (lambda* (#:key tests? outputs #:allow-other-keys) ;; XXX: The test suite wants to run Bundler and ;; complains that the gemspec is invalid. For now ;; just make sure that we can run the wrapped ;; executable directly. (if tests? (invoke (string-append (assoc-ref outputs "out") "/bin/facter") ;; Many facts depend on /sys, /etc/os-release, ;; etc, so we only run a small sample. "facterversion" "architecture" "kernel" "kernelversion") (format #t "tests disabled~%"))))))) (inputs (list ruby-hocon ruby-sys-filesystem ruby-thor ;; For ‘embed-absolute-references’. dmidecode inetutils ; for ‘hostname’ iproute pciutils util-linux)) (synopsis "Collect and display system facts") (description "Facter is a tool that gathers basic facts about nodes (systems) such as hardware details, network settings, OS type and version, and more. These facts can be collected on the command line with the @command{facter} command or via the @code{facter} Ruby library.") (home-page "https://github.com/puppetlabs/facter") (license license:expat))) (define-public ttyload (let ((revision "1") (commit "f9495372801ce4b4dad98ad854203e694c31c1eb")) (package (name "ttyload") (version (git-version "0.5.3" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/lindes/ttyload") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "0ldb7a13b9v876c6cbrs78pkizj64drnqx95z5shfbwgpwfhr4im")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no tests #:make-flags (list (string-append "CC=" ,(cc-for-target))) #:phases (modify-phases %standard-phases (delete 'configure) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin"))) (install-file "ttyload" bin))))))) (home-page "https://www.daveltd.com/src/util/ttyload/") (synopsis "Console based color-coded graphs of CPU load average") (description "Show graphs for 1 minute, 5 minute, 15 minute load averages on the console.") ;; This package uses a modified version of the "ISC License". (license (license:non-copyleft "file://LICENSE"))))) (define-public btop (package (name "btop") (version "1.4.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/aristocratos/btop") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0vgw6hwqh6zbzrvrn3i0xwi9ykm1qdvhqcyz3mjakd7w303lx603")) (patches (search-patches "btop-fix-segfault-on-intel-gpus.patch")))) (build-system gnu-build-system) (native-inputs (list lowdown)) (arguments (list #:tests? #f ;no test suite #:make-flags #~(list (string-append "PREFIX=" #$output) (string-append "CC=" #$(cc-for-target))) #:phases #~(modify-phases %standard-phases (delete 'configure)))) (home-page "https://github.com/aristocratos/btop") (synopsis "Resource monitor") (description "Btop++ provides unified monitoring of CPU, memory, network and processes.") (license license:asl2.0))) (define-public smem (package (name "smem") (version "1.5") (source (origin (method url-fetch) (uri (string-append "https://selenic.com/repo/smem/archive/" version ".tar.bz2")) (file-name (string-append name "-" version ".tar.bz2")) (sha256 (base32 "19ibv1byxf2b68186ysrgrhy5shkc5mc69abark1h18yigp3j34m")))) (build-system gnu-build-system) (arguments (list #:tests? #f ; There is no test suite. #:make-flags #~(list "smemcap") #:phases #~(modify-phases %standard-phases (delete 'configure) (replace 'build (lambda _ (let* ((system #$(cond ((target-x86?) "X86") ((target-arm?) "ARM") ((target-powerpc?) "POWER") (else "CROSS_FINGERS")))) (format #t "Building for ~a~%" system) (invoke #$(cc-for-target) "-o" "smemcap" "smemcap.c" "-g" "-Wall" "-D" system)))) (replace 'install (lambda _ (let ((bin (string-append #$output "/bin")) (man1 (string-append #$output "/share/man/man8"))) (install-file "smemcap" bin) (install-file "smem" bin) (mkdir-p man1) (copy-file "smem.8" (string-append man1 "/smem.8")))))))) (native-inputs (list python-minimal-wrapper)) (home-page "https://www.selenic.com/smem/") (synopsis "Memory reporting tool") (description "This package provides a command line tool that can give numerous reports on memory usage on GNU/Linux systems.") (license license:gpl2+))) (define-public htop (package (name "htop") (version "3.3.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/htop-dev/htop") (commit version))) (sha256 (base32 "0g2rpp9plblmd9khic2f06089hfh0iy521dqqnr3vkin6s9m0f58")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (inputs (list ncurses)) (native-inputs (list autoconf automake python-minimal-wrapper)) ; for scripts/MakeHeader.py (home-page "https://htop.dev") (synopsis "Interactive process viewer") (description "This is htop, an interactive process viewer. It is a text-mode application (for console or X terminals) and requires ncurses.") (license license:gpl2))) (define-public bashtop (package (name "bashtop") (version "0.9.25") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/aristocratos/bashtop") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "07nlr6vmyb7yihaxj1fp424lmhwkdjl6mls92v90f6gsvikpa13v")))) (build-system gnu-build-system) (arguments '(#:make-flags (list (string-append "PREFIX=" %output)) #:tests? #f ; bats test fails with loading load.bash #:phases (modify-phases %standard-phases (delete 'configure)))) (home-page "https://github.com/aristocratos/bashtop") (synopsis "Linux/OSX/FreeBSD resource monitor") (description "Resource monitor that shows usage and stats for processor, memory, disks, network and processes.") (license license:asl2.0))) (define-public bpytop (package (name "bpytop") (version "1.0.68") (source (origin (method url-fetch) (uri (pypi-uri "bpytop" version)) (sha256 (base32 "1clvajbv7pzlya9s1xs6dvjic8rv3kx7aqiwnjxapiypx246gdjk")))) (build-system python-build-system) (inputs (list python-psutil)) (arguments `(#:phases (modify-phases %standard-phases ;; sanity-check phase fail, but the application seems to be working (delete 'sanity-check) (add-after 'install 'install-themes (lambda* (#:key outputs #:allow-other-keys) (let ((themes (string-append (assoc-ref outputs "out") "/lib/python" ,(version-major+minor (package-version python)) "/site-packages/bpytop-themes"))) (mkdir-p themes) (copy-recursively "themes" themes))))))) (home-page "https://github.com/aristocratos/bpytop") (synopsis "Resource monitor") (description "Resource monitor that shows usage and stats for processor, memory, disks, network and processes. It's a Python port and continuation of @command{bashtop}.") (license license:asl2.0))) (define-public pies (package (name "pies") (version "1.8") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/pies/pies-" version ".tar.bz2")) (sha256 (base32 "0v0xcq0mfil440xq2pa5mjkyva5c9ahqda54z5w2ksl2d78v8a35")) (snippet #~(begin (use-modules (guix build utils)) (for-each delete-file (append ;; Generated by flex. (find-files "gres/src" "lex\\.c$") ;; Generated by bison. (find-files "gres/src" "-gram\\.[ch]$"))))))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases (add-before 'build 'patch-/bin/sh (lambda* (#:key inputs #:allow-other-keys) ;; Use the right shell when executing user-provided ;; shell commands. (let ((bash (assoc-ref inputs "bash"))) (substitute* '("src/progman.c" "src/comp.c") (("\"/bin/sh\"") (string-append "\"" bash "/bin/sh\""))))))))) (native-inputs (list bison flex)) (inputs (list libxcrypt)) (home-page "https://www.gnu.org.ua/software/pies/") (synopsis "Program invocation and execution supervisor") (description "GNU pies is a program that supervises the invocation and execution of other programs. It reads the list of programs to be started from its configuration file, executes them, and then monitors their status, re-executing them as necessary.") (license license:gpl3+))) (define-public inetutils (package (name "inetutils") (version "2.5") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/inetutils/inetutils-" version ".tar.gz")) (sha256 (base32 "0q1257ci22g2jbdiqs00mharc1lqkbibdlkhj23f3si6qjxkn17s")))) (build-system gnu-build-system) (arguments (list #:configure-flags #~(list "--localstatedir=/var" ;; Make sure 'PATH_PROCNET_DEV' gets defined when ;; cross-compiling (by default it does not.) #$@(if (%current-target-system) '("--with-path-procnet-dev=/proc/net/dev") '()) #$@(if (target-hurd?) '("--disable-rcp" "--disable-rexec" "--disable-rexecd" "--disable-rlogin" "--disable-rlogind" "--disable-rsh" "--disable-rshd" "--disable-uucpd" "--disable-whois") '())) ;; Make sure that canonical "coreutils" package is not referred. #:make-flags #~(list (string-append "CPPFLAGS=-DPATHDEF_CP=\\\"" (search-input-file %build-inputs "bin/cp") "\\\"")) ;; On some systems, 'libls.sh' may fail with an error such as: ;; "Failed to tell switch -a apart from -A". #:parallel-tests? #f #:phases (if (target-hurd64?) #~(modify-phases %standard-phases (add-after 'unpack 'apply-hurd64-patch (lambda _ (let ((patch #$(local-file (search-patch "inetutils-hurd64.patch")))) (invoke "patch" "--force" "-p1" "-i" patch))))) #~%standard-phases))) (inputs (list coreutils shadow ;for login (used in telnetd and rlogind) libxcrypt ncurses readline)) ;for 'ftp' (native-inputs (if (member (%current-system) (package-supported-systems net-tools)) (list net-tools) ;for tests '())) (home-page "https://www.gnu.org/software/inetutils/") (synopsis "Basic networking utilities") (description "Inetutils is a collection of common network programs, such as an ftp client and server, a telnet client and server, an rsh client and server, and hostname.") (license license:gpl3+))) (define-public shadow (package (name "shadow") (version "4.13") (source (origin (method url-fetch) (uri (string-append "https://github.com/shadow-maint/shadow/releases/" "download/" version "/shadow-" version ".tar.xz")) (sha256 (base32 "0b6xz415b4y3y5nk3pw9xibv05kln4cjbmhybyncmrx2g5fj9zls")))) (build-system gnu-build-system) (arguments `(;; Assume System V `setpgrp (void)', which is the default on GNU ;; variants (`AC_FUNC_SETPGRP' is not cross-compilation capable.) #:configure-flags '(,@(if (target-hurd?) '() '("--with-libpam")) "shadow_cv_logdir=/var/log" "ac_cv_func_setpgrp_void=yes") #:phases (modify-phases %standard-phases (add-after 'unpack 'fix-linking-to-pam (lambda _ ;; There's a build system problem in 4.9 that causes link ;; failures with the pam libraries (see: ;; https://github.com/shadow-maint/shadow/issues/407). (substitute* "libsubid/Makefile.in" (("\\$\\(LIBTCB\\)" all) (string-append all " $(LIBPAM)"))))) ,@(if (%current-target-system) '((add-before 'configure 'set-runtime-shell (lambda* (#:key inputs #:allow-other-keys) (let ((shell (search-input-file inputs "/bin/bash"))) (setenv "RUNTIME_SHELL" shell) (substitute* "configure.ac" (("\\$SHELL") "$RUNTIME_SHELL")))))) '()) (add-before 'build 'set-nscd-file-name (lambda* (#:key inputs #:allow-other-keys) ;; Use the right file name for nscd. (let ((libc (assoc-ref inputs ,(if (%current-target-system) "cross-libc" "libc")))) (substitute* "lib/nscd.c" (("/usr/sbin/nscd") (string-append libc "/sbin/nscd")))))) (add-after 'install 'install-man-pages (lambda _ ;; The top-level Makefile.am wrongfully has "SUBDIRS += man" ;; under "if ENABLE_REGENERATE_MAN", even though prebuilt man ;; pages are available. Thus, install them manually. (invoke "make" "-C" "man" "install"))) (add-after 'install-man-pages 'remove-groups (lambda* (#:key outputs #:allow-other-keys) ;; Remove `groups', which is already provided by Coreutils. (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin")) (man (string-append out "/share/man"))) (delete-file (string-append bin "/groups")) (for-each delete-file (find-files man "^groups\\.")))))))) (inputs (append (if (target-hurd?) '() (list linux-pam)) (if (%current-target-system) (list bash-minimal) '()) (list libxcrypt))) (home-page "https://github.com/shadow-maint/shadow") (synopsis "Authentication-related tools such as passwd, su, and login") (description "Shadow provides a number of authentication-related tools, including: login, passwd, su, groupadd, and useradd.") ;; The `vipw' program is GPLv2+. ;; libmisc/salt.c is public domain. (license license:bsd-3))) (define-public mingetty (package (name "mingetty") (version "1.08") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/mingetty/mingetty/" version "/mingetty-" version ".tar.gz")) (sha256 (base32 "05yxrp44ky2kg6qknk1ih0kvwkgbn9fbz77r3vci7agslh5wjm8g")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases (replace 'configure (lambda* (#:key inputs outputs target #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (man8 (string-append out "/share/man/man8")) (sbin (string-append out "/sbin")) (shadow (assoc-ref inputs "shadow")) (login (string-append shadow "/bin/login"))) (substitute* "Makefile" ,@(if (%current-target-system) '((("CC=.*$") (string-append "CC=" target "-gcc\n"))) '()) (("^SBINDIR.*") (string-append "SBINDIR = " out "/sbin\n")) (("^MANDIR.*") (string-append "MANDIR = " out "/share/man/man8\n"))) ;; Pick the right 'login' by default. (substitute* "mingetty.c" (("\"/bin/login\"") (string-append "\"" login "\""))) (mkdir-p sbin) (mkdir-p man8)) #t))) #:tests? #f)) ; no tests (inputs (list shadow)) (home-page "https://sourceforge.net/projects/mingetty") (synopsis "Getty for the text console") (description "Small console getty that is started on the Linux text console, asks for a login name and then transfers over to @code{login}. It is extended to allow automatic login and starting any app.") (license license:gpl2+))) (define-public net-base (package (name "net-base") (version "5.3") (source (origin (method url-fetch) (uri (string-append "mirror://debian/pool/main/n/netbase/netbase_" version ".tar.xz")) (sha256 (base32 "12xqjwg3p4rzmmh2iib6sigm9l29y3dgk74mmnw64k84jnbwdxl1")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) ;; This package consists solely of architecture-independent ;; tables. Cross-compilation is pointless! Make sure we'll ;; always get the same derivation. #:target #f #:allowed-references () #:builder (begin (use-modules (guix build utils) (srfi srfi-26)) (let* ((source (assoc-ref %build-inputs "source")) (tar (assoc-ref %build-inputs "tar")) (xz (assoc-ref %build-inputs "xz")) (output (assoc-ref %outputs "out")) (etc (string-append output "/etc"))) (setenv "PATH" (string-append xz "/bin")) (invoke (string-append tar "/bin/tar") "xvf" source) (chdir ,(string-append "netbase-" version)) (mkdir-p etc) (for-each copy-file '("etc-services" "etc-protocols" "etc-rpc") (map (cut string-append etc "/" <>) '("services" "protocols" "rpc"))) #t)))) (native-inputs (list tar xz)) (synopsis "IANA protocol, port, and RPC number assignments") (description "This package provides the /etc/services, /etc/protocols, and /etc/rpc files, which contain information about the IANA-assigned port, protocol, and ONC RPC numbers.") (home-page "https://packages.debian.org/sid/netbase") (license license:gpl2))) (define-public netcat (package (name "netcat") (version "0.7.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/netcat/netcat/" version "/netcat-" version ".tar.bz2")) (sha256 (base32 "1frjcdkhkpzk0f84hx6hmw5l0ynpmji8vcbaxg8h5k2svyxz0nmm")))) (build-system gnu-build-system) (arguments `(#:configure-flags ;; By default, man and info pages are put in PREFIX/{man,info}, ;; but we want them in PREFIX/share/{man,info}. (let ((out (assoc-ref %outputs "out"))) (list (string-append "--mandir=" out "/share/man") (string-append "--infodir=" out "/share/info"))))) (home-page "https://netcat.sourceforge.net") (synopsis "Read and write data over TCP/IP") (description "Netcat is a featured networking utility which reads and writes data across network connections, using the TCP/IP protocol. It is designed to be a reliable \"back-end\" tool that can be used directly or easily driven by other programs and scripts. At the same time, it is a feature-rich network debugging and exploration tool, since it can create almost any kind of connection you would need and has several interesting built-in capabilities.") (license license:gpl2+))) (define-public netcat-openbsd (package (name "netcat-openbsd") (version "1.219-1") (source (origin (method git-fetch) (uri (git-reference (url "https://salsa.debian.org/debian/netcat-openbsd.git") (commit (string-append "debian/" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1fhrmnbdl6bgsjk02vi78zy9i486mmniymbbbhdkzl8zfjbjkpxc")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no test suite #:make-flags (list (string-append "CC=" ,(cc-for-target))) #:phases (modify-phases %standard-phases (delete 'configure) (add-before 'build 'patch (lambda _ (setenv "QUILT_PATCHES" "debian/patches") (invoke "quilt" "push" "-a"))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin")) (man (string-append out "/share/man/man1")) (doc (string-append out "/share/doc/netcat-openbsd-" ,version)) (examples (string-append doc "/examples"))) (install-file "nc" bin) (install-file "nc.1" man) (install-file "debian/copyright" doc) (copy-recursively "debian/examples" examples))))))) (inputs (list libbsd)) (native-inputs (list pkg-config quilt)) (home-page "https://packages.debian.org/sid/netcat-openbsd") (synopsis "Read and write data over TCP/IP") (description "Netcat is a simple Unix utility which reads and writes data across network connections using TCP or UDP protocol. It is designed to be a reliable \"back-end\" tool that can be used directly or easily driven by other programs and scripts. At the same time it is a feature-rich network debugging and exploration tool, since it can create almost any kind of connection you would need and has several interesting built-in capabilities. This package contains the OpenBSD rewrite of netcat, including support for IPv6, proxies, and Unix sockets.") (license (list license:bsd-3 license:bsd-2)))) ; atomicio.*, socks.c (define-public nmon (package (name "nmon") (version "16p") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/nmon/lmon" version ".c")) (sha256 (base32 "0akbkv70zffdmc5p51r02rlxd8b3jvkgl64rjsd29qr5cxgh9ijx")))) (build-system gnu-build-system) (arguments (list #:tests? #f ; no test suite #:phases #~(modify-phases %standard-phases (replace 'unpack (lambda _ (copy-file #$(package-source this-package) "lmon.c"))) (delete 'configure) ; no build system (replace 'build ;; There is an example ‘Makefile’ in the .c file. (lambda _ ;; These #defines aren't well-documented and, e.g., POWER was ;; not actually tested on every possible TARGET-POWERPC?. (let* ((system #$(cond ((target-x86?) "X86") ((target-arm?) "ARM") ((target-powerpc?) "POWER") (else "CROSS_FINGERS")))) (format #t "Building for ~a~%" system) (invoke #$(cc-for-target) "-o" "nmon" "lmon.c" "-g" "-Wall" "-D" system "-lncurses" "-lm")))) (replace 'install (lambda _ (let ((bin (string-append #$output "/bin")) (man1 (string-append #$output "/share/man/man1"))) (install-file "nmon" bin) (mkdir-p man1) (copy-file #$(this-package-native-input "man-page") (string-append man1 "/nmon.1")))))))) (native-inputs (list `("man-page" ,(origin ;; There is no man page upstream, so install Debian's. (method url-fetch) (uri (string-append "https://salsa.debian.org/carnil/nmon/" "-/raw/debian/" version "+debian-1/" "debian/nmon.1")) (sha256 (base32 "1gpvd2kjyhs18sh6sga5bk9wj8s78blfd4c0m38r0wl92jx2yv1b")))))) (inputs (list ncurses)) (home-page "https://nmon.sourceforge.net/") (synopsis "Monitor system performance in a terminal or to a @file{.csv} log file") (description "@acronym{Nmon, Nigel's performance monitor} is yet another system monitor useful in systems administration, debugging, tuning, and benchmarking. The configurable ncurses interface displays all the classic resource usage statistics (CPU, memory, network, disk, ...) as real-time graphs or numbers. It can also list the processes responsible in a @command{top}-like table. A less common nmon feature is its ability to create highly detailed log files in @acronym{CSV, comma-separated values} format. These can be imported into spreadsheets or fed straight into an @acronym{RRD, round-robin database} using @command{rrdtool} for further analyisis, or to create colourful graphs.") (license license:gpl3+))) (define-public sipcalc (package (name "sipcalc") (version "1.1.6") (source (origin (method url-fetch) (uri (string-append "http://www.routemeister.net/projects" "/sipcalc/files/sipcalc" "-" version ".tar.gz")) (sha256 (base32 "0mv3wndj4z2bsshh2k8d5sy3j8wxzgf8mzmmkvj1k8gpcz37dm6g")))) (build-system gnu-build-system) (home-page "https://www.routemeister.net/projects/sipcalc/") (synopsis &qu