Commit | Line | Data |
---|---|---|
6a06172b | 1 | ;;; GNU Guix --- Functional package management for GNU |
707d3e24 | 2 | ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr> |
1f5ec939 | 3 | ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> |
15e82fb2 | 4 | ;;; Copyright © 2013 David Thompson <dthompson2@worcester.edu> |
a7f904fd | 5 | ;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in> |
c9a010db | 6 | ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> |
6a06172b AE |
7 | ;;; |
8 | ;;; This file is part of GNU Guix. | |
9 | ;;; | |
10 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | |
11 | ;;; under the terms of the GNU General Public License as published by | |
12 | ;;; the Free Software Foundation; either version 3 of the License, or (at | |
13 | ;;; your option) any later version. | |
14 | ;;; | |
15 | ;;; GNU Guix is distributed in the hope that it will be useful, but | |
16 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 | ;;; GNU General Public License for more details. | |
19 | ;;; | |
20 | ;;; You should have received a copy of the GNU General Public License | |
21 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | |
22 | ||
54ff0b7d | 23 | (define-module (gnu packages xiph) |
dc2e4b0e AE |
24 | #:use-module (gnu packages) |
25 | #:use-module (gnu packages bison) | |
26 | #:use-module (gnu packages compression) | |
1f73d3b4 | 27 | #:use-module (gnu packages curl) |
707d3e24 | 28 | #:use-module (gnu packages doxygen) |
e55354b8 | 29 | #:use-module (gnu packages image) |
76e38f0d | 30 | #:use-module (gnu packages pkg-config) |
dc2e4b0e | 31 | #:use-module (gnu packages python) |
ba04571a | 32 | #:use-module (gnu packages linux) |
5ccca004 | 33 | #:use-module (gnu packages pulseaudio) |
b5b73a82 | 34 | #:use-module ((guix licenses) #:prefix license:) |
6a06172b AE |
35 | #:use-module (guix packages) |
36 | #:use-module (guix download) | |
cfc8261c LC |
37 | #:use-module (guix build-system gnu) |
38 | #:export (libogg | |
39 | libvorbis | |
15e82fb2 | 40 | libtheora |
cfc8261c LC |
41 | speex |
42 | ao | |
43 | flac | |
44 | libkate | |
a7f904fd SHT |
45 | vorbis-tools |
46 | opus)) | |
6a06172b | 47 | |
cfc8261c | 48 | (define libogg |
6a06172b AE |
49 | (package |
50 | (name "libogg") | |
72fe9d0b | 51 | (version "1.3.2") |
6a06172b AE |
52 | (source (origin |
53 | (method url-fetch) | |
54 | (uri (string-append "http://downloads.xiph.org/releases/ogg/libogg-" | |
55 | version ".tar.xz")) | |
56 | (sha256 | |
57 | (base32 | |
72fe9d0b | 58 | "16z74q422jmprhyvy7c9x909li8cqzmvzyr8cgbm52xcsp6pqs1z")))) |
6a06172b | 59 | (build-system gnu-build-system) |
35b9e423 | 60 | (synopsis "Library for manipulating the ogg multimedia format") |
6a06172b AE |
61 | (description |
62 | "The libogg library allows to manipulate the ogg multimedia container | |
63 | format, which encapsulates raw compressed data and allows the interleaving of | |
35b9e423 | 64 | audio and video data. In addition to encapsulation and interleaving of |
6a06172b AE |
65 | multiple data streams, ogg provides packet framing, error detection, and |
66 | periodic timestamps for seeking.") | |
dc2e4b0e AE |
67 | (license (license:bsd-style "file://COPYING" |
68 | "See COPYING in the distribution.")) | |
6a06172b AE |
69 | (home-page "http://xiph.org/ogg/"))) |
70 | ||
cfc8261c | 71 | (define libvorbis |
6a06172b AE |
72 | (package |
73 | (name "libvorbis") | |
2af4937e | 74 | (version "1.3.4") |
6a06172b AE |
75 | (source (origin |
76 | (method url-fetch) | |
35b9e423 EB |
77 | (uri (string-append "http://downloads.xiph.org/releases/vorbis/" |
78 | "libvorbis-" version ".tar.xz")) | |
6a06172b AE |
79 | (sha256 |
80 | (base32 | |
2af4937e | 81 | "0wpk87jnhngcl3nc5i39flkycx1sjzilx8jjx4zc4p8r55ylj19g")))) |
6a06172b | 82 | (build-system gnu-build-system) |
bad312e3 | 83 | (propagated-inputs `(("libogg" ,libogg))) |
f0cfe3c4 EB |
84 | (arguments `(#:configure-flags '("LDFLAGS=-lm") |
85 | #:parallel-tests? #f)) | |
35b9e423 | 86 | (synopsis "Library implementing the vorbis audio format") |
6a06172b AE |
87 | (description |
88 | "The libvorbis library implements the ogg vorbis audio format, | |
89 | a fully open, non-proprietary, patent-and-royalty-free, general-purpose | |
90 | compressed audio format for mid to high quality (8kHz-48.0kHz, 16+ bit, | |
91 | polyphonic) audio and music at fixed and variable bitrates from 16 to | |
92 | 128 kbps/channel.") | |
dc2e4b0e AE |
93 | (license (license:bsd-style "file://COPYING" |
94 | "See COPYING in the distribution.")) | |
6a06172b AE |
95 | (home-page "http://xiph.org/vorbis/"))) |
96 | ||
15e82fb2 DT |
97 | (define libtheora |
98 | (package | |
99 | (name "libtheora") | |
100 | (version "1.1.1") | |
101 | (source (origin | |
102 | (method url-fetch) | |
35b9e423 EB |
103 | (uri (string-append "http://downloads.xiph.org/releases/theora/" |
104 | "libtheora-" version ".tar.xz")) | |
15e82fb2 DT |
105 | (sha256 |
106 | (base32 | |
46acd054 MW |
107 | "0q8wark9ribij57dciym5vdikg2464p8q2mgqvfb78ksjh4s8vgk")) |
108 | (patches (list (search-patch "libtheora-config-guess.patch"))))) | |
15e82fb2 DT |
109 | (build-system gnu-build-system) |
110 | (inputs `(("libvorbis" ,libvorbis))) | |
111 | ;; The .pc files refer to libogg. | |
112 | (propagated-inputs `(("libogg" ,libogg))) | |
113 | (synopsis "Library implementing the Theora video format") | |
114 | (description | |
115 | "The libtheora library implements the ogg theora video format, | |
116 | a fully open, non-proprietary, patent-and-royalty-free, general-purpose | |
117 | compressed video format.") | |
118 | (license license:bsd-3) | |
119 | (home-page "http://xiph.org/theora/"))) | |
120 | ||
cfc8261c | 121 | (define speex |
1f5ec939 NK |
122 | (package |
123 | (name "speex") | |
124 | (version "1.2rc1") | |
125 | (source | |
126 | (origin | |
127 | (method url-fetch) | |
128 | (uri (string-append "http://downloads.xiph.org/releases/speex/speex-" | |
129 | version ".tar.gz")) | |
130 | (sha256 | |
131 | (base32 | |
132 | "19mpkhbz3s08snvndn0h1dk2j139max6b0rr86nnsjmxazf30brl")))) | |
133 | (build-system gnu-build-system) | |
134 | (inputs `(("libogg" ,libogg))) | |
135 | (home-page "https://gnu.org/software/speex") | |
f50d2669 | 136 | (synopsis "Library for patent-free audio compression format") |
1f5ec939 | 137 | (description |
79c311b8 LC |
138 | "GNU Speex is a patent-free audio compression codec specially designed |
139 | for speech. It is well-adapted to internet applications, such as VoIP. It | |
a22dc0c4 LC |
140 | features compression of different bands in the same bitstream, intensity |
141 | stereo encoding, and voice activity detection.") | |
1f5ec939 | 142 | ;; 'src/getopt.c' is under LGPLv2+ |
dc2e4b0e AE |
143 | (license (license:bsd-style "file://COPYING" |
144 | "See COPYING in the distribution.")))) | |
1f5ec939 | 145 | |
cfc8261c | 146 | (define ao |
76e38f0d AE |
147 | (package |
148 | (name "ao") | |
149 | (version "1.1.0") | |
150 | (source | |
151 | (origin | |
152 | (method url-fetch) | |
153 | (uri (string-append "http://downloads.xiph.org/releases/ao/libao-" | |
154 | version ".tar.gz")) | |
155 | (sha256 | |
156 | (base32 | |
157 | "1m0v2y6bhr4iwsgdkc7b3y0qgpvpv1ifbxsy8n8ahsvjn6wmppi9")))) | |
158 | (build-system gnu-build-system) | |
159 | ;; FIXME: Add further backends, see the summary printed after configure. | |
5ccca004 LC |
160 | ;; XXX: Should back-ends be pushed to different outputs? For instance, |
161 | ;; "out" would include only the ALSA back-end, while "pulse" would | |
54ff0b7d | 162 | ;; contain 'lib/ao/plugins-4/libpulse.*'. |
ba04571a | 163 | (inputs `(("pkg-config" ,pkg-config) |
5ccca004 LC |
164 | ("alsa-lib" ,alsa-lib) |
165 | ("pulseaudio" ,pulseaudio))) | |
ba04571a | 166 | (synopsis "Cross platform audio library") |
76e38f0d AE |
167 | (description |
168 | "Libao is a cross-platform audio library that allows programs to | |
169 | output audio using a simple API on a wide variety of platforms. | |
170 | It currently supports: | |
171 | Null output (handy for testing without a sound device), | |
172 | WAV files, | |
173 | AU files, | |
174 | RAW files, | |
175 | OSS (Open Sound System, used on Linux and FreeBSD), | |
176 | ALSA (Advanced Linux Sound Architecture), | |
177 | aRts (Analog RealTime Synth, used by KDE), | |
178 | PulseAudio (next generation GNOME sound server), | |
179 | esd (EsounD or Enlightened Sound Daemon), | |
180 | Mac OS X, | |
181 | Windows (98 and later), | |
182 | AIX, | |
183 | Sun/NetBSD/OpenBSD, | |
184 | IRIX, | |
185 | NAS (Network Audio Server), | |
186 | RoarAudio (Modern, multi-OS, networked Sound System), | |
187 | OpenBSD's sndio.") | |
dc2e4b0e | 188 | (license license:gpl2+) |
76e38f0d AE |
189 | (home-page "http://www.xiph.org/ao/"))) |
190 | ||
cfc8261c | 191 | (define flac |
9ae7865e AE |
192 | (package |
193 | (name "flac") | |
399fdcf7 | 194 | (version "1.3.0") |
9ae7865e AE |
195 | (source (origin |
196 | (method url-fetch) | |
197 | (uri (string-append "http://downloads.xiph.org/releases/flac/flac-" | |
399fdcf7 | 198 | version ".tar.xz")) |
9ae7865e AE |
199 | (sha256 |
200 | (base32 | |
399fdcf7 | 201 | "1p0hh190kqvpkbk1bbajd81jfbmkyl4fn2i7pggk2zppq6m68bgs")))) |
9ae7865e AE |
202 | (build-system gnu-build-system) |
203 | (arguments | |
c9a010db MW |
204 | `(#:parallel-tests? #f |
205 | ;; By default, man pages are put in PREFIX/man, | |
206 | ;; but we want them in PREFIX/share/man. | |
207 | #:configure-flags (list (string-append "--mandir=" | |
208 | (assoc-ref %outputs "out") | |
209 | "/share/man")))) | |
9ae7865e | 210 | ;; FIXME: configure also looks for xmms, input could be added once it exists |
01eafd38 | 211 | (inputs `(("libogg" ,libogg))) |
35b9e423 | 212 | (synopsis "Free lossless audio codec") |
9ae7865e AE |
213 | (description |
214 | "FLAC stands for Free Lossless Audio Codec, an audio format that is lossless, | |
215 | meaning that audio is compressed in FLAC without any loss in quality.") | |
dc2e4b0e AE |
216 | (license (license:bsd-style "file://COPYING" |
217 | "See COPYING in the distribution.")) ; and LGPL and GPL | |
9ae7865e AE |
218 | (home-page "http://xiph.org/flac/"))) |
219 | ||
cfc8261c | 220 | (define libkate |
dc2e4b0e AE |
221 | (package |
222 | (name "libkate") | |
223 | (version "0.4.1") | |
224 | (source (origin | |
225 | (method url-fetch) | |
226 | (uri (string-append "http://libkate.googlecode.com/files/libkate-" | |
227 | version ".tar.gz")) | |
228 | (sha256 | |
229 | (base32 | |
230 | "0s3vr2nxfxlf1k75iqpp4l78yf4gil3f0v778kvlngbchvaq23n4")))) | |
231 | (build-system gnu-build-system) | |
707d3e24 AE |
232 | (native-inputs `(("doxygen" ,doxygen) |
233 | ("pkg-config" ,pkg-config))) | |
234 | ;; FIXME: Add optional input liboggz | |
dc2e4b0e AE |
235 | (inputs `(("bison" ,bison) |
236 | ("libogg" ,libogg) | |
237 | ("libpng" ,libpng) | |
707d3e24 | 238 | ("python" ,python-wrapper) |
dc2e4b0e | 239 | ("zlib" ,zlib))) |
35b9e423 | 240 | (synopsis "Karaoke and text codec for embedding in ogg") |
dc2e4b0e AE |
241 | (description |
242 | "Kate is an overlay codec, originally designed for karaoke and text, | |
35b9e423 EB |
243 | that can be multiplixed in Ogg. Text and images can be carried by a Kate |
244 | stream, and animated. Most of the time, this would be multiplexed with | |
dc2e4b0e AE |
245 | audio/video to carry subtitles, song lyrics (with or without karaoke data), |
246 | etc., but doesn't have to be. | |
247 | ||
248 | Series of curves (splines, segments, etc.) may be attached to various | |
249 | properties (text position, font size, etc.) to create animated overlays. | |
35b9e423 | 250 | This allows scrolling or fading text to be defined. This can even be used |
dc2e4b0e AE |
251 | to draw arbitrary shapes, so hand drawing can also be represented by a |
252 | Kate stream.") | |
253 | (license license:bsd-3) | |
254 | (home-page "http://code.google.com/p/libkate/"))) | |
255 | ||
cfc8261c | 256 | (define vorbis-tools |
6a06172b AE |
257 | (package |
258 | (name "vorbis-tools") | |
259 | (version "1.4.0") | |
260 | (source (origin | |
261 | (method url-fetch) | |
35b9e423 EB |
262 | (uri (string-append "http://downloads.xiph.org/releases/vorbis/" |
263 | "vorbis-tools-" version ".tar.gz")) | |
6a06172b AE |
264 | (sha256 |
265 | (base32 | |
266 | "1g12bnh5ah08v529y72kfdz5lhvy75iaz7f9jskyby23m9dkk2d3")))) | |
267 | (build-system gnu-build-system) | |
1f73d3b4 AE |
268 | (inputs `(("ao" ,ao) |
269 | ("curl" ,curl) | |
dc2e4b0e AE |
270 | ("flac" ,flac) |
271 | ("libkate" ,libkate) | |
1f73d3b4 | 272 | ("libogg" ,libogg) |
1f5ec939 NK |
273 | ("libvorbis" ,libvorbis) |
274 | ("speex" ,speex))) | |
41eb1198 | 275 | (native-inputs `(("pkg-config" ,pkg-config))) |
35b9e423 | 276 | (synopsis "Ogg vorbis tools") |
6a06172b AE |
277 | (description |
278 | "Ogg vorbis is a non-proprietary, patent-and-royalty-free, | |
279 | general-purpose compressed audio format. | |
280 | ||
281 | The package vorbis-tools contains | |
282 | ogg123, an ogg vorbis command line audio player; | |
283 | oggenc, the ogg vorbis encoder; | |
284 | oggdec, a simple, portable command line decoder (to wav and raw); | |
285 | ogginfo, to obtain information (tags, bitrate, length, etc.) about | |
286 | an ogg vorbis file.") | |
dc2e4b0e | 287 | (license license:gpl2) |
6a06172b | 288 | (home-page "http://xiph.org/vorbis/"))) |
a7f904fd SHT |
289 | |
290 | (define opus | |
291 | (package | |
292 | (name "opus") | |
293 | (version "1.1") | |
294 | (source (origin | |
295 | (method url-fetch) | |
296 | (uri (string-append | |
297 | "http://downloads.xiph.org/releases/opus/opus-" version | |
298 | ".tar.gz")) | |
299 | (sha256 | |
300 | (base32 | |
301 | "158xprn2086arvdib3vbbygz7z6jqkw2nci7nlywzzwallap0wmr")))) | |
302 | (build-system gnu-build-system) | |
35b9e423 | 303 | (synopsis "Versatile audio codec") |
a7f904fd | 304 | (description |
35b9e423 | 305 | "Opus is a totally open, royalty-free, highly versatile audio codec. Opus |
a7f904fd | 306 | is unmatched for interactive speech and music transmission over the Internet, |
35b9e423 | 307 | but is also intended for storage and streaming applications. It is |
a7f904fd SHT |
308 | standardized by the Internet Engineering Task Force (IETF) as RFC 6716 which |
309 | incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec.") | |
310 | (license license:bsd-3) | |
311 | (home-page "http://www.opus-codec.org/"))) |