# xine
# ====
# Create directories for tarballs and source
mkdir -p -m 0700 ~/installed/xine ~/src/xine
# xine-lib 1.1.11.1 (engine)
# =================
# Slackware 9.1's 'xine-lib' package includes version 1rc0a. Previous
# versions of Slackware didn't include xine. Slackware 10.0 includes
# version 1rc4a, 10.1 includes 1.0, 10.2 includes 1.0.2, 11.0 includes
# 1.1.2, and 12.0 includes 1.1.7
# Even if you only update xine-lib, you should recompile and reinstall the
# GUI(s) you use too. They may continue to work without it, but since they
# use xine-lib to do all the work, it's a good idea.
# Prerequisites:
# file
# pkg-config
# iconv
# gettext
# XFree86 or X.org
# zlib
# aalib >= 1.4 (optional)
# caca >= 0.99 (optional)
# SDL >= 1.1.5 (optional)
# libstk (optional; pass --with-libstk)
# pulseaudio (optional; formerly polypaudio)
# fame (optional - mpeg encoder)
# rte (optional - mpeg encoder)
# Ogg, Vorbis, Theora, Speex (optional)
# FLAC (optional)
# XviD (optional - this may actually no
# longer be used directly, I think XviD support comes from ffmpeg in recent
# versions)
# libmng (optional)
# freetype (optional)
# alsa (optional)
# esound (esd) >= 0.2.8 (optional)
# aRts >= 0.9.5 (optional)
# gnome-vfs >= 2.0 (optional)
# samba's libsmbclient (optional)
# libcdio (optional)
# libvcdinfo (optional)
# transfig's fig2dev (optional; Slackware 10.2 includes 3.2.4)
# directfb (optional; add --enable-directfb)
# xine is bundled with a copy of ffmpeg, add --with-external-ffmpeg to build
# it with a system-wide copy instead
# xine is bundled with a copy of a52dec, add --with-external-a52dec to build
# it with a system-wide copy instead
# xine is bundled with a copy of libmad, add --with-external-libmad to build
# it with a system-wide copy instead
# xine is bundled with a copy of libdvdnav, add --with-external-dvdnav to
# build it with a system-wide copy instead
# xine is bundled with a copy of libdca (formerly libdts; add --with-external-libdca to build it with a system-wide copy instead
cd
test -f installed/xine/xine-lib-1.1.11.1.tar.bz2 &&
mv installed/xine/xine-lib-1.1.11.1.tar.bz2 .
test ! -f xine-lib-1.1.11.1.tar.bz2 &&
wget http://downloads.sf.net/xine/xine-lib-1.1.11.1.tar.bz2
cd src/xine
find -maxdepth 1 -type d -name "xine-lib-*" -exec rm -r {} \;
tar xjvf ~/xine-lib-1.1.11.1.tar.bz2
cd xine-lib-1.1.11.1
test $UID = 0 && chown -R root:root .
# If you want libsmbclient support built in and your Samba is installed
# under the /usr/local/samba prefix, run this line and then the configure
# line below:
# LDFLAGS=-L/usr/local/samba/lib CPPFLAGS=-I/usr/local/samba/include \
./configure --prefix=/usr --disable-nls
make
# Become root to install it
su
test -x /sbin/removepkg && /sbin/removepkg xine-lib
rm -f /usr/lib/libxine.*
make install
# Make sure your non-root user can remove the source later
chown -R $USER .
chmod -R u+w .
# Become yourself again
exit
cd
rm -f installed/xine/xine-lib-*.tar.*
mv xine-lib-1.1.11.1.tar.bz2 installed/xine/
# Now that xine-lib is installed, which does the work, you need to install
# something to handle actually displaying movies
# xine-ui 0.99.5 (frontend)
# ==============
# Slackware 9.1's 'xine-ui' package includes version 0.9.22 and there is
# a package for version 0.99.1 in 'patches', 10.0's includes 0.99.1,
# 10.1's includes 0.99.3, 10.2 and 11.0's include 0.99.4
# The release notes say that 0.99.5 supports libcaca 0.99, but I was
# unable to build it with libcaca 0.99.beta13b (so I used --without-caca)
cd
test -f installed/xine/xine-ui-0.99.5.tar.gz &&
mv installed/xine/xine-ui-0.99.5.tar.gz .
test ! -f xine-ui-0.99.5.tar.gz &&
wget http://downloads.sf.net/xine/xine-ui-0.99.5.tar.gz
cd src/xine
find -maxdepth 1 -type d -name "xine-ui-*" -exec rm -r {} \;
tar xzvf ~/xine-ui-0.99.5.tar.gz
cd xine-ui-0.99.5
test $UID = 0 && chown -R root:root .
./configure --prefix=/usr --disable-nls
make
# Become root to install it
su
# Remove the Slackware package, if there is one, and install it
test -x /sbin/removepkg && /sbin/removepkg xine-ui
make install
# Make sure your non-root user can remove it later
chown -R $USER .
chmod -R u+w .
# Become yourself again
exit
cd
rm -f installed/xine/xine-ui-*.tar.*
mv xine-ui-0.99.5.tar.gz installed/xine/
# Now that xine-ui is installed, you can use 'xine', 'aaxine' (if you
# have aalib), and 'cacaxine' (if you have libcaca) to play movies.
# The latter two will display media using ascii characters. :-)
#
# To watch blurry, but surprisingly viewable (from a distance) TV from the
# console, I do this with my ivtv-based TV card:
# cat /dev/video0 | cacaxine stdin:/
# /usr/share/pixmaps/xine_48x48.png can be used as a desktop icon
# To create a sample .lircrc file, run this:
# (lirc is software for setting up xine for use with a remote control)
test -f ~/.lircrc && mv -f ~/.lircrc ~/.lircrc.old
xine --keymap=lirc > ~/.lircrc
#
# Then customize ~/.lircrc for xine. To see what your remote names each
# button, run 'irw'. My .lircrc for xine is here:
# http://englanders.cc/pub/linux/misc/lircrc-xine
find -type f -exec tar xzvf {} -C /usr/share/xine/skins \;
find /usr/share/xine/skins -type f -exec chmod 644 {} \;
find /usr/share/xine/skins -type d -exec chmod 755 {} \;
# Become yourself again
exit
# gxine 0.5.901 (another frontend)
# =============
# Slackware 9.1 and 10.0's 'gxine' packages include version 0.3.3, 10.1's
# includes 0.4.1, 10.2's includes 0.4.8, 11.0's includes 0.5.7, and
# 12.0's includes 0.5.11
cd
test -f installed/xine/gxine-0.5.901.tar.bz2 &&
mv installed/xine/gxine-0.5.901.tar.bz2 .
test ! -f gxine-0.5.901.tar.bz2 &&
wget http://downloads.sf.net/xine/gxine-0.5.901.tar.bz2
cd src/xine
find -maxdepth 1 -type d -name "gxine-*" -exec rm -r {} \;
tar xjvf ~/gxine-0.5.901.tar.bz2
cd gxine-0.5.901
test $UID = 0 && chown -R root:root .
# If you're building in JavaScript support (libjs, aka. Spidermonkey), see
# the howto to make sure the includes are set as they are assumed to be
# here
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib \
--disable-nls --with-spidermonkey=/usr/local/include/js
make
# Become root to install it
su
test -x /sbin/removepkg && /sbin/removepkg gxine
make install
# Become yourself again
exit
cd
rm -f installed/xine/gxine-*.tar.*
mv gxine-0.5.901.tar.bz2 installed/xine/
# /usr/share/pixmaps/gxine.png can be used as a desktop icon
# To configure lirc for use with gxine, set up a lirc config file as
# ~/.gxine/lircrc or ~/.lircrc A sample is included with the gxine source
# in misc/lircrc As with xine-ui, open it up, make sure 'button' is
# correct for your remote (see output of 'irw'). My lircrc for gxine is
# here:
# http://englanders.cc/pub/linux/misc/lircrc-gxine
# A gxine plugin for Mozilla-based browsers is installed as
# /usr/lib/gxine/gxineplugin.so The first time you start gxine, it will
# create a symlink in ~/.mozilla/plugins/ to it.