gnu: deutex: Update to 5.2.1.
[jackhill/guix/guix.git] / gnu / packages / cdrom.scm
index d94636b..b13b4b3 100644 (file)
@@ -3,15 +3,16 @@
 ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
-;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017 ng0 <ng0@n0.is>
 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
-;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -103,14 +104,14 @@ caching facility provided by the library.")
 (define-public libcdio
   (package
     (name "libcdio")
-    (version "2.0.0")
+    (version "2.1.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/libcdio/libcdio-"
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "0jr8ppdm80c533nzmrpz3iffnpc6nhvsria1di9f4jg1l19a03fd"))))
+               "0avi6apv5ydjy6b9c3z9a46rvp5i57qyr09vr7x4nndxkmcfjl45"))))
     (build-system gnu-build-system)
     (inputs
      `(("ncurses" ,ncurses)
@@ -133,14 +134,14 @@ extraction from CDs.")
 (define-public libcdio-paranoia
   (package
     (name "libcdio-paranoia")
-    (version "10.2+0.94+2")
+    (version "10.2+2.0.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/libcdio/libcdio-paranoia-"
-                                 version ".tar.gz"))
+                                 version ".tar.bz2"))
              (sha256
               (base32
-               "0h8rr1ir05r29rgawa1ccw335668k4s3zq4yg9095svyx7n843yn"))))
+               "12hfnrq7amv9qjzc92cr265m7kh0a1hpasck8cxx1gygbhqczc9k"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (propagated-inputs `(("libcdio" ,libcdio)))
@@ -154,15 +155,24 @@ libcdio.")
 (define-public xorriso
   (package
     (name "xorriso")
-    (version "1.5.0")
+    (version "1.5.2")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/xorriso/xorriso-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "0aq6lvlwlkxz56l5sbvgycr6j5c82ch2bv6zrnc2345ibfpafgx9"))))
+               "1rqpzj95f70jfwpn4lamasfgqpizjsipz12aprdhri777b4zas9v"))))
     (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'install-frontends
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (out-bin (string-append out "/bin")))
+               (install-file "frontend/grub-mkrescue-sed.sh" out-bin)
+               #t))))))
     (inputs
      `(("acl" ,acl)
        ("readline" ,readline)
@@ -225,13 +235,35 @@ reconstruction capability.")
               (sha256
                (base32
                 "03w6ypsmwwy4d7vh6zgwpc60v541vc5ywp8bdb758hbc4yv2wa7d"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; By default 'cdda2wav --help' would print a string like
+                  ;; "Version 3.01_linux_4.19.10-gnu_x86_64_x86_64".  Change
+                  ;; it to not capture the kernel version of the build
+                  ;; machine, to allow for reproducible builds.
+                  (substitute* "cdda2wav/local.cnf.in"
+                    (("^VERSION_OS=.*")
+                     (string-append
+                      "actual_os := $(shell uname -o)\n"
+                      "actual_arch := $(shell uname -m)\n"
+                      "VERSION_OS = _$(actual_os)_$(actual_arch)\n")))
+                  #t))
               (patches (search-patches "cdrtools-3.01-mkisofs-isoinfo.patch"))))
     (build-system gnu-build-system)
     ;; XXX cdrtools bundles a modified, relicensed early version of cdparanoia.
     (inputs
      `(("linux-headers" ,linux-libre-headers)))
     (arguments
-     `(#:phases
+     `(#:make-flags
+       (list "RM=rm" "LN=ln" "SYMLINK=ln -s"
+             "CONFIG_SHELL=sh" "CCOM=gcc"
+             (string-append "INS_BASE=" (assoc-ref %outputs "out"))
+             (string-append "INS_RBASE=" (assoc-ref %outputs "out")))
+       ;; Parallel builds appear to be unsafe, see
+       ;; https://hydra.gnu.org/build/3346840/log/raw
+       #:parallel-build? #f
+       #:phases
        (modify-phases %standard-phases
          (delete 'configure)
          (add-before 'build 'set-linux-headers
@@ -246,19 +278,7 @@ reconstruction capability.")
                                   (find-files "DEFAULTS_ENG" "^Defaults\\.")
                                   (find-files "TEMPLATES" "^Defaults\\."))
                (("/opt/schily") (assoc-ref %outputs "out")))
-             #t))
-         (replace 'build
-           (lambda _
-             (zero?
-              (system* "make" "CONFIG_SHELL=sh" "CCOM=gcc" "RM=rm"))))
-         (replace 'install
-           (lambda _
-             (zero?
-              (system* "make"
-                       "RM=rm" "LN=ln" "SYMLINK=ln -s"
-                       (string-append "INS_BASE=" (assoc-ref %outputs "out"))
-                       (string-append "INS_RBASE=" (assoc-ref %outputs "out"))
-                       "install" )))))
+             #t)))
        #:tests? #f))  ; no tests
    (synopsis "Command line utilities to manipulate and burn CD/DVD/BD images")
    (description "cdrtools is a collection of command line utilities to create
@@ -325,13 +345,15 @@ or @command{xorrisofs} to create ISO 9660 images.")
   (package
     (name "dvdisaster")
     (version "0.79.5")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "http://dvdisaster.net/downloads/dvdisaster-"
-                                 version ".tar.bz2"))
-             (sha256
-              (base32
-               "0f8gjnia2fxcbmhl8b3qkr5b7idl8m855dw7xw2fnmbqwvcm6k4w"))))
+    (source
+     (origin
+       (method url-fetch)
+       ;; Update this (and update HOME-PAGE) when/if one reappears.
+       (uri (string-append "https://web.archive.org/web/20180428070843/"
+                           "http://dvdisaster.net/downloads/dvdisaster-"
+                           version ".tar.bz2"))
+       (sha256
+        (base32 "0f8gjnia2fxcbmhl8b3qkr5b7idl8m855dw7xw2fnmbqwvcm6k4w"))))
     (build-system gnu-build-system)
     (inputs
      `(("gtk+" ,gtk+-2)))
@@ -343,8 +365,38 @@ or @command{xorrisofs} to create ISO 9660 images.")
      `(;; Parallel builds appear to be unsafe, see
        ;; <http://hydra.gnu.org/build/49331/nixlog/1/raw>.
        #:parallel-build? #f
-       #:tests? #f)) ; no check target
-    (home-page "http://dvdisaster.net/en/index.html")
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             (with-directory-excursion "regtest"
+               (substitute* "common.bash"
+                 (("ISODIR=/var/tmp/regtest") "ISODIR=/tmp"))
+               (for-each invoke (find-files "." "rs.*\\.bash")))
+             #t))
+         (add-after 'install 'install-desktop
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((datadir (string-append (assoc-ref outputs "out") "/share")))
+               (substitute* "contrib/dvdisaster.desktop"
+                 (("dvdisaster48.png") "dvdisaster.png"))
+               (install-file "contrib/dvdisaster.desktop"
+                             (string-append datadir "/applications"))
+               (for-each
+                (lambda (png)
+                  (let* ((size (substring png
+                                          (string-index png char-set:digit)
+                                          (string-rindex png #\.)))
+                         (icondir (string-append datadir "/icons/"
+                                                 size "x" size "/apps")))
+                    (mkdir-p icondir)
+                    (copy-file png (string-append icondir "/dvdisaster.png"))))
+                (find-files "contrib" "dvdisaster[0-9]*\\.png"))
+               (mkdir-p (string-append datadir "/pixmaps"))
+               (copy-file "contrib/dvdisaster48.xpm"
+                          (string-append datadir "/pixmaps/dvdisaster.xpm"))
+               #t))))))
+    (home-page (string-append "https://web.archive.org/web/20180428070843/"
+                              "http://dvdisaster.net/en/index.html"))
     (synopsis "Error correcting codes for optical media images")
     (description "Optical media (CD,DVD,BD) keep their data only for a
 finite time (typically for many years).  After that time, data loss develops
@@ -488,7 +540,7 @@ from an audio CD.")
 (define-public abcde
   (package
     (name "abcde")
-    (version "2.9.2")
+    (version "2.9.3")
     (home-page "https://abcde.einval.com/")
     (source (origin
               (method url-fetch)
@@ -496,19 +548,13 @@ from an audio CD.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "13c5yvp87ckqgha160ym5rdr1a4divgvyqbjh0yb6ffclip6qd9l"))
+                "091ip2iwb6b67bhjsj05l0sxyq2whqjycbzqpkfbpm4dlyxx0v04"))
               (modules '((guix build utils)))
               (snippet
-               `(begin
+               '(begin
                   (substitute* "Makefile"
-                    ;; Fix abcde 2.9.2 still thinking it's 2.9.1.
-                    ;; XXX This will be fixed in the next release.
-                    (("(abcde_version = abcde-)(2.9.1)" _ good bad)
-                     (string-append good ,version))
                     (("/usr/bin/install")
-                     "install")
-                    (("^etcdir = .*$")
-                     (string-append "etcdir = $(prefix)/etc\n")))
+                     "install"))
                   #t))))
     (build-system gnu-build-system)
     (arguments
@@ -558,7 +604,8 @@ from an audio CD.")
 
                (for-each wrap
                          (find-files (string-append out "/bin")
-                                     ".*"))))))
+                                     ".*")))
+             #t)))
        #:tests? #f)) ; no test target
 
     (inputs `(("wget" ,wget)
@@ -621,7 +668,7 @@ information is written to standard error.")
 (define-public asunder
   (package
     (name "asunder")
-    (version "2.8")
+    (version "2.9.5")
     (source (origin
               (method url-fetch)
               (uri
@@ -630,7 +677,7 @@ information is written to standard error.")
                               ".tar.bz2"))
               (sha256
                (base32
-                "1nq9kd4rd4k2kibf57gdbm0zw2gxa234vvvdhxkm8g5bhx5h3iyq"))))
+                "069x6az2r3wlb2hd07iz0hxpxwknw7s9h7pyhnkmzv1pw9ci3kk4"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      '(#:out-of-source? #f
@@ -675,16 +722,20 @@ session, and it can create M3U playlists.")
   (package
     (name "ripit")
     (version "3.9.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "http://www.suwald.com/ripit/ripit-"
-                                  version ".tar.gz"))
-              (sha256
-               (base32
-                "0ap71x477jy9c4jiqazb3y45hxdxm3jbq24x05g3vjyqzigi4x1b"))))
+    (source
+     (origin
+       (method url-fetch)
+       ;; The original suwald.com domain has expired.
+       (uri (list
+             (string-append "https://web.archive.org/web/20160327050927/"
+                            "http://suwald.com/ripit/ripit-" version ".tar.gz")
+             (string-append "https://ponce.cc/slackware/sources/repo/ripit-"
+                            version ".tar.gz")))
+       (sha256
+        (base32 "0ap71x477jy9c4jiqazb3y45hxdxm3jbq24x05g3vjyqzigi4x1b"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; No test suite.
+     `(#:tests? #f                      ; no test suite
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)
@@ -706,7 +757,8 @@ session, and it can create M3U playlists.")
        ("vorbis-tools" ,vorbis-tools)
        ("wavpack" ,wavpack)
        ("perl-cddb-get" ,perl-cddb-get)))
-    (home-page "http://www.suwald.com/ripit/about.php")
+    (home-page (string-append "https://web.archive.org/web/20170119092156/"
+                              "http://www.suwald.com/ripit/about.php"))
     (synopsis "Command-line program to extract audio CDs")
     (description "RipIT is used to extract audio from CDs.")
     (license gpl2)))
@@ -738,14 +790,14 @@ laid out on the image.")
 (define-public libburn
   (package
     (name "libburn")
-    (version "1.5.0")
+    (version "1.5.2")
     (source (origin
              (method url-fetch)
              (uri (string-append "http://files.libburnia-project.org/releases/"
                                  "libburn-" version ".tar.gz"))
              (sha256
               (base32
-               "1gg2kgnqvaa2fwghai62prxz6slpak1f6bvgjh8m4dn16v114asq"))))
+               "09sjrvq8xsj1gnl2wwyv4lbmicyzzl6x1ac2rrn53xnp34bxnckv"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -760,14 +812,14 @@ DVD-RW, DVD-R, DVD-R/DL, BD-R, and BD-RE.")
 (define-public libisofs
   (package
     (name "libisofs")
-    (version "1.5.0")
+    (version "1.5.2")
     (source (origin
              (method url-fetch)
              (uri (string-append "http://files.libburnia-project.org/releases/"
                                  "libisofs-" version ".tar.gz"))
              (sha256
               (base32
-               "001l3akf3wb6msl9man776w560iqyvsbwwzs7d7y7msx13irspys"))))
+               "002mcyqwg625a8hqvsrmgm26mhhfwj0j7rahfhsqirmk02b16npg"))))
     (build-system gnu-build-system)
     (inputs
      `(("zlib" ,zlib)
@@ -825,3 +877,108 @@ Supported extensions to ISO 9660 are Rock Ridge, Joliet, AAIP, zisofs.")
 blanking CD-RW media, creating ISO-9660 file system images, extracting audio
 CD data, and more.  It's mostly compatible with @code{cdrtools}.")
     (license gpl2+)))
+
+(define-public libmirage
+  (package
+    (name "libmirage")
+    (version "3.2.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://downloads.sourceforge.net/cdemu/libmirage-"
+                    version ".tar.bz2"))
+              (sha256
+               (base32
+                "08mfvqyk3833ksfd47i4j3ppmrw5ry219km6h7lywdh9hm9x14yf"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)))
+    (inputs
+     `(("glib" ,glib)))
+    (arguments
+     ;; No tests.
+     '(#:tests? #f))
+    (home-page "https://cdemu.sourceforge.io/")
+    (synopsis "CD-ROM image access library")
+    (description "libMirage is a CD-ROM image access library.  It supports the
+following formats: B6T, C2D, CCD, CDI, CIF, CUE, ISO, MDS, MDX, NRG, TOC.  It
+is written in C and based on GLib.  Its aim is to provide uniform access to
+the data stored in various image formats.")
+    (license gpl2+)))
+
+(define-public cdemu-daemon
+  (package
+    (name "cdemu-daemon")
+    (version "3.2.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://downloads.sourceforge.net/cdemu/cdemu-daemon/cdemu-daemon-"
+                    version ".tar.bz2"))
+              (sha256
+               (base32
+                "022xzgwmncswb9md71w3ly3mjkdfc93lbij2llp2jamq8grxjjxr"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)))
+    (inputs
+     `(("libmirage" ,libmirage)
+       ("glib" ,glib)
+       ("ao" ,ao)))
+    (arguments
+     ;; No tests.
+     '(#:tests? #f))
+    (home-page "https://cdemu.sourceforge.io/")
+    (synopsis "CD/DVD-ROM device emulator")
+    (description "CDemu is a software suite designed to emulate an optical
+drive and disc (including CD-ROMs and DVD-ROMs).")
+    (license gpl2+)))
+
+(define-public cdemu-client
+  (package
+    (name "cdemu-client")
+    (version "3.2.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://downloads.sourceforge.net/cdemu/cdemu-client-"
+                    version ".tar.bz2"))
+              (sha256
+               (base32
+                "1bvc2m63fx03rbp3ihgl2n7k24lwg5ydwkmr84gsjfcxp46q10zq"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)))
+    (inputs
+     `(("python" ,python)
+       ("python-pygobject" ,python-pygobject)
+       ("cdemu-daemon" ,cdemu-daemon)))
+    (arguments
+     ;; No tests.
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'patch-shebang
+           (lambda* (#:key outputs #:allow-other-keys)
+             (patch-shebang (string-append (assoc-ref outputs "out")
+                                           "/bin/cdemu"))
+             #t))
+         (add-after 'patch-shebang 'wrap-program
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((prog (string-append (assoc-ref outputs "out")
+                                        "/bin/cdemu")))
+               (wrap-program prog
+                 `("PYTHONPATH" = (,(getenv "PYTHONPATH"))))
+               #t))))))
+    (home-page "https://cdemu.sourceforge.io/")
+    (synopsis "Command-line client for controlling cdemu-daemon")
+    (description "CDEmu client is a simple command-line client for controlling
+CDEmu daemon.
+
+It provides a way to perform the key tasks related to controlling the CDEmu
+daemon, such as loading and unloading devices, displaying devices' status and
+retrieving/setting devices' debug masks.")
+    (license gpl2+)))