123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446 |
- (define-module (gnu packages disk)
- #:use-module (gnu packages)
- #:use-module (gnu packages autotools)
- #:use-module (gnu packages base)
- #:use-module (gnu packages bash)
- #:use-module (gnu packages c)
- #:use-module (gnu packages check)
- #:use-module (gnu packages compression)
- #:use-module (gnu packages crypto)
- #:use-module (gnu packages cryptsetup)
- #:use-module (gnu packages databases)
- #:use-module (gnu packages docbook)
- #:use-module (gnu packages documentation)
- #:use-module (gnu packages elf)
- #:use-module (gnu packages file-systems)
- #:use-module (gnu packages file)
- #:use-module (gnu packages fontutils)
- #:use-module (gnu packages gettext)
- #:use-module (gnu packages glib)
- #:use-module (gnu packages gnome)
- #:use-module (gnu packages gnupg)
- #:use-module (gnu packages golang)
- #:use-module (gnu packages graphics)
- #:use-module (gnu packages gtk)
- #:use-module (gnu packages guile)
- #:use-module (gnu packages image)
- #:use-module (gnu packages linux)
- #:use-module (gnu packages ncurses)
- #:use-module (gnu packages nss)
- #:use-module (gnu packages perl)
- #:use-module (gnu packages perl-web)
- #:use-module (gnu packages pkg-config)
- #:use-module (gnu packages popt)
- #:use-module (gnu packages python)
- #:use-module (gnu packages python-xyz)
- #:use-module (gnu packages qt)
- #:use-module (gnu packages readline)
- #:use-module (gnu packages samba)
- #:use-module (gnu packages serialization)
- #:use-module (gnu packages sphinx)
- #:use-module (gnu packages sqlite)
- #:use-module (gnu packages swig)
- #:use-module (gnu packages terminals)
- #:use-module (gnu packages textutils)
- #:use-module (gnu packages tls)
- #:use-module (gnu packages vim)
- #:use-module (gnu packages w3m)
- #:use-module (gnu packages web)
- #:use-module (gnu packages xml)
- #:use-module (gnu packages xorg)
- #:use-module (guix build-system gnu)
- #:use-module (guix build-system glib-or-gtk)
- #:use-module (guix build-system go)
- #:use-module (guix build-system python)
- #:use-module (guix build-system trivial)
- #:use-module (guix build-system scons)
- #:use-module (guix download)
- #:use-module (guix gexp)
- #:use-module (guix git-download)
- #:use-module ((guix licenses) #:prefix license:)
- #:use-module (guix packages)
- #:use-module (guix utils))
- (define-public bcache-tools
-
- (let ((commit "096d205a9f1be8540cbc5a468c0da8203023de70")
- (revision "0"))
- (package
- (name "bcache-tools")
- (version (git-version "1.1" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url (string-append "https://git.kernel.org/pub/scm/"
- "linux/kernel/git/colyli/bcache-tools.git"))
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0r0vwg4vacz5zgsafk360xn7gi2scy01c79mkmjrdyxjfij5z3iy"))))
- (build-system gnu-build-system)
- (arguments
- `(#:tests? #f
- #:make-flags
- (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
- (string-append "UDEVLIBDIR=" (assoc-ref %outputs "out")
- "/lib/udev")
- (string-append "DRACUTLIBDIR=" (assoc-ref %outputs "out")
- "/lib/dracut")
- (string-append "CC=" ,(cc-for-target)))
- #:phases
- (modify-phases %standard-phases
- (delete 'configure)
- (add-before 'install 'fix-hard-coded-file-names
- (lambda _
-
- (substitute* "Makefile"
- (("/usr") "${PREFIX}"))
- #t))
- (add-before 'install 'create-target-directories
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out")))
- (for-each (lambda (dir)
- (mkdir-p (string-append out dir)))
- (list "/lib/udev/rules.d"
- "/sbin"
- "/share/man/man8"))
- #t))))))
- (native-inputs
- (list pkg-config))
- (inputs
- `(("util-linux:lib" ,util-linux "lib")))
- (home-page "https://bcache.evilpiepirate.org")
- (synopsis "Tools for the Linux kernel block layer cache")
- (description
- "This package contains user-space utilities to create and inspect bcache
- partitions. It's rather minimal as bcache is designed to work well without
- configuration on any system.
- Linux's @acronym{bcache, block layer cache} lets one or more fast block devices,
- such as flash-based @acronym{SSDs, solid state drives}, to act as a cache for
- one or more slower (and inexpensive) devices, such as hard disk drives or
- redundant storage arrays. In fact, bcache intends to be a superior alternative
- to battery-backed RAID controllers.
- Bcache is designed around the performance characteristics of SSDs and tries to
- minimize write inflation. It's file-system agnostic and does both write-through
- and write-back caching.")
- (license license:gpl2))))
- (define-public udevil
- (package
- (name "udevil")
- (version "0.4.4")
- (source
- (origin
- (method git-fetch)
- (uri
- (git-reference
- (url "https://github.com/IgnorantGuru/udevil")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0x9mjr9abvbxzfa9mrip5264iz1qxvsl01k3ybz95q4a7xl4jcb3"))))
- (build-system gnu-build-system)
- (arguments
- `(#:configure-flags
- (list
- "--disable-systemd"
- (string-append "--sysconfdir="
- (assoc-ref %outputs "out")
- "/etc")
-
-
-
- "--with-mount-prog=/run/setuid-programs/mount"
- "--with-umount-prog=/run/setuid-programs/umount"
- "--with-losetup-prog=/run/setuid-programs/losetup"
- "--with-setfacl-prog=/run/setuid-programs/setfacl")
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'remove-root-reference
- (lambda _
- (substitute* "src/Makefile.in"
- (("-o root -g root") ""))
- #t))
- (add-after 'unpack 'patch-udevil-reference
-
-
-
- (lambda _
- (substitute* "src/udevil.c"
- (("/usr/bin/udevil") "/run/setuid-programs/udevil"))
- (substitute* "src/devmon"
- (("`which udevil 2>/dev/null`") "/run/setuid-programs/udevil"))
- #t)))))
- (native-inputs
- (list intltool pkg-config))
- (inputs
- (list cifs-utils
- curlftpfs
- eudev
- fakeroot
- glib
- sshfs))
- (synopsis "Device and file system manager")
- (description "udevil is a command line program that mounts and unmounts
- removable devices without a password, shows device info, and monitors device
- changes. It can also mount ISO files, NFS, SMB, FTP, SSH and WebDAV URLs, and
- tmpfs/ramfs filesystems.")
- (home-page "https://ignorantguru.github.io/udevil/")
- (license license:gpl3+)))
- (define-public parted
- (package
- (name "parted")
- (version "3.4")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/parted/parted-"
- version ".tar.xz"))
- (sha256
- (base32
- "0hjkv84x1bs2qqyx1fnzjqyyqrhv7kpdbq9bgydmi99d8wi80ag1"))))
- (build-system gnu-build-system)
- (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"))
- (substitute* "tests/msdos-overlap"
- (("/usr/bin/python") (which "python")))
- #t)))))
- (inputs
- (list lvm2 readline
- `(,util-linux "lib")))
- (native-inputs
- `(("gettext" ,gettext-minimal)
-
- ("e2fsprogs" ,e2fsprogs)
- ("perl" ,perl)
- ("python-wrapper" ,python-wrapper)
- ("util-linux" ,util-linux)))
- (home-page "https://www.gnu.org/software/parted/")
- (synopsis "Disk partition editor")
- (description
- "GNU Parted is a package for creating and manipulating disk partition
- tables. It includes a library and command-line utility.")
- (license license:gpl3+)))
- (define-public fdisk
- (package
- (name "fdisk")
- (version "2.0.0a1")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/fdisk/gnufdisk-"
- version ".tar.gz"))
- (sha256
- (base32
- "1d8za79kw8ihnp2br084rgyjv9whkwp7957rzw815i0izx6xhqy9"))))
- (build-system gnu-build-system)
- (inputs
- `(("gettext" ,gettext-minimal)
- ("guile" ,guile-1.8)
- ("util-linux" ,util-linux "lib")
- ("parted" ,parted)))
-
-
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'skip-broken-header-probes
- (lambda _
- (substitute* "backend/configure"
- (("gnufdisk-common.h .*") "\n"))
- #t)))
- #:make-flags (list (string-append "CPPFLAGS="
- " -I../common/include "
- " -I../debug/include "
- " -I../exception/include"))))
- (home-page "https://www.gnu.org/software/fdisk/")
- (synopsis "Low-level disk partitioning and formatting")
- (description
- "GNU fdisk provides a GNU version of the common disk partitioning tool
- fdisk. fdisk is used for the creation and manipulation of disk partition
- tables, and it understands a variety of different formats.")
- (license license:gpl3+)))
- (define-public gpart
-
- (let ((commit "ec03350a01ad69708b5a3e2d47b8e002b0eba6c9")
- (revision "0"))
- (package
- (name "gpart")
- (version (git-version "0.3" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/baruch/gpart")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1dassswliaiwhhmx7yz540yyxgk53fvg672dbvgc5q0v6cqrh5jx"))))
- (build-system gnu-build-system)
- (arguments
- `(#:configure-flags
- (list (string-append "--docdir=" (assoc-ref %outputs "out") "/share/doc/"
- ,name "-" ,version))
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'skip-premature-configuration
- (lambda _
- (substitute* "autogen.sh"
- (("\\./configure") "")))))))
- (native-inputs
- (list autoconf automake))
- (home-page "https://github.com/baruch/gpart")
- (synopsis "Guess and recover PC-style partition tables")
- (description
- "Gpart tries to guess the partitions on a PC-style, MBR-partitioned disk
- after they have been inadvertently deleted or the primary partition table at
- sector 0 damaged. In both cases, the contents of these partitions still exist
- on the disk but the operating system cannot access them.
- Gpart ignores the partition table and scans each sector of the device or image
- file for several known file system and partition types. Only partitions which
- have been formatted in some way can be recognized. Several file system guessing
- modules are built in; more can be written and loaded at run time.
- The guessed table can be restored manually, for example with @command{fdisk},
- written to a file, or---if you firmly believe it's entirely correct---directly
- to disk.
- It should be stressed that gpart does a very heuristic job. It can easily be
- right in its guesswork but it can also be terribly wrong. Never believe its
- output without any plausibility checks.")
- (license license:gpl2+))))
- (define-public gptfdisk
- (package
- (name "gptfdisk")
- (version "1.0.8")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "mirror://sourceforge/gptfdisk/gptfdisk/"
- version "/gptfdisk-" version ".tar.gz"))
- (sha256
- (base32 "1py6klp1b7rni1qjj110snyyxafhx092carlii5vrnh4y1b9ilcm"))))
- (build-system gnu-build-system)
- (inputs
- `(("gettext" ,gettext-minimal)
- ("ncurses" ,ncurses)
- ("popt" ,popt)
- ("util-linux" ,util-linux "lib")))
- (arguments
- `(#:test-target "test"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-include-directory
- (lambda _
- (substitute* "gptcurses.cc"
- (("ncursesw/ncurses.h") "ncurses.h"))
- #t))
- (delete 'configure)
- (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/man8")))
- (install-file "gdisk" bin)
- (install-file "sgdisk" bin)
- (install-file "cgdisk" bin)
- (install-file "fixparts" bin)
- (install-file "cgdisk.8" man)
- (install-file "fixparts.8" man)
- (install-file "gdisk.8" man)
- (install-file "sgdisk.8" man)))))))
- (home-page "https://www.rodsbooks.com/gdisk/")
- (synopsis "Low-level GPT disk partitioning and formatting")
- (description "GPT fdisk (aka gdisk) is a text-mode partitioning tool that
- works on Globally Unique Identifier (@dfn{GUID}) Partition Table (@dfn{GPT})
- disks, rather than on the older Master Boot Record (@dfn{MBR}) partition
- scheme.")
- (license license:gpl2)))
- (define-public ddrescue
- (package
- (name "ddrescue")
- (version "1.25")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/ddrescue/ddrescue-"
- version ".tar.lz"))
- (sha256
- (base32 "0qqh38izl5ppap9a5izf3hijh94k65s3zbfkczd4b7x04syqwlyf"))))
- (build-system gnu-build-system)
- (arguments
- `(#:configure-flags (list (string-append "CXX=" ,(cxx-for-target)))))
- (home-page "https://www.gnu.org/software/ddrescue/ddrescue.html")
- (synopsis "Data recovery utility")
- (native-inputs (list lzip))
- (description
- "GNU ddrescue is a fully automated data recovery tool. It copies data
- 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 license:gpl3+)))
- (define-public dosfstools
- (package
- (name "dosfstools")
- (version "4.2")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/dosfstools/dosfstools")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1xygsixmmc9l7drxylggnzkqqiks8zmlsbhg3z723ii2ak94236s"))))
- (build-system gnu-build-system)
- (arguments
- `(#:configure-flags (list "--enable-compat-symlinks")
- #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
- (string-append "CC=" ,(cc-for-target)))))
- (native-inputs
- (list autoconf automake
-
- xxd))
- (home-page "https://github.com/dosfstools/dosfstools")
- (synopsis "Utilities for making and checking MS-DOS FAT file systems")
- (description
- "The dosfstools package includes the mkfs.fat and fsck.fat utilities,
- which respectively make and check MS-DOS FAT file systems.")
- (license license:gpl3+)))
- (define dosfstools/static
- (static-package
- (package (inherit dosfstools))))
- (define-public fatfsck/static
- (package
- (name "fatfsck-static")
- (version (package-version dosfstools))
- (build-system trivial-build-system)
- (source #f)
- (arguments
- `(#:modules ((guix build utils))
- #:builder
- (begin
- (use-modules (guix build utils))
- (let ((src (string-append (assoc-ref %build-inputs "dosfstools")
- "/sbin"))
- (exe "fsck.fat")
- (bin (string-append (assoc-ref %outputs "out") "/sbin")))
- (mkdir-p bin)
- (with-directory-excursion bin
- (copy-file (string-append src "/" exe) exe)
- (remove-store-references exe)
- (chmod exe #o555)
-
- (symlink exe "fsck.vfat")
- #t)))))
- (inputs (list dosfstools/static))
- (home-page (package-home-page dosfstools))
- (synopsis "Statically linked fsck.fat from dosfstools")
- (description "This package provides a statically-linked @command{fsck.fat}
- and a @command{fsck.vfat} compatibility symlink for use in an initrd.")
- (license (package-license dosfstools))))
- (define-public sdparm
- (package
- (name "sdparm")
- (version "1.12")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "http://sg.danny.cz/sg/p/"
- "sdparm-" version ".tar.xz"))
- (sha256
- (base32 "1gmdxr36allrgap2j4dv238d8awkj327ww0jjwpjwrpbvfpyzjf4"))))
- (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 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
- #: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 license:gpl3+)))
- (define-public gparted
- (package
- (name "gparted")
- (version "1.3.1")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "mirror://sourceforge/gparted/gparted/gparted-"
- version "/gparted-" version ".tar.gz"))
- (sha256
- (base32 "02g1s6hrhnias7kj241l0f72kllfhq6338mk2dmzjpmifinjxvjy"))))
- (build-system glib-or-gtk-build-system)
- (arguments
-
-
- `(#:tests? #f))
- (inputs
- (list `(,util-linux "lib") parted glib gtkmm-3 libxml2))
- (native-inputs
- (list intltool
- itstool
- lvm2
- yelp-tools
- pkg-config))
- (home-page "https://gparted.org/")
- (synopsis "Partition editor to graphically manage disk partitions")
- (description "GParted is a GNOME partition editor for creating,
- reorganizing, and deleting disk partitions. It uses libparted from the parted
- project to detect and manipulate partition tables. Optional file system tools
- permit managing file systems not included in libparted.")
-
- (license license:gpl2+)))
- (define-public testdisk
- (package
- (name "testdisk")
- (version "7.1")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://www.cgsecurity.org/testdisk-"
- version ".tar.bz2"))
- (sha256
- (base32
- "1zlh44w67py416hkvw6nrfmjickc2d43v51vcli5p374d5sw84ql"))))
- (build-system gnu-build-system)
- (inputs
- (list ntfs-3g
- `(,util-linux "lib")
- openssl
-
- zlib
- e2fsprogs
- libjpeg-turbo
- ncurses))
- (home-page "https://www.cgsecurity.org/wiki/TestDisk")
- (synopsis "Data recovery tool")
- (description "TestDisk is primarily designed to help recover lost
- partitions and/or make non-booting disks bootable again when these symptoms
- were caused by faulty software or human error (such as accidentally deleting a
- partition table). TestDisk can:
- @enumerate
- @item Fix partition table, recover deleted partition
- @item Recover FAT32 boot sector from its backup
- @item Rebuild FAT12/FAT16/FAT32 boot sector
- @item Fix FAT tables
- @item Rebuild NTFS boot sector
- @item Recover NTFS boot sector from its backup
- @item Fix MFT using MFT mirror
- @item Locate ext2/ext3/ext4 Backup SuperBlock
- @item Un-delete files from FAT, exFAT, NTFS and ext2 file systems
- @item Copy files from deleted FAT, exFAT, NTFS and ext2/ext3/ext4 partitions.
- @end enumerate
- This package also includes the @command{photorec} command, described below.
- PhotoRec is file data recovery software designed to recover lost files
- including video, documents and archives from hard disks, CD-ROMs, and lost
- pictures (thus the Photo Recovery name) from digital camera memory. PhotoRec
- ignores the file system and goes after the underlying data, so it will still
- work even if your media's file system has been severely damaged or
- reformatted. It can recover lost files from at least:
- @enumerate
- @item FAT
- @item NTFS
- @item exFAT
- @item ext2/ext3/ext4 file system
- @item HFS+
- @end enumerate")
- (license license:gpl2+)))
- (define-public pydf
- (package
- (name "pydf")
- (version "12")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "pydf" version))
- (sha256
- (base32
- "0f8ly8xyp93i2hm9c0qjqd4y86nz73axw2f09z01mszwmg1sfivz"))))
- (build-system python-build-system)
- (home-page "http://kassiopeia.juls.savba.sk/~garabik/software/pydf/")
- (synopsis "Colourised @command{df} clone")
- (description "All-singing, all-dancing, fully colourised @command{df} clone
- written in Python. It displays the amount of disk space available on the
- mounted file systems, using different colours for different types of file
- systems. Output format is completely customizable.")
- (license license:public-domain)))
- (define-public f3
- (package
- (name "f3")
- (version "8.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/AltraMayor/f3")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "17l5vspfcgfbkqg7bakp3gql29yb05gzawm8n3im30ilzdr53678"))))
- (build-system gnu-build-system)
- (arguments
- `(#:tests? #f
- #:make-flags (list (string-append "CC=" ,(cc-for-target))
- (string-append "PREFIX=" %output))
- #:phases
- (modify-phases %standard-phases
- (delete 'configure)
- (add-after 'build 'build-extra
- (lambda* (#:key make-flags #:allow-other-keys)
- (apply invoke "make" "extra" make-flags)))
- (add-after 'build 'install-extra
- (lambda* (#:key make-flags #:allow-other-keys)
- (apply invoke "make" "install-extra" make-flags))))))
- (inputs
- (list eudev parted))
- (home-page "http://oss.digirati.com.br/f3/")
- (synopsis "Test real capacity of flash memory cards and such")
- (description "F3 (Fight Flash Fraud or Fight Fake Flash) tests the full
- capacity of a flash card (flash drive, flash disk, pendrive). F3 writes to
- the card and then checks if can read it. It will assure you haven't been sold
- a card with a smaller capacity than stated.")
- (license license:gpl3+)))
- (define-public python-parted
- (package
- (name "python-parted")
- (version "3.11.7")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/dcantrell/pyparted")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "01193fmkss9icjvqpw85szpk8ld1pnha7p9kqm7mpwk6rc6gi2m3"))))
- (build-system python-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (delete 'check)
- (add-after 'install 'check
- (lambda* (#:key outputs inputs #:allow-other-keys)
- (add-installed-pythonpath inputs outputs)
-
- (substitute* "tests/test__ped_ped.py"
- (("\"/tmp/temp-device-\"") "self.path"))
- (invoke "python" "-m" "unittest" "discover" "-v")
- #t)))))
- (native-inputs
- (list e2fsprogs pkg-config))
- (propagated-inputs
- (list python-six))
- (inputs
- (list parted))
- (home-page "https://github.com/dcantrell/pyparted")
- (synopsis "Parted bindings for Python")
- (description "This package provides @code{parted} bindings for Python.")
- (license license:gpl2+)))
- (define-public duperemove
- (package
- (name "duperemove")
- (version "0.11.3")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/markfasheh/duperemove")
- (commit (string-append "v" version))))
- (sha256
- (base32 "0jwxmhadv2f1mx7gan4gk0xwrjr5g2xa71z1rp0knc1acbkhqdas"))
- (file-name (git-file-name name version))))
- (build-system gnu-build-system)
- (native-inputs
- (list pkg-config))
- (inputs
- (list glib sqlite))
- (arguments
- `(#:tests? #f
- #:phases
- (modify-phases %standard-phases
- (delete 'configure))
- #:make-flags (list (string-append "PREFIX=" %output)
- (string-append "CC=" ,(cc-for-target))
-
- (string-append "VER=" ,version))))
- (home-page "https://github.com/markfasheh/duperemove")
- (synopsis "Tools for de-duplicating file system data")
- (description "Duperemove is a simple tool for finding duplicated extents
- and submitting them for deduplication. When given a list of files it will
- hash their contents on a block by block basis and compare those hashes to each
- other, finding and categorizing blocks that match each other. When given the
- @option{-d} option, duperemove will submit those extents for deduplication
- using the Linux kernel extent-same @code{ioctl}.
- Duperemove can store the hashes it computes in a @dfn{hash file}. If given an
- existing hash file, duperemove will only compute hashes for those files which
- have changed since the last run. Thus you can run duperemove repeatedly on
- your data as it changes, without having to re-checksum unchanged data.
- Duperemove can also take input from the @command{fdupes} program.")
- (license license:gpl2)))
- (define-public ranger
- (package
- (name "ranger")
- (version "1.9.3")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://ranger.github.io/"
- "ranger-" version ".tar.gz"))
- (sha256
- (base32
- "0lfjrpv3z4h0knd3v94fijrw2zjba51mrp3mjqx2c98wr428l26f"))))
- (build-system python-build-system)
- (inputs
- (list w3m))
- (native-inputs
- (list which
-
- python-pytest))
- (arguments
- '(
- #:test-target "test_pytest"
- #:phases
- (modify-phases %standard-phases
- (add-after 'configure 'wrap-program
-
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (ranger (string-append out "/bin/ranger"))
- (w3m (assoc-ref inputs "w3m"))
- (w3mimgdisplay (string-append w3m
- "/libexec/w3m/w3mimgdisplay")))
- (wrap-program ranger
- `("W3MIMGDISPLAY_PATH" ":" prefix (,w3mimgdisplay)))
- #t)))
- (replace 'check
-
- (lambda* (#:key test-target #:allow-other-keys)
- (invoke "make" test-target))))))
- (home-page "https://ranger.github.io/")
- (synopsis "Console file manager")
- (description "ranger is a console file manager with Vi key bindings. It
- provides a minimalistic and nice curses interface with a view on the directory
- 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 volume-key
- (package
- (name "volume-key")
- (version "0.3.12")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://releases.pagure.org/volume_key/volume_key-"
- version ".tar.xz"))
- (sha256
- (base32
- "16rhfz6sjwxlmss1plb2wv2i3jq6wza02rmz1d2jrlnsq67p98vc"))))
- (build-system gnu-build-system)
- (native-inputs
- (list pkg-config swig python-3))
- (inputs
- `(("cryptsetup" ,cryptsetup)
- ("nss" ,nss)
- ("libblkid" ,util-linux "lib")
- ("lvm2" ,lvm2)
- ("glib" ,glib)
- ("gpgme" ,gpgme)))
- (arguments
- `(#:tests? #f
- #:phases
- (modify-phases %standard-phases
- (add-before 'configure 'patch-python.h-path
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((python (assoc-ref inputs "python")))
- (substitute* "Makefile.in"
- (("/usr/include/python") (string-append python "/include/python")))
- #t))))))
- (home-page "https://pagure.io/volume_key")
- (synopsis "Manipulate storage volume encryption keys")
- (description
- "This package provides a library for manipulating storage volume
- encryption keys and storing them separately from volumes to handle forgotten
- passphrases.")
- (license license:gpl2)))
- (define-public ndctl
- (package
- (name "ndctl")
- (version "72.1")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/pmem/ndctl")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1lvrhlad5n43bal053ihgbwr1k4ka2kscrjwr9rs5xnf2vy7204v"))))
- (build-system gnu-build-system)
- (arguments
- (list #:configure-flags
- #~(list "--disable-asciidoctor"
- "--without-systemd")
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'fix-version
-
- (lambda _
- (with-output-to-file "version"
- (lambda _ (display #$version)))))
- (add-after 'unpack 'patch-FHS-file-names
- (lambda _
- (substitute* "git-version-gen"
- (("/bin/sh") (which "sh")))
- (substitute* "git-version"
- (("/bin/bash") (which "bash"))))))
- #:make-flags
- #~(list (string-append "BASH_COMPLETION_DIR=" #$output
- "/share/bash-completion/completions"))))
- (native-inputs
- (list asciidoc
- automake
- autoconf
- bash-completion
- docbook-xsl
- libtool
- libxml2
- pkg-config
- xmlto
-
- which))
- (inputs
- (list eudev
- iniparser
- json-c
- keyutils
- kmod
- `(,util-linux "lib")))
- (home-page "https://github.com/pmem/ndctl")
- (synopsis "Manage the non-volatile memory device sub-system in the Linux kernel")
- (description
- "This package provides a utility library for managing the
- libnvdimm (non-volatile memory device) sub-system in the Linux kernel.")
-
-
-
- (license license:gpl2)))
- (define-public dmraid
- (package
- (name "dmraid")
- (version "1.0.0.rc16-3")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://people.redhat.com/~heinzm/sw/dmraid/src/dmraid-"
- version ".tar.bz2"))
- (sha256
- (base32
- "1n7vsqvh7y6yvil682q129d21yhb0cmvd5fvsbkza7ypd78inhlk"))))
- (build-system gnu-build-system)
- (inputs (list lvm2))
- (native-inputs (list which))
- (arguments
- `(#:tests? #f
-
-
-
- #:parallel-build? #f
- #:phases (modify-phases %standard-phases
- (add-before 'configure 'change-directory
- (lambda _
- (chdir (string-append ,version "/dmraid"))
- (substitute* "make.tmpl.in"
- (("/bin/sh") (which "sh")))
- #t)))
- #:configure-flags (list
-
- (string-append "LDFLAGS=-Wl,-rpath="
- (assoc-ref %outputs "out")
- "/lib"))))
- (home-page "https://people.redhat.com/~heinzm/sw/dmraid/")
- (synopsis "Device mapper RAID interface")
- (description
- "This software supports RAID device discovery, RAID set activation, creation,
- removal, rebuild and display of properties for ATARAID/DDF1 metadata.
- @command{dmraid} uses @file{libdevmapper} and the device-mapper kernel runtime
- to create devices with respective mappings for the ATARAID sets discovered.")
- (license license:gpl2+)))
- (define-public libblockdev
- (package
- (name "libblockdev")
- (version "2.26")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/storaged-project/"
- "libblockdev/releases/download/"
- version "-1/libblockdev-" version ".tar.gz"))
- (sha256
- (base32
- "0sg068jb87ljhn8yazrqxi6ri10ic2sh1lp6ikd2nqxc6l5y3h64"))))
- (build-system gnu-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-configuration-directory
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (substitute* "src/lib/blockdev.c"
- (("/etc/libblockdev/conf.d/" path) (string-append out path)))))))))
- (native-inputs
- `(("gobject-introspection" ,gobject-introspection)
- ("pkg-config" ,pkg-config)
- ("python" ,python-wrapper)
- ("util-linux" ,util-linux)))
- (inputs
- (list btrfs-progs
- cryptsetup
- dosfstools
- dmraid
- eudev
- glib
- kmod
- libbytesize
- libyaml
- lvm2
- mdadm
- ndctl
- nss
- parted
- volume-key
- xfsprogs))
- (home-page "https://github.com/storaged-project/libblockdev")
- (synopsis "Library for manipulating block devices")
- (description
- "libblockdev is a C library supporting GObject introspection for
- manipulation of block devices. It has a plugin-based architecture where each
- technology (like LVM, Btrfs, MD RAID, Swap...) is implemented in a separate
- plugin, possibly with multiple implementations (e.g. using LVM CLI or the new
- LVM D-Bus API).")
- (license license:lgpl2.1+)))
- (define-public rmlint
- (package
- (name "rmlint")
- (version "2.10.1")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/sahib/rmlint")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "15xfkcw1bkfyf3z8kl23k3rlv702m0h7ghqxvhniynvlwbgh6j2x"))))
- (build-system scons-build-system)
- (arguments
- `(#:scons ,scons-python2
- #:scons-flags (list (string-append "--prefix=" %output)
- (string-append "--actual-prefix=" %output))
- #:tests? #f
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'scons-propagate-environment
- (lambda* (#:key inputs #:allow-other-keys)
-
-
-
-
- (substitute* "lib/cmdline.c"
- (("const char \\*commands\\[\\] = \\{\"python3\", \"python\", NULL\\};")
- (string-append
- "const char *commands[] = {\""
- (assoc-ref inputs "python") "/bin/python"
- "\", \"python\", NULL};")))
-
-
-
-
-
- (substitute* "SConstruct"
- (("^env = Environment\\(.*\\)" all)
- (string-append
- all
- "\nenv['ENV']=os.environ"))))))))
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("glib:bin" ,glib "bin")
- ("python-sphinx" ,python-sphinx)))
- (inputs
- `(("python" ,python-wrapper)
- ("glib" ,glib)
- ("libelf" ,libelf)
- ("elfutils" ,elfutils)
- ("json-glib" ,json-glib)
- ("libblkid" ,util-linux "lib")))
- (home-page "https://rmlint.rtfd.org")
- (synopsis "Remove duplicates and other lint from the file system")
- (description "@command{rmlint} finds space waste and other broken things
- on your file system and offers to remove it. @command{rmlint} can find:
- @itemize
- @item duplicate files and duplicate directories,
- @item non-stripped binaries (i.e. binaries with debug symbols),
- @item broken symbolic links,
- @item empty files and directories,
- @item files with broken user and/or group ID.
- @end itemize\n")
- (license license:gpl3+)))
- (define-public lf
- (package
- (name "lf")
- (version "25")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/gokcehan/lf")
- (commit (string-append "r" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "014cybng6hc9y3ma74hpc1ac3rkz4ydflx8jbmvx81rdd08rzwz7"))))
- (build-system go-build-system)
- (native-inputs
- `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
- ("go-github.com-nsf-termbox-go" ,go-github.com-nsf-termbox-go)
- ("go-golang-org-x-term" ,go-golang-org-x-term)
- ("go-gopkg-in-djherbis-times-v1" ,go-gopkg-in-djherbis-times-v1)
- ("go-github-com-gdamore-tcell-v2" ,go-github-com-gdamore-tcell-v2)))
- (arguments
- `(#:import-path "github.com/gokcehan/lf"))
- (home-page "https://github.com/gokcehan/lf")
- (synopsis "Console file browser similar to Ranger")
- (description "lf (as in \"list files\") is a terminal file manager
- written in Go. It is heavily inspired by ranger with some missing and
- extra features. Some of the missing features are deliberately omitted
- since they are better handled by external tools.")
- (license license:expat)))
- (define-public xfe
- (package
- (name "xfe")
- (version "1.44")
- (source
- (origin
- (method url-fetch)
- (uri
- (string-append "mirror://sourceforge/xfe/xfe/" version "/"
- "xfe-" version ".tar.xz"))
- (sha256
- (base32 "1dihq03jqjllb69r78d9ihjjadi39v7sgzdf68qpxz5xhp8i8k2r"))))
- (build-system gnu-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-potfiles
- (lambda _
-
-
- (substitute* "po/POTFILES.in"
- (("src/help.h")
- (string-append "src/help.h\n"
- "intl/plural.c")))))
- (add-after 'unpack 'patch-bin-dirs
- (lambda* (#:key inputs #:allow-other-keys)
- (let* ((bash (assoc-ref inputs "bash"))
- (coreutils (assoc-ref inputs "coreutils"))
- (findutils (assoc-ref inputs "findutils"))
- (file-prog (assoc-ref inputs "file")))
- (with-directory-excursion "src"
- (substitute* '("FilePanel.cpp" "help.h" "SearchPanel.cpp"
- "startupnotification.cpp" "xfeutils.cpp"
- "../st/config.h")
- (("/bin/sh" file) (string-append bash file))
- (("/bin/ls" file) (string-append coreutils file))
- (("/usr(/bin/du)" _ file) (string-append coreutils file))
- (("/usr(/bin/sort)" _ file) (string-append coreutils file))
- (("/usr(/bin/cut)" _ file) (string-append coreutils file))
- (("/usr(/bin/xargs)" _ file) (string-append findutils file))
- (("/usr(/bin/file)" _ file) (string-append file-prog file))))
- #t)))
- (add-after 'unpack 'patch-share-dirs
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (share (string-append out "/share"))
- (xfe (string-append share "/xfe")))
- (with-directory-excursion "src"
- (substitute* '("foxhacks.cpp" "help.h" "xfedefs.h"
- "XFileExplorer.cpp")
- (("/(usr|opt)(/local)?/share") share)
- (("~/.config/xfe") xfe)))
- #t))))))
- (native-inputs
- (list intltool pkg-config))
- (inputs
- `(("bash" ,bash)
- ("coreutils" ,coreutils)
- ("file" ,file)
- ("findutils" ,findutils)
- ("fox" ,fox)
- ("freetype" ,freetype)
- ("x11" ,libx11)
- ("xcb" ,libxcb)
- ("xcb-util" ,xcb-util)
- ("xft" ,libxft)
- ("xrandr" ,libxrandr)))
- (synopsis "File Manager for X-Based Graphical Systems")
- (description "XFE (X File Explorer) is a file manager for X. It is based on
- the popular but discontinued, X Win Commander. It aims to be the file manager
- of choice for all light thinking Unix addicts!")
- (home-page "http://roland65.free.fr/xfe/")
- (license license:gpl2+)))
- (define-public hddtemp
- (package
- (name "hddtemp")
-
-
- (version "0.4.3")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/vitlav/hddtemp")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "04kylb2ka0jimi238zpfq1yii2caidpmj3ck51rvxz03y5lpq8fw"))))
- (build-system gnu-build-system)
- (arguments
- `(#:configure-flags (list (string-append
- "--with-db-path="
- (assoc-ref %outputs "out")
- "/share/hddtemp/hddtemp.db"))
- #:phases
- (modify-phases %standard-phases
- (add-before 'bootstrap 'delete-autogen.sh
- (lambda _
-
- (delete-file "autogen.sh")))
- (add-after 'install 'install-db
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (install-file "data/hddtemp.db"
- (string-append out "/share/hddtemp"))))))))
- (native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("gettext" ,gettext-minimal)))
- (home-page "https://github.com/vitlav/hddtemp")
- (synopsis "Report the temperature of hard drives from S.M.A.R.T. information")
- (description "@command{hddtemp} is a small utility that gives you the
- temperature of your hard drive by reading S.M.A.R.T. information (for drives
- that support this feature).")
- (license license:gpl2+)))
- (define-public memkind
- (package
- (name "memkind")
- (version "1.12.0")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/memkind/memkind")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1s52vl2jlrdc8nxnvf993x9mcag56qxcaniiijhmsv42a26hvjk4"))))
- (build-system gnu-build-system)
- (inputs
- (list
-
-
- ndctl numactl))
- (native-inputs
- (list autoconf automake libtool))
- (arguments
- `(#:configure-flags
- (list (string-append "--docdir=" (assoc-ref %outputs "out")
- "/share/doc/" ,name "-" ,version))
- #:tests? #f
- #:phases
- (modify-phases %standard-phases
- (add-before 'build 'autogen-jemalloc
- (lambda _
- (with-directory-excursion "jemalloc"
- (substitute* "Makefile.in"
- (("/bin/sh") (which "sh")))
- (invoke "autoconf")
- (substitute* "configure"
- (("/bin/sh") (which "sh")))))))))
- (home-page "https://github.com/memkind/memkind")
- (synopsis "Heap manager with memory kinds (for NUMA)")
- (description "This package provides a user-extensible heap manager
- built on top of jemalloc which enables control of memory characteristics
- and a partitioning of the heap between kinds of memory (for NUMA).")
- (license license:bsd-3)))
- (define-public mmc-utils
- (let ((commit "3969aa4804edb8aed7bcb3c958e49d0c7388b067")
- (revision "1"))
- (package
- (name "mmc-utils")
- (version (git-version "0.1" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://git.kernel.org/pub/scm/utils/mmc/mmc-utils.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0pvcm685x63afvp8795jd4vn4zs8psh8bs6j2yvk1kgrawpyk10g"))))
- (build-system gnu-build-system)
- (arguments
- `(#:tests? #f
- #:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out"))
- (string-append "CC=" ,(cc-for-target)))
- #:phases
- (modify-phases %standard-phases
-
- (delete 'configure)
-
- (add-after 'install 'install-doc
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (man1 (string-append out "/share/man/man1")))
- (install-file "man/mmc.1" man1)))))))
- (home-page
- "https://www.kernel.org/doc/html/latest/driver-api/mmc/mmc-tools.html")
- (synopsis "Configure MMC storage devices from userspace")
- (description "mmc-utils is a command-line tool for configuring and
- inspecting MMC storage devices from userspace.")
- (license license:gpl2))))
- (define-public bmaptools
- (package
- (name "bmaptools")
- (version "3.6")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/intel/bmap-tools")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "01xzrv5nvd2nvj91lz4x9s91y9825j9pj96z0ap6yvy3w2dgvkkl"))))
- (build-system python-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
-
- (invoke "nosetests" "-v"
- "--exclude" "test_bmap_helpers"))))))
- (native-inputs
- (list python-mock python-nose))
- (propagated-inputs
- (list python-six))
- (home-page "https://github.com/intel/bmap-tools")
- (synopsis "Create block map for a file or copy a file using block map")
- (description "Bmaptool is a tool for creating the block map (bmap) for a
- file and copying files using the block map. The idea is that large files,
- like raw system image files, can be copied or flashed a lot faster and more
- reliably with @code{bmaptool} than with traditional tools, like @code{dd} or
- @code{cp}.")
- (license license:gpl2)))
- (define-public duc
- (package
- (name "duc")
- (version "1.4.4")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/zevv/duc")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1i7ry25xzy027g6ysv6qlf09ax04q4vy0kikl8h0aq5jbxsl9q52"))))
- (build-system gnu-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out")))
- (substitute* "src/duc/cmd-ui.c"
- (("ncursesw/ncurses.h") "ncurses.h"))
- (substitute* "examples/index.cgi"
- (("/usr/local/bin/duc")
- (string-append out "/bin/duc"))))))
- (add-after 'install 'install-examples
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (doc (string-append out "/share/doc/" ,name "-" ,version)))
- (copy-recursively "examples" (string-append doc "/examples"))))))))
- (native-inputs
- (list autoconf automake libtool pkg-config))
- (inputs
- (list cairo pango tokyocabinet ncurses))
- (home-page "http://duc.zevv.nl")
- (synopsis "Library and suite of tools for inspecting disk usage")
- (description "Duc maintains a database of accumulated sizes of
- directories of the file system, and allows you to query this database with
- some tools, or create fancy graphs showing you where your bytes are.
- Duc comes with console utilities, ncurses and X11 user interfaces and a CGI
- wrapper for disk usage querying and visualisation.")
- (license license:lgpl3+)))
- (define-public qdirstat
- (package
- (name "qdirstat")
- (version "1.8")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/shundhammer/qdirstat")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "079rmy3j0442y5gjh6la6w1j6jaw83wklamrf19yxi20zsm99xs7"))))
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'configure
- (lambda* (#:key outputs #:allow-other-keys)
- (system* "qmake"
- (string-append "INSTALL_PREFIX="
- (assoc-ref outputs "out")))))
- (add-after 'install 'wrap
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (wrap-program (string-append
- (assoc-ref outputs "out")
- "/bin/qdirstat-cache-writer")
- `("PERL5LIB" ":" prefix
- (,(string-append
- (assoc-ref inputs "perl-uri-escape")
- "/lib/perl5/site_perl")))))))))
- (build-system gnu-build-system)
- (inputs
- (list bash-minimal
- perl
- perl-uri-escape
- qtbase-5
- zlib))
- (synopsis "Storage utilisation visualization tool")
- (description
- "QDirStat is a graphical application to show where your disk space has
- gone and to help you to clean it up.")
- (home-page "https://github.com/shundhammer/qdirstat")
- (license license:gpl2)))
|