summary refs log tree commit diff
path: root/gnu/packages/disk.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/disk.scm')
-rw-r--r--gnu/packages/disk.scm113
1 files changed, 104 insertions, 9 deletions
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index 818ca065b8..f9fe9c5989 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -24,6 +24,7 @@
 ;;; Copyright © 2021 Justin Veilleux <terramorpha@cock.li>
 ;;; Copyright © 2014, 2022 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022 Disseminate Dissent <disseminatedissent@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -267,6 +268,7 @@ tmpfs/ramfs filesystems.")
            perl
            python-wrapper
            util-linux))
+    (outputs '("out" "debug"))
     (home-page "https://www.gnu.org/software/parted/")
     (synopsis "Disk partition editor")
     (description
@@ -429,14 +431,14 @@ scheme.")
 (define-public ddrescue
   (package
     (name "ddrescue")
-    (version "1.26")
+    (version "1.27")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://gnu/ddrescue/ddrescue-"
                           version ".tar.lz"))
       (sha256
-       (base32 "07smgh9f2p90zgyyrddzjwaz0v8glh5d95qiv7yhv0frj0xcs4z5"))))
+       (base32 "1srj68c7q0r5m7rzv3km43ndcs7xjw053r336vjiakx4qnc0rj1q"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags (list (string-append "CXX=" ,(cxx-for-target)))))
@@ -587,11 +589,10 @@ and can dramatically shorten the lifespan of the drive if left unchecked.")
       ;; as ‘/dev/disk/by-id/’.
      `(#:tests? #f))
     (inputs
-     (list `(,util-linux "lib") parted glib gtkmm-3 libxml2))
+     (list `(,util-linux "lib") parted glib gtkmm-3 lvm2 libxml2))
     (native-inputs
      (list intltool
            itstool
-           lvm2 ; for tests
            yelp-tools
            pkg-config))
     (home-page "https://gparted.org/")
@@ -834,6 +835,46 @@ hierarchy.  It ships with @code{rifle}, a file launcher that is good at
 automatically finding out which program to use for what file type.")
     (license license:gpl3)))
 
+(define-public fff
+  (package
+   (name "fff")
+   (version "2.2")
+   (source (origin
+            (method git-fetch)
+            (uri (git-reference
+                  (url "https://github.com/dylanaraps/fff")
+                  (commit version)))
+            (file-name (git-file-name name version))
+            (sha256
+             (base32
+              "14ymdw6l6phnil0xf1frd5kgznaiwppcic0v4hb61s1zpf4wrshg"))))
+   (build-system gnu-build-system)
+   (inputs
+    (list bash
+          file))
+   (arguments
+    (list
+     #:tests? #f                       ; no tests
+     #:make-flags
+     #~(list
+        (string-append "PREFIX=" #$output))
+     #:phases
+     #~(modify-phases %standard-phases
+         (add-after 'unpack 'refer-to-inputs
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((file (assoc-ref inputs "file")))
+               (substitute* "fff"
+                 (("\\bfile [-\"]" match)
+                  (string-append file "/bin/" match))))))
+         (delete 'configure))))         ; no configure script
+   (home-page "https://github.com/dylanaraps/fff")
+   (synopsis "Simple file manager written in bash")
+   (description
+    "@command{fff} (fast file-manager) is a simple, blazing fast and minimal
+file manager for Linux, written in bash.  It only requires bash and coreutils,
+and its highly optimized now for efficient performance.")
+   (license license:expat)))
+
 (define-public volume-key
   (package
     (name "volume-key")
@@ -876,7 +917,7 @@ passphrases.")
 (define-public ndctl
   (package
     (name "ndctl")
-    (version "73")
+    (version "75")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -885,14 +926,19 @@ passphrases.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "19kp1ly74bj7gavs03q7caci0lqr0rsi5y45zx5m8in4h19xk1kb"))))
+                "0i3fmda285qnwnmkxzwji5ffz123yrq9dpcwzg922qpysir7zq40"))))
     (build-system meson-build-system)
     (arguments
+     ;; The test suite runs but SKIPs all tests: do not consider this tested!
      (list #:configure-flags
            #~(list (string-append "-Drootprefix=" #$output)
+                   (string-append "-Dlibdir=" #$output "/lib")
                    (string-append "-Dbashcompletiondir=" #$output
                                   "/share/bash-completion/completions")
                    (string-append "-Dsysconfdir=" #$output "/etc")
+                   (string-append "-Diniparserdir="
+                                  #$(this-package-input "iniparser")
+                                  "/include")
                    "-Dasciidoctor=disabled" ; use docbook-xsl instead
                    "-Dsystemd=disabled")
            #:phases
@@ -979,7 +1025,7 @@ to create devices with respective mappings for the ATARAID sets discovered.")
 (define-public libblockdev
   (package
     (name "libblockdev")
-    (version "2.27")
+    (version "2.28")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/storaged-project/"
@@ -987,7 +1033,7 @@ to create devices with respective mappings for the ATARAID sets discovered.")
                                   version "-1/libblockdev-" version ".tar.gz"))
               (sha256
                (base32
-                "05rm9h8v30rahr245jcw6if6b5g16mb5hnz7wl1shzip0wky3k3d"))))
+                "1x3xbgd2dyjhcqvyalpnrp727xidfxmaxgyyvv5gwx4aw90wijc2"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -1100,6 +1146,7 @@ on your file system and offers to remove it.  @command{rmlint} can find:
 (define-public lf
   (package
     (name "lf")
+    ;; When updating, remove go-github-com-gdamore-tcell-v2-2.3 from golang.scm.
     (version "27")
     (source (origin
               (method git-fetch)
@@ -1113,7 +1160,7 @@ on your file system and offers to remove it.  @command{rmlint} can find:
     (build-system go-build-system)
     (native-inputs
      (list go-github.com-mattn-go-runewidth go-golang-org-x-term
-           go-gopkg-in-djherbis-times-v1 go-github-com-gdamore-tcell-v2))
+           go-gopkg-in-djherbis-times-v1 go-github-com-gdamore-tcell-v2-2.3))
     (arguments
      `(#:import-path "github.com/gokcehan/lf"))
     (home-page "https://github.com/gokcehan/lf")
@@ -1454,3 +1501,51 @@ wrapper for disk usage querying and visualisation.")
 gone and to help you to clean it up.")
     (home-page "https://github.com/shundhammer/qdirstat")
     (license license:gpl2)))
