HOWTO
# GNU Guile
# =========
# Slackware 13.37, 14.0: guile 1.8.8
# Slackware 14.0: guile 1.8.8
# Slackware 14.1: guile 1.6.3
# Slackware 14.2: guile 1.6.4
# I include two versions of Guile below. 2.2.x is the latest series and
# 2.0.x is the legacy series.
# I use --disable-nls below because I only read & write English (well).
# If that is not the case for you, leave that off (and update gettext).
# If you ever want to uninstall Guile, skip down to the bottom for
# instructions. If you go from version 2.0.x to 2.2.x, you may want to
# follow these instructions to ensure that 2.0.x's files are gone.
# Guile 2.2.4
# ===========
#
GNU Guile 2.2.4 released
#
Mailing list announcement
# Prerequisites:
# libltdl from
libtool's libltdl >= 1.5.6
#
texinfo's makeinfo
#
GMP >= 4.2
#
libunistring >= 0.9.3
#
pkg-config >= 0.9.0
#
libffi
#
BDW-GC's libgc >= 7.2
#
ncurses
#
readline
# Get it
cd
test -f installed/guile-2.2.4.tar.lz && mv installed/guile-2.2.4.tar.lz .
test ! -f guile-2.2.4.tar.lz &&
wget https://ftpmirror.gnu.org/gnu/guile/guile-2.2.4.tar.lz
# Verify tarball w/
sha256sum:
echo "b72724cb59d4cc1eed005a10a960831efe0f1f7bf17cc6a88fbfab0a48b4bf5c guile-2.2.4.tar.lz" | sha256sum -c
# Verify tarball w/
gpg:
( gpg --list-keys 3D9AEBB5 > /dev/null 2>&1 || gpg --recv-keys 3D9AEBB5 ) &&
wget -nc http://ftpmirror.gnu.org/gnu/guile/guile-2.2.4.tar.lz.sig &&
gpg --verify guile-2.2.4.tar.lz.sig && rm guile-2.2.4.tar.lz.sig
# Extract the source
mkdir -p -m 0700 src
cd src
find -maxdepth 1 -type d -name "guile-*" -exec rm -r {} \;
tar xvf ~/guile-2.2.4.tar.lz
cd guile-2.2.4
test $UID = 0 && chown -R root:root .
# Configure the build for 64-bit
test $(uname -m) = 'x86_64' &&
CFLAGS="-O2 -fPIC" ./configure --prefix=/usr --infodir=/usr/info --libdir=/usr/lib64 --mandir=/usr/man --disable-static --disable-nls
# Configure the build for anything else
test $(uname -m) = 'x86_64' &&
./configure --prefix=/usr --infodir=/usr/info --mandir=/usr/man --disable-static --disable-nls
# Build it
make
# Become root to install it
su
# Remove the Slackware package, if there is one
test -x /sbin/removepkg && /sbin/removepkg guile
# If you did remove the Slackware package, remove leftover files from
# that version of Guile too
test -d /usr/lib/guile && rm -r /usr/lib/guile
test -d /usr/lib64/guile && rm -r /usr/lib64/guile
test -d /usr/share/guile && rm -r /usr/share/guile
# Remove library files from old versions, if you are sure they are no longer
# needed by software that may be linked to them
for libdir in /usr/lib /usr/lib64;
do
test -d $libdir &&
( cd $libdir
rm -f libguile.* libguile-2.* libguile-ltdl.* libguile-srfi* libguilereadline-* )
done
# Install it
make install
# Move this to avoid ldconfig complaints
test $(uname -m) = 'x86_64' &&
mv -f /usr/lib64/libguile-2.2.so.1.3.1-gdb.scm /usr/share/gdb/auto-load/usr/lib64/
test $(uname -m) != 'x86_64' &&
mv -f /usr/lib/libguile-2.2.so.1.3.1-gdb.scm /usr/share/gdb/auto-load/usr/lib/
# Update /etc/ld.so.cache
ldconfig
# Make sure your non-root account can remove the source later
chown -R $(logname) .
chmod -R u+w .
# Become yourself again
exit
# Keep the source for later
cd
mkdir -p -m 0700 installed
rm -f installed/guile-*.tar.*
mv guile-2.2.4.tar.lz installed/
# Guile 2.0.14 (legacy)
# ============
#
GNU Guile 2.0.14 released
#
Mailing list announcement
# Prerequisites:
# libltdl from
libtool's libltdl >= 1.5.6
#
texinfo's makeinfo
#
GMP >= 4.2
#
libunistring >= 0.9.3
#
pkg-config >= 0.9.0
#
libffi
#
BDW-GC's libgc >= 7.0
#
ncurses
#
readline
# Get it
cd
test -f installed/guile-2.0.14.tar.xz && mv installed/guile-2.0.14.tar.xz .
test ! -f guile-2.0.14.tar.xz &&
wget http://ftpmirror.gnu.org/gnu/guile/guile-2.0.14.tar.xz
# Verify tarball w/
md5sum:
echo "c64977c775effd19393364b3018fd8cd guile-2.0.14.tar.xz" | md5sum -c
# Verify tarball w/
sha1sum:
echo "88cac56a7c017aae29a581772146057a9cd283f9 guile-2.0.14.tar.xz" | sha1sum -c
# Verify tarball w/
gpg:
( gpg --list-keys 3D9AEBB5 > /dev/null 2>&1 || gpg --recv-keys 3D9AEBB5 ) &&
wget -nc http://ftpmirror.gnu.org/gnu/guile/guile-2.0.14.tar.xz.sig &&
gpg --verify guile-2.0.14.tar.xz.sig && rm guile-2.0.14.tar.xz.sig
# Extract the source
mkdir -p -m 0700 src
cd src
find -maxdepth 1 -type d -name "guile-*" -exec rm -r {} \;
tar xJvf ~/guile-2.0.14.tar.xz
cd guile-2.0.14
test $UID = 0 && chown -R root:root .
# Configure the build for 64-bit
test $(uname -m) = 'x86_64' &&
CFLAGS="-O2 -fPIC" ./configure --prefix=/usr --infodir=/usr/info --libdir=/usr/lib64 --mandir=/usr/man --disable-static --disable-nls
# Configure the build for anything else
test $(uname -m) = 'x86_64' &&
./configure --prefix=/usr --infodir=/usr/info --mandir=/usr/man --disable-static --disable-nls
# Build it
make
# Become root to install it
su
# Remove the Slackware package, if there is one
test -x /sbin/removepkg && /sbin/removepkg guile
# If you did remove the Slackware package, remove leftover files from
# that version of Guile too
test -d /usr/share/guile && rm -r /usr/share/guile
# Remove library files from old versions, if you are sure they are no longer
# needed by software that may be linked to them
for libdir in /usr/lib /usr/lib64;
do
test -d $libdir &&
( cd $libdir
rm -f libguile.* libguile-2.* libguile-ltdl.* libguile-srfi* libguilereadline-* )
done
# Install it
make install
# Move this to avoid ldconfig complaints
test $(uname -m) = 'x86_64' &&
mv -f /usr/lib64/libguile-2.0.so.22.8.1-gdb.scm /usr/share/gdb/auto-load/usr/lib64/
test $(uname -m) != 'x86_64' &&
mv -f /usr/lib/libguile-2.0.so.22.8.1-gdb.scm /usr/share/gdb/auto-load/usr/lib/
# Update /etc/ld.so.cache
ldconfig
# Make sure your non-root account can remove the source later
chown -R $(logname) .
chmod -R u+w .
# Become yourself again
exit
# Keep the source for later
cd
mkdir -p -m 0700 installed
rm -f installed/guile-*.tar.*
mv guile-2.0.14.tar.xz installed/
# If you ever want to uninstall Guile, this should do it:
cd
su
test -d src/guile-* && ( cd src/guile-* ; make uninstall )
( cd /usr/bin
rm -f guild guile guile-config guile-snarf guile-tools )
test -d /usr/include/guile && rm -r /usr/include/guile
test -d /usr/include/guile-readline && rm -r /usr/include/guile-readline
test -d /usr/include/libguile && rm -r /usr/include/libguile
( cd /usr/info ; rm -f goops.info guile.info guile-tut.info r5rs.info )
( cd /usr/lib ; rm -f libguile.* libguile-ltdl.* libguile-srfi* libguileopts.* libguilereadline-v-* )
test -d /usr/lib64 &&
( cd /usr/lib64
test -d ./guile && rm -r ./guile
rm -f libguile-* libguilereadline-* )
test -d /usr/share/guile && rm -r /usr/share/guile
rm -f /usr/include/libguile.h /usr/lib*/pkgconfig/guile-*.pc /usr/man/man1/guile.1 /usr/share/man/man1/guile.1 /usr/share/aclocal/guile.m4
ldconfig
exit
find ~/src -maxdepth 1 -type d -name "guile-*" -exec rm -r {} \;
rm -f ~/installed/guile-*.tar.*