;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019 Alex Vong <alexvong1995@gmail.com>
+;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
(define-public duplicity
(package
(name "duplicity")
- (version "0.7.18.1")
+ (version "0.7.19")
(source
(origin
(method url-fetch)
"-series/" version "/+download/duplicity-"
version ".tar.gz"))
(sha256
- (base32
- "17c0203y5qz9w8iyhs26l44qf6a1vp26b5ykz1ypdr2kv6g02df9"))))
+ (base32 "0ag9dknslxlasslwfjhqgcqbkb1mvzzx93ry7lch2lfzcdd91am6"))))
(build-system python-build-system)
(native-inputs
`(("util-linux" ,util-linux) ; setsid command, for the tests
`(("lockfile" ,python2-lockfile)
("urllib3" ,python2-urllib3)))
(inputs
- `(("librsync" ,librsync)
+ `(("librsync" ,librsync-0.9)
("lftp" ,lftp)
("gnupg" ,gnupg) ; gpg executable needed
("util-linux" ,util-linux) ; for setsid
`(#:configure-flags
`(,(string-append "--sbindir=" (assoc-ref %outputs "out") "/bin"))
#:tests? #f))
- (home-page "http://archive.miek.nl/projects/hdup/index.html")
+ (home-page (string-append "http://web.archive.org/web/20150925223424/"
+ "http://archive.miek.nl/projects/hdup/index.html"))
(synopsis "Simple incremental backup tool")
(description
"Hdup2 is a backup utility, its aim is to make backup really simple. The
(define-public libarchive
(package
(name "libarchive")
- (replacement libarchive-3.3.3)
- (version "3.3.2")
+ (version "3.4.0")
(source
(origin
(method url-fetch)
- (uri (string-append "https://libarchive.org/downloads/libarchive-"
- version ".tar.gz"))
- (patches (search-patches "libarchive-CVE-2017-14166.patch"
- "libarchive-CVE-2017-14502.patch"))
+ (uri (list (string-append "https://libarchive.org/downloads/libarchive-"
+ version ".tar.gz")
+ (string-append "https://github.com/libarchive/libarchive"
+ "/releases/download/v" version "/libarchive-"
+ version ".tar.gz")))
(sha256
(base32
- "1km0mzfl6in7l5vz9kl09a88ajx562rw93ng9h2jqavrailvsbgd"))))
+ "0pl25mmz1b1cnwf35kxmygyy9g7z7hslxbx329a9yx8csh7dahw6"))))
(build-system gnu-build-system)
(inputs
- `(("zlib" ,zlib)
- ("nettle" ,nettle)
- ("lzo" ,lzo)
- ("bzip2" ,bzip2)
+ `(("bzip2" ,bzip2)
("libxml2" ,libxml2)
- ("xz" ,xz)))
+ ("lzo" ,lzo)
+ ("nettle" ,nettle)
+ ("xz" ,xz)
+ ("zlib" ,zlib)
+ ("zstd" ,zstd "lib")))
(arguments
- `(#:phases
+ `(#:configure-flags '("--disable-static")
+ #:phases
(modify-phases %standard-phases
(add-before 'build 'patch-pwd
(lambda _
(("/bin/pwd") (which "pwd")))
#t))
(replace 'check
- (lambda _
- ;; XXX: The test_owner_parse, test_read_disk, and
- ;; test_write_disk_lookup tests expect user 'root' to exist, but
- ;; the chroot's /etc/passwd doesn't have it. Turn off those tests.
- ;;
- ;; The tests allow one to disable tests matching a globbing pattern.
- (invoke "make" "libarchive_test" "bsdcpio_test" "bsdtar_test")
- ;; XXX: This glob disables too much.
- (invoke "./libarchive_test" "^test_*_disk*")
- (invoke "./bsdcpio_test" "^test_owner_parse")
- (invoke "./bsdtar_test")))
+ (lambda* (#:key (tests? #t) #:allow-other-keys)
+ (if tests?
+ ;; XXX: The test_owner_parse, test_read_disk, and
+ ;; test_write_disk_lookup tests expect user 'root' to
+ ;; exist, but the chroot's /etc/passwd doesn't have
+ ;; it. Turn off those tests.
+ ;;
+ ;; XXX: Adjust test that fails with zstd 1.4.1
+ ;; because the default options compresses two bytes
+ ;; better than this test expects.
+ ;; https://github.com/libarchive/libarchive/issues/1226
+ (begin
+ (substitute* "libarchive/test/test_write_filter_zstd.c"
+ (("compression-level\", \"6\"")
+ "compression-level\", \"7\""))
+
+ ;; The tests allow one to disable tests matching a globbing pattern.
+ (invoke "make"
+ "libarchive_test"
+ "bsdcpio_test"
+ "bsdtar_test")
+
+ ;; XXX: This glob disables too much.
+ (invoke "./libarchive_test" "^test_*_disk*")
+ (invoke "./bsdcpio_test" "^test_owner_parse")
+ (invoke "./bsdtar_test"))
+ ;; Tests may be disabled if cross-compiling.
+ (format #t "Test suite not run.~%"))))
(add-after 'install 'add--L-in-libarchive-pc
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(libxml2 (assoc-ref inputs "libxml2"))
(xz (assoc-ref inputs "xz"))
(zlib (assoc-ref inputs "zlib"))
+ (zstd (assoc-ref inputs "zstd"))
(bzip2 (assoc-ref inputs "bzip2")))
- (substitute* (string-append lib "/pkgconfig/libarchive.pc")
+ ;; Embed absolute references to these inputs to avoid propagation.
+ (substitute* (list (string-append lib "/pkgconfig/libarchive.pc")
+ (string-append lib "/libarchive.la"))
(("-lnettle")
(string-append "-L" nettle "/lib -lnettle"))
(("-lxml2")
(string-append "-L" xz "/lib -llzma"))
(("-lz")
(string-append "-L" zlib "/lib -lz"))
+ (("-lzstd")
+ (string-append "-L" zstd "/lib -lzstd"))
(("-lbz2")
(string-append "-L" bzip2 "/lib -lbz2")))
- #t))))
-
- ;; libarchive/test/test_write_format_gnutar_filenames.c needs to be
- ;; compiled with C99 or C11 or a gnu variant.
- #:configure-flags '("CFLAGS=-O2 -g -std=c99")))
+ #t))))))
(home-page "https://libarchive.org/")
(synopsis "Multi-format archive and compression library")
(description
random access nor for in-place modification.")
(license license:bsd-2)))
-(define-public libarchive-3.3.3
- (package
- (inherit libarchive)
- (version "3.3.3")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "https://libarchive.org/downloads/libarchive-"
- version ".tar.gz"))
- (patches (search-patches "libarchive-CVE-2018-1000877.patch"
- "libarchive-CVE-2018-1000878.patch"
- "libarchive-CVE-2018-1000880.patch"))
- (sha256
- (base32
- "0bhfncid058p7n1n8v29l6wxm3mhdqfassscihbsxfwz3iwb2zms"))))))
-
(define-public rdup
(package
(name "rdup")
(version "1.1.15")
(source
(origin
- (method url-fetch)
- (file-name (string-append name "-" version ".tar.gz"))
- (uri (string-append "https://github.com/miekg/rdup/archive/"
- version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/miekg/rdup.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32
- "1jr91hgcf0rrpanqlwws72ql9db6d6grs2i122ki1s4bx0vqqyvq"))))
+ (base32 "0bzyv6qmnivxnv9nw7lnfn46k0m1dlxcjj53zcva6v8y8084l1iw"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
;; For tests.
("dejagnu" ,dejagnu)))
(inputs
+ ;; XXX Compiling with nettle (encryption) support requires patching out
+ ;; -Werror from GNUmakefile.in. Then, rdup-tr-{en,de}crypt tests fail:
+ ;; free(): invalid pointer
+ ;; ** rdup-tr: SIGPIPE received, exiting
`(("glib" ,glib)
("pcre" ,pcre)
("libarchive" ,libarchive)
- ("mcrypt" ,mcrypt)
- ("nettle" ,nettle)))
+ ("mcrypt" ,mcrypt)))
(arguments
`(#:parallel-build? #f ;race conditions
#:phases
;; Avoid frivolous dependency on ‘which’ with a shell builtin.
(("which") "command -v"))
#t))
+ (add-before 'check 'disable-encryption-tests
+ (lambda _
+ (for-each delete-file
+ (list "testsuite/rdup/rdup.rdup-tr-crypt.exp"
+ "testsuite/rdup/rdup.rdup-tr-decrypt.exp"
+ "testsuite/rdup/rdup.rdup-tr-encrypt.exp"))
+ #t))
(add-before 'check 'pre-check
(lambda _
(setenv "HOME" (getcwd))
"0miklk4bqblpyzh1bni4x6lqn88fa8fjn15x1k1n8bxkx60nlymd"))))
(build-system gnu-build-system)
(inputs
- `(("librsync" ,librsync)))
+ `(("librsync" ,librsync-0.9)))
(arguments
`(#:make-flags `(,(string-append "PREFIX=" (assoc-ref %outputs "out"))
"CC=gcc")
(build-system python-build-system)
(inputs
`(("python" ,python-2)
- ("librsync" ,librsync)))
+ ("librsync" ,librsync-0.9)))
(arguments
`(#:python ,python-2
#:tests? #f))
(define-public borg
(package
(name "borg")
- (version "1.1.9")
+ (version "1.1.10")
(source
(origin
(method url-fetch)
(uri (pypi-uri "borgbackup" version))
(sha256
- (base32
- "0x95nhv4h34m8cxycbwc4xdz350saaxlgh727b23bgn4ci7gh3vx"))
+ (base32 "1pp70p4n5kamvcbl4d8021ggrxhyykmg9isjg4yd3wags8b19d7g"))
(modules '((guix build utils)))
(snippet
'(begin
;; Remove bundled shared libraries.
(with-directory-excursion "src/borg/algorithms"
(for-each delete-file-recursively
- (list "blake2" "lz4" "zstd")))
+ (list "blake2" "lz4" "msgpack" "zstd")))
+ ;; Purge some msgpack references from setup.py or the resulting
+ ;; sources will be unbuildable.
+ (substitute* "setup.py"
+ ((".*Extension\\('borg\\.algorithms\\.msgpack\\..*") "")
+ (("msgpack_packer_source, msgpack_unpacker_source") ""))
#t))))
(build-system python-build-system)
(arguments
;; HOME=/homeless-shelter.
(setenv "HOME" "/tmp")
#t)))
+ (add-after 'unpack 'use-system-msgpack
+ (lambda _
+ (substitute* "src/borg/helpers.py"
+ (("prefer_system_msgpack = False")
+ "prefer_system_msgpack = True"))
+ #t))
;; The tests need to be run after Borg is installed.
(delete 'check)
(add-after 'install 'check
(native-inputs
`(("python-cython" ,python-cython)
("python-setuptools-scm" ,python-setuptools-scm)
- ("python-pytest" ,python-pytest)
- ;; For generating the documentation.
- ("python-sphinx" ,python-sphinx)
- ("python-guzzle-sphinx-theme" ,python-guzzle-sphinx-theme)))
+ ("python-pytest" ,python-pytest)))
(inputs
`(("acl" ,acl)
("libb2" ,libb2)
;; transitional package for now:
;; <https://bugs.gnu.org/30662>
("python-msgpack" ,python-msgpack-transitional)
- ("zstd" ,zstd)))
+ ("zstd" ,zstd "lib")))
(synopsis "Deduplicated, encrypted, authenticated and compressed backups")
(description "Borg is a deduplicating backup program. Optionally, it
supports compression and authenticated encryption. The main goal of Borg is to
(define-public wimlib
(package
(name "wimlib")
- (version "1.12.0")
+ (version "1.13.1")
(source (origin
(method url-fetch)
(uri (string-append "https://wimlib.net/downloads/"
- name "-" version ".tar.gz"))
+ "wimlib-" version ".tar.gz"))
(sha256
(base32
- "0ks6hq7vwq13ljkzxp3a490bf8dnracgl2azf57rg49ad2fzab45"))))
+ "0pxgrpr3dr81rcf2jh71aiiq3v4anc5sj1nld18f2vhvbijbrx27"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
license:lgpl3+
license:cc0))))
-(define-public obnam
- (package
- (name "obnam")
- (version "1.21")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "http://code.liw.fi/debian/pool/main/o/obnam/obnam_"
- version ".orig.tar.xz"))
- (sha256
- (base32
- "0qlipsq50hca71zc0dp1mg9zs12qm0sbblw7qfzl0hj6mk2rv1by"))))
- (build-system python-build-system)
- (arguments
- `(#:python ,python-2
- #:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (substitute* "obnamlib/vfs_local_tests.py"
- ;; Check for the nobody user instead of root.
- (("self.fs.get_username\\(0\\), 'root'")
- "self.fs.get_username(65534), 'nobody'")
- ;; Disable tests checking for root group.
- (("self.fs.get_groupname\\(0\\)") "'root'"))
- (substitute* "obnamlib/vfs_local.py"
- ;; Don't cover get_groupname function.
- (("def get_groupname\\(self, gid\\):")
- "def get_groupname(self, gid): # pragma: no cover"))
- ;; Can't run network tests.
- (invoke "./check" "--unit-tests"))))))
- (inputs
- `(("python2-cliapp" ,python2-cliapp)
- ("python2-larch" ,python2-larch)
- ("python2-paramiko" ,python2-paramiko)
- ("python2-pyaml" ,python2-pyaml)
- ("python2-tracing" ,python2-tracing)
- ("python2-ttystatus" ,python2-ttystatus)))
- (native-inputs
- `(("gnupg" ,gnupg)
- ("python2-coverage" ,python2-coverage)
- ("python2-coverage-test-runner" ,python2-coverage-test-runner)
- ("python2-pep8" ,python2-pep8)
- ("python2-pylint" ,python2-pylint)))
- (home-page "https://obnam.org/")
- (synopsis "Retired backup program")
- (description
- "Warning: @uref{https://blog.liw.fi/posts/2017/08/13/retiring_obnam/,
-the Obnam project is retired}. You should use another backup solution instead.
-
-Obnam was an easy, secure backup program. Features included snapshot backups,
-data de-duplication and encrypted backups using GnuPG. Backups can be stored on
-local hard disks, or online via the SSH SFTP protocol. The backup server, if
-used, does not require any special software, on top of SSH.")
- (license license:gpl3+)))
-
(define-public dirvish
(package
(name "dirvish")
(define-public restic
(package
(name "restic")
- (version "0.9.3")
+ (version "0.9.6")
;; TODO Try packaging the bundled / vendored dependencies in the 'vendor/'
;; directory.
(source (origin
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1l1ddnf61pfsrry97qwhhdzywin2mgnbrkhcc9pabsdfk602anmr"))))
+ "1zmh42aah32ah8w5n6ilz9bci0y2xrf8p7qshy3yf1lzm5gnbj0w"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/restic/restic"
- #:unpack-path "github.com/restic"
;; We don't need to install the source code for end-user applications.
#:install-source? #f
#:phases
(modify-phases %standard-phases
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
- (with-directory-excursion (string-append
- "src/github.com/restic/restic-"
- ,version)
+ (with-directory-excursion "src/github.com/restic/restic"
;; Disable 'restic self-update'. It makes little sense in Guix.
(substitute* "build.go" (("selfupdate") ""))
(setenv "HOME" (getcwd)) ; for $HOME/.cache/go-build
(replace 'check
(lambda _
- (with-directory-excursion (string-append
- "src/github.com/restic/restic-"
- ,version)
+ (with-directory-excursion "src/github.com/restic/restic"
;; Disable FUSE tests.
(setenv "RESTIC_TEST_FUSE" "0")
(invoke "go" "run" "build.go" "--test"))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
- (src (string-append "src/github.com/restic/restic-"
- ,version)))
+ (src "src/github.com/restic/restic"))
(install-file (string-append src "/restic")
(string-append out "/bin"))
#t)))
(let* ((out (assoc-ref outputs "out"))
(man "/share/man")
(man-section (string-append man "/man"))
- (src (string-append "src/github.com/restic/restic-"
- ,version "/doc/man/")))
+ (src "src/github.com/restic/restic/doc/man/"))
;; Install all the man pages to "out".
(for-each
(lambda (file)
(define-public burp
(package
(name "burp")
- (version "2.3.0")
+ (version "2.3.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/burp/burp-" version
"/burp-" version ".tar.bz2"))
(sha256
(base32
- "0in49c0ir7lb7jli0fcphdq1nh5rclhans4ngm7z7hzyxa4jrgri"))))
+ "101nn30apcbmy9k0wksdf8d4ccw7sfcqzkasgg17a5y332x2imr9"))))
(build-system gnu-build-system)
(inputs
`(("librsync" ,librsync)