;;; 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, 2020 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, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017 ng0 <ng0@n0.is>
+;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
;;;
;;; This file is part of GNU Guix.
;;;
(define-module (gnu packages cdrom)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module (guix packages)
#:use-module ((guix licenses) #:select (lgpl2.1+ gpl2 gpl2+ gpl3+ cddl1.0))
#:use-module (guix build-system cmake)
#:use-module (gnu packages python)
#:use-module (gnu packages image)
#:use-module (gnu packages photo)
+ #:use-module (gnu packages tcl)
#:use-module (gnu packages video)
#:use-module (gnu packages wget)
#:use-module (gnu packages xiph))
(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)
(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)))
(define-public xorriso
(package
(name "xorriso")
- (version "1.4.8")
+ (version "1.5.2")
+ (outputs '("out" "gui"))
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/xorriso/xorriso-"
version ".tar.gz"))
(sha256
(base32
- "10c44yr3dpmwxa7rf23mwfsy1bahny3jpcg9ig0xjv090jg0d0pc"))))
+ "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)))
+ (add-after 'install 'move-gui-to-separate-output
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (gui (assoc-ref outputs "gui")))
+ (for-each
+ (lambda (file)
+ (mkdir-p (string-append gui (dirname file)))
+ (rename-file (string-append out file)
+ (string-append gui file)))
+ (list "/bin/xorriso-tcltk"
+ "/share/info/xorriso-tcltk.info"
+ "/share/man/man1/xorriso-tcltk.1"))
+ (wrap-program (string-append gui "/bin/xorriso-tcltk")
+ `("PATH" ":" prefix (,(string-append out "/bin"))))
+ #t))))))
(inputs
`(("acl" ,acl)
("readline" ,readline)
+ ("tk" ,tk)
("zlib" ,zlib)))
(home-page "https://www.gnu.org/software/xorriso/")
(synopsis "Create, manipulate, burn ISO-9660 file systems")
`(#:tests? #f ; there is no check target
#:configure-flags ; Add $libdir to the RUNPATH of all the executables.
(list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))))
- (home-page "http://www.xiph.org/paranoia/")
+ (home-page "https://www.xiph.org/paranoia/")
(synopsis "Audio CD reading utility")
(description "Cdparanoia retrieves audio tracks from CDDA capable CDROM
drives. The data can be saved to a file or directed to standard output
(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
(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
`(#:tests? #f ; No tests.
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'fix-glibc-compatability
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; We use sed --in-place because substitute* cannot handle the
+ ;; character encoding used by growisofs.c.
+ (invoke "sed" "-i" "-e"
+ (string-append
+ "s,<sys/stat.h>,"
+ "<sys/stat.h>\\\n#include <sys/sysmacros.h>,")
+ "growisofs.c")))
(replace 'configure
(lambda _ (setenv "prefix" (assoc-ref %outputs "out")) #t))
(add-before 'build 'embed-mkisofs
- (lambda* (#:key inputs #:allow-other-keys)
+ (lambda* (#:key inputs #:allow-other-keys)
;; We use sed --in-place because substitute* cannot handle the
;; character encoding used by growisofs.c.
- (zero? (system* "sed" "-i" "-e"
- (string-append
- "s,\"mkisofs\","
- "\"" (which "mkisofs") "\",")
- "growisofs.c")))))))
+ (invoke "sed" "-i" "-e"
+ (string-append
+ "s,\"mkisofs\","
+ "\"" (which "mkisofs") "\",")
+ "growisofs.c"))))))
(home-page "http://fy.chalmers.se/~appro/linux/DVD+RW/")
(synopsis "DVD and Blu-ray Disc burning tools")
(description "dvd+rw-tools, mostly known for its command
(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)))
`(;; 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
("flex" ,flex)
("python" ,python-2)
("xmlto" ,xmlto)
- ("gettext" ,gnu-gettext)
+ ("gettext" ,gettext-minimal)
("docbook-xml" ,docbook-xml)
("docbook-xsl" ,docbook-xsl)
("zip" ,zip)))
(name "libcue")
(version "2.2.1")
(source (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/lipnitsk/libcue/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lipnitsk/libcue.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "000j5xqp7cc7njwlixr9byahz9kn8pcfdgm76afwv4p8nbmw6yzj"))))
+ "1iqw4n01rv2jyk9lksagyxj8ml0kcfwk67n79zy1r6zv1xfp5ywm"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
(define-public abcde
(package
(name "abcde")
- (version "2.9.1")
+ (version "2.9.3")
(home-page "https://abcde.einval.com/")
(source (origin
(method url-fetch)
version ".tar.gz"))
(sha256
(base32
- "1msm5snyckynbspz54p9krarn7v9izsi7qyyi2z5y4cinw36xv3h"))
+ "091ip2iwb6b67bhjsj05l0sxyq2whqjycbzqpkfbpm4dlyxx0v04"))
(modules '((guix build utils)))
(snippet
'(begin
(substitute* "Makefile"
(("/usr/bin/install")
- "install")
- (("^etcdir = .*$")
- (string-append "etcdir = $(prefix)/etc\n")))
+ "install"))
#t))))
(build-system gnu-build-system)
(arguments
(for-each wrap
(find-files (string-append out "/bin")
- ".*"))))))
+ ".*")))
+ #t)))
#:tests? #f)) ; no test target
(inputs `(("wget" ,wget)
(define-public asunder
(package
(name "asunder")
- (version "2.8")
+ (version "2.9.5")
(source (origin
(method url-fetch)
(uri
".tar.bz2"))
(sha256
(base32
- "1nq9kd4rd4k2kibf57gdbm0zw2gxa234vvvdhxkm8g5bhx5h3iyq"))))
+ "069x6az2r3wlb2hd07iz0hxpxwknw7s9h7pyhnkmzv1pw9ci3kk4"))))
(build-system glib-or-gtk-build-system)
(arguments
'(#:out-of-source? #f
(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)
("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)))
(define-public libburn
(package
(name "libburn")
- (version "1.4.8")
+ (version "1.5.2")
(source (origin
(method url-fetch)
(uri (string-append "http://files.libburnia-project.org/releases/"
"libburn-" version ".tar.gz"))
(sha256
(base32
- "19lxnzn8bz70glrrrn2hs43gf5g7gfbcka9rcbckhv1pb7is509y"))))
+ "09sjrvq8xsj1gnl2wwyv4lbmicyzzl6x1ac2rrn53xnp34bxnckv"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(define-public libisofs
(package
(name "libisofs")
- (version "1.4.8")
+ (version "1.5.2")
(source (origin
(method url-fetch)
(uri (string-append "http://files.libburnia-project.org/releases/"
"libisofs-" version ".tar.gz"))
(sha256
(base32
- "0scvqb72qq24wcg814p1iw1dknldl21hr1hxsc1wy9vc6vgyk7fw"))))
+ "002mcyqwg625a8hqvsrmgm26mhhfwj0j7rahfhsqirmk02b16npg"))))
(build-system gnu-build-system)
(inputs
`(("zlib" ,zlib)
to the read file system image.
Supported extensions to ISO 9660 are Rock Ridge, Joliet, AAIP, zisofs.")
(license gpl2+)))
+
+(define-public cdrkit-libre
+ (package
+ (name "cdrkit-libre")
+ (version "1.1.11")
+ (source (origin
+ (method url-fetch)
+ ;; cdrkit.org is dead.
+ ;;
+ ;; ‘cdrkit-libre’ removes a couple of problematic files,
+ ;; see <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32165#14>.
+ (uri (string-append
+ "https://repo.parabola.nu/other/cdrkit-libre/cdrkit-libre-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0g2zyzb56czh429qy87lvaddzjnlcq8c616ddxsmsshz3clhyzrh"))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("bzip2" ,bzip2)
+ ("libcap" ,libcap)
+ ("perl" ,perl)
+ ("zlib" ,zlib)))
+ (arguments
+ `(#:tests? #f ;no tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'old-cdrecord
+ (lambda* (#:key outputs #:allow-other-keys)
+ (with-directory-excursion (string-append (assoc-ref outputs "out")
+ "/bin")
+ (symlink "genisoimage" "mkisofs")
+ (symlink "wodim" "cdrecord"))
+ #t)))))
+ (home-page "https://repo.parabola.nu/other/cdrkit-libre/")
+ (synopsis "Command-line CD/DVD recorder")
+ (description "Cdrkit is a suite of programs for recording CDs and DVDs,
+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.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://downloads.sourceforge.net/cdemu/libmirage-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "0md3f71x2dbgyw5s254vx1s80slh3f25r9pvjihkrmj0rn53nnzw"))))
+ (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.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://downloads.sourceforge.net/cdemu/cdemu-daemon/"
+ "cdemu-daemon-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "02yyj8sr7d5briamhzrqh8zdsiiggxmx5y05kx25y7k3g15jvcx6"))))
+ (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.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://downloads.sourceforge.net/cdemu/cdemu-client-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "1swylaja1p1jfjf3s58c9hsk1cyy20i7mrq32kcg6kzp88grs8my"))))
+ (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+)))