Commit | Line | Data |
---|---|---|
6064c4cd LC |
1 | ;;; GNU Guix --- Functional package management for GNU |
2 | ;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org> | |
6bfc16d9 | 3 | ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> |
6064c4cd LC |
4 | ;;; |
5 | ;;; This file is part of GNU Guix. | |
6 | ;;; | |
7 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | |
8 | ;;; under the terms of the GNU General Public License as published by | |
9 | ;;; the Free Software Foundation; either version 3 of the License, or (at | |
10 | ;;; your option) any later version. | |
11 | ;;; | |
12 | ;;; GNU Guix is distributed in the hope that it will be useful, but | |
13 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | ;;; GNU General Public License for more details. | |
16 | ;;; | |
17 | ;;; You should have received a copy of the GNU General Public License | |
18 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | |
19 | ||
20 | (define-module (gnu packages cdrom) | |
21 | #:use-module (guix download) | |
22 | #:use-module (guix packages) | |
c1cab15a | 23 | #:use-module ((guix licenses) #:select (lgpl2.1+ gpl2 gpl2+ gpl3+)) |
6064c4cd LC |
24 | #:use-module (guix build-system gnu) |
25 | #:use-module (gnu packages) | |
26 | #:use-module (gnu packages acl) | |
27 | #:use-module (gnu packages compression) | |
1dba6407 | 28 | #:use-module (gnu packages gettext) |
c1cab15a | 29 | #:use-module (gnu packages gtk) |
6064c4cd | 30 | #:use-module (gnu packages help2man) |
43824910 AE |
31 | #:use-module (gnu packages ncurses) |
32 | #:use-module (gnu packages patchelf) | |
c1cab15a | 33 | #:use-module (gnu packages pkg-config) |
43824910 | 34 | #:use-module (gnu packages readline) |
c1cab15a | 35 | #:use-module (gnu packages which)) |
6064c4cd LC |
36 | |
37 | (define-public libcddb | |
38 | (package | |
39 | (name "libcddb") | |
40 | (version "1.3.0") | |
41 | (source (origin | |
42 | (method url-fetch) | |
43 | (uri (string-append "mirror://sourceforge/libcddb/libcddb-" | |
44 | version ".tar.bz2")) | |
45 | (sha256 | |
46 | (base32 | |
47 | "1y8bfy12dwm41m1jahayn3v47dm34fmz7m9cjxyh7xcw6fp3lzaf")))) | |
48 | (build-system gnu-build-system) | |
49 | (arguments '(#:tests? #f)) ; tests rely on access to external servers | |
50 | (home-page "http://libcddb.sourceforge.net/") | |
51 | (synopsis "C library to access data on a CDDB server") | |
52 | (description | |
53 | "Libcddb is a C library to access data on a CDDB server (freedb.org). It | |
54 | allows you to: | |
55 | ||
56 | 1. search the database for possible CD matches; | |
57 | ||
58 | 2. retrieve detailed information about a specific CD; | |
59 | ||
60 | 3. submit new CD entries to the database. | |
61 | ||
62 | Libcddb supports both the custom CDDB protocol and tunnelling the query and | |
63 | read operations over plain HTTP. It is also possible to use an HTTP proxy | |
64 | server. If you want to speed things up, you can make use of the built-in | |
65 | caching facility provided by the library.") | |
66 | (license lgpl2.1+))) | |
67 | ||
68 | (define-public libcdio | |
69 | (package | |
70 | (name "libcdio") | |
71 | (version "0.90") | |
72 | (source (origin | |
73 | (method url-fetch) | |
74 | (uri (string-append "mirror://gnu/libcdio/libcdio-" | |
75 | version ".tar.gz")) | |
76 | (sha256 | |
77 | (base32 | |
78 | "0kpp6gr5sjr30pb9klncc37fhkw0wi6r41d2fmvmw17cbj176zmg")))) | |
79 | (build-system gnu-build-system) | |
80 | (inputs | |
c4c4cc05 JD |
81 | `(("ncurses" ,ncurses) |
82 | ("libcddb" ,libcddb))) | |
83 | (native-inputs | |
6064c4cd | 84 | `(("help2man" ,help2man) |
c4c4cc05 | 85 | ("pkg-config" ,pkg-config))) |
6064c4cd | 86 | (home-page "http://www.gnu.org/software/libcdio/") |
f50d2669 | 87 | (synopsis "CD Input and Control library") |
6064c4cd | 88 | (description |
a22dc0c4 LC |
89 | "The GNU Compact Disc Input and Control Library (libcdio) is a library |
90 | for CD-ROM and CD image file access. It allows the developer to add CD | |
91 | access to an application without having to worry about the OS- and | |
92 | device-dependent properties of CD-ROM or the specific details of CD image | |
79c311b8 LC |
93 | formats. It includes pycdio, a Python interface to libcdio, and |
94 | libcdio-paranoia, a library providing jitter-free and error-free audio | |
95 | extraction from CDs.") | |
6064c4cd LC |
96 | (license gpl3+))) |
97 | ||
98 | (define-public xorriso | |
99 | (package | |
100 | (name "xorriso") | |
e0d2d052 | 101 | (version "1.3.2") |
6064c4cd LC |
102 | (source (origin |
103 | (method url-fetch) | |
104 | (uri (string-append "mirror://gnu/xorriso/xorriso-" | |
105 | version ".tar.gz")) | |
106 | (sha256 | |
107 | (base32 | |
e0d2d052 | 108 | "1z04580nkkziy2flbxjjx0q6vp9p7vcp7yp0agx2aqz3l1vjcwhf")))) |
6064c4cd LC |
109 | (build-system gnu-build-system) |
110 | (inputs | |
111 | `(("acl" ,acl) | |
112 | ("readline" ,readline) | |
113 | ("bzip2" ,bzip2) | |
114 | ("zlib" ,zlib) | |
115 | ("libcdio" ,libcdio))) | |
116 | (home-page "http://www.gnu.org/software/xorriso/") | |
f50d2669 | 117 | (synopsis "Create, manipulate, burn ISO-9660 filesystems") |
6064c4cd | 118 | (description |
79c311b8 LC |
119 | "GNU Xorriso is a tool for copying files to and from ISO 9660 Rock |
120 | Ridge, a.k.a. Compact Disc File System, filesystems and it allows | |
121 | session-wise manipulation of them. It features a formatter and burner for | |
122 | CD, DVD and BD. It can operate on existing ISO images or it can create new | |
123 | ones. xorriso can then be used to copy files directly into or out of ISO | |
124 | files.") | |
6064c4cd | 125 | (license gpl3+))) |
6bfc16d9 AE |
126 | |
127 | (define-public cdparanoia | |
128 | (package | |
129 | (name "cdparanoia") | |
130 | (version "10.2") | |
131 | (source (origin | |
132 | (method url-fetch) | |
133 | (uri (string-append "http://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-" | |
134 | version ".src.tgz")) | |
135 | (sha256 | |
136 | (base32 | |
01eafd38 LC |
137 | "1pv4zrajm46za0f6lv162iqffih57a8ly4pc69f7y0gfyigb8p80")) |
138 | (patches (list (search-patch "cdparanoia-fpic.patch"))))) | |
6bfc16d9 AE |
139 | (build-system gnu-build-system) |
140 | (inputs | |
01eafd38 | 141 | `(("patchelf" ,patchelf))) |
6bfc16d9 AE |
142 | (arguments |
143 | `(#:tests? #f ; there is no check target | |
43824910 AE |
144 | #:modules ((guix build gnu-build-system) |
145 | (guix build utils) | |
146 | (guix build rpath) | |
147 | (srfi srfi-26)) | |
148 | #:imported-modules ((guix build gnu-build-system) | |
149 | (guix build utils) | |
150 | (guix build rpath)) | |
151 | #:phases | |
152 | (alist-cons-after | |
153 | 'strip 'add-lib-to-runpath | |
154 | (lambda* (#:key outputs #:allow-other-keys) | |
155 | (let* ((out (assoc-ref outputs "out")) | |
156 | (lib (string-append out "/lib"))) | |
157 | ;; Add LIB to the RUNPATH of all the executables. | |
158 | (with-directory-excursion out | |
159 | (for-each (cut augment-rpath <> lib) | |
160 | (find-files "bin" ".*"))))) | |
161 | %standard-phases))) | |
6bfc16d9 AE |
162 | (home-page "http://www.xiph.org/paranoia/") |
163 | (synopsis "audio CD reading utility which includes extra data verification features") | |
164 | (description "Cdparanoia retrieves audio tracks from CDDA capable CDROM | |
165 | drives. The data can be saved to a file or directed to standard output | |
166 | in WAV, AIFF, AIFF-C or raw format. Most ATAPI, SCSI and several | |
167 | proprietary CDROM drive makes are supported; cdparanoia can determine if the | |
168 | target drive is CDDA capable. In addition to simple reading, cdparanoia adds | |
169 | extra-robust data verification, synchronization, error handling and scratch | |
170 | reconstruction capability.") | |
171 | (license gpl2))) ; libraries under lgpl2.1 | |
c1cab15a AE |
172 | |
173 | (define-public dvdisaster | |
174 | (package | |
175 | (name "dvdisaster") | |
176 | (version "0.72.4") | |
177 | (source (origin | |
178 | (method url-fetch) | |
179 | (uri (string-append "http://dvdisaster.net/downloads/dvdisaster-" | |
180 | version ".tar.bz2")) | |
181 | (sha256 | |
182 | (base32 | |
183 | "0pm039a78h7m9vvjmmjfkl05ii6qdmfhvbypxjbc7j5w82y66is4")))) | |
184 | (build-system gnu-build-system) | |
185 | (inputs | |
c4c4cc05 JD |
186 | `(("gtk+" ,gtk+-2))) |
187 | (native-inputs | |
1dba6407 | 188 | `(("gettext" ,gnu-gettext) |
c1cab15a AE |
189 | ("pkg-config" ,pkg-config) |
190 | ("which" ,which))) | |
191 | (arguments | |
192 | `(#:tests? #f)) ; no check target | |
193 | (home-page "http://dvdisaster.net/en/index.html") | |
194 | (synopsis "error correcting codes for optical media images") | |
195 | (description "Optical media (CD,DVD,BD) keep their data only for a | |
196 | finite time (typically for many years). After that time, data loss develops | |
197 | slowly with read errors growing from the outer media region towards the | |
198 | inside. | |
199 | ||
200 | Dvdisaster stores data on CD/DVD/BD (supported media) in a way that it is | |
201 | fully recoverable even after some read errors have developed. This enables | |
202 | you to rescue the complete data to a new medium. | |
203 | ||
204 | Data loss is prevented by using error correcting codes. Error correction | |
205 | data is either added to the medium or kept in separate error correction | |
206 | files. Dvdisaster works at the image level so that the recovery does not | |
207 | depend on the file system of the medium. The maximum error correction | |
208 | capacity is user-selectable.") | |
209 | (license gpl2+))) |