Commit | Line | Data |
---|---|---|
6064c4cd | 1 | ;;; GNU Guix --- Functional package management for GNU |
ce0614dd | 2 | ;;; Copyright © 2013, 2014, 2015 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> |
dfb493ce | 6 | ;;; Copyright © 2015, 2016, 2017 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> |
6064c4cd LC |
11 | ;;; |
12 | ;;; This file is part of GNU Guix. | |
13 | ;;; | |
14 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | |
15 | ;;; under the terms of the GNU General Public License as published by | |
16 | ;;; the Free Software Foundation; either version 3 of the License, or (at | |
17 | ;;; your option) any later version. | |
18 | ;;; | |
19 | ;;; GNU Guix is distributed in the hope that it will be useful, but | |
20 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
21 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
22 | ;;; GNU General Public License for more details. | |
23 | ;;; | |
24 | ;;; You should have received a copy of the GNU General Public License | |
25 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | |
26 | ||
27 | (define-module (gnu packages cdrom) | |
28 | #:use-module (guix download) | |
29 | #:use-module (guix packages) | |
ded59665 | 30 | #:use-module ((guix licenses) #:select (lgpl2.1+ gpl2 gpl2+ gpl3+ cddl1.0)) |
41447b31 | 31 | #:use-module (guix build-system cmake) |
6064c4cd | 32 | #:use-module (guix build-system gnu) |
426e6083 CM |
33 | #:use-module (guix build-system glib-or-gtk) |
34 | #:use-module (guix gexp) | |
6064c4cd LC |
35 | #:use-module (gnu packages) |
36 | #:use-module (gnu packages acl) | |
426e6083 | 37 | #:use-module (gnu packages audio) |
41447b31 | 38 | #:use-module (gnu packages bison) |
6064c4cd | 39 | #:use-module (gnu packages compression) |
41447b31 | 40 | #:use-module (gnu packages flex) |
52cb22cd | 41 | #:use-module (gnu packages fontutils) |
1dba6407 | 42 | #:use-module (gnu packages gettext) |
52cb22cd TD |
43 | #:use-module (gnu packages docbook) |
44 | #:use-module (gnu packages xml) | |
c1cab15a | 45 | #:use-module (gnu packages gtk) |
426e6083 | 46 | #:use-module (gnu packages glib) |
cb3da233 | 47 | #:use-module (gnu packages man) |
76e98457 | 48 | #:use-module (gnu packages m4) |
426e6083 | 49 | #:use-module (gnu packages mp3) |
43824910 | 50 | #:use-module (gnu packages ncurses) |
3e778ad3 | 51 | #:use-module (gnu packages elf) |
52cb22cd TD |
52 | #:use-module (gnu packages wxwidgets) |
53 | #:use-module (gnu packages linux) | |
c1cab15a | 54 | #:use-module (gnu packages pkg-config) |
43824910 | 55 | #:use-module (gnu packages readline) |
ce0614dd | 56 | #:use-module (gnu packages base) |
7dfc937e LC |
57 | #:use-module (gnu packages perl) |
58 | #:use-module (gnu packages python) | |
52cb22cd TD |
59 | #:use-module (gnu packages image) |
60 | #:use-module (gnu packages photo) | |
61 | #:use-module (gnu packages video) | |
7dfc937e LC |
62 | #:use-module (gnu packages wget) |
63 | #:use-module (gnu packages xiph)) | |
6064c4cd LC |
64 | |
65 | (define-public libcddb | |
66 | (package | |
67 | (name "libcddb") | |
03aef4a7 | 68 | (version "1.3.2") |
6064c4cd LC |
69 | (source (origin |
70 | (method url-fetch) | |
de67e922 LF |
71 | (uri (string-append "mirror://sourceforge/libcddb/libcddb/" version |
72 | "/libcddb-" version ".tar.bz2")) | |
6064c4cd LC |
73 | (sha256 |
74 | (base32 | |
03aef4a7 | 75 | "0fr21a7vprdyy1bq6s99m0x420c9jm5fipsd63pqv8qyfkhhxkim")))) |
6064c4cd LC |
76 | (build-system gnu-build-system) |
77 | (arguments '(#:tests? #f)) ; tests rely on access to external servers | |
78 | (home-page "http://libcddb.sourceforge.net/") | |
79 | (synopsis "C library to access data on a CDDB server") | |
80 | (description | |
35b9e423 | 81 | "Libcddb is a C library to access data on a CDDB server (freedb.org). It |
6064c4cd LC |
82 | allows you to: |
83 | ||
84 | 1. search the database for possible CD matches; | |
85 | ||
86 | 2. retrieve detailed information about a specific CD; | |
87 | ||
88 | 3. submit new CD entries to the database. | |
89 | ||
90 | Libcddb supports both the custom CDDB protocol and tunnelling the query and | |
35b9e423 EB |
91 | read operations over plain HTTP. It is also possible to use an HTTP proxy |
92 | server. If you want to speed things up, you can make use of the built-in | |
6064c4cd LC |
93 | caching facility provided by the library.") |
94 | (license lgpl2.1+))) | |
95 | ||
96 | (define-public libcdio | |
97 | (package | |
98 | (name "libcdio") | |
6312043c | 99 | (version "0.94") |
6064c4cd LC |
100 | (source (origin |
101 | (method url-fetch) | |
102 | (uri (string-append "mirror://gnu/libcdio/libcdio-" | |
103 | version ".tar.gz")) | |
104 | (sha256 | |
105 | (base32 | |
6312043c | 106 | "0nh222bnj0hgdic5nvr8l9j194mh5niqy15rypwrdbk6z01wkqln")))) |
6064c4cd LC |
107 | (build-system gnu-build-system) |
108 | (inputs | |
6312043c EF |
109 | `(("ncurses" ,ncurses) |
110 | ("libcddb" ,libcddb))) | |
c4c4cc05 | 111 | (native-inputs |
6064c4cd | 112 | `(("help2man" ,help2man) |
c4c4cc05 | 113 | ("pkg-config" ,pkg-config))) |
6312043c | 114 | (home-page "https://www.gnu.org/software/libcdio/") |
f50d2669 | 115 | (synopsis "CD Input and Control library") |
6064c4cd | 116 | (description |
a22dc0c4 LC |
117 | "The GNU Compact Disc Input and Control Library (libcdio) is a library |
118 | for CD-ROM and CD image file access. It allows the developer to add CD | |
119 | access to an application without having to worry about the OS- and | |
120 | device-dependent properties of CD-ROM or the specific details of CD image | |
fc8a431c LC |
121 | formats. It includes pycdio, a Python interface to libcdio, and |
122 | libcdio-paranoia, a library providing jitter-free and error-free audio | |
123 | extraction from CDs.") | |
6064c4cd LC |
124 | (license gpl3+))) |
125 | ||
cc6c0170 TUBK |
126 | (define-public libcdio-paranoia |
127 | (package | |
128 | (name "libcdio-paranoia") | |
129 | (version "10.2+0.93+1") | |
130 | (source (origin | |
131 | (method url-fetch) | |
132 | (uri (string-append "mirror://gnu/libcdio/libcdio-paranoia-" | |
133 | version ".tar.bz2")) | |
134 | (sha256 | |
135 | (base32 | |
136 | "14x4b4jk5b0zvcalrg02y4jmbkmmlb07qfmk5hph9k18b8frn7gc")))) | |
137 | (build-system gnu-build-system) | |
138 | (native-inputs `(("pkg-config" ,pkg-config))) | |
139 | (propagated-inputs `(("libcdio" ,libcdio))) | |
6fd52309 | 140 | (home-page "https://www.gnu.org/software/libcdio/") |
cc6c0170 TUBK |
141 | (synopsis "Jitter- and error-tolerant CD audio extraction") |
142 | (description | |
143 | "libcdio-paranoia is an implementation of CD paranoia libraries based on | |
144 | libcdio.") | |
145 | (license gpl3+))) | |
146 | ||
6064c4cd LC |
147 | (define-public xorriso |
148 | (package | |
149 | (name "xorriso") | |
ad057b79 | 150 | (version "1.4.8") |
6064c4cd LC |
151 | (source (origin |
152 | (method url-fetch) | |
153 | (uri (string-append "mirror://gnu/xorriso/xorriso-" | |
154 | version ".tar.gz")) | |
155 | (sha256 | |
156 | (base32 | |
ad057b79 | 157 | "10c44yr3dpmwxa7rf23mwfsy1bahny3jpcg9ig0xjv090jg0d0pc")))) |
6064c4cd LC |
158 | (build-system gnu-build-system) |
159 | (inputs | |
160 | `(("acl" ,acl) | |
161 | ("readline" ,readline) | |
162 | ("bzip2" ,bzip2) | |
163 | ("zlib" ,zlib) | |
164 | ("libcdio" ,libcdio))) | |
cb764dc8 | 165 | (home-page "https://www.gnu.org/software/xorriso/") |
8f65585b | 166 | (synopsis "Create, manipulate, burn ISO-9660 file systems") |
6064c4cd | 167 | (description |
79c311b8 | 168 | "GNU Xorriso is a tool for copying files to and from ISO 9660 Rock |
8f65585b | 169 | Ridge, a.k.a. Compact Disc File System, file systems and it allows |
79c311b8 LC |
170 | session-wise manipulation of them. It features a formatter and burner for |
171 | CD, DVD and BD. It can operate on existing ISO images or it can create new | |
172 | ones. xorriso can then be used to copy files directly into or out of ISO | |
173 | files.") | |
6064c4cd | 174 | (license gpl3+))) |
6bfc16d9 AE |
175 | |
176 | (define-public cdparanoia | |
177 | (package | |
178 | (name "cdparanoia") | |
179 | (version "10.2") | |
180 | (source (origin | |
181 | (method url-fetch) | |
a124bbd2 SB |
182 | (uri (string-append "http://downloads.xiph.org/releases/" |
183 | "cdparanoia/cdparanoia-III-" | |
6bfc16d9 AE |
184 | version ".src.tgz")) |
185 | (sha256 | |
186 | (base32 | |
01eafd38 | 187 | "1pv4zrajm46za0f6lv162iqffih57a8ly4pc69f7y0gfyigb8p80")) |
fc1adab1 | 188 | (patches (search-patches "cdparanoia-fpic.patch")) |
d1f9e45e SB |
189 | (modules '((guix build utils))) |
190 | (snippet | |
191 | ;; Make libraries respect LDFLAGS. | |
192 | '(substitute* '("paranoia/Makefile.in" "interface/Makefile.in") | |
193 | (("-Wl,-soname") "$(LDFLAGS) -Wl,-soname"))))) | |
6bfc16d9 | 194 | (build-system gnu-build-system) |
6bfc16d9 AE |
195 | (arguments |
196 | `(#:tests? #f ; there is no check target | |
d1f9e45e SB |
197 | #:configure-flags ; Add $libdir to the RUNPATH of all the executables. |
198 | (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")))) | |
6bfc16d9 | 199 | (home-page "http://www.xiph.org/paranoia/") |
35b9e423 | 200 | (synopsis "Audio CD reading utility") |
6bfc16d9 AE |
201 | (description "Cdparanoia retrieves audio tracks from CDDA capable CDROM |
202 | drives. The data can be saved to a file or directed to standard output | |
516e93f8 | 203 | in WAV, AIFF, AIFF-C or raw format. Most ATAPI, SCSI and several |
6bfc16d9 AE |
204 | proprietary CDROM drive makes are supported; cdparanoia can determine if the |
205 | target drive is CDDA capable. In addition to simple reading, cdparanoia adds | |
206 | extra-robust data verification, synchronization, error handling and scratch | |
207 | reconstruction capability.") | |
208 | (license gpl2))) ; libraries under lgpl2.1 | |
c1cab15a | 209 | |
ded59665 TD |
210 | (define-public cdrtools |
211 | (package | |
212 | (name "cdrtools") | |
213 | (version "3.01") | |
214 | (source (origin | |
215 | (method url-fetch) | |
216 | (uri (string-append | |
217 | "mirror://sourceforge/cdrtools/cdrtools-" version ".tar.bz2")) | |
218 | (sha256 | |
219 | (base32 | |
220 | "03w6ypsmwwy4d7vh6zgwpc60v541vc5ywp8bdb758hbc4yv2wa7d")) | |
221 | (patches (search-patches "cdrtools-3.01-mkisofs-isoinfo.patch")))) | |
222 | (build-system gnu-build-system) | |
223 | ;; XXX cdrtools bundles a modified, relicensed early version of cdparanoia. | |
224 | (inputs | |
225 | `(("linux-headers" ,linux-libre-headers))) | |
226 | (arguments | |
227 | `(#:phases | |
228 | (modify-phases %standard-phases | |
229 | (delete 'configure) | |
230 | (add-before 'build 'set-linux-headers | |
231 | (lambda _ | |
232 | (substitute* "autoconf/configure" | |
233 | (("/usr/src/linux") | |
234 | (assoc-ref %build-inputs "linux-headers"))) | |
235 | #t)) | |
236 | (add-before 'build 'substitute-dirs | |
237 | (lambda _ | |
238 | (substitute* (append (find-files "DEFAULTS" "^Defaults\\.") | |
239 | (find-files "DEFAULTS_ENG" "^Defaults\\.") | |
240 | (find-files "TEMPLATES" "^Defaults\\.")) | |
241 | (("/opt/schily") (assoc-ref %outputs "out"))) | |
242 | #t)) | |
243 | (replace 'build | |
244 | (lambda _ | |
245 | (zero? | |
246 | (system* "make" "CONFIG_SHELL=sh" "CCOM=gcc" "RM=rm")))) | |
247 | (replace 'install | |
248 | (lambda _ | |
249 | (zero? | |
250 | (system* "make" | |
251 | "RM=rm" "LN=ln" "SYMLINK=ln -s" | |
252 | (string-append "INS_BASE=" (assoc-ref %outputs "out")) | |
253 | (string-append "INS_RBASE=" (assoc-ref %outputs "out")) | |
254 | "install" ))))) | |
255 | #:tests? #f)) ; no tests | |
256 | (synopsis "Command line utilities to manipulate and burn CD/DVD/BD images") | |
257 | (description "cdrtools is a collection of command line utilities to create | |
258 | CD's, DVD's or Blue Ray discs. The most important components are | |
259 | @command{cdrecord}, a burning program, @command{cdda2wav}, a CD audio ripper | |
260 | which uses libparanoia, and @command{mkisofs}, which can create various disc | |
261 | images.") | |
262 | (home-page "http://cdrtools.sourceforge.net/private/cdrecord.html") | |
263 | ||
264 | ;; mkisofs is GPL, the other programs are CDDL. | |
265 | (license (list cddl1.0 gpl2)))) | |
266 | ||
76e98457 TD |
267 | (define-public dvd+rw-tools |
268 | (package | |
269 | (name "dvd+rw-tools") | |
270 | (version "7.1") | |
271 | (source (origin | |
272 | (method url-fetch) | |
273 | (uri (string-append | |
274 | "http://fy.chalmers.se/~appro/linux/DVD+RW/tools/dvd+rw-tools-" | |
275 | version ".tar.gz")) | |
276 | (sha256 | |
277 | (base32 | |
278 | "1jkjvvnjcyxpql97xjjx0kwvy70kxpiznr2zpjy2hhci5s10zmpq")) | |
279 | (patches (search-patches "dvd+rw-tools-add-include.patch")))) | |
280 | (build-system gnu-build-system) | |
281 | (inputs | |
282 | `(("cdrtools" ,cdrtools))) | |
283 | (native-inputs | |
284 | `(("m4" ,m4))) | |
285 | (arguments | |
286 | `(#:tests? #f ; No tests. | |
287 | #:phases | |
288 | (modify-phases %standard-phases | |
289 | (replace 'configure | |
290 | (lambda _ (setenv "prefix" (assoc-ref %outputs "out")) #t)) | |
291 | (add-before 'build 'embed-mkisofs | |
292 | (lambda* (#:key inputs #:allow-other-keys) | |
293 | ;; We use sed --in-place because substitute* cannot handle the | |
294 | ;; character encoding used by growisofs.c. | |
295 | (zero? (system* "sed" "-i" "-e" | |
296 | (string-append | |
297 | "s,\"mkisofs\"," | |
298 | "\"" (which "mkisofs") "\",") | |
299 | "growisofs.c"))))))) | |
300 | (home-page "http://fy.chalmers.se/~appro/linux/DVD+RW/") | |
301 | (synopsis "DVD and Blu-ray Disc burning tools") | |
302 | (description "dvd+rw-tools, mostly known for its command | |
303 | @command{growisofs}, is a collection of DVD and Blu-ray Disc burning tools. | |
304 | It requires another program, such as @command{mkisofs}, @command{genisoimage}, | |
305 | or @command{xorrisofs} to create ISO 9660 images.") | |
306 | (license gpl2))) | |
307 | ||
c1cab15a AE |
308 | (define-public dvdisaster |
309 | (package | |
310 | (name "dvdisaster") | |
036fd4f2 | 311 | (version "0.79.5") |
c1cab15a AE |
312 | (source (origin |
313 | (method url-fetch) | |
314 | (uri (string-append "http://dvdisaster.net/downloads/dvdisaster-" | |
315 | version ".tar.bz2")) | |
316 | (sha256 | |
317 | (base32 | |
036fd4f2 | 318 | "0f8gjnia2fxcbmhl8b3qkr5b7idl8m855dw7xw2fnmbqwvcm6k4w")))) |
c1cab15a AE |
319 | (build-system gnu-build-system) |
320 | (inputs | |
c4c4cc05 JD |
321 | `(("gtk+" ,gtk+-2))) |
322 | (native-inputs | |
b94a6ca0 | 323 | `(("gettext" ,gettext-minimal) |
c1cab15a AE |
324 | ("pkg-config" ,pkg-config) |
325 | ("which" ,which))) | |
326 | (arguments | |
c397e502 LC |
327 | `(;; Parallel builds appear to be unsafe, see |
328 | ;; <http://hydra.gnu.org/build/49331/nixlog/1/raw>. | |
329 | #:parallel-build? #f | |
036fd4f2 | 330 | #:tests? #f)) ; no check target |
c1cab15a | 331 | (home-page "http://dvdisaster.net/en/index.html") |
35b9e423 | 332 | (synopsis "Error correcting codes for optical media images") |
c1cab15a AE |
333 | (description "Optical media (CD,DVD,BD) keep their data only for a |
334 | finite time (typically for many years). After that time, data loss develops | |
335 | slowly with read errors growing from the outer media region towards the | |
336 | inside. | |
337 | ||
338 | Dvdisaster stores data on CD/DVD/BD (supported media) in a way that it is | |
339 | fully recoverable even after some read errors have developed. This enables | |
340 | you to rescue the complete data to a new medium. | |
341 | ||
342 | Data loss is prevented by using error correcting codes. Error correction | |
343 | data is either added to the medium or kept in separate error correction | |
344 | files. Dvdisaster works at the image level so that the recovery does not | |
345 | depend on the file system of the medium. The maximum error correction | |
346 | capacity is user-selectable.") | |
347 | (license gpl2+))) | |
e2bb5fd6 | 348 | |
52cb22cd TD |
349 | (define-public dvdstyler |
350 | (package | |
351 | (name "dvdstyler") | |
352 | (version "3.0.3") | |
353 | (source | |
354 | (origin | |
355 | (method url-fetch) | |
356 | (uri (string-append "mirror://sourceforge/dvdstyler/dvdstyler/" | |
357 | version "/DVDStyler-" version ".tar.bz2")) | |
358 | (sha256 | |
359 | (base32 | |
360 | "1j432kszmwmsd3nz398h5514dbm5vsrn4rr3iil72ckjj1h3i00q")))) | |
361 | (build-system gnu-build-system) | |
362 | (arguments | |
363 | `(#:configure-flags (list (string-append "XMLTO=" | |
364 | (assoc-ref %build-inputs "xmlto") | |
365 | "/bin/xmlto" | |
366 | " --searchpath " | |
367 | (assoc-ref %build-inputs "docbook-xsl") | |
368 | "/xml/xsl/docbook-xsl-1.79.1/htmlhelp:" | |
369 | (assoc-ref %build-inputs "docbook-xml") | |
370 | "/xml/dtd/docbook")) | |
371 | #:phases | |
372 | (modify-phases %standard-phases | |
373 | (add-after 'install 'wrap-program | |
374 | (lambda* (#:key inputs outputs #:allow-other-keys) | |
375 | (wrap-program (string-append (assoc-ref outputs "out") "/bin/dvdstyler") | |
376 | `("PATH" ":" prefix | |
377 | (,(string-join | |
378 | (map (lambda (in) (string-append (assoc-ref inputs in) "/bin")) | |
379 | '("cdrtools" "dvdauthor" "dvd+rw-tools" "ffmpeg")) | |
380 | ":")))) | |
381 | #t))) | |
382 | #:tests? #f)) ; No tests. | |
383 | (inputs ; TODO package bundled wxvillalib | |
384 | `(("wxwidgets" ,wxwidgets-3.1) | |
385 | ("wssvg" ,wxsvg) | |
386 | ("dbus" ,dbus) | |
387 | ("cdrtools" ,cdrtools) | |
388 | ("dvd+rw-tools" ,dvd+rw-tools) | |
389 | ("dvdauthor" ,dvdauthor) | |
390 | ("eudev" ,eudev) | |
391 | ("fontconfig" ,fontconfig) | |
392 | ("libexif" ,libexif) | |
393 | ("libjpeg" ,libjpeg) | |
394 | ("ffmpeg" ,ffmpeg))) | |
395 | (native-inputs | |
396 | `(("pkg-config" ,pkg-config) | |
397 | ("flex" ,flex) | |
398 | ("python" ,python-2) | |
399 | ("xmlto" ,xmlto) | |
400 | ("gettext" ,gnu-gettext) | |
401 | ("docbook-xml" ,docbook-xml) | |
402 | ("docbook-xsl" ,docbook-xsl) | |
403 | ("zip" ,zip))) | |
404 | (synopsis "DVD authoring application") | |
405 | (description "DVDStyler is a DVD authoring application which allows users | |
406 | to burn video files in many formats to DVD discs, complete with individually | |
407 | designed menus. It can be used to create professional-looking DVD's with | |
408 | custom buttons, backgrounds and animations, from within a user-friendly | |
409 | graphical interface.") | |
410 | (home-page "https://www.dvdstyler.org") | |
411 | (license gpl2))) | |
412 | ||
fab74288 PW |
413 | (define-public libcue |
414 | (package | |
415 | (name "libcue") | |
41447b31 | 416 | (version "2.1.0") |
fab74288 PW |
417 | (source (origin |
418 | (method url-fetch) | |
41447b31 AK |
419 | (uri (string-append |
420 | "https://github.com/lipnitsk/libcue/archive/v" | |
421 | version ".tar.gz")) | |
422 | (file-name (string-append name "-" version ".tar.gz")) | |
fab74288 PW |
423 | (sha256 |
424 | (base32 | |
41447b31 AK |
425 | "1fradl3dx0pyy9rn1a0gak9gzgg40wax61f2s00zks7rwl0xv398")))) |
426 | (build-system cmake-build-system) | |
427 | (native-inputs | |
428 | `(("bison" ,bison) | |
429 | ("flex" ,flex))) | |
8caf80fc | 430 | (home-page "https://github.com/lipnitsk/libcue") |
fab74288 PW |
431 | (synopsis "C library to parse cue sheets") |
432 | (description "Libcue is a C library to parse so-called @dfn{cue sheets} | |
433 | which contain meta-data for CD/DVD tracks. It provides an API to manipulate | |
434 | the data.") | |
435 | (license gpl2+))) | |
436 | ||
e2bb5fd6 LC |
437 | (define-public cd-discid |
438 | (package | |
439 | (name "cd-discid") | |
440 | (version "1.4") | |
441 | (home-page "http://linukz.org/cd-discid.shtml") | |
442 | (source (origin | |
443 | (method url-fetch) | |
d514bedb | 444 | (uri (string-append "http://linukz.org/download/cd-discid-" |
e2bb5fd6 LC |
445 | version ".tar.gz")) |
446 | (sha256 | |
447 | (base32 | |
448 | "0qrcvn7227qaayjcd5rm7z0k5q89qfy5qkdgwr5pd7ih0va8rmpz")) | |
449 | (modules '((guix build utils))) | |
450 | (snippet | |
451 | '(substitute* "Makefile" | |
452 | (("/usr/bin/install") | |
453 | "install"))))) | |
454 | (build-system gnu-build-system) | |
455 | (arguments | |
456 | '(#:tests? #f | |
dc1d3cde | 457 | #:phases (modify-phases %standard-phases (delete 'configure)) |
e2bb5fd6 LC |
458 | #:make-flags (list "CC=gcc" |
459 | (string-append "PREFIX=" | |
460 | (assoc-ref %outputs "out"))))) | |
461 | (synopsis "Get CDDB discid information from an audio CD") | |
462 | (description | |
463 | "cd-discid is a command-line tool to retrieve CDDB discid information | |
464 | from an audio CD.") | |
465 | (license gpl2+))) | |
7dfc937e LC |
466 | |
467 | (define-public abcde | |
468 | (package | |
469 | (name "abcde") | |
dfb493ce | 470 | (version "2.8.1") |
1bb4005f | 471 | (home-page "https://abcde.einval.com/") |
7dfc937e LC |
472 | (source (origin |
473 | (method url-fetch) | |
474 | (uri (string-append home-page "/download/abcde-" | |
475 | version ".tar.gz")) | |
476 | (sha256 | |
477 | (base32 | |
dfb493ce | 478 | "0f9bjs0phk23vry7gvh0cll9vl6kmc1y4fwwh762scfdvpbp3774")) |
7dfc937e LC |
479 | (modules '((guix build utils))) |
480 | (snippet | |
481 | '(substitute* "Makefile" | |
482 | (("/usr/bin/install") | |
483 | "install") | |
484 | (("^etcdir = .*$") | |
485 | (string-append "etcdir = $(prefix)/etc\n")))))) | |
486 | (build-system gnu-build-system) | |
487 | (arguments | |
7df85799 EF |
488 | '(#:phases |
489 | (modify-phases %standard-phases | |
490 | (replace 'configure | |
491 | (lambda* (#:key outputs inputs #:allow-other-keys) | |
492 | (substitute* "Makefile" | |
493 | (("^prefix = .*$") | |
494 | (string-append "prefix = " | |
495 | (assoc-ref outputs "out") | |
c2a3b23f EF |
496 | "\n")) |
497 | (("^sysconfdir = .*$") | |
498 | (string-append "sysconfdir = " | |
499 | (assoc-ref outputs "out") | |
500 | "/etc/\n"))) | |
501 | #t)) | |
7df85799 EF |
502 | (add-after 'install 'wrap |
503 | (lambda* (#:key inputs outputs #:allow-other-keys) | |
504 | (let ((wget (assoc-ref inputs "wget")) | |
505 | (vorbis (assoc-ref inputs "vorbis-tools")) | |
506 | (parano (assoc-ref inputs "cdparanoia")) | |
507 | (which (assoc-ref inputs "which")) | |
508 | (discid (assoc-ref inputs "cd-discid")) | |
0d1baed2 | 509 | (flac (assoc-ref inputs "flac")) |
7df85799 EF |
510 | (out (assoc-ref outputs "out"))) |
511 | (define (wrap file) | |
512 | (wrap-program file | |
513 | `("PATH" ":" prefix | |
514 | (,(string-append out "/bin:" | |
515 | wget "/bin:" | |
0d1baed2 | 516 | flac "/bin:" |
7df85799 EF |
517 | which "/bin:" |
518 | vorbis "/bin:" | |
519 | discid "/bin:" | |
520 | parano "/bin"))))) | |
7dfc937e | 521 | |
7df85799 EF |
522 | (for-each wrap |
523 | (find-files (string-append out "/bin") | |
524 | ".*")))))) | |
c2a3b23f | 525 | #:tests? #f)) ; no test target |
7dfc937e LC |
526 | |
527 | (inputs `(("wget" ,wget) | |
528 | ("which" ,which) | |
529 | ("cdparanoia" ,cdparanoia) | |
530 | ("cd-discid" ,cd-discid) | |
531 | ("vorbis-tools" ,vorbis-tools) | |
0d1baed2 | 532 | ("flac" ,flac) |
7dfc937e LC |
533 | |
534 | ;; A couple of Python and Perl scripts are included. | |
535 | ("python" ,python) | |
536 | ("perl" ,perl))) | |
537 | ||
538 | (synopsis "Command-line audio CD ripper") | |
539 | (description | |
540 | "abcde is a front-end command-line utility (actually, a shell script) | |
541 | that grabs tracks off a CD, encodes them to Ogg/Vorbis, MP3, FLAC, Ogg/Speex | |
542 | and/or MPP/MP+ (Musepack) format, and tags them, all in one go.") | |
543 | (license gpl2+))) | |
b4edcd28 MB |
544 | |
545 | (define-public geteltorito | |
546 | (package | |
547 | (name "geteltorito") | |
548 | (version "0.6") | |
549 | (home-page | |
550 | "https://userpages.uni-koblenz.de/~krienke/ftp/noarch/geteltorito/") | |
551 | (source (origin | |
552 | (method url-fetch) | |
553 | (uri (string-append home-page name "-" version ".tar.gz")) | |
554 | (sha256 | |
555 | (base32 | |
556 | "1gkbm9ahj2mgqrkrfpibzclsriqgsbsvjh19fr815vpd9f6snkxv")))) | |
557 | (build-system gnu-build-system) | |
558 | (arguments | |
559 | `(#:tests? #f ; No tests. | |
560 | #:phases | |
561 | (modify-phases %standard-phases | |
562 | (delete 'configure) | |
563 | (delete 'build) | |
564 | (replace 'install | |
565 | (lambda* (#:key outputs #:allow-other-keys) | |
566 | (let ((out (assoc-ref outputs "out"))) | |
567 | (install-file "geteltorito" | |
568 | (string-append out "/bin")))))))) | |
569 | (inputs `(("perl" ,perl))) | |
570 | (synopsis "Extract the boot image from a CD-ROM") | |
571 | (description | |
572 | "@command{geteltorito} can extract the initial/default boot | |
573 | image from CDs (and ISOs) that follow the El Torito specification | |
574 | for bootable CD-ROMs. | |
575 | ||
576 | Image data is written to standard output by default and all other | |
577 | information is written to standard error.") | |
578 | (license gpl2+))) | |
426e6083 CM |
579 | |
580 | (define-public asunder | |
581 | (package | |
582 | (name "asunder") | |
583 | (version "2.8") | |
584 | (source (origin | |
585 | (method url-fetch) | |
586 | (uri | |
587 | (string-append "http://www.littlesvr.ca/asunder/releases/asunder-" | |
588 | version | |
589 | ".tar.bz2")) | |
590 | (sha256 | |
591 | (base32 | |
592 | "1nq9kd4rd4k2kibf57gdbm0zw2gxa234vvvdhxkm8g5bhx5h3iyq")))) | |
593 | (build-system glib-or-gtk-build-system) | |
594 | (arguments | |
595 | '(#:out-of-source? #f | |
596 | #:phases (modify-phases %standard-phases | |
597 | (add-after 'install 'wrap | |
598 | (lambda* (#:key inputs outputs #:allow-other-keys) | |
599 | (let ((program (string-append (assoc-ref outputs "out") | |
600 | "/bin/asunder"))) | |
601 | (define (bin-directory input-name) | |
602 | (string-append (assoc-ref inputs input-name) "/bin")) | |
603 | (wrap-program program | |
604 | `("PATH" ":" prefix | |
605 | ,(map bin-directory (list "cdparanoia" | |
606 | "lame" | |
607 | "vorbis-tools" | |
608 | "flac" | |
609 | "opus-tools" | |
610 | "wavpack")))))))))) | |
611 | (native-inputs `(("intltool" ,intltool) | |
612 | ("pkg-config" ,pkg-config))) | |
613 | ;; TODO: Add the necessary packages for Musepack encoding. | |
614 | (inputs `(("gtk+-2" ,gtk+-2) | |
615 | ("glib" ,glib) | |
616 | ("libcddb" ,libcddb) | |
617 | ("cdparanoia" ,cdparanoia) | |
618 | ("lame" ,lame) | |
619 | ("vorbis-tools" ,vorbis-tools) | |
620 | ("flac" ,flac) | |
621 | ("opus-tools" ,opus-tools) | |
622 | ("wavpack" ,wavpack))) | |
623 | (home-page "http://www.littlesvr.ca/asunder/") | |
624 | (synopsis "Graphical audio CD ripper and encoder") | |
625 | (description | |
626 | "Asunder is a graphical audio CD ripper and encoder. It can save audio | |
627 | tracks as WAV, MP3, Ogg Vorbis, FLAC, Opus, Wavpack, and Musepack. It can use | |
628 | CDDB to name and tag each track automatically, and it allows for each track to | |
629 | be by a different artist. Asunder can encode to multiple formats in one | |
630 | session, and it can create M3U playlists.") | |
631 | (license gpl2))) | |
328398e7 RJ |
632 | |
633 | (define-public ripit | |
634 | (package | |
635 | (name "ripit") | |
636 | (version "3.9.0") | |
637 | (source (origin | |
638 | (method url-fetch) | |
639 | (uri (string-append "http://www.suwald.com/ripit/ripit-" | |
640 | version ".tar.gz")) | |
641 | (sha256 | |
642 | (base32 | |
643 | "0ap71x477jy9c4jiqazb3y45hxdxm3jbq24x05g3vjyqzigi4x1b")))) | |
644 | (build-system gnu-build-system) | |
645 | (arguments | |
646 | `(#:tests? #f ; No test suite. | |
647 | #:phases | |
648 | (modify-phases %standard-phases | |
649 | (delete 'configure) | |
650 | (add-after 'unpack 'patch-usr-bin-install | |
651 | (lambda* (#:key inputs outputs #:allow-other-keys) | |
652 | (substitute* "Makefile" | |
653 | (("/usr/bin/install") (string-append | |
654 | (assoc-ref inputs "coreutils") | |
655 | "/bin/install")) | |
656 | (("\\$\\(DESTDIR\\)/usr/local") (assoc-ref outputs "out")) | |
657 | (("../../etc") "etc"))))))) | |
658 | (native-inputs | |
659 | `(("coreutils" ,coreutils))) | |
660 | (inputs | |
661 | `(("perl" ,perl))) | |
662 | (propagated-inputs | |
663 | `(("cdparanoia" ,cdparanoia) | |
664 | ("flac" ,flac) | |
665 | ("vorbis-tools" ,vorbis-tools) | |
666 | ("wavpack" ,wavpack) | |
667 | ("perl-cddb-get" ,perl-cddb-get))) | |
668 | (home-page "http://www.suwald.com/ripit/about.php") | |
669 | (synopsis "Command-line program to extract audio CDs") | |
670 | (description "RipIT is used to extract audio from CDs.") | |
671 | (license gpl2))) | |
a9406b24 JD |
672 | |
673 | (define-public ccd2cue | |
674 | (package | |
675 | (name "ccd2cue") | |
676 | (version "0.5") | |
677 | (source | |
678 | (origin | |
679 | (method url-fetch) | |
680 | (uri (string-append | |
681 | "mirror://gnu/ccd2cue/ccd2cue-" version | |
682 | ".tar.gz")) | |
683 | (sha256 | |
684 | (base32 | |
685 | "1icrkg25hwx4gsn3dski2172ia4ywjh8m1sa17zmjclnrgdwy9c7")))) | |
686 | (build-system gnu-build-system) | |
687 | (synopsis "CCD to CUE sheet conversion") | |
688 | (description | |
689 | "GNU ccd2cue is a preprocessor for CD burning software that allows | |
690 | the conversion of the proprietary CCD format to the CUE format, which | |
691 | is well-supported by free software. These files are commonly | |
692 | distributed with CD images and are used to describe how tracks are | |
693 | laid out on the image.") | |
6fd52309 | 694 | (home-page "https://www.gnu.org/software/ccd2cue/") |
a9406b24 | 695 | (license gpl3+))) |