# Get the tarball
cd
test -f installed/icu4c-75_1-src.tgz &&
mv -f icu4c-75_1-src.tgz .
test ! -f icu4c-75_1-src.tgz &&
wget https://github.com/unicode-org/icu/releases/download/release-75-1/\
icu4c-75_1-src.tgz
# Verify tarball w/ sha512sum:
# (this came from the GitHub release page gpg-verified SHASUM512.txt)
echo "70ea842f0d5f1f6c6b65696ac71d96848c4873f4d794bebc40fd87af2ad4ef064c61a7\
86bf7bc430ce4713ec6deabb8cc1a8cc0212eab148cee2d498a3683e45 icu4c-75_1-src.t\
gz" | sha512sum -c
# Extract the source
mkdir -p -m 0700 ~/src
cd ~/src
find -maxdepth 1 -type d -name "icu4c-*" -exec rm -r {} \;
mkdir -p -m 0700 icu4c-75.1
cd icu4c-75.1
tar xzvf ~/icu4c-75_1-src.tgz
cd icu/source
test $UID = 0 && chown -R root:root .
# Configure the build for 64-bit
test $(uname -m) = 'x86_64' &&
./runConfigureICU Linux/gcc --prefix=/usr --libdir=/usr/lib64 \
--mandir=/usr/man
# Configure the build for anything else
test $(uname -m) != 'x86_64' &&
./runConfigureICU Linux/gcc --prefix=/usr --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
## You may have running Apache httpd, Cyrus IMAP, Samba, etc. daemons
## running using the old version of libicu*. If that is the case (run lsof
## to check), I would suggest copying the shared library files temporarily,
## then removing the Slackware package, then copying them back where they
## were
test -f /var/adm/packages/icu4c-* &&
find /usr/lib64 -maxdepth 1 -type f -name "libicu*.so.*" -exec cp -a {} /tmp \;
# You may want to keep a copy of shared library files (or the Slackware
# package file) just in case
test -x /sbin/removepkg && /sbin/removepkg icu4c
# Copy the shared library files you put in /tmp back to /usr/lib64
find /tmp -maxdepth 1 -type f -name "libicu*.so.*"\
-exec cp -a {} /usr/lib64/ \;
# Install it
make install
ldconfig
# Make sure your non-root user can remove the source later
chown -R $(logname) .
chmod -R u+w .
# Become your non-root user again
exit
# Save the source for later
cd
mkdir -p -m 0700 installed
rm -f installed/icu4c-*.tar.*
mv icu4c-75_1-src.tgz installed/
# If you ever want to uninstall ICU, this should do it:
cd
su
test -d src/icu4c-* && ( cd src/icu4c-* ; make uninstall )
( cd /usr/bin
rm -f derb genbrk gencfu gencnval gendict genrb icu-config icuexportdata \
icuinfo makeconv pkgdata uconv )
test -d /usr/include/unicode && rm -r /usr/include/unicode
( cd /usr/lib
rm -f libicudata.* libicui18n.* libicuio.* libicutest.* libicutu.* \
libicuuc.* )
test -d /usr/lib/pkgconfig &&
( cd /usr/lib/pkgconfig
rm -f icu-i18n.pc icu-io.pc icu-uc.pc )
test -d /usr/lib64 &&
( cd /usr/lib64
rm -f libicudata.* libicui18n.* libicuio.* libicutest.* libicutu.* \
libicuuc.* )
test -d /usr/lib64/pkgconfig &&
( cd /usr/lib64/pkgconfig
rm -f icu-i18n.pc icu-io.pc icu-uc.pc )
( cd /usr/man/man1
rm -f derb.1 genbrk.1 gencfu.1 gencnval.1 gendict.1 genrb.1 icu-config.1 \
icuexportdata.1 makeconv.1 pkgdata.1 uconv.1 )
( cd /usr/man/man8
rm -f genccode.8 gencmn.8 gensprep.8 icupkg.8 )
( cd /usr/sbin
rm -f escapesrc genccode gencmn gennorm2 gensprep icupkg )
test -d /usr/share/icu && rm -r /usr/share/icu
ldconfig
exit
find ~/src -maxdepth 1 -type d -name "icu4c-*" -exec rm -r {} \;
rm -f ~/installed/icu4c-*.tar.*