Linux HOWTOs

About | Home | Search


ERROR: Slooooow dooooown... this page load was delayed.

HOWTO: xscreensaver
Description: Screen saver (191 last time I checked) and locker for X
Click here for ChangeLog
NOTE: I use GNU tar >= 1.13.25 so it's -j for .tar.bz2 files,
it's safe to assume that make, gcc, binutils, fileutils/coreutils, gawk, sed, and grep are prerequisites for almost everything


# XScreenSaver 4.23
# =================
# Slackware 9.0's 'xscreensaver' package includes version 4.08, 9.1's includes
# version 4.13, 10.0's includes 4.16, 10.1's includes 4.19, and 10.2's
# includes 4.22

# This howto installs xscreensaver under the /usr/X11R6 prefix so it can
# be a replacement for a Slackware-installed xscreensaver.  If you have
# an older version installed under /usr or /usr/local, cd into it's source
# and run 'make uninstall' before continuing here.

# Prerequisites:
# grep
# perl
# XFree86 or X.org
# gettext
# Linux-PAM (optional)
# kerberos (optional)
# shadow (optional)
# pkg-config
# GTK+ or LessTif (GTK+ is preferred)
# libxml
# GLE (optional)
# gdk-pixbuf (part of GTK+) or libXpm (part of X) and libjpeg

# If you use PAM, configure will build in PAM support.  See
# driver/xscreensaver.pam for a sample /etc/pam.d/xscreensaver file.

# If you're upgrading from a version that is < 4.22 to one that is >= 4.22,
# backup any necessary files, then cd into the source directory of the old
# version and run 'make uninstall' before you proceed below.  Otherwise
# you'll have duplicate versions of (at least) hacks and xml config files.
# Installation paths have changed.

cd
test -f installed/xscreensaver-4.23.tar.gz &&
 mv installed/xscreensaver-4.23.tar.gz .
test ! -f xscreensaver-4.23.tar.gz &&
 wget http://www.jwz.org/xscreensaver/xscreensaver-4.23.tar.gz
mkdir -p -m 0700 src
cd src
find -maxdepth 1 -type d -name "xscreensaver-?.*" -exec rm -r {} \;
tar xzvf ~/xscreensaver-4.23.tar.gz
cd xscreensaver-4.23
test $UID = 0 && chown -R root:root .

# Add --with-setuid-hacks to install some demos that have to be installed
# setuid root, like ones that ping other hosts

./configure --prefix=/usr/X11R6
make

# Become root to install it
su

removepkg xscreensaver
make install-strip
find /usr/share/locale -type f -name "xscreensaver.mo" -exec rm {} \;
chmod -R u+w .

# Become yourself again
exit

cd
mkdir -p -m 0700 installed
rm -f installed/xscreensaver-*.tar.*
mv xscreensaver-4.23.tar.gz installed/

# /usr/share/pixmaps/xscreensaver.xpm can be used as a desktop icon for
# "xscreensaver-demo"


# Below are 3rd party "hacks"/"demos" that will work with XScreenSaver. 
# After you install them, start up 'xscreensaver-command -demo' and check
# the ones you want to use.  If you install any of these, run this first:
mkdir -p -m 0700 ~/installed/xscreensaver-demos ~/src/xscreensaver-demos


# Electric Sheep 2.6.3
# ====================
# Prerequisites:
# curl
# xloadimage
# expat
# libpng

cd
test -f installed/xscreensaver-demos/electricsheep-2.6.3.tar.gz &&
 mv installed/xscreensaver-demos/electricsheep-2.6.3.tar.gz .
test ! -f electricsheep-2.6.3.tar.gz &&
 wget http://electricsheep.org/electricsheep-2.6.3.tar.gz
cd ~/src/xscreensaver-demos
find -maxdepth 1 -type d -name "electricsheep-*" -exec rm -r {} \;
tar xzvf ~/electricsheep-2.6.3.tar.gz
cd electricsheep-2.6.3
test $UID = 0 && chown -R root:root .

# I had to add -lm and -lz here to get everything to build

LIBS="-lm -lz" ./configure
make
su -c "make install"
cd
rm -f installed/xscreensaver-demos/electricsheep-*.tar.*
mv electricsheep-2.6.3.tar.gz installed/xscreensaver-demos/


# XaoS 3.1.2
# ==========
# Prerequisites (most are optional, you need at least one of X11, svgalib,
# or slang/ncurses):
#
# gpm's libgpm
# slang
# ncurses
# aalib
# svgalib
# zlib
# libpng

cd
test -f installed/xscreensaver-demos/XaoS-3.1.2.tar.gz &&
 mv installed/xscreensaver-demos/XaoS-3.1.2.tar.gz .
test ! -f XaoS-3.1.2.tar.gz &&
 wget http://download.sourceforge.net/xaos/XaoS-3.1.2.tar.gz
cd ~/src/xscreensaver-demos
find -maxdepth 1 -type d -name "XaoS-*" -exec rm -r {} \;
tar xzvf ~/XaoS-3.1.2.tar.gz
cd XaoS-3.1.2
test $UID = 0 && chown -R root:root .
cat configure.in | sed 's/-mcpu=/-march=/' > configure.in.new
diff -q configure.in configure.in.new ||
 test -s configure.in.new &&
 ( mv -f configure.in configure.in.orig
   mv -f configure.in.new configure.in
   autoconf )
