gnu: icecat: Update to 60.7.2-guix1 [security fixes].
[jackhill/guix/guix.git] / gnu / packages / cdrom.scm
CommitLineData
6064c4cd 1;;; GNU Guix --- Functional package management for GNU
949457c1 2;;; Copyright © 2013, 2014, 2015, 2018 Ludovic Courtès <ludo@gnu.org>
74216042 3;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
db361234 4;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
fab74288 5;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
89252782 6;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
41447b31 7;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
b4edcd28 8;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
a9406b24 9;;; Copyright © 2017 John Darrington <jmd@gnu.org>
76e98457 10;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
80a69935 11;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
47956fa0 12;;; Copyright © 2017 ng0 <ng0@n0.is>
c54511fd 13;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
f67cb8eb 14;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
98b0ec7f 15;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
6064c4cd
LC
16;;;
17;;; This file is part of GNU Guix.
18;;;
19;;; GNU Guix is free software; you can redistribute it and/or modify it
20;;; under the terms of the GNU General Public License as published by
21;;; the Free Software Foundation; either version 3 of the License, or (at
22;;; your option) any later version.
23;;;
24;;; GNU Guix is distributed in the hope that it will be useful, but
25;;; WITHOUT ANY WARRANTY; without even the implied warranty of
26;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27;;; GNU General Public License for more details.
28;;;
29;;; You should have received a copy of the GNU General Public License
30;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
31
32(define-module (gnu packages cdrom)
33 #:use-module (guix download)
de1830ae 34 #:use-module (guix git-download)
6064c4cd 35 #:use-module (guix packages)
ded59665 36 #:use-module ((guix licenses) #:select (lgpl2.1+ gpl2 gpl2+ gpl3+ cddl1.0))
41447b31 37 #:use-module (guix build-system cmake)
6064c4cd 38 #:use-module (guix build-system gnu)
426e6083
CM
39 #:use-module (guix build-system glib-or-gtk)
40 #:use-module (guix gexp)
6064c4cd
LC
41 #:use-module (gnu packages)
42 #:use-module (gnu packages acl)
426e6083 43 #:use-module (gnu packages audio)
41447b31 44 #:use-module (gnu packages bison)
6064c4cd 45 #:use-module (gnu packages compression)
41447b31 46 #:use-module (gnu packages flex)
52cb22cd 47 #:use-module (gnu packages fontutils)
1dba6407 48 #:use-module (gnu packages gettext)
52cb22cd
TD
49 #:use-module (gnu packages docbook)
50 #:use-module (gnu packages xml)
c1cab15a 51 #:use-module (gnu packages gtk)
426e6083 52 #:use-module (gnu packages glib)
76e98457 53 #:use-module (gnu packages m4)
949457c1 54 #:use-module (gnu packages man)
426e6083 55 #:use-module (gnu packages mp3)
949457c1 56 #:use-module (gnu packages music)
43824910 57 #:use-module (gnu packages ncurses)
3e778ad3 58 #:use-module (gnu packages elf)
52cb22cd
TD
59 #:use-module (gnu packages wxwidgets)
60 #:use-module (gnu packages linux)
c1cab15a 61 #:use-module (gnu packages pkg-config)
43824910 62 #:use-module (gnu packages readline)
ce0614dd 63 #:use-module (gnu packages base)
7dfc937e 64 #:use-module (gnu packages perl)
949457c1 65 #:use-module (gnu packages perl-web)
7dfc937e 66 #:use-module (gnu packages python)
52cb22cd
TD
67 #:use-module (gnu packages image)
68 #:use-module (gnu packages photo)
69 #:use-module (gnu packages video)
7dfc937e
LC
70 #:use-module (gnu packages wget)
71 #:use-module (gnu packages xiph))
6064c4cd
LC
72
73(define-public libcddb
74 (package
75 (name "libcddb")
03aef4a7 76 (version "1.3.2")
6064c4cd
LC
77 (source (origin
78 (method url-fetch)
de67e922
LF
79 (uri (string-append "mirror://sourceforge/libcddb/libcddb/" version
80 "/libcddb-" version ".tar.bz2"))
6064c4cd
LC
81 (sha256
82 (base32
03aef4a7 83 "0fr21a7vprdyy1bq6s99m0x420c9jm5fipsd63pqv8qyfkhhxkim"))))
6064c4cd
LC
84 (build-system gnu-build-system)
85 (arguments '(#:tests? #f)) ; tests rely on access to external servers
86 (home-page "http://libcddb.sourceforge.net/")
87 (synopsis "C library to access data on a CDDB server")
88 (description
35b9e423 89 "Libcddb is a C library to access data on a CDDB server (freedb.org). It
6064c4cd
LC
90allows you to:
91
92 1. search the database for possible CD matches;
93
94 2. retrieve detailed information about a specific CD;
95
96 3. submit new CD entries to the database.
97
98Libcddb supports both the custom CDDB protocol and tunnelling the query and
35b9e423
EB
99read operations over plain HTTP. It is also possible to use an HTTP proxy
100server. If you want to speed things up, you can make use of the built-in
6064c4cd
LC
101caching facility provided by the library.")
102 (license lgpl2.1+)))
103
104(define-public libcdio
105 (package
106 (name "libcdio")
49e23afa 107 (version "2.0.0")
6064c4cd
LC
108 (source (origin
109 (method url-fetch)
110 (uri (string-append "mirror://gnu/libcdio/libcdio-"
49e23afa 111 version ".tar.bz2"))
6064c4cd
LC
112 (sha256
113 (base32
49e23afa 114 "0jr8ppdm80c533nzmrpz3iffnpc6nhvsria1di9f4jg1l19a03fd"))))
6064c4cd
LC
115 (build-system gnu-build-system)
116 (inputs
6312043c
EF
117 `(("ncurses" ,ncurses)
118 ("libcddb" ,libcddb)))
c4c4cc05 119 (native-inputs
6064c4cd 120 `(("help2man" ,help2man)
c4c4cc05 121 ("pkg-config" ,pkg-config)))
6312043c 122 (home-page "https://www.gnu.org/software/libcdio/")
f50d2669 123 (synopsis "CD Input and Control library")
6064c4cd 124 (description
a22dc0c4
LC
125 "The GNU Compact Disc Input and Control Library (libcdio) is a library
126for CD-ROM and CD image file access. It allows the developer to add CD
127access to an application without having to worry about the OS- and
128device-dependent properties of CD-ROM or the specific details of CD image
fc8a431c
LC
129formats. It includes pycdio, a Python interface to libcdio, and
130libcdio-paranoia, a library providing jitter-free and error-free audio
131extraction from CDs.")
6064c4cd
LC
132 (license gpl3+)))
133
cc6c0170
TUBK
134(define-public libcdio-paranoia
135 (package
136 (name "libcdio-paranoia")
6342ebd5 137 (version "10.2+0.94+2")
cc6c0170
TUBK
138 (source (origin
139 (method url-fetch)
140 (uri (string-append "mirror://gnu/libcdio/libcdio-paranoia-"
6342ebd5 141 version ".tar.gz"))
cc6c0170
TUBK
142 (sha256
143 (base32
6342ebd5 144 "0h8rr1ir05r29rgawa1ccw335668k4s3zq4yg9095svyx7n843yn"))))
cc6c0170
TUBK
145 (build-system gnu-build-system)
146 (native-inputs `(("pkg-config" ,pkg-config)))
147 (propagated-inputs `(("libcdio" ,libcdio)))
6fd52309 148 (home-page "https://www.gnu.org/software/libcdio/")
cc6c0170
TUBK
149 (synopsis "Jitter- and error-tolerant CD audio extraction")
150 (description
151 "libcdio-paranoia is an implementation of CD paranoia libraries based on
152libcdio.")
153 (license gpl3+)))
154
6064c4cd
LC
155(define-public xorriso
156 (package
157 (name "xorriso")
d9905171 158 (version "1.5.0")
6064c4cd
LC
159 (source (origin
160 (method url-fetch)
161 (uri (string-append "mirror://gnu/xorriso/xorriso-"
162 version ".tar.gz"))
163 (sha256
164 (base32
1d86b056
DM
165 "0aq6lvlwlkxz56l5sbvgycr6j5c82ch2bv6zrnc2345ibfpafgx9"))
166 (patches
167 (search-patches "xorriso-no-partition-table-in-inner-efi.patch"
168 "xorriso-no-mbr-in-inner-efi.patch"))))
6064c4cd 169 (build-system gnu-build-system)
1d86b056
DM
170 (arguments
171 `(#:phases
172 (modify-phases %standard-phases
173 (add-after 'install 'install-frontends
174 (lambda* (#:key outputs #:allow-other-keys)
175 (let* ((out (assoc-ref outputs "out"))
176 (out-bin (string-append out "/bin")))
177 (install-file "frontend/grub-mkrescue-sed.sh" out-bin)
178 #t))))))
6064c4cd
LC
179 (inputs
180 `(("acl" ,acl)
181 ("readline" ,readline)
a3a932c0 182 ("zlib" ,zlib)))
cb764dc8 183 (home-page "https://www.gnu.org/software/xorriso/")
8f65585b 184 (synopsis "Create, manipulate, burn ISO-9660 file systems")
6064c4cd 185 (description
79c311b8 186 "GNU Xorriso is a tool for copying files to and from ISO 9660 Rock
8f65585b 187Ridge, a.k.a. Compact Disc File System, file systems and it allows
79c311b8
LC
188session-wise manipulation of them. It features a formatter and burner for
189CD, DVD and BD. It can operate on existing ISO images or it can create new
190ones. xorriso can then be used to copy files directly into or out of ISO
191files.")
6064c4cd 192 (license gpl3+)))
6bfc16d9
AE
193
194(define-public cdparanoia
195 (package
196 (name "cdparanoia")
197 (version "10.2")
198 (source (origin
199 (method url-fetch)
a124bbd2
SB
200 (uri (string-append "http://downloads.xiph.org/releases/"
201 "cdparanoia/cdparanoia-III-"
6bfc16d9
AE
202 version ".src.tgz"))
203 (sha256
204 (base32
01eafd38 205 "1pv4zrajm46za0f6lv162iqffih57a8ly4pc69f7y0gfyigb8p80"))
fc1adab1 206 (patches (search-patches "cdparanoia-fpic.patch"))
d1f9e45e
SB
207 (modules '((guix build utils)))
208 (snippet
6cbee49d
MW
209 '(begin
210 ;; Make libraries respect LDFLAGS.
211 (substitute* '("paranoia/Makefile.in" "interface/Makefile.in")
212 (("-Wl,-soname") "$(LDFLAGS) -Wl,-soname"))
213 #t))))
6bfc16d9 214 (build-system gnu-build-system)
6bfc16d9
AE
215 (arguments
216 `(#:tests? #f ; there is no check target
d1f9e45e
SB
217 #:configure-flags ; Add $libdir to the RUNPATH of all the executables.
218 (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))))
6bfc16d9 219 (home-page "http://www.xiph.org/paranoia/")
35b9e423 220 (synopsis "Audio CD reading utility")
6bfc16d9
AE
221 (description "Cdparanoia retrieves audio tracks from CDDA capable CDROM
222drives. The data can be saved to a file or directed to standard output
516e93f8 223in WAV, AIFF, AIFF-C or raw format. Most ATAPI, SCSI and several
6bfc16d9
AE
224proprietary CDROM drive makes are supported; cdparanoia can determine if the
225target drive is CDDA capable. In addition to simple reading, cdparanoia adds
226extra-robust data verification, synchronization, error handling and scratch
227reconstruction capability.")
228 (license gpl2))) ; libraries under lgpl2.1
c1cab15a 229
ded59665
TD
230(define-public cdrtools
231 (package
232 (name "cdrtools")
233 (version "3.01")
234 (source (origin
235 (method url-fetch)
236 (uri (string-append
237 "mirror://sourceforge/cdrtools/cdrtools-" version ".tar.bz2"))
238 (sha256
239 (base32
240 "03w6ypsmwwy4d7vh6zgwpc60v541vc5ywp8bdb758hbc4yv2wa7d"))
842ffcfd
LC
241 (modules '((guix build utils)))
242 (snippet
243 '(begin
244 ;; By default 'cdda2wav --help' would print a string like
245 ;; "Version 3.01_linux_4.19.10-gnu_x86_64_x86_64". Change
246 ;; it to not capture the kernel version of the build
247 ;; machine, to allow for reproducible builds.
248 (substitute* "cdda2wav/local.cnf.in"
249 (("^VERSION_OS=.*")
250 (string-append
251 "actual_os := $(shell uname -o)\n"
252 "actual_arch := $(shell uname -m)\n"
253 "VERSION_OS = _$(actual_os)_$(actual_arch)\n")))
254 #t))
ded59665
TD
255 (patches (search-patches "cdrtools-3.01-mkisofs-isoinfo.patch"))))
256 (build-system gnu-build-system)
257 ;; XXX cdrtools bundles a modified, relicensed early version of cdparanoia.
258 (inputs
259 `(("linux-headers" ,linux-libre-headers)))
260 (arguments
f67cb8eb
RW
261 `(#:make-flags
262 (list "RM=rm" "LN=ln" "SYMLINK=ln -s"
263 "CONFIG_SHELL=sh" "CCOM=gcc"
264 (string-append "INS_BASE=" (assoc-ref %outputs "out"))
265 (string-append "INS_RBASE=" (assoc-ref %outputs "out")))
e0611e9a
EB
266 ;; Parallel builds appear to be unsafe, see
267 ;; https://hydra.gnu.org/build/3346840/log/raw
268 #:parallel-build? #f
f67cb8eb 269 #:phases
ded59665
TD
270 (modify-phases %standard-phases
271 (delete 'configure)
272 (add-before 'build 'set-linux-headers
273 (lambda _
274 (substitute* "autoconf/configure"
275 (("/usr/src/linux")
276 (assoc-ref %build-inputs "linux-headers")))
277 #t))
278 (add-before 'build 'substitute-dirs
279 (lambda _
280 (substitute* (append (find-files "DEFAULTS" "^Defaults\\.")
281 (find-files "DEFAULTS_ENG" "^Defaults\\.")
282 (find-files "TEMPLATES" "^Defaults\\."))
283 (("/opt/schily") (assoc-ref %outputs "out")))
f67cb8eb 284 #t)))
ded59665
TD
285 #:tests? #f)) ; no tests
286 (synopsis "Command line utilities to manipulate and burn CD/DVD/BD images")
287 (description "cdrtools is a collection of command line utilities to create
288CD's, DVD's or Blue Ray discs. The most important components are
289@command{cdrecord}, a burning program, @command{cdda2wav}, a CD audio ripper
290which uses libparanoia, and @command{mkisofs}, which can create various disc
291images.")
292 (home-page "http://cdrtools.sourceforge.net/private/cdrecord.html")
293
294 ;; mkisofs is GPL, the other programs are CDDL.
295 (license (list cddl1.0 gpl2))))
296
76e98457
TD
297(define-public dvd+rw-tools
298 (package
299 (name "dvd+rw-tools")
300 (version "7.1")
301 (source (origin
302 (method url-fetch)
303 (uri (string-append
304 "http://fy.chalmers.se/~appro/linux/DVD+RW/tools/dvd+rw-tools-"
305 version ".tar.gz"))
306 (sha256
307 (base32
308 "1jkjvvnjcyxpql97xjjx0kwvy70kxpiznr2zpjy2hhci5s10zmpq"))
309 (patches (search-patches "dvd+rw-tools-add-include.patch"))))
310 (build-system gnu-build-system)
311 (inputs
312 `(("cdrtools" ,cdrtools)))
313 (native-inputs
314 `(("m4" ,m4)))
315 (arguments
316 `(#:tests? #f ; No tests.
317 #:phases
318 (modify-phases %standard-phases
2529c838
EF
319 (add-after 'unpack 'fix-glibc-compatability
320 (lambda* (#:key inputs #:allow-other-keys)
321 ;; We use sed --in-place because substitute* cannot handle the
322 ;; character encoding used by growisofs.c.
323 (invoke "sed" "-i" "-e"
324 (string-append
325 "s,<sys/stat.h>,"
326 "<sys/stat.h>\\\n#include <sys/sysmacros.h>,")
327 "growisofs.c")))
76e98457
TD
328 (replace 'configure
329 (lambda _ (setenv "prefix" (assoc-ref %outputs "out")) #t))
330 (add-before 'build 'embed-mkisofs
efe0a4a2 331 (lambda* (#:key inputs #:allow-other-keys)
76e98457
TD
332 ;; We use sed --in-place because substitute* cannot handle the
333 ;; character encoding used by growisofs.c.
efe0a4a2
EF
334 (invoke "sed" "-i" "-e"
335 (string-append
336 "s,\"mkisofs\","
337 "\"" (which "mkisofs") "\",")
338 "growisofs.c"))))))
76e98457
TD
339 (home-page "http://fy.chalmers.se/~appro/linux/DVD+RW/")
340 (synopsis "DVD and Blu-ray Disc burning tools")
341 (description "dvd+rw-tools, mostly known for its command
342@command{growisofs}, is a collection of DVD and Blu-ray Disc burning tools.
343It requires another program, such as @command{mkisofs}, @command{genisoimage},
344or @command{xorrisofs} to create ISO 9660 images.")
345 (license gpl2)))
346
c1cab15a
AE
347(define-public dvdisaster
348 (package
349 (name "dvdisaster")
036fd4f2 350 (version "0.79.5")
6da31b3c
TGR
351 (source
352 (origin
353 (method url-fetch)
354 ;; Update this (and update HOME-PAGE) when/if one reappears.
355 (uri (string-append "https://web.archive.org/web/20180428070843/"
356 "http://dvdisaster.net/downloads/dvdisaster-"
357 version ".tar.bz2"))
358 (sha256
359 (base32 "0f8gjnia2fxcbmhl8b3qkr5b7idl8m855dw7xw2fnmbqwvcm6k4w"))))
c1cab15a
AE
360 (build-system gnu-build-system)
361 (inputs
c4c4cc05
JD
362 `(("gtk+" ,gtk+-2)))
363 (native-inputs
b94a6ca0 364 `(("gettext" ,gettext-minimal)
c1cab15a
AE
365 ("pkg-config" ,pkg-config)
366 ("which" ,which)))
367 (arguments
c397e502
LC
368 `(;; Parallel builds appear to be unsafe, see
369 ;; <http://hydra.gnu.org/build/49331/nixlog/1/raw>.
370 #:parallel-build? #f
98b0ec7f
EB
371 #:phases
372 (modify-phases %standard-phases
fefcb122
EB
373 (replace 'check
374 (lambda _
375 (with-directory-excursion "regtest"
376 (substitute* "common.bash"
377 (("ISODIR=/var/tmp/regtest") "ISODIR=/tmp"))
378 (for-each invoke (find-files "." "rs.*\\.bash")))
379 #t))
98b0ec7f
EB
380 (add-after 'install 'install-desktop
381 (lambda* (#:key outputs #:allow-other-keys)
382 (let* ((datadir (string-append (assoc-ref outputs "out") "/share")))
383 (substitute* "contrib/dvdisaster.desktop"
384 (("dvdisaster48.png") "dvdisaster.png"))
385 (install-file "contrib/dvdisaster.desktop"
386 (string-append datadir "/applications"))
387 (for-each
388 (lambda (png)
389 (let* ((size (substring png
390 (string-index png char-set:digit)
391 (string-rindex png #\.)))
392 (icondir (string-append datadir "/icons/"
393 size "x" size "/apps")))
394 (mkdir-p icondir)
395 (copy-file png (string-append icondir "/dvdisaster.png"))))
396 (find-files "contrib" "dvdisaster[0-9]*\\.png"))
397 (mkdir-p (string-append datadir "/pixmaps"))
398 (copy-file "contrib/dvdisaster48.xpm"
399 (string-append datadir "/pixmaps/dvdisaster.xpm"))
400 #t))))))
6da31b3c
TGR
401 (home-page (string-append "https://web.archive.org/web/20180428070843/"
402 "http://dvdisaster.net/en/index.html"))
35b9e423 403 (synopsis "Error correcting codes for optical media images")
c1cab15a
AE
404 (description "Optical media (CD,DVD,BD) keep their data only for a
405finite time (typically for many years). After that time, data loss develops
406slowly with read errors growing from the outer media region towards the
407inside.
408
409Dvdisaster stores data on CD/DVD/BD (supported media) in a way that it is
410fully recoverable even after some read errors have developed. This enables
411you to rescue the complete data to a new medium.
412
413Data loss is prevented by using error correcting codes. Error correction
414data is either added to the medium or kept in separate error correction
415files. Dvdisaster works at the image level so that the recovery does not
416depend on the file system of the medium. The maximum error correction
417capacity is user-selectable.")
418 (license gpl2+)))
e2bb5fd6 419
52cb22cd
TD
420(define-public dvdstyler
421 (package
422 (name "dvdstyler")
7268563b 423 (version "3.0.4")
52cb22cd
TD
424 (source
425 (origin
426 (method url-fetch)
427 (uri (string-append "mirror://sourceforge/dvdstyler/dvdstyler/"
428 version "/DVDStyler-" version ".tar.bz2"))
429 (sha256
430 (base32
7268563b 431 "0lwc0hn94m9r8fi07sjqz3fr618l6lnw3zsakxw7nlgnxbjsk7pi"))))
52cb22cd
TD
432 (build-system gnu-build-system)
433 (arguments
24a300b1
TGR
434 `(#:configure-flags
435 (list (string-append "XMLTO="
436 (assoc-ref %build-inputs "xmlto")
437 "/bin/xmlto --searchpath "
438 (assoc-ref %build-inputs "docbook-xsl")
439 "/xml/xsl/docbook-xsl-" ,(package-version docbook-xsl)
440 "/htmlhelp:"
441 (assoc-ref %build-inputs "docbook-xml")
442 "/xml/dtd/docbook"))
52cb22cd
TD
443 #:phases
444 (modify-phases %standard-phases
445 (add-after 'install 'wrap-program
446 (lambda* (#:key inputs outputs #:allow-other-keys)
447 (wrap-program (string-append (assoc-ref outputs "out") "/bin/dvdstyler")
448 `("PATH" ":" prefix
449 (,(string-join
450 (map (lambda (in) (string-append (assoc-ref inputs in) "/bin"))
451 '("cdrtools" "dvdauthor" "dvd+rw-tools" "ffmpeg"))
452 ":"))))
453 #t)))
454 #:tests? #f)) ; No tests.
455 (inputs ; TODO package bundled wxvillalib
456 `(("wxwidgets" ,wxwidgets-3.1)
457 ("wssvg" ,wxsvg)
458 ("dbus" ,dbus)
459 ("cdrtools" ,cdrtools)
460 ("dvd+rw-tools" ,dvd+rw-tools)
461 ("dvdauthor" ,dvdauthor)
462 ("eudev" ,eudev)
463 ("fontconfig" ,fontconfig)
464 ("libexif" ,libexif)
465 ("libjpeg" ,libjpeg)
bb5c508c 466 ("ffmpeg" ,ffmpeg-3.4)))
52cb22cd
TD
467 (native-inputs
468 `(("pkg-config" ,pkg-config)
469 ("flex" ,flex)
470 ("python" ,python-2)
471 ("xmlto" ,xmlto)
472 ("gettext" ,gnu-gettext)
473 ("docbook-xml" ,docbook-xml)
474 ("docbook-xsl" ,docbook-xsl)
475 ("zip" ,zip)))
476 (synopsis "DVD authoring application")
477 (description "DVDStyler is a DVD authoring application which allows users
478to burn video files in many formats to DVD discs, complete with individually
479designed menus. It can be used to create professional-looking DVD's with
480custom buttons, backgrounds and animations, from within a user-friendly
481graphical interface.")
482 (home-page "https://www.dvdstyler.org")
483 (license gpl2)))
484
fab74288
PW
485(define-public libcue
486 (package
487 (name "libcue")
05fcb98d 488 (version "2.2.1")
fab74288 489 (source (origin
de1830ae
RW
490 (method git-fetch)
491 (uri (git-reference
492 (url "https://github.com/lipnitsk/libcue.git")
493 (commit (string-append "v" version))))
494 (file-name (git-file-name name version))
fab74288
PW
495 (sha256
496 (base32
de1830ae 497 "1iqw4n01rv2jyk9lksagyxj8ml0kcfwk67n79zy1r6zv1xfp5ywm"))))
41447b31 498 (build-system cmake-build-system)
05fcb98d
MB
499 (arguments
500 `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
41447b31
AK
501 (native-inputs
502 `(("bison" ,bison)
503 ("flex" ,flex)))
8caf80fc 504 (home-page "https://github.com/lipnitsk/libcue")
fab74288
PW
505 (synopsis "C library to parse cue sheets")
506 (description "Libcue is a C library to parse so-called @dfn{cue sheets}
507which contain meta-data for CD/DVD tracks. It provides an API to manipulate
508the data.")
509 (license gpl2+)))
510
e2bb5fd6
LC
511(define-public cd-discid
512 (package
513 (name "cd-discid")
514 (version "1.4")
515 (home-page "http://linukz.org/cd-discid.shtml")
516 (source (origin
517 (method url-fetch)
d514bedb 518 (uri (string-append "http://linukz.org/download/cd-discid-"
e2bb5fd6
LC
519 version ".tar.gz"))
520 (sha256
521 (base32
522 "0qrcvn7227qaayjcd5rm7z0k5q89qfy5qkdgwr5pd7ih0va8rmpz"))
523 (modules '((guix build utils)))
524 (snippet
6cbee49d
MW
525 '(begin
526 (substitute* "Makefile"
527 (("/usr/bin/install")
528 "install"))
529 #t))))
e2bb5fd6
LC
530 (build-system gnu-build-system)
531 (arguments
532 '(#:tests? #f
dc1d3cde 533 #:phases (modify-phases %standard-phases (delete 'configure))
e2bb5fd6
LC
534 #:make-flags (list "CC=gcc"
535 (string-append "PREFIX="
536 (assoc-ref %outputs "out")))))
537 (synopsis "Get CDDB discid information from an audio CD")
538 (description
539 "cd-discid is a command-line tool to retrieve CDDB discid information
540from an audio CD.")
541 (license gpl2+)))
7dfc937e
LC
542
543(define-public abcde
544 (package
545 (name "abcde")
25945666 546 (version "2.9.3")
1bb4005f 547 (home-page "https://abcde.einval.com/")
7dfc937e
LC
548 (source (origin
549 (method url-fetch)
550 (uri (string-append home-page "/download/abcde-"
551 version ".tar.gz"))
552 (sha256
553 (base32
25945666 554 "091ip2iwb6b67bhjsj05l0sxyq2whqjycbzqpkfbpm4dlyxx0v04"))
7dfc937e
LC
555 (modules '((guix build utils)))
556 (snippet
25945666 557 '(begin
6cbee49d
MW
558 (substitute* "Makefile"
559 (("/usr/bin/install")
25945666 560 "install"))
6cbee49d 561 #t))))
7dfc937e
LC
562 (build-system gnu-build-system)
563 (arguments
7df85799
EF
564 '(#:phases
565 (modify-phases %standard-phases
566 (replace 'configure
567 (lambda* (#:key outputs inputs #:allow-other-keys)
568 (substitute* "Makefile"
569 (("^prefix = .*$")
570 (string-append "prefix = "
571 (assoc-ref outputs "out")
c2a3b23f
EF
572 "\n"))
573 (("^sysconfdir = .*$")
574 (string-append "sysconfdir = "
575 (assoc-ref outputs "out")
576 "/etc/\n")))
577 #t))
7df85799
EF
578 (add-after 'install 'wrap
579 (lambda* (#:key inputs outputs #:allow-other-keys)
580 (let ((wget (assoc-ref inputs "wget"))
581 (vorbis (assoc-ref inputs "vorbis-tools"))
582 (parano (assoc-ref inputs "cdparanoia"))
583 (which (assoc-ref inputs "which"))
584 (discid (assoc-ref inputs "cd-discid"))
949457c1
LC
585 (perl-discid (assoc-ref inputs "perl-musicbrainz-discid"))
586 (perl-ws (assoc-ref inputs "perl-webservice-musicbrainz"))
587 (perl-mojo (assoc-ref inputs "perl-mojolicious"))
0d1baed2 588 (flac (assoc-ref inputs "flac"))
7df85799
EF
589 (out (assoc-ref outputs "out")))
590 (define (wrap file)
591 (wrap-program file
592 `("PATH" ":" prefix
593 (,(string-append out "/bin:"
594 wget "/bin:"
0d1baed2 595 flac "/bin:"
7df85799
EF
596 which "/bin:"
597 vorbis "/bin:"
598 discid "/bin:"
949457c1
LC
599 parano "/bin")))
600 `("PERL5LIB" ":" prefix
601 (,(string-append perl-discid
602 "/lib/perl5/site_perl:"
603 perl-ws
604 "/lib/perl5/site_perl:"
605 perl-mojo
606 "/lib/perl5/site_perl")))))
7dfc937e 607
7df85799
EF
608 (for-each wrap
609 (find-files (string-append out "/bin")
46756754
EF
610 ".*")))
611 #t)))
c2a3b23f 612 #:tests? #f)) ; no test target
7dfc937e
LC
613
614 (inputs `(("wget" ,wget)
615 ("which" ,which)
616 ("cdparanoia" ,cdparanoia)
617 ("cd-discid" ,cd-discid)
618 ("vorbis-tools" ,vorbis-tools)
0d1baed2 619 ("flac" ,flac)
7dfc937e 620
949457c1
LC
621 ("perl-musicbrainz-discid" ,perl-musicbrainz-discid)
622 ("perl-webservice-musicbrainz" ,perl-webservice-musicbrainz)
623 ("perl-mojolicious" ,perl-mojolicious) ;indirect dependency
624
7dfc937e
LC
625 ;; A couple of Python and Perl scripts are included.
626 ("python" ,python)
627 ("perl" ,perl)))
628
629 (synopsis "Command-line audio CD ripper")
630 (description
631 "abcde is a front-end command-line utility (actually, a shell script)
632that grabs tracks off a CD, encodes them to Ogg/Vorbis, MP3, FLAC, Ogg/Speex
633and/or MPP/MP+ (Musepack) format, and tags them, all in one go.")
634 (license gpl2+)))
b4edcd28
MB
635
636(define-public geteltorito
637 (package
638 (name "geteltorito")
639 (version "0.6")
640 (home-page
641 "https://userpages.uni-koblenz.de/~krienke/ftp/noarch/geteltorito/")
642 (source (origin
643 (method url-fetch)
644 (uri (string-append home-page name "-" version ".tar.gz"))
645 (sha256
646 (base32
647 "1gkbm9ahj2mgqrkrfpibzclsriqgsbsvjh19fr815vpd9f6snkxv"))))
648 (build-system gnu-build-system)
649 (arguments
650 `(#:tests? #f ; No tests.
651 #:phases
652 (modify-phases %standard-phases
653 (delete 'configure)
654 (delete 'build)
655 (replace 'install
656 (lambda* (#:key outputs #:allow-other-keys)
657 (let ((out (assoc-ref outputs "out")))
658 (install-file "geteltorito"
659 (string-append out "/bin"))))))))
660 (inputs `(("perl" ,perl)))
661 (synopsis "Extract the boot image from a CD-ROM")
662 (description
663 "@command{geteltorito} can extract the initial/default boot
664image from CDs (and ISOs) that follow the El Torito specification
665for bootable CD-ROMs.
666
667Image data is written to standard output by default and all other
668information is written to standard error.")
669 (license gpl2+)))
426e6083
CM
670
671(define-public asunder
672 (package
673 (name "asunder")
80a69935 674 (version "2.9.3")
426e6083
CM
675 (source (origin
676 (method url-fetch)
677 (uri
678 (string-append "http://www.littlesvr.ca/asunder/releases/asunder-"
679 version
680 ".tar.bz2"))
681 (sha256
682 (base32
80a69935 683 "1630i1df06y840v3fgdf75jxw1s8kwbfn5bhi0686viah0scccw5"))))
426e6083
CM
684 (build-system glib-or-gtk-build-system)
685 (arguments
686 '(#:out-of-source? #f
687 #:phases (modify-phases %standard-phases
688 (add-after 'install 'wrap
689 (lambda* (#:key inputs outputs #:allow-other-keys)
690 (let ((program (string-append (assoc-ref outputs "out")
691 "/bin/asunder")))
692 (define (bin-directory input-name)
693 (string-append (assoc-ref inputs input-name) "/bin"))
694 (wrap-program program
695 `("PATH" ":" prefix
696 ,(map bin-directory (list "cdparanoia"
697 "lame"
698 "vorbis-tools"
699 "flac"
700 "opus-tools"
701 "wavpack"))))))))))
702 (native-inputs `(("intltool" ,intltool)
703 ("pkg-config" ,pkg-config)))
704 ;; TODO: Add the necessary packages for Musepack encoding.
705 (inputs `(("gtk+-2" ,gtk+-2)
706 ("glib" ,glib)
707 ("libcddb" ,libcddb)
708 ("cdparanoia" ,cdparanoia)
709 ("lame" ,lame)
710 ("vorbis-tools" ,vorbis-tools)
711 ("flac" ,flac)
712 ("opus-tools" ,opus-tools)
713 ("wavpack" ,wavpack)))
714 (home-page "http://www.littlesvr.ca/asunder/")
715 (synopsis "Graphical audio CD ripper and encoder")
716 (description
717 "Asunder is a graphical audio CD ripper and encoder. It can save audio
718tracks as WAV, MP3, Ogg Vorbis, FLAC, Opus, Wavpack, and Musepack. It can use
719CDDB to name and tag each track automatically, and it allows for each track to
720be by a different artist. Asunder can encode to multiple formats in one
721session, and it can create M3U playlists.")
722 (license gpl2)))
328398e7
RJ
723
724(define-public ripit
725 (package
726 (name "ripit")
727 (version "3.9.0")
3dc8b465
TGR
728 (source
729 (origin
730 (method url-fetch)
731 ;; The original suwald.com domain has expired.
732 (uri (list
733 (string-append "https://web.archive.org/web/20160327050927/"
734 "http://suwald.com/ripit/ripit-" version ".tar.gz")
735 (string-append "https://ponce.cc/slackware/sources/repo/ripit-"
736 version ".tar.gz")))
737 (sha256
738 (base32 "0ap71x477jy9c4jiqazb3y45hxdxm3jbq24x05g3vjyqzigi4x1b"))))
328398e7
RJ
739 (build-system gnu-build-system)
740 (arguments
3dc8b465 741 `(#:tests? #f ; no test suite
328398e7
RJ
742 #:phases
743 (modify-phases %standard-phases
744 (delete 'configure)
745 (add-after 'unpack 'patch-usr-bin-install
746 (lambda* (#:key inputs outputs #:allow-other-keys)
747 (substitute* "Makefile"
748 (("/usr/bin/install") (string-append
749 (assoc-ref inputs "coreutils")
750 "/bin/install"))
751 (("\\$\\(DESTDIR\\)/usr/local") (assoc-ref outputs "out"))
752 (("../../etc") "etc")))))))
753 (native-inputs
754 `(("coreutils" ,coreutils)))
755 (inputs
756 `(("perl" ,perl)))
757 (propagated-inputs
758 `(("cdparanoia" ,cdparanoia)
759 ("flac" ,flac)
760 ("vorbis-tools" ,vorbis-tools)
761 ("wavpack" ,wavpack)
762 ("perl-cddb-get" ,perl-cddb-get)))
3dc8b465
TGR
763 (home-page (string-append "https://web.archive.org/web/20170119092156/"
764 "http://www.suwald.com/ripit/about.php"))
328398e7
RJ
765 (synopsis "Command-line program to extract audio CDs")
766 (description "RipIT is used to extract audio from CDs.")
767 (license gpl2)))
a9406b24
JD
768
769(define-public ccd2cue
770 (package
771 (name "ccd2cue")
772 (version "0.5")
773 (source
774 (origin
775 (method url-fetch)
776 (uri (string-append
777 "mirror://gnu/ccd2cue/ccd2cue-" version
778 ".tar.gz"))
779 (sha256
780 (base32
781 "1icrkg25hwx4gsn3dski2172ia4ywjh8m1sa17zmjclnrgdwy9c7"))))
782 (build-system gnu-build-system)
783 (synopsis "CCD to CUE sheet conversion")
784 (description
785 "GNU ccd2cue is a preprocessor for CD burning software that allows
786the conversion of the proprietary CCD format to the CUE format, which
787is well-supported by free software. These files are commonly
788distributed with CD images and are used to describe how tracks are
789laid out on the image.")
6fd52309 790 (home-page "https://www.gnu.org/software/ccd2cue/")
a9406b24 791 (license gpl3+)))
1d8e04e6 792
793(define-public libburn
794 (package
795 (name "libburn")
4999f45e 796 (version "1.5.0")
1d8e04e6 797 (source (origin
798 (method url-fetch)
799 (uri (string-append "http://files.libburnia-project.org/releases/"
800 "libburn-" version ".tar.gz"))
801 (sha256
802 (base32
4999f45e 803 "1gg2kgnqvaa2fwghai62prxz6slpak1f6bvgjh8m4dn16v114asq"))))
1d8e04e6 804 (build-system gnu-build-system)
805 (native-inputs
806 `(("pkg-config" ,pkg-config)))
807 (home-page "https://dev.lovelyhq.com/libburnia/libburn")
808 (synopsis "Library for reading and writing optical discs")
809 (description
810 "Libburn is a library for reading and writing optical discs.
811Supported media are: CD-R, CD-RW, DVD-RAM, DVD+RW, DVD+R, DVD+R/DL,
812DVD-RW, DVD-R, DVD-R/DL, BD-R, and BD-RE.")
813 (license gpl2)))
dbfab26d 814
815(define-public libisofs
816 (package
817 (name "libisofs")
8190578f 818 (version "1.5.0")
dbfab26d 819 (source (origin
820 (method url-fetch)
821 (uri (string-append "http://files.libburnia-project.org/releases/"
822 "libisofs-" version ".tar.gz"))
823 (sha256
824 (base32
8190578f 825 "001l3akf3wb6msl9man776w560iqyvsbwwzs7d7y7msx13irspys"))))
dbfab26d 826 (build-system gnu-build-system)
827 (inputs
828 `(("zlib" ,zlib)
829 ("acl" ,acl)))
830 (native-inputs
831 `(("pkg-config" ,pkg-config)))
832 (home-page "https://dev.lovelyhq.com/libburnia/libisofs")
833 (synopsis "Library to create ISO 9660 images")
834 (description
2773c244 835 "Libisofs creates ISO 9660 (also known as ECMA-119) file system images
dbfab26d 836which can either be written to POSIX file objects or handed over to
837libburn for being written directly to optical media.
838It can read metadata of ISO 9660 filesystems, manipulate them, and use them
2773c244
TGR
839to produce new complete file system images or add-on images to be appended
840to the read file system image.
dbfab26d 841Supported extensions to ISO 9660 are Rock Ridge, Joliet, AAIP, zisofs.")
842 (license gpl2+)))
c54511fd
OP
843
844(define-public cdrkit-libre
845 (package
846 (name "cdrkit-libre")
847 (version "1.1.11")
848 (source (origin
849 (method url-fetch)
850 ;; cdrkit.org is dead.
851 ;;
852 ;; ‘cdrkit-libre’ removes a couple of problematic files,
853 ;; see <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32165#14>.
854 (uri (string-append
855 "https://repo.parabola.nu/other/cdrkit-libre/cdrkit-libre-"
856 version ".tar.gz"))
857 (sha256
858 (base32
859 "0g2zyzb56czh429qy87lvaddzjnlcq8c616ddxsmsshz3clhyzrh"))))
860 (build-system cmake-build-system)
861 (inputs
862 `(("bzip2" ,bzip2)
863 ("libcap" ,libcap)
864 ("perl" ,perl)
865 ("zlib" ,zlib)))
866 (arguments
867 `(#:tests? #f ;no tests
868 #:phases
869 (modify-phases %standard-phases
870 (add-after 'install 'old-cdrecord
871 (lambda* (#:key outputs #:allow-other-keys)
872 (with-directory-excursion (string-append (assoc-ref outputs "out")
873 "/bin")
874 (symlink "genisoimage" "mkisofs")
875 (symlink "wodim" "cdrecord"))
876 #t)))))
877 (home-page "https://repo.parabola.nu/other/cdrkit-libre/")
878 (synopsis "Command-line CD/DVD recorder")
879 (description "Cdrkit is a suite of programs for recording CDs and DVDs,
880blanking CD-RW media, creating ISO-9660 file system images, extracting audio
881CD data, and more. It's mostly compatible with @code{cdrtools}.")
882 (license gpl2+)))
4a22d71a
PN
883
884(define-public libmirage
885 (package
886 (name "libmirage")
d2015717 887 (version "3.2.2")
4a22d71a
PN
888 (source (origin
889 (method url-fetch)
890 (uri (string-append
891 "https://downloads.sourceforge.net/cdemu/libmirage-"
892 version ".tar.bz2"))
893 (sha256
894 (base32
d2015717 895 "0gwrfia0fyhi0b3p2pfyyvrcfcb0qysfzgpdqsqjqbx4xaqx5wpi"))))
4a22d71a
PN
896 (build-system cmake-build-system)
897 (native-inputs
898 `(("pkg-config" ,pkg-config)
899 ("intltool" ,intltool)))
900 (inputs
901 `(("glib" ,glib)))
902 (arguments
903 ;; No tests.
904 '(#:tests? #f))
905 (home-page "https://cdemu.sourceforge.io/")
906 (synopsis "CD-ROM image access library")
907 (description "libMirage is a CD-ROM image access library. It supports the
908following formats: B6T, C2D, CCD, CDI, CIF, CUE, ISO, MDS, MDX, NRG, TOC. It
909is written in C and based on GLib. Its aim is to provide uniform access to
910the data stored in various image formats.")
911 (license gpl2+)))
ba5c154e
PN
912
913(define-public cdemu-daemon
914 (package
915 (name "cdemu-daemon")
97dbf75a 916 (version "3.2.2")
ba5c154e
PN
917 (source (origin
918 (method url-fetch)
919 (uri (string-append
920 "https://downloads.sourceforge.net/cdemu/cdemu-daemon/cdemu-daemon-"
921 version ".tar.bz2"))
922 (sha256
923 (base32
97dbf75a 924 "0himyrhhfjsr4ff5aci7240bpm9x34h20pid412ci8fm16nk929b"))))
ba5c154e
PN
925 (build-system cmake-build-system)
926 (native-inputs
927 `(("pkg-config" ,pkg-config)
928 ("intltool" ,intltool)))
929 (inputs
930 `(("libmirage" ,libmirage)
931 ("glib" ,glib)
932 ("ao" ,ao)))
933 (arguments
934 ;; No tests.
935 '(#:tests? #f))
936 (home-page "https://cdemu.sourceforge.io/")
937 (synopsis "CD/DVD-ROM device emulator")
938 (description "CDemu is a software suite designed to emulate an optical
939drive and disc (including CD-ROMs and DVD-ROMs).")
940 (license gpl2+)))
9a018b9b
PN
941
942(define-public cdemu-client
943 (package
944 (name "cdemu-client")
b03a4ed4 945 (version "3.2.1")
9a018b9b
PN
946 (source (origin
947 (method url-fetch)
948 (uri (string-append
949 "https://downloads.sourceforge.net/cdemu/cdemu-client-"
950 version ".tar.bz2"))
951 (sha256
952 (base32
b03a4ed4 953 "1d8m24qvv62xcwafw5zs4yf39vs64kxl4idqcngd8yyjhrb2ykg5"))))
9a018b9b
PN
954 (build-system cmake-build-system)
955 (native-inputs
956 `(("pkg-config" ,pkg-config)
957 ("intltool" ,intltool)))
958 (inputs
959 `(("python" ,python)
960 ("python-pygobject" ,python-pygobject)
961 ("cdemu-daemon" ,cdemu-daemon)))
962 (arguments
963 ;; No tests.
964 `(#:tests? #f
965 #:phases
966 (modify-phases %standard-phases
967 (add-after 'install 'patch-shebang
968 (lambda* (#:key outputs #:allow-other-keys)
969 (patch-shebang (string-append (assoc-ref outputs "out")
970 "/bin/cdemu"))
971 #t))
972 (add-after 'patch-shebang 'wrap-program
973 (lambda* (#:key outputs #:allow-other-keys)
974 (let ((prog (string-append (assoc-ref outputs "out")
975 "/bin/cdemu")))
976 (wrap-program prog
977 `("PYTHONPATH" = (,(getenv "PYTHONPATH"))))
978 #t))))))
979 (home-page "https://cdemu.sourceforge.io/")
980 (synopsis "Command-line client for controlling cdemu-daemon")
981 (description "CDEmu client is a simple command-line client for controlling
982CDEmu daemon.
983
984It provides a way to perform the key tasks related to controlling the CDEmu
985daemon, such as loading and unloading devices, displaying devices' status and
986retrieving/setting devices' debug masks.")
987 (license gpl2+)))