# Get the tarball
cd
test -f installed/libtool-2.4.7.tar.xz &&
mv installed/libtool-2.4.7.tar.xz .
test ! -f libtool-2.4.7.tar.xz &&
wget https://ftpmirror.gnu.org/libtool/libtool-2.4.7.tar.xz
# Verify tarball against base64 encoded SHA256 checksum using sha256sum and
# base64 from coreutils and xxd from vim
echo "T38hfwV85lX/IlWa0iGg/Y74StH8X8tpkM7MMzqhY10" ; \
sha256sum libtool-2.4.7.tar.xz | xxd -r -p | base64
# Extract the source
mkdir -p -m 0700 ~/src
cd ~/src
find -maxdepth 1 -type d -name "libtool-*" -exec rm -r {} \;
tar xJvf ~/libtool-2.4.7.tar.xz
cd libtool-2.4.7
test $UID -eq 0 && chown -R root:root .
# Configure the build 64-bit
test $(uname -m) = 'x86_64' &&
./configure --prefix=/usr --infodir=/usr/info --libdir=/usr/lib64 \
--mandir=/usr/man
# Configure the build 64-bit
test $(uname -m) != 'x86_64' &&
./configure --prefix=/usr --infodir=/usr/info --mandir=/usr/man
# Build it
make
# Check the build
make check
# Become root to install it
su
# Remove the Slackware package, if there is one
test -x /sbin/removepkg && /sbin/removepkg libtool
# Slackware's aaa_elflibs package includes libltdl(s). It's generally a
# good idea to not mess with those. If you see libltdl.so.7.3.1 just
# make sure there is still a libltdl.so.7 pointing to that. After you
# install the new one below, a libltdl.so symlink will point to the new one.
# Install the new version
make install
ldconfig
# Make sure your non-root user can remove the source later
chown -R $(logname) .
chmod -R u+w .
# Become yourself again
exit
# Save the source for later
cd
mkdir -p -m 0700 installed
rm -f installed/libtool-*.tar.*
mv libtool-2.4.7.tar.xz installed/
# If you ever want to uninstall libtool, this should do it:
cd
su
test -d src/libtool-* && ( cd src/libtool-* ; make uninstall )
( /usr/bin ; rm -f libtool libtoolize )
test -d /usr/include/libltdl && rm -r /usr/include/libltdl
( cd /usr/man/man1 ; rm -f libtool.1 libtoolize.1 )
( cd /usr/share/aclocal
rm -f libtool.m4 ltargz.m4 ltdl.m4 ltoptions.m4 ltsugar.m4 ltversion.m4 \
lt~obsolete.m4 )
test -d /usr/share/libtool && rm -r /usr/share/libtool
rm -f /usr/include/ltdl.h /usr/info/libtool.info
# I would suggest manually checking aaa_elflibs for libltdl and
# only remove /usr/lib*/libltdl.* files that are not in that
# package. If you ran 'make uninstall' above, this was already done.
# To list the ones to _not_ remove:
# grep libltdl /var/adm/packages/aaa_elflibs*