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