+
+(define-public wipe
+  (package
+    (name "wipe")
+    (version "2.3.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/wipe/wipe/" version
+                                  "/wipe-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "180snqvh6k6il6prb19fncflf2jcvkihlb4w84sbndcv1wvicfa6"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list
+      #:tests? #f                       ;no tests
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-makefile
+            (lambda _
+              (substitute* "Makefile.in"
+                ;; The Makefile.in uses install -o root, but during the
+                ;; build there is no root user, so if we leave that in,
+                ;; the build fails with the following error:
+                ;; /gnu/[...]/install: invalid user ‘root’
+                (("-o root") "")
+                ;; It's up to the distribution to strip the binaries or
+                ;; not.
+                (("\\$\\(INSTALL_BIN\\) -s ")
+                 "$(INSTALL_BIN) "))))
+          (add-after 'unpack 'force-autotools-bootstrap
+            (lambda _
+              ;; Rebuild the build system scripts, as the ones in bundles are
+              ;; very old and do not support all the options used by Guix.
+              (delete-file "configure"))))))
+    (native-inputs (list autoconf automake libtool))
+    (home-page "https://wipe.sourceforge.net")
+    (synopsis "Secure file/block device wiping utility")
+    (description
+     "Wipe can erase files and block devices securely.  To work properly it
+relies on several assumptions like having the block device write the correct
+sectors, etc.  For files it also doesn't work on log-structured file systems
+such as F2FS, JFFS, LogFS, etc.  You should @emph{not} trust @command{wipe} to
+work as advertised until you have manually verified that all its assumption
+hold true on your system.  To overwrite data it uses the Mersenne Twister
+pseudo-random number generator (PRNG) that is seeded with @file{/dev/urandom}
+or, if unavailable, @file{/dev/random}.")
+    (license license:gpl2+)))