| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
| 6 | |
| 7 | |
| 8 | |
| 9 | |
| 10 | |
| 11 | |
| 12 | |
| 13 | |
| 14 | |
| 15 | |
| 16 | |
| 17 | |
| 18 | |
| 19 | |
| 20 | |
| 21 | |
| 22 | |
| 23 | |
| 24 | |
| 25 | |
| 26 | |
| 27 | |
| 28 | |
| 29 | |
| 30 | |
| 31 | |
| 32 | |
| 33 | |
| 34 | |
| 35 | |
| 36 | |
| 37 | |
| 38 | |
| 39 | |
| 40 | |
| 41 | |
| 42 | |
| 43 | |
| 44 |
|
| 45 | (define-module (gnu packages monitoring)
|
| 46 | #:use-module (guix gexp)
|
| 47 | #:use-module (guix packages)
|
| 48 | #:use-module (guix download)
|
| 49 | #:use-module (guix git-download)
|
| 50 | #:use-module ((guix licenses) #:prefix license:)
|
| 51 | #:use-module (guix build-system cargo)
|
| 52 | #:use-module (guix build-system cmake)
|
| 53 | #:use-module (guix build-system pyproject)
|
| 54 | #:use-module (guix build-system gnu)
|
| 55 | #:use-module (guix build-system go)
|
| 56 | #:use-module (guix utils)
|
| 57 | #:use-module (gnu packages)
|
| 58 | #:use-module (gnu packages admin)
|
| 59 | #:use-module (gnu packages autotools)
|
| 60 | #:use-module (gnu packages base)
|
| 61 | #:use-module (gnu packages bison)
|
| 62 | #:use-module (gnu packages curl)
|
| 63 | #:use-module (gnu packages check)
|
| 64 | #:use-module (gnu packages compression)
|
| 65 | #:use-module (gnu packages crypto)
|
| 66 | #:use-module (gnu packages databases)
|
| 67 | #:use-module (gnu packages django)
|
| 68 | #:use-module (gnu packages compiler-tools)
|
| 69 | #:use-module (gnu packages freedesktop) |
| 70 | #:use-module (gnu packages fontutils)
|
| 71 | #:use-module (gnu packages gd)
|
| 72 | #:use-module (gnu packages gettext)
|
| 73 | #:use-module (gnu packages gnome) |
| 74 | #:use-module (gnu packages golang)
|
| 75 | #:use-module (gnu packages golang-build)
|
| 76 | #:use-module (gnu packages golang-check)
|
| 77 | #:use-module (gnu packages golang-web)
|
| 78 | #:use-module (gnu packages golang-xyz)
|
| 79 | #:use-module (gnu packages gtk)
|
| 80 | #:use-module (gnu packages image)
|
| 81 | #:use-module (gnu packages lua)
|
| 82 | #:use-module (gnu packages mail)
|
| 83 | #:use-module (gnu packages ncurses)
|
| 84 | #:use-module (gnu packages networking)
|
| 85 | #:use-module (gnu packages libevent)
|
| 86 | #:use-module (gnu packages linux) |
| 87 | #:use-module (gnu packages pcre)
|
| 88 | #:use-module (gnu packages perl)
|
| 89 | #:use-module (gnu packages pkg-config)
|
| 90 | #:use-module (gnu packages prometheus)
|
| 91 | #:use-module (gnu packages protobuf)
|
| 92 | #:use-module (gnu packages pulseaudio)
|
| 93 | #:use-module (gnu packages python)
|
| 94 | #:use-module (gnu packages python-build)
|
| 95 | #:use-module (gnu packages python-science)
|
| 96 | #:use-module (gnu packages python-web)
|
| 97 | #:use-module (gnu packages python-xyz)
|
| 98 | #:use-module (gnu packages qt)
|
| 99 | #:use-module (gnu packages rrdtool)
|
| 100 | #:use-module (gnu packages sphinx)
|
| 101 | #:use-module (gnu packages sqlite)
|
| 102 | #:use-module (gnu packages time)
|
| 103 | #:use-module (gnu packages tls)
|
| 104 | #:use-module (gnu packages web)
|
| 105 | #:use-module (gnu packages web)
|
| 106 | #:use-module (gnu packages xml)
|
| 107 | #:use-module (gnu packages xorg))
|
| 108 |
|
| 109 | (define aw-source
|
| 110 | (let ((name "activitywatch")
|
| 111 | (version "0.13.2"))
|
| 112 | (origin
|
| 113 | (method git-fetch)
|
| 114 | (uri (git-reference
|
| 115 | (url "https://github.com/ActivityWatch/activitywatch")
|
| 116 | (commit (string-append "v" version))
|
| 117 | (recursive? #t)))
|
| 118 | (file-name (git-file-name name version))
|
| 119 | (sha256
|
| 120 | (base32 "0yaa7g35rz9dmgxvahvkfhjpkvmi50rd6bjd9ckxvk7mfs1q0xb7"))
|
| 121 | (modules '((guix build utils)))
|
| 122 | (snippet
|
| 123 | #~(begin
|
| 124 | |
| 125 | (for-each delete-file (find-files "." "poetry\\.lock"))
|
| 126 | (substitute* "aw-core/pyproject.toml"
|
| 127 | (("^platformdirs = .*")
|
| 128 | "platformdirs = \"*\"\n")))))))
|
| 129 |
|
| 130 | (define-public aw-core
|
| 131 | (package
|
| 132 | (name "aw-core")
|
| 133 | (version "0.5.17")
|
| 134 | (source aw-source)
|
| 135 | (build-system pyproject-build-system)
|
| 136 | (arguments
|
| 137 | (list
|
| 138 | #:modules
|
| 139 | '((guix build pyproject-build-system)
|
| 140 | (guix build utils)
|
| 141 | (ice-9 ftw)
|
| 142 | (srfi srfi-1)
|
| 143 | (srfi srfi-26))
|
| 144 | #:phases
|
| 145 | #~(modify-phases %standard-phases
|
| 146 | (add-after 'unpack 'chdir
|
| 147 | (lambda* (#:key name #:allow-other-keys)
|
| 148 | |
| 149 | |
| 150 | (and=> (find (cute string-prefix? <> name) (scandir "."))
|
| 151 | chdir)))
|
| 152 | (add-before 'check 'pre-check
|
| 153 | (lambda _
|
| 154 | (setenv "HOME" (getcwd)))))))
|
| 155 | (native-inputs (list python-poetry-core python-pytest))
|
| 156 | (propagated-inputs
|
| 157 | (list python-click
|
| 158 | python-deprecation
|
| 159 | python-iso8601
|
| 160 | python-jsonschema
|
| 161 | python-peewee
|
| 162 | python-platformdirs
|
| 163 | python-rfc3339-validator
|
| 164 | python-strict-rfc3339
|
| 165 | python-timeslot
|
| 166 | python-tomlkit))
|
| 167 | (home-page "https://activitywatch.net/")
|
| 168 | (synopsis "Core library for ActivityWatch")
|
| 169 | (description
|
| 170 | "This package provides the core library for @code{ActivityWatch}.")
|
| 171 | (license license:mpl2.0)))
|
| 172 |
|
| 173 | (define-public aw-client
|
| 174 | (package/inherit aw-core
|
| 175 | (name "aw-client")
|
| 176 | (version "0.5.15")
|
| 177 | (arguments
|
| 178 | (substitute-keyword-arguments arguments
|
| 179 | ((#:test-flags test-flags #~(list))
|
| 180 | #~(list
|
| 181 | |
| 182 | "--deselect=tests/test_client.py::test_full"
|
| 183 | |
| 184 | "--deselect=tests/test_failqueue.py::test_failqueue"))))
|
| 185 | (propagated-inputs
|
| 186 | (list aw-core
|
| 187 | python-click
|
| 188 | python-persist-queue
|
| 189 | python-requests
|
| 190 | python-tabulate
|
| 191 | python-typing-extensions))
|
| 192 | (synopsis "Client library for ActivityWatch")
|
| 193 | (description
|
| 194 | "This package provides the client library for @code{ActivityWatch}.")))
|
| 195 |
|
| 196 | (define-public aw-notify
|
| 197 | (package/inherit aw-core
|
| 198 | (name "aw-notify")
|
| 199 | (version "0.0.0") |
| 200 | (arguments
|
| 201 | (substitute-keyword-arguments arguments
|
| 202 | ((#:tests? tests? #t)
|
| 203 | #f))) |
| 204 | (synopsis "Notify library for ActivityWatch")
|
| 205 | (description
|
| 206 | "This package provides the notify library for @code{ActivityWatch}.")))
|
| 207 |
|
| 208 | (define-public aw-qt
|
| 209 | (package/inherit aw-core
|
| 210 | (name "aw-qt")
|
| 211 | (version "0.1.0")
|
| 212 | (arguments
|
| 213 | (substitute-keyword-arguments arguments
|
| 214 | ((#:phases phases #~%standard-phases)
|
| 215 | #~(modify-phases #$phases
|
| 216 | |
| 217 | (add-before 'check 'start-xserver
|
| 218 | (lambda* (#:key inputs #:allow-other-keys)
|
| 219 | (let* ((Xvfb (search-input-file inputs "/bin/Xvfb"))
|
| 220 | (display ":1")
|
| 221 | (command (string-join (list Xvfb display "&") " ")))
|
| 222 | (setenv "DISPLAY" display)
|
| 223 | (zero? (system command)))))))
|
| 224 | ((#:test-backend _ #f)
|
| 225 | #~'custom)
|
| 226 | ((#:test-flags _ #~(list))
|
| 227 | #~(list "tests/integration_tests.py"))))
|
| 228 | (native-inputs
|
| 229 | (list python-poetry-core xorg-server-for-tests))
|
| 230 | (propagated-inputs
|
| 231 | (list aw-core python-click python-pyqt-6))
|
| 232 | (synopsis "Trayicon for ActivityWatch")
|
| 233 | (description
|
| 234 | "This package provides a tray icon for @code{ActivityWatch}.")))
|
| 235 |
|
| 236 | (define-public aw-server-rust
|
| 237 | (let ((commit "d40d712cff2c1d5621b86e401e32076d2beef737")
|
| 238 | (revision "1"))
|
| 239 | (package
|
| 240 | (name "aw-server-rust")
|
| 241 | (version "0.13.1")
|
| 242 | (source
|
| 243 | (origin
|
| 244 | (method git-fetch)
|
| 245 | (uri (git-reference
|
| 246 | (url "https://github.com/ActivityWatch/aw-server-rust")
|
| 247 | (commit commit)))
|
| 248 | (file-name (git-file-name name version))
|
| 249 | (sha256
|
| 250 | (base32 "1v4693xv99nq0kvclihgxiydnfxpyx748n1siyayw2ifkw9sw64m"))))
|
| 251 | (build-system cargo-build-system)
|
| 252 | (arguments
|
| 253 | (list
|
| 254 | #:install-source? #f
|
| 255 | #:cargo-test-flags
|
| 256 | '(list "--release" "--"
|
| 257 | |
| 258 | "--skip=test::test_full"
|
| 259 | "--skip=datastore_tests::test_datastore_reload"
|
| 260 | "--skip=dirs::test_get_dirs")
|
| 261 | #:phases
|
| 262 | #~(modify-phases %standard-phases
|
| 263 | (add-after 'unpack 'disable-vendored-features
|
| 264 | (lambda _
|
| 265 | (substitute* (find-files "." "Cargo\\.toml")
|
| 266 | ((", features = \\[\"vendored\"\\]") ""))))
|
| 267 | (replace 'install
|
| 268 | (lambda _
|
| 269 | (let ((bin (string-append #$output "/bin")))
|
| 270 | (install-file "target/release/aw-server" bin)
|
| 271 | (install-file "target/release/aw-sync" bin)))))))
|
| 272 | (native-inputs (list pkg-config))
|
| 273 | (inputs (cons* openssl sqlite (cargo-inputs 'aw-server-rust)))
|
| 274 | (home-page "https://activitywatch.net/")
|
| 275 | (synopsis "Store and retrieve quantified self data")
|
| 276 | (description
|
| 277 | "This package provides the ActivityWatch server, for secure storage and
|
| 278 | retrieval of all your quantified self data.")
|
| 279 | (license license:mpl2.0))))
|
| 280 |
|
| 281 | (define-public aw-watcher-afk
|
| 282 | (package/inherit aw-core
|
| 283 | (name "aw-watcher-afk")
|
| 284 | (version "0.2.0")
|
| 285 | (arguments
|
| 286 | (substitute-keyword-arguments arguments
|
| 287 | ((#:tests? tests? #t)
|
| 288 | #f) |
| 289 | ((#:test-backend _ #f)
|
| 290 | #~'custom)
|
| 291 | ((#:test-flags _ #~(list))
|
| 292 | #~(list "tests/test_continuous_events.py"))))
|
| 293 | (propagated-inputs
|
| 294 | (list aw-client python-pynput python-xlib))
|
| 295 | (synopsis "AFK watcher for ActivityWatch")
|
| 296 | (description
|
| 297 | "This package provides a @acronym{AFK, away from keyboard} watcher for
|
| 298 | @code{ActivityWatch}.")))
|
| 299 |
|
| 300 | (define-public aw-watcher-input
|
| 301 | (package/inherit aw-core
|
| 302 | (name "aw-watcher-input")
|
| 303 | (version "0.1.0")
|
| 304 | (arguments
|
| 305 | (substitute-keyword-arguments arguments
|
| 306 | ((#:tests? tests? #t)
|
| 307 | #f))) |
| 308 | (propagated-inputs
|
| 309 | (list aw-client aw-watcher-afk))
|
| 310 | (synopsis "Input watcher for ActivityWatch")
|
| 311 | (description
|
| 312 | "This package provide an input watcher for @code{ActivityWatch}.")))
|
| 313 |
|
| 314 | (define-public aw-watcher-window
|
| 315 | (package/inherit aw-core
|
| 316 | (name "aw-watcher-window")
|
| 317 | (version "0.2.0")
|
| 318 | (arguments
|
| 319 | (substitute-keyword-arguments arguments
|
| 320 | ((#:tests? tests? #t)
|
| 321 | #f))) |
| 322 | (propagated-inputs
|
| 323 | (list aw-client python-xlib))
|
| 324 | (synopsis "X11 Window watcher for ActivityWatch")
|
| 325 | (description
|
| 326 | "This package provides a X11 window watcher for @code{ActivityWatch}.")))
|
| 327 |
|
| 328 | (define-public aw-watcher-window-wayland
|
| 329 | (let ((commit "aea9aca029bd33d373bf53946a16dc05ef81e0b3")
|
| 330 | (revision "0"))
|
| 331 | (package
|
| 332 | (name "aw-watcher-window-wayland")
|
| 333 | (version (git-version "0.1.0" revision commit))
|
| 334 | (source
|
| 335 | (origin
|
| 336 | (method git-fetch)
|
| 337 | (uri
|
| 338 | (git-reference
|
| 339 | (url "https://github.com/ActivityWatch/aw-watcher-window-wayland")
|
| 340 | (commit commit)))
|
| 341 | (file-name (git-file-name name version))
|
| 342 | (sha256
|
| 343 | (base32 "0viir38q1vr5q2w3kfrz42m1lx9fxvxwq7l939m9sycqzmawi3fy"))))
|
| 344 | (build-system cargo-build-system)
|
| 345 | (arguments
|
| 346 | (list
|
| 347 | #:install-source? #f
|
| 348 | #:phases
|
| 349 | #~(modify-phases %standard-phases
|
| 350 | (add-after 'unpack 'patch-aw-requirements
|
| 351 | (lambda _
|
| 352 | (substitute* "Cargo.toml"
|
| 353 | (("^aw-client-rust = .*")
|
| 354 | "aw-client-rust = \"*\"\n")))))))
|
| 355 | (native-inputs (list pkg-config))
|
| 356 | (inputs (cons* openssl (cargo-inputs 'aw-watcher-window-wayland)))
|
| 357 | (home-page "https://activitywatch.net/")
|
| 358 | (synopsis "Wayland window watcher for ActivityWatch")
|
| 359 | (description
|
| 360 | "This package provides a wayland window watcher for
|
| 361 | @code{ActivityWatch}.")
|
| 362 | (license license:mpl2.0))))
|
| 363 |
|
| 364 | (define-public conky
|
| 365 | (package
|
| 366 | (name "conky")
|
| 367 | (home-page "https://github.com/brndnmtthws/conky")
|
| 368 | (version "1.19.8")
|
| 369 | (source
|
| 370 | (origin
|
| 371 | (method git-fetch)
|
| 372 | (uri (git-reference
|
| 373 | (url home-page)
|
| 374 | (commit (string-append "v" version))))
|
| 375 | (file-name (git-file-name name version))
|
| 376 | (sha256
|
| 377 | (base32 "1g712cw2nzd2qvgdmyvazyda0znyqzg6yckg98ss203fggwp93vj"))))
|
| 378 | (build-system cmake-build-system)
|
| 379 | (arguments
|
| 380 | (list
|
| 381 | #:configure-flags
|
| 382 | #~(list "-DRELEASE=true"
|
| 383 | "-DBUILD_PULSEAUDIO=ON"
|
| 384 | "-DBUILD_WLAN=ON"
|
| 385 | "-DBUILD_TESTS=ON")
|
| 386 | #:phases
|
| 387 | #~(modify-phases %standard-phases
|
| 388 | (add-after 'unpack 'add-freetype-to-search-path
|
| 389 | (lambda* (#:key inputs #:allow-other-keys)
|
| 390 | (substitute* "cmake/ConkyPlatformChecks.cmake"
|
| 391 | (("set\\(INCLUDE_SEARCH_PATH")
|
| 392 | (string-append
|
| 393 | "set(INCLUDE_SEARCH_PATH "
|
| 394 | (assoc-ref inputs "freetype") "/include/freetype2 ")))))
|
| 395 | (replace 'install
|
| 396 | (lambda _
|
| 397 | (install-file "src/conky" (string-append #$output "/bin")))))))
|
| 398 | (inputs
|
| 399 | (list freetype
|
| 400 | imlib2
|
| 401 | libx11
|
| 402 | libxdamage
|
| 403 | libxext
|
| 404 | libxft
|
| 405 | libxi
|
| 406 | libxinerama
|
| 407 | pulseaudio
|
| 408 | lua
|
| 409 | ncurses
|
| 410 | curl
|
| 411 | wireless-tools))
|
| 412 | (native-inputs
|
| 413 | (list pkg-config))
|
| 414 | (synopsis "Lightweight system monitor for X")
|
| 415 | (description
|
| 416 | "Conky is a lightweight system monitor for X that displays operating
|
| 417 | system statistics (CPU, disk, and memory usage, etc.) and more on the
|
| 418 | desktop.")
|
| 419 | (license license:gpl3+)))
|
| 420 |
|
| 421 | (define-public gkrellm
|
| 422 | (package
|
| 423 | (name "gkrellm")
|
| 424 | (version "2.5.1")
|
| 425 | (source
|
| 426 | (origin
|
| 427 | (method url-fetch)
|
| 428 | (uri (string-append "https://gkrellm.srcbox.net/releases/gkrellm-"
|
| 429 | version ".tar.bz2"))
|
| 430 | (sha256
|
| 431 | (base32 "0qvy2xmwmfy5f0g09yn9lr262shnx82ba04r5il2wj4qscg3r7h8"))))
|
| 432 | (build-system gnu-build-system)
|
| 433 | (inputs (list gtk+-2 libsm))
|
| 434 | (native-inputs (list gettext-minimal pkg-config))
|
| 435 | (arguments
|
| 436 | (list
|
| 437 | #:tests? #f |
| 438 | #:phases
|
| 439 | #~(modify-phases %standard-phases
|
| 440 | (delete 'configure)) |
| 441 | #:make-flags
|
| 442 | #~(list (string-append "INSTALLROOT=" #$output)
|
| 443 | (string-append "CC=" #$(cc-for-target)))))
|
| 444 | (home-page "https://gkrellm.srcbox.net/")
|
| 445 | (synopsis "System monitors")
|
| 446 | (description
|
| 447 | "GKrellM is a single process stack of system monitors which supports
|
| 448 | applying themes to match its appearance to your window manager, Gtk, or any
|
| 449 | other theme.")
|
| 450 | (license license:gpl3+)))
|
| 451 |
|
| 452 | (define-public glances
|
| 453 | (package
|
| 454 | (name "glances")
|
| 455 | (version "4.3.0")
|
| 456 | (source
|
| 457 | (origin
|
| 458 | (method git-fetch)
|
| 459 | (uri (git-reference
|
| 460 | (url "https://github.com/nicolargo/glances")
|
| 461 | (commit (string-append "v" version))))
|
| 462 | (file-name (git-file-name name version))
|
| 463 | (sha256
|
| 464 | (base32 "1v2rsffy99ilarl5vnsz4zwb0wp3s3jnsbcbiqx53qxv88whfz71"))))
|
| 465 | (build-system pyproject-build-system)
|
| 466 | (arguments
|
| 467 | (list
|
| 468 | #:test-backend #~'custom
|
| 469 | #:test-flags #~(list "unittest-core.py")
|
| 470 | #:phases
|
| 471 | #~(modify-phases %standard-phases
|
| 472 | (add-after 'unpack 'disable-update-checks
|
| 473 | (lambda _
|
| 474 | |
| 475 | |
| 476 | (substitute* "glances/outdated.py"
|
| 477 | (("^(.*)self\\.load_config\\(config\\)\n" line indentation)
|
| 478 | (string-append indentation
|
| 479 | "self.args.disable_check_update = True\n" line))))))))
|
| 480 | (native-inputs
|
| 481 | (list python-pytest
|
| 482 | python-setuptools))
|
| 483 | (propagated-inputs
|
| 484 | (list python-defusedxml
|
| 485 | python-jinja2
|
| 486 | python-orjson
|
| 487 | python-packaging
|
| 488 | python-psutil
|
| 489 | python-shtab))
|
| 490 | (home-page "https://github.com/nicolargo/glances")
|
| 491 | (synopsis "Cross-platform curses-based monitoring tool")
|
| 492 | (description
|
| 493 | "Glances is a curses-based monitoring tool for a wide variety of
|
| 494 | platforms. Glances uses the PsUtil library to get information from your
|
| 495 | system. It monitors CPU, load, memory, network bandwidth, disk I/O, disk use,
|
| 496 | and more.")
|
| 497 | (license license:lgpl3+)))
|
| 498 |
|
| 499 | (define-public monit
|
| 500 | (package
|
| 501 | (name "monit")
|
| 502 | (version "6.0.0")
|
| 503 | (supported-systems
|
| 504 | (filter (lambda (system)
|
| 505 | (string-suffix? "-linux" system)) |
| 506 | %supported-systems))
|
| 507 | (source
|
| 508 | (origin
|
| 509 | (method git-fetch)
|
| 510 | (uri (git-reference
|
| 511 | (url "https://bitbucket.org/tildeslash/monit.git")
|
| 512 | (commit (string-append "release-"
|
| 513 | (string-join (string-split version #\.)
|
| 514 | "-")))))
|
| 515 | (file-name (git-file-name name version))
|
| 516 | (sha256
|
| 517 | (base32 "1lpai4lf4w6cz3g10ysspmnp7v3f9x8ilfwig4cxdgc514ybd79f"))))
|
| 518 | (build-system gnu-build-system)
|
| 519 | (arguments
|
| 520 | (list
|
| 521 | #:configure-flags
|
| 522 | #~(list (string-append "--with-ssl-dir="
|
| 523 | #$(this-package-input "openssl")))
|
| 524 | #:phases
|
| 525 | #~(modify-phases %standard-phases
|
| 526 | (add-after 'unpack 'patch-tests
|
| 527 | (lambda* (#:key inputs #:allow-other-keys)
|
| 528 | (substitute* "libmonit/test/CommandTest.c"
|
| 529 | (("/bin/sh")
|
| 530 | (search-input-file inputs "bin/sh"))
|
| 531 | (("/bin/ls")
|
| 532 | (search-input-file inputs "bin/ls")))))
|
| 533 | (add-before 'bootstrap 'patch-libmonit-bootstrap
|
| 534 | (lambda _
|
| 535 | (patch-shebang "libmonit/bootstrap")))
|
| 536 | (replace 'check
|
| 537 | (lambda* (#:key tests? #:allow-other-keys)
|
| 538 | (when tests?
|
| 539 | |
| 540 | (setenv "TZ" "CET-1")
|
| 541 | (with-directory-excursion "libmonit/test"
|
| 542 | (invoke "./test.sh"))))))))
|
| 543 | (native-inputs (list autoconf automake bison flex libtool perl))
|
| 544 | (inputs (list libxcrypt linux-pam openssl zlib))
|
| 545 | (home-page "https://mmonit.com/monit/")
|
| 546 | (synopsis "Proactive monitoring")
|
| 547 | (description
|
| 548 | "Monit is a utility for managing and monitoring, processes, programs,
|
| 549 | files, directories and filesystems on a UNIX system.")
|
| 550 | (license license:agpl3)))
|
| 551 |
|
| 552 | (define-public nagios
|
| 553 | (package
|
| 554 | (name "nagios")
|
| 555 | (version "4.4.6")
|
| 556 | |
| 557 | (source (origin
|
| 558 | (method url-fetch)
|
| 559 | (uri (string-append
|
| 560 | "mirror://sourceforge/nagios/nagios-4.x/nagios-"
|
| 561 | version "/nagios-" version ".tar.gz"))
|
| 562 | (sha256
|
| 563 | (base32
|
| 564 | "1x5hb97zbvkm73q53ydp1gwj8nnznm72q9c4rm6ny7phr995l3db"))
|
| 565 | (modules '((guix build utils)))
|
| 566 | (snippet
|
| 567 | |
| 568 | '(begin
|
| 569 | (substitute* (find-files "cgi" "\\.c$")
|
| 570 | (("__DATE__") "\"1970-01-01\"")
|
| 571 | (("__TIME__") "\"00:00:00\""))
|
| 572 | #t))))
|
| 573 | (build-system gnu-build-system)
|
| 574 | (native-inputs
|
| 575 | (list unzip))
|
| 576 | (inputs
|
| 577 | `(("zlib" ,zlib)
|
| 578 | ("libpng-apng" ,libpng)
|
| 579 | ("gd" ,gd)
|
| 580 | ("perl" ,perl)
|
| 581 | ("mailutils" ,mailutils)))
|
| 582 | (arguments
|
| 583 | '(#:configure-flags (list "--sysconfdir=/etc"
|
| 584 |
|
| 585 | |
| 586 | |
| 587 | |
| 588 | "--localstatedir=/var/nagios"
|
| 589 |
|
| 590 | (string-append
|
| 591 | "--with-mail="
|
| 592 | (assoc-ref %build-inputs "mailutils")
|
| 593 | "/bin/mail"))
|
| 594 | #:make-flags '("all")
|
| 595 | #:phases (modify-phases %standard-phases
|
| 596 | (add-before 'build 'do-not-chown-to-nagios
|
| 597 | (lambda _
|
| 598 | |
| 599 | |
| 600 | (substitute* (find-files "." "^Makefile$")
|
| 601 | (("-o nagios -g nagios")
|
| 602 | ""))
|
| 603 | #t))
|
| 604 | (add-before 'build 'do-not-create-sysconfdir
|
| 605 | (lambda _
|
| 606 | |
| 607 | (substitute* "Makefile"
|
| 608 | (("\\$\\(INSTALL\\).*\\$\\(LOGDIR\\).*$" all)
|
| 609 | (string-append "# " all))
|
| 610 | (("\\$\\(INSTALL\\).*\\$\\(CHECKRESULTDIR\\).*$" all)
|
| 611 | (string-append "# " all))
|
| 612 | (("chmod g\\+s.*" all)
|
| 613 | (string-append "# " all)))
|
| 614 | #t))
|
| 615 | (add-before 'build 'set-html/php-directory
|
| 616 | (lambda _
|
| 617 | |
| 618 | |
| 619 | (substitute* '("html/Makefile" "Makefile")
|
| 620 | (("HTMLDIR=.*$")
|
| 621 | "HTMLDIR = $(datarootdir)/nagios/html\n"))
|
| 622 | #t)))
|
| 623 | #:tests? #f)) |
| 624 | (home-page "https://www.nagios.org/")
|
| 625 | (synopsis "Host, service, and network monitoring program")
|
| 626 | (description
|
| 627 | "Nagios is a host, service, and network monitoring program written in C.
|
| 628 | CGI programs are included to allow you to view the current status, history,
|
| 629 | etc. via a Web interface. Features include:
|
| 630 |
|
| 631 | @itemize
|
| 632 | @item Monitoring of network services (via SMTP, POP3, HTTP, PING, etc).
|
| 633 | @item Monitoring of host resources (processor load, disk usage, etc.).
|
| 634 | @item A plugin interface to allow for user-developed service monitoring
|
| 635 | methods.
|
| 636 | @item Ability to define network host hierarchy using \"parent\" hosts,
|
| 637 | allowing detection of and distinction between hosts that are down
|
| 638 | and those that are unreachable.
|
| 639 | @item Notifications when problems occur and get resolved (via email,
|
| 640 | pager, or user-defined method).
|
| 641 | @item Ability to define event handlers for proactive problem resolution.
|
| 642 | @item Automatic log file rotation/archiving.
|
| 643 | @item Optional web interface for viewing current network status,
|
| 644 | notification and problem history, log file, etc.
|
| 645 | @end itemize\n")
|
| 646 | (license license:gpl2)))
|
| 647 |
|
| 648 | (define-public zabbix-agentd
|
| 649 | |
| 650 | |
| 651 | |
| 652 | |
| 653 | |
| 654 | (package
|
| 655 | (name "zabbix-agentd")
|
| 656 | (version "7.2.15")
|
| 657 | (source
|
| 658 | (origin
|
| 659 | (method url-fetch)
|
| 660 | (uri (string-append
|
| 661 | "https://cdn.zabbix.com/zabbix/sources/oldstable/"
|
| 662 | (version-major+minor version) "/zabbix-" version ".tar.gz"))
|
| 663 | (sha256
|
| 664 | (base32 "0p78f02lslpfsqrr38rs30dq6fylyzph2q3fbwc6l9f6p5ik00dp"))
|
| 665 | (modules '((guix build utils)))
|
| 666 | (snippet
|
| 667 | '(substitute* '("src/zabbix_proxy/proxy.c"
|
| 668 | "src/zabbix_server/server.c")
|
| 669 | |
| 670 | (("/usr/sbin/fping6?")
|
| 671 | "/run/privileged/bin/fping")))))
|
| 672 | (build-system gnu-build-system)
|
| 673 | (arguments
|
| 674 | (list #:configure-flags
|
| 675 | #~(list "--enable-agent"
|
| 676 | "--enable-ipv6"
|
| 677 | "--with-libpcre2"
|
| 678 | "--with-gnutls"
|
| 679 | (string-append "--with-gnutls="
|
| 680 | (assoc-ref %build-inputs "gnutls")))))
|
| 681 | (native-inputs
|
| 682 | (list pkg-config))
|
| 683 | (inputs
|
| 684 | (list gnutls pcre2))
|
| 685 | (home-page "https://www.zabbix.com/")
|
| 686 | (synopsis "Distributed monitoring solution (client-side agent)")
|
| 687 | (description "This package provides a distributed monitoring
|
| 688 | solution (client-side agent)")
|
| 689 | (license license:agpl3)
|
| 690 | (properties
|
| 691 | '((release-monitoring-url . "https://www.zabbix.com/download_sources")
|
| 692 | (upstream-name . "zabbix")))))
|
| 693 |
|
| 694 | (define-public zabbix-agent2
|
| 695 | (package/inherit zabbix-agentd
|
| 696 | (name "zabbix-agent2")
|
| 697 | (source
|
| 698 | (origin
|
| 699 | (inherit (package-source zabbix-agentd))
|
| 700 | (patches (search-patches "zabbix-agent2-test-timezone-fix.patch"))))
|
| 701 | (arguments
|
| 702 | (list #:configure-flags
|
| 703 | #~(list "--disable-agent"
|
| 704 | "--enable-agent2"
|
| 705 | "--enable-ipv6"
|
| 706 | "--with-libpcre2"
|
| 707 | |
| 708 | (string-append "--with-openssl="
|
| 709 | (dirname (dirname
|
| 710 | (search-input-file
|
| 711 | %build-inputs "lib/libssl.so")))))
|
| 712 | #:make-flags
|
| 713 | #~'("BUILD_TIME=00:00:01" "BUILD_DATE=Jan 1 1970")
|
| 714 | #:phases
|
| 715 | #~(modify-phases %standard-phases
|
| 716 | (add-before 'build 'set-HOME
|
| 717 | (lambda _
|
| 718 | (setenv "HOME" "/tmp"))))))
|
| 719 | (native-inputs
|
| 720 | (list go pkg-config))
|
| 721 | (inputs
|
| 722 | (list openssl pcre2 zlib))))
|
| 723 |
|
| 724 | (define-public zabbix-server
|
| 725 | (package
|
| 726 | (inherit zabbix-agentd)
|
| 727 | (name "zabbix-server")
|
| 728 | (outputs '("out" "front-end" "schema"))
|
| 729 | (arguments
|
| 730 | (substitute-keyword-arguments arguments
|
| 731 | ((#:phases phases '%standard-phases)
|
| 732 | #~(modify-phases #$phases
|
| 733 | (add-after 'install 'install-front-end
|
| 734 | (lambda* (#:key outputs #:allow-other-keys)
|
| 735 | (let* ((php (string-append (assoc-ref outputs "front-end")
|
| 736 | "/share/zabbix/php"))
|
| 737 | (front-end-conf (string-append php "/conf"))
|
| 738 | (etc (string-append php "/etc")))
|
| 739 | (mkdir-p php)
|
| 740 | (copy-recursively "ui" php)
|
| 741 | |
| 742 | (rename-file front-end-conf
|
| 743 | (string-append front-end-conf "-example"))
|
| 744 | (symlink "/etc/zabbix" front-end-conf))))
|
| 745 | (add-after 'install 'install-schema
|
| 746 | (lambda* (#:key outputs #:allow-other-keys)
|
| 747 | (let ((database-directory
|
| 748 | (string-append (assoc-ref outputs "schema")
|
| 749 | "/database")))
|
| 750 | (for-each delete-file
|
| 751 | (find-files "database" "Makefile\\.in|\\.am$"))
|
| 752 | (mkdir-p database-directory)
|
| 753 | (copy-recursively "database" database-directory))))))
|
| 754 | ((#:configure-flags flags ''())
|
| 755 | #~(append (list "--enable-server"
|
| 756 | "--with-postgresql"
|
| 757 | (string-append "--with-libevent="
|
| 758 | (assoc-ref %build-inputs "libevent"))
|
| 759 | "--with-net-snmp"
|
| 760 | "--with-libcurl"
|
| 761 | (string-append "--with-zlib="
|
| 762 | (assoc-ref %build-inputs "zlib")))
|
| 763 | (delete "--enable-agent" #$flags)))))
|
| 764 | (inputs
|
| 765 | (modify-inputs inputs
|
| 766 | (prepend curl
|
| 767 | libevent
|
| 768 | net-snmp
|
| 769 | postgresql
|
| 770 | zlib)))
|
| 771 | (synopsis "Distributed monitoring solution (server-side)")
|
| 772 | (description "This package provides a distributed monitoring
|
| 773 | solution (server-side)")))
|
| 774 |
|
| 775 | (define-public zabbix-cli
|
| 776 | (package
|
| 777 | (name "zabbix-cli")
|
| 778 | (version "2.3.1")
|
| 779 | (source (origin
|
| 780 | (method git-fetch)
|
| 781 | (uri (git-reference
|
| 782 | (url "https://github.com/unioslo/zabbix-cli")
|
| 783 | (commit version)))
|
| 784 | (file-name (git-file-name name version))
|
| 785 | (sha256
|
| 786 | (base32
|
| 787 | "1al3gwbnh0wbal5gq2apq27kh61q8dz355k4w8kx073b4y4nz1wb"))))
|
| 788 | (build-system pyproject-build-system)
|
| 789 | (arguments
|
| 790 | (list #:phases
|
| 791 | #~(modify-phases %standard-phases
|
| 792 | (add-after 'unpack 'use-absolute-ncurses
|
| 793 | (lambda* (#:key inputs #:allow-other-keys)
|
| 794 | (let ((clear (search-input-file inputs "bin/clear")))
|
| 795 | (substitute* "bin/zabbix-cli"
|
| 796 | (("'clear'")
|
| 797 | (string-append "'" clear "'"))))))
|
| 798 | (add-after 'unpack 'patch-setup.py
|
| 799 | (lambda _
|
| 800 | |
| 801 | (substitute* "setup.py"
|
| 802 | (("/usr/") ""))))
|
| 803 | (add-after 'build 'build-docs
|
| 804 | (lambda _
|
| 805 | (invoke "make" "-C" "docs" "manual")
|
| 806 | (invoke "make" "-C" "docs" "singlehtml")))
|
| 807 | (add-after 'install 'install-docs
|
| 808 | (lambda _
|
| 809 | (install-file "docs/_build/man/zabbix-cli.1"
|
| 810 | (string-append #$output "/share/man/man1"))
|
| 811 | (copy-recursively "docs/_build/singlehtml"
|
| 812 | (string-append #$output "/share/doc/"
|
| 813 | #$name "/html")))))))
|
| 814 | (native-inputs
|
| 815 | (list python-pytest
|
| 816 | python-setuptools
|
| 817 | python-sphinx
|
| 818 | python-wheel))
|
| 819 | (inputs
|
| 820 | (list ncurses python-requests))
|
| 821 | (home-page "https://github.com/unioslo/zabbix-cli")
|
| 822 | (synopsis "Command-line interface to Zabbix")
|
| 823 | (description
|
| 824 | "@command{zabbix-cli} is a command-line client for the Zabbix
|
| 825 | monitoring system. It can configure and display various aspects of Zabbix
|
| 826 | through a text-based interface.")
|
| 827 | (license license:gpl3+)))
|
| 828 |
|
| 829 | (define-public darkstat
|
| 830 | (package
|
| 831 | (name "darkstat")
|
| 832 | (version "3.0.719")
|
| 833 | (source (origin
|
| 834 | (method url-fetch)
|
| 835 | (uri (string-append "https://unix4lyfe.org/darkstat/darkstat-"
|
| 836 | version ".tar.bz2"))
|
| 837 | (sha256
|
| 838 | (base32
|
| 839 | "1mzddlim6dhd7jhr4smh0n2fa511nvyjhlx76b03vx7phnar1bxf"))))
|
| 840 | (build-system gnu-build-system)
|
| 841 | (arguments '(#:tests? #f)) |
| 842 | (inputs
|
| 843 | (list libpcap zlib))
|
| 844 | (home-page "https://unix4lyfe.org/darkstat/")
|
| 845 | (synopsis "Network statistics gatherer")
|
| 846 | (description
|
| 847 | "@command{darkstat} is a packet sniffer that runs as a background process,
|
| 848 | gathers all sorts of statistics about network usage, and serves them over
|
| 849 | HTTP. Features:
|
| 850 |
|
| 851 | @itemize
|
| 852 | @item Traffic graphs, reports per host, shows ports for each host.
|
| 853 | @item Embedded web-server with deflate compression.
|
| 854 | @item Asynchronous reverse DNS resolution using a child process.
|
| 855 | @item Small. Portable. Single-threaded. Efficient.
|
| 856 | @item Supports IPv6.
|
| 857 | @end itemize")
|
| 858 | (license license:gpl2)))
|
| 859 |
|
| 860 | (define-public dgop
|
| 861 | (package
|
| 862 | (name "dgop")
|
| 863 | (version "0.1.11")
|
| 864 | (source
|
| 865 | (origin
|
| 866 | (method git-fetch)
|
| 867 | (uri (git-reference
|
| 868 | (url "https://github.com/AvengeMedia/dgop")
|
| 869 | (commit (string-append "v" version))))
|
| 870 | (sha256
|
| 871 | (base32 "1iy9ndvrp7l1hr5ya2xf80j8ywcg8098z8wj2r47wdsqpagx2722"))
|
| 872 | (file-name (git-file-name name version))))
|
| 873 | (build-system go-build-system)
|
| 874 | (arguments
|
| 875 | (list
|
| 876 | #:install-source? #f
|
| 877 | #:import-path "github.com/AvengeMedia/dgop/cmd/cli"
|
| 878 | #:unpack-path "github.com/AvengeMedia/dgop"
|
| 879 | #:test-subdirs
|
| 880 | #~(list "../../...") |
| 881 | #:phases
|
| 882 | #~(modify-phases %standard-phases
|
| 883 | (add-after 'install 'rename-cli
|
| 884 | (lambda* (#:key output #:allow-other-keys)
|
| 885 | (let* ((bin (string-append #$output "/bin")))
|
| 886 | (rename-file (string-append bin "/cli")
|
| 887 | (string-append bin "/dgop"))))))))
|
| 888 | (native-inputs
|
| 889 | (list go-github-com-caarlos0-env
|
| 890 | go-github-com-charmbracelet-bubbles
|
| 891 | go-github-com-charmbracelet-lipgloss
|
| 892 | go-github-com-charmbracelet-log
|
| 893 | go-github-com-danielgtaylor-huma-v2
|
| 894 | go-github-com-fsnotify-fsnotify
|
| 895 | go-github-com-go-chi-chi-v5
|
| 896 | go-github-com-gorilla-schema
|
| 897 | go-github-com-shirou-gopsutil-v4
|
| 898 | go-github-com-spf13-cobra
|
| 899 | go-github-com-stretchr-testify))
|
| 900 | (home-page "https://github.com/AvengeMedia/dgop")
|
| 901 | (synopsis "Stateless system monitoring CLI + REST API")
|
| 902 | (description
|
| 903 | "dgop is a system monitoring tool. It supports cursor-based sampling of
|
| 904 | CPU/memory/disk/network, plus an optional REST API server. It supports
|
| 905 | cursor-based sampling for building real-time monitoring tools like
|
| 906 | @command{htop}. Instead of relying on instantaneous snapshots, it may track
|
| 907 | system state changes over time for more accurate CPU usage calculations and
|
| 908 | network/disk rates.")
|
| 909 | (license license:expat)))
|
| 910 |
|
| 911 | (define-public python-whisper
|
| 912 | (package
|
| 913 | (name "python-whisper")
|
| 914 | (version "1.1.10")
|
| 915 | (source
|
| 916 | (origin
|
| 917 | (method git-fetch)
|
| 918 | (uri (git-reference
|
| 919 | (url "https://github.com/graphite-project/whisper")
|
| 920 | (commit version)))
|
| 921 | (file-name (git-file-name name version))
|
| 922 | (sha256
|
| 923 | (base32
|
| 924 | "182phj3z3mxpbla6m2f0pahyvqfn0jdblprvk6xwx39nc939nw0a"))))
|
| 925 | (build-system pyproject-build-system)
|
| 926 | (arguments
|
| 927 | (list
|
| 928 | #:phases
|
| 929 | #~(modify-phases %standard-phases
|
| 930 | (add-after 'unpack 'remove-python-six-dependency
|
| 931 | (lambda _
|
| 932 | (substitute* (find-files "." "\\.py$")
|
| 933 | (("'six'") "") |
| 934 | (("six\\.moves") "io")
|
| 935 | (("from six import assertRegex") "")
|
| 936 | (("assertRegex") ""))))))) |
| 937 | (native-inputs (list python-pytest python-setuptools))
|
| 938 | (home-page "https://graphiteapp.org/")
|
| 939 | (synopsis "Fixed size round-robin style database for Graphite")
|
| 940 | (description "Whisper is one of three components within the Graphite
|
| 941 | project. Whisper is a fixed-size database, similar in design and purpose to
|
| 942 | RRD (round-robin-database). It provides fast, reliable storage of numeric
|
| 943 | data over time. Whisper allows for higher resolution (seconds per point) of
|
| 944 | recent data to degrade into lower resolutions for long-term retention of
|
| 945 | historical data.")
|
| 946 | (license license:asl2.0)))
|
| 947 |
|
| 948 | (define-public python-carbon
|
| 949 | |
| 950 | |
| 951 | (let ((commit "697bc3b0060ab245225dc5b90a0f4966b4ec7eef")
|
| 952 | (revision "0"))
|
| 953 | (package
|
| 954 | (name "python-carbon")
|
| 955 | (version (git-version "1.1.10" revision commit))
|
| 956 | (source
|
| 957 | (origin
|
| 958 | (method git-fetch)
|
| 959 | (uri (git-reference
|
| 960 | (url "https://github.com/graphite-project/carbon")
|
| 961 | (commit commit)))
|
| 962 | (file-name (git-file-name name version))
|
| 963 | (sha256
|
| 964 | (base32 "1i5ydnzv53b1pigrqqi9nhivxjmlnswg9pd7vznvg34d7281gx19"))))
|
| 965 | (build-system pyproject-build-system)
|
| 966 | (arguments
|
| 967 | (list
|
| 968 | #:test-flags
|
| 969 | #~(list
|
| 970 | |
| 971 | "--ignore=lib/carbon/tests/test_database.py"
|
| 972 | "--ignore=lib/carbon/tests/test_storage.py"
|
| 973 | "-k" (string-join
|
| 974 | (list "not testBasic" |
| 975 | |
| 976 | "test_decode_pickle"
|
| 977 | "test_invalid_pickle"
|
| 978 | "test_invalid_types")
|
| 979 | " and not "))
|
| 980 | #:phases
|
| 981 | #~(modify-phases %standard-phases
|
| 982 | |
| 983 | (add-after 'unpack 'do-not-install-to-/opt
|
| 984 | (lambda _
|
| 985 | (setenv "GRAPHITE_NO_PREFIX" "1"))))))
|
| 986 | (native-inputs
|
| 987 | (list python-mock python-protobuf python-pytest python-setuptools))
|
| 988 | (propagated-inputs
|
| 989 | (list python-cachetools python-twisted python-txamqp python-urllib3))
|
| 990 | (home-page "https://graphiteapp.org/")
|
| 991 | (synopsis "Backend data caching and persistence daemon for Graphite")
|
| 992 | (description
|
| 993 | "Carbon is a backend data caching and persistence daemon for Graphite.
|
| 994 | Carbon is responsible for receiving metrics over the network, caching them in
|
| 995 | memory for \"hot queries\" from the Graphite-Web application, and persisting
|
| 996 | them to disk using the Whisper time-series library.")
|
| 997 | (license license:asl2.0))))
|
| 998 |
|
| 999 | (define-public python-prometheus-client
|
| 1000 | (package
|
| 1001 | (name "python-prometheus-client")
|
| 1002 | (version "0.22.1")
|
| 1003 | (source
|
| 1004 | (origin
|
| 1005 | (method url-fetch)
|
| 1006 | (uri (pypi-uri "prometheus_client" version))
|
| 1007 | (sha256
|
| 1008 | (base32 "0a0ds9svcfcc8bspikyfz9w46k8a9qsmk9dwc3mj3kw3wwqi63qr"))))
|
| 1009 | (build-system pyproject-build-system)
|
| 1010 | (arguments
|
| 1011 | (list
|
| 1012 | #:test-flags
|
| 1013 | #~(list "-k" (string-join
|
| 1014 | |
| 1015 | (list "not test_push_with_tls_auth_handler"
|
| 1016 | |
| 1017 | "test_namespace"
|
| 1018 | |
| 1019 | "test_working"
|
| 1020 | |
| 1021 | "test_working_584")
|
| 1022 | " and not "))))
|
| 1023 | (native-inputs
|
| 1024 | (list python-pytest
|
| 1025 | python-setuptools))
|
| 1026 | (home-page "https://github.com/prometheus/client_python")
|
| 1027 | (synopsis "Python client for the Prometheus monitoring system")
|
| 1028 | (description
|
| 1029 | "The @code{prometheus_client} package supports exposing metrics from
|
| 1030 | software written in Python, so that they can be scraped by a Prometheus
|
| 1031 | service.
|
| 1032 |
|
| 1033 | Metrics can be exposed through a standalone web server, or through Twisted,
|
| 1034 | WSGI and the node exporter textfile collector.")
|
| 1035 | (license license:asl2.0)))
|
| 1036 |
|
| 1037 | (define-public prometheus-node-exporter
|
| 1038 | (package
|
| 1039 | (name "prometheus-node-exporter")
|
| 1040 | (version "1.10.2")
|
| 1041 | (source
|
| 1042 | (origin
|
| 1043 | (method git-fetch)
|
| 1044 | (uri (git-reference
|
| 1045 | (url "https://github.com/prometheus/node_exporter")
|
| 1046 | (commit (string-append "v" version))))
|
| 1047 | (file-name (git-file-name name version))
|
| 1048 | (sha256
|
| 1049 | (base32 "10dqb97bv7v2xc31qjr7g8k7v0r1wq75xk846zbjgglw35nrpb2i"))))
|
| 1050 | (build-system go-build-system)
|
| 1051 | (arguments
|
| 1052 | (list
|
| 1053 | #:install-source? #f
|
| 1054 | #:build-flags
|
| 1055 | #~(list (string-append
|
| 1056 | "-ldflags="
|
| 1057 | "-X github.com/prometheus/common/version.Version=" #$version
|
| 1058 | " -X github.com/prometheus/common/version.Revision=0"
|
| 1059 | " -X github.com/prometheus/common/version.Branch=master"
|
| 1060 | " -X github.com/prometheus/common/version.BuildUser=guix"
|
| 1061 | " -X github.com/prometheus/common/version.BuildDate=n/a"))
|
| 1062 | #:embed-files #~(list "landing_page.css" "landing_page.html")
|
| 1063 | #:import-path "github.com/prometheus/node_exporter"
|
| 1064 | #:phases
|
| 1065 | #~(modify-phases %standard-phases
|
| 1066 | (add-before 'check 'pre-check
|
| 1067 | (lambda* (#:key tests? import-path #:allow-other-keys)
|
| 1068 | (with-directory-excursion (string-append "src/" import-path)
|
| 1069 | (invoke "./ttar" "-C" "collector/fixtures"
|
| 1070 | "-x" "-f" "collector/fixtures/sys.ttar")
|
| 1071 | (invoke "./ttar" "-C" "collector/fixtures"
|
| 1072 | "-x" "-f" "collector/fixtures/udev.ttar"))))
|
| 1073 | (add-after 'check 'post-check
|
| 1074 | (lambda* (#:key tests? import-path #:allow-other-keys)
|
| 1075 | (with-directory-excursion (string-append "src/" import-path)
|
| 1076 | (for-each delete-file-recursively
|
| 1077 | (list "collector/fixtures/sys"
|
| 1078 | "collector/fixtures/sys.ttar"
|
| 1079 | "collector/fixtures/udev"
|
| 1080 | "collector/fixtures/udev.ttar"))))))))
|
| 1081 | (propagated-inputs
|
| 1082 | (list go-github-com-alecthomas-kingpin-v2
|
| 1083 | go-github-com-beevik-ntp
|
| 1084 | go-github-com-coreos-go-systemd-v22
|
| 1085 | go-github-com-dennwc-btrfs
|
| 1086 | go-github-com-ema-qdisc
|
| 1087 | go-github-com-go-kit-log
|
| 1088 | go-github-com-godbus-dbus-v5
|
| 1089 | go-github-com-hashicorp-go-envparse
|
| 1090 | go-github-com-hodgesds-perf-utils
|
| 1091 | go-github-com-josharian-native
|
| 1092 | go-github-com-jsimonetti-rtnetlink
|
| 1093 | go-github-com-mattn-go-xmlrpc
|
| 1094 | go-github-com-mdlayher-ethtool
|
| 1095 | go-github-com-mdlayher-netlink
|
| 1096 | go-github-com-mdlayher-wifi
|
| 1097 | go-github-com-jsimonetti-rtnetlink-v2
|
| 1098 | go-github-com-opencontainers-selinux
|
| 1099 | go-github-com-prometheus-client-golang
|
| 1100 | go-github-com-prometheus-client-model
|
| 1101 | go-github-com-prometheus-common
|
| 1102 | go-github-com-prometheus-community-go-runit
|
| 1103 | go-github-com-prometheus-exporter-toolkit
|
| 1104 | go-github-com-prometheus-procfs
|
| 1105 | go-github-com-safchain-ethtool
|
| 1106 | go-golang-org-x-exp
|
| 1107 | go-golang-org-x-sys
|
| 1108 | go-howett-net-plist))
|
| 1109 | (home-page "https://github.com/prometheus/node_exporter")
|
| 1110 | (synopsis "Prometheus exporter for hardware and OS metrics")
|
| 1111 | (description
|
| 1112 | "Prometheus exporter for metrics exposed by *NIX kernels,
|
| 1113 | written in Go with pluggable metric collectors.")
|
| 1114 | (license license:asl2.0)))
|
| 1115 |
|
| 1116 | (define-public prometheus-postfix-exporter
|
| 1117 | (package
|
| 1118 | (name "prometheus-postfix-exporter")
|
| 1119 | (version "0.20.0")
|
| 1120 | (source
|
| 1121 | (origin
|
| 1122 | (method git-fetch)
|
| 1123 | (uri (git-reference
|
| 1124 | |
| 1125 | |
| 1126 | (url "https://github.com/Hsn723/postfix_exporter")
|
| 1127 | (commit (string-append "v" version))))
|
| 1128 | (file-name (git-file-name name version))
|
| 1129 | (sha256
|
| 1130 | (base32 "09p76wxkl07ad4mrbbf863zmjk506lssjqplqacxqhcbfjb3lvxm"))))
|
| 1131 | (build-system go-build-system)
|
| 1132 | (arguments
|
| 1133 | (list
|
| 1134 | #:install-source? #f
|
| 1135 | #:import-path "github.com/hsn723/postfix_exporter"
|
| 1136 | #:build-flags #~(list "-tags" "nosystemd,nodocker")
|
| 1137 | #:embed-files #~(list "landing_page.css" "landing_page.html")
|
| 1138 | #:test-flags #~(list "-tags" "nosystemd,nodocker")))
|
| 1139 | (native-inputs
|
| 1140 | (list go-github-com-alecthomas-kingpin-v2
|
| 1141 | go-github-com-coreos-go-systemd-v22
|
| 1142 | go-github-com-docker-docker
|
| 1143 | go-github-com-nxadm-tail
|
| 1144 | go-github-com-prometheus-client-golang
|
| 1145 | go-github-com-prometheus-client-model
|
| 1146 | go-github-com-prometheus-common
|
| 1147 | go-github-com-prometheus-exporter-toolkit
|
| 1148 | go-github-com-stretchr-testify
|
| 1149 | go-gopkg-in-tomb-v1
|
| 1150 | go-k8s-io-api
|
| 1151 | go-k8s-io-apimachinery
|
| 1152 | go-k8s-io-client-go
|
| 1153 | go-k8s-io-utils))
|
| 1154 | (home-page "https://github.com/hsn723/postfix_exporter")
|
| 1155 | (synopsis "Prometheus Postfix exporter")
|
| 1156 | (description
|
| 1157 | "Prometheus metrics exporter for @url{http://www.postfix.org/, the
|
| 1158 | Postfix mail server}. This exporter provides histogram metrics for the size
|
| 1159 | and age of messages stored in the mail queue. It extracts these metrics from
|
| 1160 | Postfix by connecting to a UNIX socket under @code{/var/spool}. It also
|
| 1161 | counts events by parsing Postfix's log entries, using regular expression
|
| 1162 | matching. The log entries are retrieved from the systemd journal, the Docker
|
| 1163 | logs, or from a log file. This package is built from a maintained fork of
|
| 1164 | original @url{https://github.com/kumina/postfix_exporter} project.")
|
| 1165 | (license license:asl2.0)))
|
| 1166 |
|
| 1167 | (define-public prometheus-postgres-exporter
|
| 1168 | (package
|
| 1169 | (name "prometheus-postgres-exporter")
|
| 1170 | (version "0.19.1")
|
| 1171 | (source
|
| 1172 | (origin
|
| 1173 | (method git-fetch)
|
| 1174 | (uri (git-reference
|
| 1175 | (url "https://github.com/prometheus-community/postgres_exporter")
|
| 1176 | (commit (string-append "v" version))))
|
| 1177 | (file-name (git-file-name name version))
|
| 1178 | (sha256
|
| 1179 | (base32 "10vjg5y5ycf921hn4sb8a0a5aibk09rwsp51ksix0cglhqnia5b7"))))
|
| 1180 | (build-system go-build-system)
|
| 1181 | (arguments
|
| 1182 | (list
|
| 1183 | #:install-source? #f
|
| 1184 | #:import-path "github.com/prometheus-community/postgres_exporter/cmd/postgres_exporter"
|
| 1185 | #:unpack-path "github.com/prometheus-community/postgres_exporter"
|
| 1186 | #:build-flags
|
| 1187 | #~(list (string-append
|
| 1188 | "-ldflags="
|
| 1189 | "-X github.com/prometheus/common/version.Version=" #$version
|
| 1190 | " -X github.com/prometheus/common/version.Revision=0"
|
| 1191 | " -X github.com/prometheus/common/version.Branch=master"
|
| 1192 | " -X github.com/prometheus/common/version.BuildUser=guix"
|
| 1193 | " -X github.com/prometheus/common/version.BuildDate=n/a"))
|
| 1194 | #:embed-files #~(list "landing_page.css" "landing_page.html")
|
| 1195 | |
| 1196 | #:test-subdirs #~(list "../../...")))
|
| 1197 | (native-inputs
|
| 1198 | (list go-github-com-alecthomas-kingpin-v2
|
| 1199 | go-github-com-blang-semver-v4
|
| 1200 | go-github-com-data-dog-go-sqlmock
|
| 1201 | go-github-com-lib-pq
|
| 1202 | go-github-com-prometheus-client-golang
|
| 1203 | go-github-com-prometheus-client-model
|
| 1204 | go-github-com-prometheus-common
|
| 1205 | go-github-com-prometheus-exporter-toolkit
|
| 1206 | go-github-com-smartystreets-goconvey
|
| 1207 | go-gopkg-in-check-v1
|
| 1208 | go-gopkg-in-yaml-v2
|
| 1209 | go-gopkg-in-yaml-v3))
|
| 1210 | (home-page "https://github.com/prometheus-community/postgres_exporter")
|
| 1211 | (synopsis "PostgreSQL Server Exporter")
|
| 1212 | (description "This package provides a Prometheus exporter for
|
| 1213 | @code{PostgreSQL} server metrics.")
|
| 1214 | (license license:asl2.0)))
|
| 1215 |
|
| 1216 | (define-public temper-exporter
|
| 1217 | |
| 1218 | |
| 1219 | (let ((commit "a87bbab19c05609d62d9e4c7941178700c1ef84d")
|
| 1220 | (revision "0"))
|
| 1221 | (package
|
| 1222 | (name "temper-exporter")
|
| 1223 | (version (git-version "0" revision commit))
|
| 1224 | (source (origin
|
| 1225 | (method git-fetch)
|
| 1226 | (uri (git-reference
|
| 1227 | (url "https://github.com/yrro/temper-exporter")
|
| 1228 | (commit commit)))
|
| 1229 | (file-name (git-file-name name version))
|
| 1230 | (sha256
|
| 1231 | (base32
|
| 1232 | "0jk3ydi8s14q5kyl9j3gm2zrnwlb1jwjqpg5vqrgkbm9jrldrabc"))))
|
| 1233 | (build-system pyproject-build-system)
|
| 1234 | (arguments
|
| 1235 | (list
|
| 1236 | |
| 1237 | #:test-flags #~(list "-k" "not test_collection")
|
| 1238 | #:phases
|
| 1239 | #~(modify-phases %standard-phases
|
| 1240 | (add-after 'unpack 'patch-setup.py
|
| 1241 | (lambda _
|
| 1242 | (substitute* "setup.py"
|
| 1243 | (("git_ref = .*\n")
|
| 1244 | "git_ref = ''\n"))))
|
| 1245 | (add-after 'install 'install-udev-rules
|
| 1246 | (lambda _
|
| 1247 | (install-file "debian/prometheus-temper-exporter.udev"
|
| 1248 | (string-append #$output
|
| 1249 | "/lib/udev/rules.d")))))))
|
| 1250 | (inputs (list python-prometheus-client python-pyudev))
|
| 1251 | (native-inputs (list python-pytest python-pytest-mock python-setuptools))
|
| 1252 | (home-page "https://github.com/yrro/temper-exporter")
|
| 1253 | (synopsis "Prometheus exporter for PCSensor TEMPer sensor devices")
|
| 1254 | (description
|
| 1255 | "This package contains a Prometheus exporter for the TEMPer sensor
|
| 1256 | devices.")
|
| 1257 | (license license:expat))))
|
| 1258 |
|
| 1259 | (define-public fswatch
|
| 1260 | (package
|
| 1261 | (name "fswatch")
|
| 1262 | (version "1.22.0")
|
| 1263 | (source (origin
|
| 1264 | (method git-fetch)
|
| 1265 | (uri (git-reference
|
| 1266 | (url "https://github.com/emcrisostomo/fswatch")
|
| 1267 | (commit version)))
|
| 1268 | (file-name (git-file-name name version))
|
| 1269 | (sha256
|
| 1270 | (base32
|
| 1271 | "0sxq5b5jd2skyclai854k9ksaa0c4476zqckvcwns8kdpzq4mxlc"))))
|
| 1272 | (build-system gnu-build-system)
|
| 1273 | (native-inputs
|
| 1274 | (list autoconf automake gettext-minimal libtool))
|
| 1275 | (arguments
|
| 1276 | (list #:configure-flags
|
| 1277 | #~(list "--disable-static")))
|
| 1278 | (synopsis "File system monitor")
|
| 1279 | (description "This package provides a file system monitor.")
|
| 1280 | (home-page "https://github.com/emcrisostomo/fswatch")
|
| 1281 | (license license:gpl3+)))
|
| 1282 |
|
| 1283 | (define-public collectd
|
| 1284 | (package
|
| 1285 | (name "collectd")
|
| 1286 | (version "5.12.0")
|
| 1287 | (source (origin
|
| 1288 | (method url-fetch)
|
| 1289 | (uri (string-append
|
| 1290 | "https://storage.googleapis.com/collectd-tarballs/collectd-"
|
| 1291 | version
|
| 1292 | ".tar.bz2"))
|
| 1293 | (sha256
|
| 1294 | (base32
|
| 1295 | "1mh97afgq6qgmpvpr84zngh58m0sl1b4wimqgvvk376188q09bjv"))
|
| 1296 | (patches (search-patches "collectd-5.11.0-noinstallvar.patch"
|
| 1297 | "collectd-5.11.0-python-3.11.patch"))))
|
| 1298 | (build-system gnu-build-system)
|
| 1299 | (arguments
|
| 1300 | `(#:configure-flags
|
| 1301 | (list
|
| 1302 | "--enable-python"
|
| 1303 | "--enable-sensors"
|
| 1304 | "--enable-smart"
|
| 1305 | "--localstatedir=/var"
|
| 1306 | "--sysconfdir=/etc"
|
| 1307 | "CFLAGS=-Wno-error=deprecated-declarations")
|
| 1308 | #:phases (modify-phases %standard-phases
|
| 1309 | (add-before 'configure 'autoreconf
|
| 1310 | (lambda _
|
| 1311 | |
| 1312 | (invoke "autoreconf" "-vfi"))))))
|
| 1313 | (inputs
|
| 1314 | (list
|
| 1315 | curl
|
| 1316 | rrdtool
|
| 1317 | yajl
|
| 1318 | zlib))
|
| 1319 | (native-inputs
|
| 1320 | (list
|
| 1321 | autoconf
|
| 1322 | automake
|
| 1323 | eudev
|
| 1324 | libatasmart
|
| 1325 | libtool
|
| 1326 | `(,lm-sensors "lib")
|
| 1327 | pkg-config
|
| 1328 | python-3))
|
| 1329 | (home-page "https://collectd.org/")
|
| 1330 | (synopsis "Collect system and application performance metrics periodically")
|
| 1331 | (description
|
| 1332 | "collectd gathers metrics from various sources such as the operating system,
|
| 1333 | applications, log files and external devices, and stores this information or
|
| 1334 | makes it available over the network. Those statistics can be used to monitor
|
| 1335 | systems, find performance bottlenecks (i.e., performance analysis) and predict
|
| 1336 | future system load (i.e., capacity planning).")
|
| 1337 | |
| 1338 | |
| 1339 | (license (list license:expat license:gpl2))))
|
| 1340 |
|
| 1341 | (define-public hostscope
|
| 1342 | (package
|
| 1343 | (name "hostscope")
|
| 1344 | (version "8.0")
|
| 1345 | (source (origin
|
| 1346 | (method url-fetch)
|
| 1347 | (uri (string-append
|
| 1348 | "http://www.maier-komor.de/hostscope/hostscope-V"
|
| 1349 | version ".tgz"))
|
| 1350 | (sha256
|
| 1351 | (base32
|
| 1352 | "0jw6yij8va0f292g4xkf9lp9sxkzfgv67ajw49g3vq42q47ld7cv"))))
|
| 1353 | (build-system gnu-build-system)
|
| 1354 | (inputs (list ncurses))
|
| 1355 | (arguments '(#:tests? #f)) |
| 1356 | (home-page "https://www.maier-komor.de/hostscope.html")
|
| 1357 | (properties `((release-monitoring-url . ,home-page)))
|
| 1358 | (synopsis
|
| 1359 | "System monitoring tool for multiple hosts")
|
| 1360 | (description
|
| 1361 | "HostScope displays key system metrics of Linux hosts, such as detailed
|
| 1362 | CPU load, speed and temperature, I/O rates of network interfaces, I/O rates of
|
| 1363 | disks, and user process summary information. All metrics are multicast on the
|
| 1364 | LAN, if wanted, and clients can switch between multiple hosts on the network.
|
| 1365 | Hostscope features a bridge to Influx DB. So Grafana can be used to visualize
|
| 1366 | the recorded data over time.")
|
| 1367 | (license license:gpl3+)))
|
| 1368 |
|
| 1369 | (define-public fatrace
|
| 1370 | (package
|
| 1371 | (name "fatrace")
|
| 1372 | (version "0.19.1")
|
| 1373 | (source
|
| 1374 | (origin
|
| 1375 | (method git-fetch)
|
| 1376 | (uri (git-reference
|
| 1377 | (url "https://github.com/martinpitt/fatrace")
|
| 1378 | (commit version)))
|
| 1379 | (file-name (git-file-name name version))
|
| 1380 | (sha256
|
| 1381 | (base32
|
| 1382 | "0lmr6bv6d2f1gnrsy34gaiamw6615m3y7gw21fkiv47hn0xydhlx"))))
|
| 1383 | (build-system gnu-build-system)
|
| 1384 | (arguments
|
| 1385 | (list
|
| 1386 | #:tests? #f |
| 1387 | |
| 1388 | #:phases
|
| 1389 | #~(modify-phases %standard-phases
|
| 1390 | (delete 'configure))
|
| 1391 | #:make-flags
|
| 1392 | #~(list (string-append "CC=" #$(cc-for-target))
|
| 1393 | (string-append "PREFIX=" #$output))))
|
| 1394 | (synopsis "File access events monitor")
|
| 1395 | (description "This package provides a utility to report system wide file
|
| 1396 | access events from all running processes. Its main purpose is to find
|
| 1397 | processes which keep waking up the disk unnecessarily and thus prevent some
|
| 1398 | power saving.")
|
| 1399 | (home-page "https://github.com/martinpitt/fatrace")
|
| 1400 | (license license:gpl3+)))
|
| 1401 |
|
| 1402 | (define-public pw
|
| 1403 | (package
|
| 1404 | (name "pw")
|
| 1405 | (version "2")
|
| 1406 | (source
|
| 1407 | (origin
|
| 1408 | (method git-fetch)
|
| 1409 | (uri (git-reference
|
| 1410 | (url "https://www.kylheku.com/git/pw")
|
| 1411 | (commit (string-append "pw-" version))))
|
| 1412 | (file-name (git-file-name name version))
|
| 1413 | (sha256
|
| 1414 | (base32 "1xn3qnzz48xan78cp83hfrcifrxx9lgnm14134qhyr5wvj7dk246"))))
|
| 1415 | (build-system gnu-build-system)
|
| 1416 | (arguments
|
| 1417 | (list #:tests? #f |
| 1418 | #:make-flags
|
| 1419 | #~(list (string-append "CC=" #$(cc-for-target))
|
| 1420 | (string-append "DESTDIR=" #$output))
|
| 1421 | #:phases
|
| 1422 | #~(modify-phases %standard-phases
|
| 1423 | (add-after 'unpack 'fix-makefile
|
| 1424 | (lambda _
|
| 1425 | (substitute* "Makefile"
|
| 1426 | (("/share/man/man1 \\\\") "/share/man/man1; \\"))))
|
| 1427 | (delete 'configure)
|
| 1428 | (add-before 'install 'make-install-dirs
|
| 1429 | (lambda _
|
| 1430 | (mkdir-p (string-append #$output "/bin"))
|
| 1431 | (mkdir-p (string-append #$output "/share/man/man1"))
|
| 1432 | (mkdir-p (string-append #$output "/share/man/man5")))))))
|
| 1433 | (home-page "https://www.kylheku.com/cgit/pw/")
|
| 1434 | (synopsis "Monitor recent lines of output from pipe")
|
| 1435 | (description
|
| 1436 | "@command{pw} is Pipe Watch, a utility that continuously reads lines of
|
| 1437 | text from a pipe or pipe-like source, passes them through a FIFO buffer, and
|
| 1438 | maintains a display based on the occasional sampling of the contents of the
|
| 1439 | FIFO buffer, with useful features such as triggering and filtering.
|
| 1440 |
|
| 1441 | With @command{pw} you can:
|
| 1442 |
|
| 1443 | @itemize
|
| 1444 | @item Interactively apply and remove filters on-the-fly, without interrupting
|
| 1445 | the source.
|
| 1446 |
|
| 1447 | @item Make recurring patterns in the stream appear to ``freeze'' on the
|
| 1448 | screen, using triggers.
|
| 1449 |
|
| 1450 | @item Prevent the overwhelming amount of output from a program from flooding
|
| 1451 | the terminal, while consuming all of that output so that the program isn't
|
| 1452 | blocked. @command{pw} can pause its display updates entirely.
|
| 1453 |
|
| 1454 | @item Juggle multiple shell background jobs that produce output, yet execute
|
| 1455 | indefinitely without blocking. When @command{pw} runs as part of a shell
|
| 1456 | background job, it continues to consume input, process filters and take
|
| 1457 | snapshots, without displaying anything. When put into the foreground again,
|
| 1458 | display resumes.
|
| 1459 | @end itemize")
|
| 1460 | (license license:bsd-2)))
|
| 1461 |
|
| 1462 | (define-public python-statsd
|
| 1463 | (package
|
| 1464 | (name "python-statsd")
|
| 1465 | (version "4.0.1")
|
| 1466 | (source
|
| 1467 | (origin
|
| 1468 | (method url-fetch)
|
| 1469 | (uri (pypi-uri "statsd" version))
|
| 1470 | (sha256
|
| 1471 | (base32 "0a6ilx68lxbynfm1slpaa87qs6mhrjm12bfjngvdma7y3fl3sxlr"))))
|
| 1472 | (build-system pyproject-build-system)
|
| 1473 | (arguments
|
| 1474 | (list
|
| 1475 | #:test-flags #~(list "statsd/tests.py")))
|
| 1476 | (native-inputs
|
| 1477 | (list python-pytest
|
| 1478 | python-setuptools
|
| 1479 | python-wheel))
|
| 1480 | (home-page "https://github.com/jsocol/pystatsd")
|
| 1481 | (synopsis "Simple StatsD client")
|
| 1482 | (description "StatsD is a friendly front-end to Graphite. This package
|
| 1483 | provides a simple Python client for the StatsD daemon.")
|
| 1484 | (license license:expat)))
|
| 1485 |
|
| 1486 | (define-public batsignal
|
| 1487 | (package
|
| 1488 | (name "batsignal")
|
| 1489 | (version "1.8.0")
|
| 1490 | (source (origin
|
| 1491 | (method git-fetch)
|
| 1492 | (uri (git-reference
|
| 1493 | (url "https://github.com/electrickite/batsignal")
|
| 1494 | (commit version)))
|
| 1495 | (file-name (git-file-name name version))
|
| 1496 | (sha256
|
| 1497 | (base32
|
| 1498 | "0l6j873l1l0al95zl9ihxzrmy9r11pfm269gydlx8pps4gdisy6a"))))
|
| 1499 | (build-system gnu-build-system)
|
| 1500 | (arguments
|
| 1501 | (list #:make-flags
|
| 1502 | #~(list (string-append "PREFIX=" #$output)
|
| 1503 | (string-append "CC=" #$(cc-for-target)))
|
| 1504 | #:phases
|
| 1505 | #~(modify-phases %standard-phases
|
| 1506 | (add-after 'unpack 'fix-cross-compile
|
| 1507 | (lambda _
|
| 1508 | (substitute* "Makefile"
|
| 1509 | (("pkg-config")
|
| 1510 | #$(pkg-config-for-target)))))
|
| 1511 | (delete 'configure)
|
| 1512 | (replace 'check
|
| 1513 | (lambda* (#:key tests? #:allow-other-keys)
|
| 1514 | (when tests?
|
| 1515 | (invoke "./batsignal" "-v")))))))
|
| 1516 | (inputs (list libnotify))
|
| 1517 | (native-inputs (list pkg-config))
|
| 1518 | (home-page "https://github.com/electrickite/batsignal")
|
| 1519 | (synopsis "Power monitoring tool")
|
| 1520 | (description
|
| 1521 | "This package provides a daemon that monitors device power levels,
|
| 1522 | notifying the user and optionally running a command when it reaches
|
| 1523 | user-configured power thresholds. This can be used to force powering off a
|
| 1524 | laptop when the battery gets below critical levels, instead of damaging the
|
| 1525 | battery.")
|
| 1526 | (license license:isc)))
|
| 1527 |
|
| 1528 | (define-public battop
|
| 1529 | (package
|
| 1530 | (name "battop")
|
| 1531 | (version "0.2.4")
|
| 1532 | (source
|
| 1533 | (origin
|
| 1534 | (method url-fetch)
|
| 1535 | (uri (crate-uri "battop" version))
|
| 1536 | (file-name (string-append name "-" version ".tar.gz"))
|
| 1537 | (sha256
|
| 1538 | (base32 "1f5d3y9f179aljp94bl3al45g6n2bfnhw5mdmffm2rr6hraa31kn"))))
|
| 1539 | (build-system cargo-build-system)
|
| 1540 | (inputs (cargo-inputs 'battop))
|
| 1541 | (home-page "https://github.com/svartalf/rust-battop")
|
| 1542 | (synopsis "Interactive battery viewer")
|
| 1543 | (description "@command{battop} is an interactive viewer, similar to
|
| 1544 | @command{top}, @command{htop} and other *top utilities, but showing the
|
| 1545 | (potentially multiple) batteries installed in a notebook.")
|
| 1546 | (license (list license:asl2.0 license:expat))))
|