Subject: Re: bug#26030: [PATCH] gnu: Add rsnapshot.

From: Leo Famulari <[email-masked]>
Date: Wed, 8 Mar 2017 15:23:46 -0500

On Wed, Mar 08, 2017 at 08:08:56PM +0100, Thomas Danckaert wrote:
> Subject: [PATCH] gnu: Add rsnapshot.
> 
> * gnu/packages/backup.scm (rsnapshot): New variable.

Cool, the venerable rsnapshot!

> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "https://github.com/rsnapshot/rsnapshot/archive/"
> +                           version ".tar.gz"))
> +       (file-name (string-append name "-" version ".tar.gz"))
> +       (sha256 (base32
> +                "0rll7pvyyjdqiyc9chf2ingdv9qcf6s28zjb8q7znfgybcjd2wn4"))))
> +    (build-system gnu-build-system)
> +    (native-inputs
> +     `(("autoconf" ,autoconf)
> +       ("automake" ,automake)))

We should use the tarball from
<https://github.com/rsnapshot/rsnapshot/releases/download/1.4.2/rsnapshot-1.4.2.tar.gz>
instead, which is already bootstrapped. Then, we can leave out these
native-inputs.

The tarballs like 1.4.2.tar.gz are just directory snapshots
automatically generated by GitHub when you create a new tag. Often the
project will provide a "real" release tarball, as in this case.

> +    (inputs
> +     `(("perl" ,perl)
> +       ("rsync" ,rsync)
> +       ("openssh" ,openssh)))

The built package doesn't retain a reference to openssh. But, I
recommend not including openssh, even though there is a 'cmd_ssh' field
in the rsnapshot configuration file. Rsnapshot can work locally without
SSH, and users may want to use something besides OpenSSH.

> +    (synopsis "Incremental backup utility based on rsync")

I'd call it a "Deduplicating snapshot backup utility based on rsync",
but I admit this is a nit-pick, and you can ignore it :)

> +machines, and remote machines over ssh.  The code makes extensive use
> +of hard links whenever possible, to greatly reduce the disk space
> +required.")

I'd say, "To reduce the disk space required for each backup, rsnapshot
uses hard links to deduplicate identical files". This way, the reader
knows how the code uses hard links.

Can you send an updated patch?