# If you ever want to uninstall libunistring, or just clean up files from
# an old version before installing this one, skip down to the bottom for
# instructions.
#
# If you have a previously installed libunistring under the /usr/local
# prefix, do that because we are now using the /usr prefix to match
# Slackware. There is a libunistring package as of Slackware 14.1
# Get it
cd
test -f installed/libunistring-1.1.tar.xz &&
mv installed/libunistring-1.1.tar.xz .
test ! -f libunistring-1.1.tar.xz &&
wget http://ftpmirror.gnu.org/gnu/libunistring/libunistring-1.1.tar.xz
# Verify tarball w/ sha256sum:
# (this came from my gpg-verified tarball)
echo "827c1eb9cb6e7c738b171745dac0888aa58c5924df2e59239318383de0729b\
98 libunistring-1.1.tar.xz" | sha256sum -c
# Verify tarball w/ gpg:
# (if you can't get it from keys.openpgp.org, try another like
# keyserver.ubuntu.com)
( gpg --list-keys F5BE8B267C6A406D > /dev/null 2>&1 ||
gpg --recv-keys F5BE8B267C6A406D ) &&
wget -nc https://ftpmirror.gnu.org/gnu/libunistring/\
libunistring-1.1.tar.xz.sig &&
gpg --verify libunistring-1.1.tar.xz.sig &&
rm libunistring-1.1.tar.xz.sig
# Extract the source
mkdir -p -m 0700 ~/src
cd ~/src
find -maxdepth 1 -type d -name "libunistring-*" -exec rm -r {} \;
tar xJvf ~/libunistring-1.1.tar.xz
cd libunistring-1.1
test $UID = 0 && chown -R root:root .
# Configure the build for 64-bit
test $(uname -m) = 'x86_64' &&
./configure --prefix=/usr --docdir=/usr/doc/libunistring-1.1 \
--infodir=/usr/info --libdir=/usr/lib64
# Configure the build for anything else
test $(uname -m) != 'x86_64' &&
./configure --prefix=/usr --docdir=/usr/doc/libunistring-1.1 \
--infodir=/usr/info
Build it
make
# Become root to install it
su
# Remove old docs from previous versions
find /usr/doc -maxdepth 1 -type d -name "libunistring-*" -exec rm -r {} \;
# Remove old library files if you're sure nothing is using them
rm -f /usr/lib*/libunistring.*
# Install it
make install
ldconfig
# Become your non-root user again
exit
# Save the tarball for later
cd
mkdir -p -m 0700 installed
rm -f installed/libunistring-*.tar.*
mv libunistring-1.1.tar.xz installed/
# If you ever want to uninstall libunistring, this should do it:
cd
su
test -d src/libunistring-* && ( cd src/libunistring-* ; make uninstall )
for pfx in /usr /usr/local;
do
( cd ${pfx}/include
test -d unistring && rm -r unistring
rm -f unicase.h uniconv.h unictype.h unigbrk.h unilbrk.h uniname.h \
uninorm.h unistdio.h unistr.h unitypes.h uniwbrk.h uniwidth.h )
test -d ${pfx}/doc/libunistring && rm -r ${pfx}/doc/libunistring
find ${pfx}/doc -maxdepth 1 -type d -name "libunistring-*" \
-exec rm -r {} \;
test -d ${pfx}/include/unistring && rm -r ${pfx}/include/unistring
rm -f ${pfx}/info/libunistring.info ${pfx}/lib*/libunistring.*
done
ldconfig
exit
find ~/src -maxdepth 1 -type d -name "libunistring-*" -exec rm -r {} \;
rm -f ~/installed/libunistring-*.tar.*