diff options
Diffstat (limited to 'gnu/packages/xiph.scm')
-rw-r--r-- | gnu/packages/xiph.scm | 280 |
1 files changed, 280 insertions, 0 deletions
diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm new file mode 100644 index 0000000000..6bd6658035 --- /dev/null +++ b/gnu/packages/xiph.scm @@ -0,0 +1,280 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> +;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> +;;; Copyright © 2013 David Thompson <dthompson2@worcester.edu> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages xiph) + #:use-module (gnu packages) + #:use-module (gnu packages bison) + #:use-module (gnu packages compression) + #:use-module (gnu packages curl) + #:use-module (gnu packages libpng) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages linux) + #:use-module (gnu packages pulseaudio) + #:use-module ((guix licenses) + #:renamer (symbol-prefix-proc 'license:)) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:export (libogg + libvorbis + libtheora + speex + ao + flac + libkate + vorbis-tools)) + +(define libogg + (package + (name "libogg") + (version "1.3.0") + (source (origin + (method url-fetch) + (uri (string-append "http://downloads.xiph.org/releases/ogg/libogg-" + version ".tar.xz")) + (sha256 + (base32 + "0jy79ffkl34vycnwfsj4svqsdg1lwy2l1rr49y8r4d44kh12a5r3")))) + (build-system gnu-build-system) + (synopsis "libogg, a library for manipulating the ogg multimedia format") + (description + "The libogg library allows to manipulate the ogg multimedia container +format, which encapsulates raw compressed data and allows the interleaving of +audio and video data. In addition to encapsulation and interleaving of +multiple data streams, ogg provides packet framing, error detection, and +periodic timestamps for seeking.") + (license (license:bsd-style "file://COPYING" + "See COPYING in the distribution.")) + (home-page "http://xiph.org/ogg/"))) + +(define libvorbis + (package + (name "libvorbis") + (version "1.3.3") + (source (origin + (method url-fetch) + (uri (string-append "http://downloads.xiph.org/releases/vorbis/libvorbis-" + version ".tar.xz")) + (sha256 + (base32 + "1gby6hapz9njx4l9g0pndyk4q83z5fgrgc30mfwfgx7bllspsk43")))) + (build-system gnu-build-system) + (propagated-inputs `(("libogg" ,libogg))) + (arguments `(#:configure-flags '("LDFLAGS=-lm"))) + (synopsis "libvorbis, a library implementing the vorbis audio format") + (description + "The libvorbis library implements the ogg vorbis audio format, +a fully open, non-proprietary, patent-and-royalty-free, general-purpose +compressed audio format for mid to high quality (8kHz-48.0kHz, 16+ bit, +polyphonic) audio and music at fixed and variable bitrates from 16 to +128 kbps/channel.") + (license (license:bsd-style "file://COPYING" + "See COPYING in the distribution.")) + (home-page "http://xiph.org/vorbis/"))) + +(define libtheora + (package + (name "libtheora") + (version "1.1.1") + (source (origin + (method url-fetch) + (uri (string-append "http://downloads.xiph.org/releases/theora/libtheora-" + version ".tar.xz")) + (sha256 + (base32 + "0q8wark9ribij57dciym5vdikg2464p8q2mgqvfb78ksjh4s8vgk")) + (patches (list (search-patch "libtheora-config-guess.patch"))))) + (build-system gnu-build-system) + (inputs `(("libvorbis" ,libvorbis))) + ;; The .pc files refer to libogg. + (propagated-inputs `(("libogg" ,libogg))) + (synopsis "Library implementing the Theora video format") + (description + "The libtheora library implements the ogg theora video format, +a fully open, non-proprietary, patent-and-royalty-free, general-purpose +compressed video format.") + (license license:bsd-3) + (home-page "http://xiph.org/theora/"))) + +(define speex + (package + (name "speex") + (version "1.2rc1") + (source + (origin + (method url-fetch) + (uri (string-append "http://downloads.xiph.org/releases/speex/speex-" + version ".tar.gz")) + (sha256 + (base32 + "19mpkhbz3s08snvndn0h1dk2j139max6b0rr86nnsjmxazf30brl")))) + (build-system gnu-build-system) + (inputs `(("libogg" ,libogg))) + (home-page "https://gnu.org/software/speex") + (synopsis "Library for patent-free audio compression format") + (description + "GNU Speex is a patent-free audio compression codec specially designed +for speech. It is well-adapted to internet applications, such as VoIP. It +features compression of different bands in the same bitstream, intensity +stereo encoding, and voice activity detection.") + ;; 'src/getopt.c' is under LGPLv2+ + (license (license:bsd-style "file://COPYING" + "See COPYING in the distribution.")))) + +(define ao + (package + (name "ao") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (string-append "http://downloads.xiph.org/releases/ao/libao-" + version ".tar.gz")) + (sha256 + (base32 + "1m0v2y6bhr4iwsgdkc7b3y0qgpvpv1ifbxsy8n8ahsvjn6wmppi9")))) + (build-system gnu-build-system) + ;; FIXME: Add further backends, see the summary printed after configure. + ;; XXX: Should back-ends be pushed to different outputs? For instance, + ;; "out" would include only the ALSA back-end, while "pulse" would + ;; contain 'lib/ao/plugins-4/libpulse.*'. + (inputs `(("pkg-config" ,pkg-config) + ("alsa-lib" ,alsa-lib) + ("pulseaudio" ,pulseaudio))) + (synopsis "Cross platform audio library") + (description + "Libao is a cross-platform audio library that allows programs to +output audio using a simple API on a wide variety of platforms. +It currently supports: +Null output (handy for testing without a sound device), +WAV files, +AU files, +RAW files, +OSS (Open Sound System, used on Linux and FreeBSD), +ALSA (Advanced Linux Sound Architecture), +aRts (Analog RealTime Synth, used by KDE), +PulseAudio (next generation GNOME sound server), +esd (EsounD or Enlightened Sound Daemon), +Mac OS X, +Windows (98 and later), +AIX, +Sun/NetBSD/OpenBSD, +IRIX, +NAS (Network Audio Server), +RoarAudio (Modern, multi-OS, networked Sound System), +OpenBSD's sndio.") + (license license:gpl2+) + (home-page "http://www.xiph.org/ao/"))) + +(define flac + (package + (name "flac") + (version "1.2.1") + (source (origin + (method url-fetch) + (uri (string-append "http://downloads.xiph.org/releases/flac/flac-" + version ".tar.gz")) + (sha256 + (base32 + "1pry5lgzfg57pga1zbazzdd55fkgk3v5qy4axvrbny5lrr5s8dcn")) + (patches + (list (search-patch "flac-fix-memcmp-not-declared.patch"))))) + (build-system gnu-build-system) + (arguments + `(#:parallel-tests? #f)) + ;; FIXME: configure also looks for xmms, input could be added once it exists + (inputs `(("libogg" ,libogg))) + (synopsis "flac free lossless audio codec") + (description +"FLAC stands for Free Lossless Audio Codec, an audio format that is lossless, +meaning that audio is compressed in FLAC without any loss in quality.") + (license (license:bsd-style "file://COPYING" + "See COPYING in the distribution.")) ; and LGPL and GPL + (home-page "http://xiph.org/flac/"))) + +(define libkate + (package + (name "libkate") + (version "0.4.1") + (source (origin + (method url-fetch) + (uri (string-append "http://libkate.googlecode.com/files/libkate-" + version ".tar.gz")) + (sha256 + (base32 + "0s3vr2nxfxlf1k75iqpp4l78yf4gil3f0v778kvlngbchvaq23n4")))) + (build-system gnu-build-system) + ;; FIXME: Add optional inputs doxygen (for documentation) and liboggz + (inputs `(("bison" ,bison) + ("libogg" ,libogg) + ("libpng" ,libpng) + ("pkg-config" ,pkg-config) + ("python" ,python-wrapper) + ("zlib" ,zlib))) + (synopsis "kate, a karaoke and text codec for embedding in ogg") + (description + "Kate is an overlay codec, originally designed for karaoke and text, +that can be multiplixed in Ogg. Text and images can be carried by a Kate +stream, and animated. Most of the time, this would be multiplexed with +audio/video to carry subtitles, song lyrics (with or without karaoke data), +etc., but doesn't have to be. + +Series of curves (splines, segments, etc.) may be attached to various +properties (text position, font size, etc.) to create animated overlays. +This allows scrolling or fading text to be defined. This can even be used +to draw arbitrary shapes, so hand drawing can also be represented by a +Kate stream.") + (license license:bsd-3) + (home-page "http://code.google.com/p/libkate/"))) + +(define vorbis-tools + (package + (name "vorbis-tools") + (version "1.4.0") + (source (origin + (method url-fetch) + (uri (string-append "http://downloads.xiph.org/releases/vorbis/vorbis-tools-" + version ".tar.gz")) + (sha256 + (base32 + "1g12bnh5ah08v529y72kfdz5lhvy75iaz7f9jskyby23m9dkk2d3")))) + (build-system gnu-build-system) + (inputs `(("ao" ,ao) + ("curl" ,curl) + ("flac" ,flac) + ("libkate" ,libkate) + ("libogg" ,libogg) + ("libvorbis" ,libvorbis) + ("pkg-config" ,pkg-config) + ("speex" ,speex))) + (synopsis "ogg vorbis tools") + (description + "Ogg vorbis is a non-proprietary, patent-and-royalty-free, +general-purpose compressed audio format. + +The package vorbis-tools contains +ogg123, an ogg vorbis command line audio player; +oggenc, the ogg vorbis encoder; +oggdec, a simple, portable command line decoder (to wav and raw); +ogginfo, to obtain information (tags, bitrate, length, etc.) about + an ogg vorbis file.") + (license license:gpl2) + (home-page "http://xiph.org/vorbis/"))) |