gnu: Add envstore.
[jackhill/guix/guix.git] / gnu / packages / disk.scm
index 6a7fdcf..c7aa0dc 100644 (file)
@@ -1,5 +1,9 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012, 2013 Nikita Karetnikov <nikita@karetnikov.org>
+;;; Copyright © 2015 Mathieu Lirzin <mthl@gnu.org>
+;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2016 Tobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com>
+;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
-  #:use-module (gnu packages check)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages guile)
-  #:use-module ((gnu packages compression)
-                #:select (lzip)))
+  #:use-module (gnu packages compression))
 
 (define-public parted
   (package
     (name "parted")
-    (version "3.1")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (string-append "mirror://gnu/parted/parted-"
-                          version ".tar.xz"))
-      (sha256
-       (base32
-        "05fa4m1bky9d13hqv91jlnngzlyn7y4rnnyq6d86w0dg3vww372y"))))
+    (version "3.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnu/parted/parted-"
+                                  version ".tar.xz"))
+              (sha256
+               (base32
+                "1r3qpg3bhz37mgvp9chsaa3k0csby3vayfvz8ggsqz194af5i2w5"))))
     (build-system gnu-build-system)
-    (arguments `(#:configure-flags '("--disable-device-mapper")
-                 #:phases (alist-cons-before
-                           'configure 'fix-mkswap
-                           (lambda* (#:key inputs #:allow-other-keys)
-                             (let ((util-linux (assoc-ref inputs
-                                                          "util-linux")))
-                               (substitute*
-                                   "tests/t9050-partition-table-types.sh"
-                                 (("mkswap")
-                                  (string-append util-linux "/sbin/mkswap")))))
-                           %standard-phases)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after
+          'unpack 'fix-locales-and-python
+          (lambda* (#:key inputs #:allow-other-keys)
+            (substitute* "tests/t0251-gpt-unicode.sh"
+              (("C.UTF-8") "en_US.utf8")) ;not in Glibc locales
+            (substitute* "tests/msdos-overlap"
+              (("/usr/bin/python") (which "python"))))))))
     (inputs
-     ;; XXX: add 'lvm2'.
-     `(("check" ,check)
-
-       ;; With Readline 6.3, parted/ui.c fails to build because it uses the
-       ;; now undefined 'CPPFunction' type.
-       ("readline" ,readline-6.2)
-
+     `(("lvm2" ,lvm2)
+       ("readline" ,readline)
        ("util-linux" ,util-linux)))
     (native-inputs
-     `(("gettext" ,gnu-gettext)))
-    (home-page "http://www.gnu.org/software/parted/")
+     `(("gettext" ,gnu-gettext)
+       ;; For the tests.
+       ("perl" ,perl)
+       ("python" ,python-2)))
+    (home-page "https://www.gnu.org/software/parted/")
     (synopsis "Disk partition editor")
     (description
      "GNU Parted is a package for creating and manipulating disk partition
@@ -100,7 +100,7 @@ tables, and it understands a variety of different formats.")
 (define-public ddrescue
   (package
     (name "ddrescue")
-    (version "1.19")
+    (version "1.21")
     (source
      (origin
       (method url-fetch)
@@ -108,7 +108,7 @@ tables, and it understands a variety of different formats.")
                           version ".tar.lz"))
       (sha256
        (base32
-        "1f278w7i9sx45jk6fsw1kyzx743k3alx1c4w1q8sk05ckafhr3gd"))))
+        "1b71hb42lh33y9843nd1mxlwkk9qh9ajvnz6ivzd1jq9lav4x7ph"))))
     (build-system gnu-build-system)
     (home-page "http://www.gnu.org/software/ddrescue/ddrescue.html")
     (synopsis "Data recovery utility")
@@ -119,3 +119,88 @@ from one file to another, working to rescue data in case of read errors.  The
 program also includes a tool for manipulating its log files, which are used
 to recover data more efficiently by only reading the necessary blocks.")
     (license gpl3+)))
+
+(define-public dosfstools
+  (package
+    (name "dosfstools")
+    (version "3.0.28")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/" name "/" name
+                           "/releases/download/v" version "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1qkya6lald91c8nsf29jwnk0k5v42wlj24gacfdp3wpc8hq935gf"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags (list (string-append "PREFIX=" %output)
+                          "CC=gcc")
+       #:tests? #f  ;no tests
+       #:phases (modify-phases %standard-phases
+                  (delete 'configure))))
+    (home-page "https://github.com/dosfstools/dosfstools")
+    (synopsis "Utilities for making and checking MS-DOS FAT filesystems")
+    (description
+     "The dosfstools package includes the mkfs.fat and fsck.fat utilities,
+which respectively make and check MS-DOS FAT filesystems.")
+    (license gpl3+)))
+
+(define-public sdparm
+  (package
+    (name "sdparm")
+    (version "1.09")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://sg.danny.cz/sg/p/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0jakqyjwi72zqjzss04bally0xl0lc4710mx8da08vpmir1hfphg"))))
+    (build-system gnu-build-system)
+    (home-page "http://sg.danny.cz/sg/sdparm.html")
+    (synopsis "Provide access to SCSI device parameters")
+    (description
+     "Sdparm reads and modifies SCSI device parameters.  These devices can be
+SCSI disks, in which case the role of @command{sdparm} is similar to its
+namesake: the @command{hdparm} utility originally designed for ATA disks.
+However, @command{sdparm} can be used to access parameters on any device that
+uses a SCSI command set.  Such devices include CD/DVD drives (irrespective of
+transport), SCSI and ATAPI tape drives, and SCSI enclosures.  This utility can
+also send commands associated with starting and stopping the media, loading
+and unloading removable media and some other housekeeping functions.")
+    (license bsd-3)))
+
+(define-public idle3-tools
+  (package
+    (name "idle3-tools")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/idle3-tools/idle3-tools-"
+                           version ".tgz"))
+       (sha256
+        (base32
+         "00ia7xq9yldxyl9gz0mr4xa568nav14p0fnv82f2rbbkg060cy4p"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ;no test suite
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))
+       #:make-flags (list "CC=gcc"
+                          (string-append "manprefix=")
+                          (string-append "DESTDIR="
+                                         (assoc-ref %outputs "out")))))
+    (home-page "http://idle3-tools.sourceforge.net")
+    (synopsis "Change or disable Western Digital hard drives' Idle3 timer")
+    (description
+     "Idle3-tools provides a utility to get, set, or disable the Idle3 timer
+present in many Western Digital hard drives.  This timer is part of the
+\"IntelliPark\" feature that stops the disk when not in use.  Unfortunately,
+the default timer setting is not well suited to Linux or other *nix systems,
+and can dramatically shorten the lifespan of the drive if left unchecked.")
+    (license gpl3+)))