~ruther/guix-local

acb59d99dbb8779ecf41cdbba45d2ce8ba88f5ed — Leo Famulari 8 years ago 2adfe81
gnu: Fix Borg crashes with Python msgpack > 0.5

The Python msgpack library changed its name, but borg (and possibly
other packages) still uses the old name.

Fixes <https://bugs.gnu.org/30662>.

* gnu/packages/python.scm (python-msgpack-transitional): New variable.
* gnu/packages/backup.scm (borg)[inputs]: Use it.
2 files changed, 22 insertions(+), 1 deletions(-)

M gnu/packages/backup.scm
M gnu/packages/python.scm
M gnu/packages/backup.scm => gnu/packages/backup.scm +4 -1
@@ 547,7 547,10 @@ detection, and lossless compression.")
       ("lz4" ,lz4)
       ("openssl" ,openssl)
       ("python-llfuse" ,python-llfuse)
       ("python-msgpack" ,python-msgpack)
       ;; The Python msgpack library changed its name so Borg requires this
       ;; transitional package for now:
       ;; <https://bugs.gnu.org/30662>
       ("python-msgpack" ,python-msgpack-transitional)
       ("zstd" ,zstd)))
    (synopsis "Deduplicated, encrypted, authenticated and compressed backups")
    (description "Borg is a deduplicating backup program.  Optionally, it

M gnu/packages/python.scm => gnu/packages/python.scm +18 -0
@@ 5869,6 5869,24 @@ reading and writing MessagePack data.")
    (home-page "https://pypi.python.org/pypi/msgpack/")
    (license license:asl2.0)))

;; This msgpack library's name changed from "python-msgpack" to "msgpack" with
;; release 0.5. Some packages like borg still call it by the old name for now.
;; <https://bugs.gnu.org/30662>
(define-public python-msgpack-transitional
  (package
    (inherit python-msgpack)
    (arguments
     (substitute-keyword-arguments (package-arguments python-msgpack)
       ((#:phases phases)
        `(modify-phases ,phases
           (add-after 'unpack 'configure-transitional
             (lambda _
               ;; Keep using the old name.
               (substitute* "setup.py"
                 (("TRANSITIONAL = False")
                   "TRANSITIONAL = 1"))
               #t))))))))

(define-public python2-msgpack
  (package-with-python2 python-msgpack))