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