./configure --disable-nls
make
su -c "make install"
cd
rm -f installed/xscreensaver-demos/XaoS-*.tar.*
mv XaoS-3.1.2.tar.gz installed/xscreensaver-demos/


# XDaliClock 2.20
# ===============
cd
test -f installed/xscreensaver-demos/xdaliclock-2.20.tar.gz &&
 mv installed/xscreensaver-demos/xdaliclock-2.20.tar.gz .
test ! -f xdaliclock-2.20.tar.gz &&
 wget http://www.jwz.org/xdaliclock/xdaliclock-2.20.tar.gz
cd ~/src/xscreensaver-demos
find -maxdepth 1 -type d -name "xdaliclock-*" -exec rm -r {} \;
tar xzvf ~/xdaliclock-2.20.tar.gz
cd xdaliclock-2.20
test $UID = 0 && chown -R root:root .
cd X11
./configure
make
su -c "make install"
cd
rm -f installed/xscreensaver-demos/xdaliclock-*.tar.*
mv xdaliclock-2.20.tar.gz installed/xscreensaver-demos/


# XEarth 1.1
# ==========
cd
test -f installed/xscreensaver-demos/xearth-1.1.tar.gz &&
 mv installed/xscreensaver-demos/xearth-1.1.tar.gz .
test ! -f xearth-1.1.tar.gz &&
 wget ftp://cag.lcs.mit.edu/pub/tuna/xearth-1.1.tar.gz
cd ~/src/xscreensaver-demos
tar xzvf ~/xearth-1.1.tar.gz
cd xearth-1.1
test $UID = 0 && chown -R root:root .
xmkmf
make
su -c "make install"
cd
rm -f installed/xscreensaver-demos/xearth-*.tar.*
mv xearth-1.1.tar.gz installed/xscreensaver-demos/


# XFishTank 2.1tp (unofficial)
# ===============
# FYI, I also found one here:
# ftp://ftp.uni-koeln.de/windows/xcontrib/

cd
test -f installed/xfishtank-2.1tp.tar.gz &&
 mv installed/xfishtank-2.1tp.tar.gz .
test ! -f xfishtank-2.1tp.tar.gz &&
 wget http://ibiblio.org/pub/Linux/X11/demos/xfishtank-2.1tp.tar.gz
cd ~/src/xscreensaver-demos
test -d ./xfishtank2.0 && rm -r ./xfishtank2.0
find -maxdepth 1 -type d -name "xfishtank-*" -exec rm -r {} \;
tar xzvf ~/xfishtank-2.1tp.tar.gz
cd xfishtank-2.1tp
test $UID = 0 && chown -R root:root .
xmkmf
make
su -c "make install"
cd
rm -f installed/xscreensaver-demos/xearth-*.tar.*
mv xfishtank-2.1tp.tar.gz installed/xscreensaver-demos/


# XMountains 2.7
# ==============
cd
test -f installed/xscreensaver-demo/xmountains_2.7.tar.gz &&
 mv installed/xscreensaver-demo/xmountains_2.7.tar.gz .
test ! -f xmountains_2.7.tar.gz &&
 wget http://www.epcc.ed.ac.uk/~spb/xmountains/xmountains_2.7.tar.gz
cd ~/src/xscreensaver-demos
find -maxdepth 1 -type d -name "xmountains-*" -exec rm -r {} \;
mkdir xmountains-2.7
cd xmountains-2.7
tar xzvf ~/xmountains_2.7.tar.gz
test $UID = 0 && chown -R root:root .
xmkmf
make
su -c "make install"
cd
rm -f installed/xscreensaver-demos/xmountains_*.tar.*
mv xmountains_2.7.tar.gz installed/xscreensaver-demos/


# XPlanet 1.2.0
# =============
# Prerequisites:
# freetype
# pkg-config
# pango >= 1.2.0
# SPICE (optional)
# libungif
# libjpeg
# libpng
# libtiff
# libiconv

cd
test -f installed/xscreensaver-demos/xplanet-1.2.0.tar.gz &&
 mv installed/xscreensaver-demos/xplanet-1.2.0.tar.gz .
test ! -f xplanet-1.2.0.tar.gz &&
 wget http://download.sf.net/xplanet/xplanet-1.2.0.tar.gz
cd ~/src/xscreensaver-demos
find -maxdepth 1 -type d -name "xplanet-*" -exec rm -r {} \;
tar xzvf ~/xplanet-1.2.0.tar.gz
cd xplanet-1.2.0
test $UID = 0 && chown -R root:root .
./configure
make
su -c "make install"
cd
rm -f installed/xscreensaver-demos/xplanet-*.tar.*
mv xplanet-1.2.0.tar.gz installed/xscreensaver-demos/

Back to the list


Last updated: Tue, 07 Aug 2018 12:06:17 -0400
Jason Englander <jason at englanders dot us>