From d232e02ecf8cb3559ecffdc09c014fa3817d7716 Mon Sep 17 00:00:00 2001 From: Vasile Dumitrascu Date: Wed, 28 Mar 2018 21:25:05 +0200 Subject: [PATCH] gnu: Add duperemove. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/disk.scm (duperemove): New variable. Co-authored-by: Ludovic Courtès --- gnu/packages/disk.scm | 46 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 96c3a56e7e..595000bf88 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2016, 2017 Marius Bakke ;;; Copyright © 2017 Hartmut Goebel ;;; Copyright © 2017 Stefan Reichör +;;; Copyright © 2018 Vasile Dumitrascu ;;; ;;; This file is part of GNU Guix. ;;; @@ -34,6 +35,7 @@ #:use-module (guix build-system python) #:use-module (gnu packages) #:use-module (gnu packages base) + #:use-module (gnu packages databases) #:use-module (gnu packages docbook) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) @@ -456,3 +458,47 @@ a card with a smaller capacity than stated.") (define-public python2-parted (package-with-python2 python-parted)) + +(define-public duperemove + (package + (name "duperemove") + (version "v0.11.beta4") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/markfasheh/duperemove/archive/" + version ".tar.gz")) + (sha256 + (base32 + "1h5nk03kflfnzihvn2rvfz1h623x1zpkn9hp29skd7n3f2bc5k7x")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("glib" ,glib) + ("sqlite" ,sqlite))) + (arguments + `(#:tests? #f ;no test suite + #:phases + (modify-phases %standard-phases + ;; no configure script + (delete 'configure)) + #:make-flags (list (string-append "PREFIX=" %output) + "CC=gcc"))) + (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)))