gnu: r-mlinterfaces: Update to 1.62.1.
[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
d9905171 165 "0aq6lvlwlkxz56l5sbvgycr6j5c82ch2bv6zrnc2345ibfpafgx9"))))
6064c4cd
LC
166 (build-system gnu-build-system)
167 (inputs
168 `(("acl" ,acl)
169 ("readline" ,readline)
a3a932c0 170 ("zlib" ,zlib)))
cb764dc8 171 (home-page "https://www.gnu.org/software/xorriso/")
8f65585b 172 (synopsis "Create, manipulate, burn ISO-9660 file systems")
6064c4cd 173 (description
79c311b8 174 "GNU Xorriso is a tool for copying files to and from ISO 9660 Rock
8f65585b 175Ridge, a.k.a. Compact Disc File System, file systems and it allows
79c311b8
LC
176session-wise manipulation of them. It features a formatter and burner for
177CD, DVD and BD. It can operate on existing ISO images or it can create new
178ones. xorriso can then be used to copy files directly into or out of ISO
179files.")
6064c4cd 180 (license gpl3+)))
6bfc16d9
AE
181
182(define-public cdparanoia
183 (package
184 (name "cdparanoia")
185 (version "10.2")
186 (source (origin
187 (method url-fetch)
a124bbd2
SB
188 (uri (string-append "http://downloads.xiph.org/releases/"
189 "cdparanoia/cdparanoia-III-"
6bfc16d9
AE
190 version ".src.tgz"))
191 (sha256
192 (base32
01eafd38 193 "1pv4zrajm46za0f6lv162iqffih57a8ly4pc69f7y0gfyigb8p80"))
fc1adab1 194 (patches (search-patches "cdparanoia-fpic.patch"))
d1f9e45e
SB
195 (modules '((guix build utils)))
196 (snippet
6cbee49d
MW
197 '(begin
198 ;; Make libraries respect LDFLAGS.
199 (substitute* '("paranoia/Makefile.in" "interface/Makefile.in")
200 (("-Wl,-soname") "$(LDFLAGS) -Wl,-soname"))
201 #t))))
6bfc16d9 202 (build-system gnu-build-system)
6bfc16d9
AE
203 (arguments
204 `(#:tests? #f ; there is no check target
d1f9e45e
SB
205 #:configure-flags ; Add $libdir to the RUNPATH of all the executables.
206 (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))))
6bfc16d9 207 (home-page "http://www.xiph.org/paranoia/")
35b9e423 208 (synopsis "Audio CD reading utility")
6bfc16d9
AE
209 (description "Cdparanoia retrieves audio tracks from CDDA capable CDROM
210drives. The data can be saved to a file or directed to standard output
516e93f8 211in WAV, AIFF, AIFF-C or raw format. Most ATAPI, SCSI and several
6bfc16d9
AE
212proprietary CDROM drive makes are supported; cdparanoia can determine if the
213target drive is CDDA capable. In addition to simple reading, cdparanoia adds
214extra-robust data verification, synchronization, error handling and scratch
215reconstruction capability.")
216 (license gpl2))) ; libraries under lgpl2.1
c1cab15a 217
ded59665
TD
218(define-public cdrtools
219 (package
220 (name "cdrtools")
221 (version "3.01")
222 (source (origin
223 (method url-fetch)
224 (uri (string-append
225 "mirror://sourceforge/cdrtools/cdrtools-" version ".tar.bz2"))
226 (sha256
227 (base32
228 "03w6ypsmwwy4d7vh6zgwpc60v541vc5ywp8bdb758hbc4yv2wa7d"))
842ffcfd
LC
229 (modules '((guix build utils)))
230 (snippet
231 '(begin
232 ;; By default 'cdda2wav --help' would print a string like
233 ;; "Version 3.01_linux_4.19.10-gnu_x86_64_x86_64". Change
234 ;; it to not capture the kernel version of the build
235 ;; machine, to allow for reproducible builds.
236 (substitute* "cdda2wav/local.cnf.in"
237 (("^VERSION_OS=.*")
238 (string-append
239 "actual_os := $(shell uname -o)\n"
240 "actual_arch := $(shell uname -m)\n"
241 "VERSION_OS = _$(actual_os)_$(actual_arch)\n")))
242 #t))
ded59665
TD
243 (patches (search-patches "cdrtools-3.01-mkisofs-isoinfo.patch"))))
244 (build-system gnu-build-system)
245 ;; XXX cdrtools bundles a modified, relicensed early version of cdparanoia.
246 (inputs
247 `(("linux-headers" ,linux-libre-headers)))
248 (arguments
f67cb8eb
RW
249 `(#:make-flags
250 (list "RM=rm" "LN=ln" "SYMLINK=ln -s"
251 "CONFIG_SHELL=sh" "CCOM=gcc"
252 (string-append "INS_BASE=" (assoc-ref %outputs "out"))
253 (string-append "INS_RBASE=" (assoc-ref %outputs "out")))
e0611e9a
EB
254 ;; Parallel builds appear to be unsafe, see
255 ;; https://hydra.gnu.org/build/3346840/log/raw
256 #:parallel-build? #f
f67cb8eb 257 #:phases
ded59665
TD
258 (modify-phases %standard-phases
259 (delete 'configure)
260 (add-before 'build 'set-linux-headers
261 (lambda _
262 (substitute* "autoconf/configure"
263 (("/usr/src/linux")
264 (assoc-ref %build-inputs "linux-headers")))
265 #t))
266 (add-before 'build 'substitute-dirs
267 (lambda _
268 (substitute* (append (find-files "DEFAULTS" "^Defaults\\.")
269 (find-files "DEFAULTS_ENG" "^Defaults\\.")
270 (find-files "TEMPLATES" "^Defaults\\."))
271 (("/opt/schily") (assoc-ref %outputs "out")))
f67cb8eb 272 #t)))
ded59665
TD
273 #:tests? #f)) ; no tests
274 (synopsis "Command line utilities to manipulate and burn CD/DVD/BD images")
275 (description "cdrtools is a collection of command line utilities to create
276CD's, DVD's or Blue Ray discs. The most important components are
277@command{cdrecord}, a burning program, @command{cdda2wav}, a CD audio ripper
278which uses libparanoia, and @command{mkisofs}, which can create various disc
279images.")
280 (home-page "http://cdrtools.sourceforge.net/private/cdrecord.html")
281
282 ;; mkisofs is GPL, the other programs are CDDL.
283 (license (list cddl1.0 gpl2))))
284
76e98457
TD
285(define-public dvd+rw-tools
286 (package
287 (name "dvd+rw-tools")
288 (version "7.1")
289 (source (origin
290 (method url-fetch)
291 (uri (string-append
292 "http://fy.chalmers.se/~appro/linux/DVD+RW/tools/dvd+rw-tools-"
293 version ".tar.gz"))
294 (sha256
295 (base32
296 "1jkjvvnjcyxpql97xjjx0kwvy70kxpiznr2zpjy2hhci5s10zmpq"))
297 (patches (search-patches "dvd+rw-tools-add-include.patch"))))
298 (build-system gnu-build-system)
299 (inputs
300 `(("cdrtools" ,cdrtools)))
301 (native-inputs
302 `(("m4" ,m4)))
303 (arguments
304 `(#:tests? #f ; No tests.
305 #:phases
306 (modify-phases %standard-phases
2529c838
EF
307 (add-after 'unpack 'fix-glibc-compatability
308 (lambda* (#:key inputs #:allow-other-keys)
309 ;; We use sed --in-place because substitute* cannot handle the
310 ;; character encoding used by growisofs.c.
311 (invoke "sed" "-i" "-e"
312 (string-append
313 "s,<sys/stat.h>,"
314 "<sys/stat.h>\\\n#include <sys/sysmacros.h>,")
315 "growisofs.c")))
76e98457
TD
316 (replace 'configure
317 (lambda _ (setenv "prefix" (assoc-ref %outputs "out")) #t))
318 (add-before 'build 'embed-mkisofs
efe0a4a2 319 (lambda* (#:key inputs #:allow-other-keys)
76e98457
TD
320 ;; We use sed --in-place because substitute* cannot handle the
321 ;; character encoding used by growisofs.c.
efe0a4a2
EF
322 (invoke "sed" "-i" "-e"
323 (string-append
324 "s,\"mkisofs\","
325 "\"" (which "mkisofs") "\",")
326 "growisofs.c"))))))
76e98457
TD
327 (home-page "http://fy.chalmers.se/~appro/linux/DVD+RW/")
328 (synopsis "DVD and Blu-ray Disc burning tools")
329 (description "dvd+rw-tools, mostly known for its command
330@command{growisofs}, is a collection of DVD and Blu-ray Disc burning tools.
331It requires another program, such as @command{mkisofs}, @command{genisoimage},
332or @command{xorrisofs} to create ISO 9660 images.")
333 (license gpl2)))
334
c1cab15a
AE
335(define-public dvdisaster
336 (package
337 (name "dvdisaster")
036fd4f2 338 (version "0.79.5")
6da31b3c
TGR
339 (source
340 (origin
341 (method url-fetch)
342 ;; Update this (and update HOME-PAGE) when/if one reappears.
343 (uri (string-append "https://web.archive.org/web/20180428070843/"
344 "http://dvdisaster.net/downloads/dvdisaster-"
345 version ".tar.bz2"))
346 (sha256
347 (base32 "0f8gjnia2fxcbmhl8b3qkr5b7idl8m855dw7xw2fnmbqwvcm6k4w"))))
c1cab15a
AE
348 (build-system gnu-build-system)
349 (inputs
c4c4cc05
JD
350 `(("gtk+" ,gtk+-2)))
351 (native-inputs
b94a6ca0 352 `(("gettext" ,gettext-minimal)
c1cab15a
AE
353 ("pkg-config" ,pkg-config)
354 ("which" ,which)))
355 (arguments
c397e502
LC
356 `(;; Parallel builds appear to be unsafe, see
357 ;; <http://hydra.gnu.org/build/49331/nixlog/1/raw>.
358 #:parallel-build? #f
98b0ec7f
EB
359 #:phases
360 (modify-phases %standard-phases
fefcb122
EB
361 (replace 'check
362 (lambda _
363 (with-directory-excursion "regtest"
364 (substitute* "common.bash"
365 (("ISODIR=/var/tmp/regtest") "ISODIR=/tmp"))
366 (for-each invoke (find-files "." "rs.*\\.bash")))
367 #t))
98b0ec7f
EB
368 (add-after 'install 'install-desktop
369 (lambda* (#:key outputs #:allow-other-keys)
370 (let* ((datadir (string-append (assoc-ref outputs "out") "/share")))
371 (substitute* "contrib/dvdisaster.desktop"
372 (("dvdisaster48.png") "dvdisaster.png"))
373 (install-file "contrib/dvdisaster.desktop"
374 (string-append datadir "/applications"))
375 (for-each
376 (lambda (png)
377 (let* ((size (substring png
378 (string-index png char-set:digit)
379 (string-rindex png #\.)))
380 (icondir (string-append datadir "/icons/"
381 size "x" size "/apps")))
382 (mkdir-p icondir)
383 (copy-file png (string-append icondir "/dvdisaster.png"))))
384 (find-files "contrib" "dvdisaster[0-9]*\\.png"))
385 (mkdir-p (string-append datadir "/pixmaps"))
386 (copy-file "contrib/dvdisaster48.xpm"
387 (string-append datadir "/pixmaps/dvdisaster.xpm"))
388 #t))))))
6da31b3c
TGR
389 (home-page (string-append "https://web.archive.org/web/20180428070843/"
390 "http://dvdisaster.net/en/index.html"))
35b9e423 391 (synopsis "Error correcting codes for optical media images")
c1cab15a
AE
392 (description "Optical media (CD,DVD,BD) keep their data only for a
393finite time (typically for many years). After that time, data loss develops
394slowly with read errors growing from the outer media region towards the
395inside.
396
397Dvdisaster stores data on CD/DVD/BD (supported media) in a way that it is
398fully recoverable even after some read errors have developed. This enables
399you to rescue the complete data to a new medium.
400
401Data loss is prevented by using error correcting codes. Error correction
402data is either added to the medium or kept in separate error correction
403files. Dvdisaster works at the image level so that the recovery does not
404depend on the file system of the medium. The maximum error correction
405capacity is user-selectable.")
406 (license gpl2+)))
e2bb5fd6 407
52cb22cd
TD
408(define-public dvdstyler
409 (package
410 (name "dvdstyler")
7268563b 411 (version "3.0.4")
52cb22cd
TD
412 (source
413 (origin
414 (method url-fetch)
415 (uri (string-append "mirror://sourceforge/dvdstyler/dvdstyler/"
416 version "/DVDStyler-" version ".tar.bz2"))
417 (sha256
418 (base32
7268563b 419 "0lwc0hn94m9r8fi07sjqz3fr618l6lnw3zsakxw7nlgnxbjsk7pi"))))
52cb22cd
TD
420 (build-system gnu-build-system)
421 (arguments
24a300b1
TGR
422 `(#:configure-flags
423 (list (string-append "XMLTO="
424 (assoc-ref %build-inputs "xmlto")
425 "/bin/xmlto --searchpath "
426 (assoc-ref %build-inputs "docbook-xsl")
427 "/xml/xsl/docbook-xsl-" ,(package-version docbook-xsl)
428 "/htmlhelp:"
429 (assoc-ref %build-inputs "docbook-xml")
430 "/xml/dtd/docbook"))
52cb22cd
TD
431 #:phases
432 (modify-phases %standard-phases
433 (add-after 'install 'wrap-program
434 (lambda* (#:key inputs outputs #:allow-other-keys)
435 (wrap-program (string-append (assoc-ref outputs "out") "/bin/dvdstyler")
436 `("PATH" ":" prefix
437 (,(string-join
438 (map (lambda (in) (string-append (assoc-ref inputs in) "/bin"))
439 '("cdrtools" "dvdauthor" "dvd+rw-tools" "ffmpeg"))
440 ":"))))
441 #t)))
442 #:tests? #f)) ; No tests.
443 (inputs ; TODO package bundled wxvillalib
444 `(("wxwidgets" ,wxwidgets-3.1)
445 ("wssvg" ,wxsvg)
446 ("dbus" ,dbus)
447 ("cdrtools" ,cdrtools)
448 ("dvd+rw-tools" ,dvd+rw-tools)
449 ("dvdauthor" ,dvdauthor)
450 ("eudev" ,eudev)
451 ("fontconfig" ,fontconfig)
452 ("libexif" ,libexif)
453 ("libjpeg" ,libjpeg)
bb5c508c 454 ("ffmpeg" ,ffmpeg-3.4)))
52cb22cd
TD
455 (native-inputs
456 `(("pkg-config" ,pkg-config)
457 ("flex" ,flex)
458 ("python" ,python-2)
459 ("xmlto" ,xmlto)
460 ("gettext" ,gnu-gettext)
461 ("docbook-xml" ,docbook-xml)
462 ("docbook-xsl" ,docbook-xsl)
463 ("zip" ,zip)))
464 (synopsis "DVD authoring application")
465 (description "DVDStyler is a DVD authoring application which allows users
466to burn video files in many formats to DVD discs, complete with individually
467designed menus. It can be used to create professional-looking DVD's with
468custom buttons, backgrounds and animations, from within a user-friendly
469graphical interface.")
470 (home-page "https://www.dvdstyler.org")
471 (license gpl2)))
472
fab74288
PW
473(define-public libcue
474 (package
475 (name "libcue")
05fcb98d 476 (version "2.2.1")
fab74288 477 (source (origin
de1830ae
RW
478 (method git-fetch)
479 (uri (git-reference
480 (url "https://github.com/lipnitsk/libcue.git")
481 (commit (string-append "v" version))))
482 (file-name (git-file-name name version))
fab74288
PW
483 (sha256
484 (base32
de1830ae 485 "1iqw4n01rv2jyk9lksagyxj8ml0kcfwk67n79zy1r6zv1xfp5ywm"))))
41447b31 486 (build-system cmake-build-system)
05fcb98d
MB
487 (arguments
488 `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
41447b31
AK
489 (native-inputs
490 `(("bison" ,bison)
491 ("flex" ,flex)))
8caf80fc 492 (home-page "https://github.com/lipnitsk/libcue")
fab74288
PW
493 (synopsis "C library to parse cue sheets")
494 (description "Libcue is a C library to parse so-called @dfn{cue sheets}
495which contain meta-data for CD/DVD tracks. It provides an API to manipulate
496the data.")
497 (license gpl2+)))
498
e2bb5fd6
LC
499(define-public cd-discid
500 (package
501 (name "cd-discid")
502 (version "1.4")
503 (home-page "http://linukz.org/cd-discid.shtml")
504 (source (origin
505 (method url-fetch)
d514bedb 506 (uri (string-append "http://linukz.org/download/cd-discid-"
e2bb5fd6
LC
507 version ".tar.gz"))
508 (sha256
509 (base32
510 "0qrcvn7227qaayjcd5rm7z0k5q89qfy5qkdgwr5pd7ih0va8rmpz"))
511 (modules '((guix build utils)))
512 (snippet
6cbee49d
MW
513 '(begin
514 (substitute* "Makefile"
515 (("/usr/bin/install")
516 "install"))
517 #t))))
e2bb5fd6
LC
518 (build-system gnu-build-system)
519 (arguments
520 '(#:tests? #f
dc1d3cde 521 #:phases (modify-phases %standard-phases (delete 'configure))
e2bb5fd6
LC
522 #:make-flags (list "CC=gcc"
523 (string-append "PREFIX="
524 (assoc-ref %outputs "out")))))
525 (synopsis "Get CDDB discid information from an audio CD")
526 (description
527 "cd-discid is a command-line tool to retrieve CDDB discid information
528from an audio CD.")
529 (license gpl2+)))
7dfc937e
LC
530
531(define-public abcde
532 (package
533 (name "abcde")
25945666 534 (version "2.9.3")
1bb4005f 535 (home-page "https://abcde.einval.com/")
7dfc937e
LC
536 (source (origin
537 (method url-fetch)
538 (uri (string-append home-page "/download/abcde-"
539 version ".tar.gz"))
540 (sha256
541 (base32
25945666 542 "091ip2iwb6b67bhjsj05l0sxyq2whqjycbzqpkfbpm4dlyxx0v04"))
7dfc937e
LC
543 (modules '((guix build utils)))
544 (snippet
25945666 545 '(begin
6cbee49d
MW
546 (substitute* "Makefile"
547 (("/usr/bin/install")
25945666 548 "install"))
6cbee49d 549 #t))))
7dfc937e
LC
550 (build-system gnu-build-system)
551 (arguments
7df85799
EF
552 '(#:phases
553 (modify-phases %standard-phases
554 (replace 'configure
555 (lambda* (#:key outputs inputs #:allow-other-keys)
556 (substitute* "Makefile"
557 (("^prefix = .*$")
558 (string-append "prefix = "
559 (assoc-ref outputs "out")
c2a3b23f
EF
560 "\n"))
561 (("^sysconfdir = .*$")
562 (string-append "sysconfdir = "
563 (assoc-ref outputs "out")
564 "/etc/\n")))
565 #t))
7df85799
EF
566 (add-after 'install 'wrap
567 (lambda* (#:key inputs outputs #:allow-other-keys)
568 (let ((wget (assoc-ref inputs "wget"))
569 (vorbis (assoc-ref inputs "vorbis-tools"))
570 (parano (assoc-ref inputs "cdparanoia"))
571 (which (assoc-ref inputs "which"))
572 (discid (assoc-ref inputs "cd-discid"))
949457c1
LC
573 (perl-discid (assoc-ref inputs "perl-musicbrainz-discid"))
574 (perl-ws (assoc-ref inputs "perl-webservice-musicbrainz"))
575 (perl-mojo (assoc-ref inputs "perl-mojolicious"))
0d1baed2 576 (flac (assoc-ref inputs "flac"))
7df85799
EF
577 (out (assoc-ref outputs "out")))
578 (define (wrap file)
579 (wrap-program file
580 `("PATH" ":" prefix
581 (,(string-append out "/bin:"
582 wget "/bin:"
0d1baed2 583 flac "/bin:"
7df85799
EF
584 which "/bin:"
585 vorbis "/bin:"
586 discid "/bin:"
949457c1
LC
587 parano "/bin")))
588 `("PERL5LIB" ":" prefix
589 (,(string-append perl-discid
590 "/lib/perl5/site_perl:"
591 perl-ws
592 "/lib/perl5/site_perl:"
593 perl-mojo
594 "/lib/perl5/site_perl")))))
7dfc937e 595
7df85799
EF
596 (for-each wrap
597 (find-files (string-append out "/bin")
46756754
EF
598 ".*")))
599 #t)))
c2a3b23f 600 #:tests? #f)) ; no test target
7dfc937e
LC
601
602 (inputs `(("wget" ,wget)
603 ("which" ,which)
604 ("cdparanoia" ,cdparanoia)
605 ("cd-discid" ,cd-discid)
606 ("vorbis-tools" ,vorbis-tools)
0d1baed2 607 ("flac" ,flac)
7dfc937e 608
949457c1
LC
609 ("perl-musicbrainz-discid" ,perl-musicbrainz-discid)
610 ("perl-webservice-musicbrainz" ,perl-webservice-musicbrainz)
611 ("perl-mojolicious" ,perl-mojolicious) ;indirect dependency
612
7dfc937e
LC
613 ;; A couple of Python and Perl scripts are included.
614 ("python" ,python)
615 ("perl" ,perl)))
616
617 (synopsis "Command-line audio CD ripper")
618 (description
619 "abcde is a front-end command-line utility (actually, a shell script)
620that grabs tracks off a CD, encodes them to Ogg/Vorbis, MP3, FLAC, Ogg/Speex
621and/or MPP/MP+ (Musepack) format, and tags them, all in one go.")
622 (license gpl2+)))
b4edcd28
MB
623
624(define-public geteltorito
625 (package
626 (name "geteltorito")
627 (version "0.6")
628 (home-page
629 "https://userpages.uni-koblenz.de/~krienke/ftp/noarch/geteltorito/")
630 (source (origin
631 (method url-fetch)
632 (uri (string-append home-page name "-" version ".tar.gz"))
633 (sha256
634 (base32
635 "1gkbm9ahj2mgqrkrfpibzclsriqgsbsvjh19fr815vpd9f6snkxv"))))
636 (build-system gnu-build-system)
637 (arguments
638 `(#:tests? #f ; No tests.
639 #:phases
640 (modify-phases %standard-phases
641 (delete 'configure)
642 (delete 'build)
643 (replace 'install
644 (lambda* (#:key outputs #:allow-other-keys)
645 (let ((out (assoc-ref outputs "out")))
646 (install-file "geteltorito"
647 (string-append out "/bin"))))))))
648 (inputs `(("perl" ,perl)))
649 (synopsis "Extract the boot image from a CD-ROM")
650 (description
651 "@command{geteltorito} can extract the initial/default boot
652image from CDs (and ISOs) that follow the El Torito specification
653for bootable CD-ROMs.
654
655Image data is written to standard output by default and all other
656information is written to standard error.")
657 (license gpl2+)))
426e6083
CM
658
659(define-public asunder
660 (package
661 (name "asunder")
80a69935 662 (version "2.9.3")
426e6083
CM
663 (source (origin
664 (method url-fetch)
665 (uri
666 (string-append "http://www.littlesvr.ca/asunder/releases/asunder-"
667 version
668 ".tar.bz2"))
669 (sha256
670 (base32
80a69935 671 "1630i1df06y840v3fgdf75jxw1s8kwbfn5bhi0686viah0scccw5"))))
426e6083
CM
672 (build-system glib-or-gtk-build-system)
673 (arguments
674 '(#:out-of-source? #f
675 #:phases (modify-phases %standard-phases
676 (add-after 'install 'wrap
677 (lambda* (#:key inputs outputs #:allow-other-keys)
678 (let ((program (string-append (assoc-ref outputs "out")
679 "/bin/asunder")))
680 (define (bin-directory input-name)
681 (string-append (assoc-ref inputs input-name) "/bin"))
682 (wrap-program program
683 `("PATH" ":" prefix
684 ,(map bin-directory (list "cdparanoia"
685 "lame"
686 "vorbis-tools"
687 "flac"
688 "opus-tools"
689 "wavpack"))))))))))
690 (native-inputs `(("intltool" ,intltool)
691 ("pkg-config" ,pkg-config)))
692 ;; TODO: Add the necessary packages for Musepack encoding.
693 (inputs `(("gtk+-2" ,gtk+-2)
694 ("glib" ,glib)
695 ("libcddb" ,libcddb)
696 ("cdparanoia" ,cdparanoia)
697 ("lame" ,lame)
698 ("vorbis-tools" ,vorbis-tools)
699 ("flac" ,flac)
700 ("opus-tools" ,opus-tools)
701 ("wavpack" ,wavpack)))
702 (home-page "http://www.littlesvr.ca/asunder/")
703 (synopsis "Graphical audio CD ripper and encoder")
704 (description
705 "Asunder is a graphical audio CD ripper and encoder. It can save audio
706tracks as WAV, MP3, Ogg Vorbis, FLAC, Opus, Wavpack, and Musepack. It can use
707CDDB to name and tag each track automatically, and it allows for each track to
708be by a different artist. Asunder can encode to multiple formats in one
709session, and it can create M3U playlists.")
710 (license gpl2)))
328398e7
RJ
711
712(define-public ripit
713 (package
714 (name "ripit")
715 (version "3.9.0")
716 (source (origin
717 (method url-fetch)
718 (uri (string-append "http://www.suwald.com/ripit/ripit-"
719 version ".tar.gz"))
720 (sha256
721 (base32
722 "0ap71x477jy9c4jiqazb3y45hxdxm3jbq24x05g3vjyqzigi4x1b"))))
723 (build-system gnu-build-system)
724 (arguments
725 `(#:tests? #f ; No test suite.
726 #:phases
727 (modify-phases %standard-phases
728 (delete 'configure)
729 (add-after 'unpack 'patch-usr-bin-install
730 (lambda* (#:key inputs outputs #:allow-other-keys)
731 (substitute* "Makefile"
732 (("/usr/bin/install") (string-append
733 (assoc-ref inputs "coreutils")
734 "/bin/install"))
735 (("\\$\\(DESTDIR\\)/usr/local") (assoc-ref outputs "out"))
736 (("../../etc") "etc")))))))
737 (native-inputs
738 `(("coreutils" ,coreutils)))
739 (inputs
740 `(("perl" ,perl)))
741 (propagated-inputs
742 `(("cdparanoia" ,cdparanoia)
743 ("flac" ,flac)
744 ("vorbis-tools" ,vorbis-tools)
745 ("wavpack" ,wavpack)
746 ("perl-cddb-get" ,perl-cddb-get)))
747 (home-page "http://www.suwald.com/ripit/about.php")
748 (synopsis "Command-line program to extract audio CDs")
749 (description "RipIT is used to extract audio from CDs.")
750 (license gpl2)))
a9406b24
JD
751
752(define-public ccd2cue
753 (package
754 (name "ccd2cue")
755 (version "0.5")
756 (source
757 (origin
758 (method url-fetch)
759 (uri (string-append
760 "mirror://gnu/ccd2cue/ccd2cue-" version
761 ".tar.gz"))
762 (sha256
763 (base32
764 "1icrkg25hwx4gsn3dski2172ia4ywjh8m1sa17zmjclnrgdwy9c7"))))
765 (build-system gnu-build-system)
766 (synopsis "CCD to CUE sheet conversion")
767 (description
768 "GNU ccd2cue is a preprocessor for CD burning software that allows
769the conversion of the proprietary CCD format to the CUE format, which
770is well-supported by free software. These files are commonly
771distributed with CD images and are used to describe how tracks are
772laid out on the image.")
6fd52309 773 (home-page "https://www.gnu.org/software/ccd2cue/")
a9406b24 774 (license gpl3+)))
1d8e04e6 775
776(define-public libburn
777 (package
778 (name "libburn")
4999f45e 779 (version "1.5.0")
1d8e04e6 780 (source (origin
781 (method url-fetch)
782 (uri (string-append "http://files.libburnia-project.org/releases/"
783 "libburn-" version ".tar.gz"))
784 (sha256
785 (base32
4999f45e 786 "1gg2kgnqvaa2fwghai62prxz6slpak1f6bvgjh8m4dn16v114asq"))))
1d8e04e6 787 (build-system gnu-build-system)
788 (native-inputs
789 `(("pkg-config" ,pkg-config)))
790 (home-page "https://dev.lovelyhq.com/libburnia/libburn")
791 (synopsis "Library for reading and writing optical discs")
792 (description
793 "Libburn is a library for reading and writing optical discs.
794Supported media are: CD-R, CD-RW, DVD-RAM, DVD+RW, DVD+R, DVD+R/DL,
795DVD-RW, DVD-R, DVD-R/DL, BD-R, and BD-RE.")
796 (license gpl2)))
dbfab26d 797
798(define-public libisofs
799 (package
800 (name "libisofs")
8190578f 801 (version "1.5.0")
dbfab26d 802 (source (origin
803 (method url-fetch)
804 (uri (string-append "http://files.libburnia-project.org/releases/"
805 "libisofs-" version ".tar.gz"))
806 (sha256
807 (base32
8190578f 808 "001l3akf3wb6msl9man776w560iqyvsbwwzs7d7y7msx13irspys"))))
dbfab26d 809 (build-system gnu-build-system)
810 (inputs
811 `(("zlib" ,zlib)
812 ("acl" ,acl)))
813 (native-inputs
814 `(("pkg-config" ,pkg-config)))
815 (home-page "https://dev.lovelyhq.com/libburnia/libisofs")
816 (synopsis "Library to create ISO 9660 images")
817 (description
2773c244 818 "Libisofs creates ISO 9660 (also known as ECMA-119) file system images
dbfab26d 819which can either be written to POSIX file objects or handed over to
820libburn for being written directly to optical media.
821It can read metadata of ISO 9660 filesystems, manipulate them, and use them
2773c244
TGR
822to produce new complete file system images or add-on images to be appended
823to the read file system image.
dbfab26d 824Supported extensions to ISO 9660 are Rock Ridge, Joliet, AAIP, zisofs.")
825 (license gpl2+)))
c54511fd
OP
826
827(define-public cdrkit-libre
828 (package
829 (name "cdrkit-libre")
830 (version "1.1.11")
831 (source (origin
832 (method url-fetch)
833 ;; cdrkit.org is dead.
834 ;;
835 ;; ‘cdrkit-libre’ removes a couple of problematic files,
836 ;; see <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32165#14>.
837 (uri (string-append
838 "https://repo.parabola.nu/other/cdrkit-libre/cdrkit-libre-"
839 version ".tar.gz"))
840 (sha256
841 (base32
842 "0g2zyzb56czh429qy87lvaddzjnlcq8c616ddxsmsshz3clhyzrh"))))
843 (build-system cmake-build-system)
844 (inputs
845 `(("bzip2" ,bzip2)
846 ("libcap" ,libcap)
847 ("perl" ,perl)
848 ("zlib" ,zlib)))
849 (arguments
850 `(#:tests? #f ;no tests
851 #:phases
852 (modify-phases %standard-phases
853 (add-after 'install 'old-cdrecord
854 (lambda* (#:key outputs #:allow-other-keys)
855 (with-directory-excursion (string-append (assoc-ref outputs "out")
856 "/bin")
857 (symlink "genisoimage" "mkisofs")
858 (symlink "wodim" "cdrecord"))
859 #t)))))
860 (home-page "https://repo.parabola.nu/other/cdrkit-libre/")
861 (synopsis "Command-line CD/DVD recorder")
862 (description "Cdrkit is a suite of programs for recording CDs and DVDs,
863blanking CD-RW media, creating ISO-9660 file system images, extracting audio
864CD data, and more. It's mostly compatible with @code{cdrtools}.")
865 (license gpl2+)))