# Ogg Vorbis
# ==========
# Ogg Vorbis is a collection of libraries and tools including libao, libogg,
# libvorbis, and the vorbis-tools. Slackware 9.0 and 9.1's 'oggutils' package
# includes libao 0.8.3, libogg 1.0, libvorbis 1.0, and vorbis-tools 1.0
# Slackware 10.0 and up include separate packages for each one. See below for
# included versions. At the bottom of this howto are python bindings and
# codecs.
# Before you begin with anything else, run this:
mkdir -p -m 0700 ~/installed/oggvorbis ~/src/oggvorbis
su -c "test -x /sbin/removepkg && /sbin/removepkg oggutils"
# libao 0.8.8
# ===========
# Slackware 10.0's 'libao' package includes version 0.8.4, 10.1's includes
# 0.8.5, 10.2's, 11.0's, and 12.0's include 0.8.6
cd
test -f installed/oggvorbis/libao-0.8.8.tar.gz &&
mv installed/oggvorbis/libao-0.8.8.tar.gz .
test ! -f libao-0.8.8.tar.gz &&
wget http://downloads.xiph.org/releases/ao/libao-0.8.8.tar.gz
cd
rm -f installed/oggvorbis/libao-*.tar.*
mv libao-0.8.8.tar.gz installed/oggvorbis/
# libogg 1.1.3
# ============
# Slackware 10.0 and 10.1's 'libogg' packages include version 1.1, 10.2's
# includes 1.1.2, 11.0's and 12.0's include 1.1.3
cd
test -f installed/oggvorbis/libogg-1.1.3.tar.gz &&
mv installed/oggvorbis/libogg-1.1.3.tar.gz .
test ! -f libogg-1.1.3.tar.gz &&
wget http://downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz
cd src/oggvorbis
find -maxdepth 1 -type d -name "libogg-*" -exec rm -r {} \;
tar xzvf ~/libogg-1.1.3.tar.gz
cd libogg-1.1.3
test $UID = 0 && chown -R root:root .
./configure --prefix=/usr
make
# Become root to install it
su
test -x /sbin/removepkg && /sbin/removepkg libogg
find /usr/doc -maxdepth 1 -type d -name "libogg-*" -exec rm -r {} \;
rm -f /usr/lib/libogg.*
make install
ldconfig
chmod -R u+w .
# Become yourself again
exit
cd
rm -f installed/oggvorbis/libogg-*.tar.*
mv libogg-1.1.3.tar.gz installed/oggvorbis/
# libvorbis 1.2.0
# ===============
# Slackware 10.0 and 10.1's 'libvorbis' packages include version 1.0.1,
# 10.2's includes 1.1.1, 11.0's and 12.0's include 1.1.2
# Prerequisites (beyond those listed above):
# libogg (above)
cd
test -f installed/oggvorbis/libvorbis-1.2.0.tar.bz2 &&
mv installed/oggvorbis/libvorbis-1.2.0.tar.bz2 .
test ! -f libvorbis-1.2.0.tar.bz2 &&
wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.2.0.tar.bz2
# This is a video codec intended for use with Ogg. Here are some apps
# that I know of that use it:
# gstreamer
# mplayer
# transcode
# xine
cd
test -f installed/oggvorbis/codecs/libtheora-1.0beta2.tar.bz2 &&
mv installed/oggvorbis/codecs/libtheora-1.0beta2.tar.bz2 .
test ! -f libtheora-1.0beta2.tar.bz2 &&
wget http://downloads.xiph.org/releases/theora/libtheora-1.0beta2.tar.bz2
cd src/oggvorbis/codecs
find -maxdepth 1 -type d -name "libtheora-*" -exec rm -r {} \;
tar xjvf ~/libtheora-1.0beta2.tar.bz2
cd libtheora-1.0beta2
test $UID = 0 && chown -R root:root .
./configure
make
make check
# Become root to install it
su
find /usr/local/doc /usr/local/share/doc -maxdepth 1 -type d \
-name "libtheora-*" -exec rm -r {} \;
make install
ldconfig
# Become yourself again
exit
cd
rm -f installed/oggvorbis/codecs/libtheora-*.tar.*
mv libtheora-1.0beta2.tar.bz2 installed/oggvorbis/codecs/
# Speex 1.0.5
# ===========
# As I write this, 1.0.5 is the latest "stable" release and 1.2beta3 is
# the latest "unstable" one
cd
test -f installed/oggvorbis/codecs/speex-1.0.5.tar.gz &&
mv installed/oggvorbis/codecs/speex-1.0.5.tar.gz .
test ! -f speex-1.0.5.tar.gz &&
wget http://downloads.us.xiph.org/releases/speex/speex-1.0.5.tar.gz
cd src/oggvorbis/codecs
find -maxdepth 1 -type d -name "speex-*" -exec rm -r {} \;
tar xzvf ~/speex-1.0.5.tar.gz
cd speex-1.0.5
test $UID = 0 && chown -R root:root .
./configure
make
cd
rm -f installed/oggvorbis/codecs/speex-*.tar.*
mv speex-1.0.5.tar.gz installed/oggvorbis/codecs/
# vorbis-tools 1.1.1
# ==================
# Slackware 10.0 and 10.1's 'vorbis-tools' packages include version 1.0.1,
# 10.2's, 11.0's, and 12.0's include 1.1.1
# Prerequisites (beyond those listed above):
# iconv
# bison
# libao (above)
# libogg (above)
# libvorbis (above)
# curl (http support for ogg123)
# FLAC
# Speex (install it above, then come back here)
cd
test -f installed/oggvorbis/vorbis-tools-1.1.1.tar.gz &&
mv installed/oggvorbis/vorbis-tools-1.1.1.tar.gz .
test ! -f vorbis-tools-1.1.1.tar.gz &&
wget http://downloads.xiph.org/releases/vorbis/vorbis-tools-1.1.1.tar.gz
cd src/oggvorbis
find -maxdepth 1 -type d -name "vorbis-tools-*" -exec rm -r {} \;
tar xzvf ~/vorbis-tools-1.1.1.tar.gz
cd vorbis-tools-1.1.1
test $UID = 0 && chown -R root:root .
# Patch the source so it will work with FLAC >= 1.1.3 (1.2.1 is current)
wget -nc http://englanders.cc/pub/linux/patches/notmine/\
vorbis-tools-1.1.1-flac_gt_1.1.3_support.patch &&
patch -p1 < vorbis-tools-1.1.1-flac_gt_1.1.3_support.patch
autoconf
# Build it
./configure --prefix=/usr --disable-nls
make
## If make fails with an error like this:
# /usr/bin/ld: cannot find -lssl
## re-run it like this:
# make LDFLAGS=-L/usr/local/ssl/lib
# Become root to install it
su
# Remove Slackware package if there is one, old docs
test -x /sbin/removepkg && /sbin/removepkg vorbis-tools
find /usr/doc -maxdepth 1 -type d -name "vorbis-tools-*" -exec rm -r {} \;
# Install it
make install
# Become yourself again
exit
cd
rm -f installed/oggvorbis/vorbis-tools-*.tar.*
mv vorbis-tools-1.1.1.tar.gz installed/oggvorbis/
## Python bindings
## ===============
# These will allow you to use or develop Ogg Vorbis software in
# Python. These all obviously require Python (and everything above).
# Create directories for tarball and extracted source
mkdir -p -m 0700 ~/installed/oggvorbis/python ~/src/oggvorbis/python
# pyao 0.82
# =========
# To get version 0.8 to build with gcc 3.3.x, I had to change all of
# the multi-line definitions in src/aomodule.h into single lined ones.
# Since then I haven't had any trouble with version >= 0.81 and gcc 3.4.x,
# 0.82 and gcc 3.3.6, and 0.82 with gcc 4.0.3
cd
test -f installed/oggvorbis/python/pyao-0.82.tar.gz &&
mv installed/oggvorbis/python/pyao-0.82.tar.gz .
test ! -f pyao-0.82.tar.gz &&
wget http://ekyo.nerim.net/software/pyogg/pyao-0.82.tar.gz
cd src/oggvorbis/python
find -maxdepth 1 -type d -name "pyao-*" -exec rm -r {} \;
tar xzvf ~/pyao-0.82.tar.gz
cd pyao-0.82
test $UID = 0 && chown -R root:root .
python config_unix.py
python setup.py build
su -c "python setup.py install"
cd
rm -f installed/oggvorbis/python/pyao-*.tar.*
mv pyao-0.82.tar.gz installed/oggvorbis/python/
# pyogg 1.3
# =========
cd
test -f installed/oggvorbis/python/pyogg-1.3.tar.gz &&
mv installed/oggvorbis/python/pyogg-1.3.tar.gz .
test ! -f pyogg-1.3.tar.gz &&
wget http://ekyo.nerim.net/software/pyogg/pyogg-1.3.tar.gz
cd src/oggvorbis/python
find -maxdepth 1 -type d -name "pyogg-*" -exec rm -r {} \;
tar xzvf ~/pyogg-1.3.tar.gz
cd pyogg-1.3
test $UID = 0 && chown -R root:root .
python config_unix.py
python setup.py build
su -c "python setup.py install"
cd
rm -f installed/oggvorbis/python/pyogg-*.tar.*
mv pyogg-1.3.tar.gz installed/oggvorbis/python/
# pyvorbis 1.4
# ============
# To get version 1.0 to build with gcc 3.3.x, I had to change all of
# the multi-line definitions in src/pyvorbiscodec.c into single lined ones.
# Since then I haven't had any trouble with version >= 1.3 and gcc 3.4.x
cd
test -f installed/oggvorbis/python/pyvorbis-1.4.tar.gz &&
mv installed/oggvorbis/python/pyvorbis-1.4.tar.gz .
test ! -f pyvorbis-1.4.tar.gz &&
wget http://ekyo.nerim.net/software/pyogg/pyvorbis-1.4.tar.gz
cd src/oggvorbis/python
find -maxdepth 1 -type d -name "pyvorbis-*" -exec rm -r {} \;
tar xzvf ~/pyvorbis-1.4.tar.gz
cd pyvorbis-1.4
test $UID = 0 && chown -R root:root .
python config_unix.py
python setup.py build
su -c "python setup.py install"
cd
rm -f installed/oggvorbis/python/pyvorbis-*.tar.*
mv pyvorbis-1.4.tar.gz installed/oggvorbis/python/