# S-Lang
# ======
# Some of the programs that can use S-Lang are:
# lynx
# mc (Midnight Commander)
# mutt
# most
# libcaca
# Slackware 8.1 and 9.0's 'slang' packages include version 1.4.5, 9.1's,
# 10.0's, 10.1's, and 10.2's include 1.4.9 Slackware 11.0 and up have a
# 'slang1' package and a 'slang' package.
#
# Slackware 11.0: 1.4.9/2.0.6
# Slackware 12.0: 1.4.9/2.0.7
# I include the latest 1.4.x and 2.x versions below. 2.x is considered the
# current release.
#
# You can install both as long as you put the includes in seperate
# directories and know that libslang.so will point to whichever version you
# install last.
# S-Lang 1.4.9
# ============
cd
test -f installed/slang-1.4.9.tar.bz2 && mv installed/slang-1.4.9.tar.bz2 .
test ! -f slang-1.4.9.tar.bz2 &&
wget ftp://space.mit.edu/pub/davis/slang/v1.4/slang-1.4.9.tar.bz2
# Verify tarball w/ md5sum:
# (this came from a tarball I downloaded April 10, 2003 and matches one I
# downloaded October 14, 2004, and one I downloaded April 8, 2008)
echo "4fbb1a7f1257e065ca830deefe13d350 slang-1.4.9.tar.bz2" | md5sum -c
mkdir -p -m 0700 src
cd src
find -maxdepth 1 -type d -name "slang-1.*" -exec rm -r {} \;
tar xjvf ~/slang-1.4.9.tar.bz2
cd slang-1.4.9
test $UID = 0 && chown -R root:root .
./configure --prefix=/usr --includedir=/usr/include/slang1
make
make elf
# Become root to install it
su
# Remove the Slackware package and old shared library files
test -x /sbin/removepkg && /sbin/removepkg slang slang1
( cd /usr/lib
rm -f libslang.a libslang.so libslang.so.1 libslang.so.1.* libslang1.* )
# Install it
make install
make install-elf
( cd /usr/lib ; ln -s libslang.so.1.4.9 libslang1.so )
ldconfig
# Make sure your non-root user can remove the source later
chown -R $USER .
chmod -R u+w .
# S-Lang 2.1.3
# ============
# Prerequisites:
# libpcre (if you want the pcre module)
# onig (optional)
# libpng (if you want the png module)
# iconv
# readline (optional; if you pass --with-readline=gnu)
cd
test -f installed/slang-2.1.3.tar.bz2 && mv installed/slang-2.1.3.tar.bz2 .
test ! -f slang-2.1.3.tar.bz2 &&
wget ftp://space.mit.edu/pub/davis/slang/v2.1/slang-2.1.3.tar.bz2
# Verify tarball w/ md5sum:
# (this came from my gpg-verified tarball)
echo "0e4ae3aac75441eaa230bceb7811f088 slang-2.1.3.tar.bz2" | md5sum -c
# Verify tarball w/ sha1sum:
# (this also came from my gpg-verified tarball)
echo "31fc6162684f69d9dd0377372dfdc336f0c4343a slang-2.1.3.tar.bz2" \
| sha1sum -c
mkdir -p -m 0700 src
cd src
find -maxdepth 1 -type d -name "slang-2.*" -exec rm -r {} \;
tar xjvf ~/slang-2.1.3.tar.bz2
cd slang-2.1.3
test $UID = 0 && chown -R root:root .
./configure --prefix=/usr --sysconfdir=/etc --includedir=/usr/include/slang
make
# A regular 'make' builds the shared library, run this to also build the
# static (.a) library
make static
# Become root to install it
su
# In Slackware >= 11.0 'slang' is S-Lang 2.x and 'slang1' is the 1.x version
# If you have an older version installed, you won't have a 'slang1' package
test -x /sbin/removepkg && /sbin/removepkg slang slang1
# Remove old library files, install it
( cd /usr/lib ; rm -f libslang.a libslang.so libslang.so.2 libslang.so.2.* )
make install
make install-static
ldconfig
# Make sure your non-root user can remove the source later
chown -R $USER .
chmod -R u+w .
# If you have apps that were linked against the 1.x version, and you don't
# also have that version installed, you can try this, but you may want to
# try re-building them against this version. For more info, read
# doc/text/slang.txt
#
# If it turns out that you have an app that can't use S-Lang 2.x, uninstall
# this one (see below), then install 1.x again, then wait until that apps's
# author updates it for S-Lang 2.x
( cd /usr/lib ; ln -sf libslang.so.2 libslang.so.1 ; ldconfig )
# Skip down to the bottom for a note about elflibs and info about
# uninstalling S-Lang
# If you removed the /usr/lib/libslang.so.* file that's mentioned in the
# 'elflibs' package, run this remove references to that file:
su
FNAME=`find /var/adm/packages/*elflibs* -type f | head -1`
test -f "$FNAME" && grep -v "^usr/lib/libslang\.so\." $FNAME > $FNAME.new
test -s $FNAME.new &&
( mkdir -p -m 0700 ~/backup/packages
mv -f $FNAME $FNAME.`date +%Y%m%d`
mv $FNAME.`date +%Y%m%d` ~/backup/packages/
mv -f $FNAME.new $FNAME )
unset FNAME
exit
# If you ever decide to uninstall S-Lang, try something like this:
su
rm -f /etc/slsh.rc /usr/bin/slsh /usr/man/man1/slsh.1
test -d /usr/include/slang && rm -r /usr/include/slang
test -d /usr/include/slang1 && rm -r /usr/include/slang1
(cd /usr/lib ; rm -f libslang.a libslang.so libslang.so.* )
test -d /usr/lib/slang && rm -r /usr/lib/slang
test -d /usr/share/doc/slang && rm -r /usr/share/doc/slang
test -d /usr/share/slsh && rm -r /usr/share/slsh
exit
find ~/src -maxdepth 1 -type d -name "slang-*" -exec rm -r {} \;
rm -f ~/installed/slang-*.tar.*