aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; 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 rrdtool)
  #:use-module (guix git-download)
  #:use-module (gnu packages)
  #:use-module (gnu packages algebra)
  #:use-module (gnu packages base)
  #:use-module (gnu packages fontutils)
  #:use-module (gnu packages glib)
  #:use-module (gnu packages groff)
  #:use-module (gnu packages gtk)
  #:use-module (gnu packages perl)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages python)
  #:use-module (gnu packages xml)
  #:use-module (guix build-system gnu)
  #:use-module (guix download)
  #:use-module (guix gexp)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages))

(define-public rrdtool
  (package
    (name "rrdtool")
    (version "1.8.0")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/oetiker/rrdtool-1.x")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "04dhygsp34dykrnbbcqni5f7hih0hzqbnj6d2sl439lqbx9k3q3b"))))
    (build-system gnu-build-system)
    (inputs
     (list cairo
           freetype
           glib
           libxml2
           pango
           python))
    (native-inputs
     (list groff
           pkg-config
           ;; For tests.
           bc
           perl                         ; will also build Perl bindings
           tzdata-for-tests))
    (arguments
     (list
      #:disallowed-references (list (gexp-input tzdata-for-tests))
      #:phases
      #~(modify-phases %standard-phases
          (add-before 'check 'prepare-test-environment
            (lambda* (#:key inputs #:allow-other-keys)
              (setenv "TZDIR"
                      (search-input-directory inputs "share/zoneinfo"))))
          (add-after 'install 'remove-native-input-references
            (lambda _
              (let ((examples (string-append #$output
                                             "/share/rrdtool/examples")))
                ;; Drop shebangs from examples to avoid depending on native-input
                ;; perl.  It's clear from context and extension how to run them.
                (substitute* (find-files examples "\\.pl$")
                  (("^#!.*") ""))))))))
    (home-page "https://oss.oetiker.ch/rrdtool/")
    (synopsis "Time-series data storage and display system")
    (description
     "The Round Robin Database Tool (RRDtool) is a system to store and display
time-series data (e.g. network bandwidth, machine-room temperature, server
load average).  It stores the data in Round Robin Databases (RRDs), a very
compact way that will not expand over time.  RRDtool processes the extracted
data to enforce a certain data density, allowing for useful graphical
representation of data values.")
    (license license:gpl2+))) ; with license exception that allows combining
                              ; with many other licenses.
>...This fixes 55c43108 commit that renamed input-hide-checkbox? into input-visibility-checkbox?. * gnu/installer/newt/partition.scm (prompt-luks-passwords): Rename input-hide-checkbox? into input-visibility-checkbox?. Mathieu Othacehe 2019-05-19installer: Fix Guile-Parted crash on i686....Fixes <https://bugs.gnu.org/35783>. This is a followup to 7d567af46b4e10ffafb1d0f76b524f5781460598. * gnu/installer/parted.scm (auto-partition!): Append ESP-PARTITION, when it is true, to the result of 'create-adjacent-partitions!'. * gnu/installer/newt/partition.scm (run-partioning-page): Remove 'initial-partitions' variable, and remove call to 'create-special-user-partitions'. Co-authored-by: Mathieu Othacehe <m.othacehe@gmail.com> Ludovic Courtès 2019-05-15installer: Rename 'auto-partition' to 'auto-partition!'....This is a followup to 7d567af46b4e10ffafb1d0f76b524f5781460598. * gnu/installer/parted.scm (create-adjacent-partitions): Rename to... (create-adjacent-partitions!): ... this. Make private. (auto-partition): Rename to... (auto-partition!): ... this. * gnu/installer/newt/partition.scm (run-partioning-page): Adjust accordingly. Ludovic Courtès 2019-05-15installer: Mount ESP once only....Fixes <https://bugs.gnu.org/35731>. * gnu/installer/newt/partition.scm (run-partioning-page)[run-page]: Introduce 'initial-partitions' variable. Previously we'd call 'disk-partitions' after 'auto-partition' had done its job of creating new partitions, and thus its result would contain the just-created partitions. Consequently, 'create-special-user-partitions' would return the ESP partition we just created, and thus it would appear twice in the list. Ludovic Courtès 2019-05-14installer: Add fat16....* gnu/installer/newt/partition.scm (run-fs-type-page): Add fat16. Danny Milosavljevic 2019-05-07installer: Add password 'hide' checkbox....* gnu/installer/newt/page.scm (run-input-page)[input-hide-checkbox?]: New parameter adding a checkbox to toggle password hiding. By default, the checkbox is active and the password is hence hided. * gnu/installer/newt/partition.scm (prompt-luks-passwords): Enable the previous parameter on both password input pages. * gnu/installer/newt/user.scm (run-root-password-page): Enable the previous parameter, (confirm-password): ditto, (run-user-add-page): add a checkbox to toggle password hiding. Mathieu Othacehe 2019-05-06installer: Shrink simple listboxes to their minimum height....* gnu/installer/newt/partition.scm (run-partioning-page): Pass #:listbox-height. (run-scheme-page): Likewise. (run-device-page): Likewise. * gnu/installer/newt/network.scm (run-technology-page): Likewise. * gnu/installer/newt/ethernet.scm (run-ethernet-page): Likewise. Ludovic Courtès 2019-05-06installer: Do not sort methods on the partitioning page....* gnu/installer/newt/partition.scm (run-partioning-page): Pass #:sort-listbox-items? #f so that methods always appear in the same order. Ludovic Courtès 2019-05-03installer: Do not sort the guided partition schemes in the selection page....Previously, the "Everything is one partition" entry would come first in English but it would be second in French. This change keeps it the first choice regardless of the language. * gnu/installer/newt/partition.scm (run-scheme-page): Pass #:sort-listbox-items? to 'run-scheme-page'. Ludovic Courtès 2019-04-28installer: Improve layout of the partitioning page....Previously the "listbox" would be unnecessarily high, leaving too little space for the German translation of the text above. * gnu/installer/newt/partition.scm (run-disk-page): Increase #:info-textbox-width and pass #:listbox-height. Ludovic Courtès 2019-04-27installer: Add missing i18n in the partitioning pages....* gnu/installer/newt/partition.scm (run-scheme-page): Add missing 'G_' for ITEMS. (run-partioning-page): Likewise. (run-partition-page): Move misplaced call to 'G_'. Ludovic Courtès 2019-04-25installer: Use FLAG-PASSWORD for the encryption passphrase confirmation....* gnu/installer/newt/partition.scm (prompt-luks-passwords) <password-confirm-page>: Pass #:input-flags to 'run-input-page'. Ludovic Courtès 2019-03-27installer: Ask for confirmation before formatting partitions....* gnu/installer/newt/page.scm (run-confirmation-page): New procedure. * gnu/installer/newt/partition.scm (draw-formatting-page): Call it. Ludovic Courtès 2019-01-17installer: Fix manual partitioning....* gnu/installer/newt/partition.scm (run-partioning-page): When METHOD is 'manual, use 'filter-map' on DEVICES, not 'map', since 'disk-new' can return #f. Ludovic Courtès 2019-01-17installer: "formating" → "formatting"....* gnu/installer/newt/partition.scm, gnu/installer/parted.scm: Replace "formating" with "formatting". Ludovic Courtès 2019-01-17installer: partition: Add encryption password confirmation....* gnu/installer/newt/partition.scm (prompt-luks-passwords): Add password confirmation page. Mathieu Othacehe 2019-01-17installer: Remove debug popup....* gnu/installer/newt/partition.scm (run-partioning-page): Remove debug partition popup. Mathieu Othacehe 2019-01-17installer: Rename "Ok" buttons to "OK"....* gnu/installer/newt/page.scm: s/Ok/OK/. * gnu/installer/newt/partition.scm: Ditto. * gnu/installer/newt/user.scm: Ditto. Mathieu Othacehe 2019-01-17installer: Various renamins follow-up....s/path/file and s/crypt/encrypt. * gnu/installer/newt/partition.scm: Apply renamings. * gnu/installer/parted.scm: Ditto. Mathieu Othacehe 2019-01-17installer: Various renamings....1. s/partitionment/partitioning/ 2. s/crypted/encrypted/ * gnu/installer.scm (installer-steps): Apply renamings. * gnu/installer/newt/partition.scm (run-disk-page): ditto, * gnu/installer/parted.scm (auto-partition): ditto, (luks-format-and-open): ditto, (luks-close): ditto, (user-partitions->configuration): ditto. Mathieu Othacehe 2019-01-17installer: partionment: Add encryption support....* gnu/installer.scm (set-installer-path): Add cryptsetup. * gnu/installer/newt/partition.scm (prompt-luks-passwords): New procedure, (run-partioning-page): Add the possibility to set encryption to "On" on a partition and choose a label, add a new partition scheme: "Guided - using the entire disk with encryption", prompt for encryption passwords before proceeding to formating. * gnu/installer/parted.scm (<user-partition>)[crypt-label], [crypt-password]: New fields, (partition-description): add the encryption label, (user-partition-description): add an encryption field, (auto-partition): add two partitioning schemes: entire-crypted-root and entire-crypted-root-home, (call-with-luks-key-file): new procedure, (user-partition-upper-path): new procedure, (luks-format-and-open): new procedure, (luks-close): new procedure, (format-user-partitions): format and open luks partitions before creating file-system. (mount-user-partitions): use the path returned by user-partition-upper-path, (umount-user-partitions): close the luks partitions, (user-partition->file-system): set device field to label for luks partitions and to uuid for the rest, (user-partition->mapped-device): new procedure, (user-partitions->configuration): add mapped-devices field. Mathieu Othacehe 2019-01-17installer: partition: Fix typo....* gnu/installer/newt/partition.scm (run-disk-page): Fix typo. Mathieu Othacehe 2019-01-17installer: partition: Precise when using Manual/Guided partionment....* gnu/installer/newt/partition.scm (run-disk-page)[guided?]: New argument. Use guided? to determine if we are proceeding to a guided or a manuel partitioning and precise it the title and info-text. Mathieu Othacehe 2019-01-17installer: Make sure every sentence is dot terminated....gnu/installer/newt/hostname.scm: Finish sentences by a dot. gnu/installer/newt/network.scm: Ditto. gnu/installer/newt/page.scm: Ditto. gnu/installer/newt/partition.scm: Ditto. gnu/installer/newt/user.scm: Ditto. gnu/installer/newt/wifi.scm: Ditto. Mathieu Othacehe 2019-01-17installer: partition: Differenciate Back button from Exit button....* gnu/installer/newt/partition.scm (run-label-page): Pass the button text as an argument, (run-disk-page): Call run-label-page with the appropriate button text. Mathieu Othacehe 2019-01-17installer: Turn "Cancel" buttons into "Exit" buttons....This change and previous ones were, Suggested-by: Thorsten Wilms <t_w_@freenet.de> here: https://lists.gnu.org/archive/html/guix-devel/2018-11/msg00330.html gnu/installer/newt/ethernet.scm: Turn cancel into exit. gnu/installer/newt/final.scm: Ditto. gnu/installer/newt/keymap.scm: Ditto. gnu/installer/newt/locale.scm: Ditto. gnu/installer/newt/network.scm: Ditto. gnu/installer/newt/page.scm: Ditto. gnu/installer/newt/partition.scm: Ditto. gnu/installer/newt/services.scm: Ditto. gnu/installer/newt/timezone.scm: Ditto. gnu/installer/newt/user.scm: Ditto. gnu/installer/newt/wifi.scm: Ditto. Mathieu Othacehe 2019-01-17installer: Add partitioning support....* gnu/installer.scm (installer-steps): Add partitioning step. * gnu/installer/newt.scm (newt-installer): Add partition-page field. * gnu/installer/newt/partition.scm: New file. * gnu/installer/parted.scm: New file. * gnu/installer/record (installer): New partition-page field. * gnu/local.mk (GNU_SYSTEM_MODULES): Add new files. * po/guix/POTFILES.in: Add new files. Mathieu Othacehe