icu4c - International Components for Unicode for C/C++ ChangeLog

HOWTO


# ICU 75.1 (released 2024-04-17)
# ========
# Slackware 14.0: icu4c 49.1.2
# Slackware 14.1: icu4c 51.2
# Slackware 14.2: icu4c 56.1
# Slackware 15.0: icu4c 69.1

# Alternate URL for home page is https://www.icu-project.org/
# As this is written, it redirects to icu.unicode.org

# Prerequisites:
# pkg-config >= 0.20
# icu-le-hb
# Python
# Doxygen

# ICU 75 Release Overview
# GitHub ICU 75.1 release
# GitHub ICU 74-2 (74.2) to 75-1 (75.1) compare
# ICU User Guide
# How To Build And Install On UNIX

# 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

# Verify tarball w/ gpg:
( gpg --list-keys 3DA35301A7C330257B8755754058F67406EAA6AB > /dev/null 2>&1 ||
  gpg --keyserver keyserver.ubuntu.com --recv-keys \
   3DA35301A7C330257B8755754058F67406EAA6AB ) &&
wget -nc https://github.com/unicode-org/icu/releases/download/release-75-1/\
icu4c-75_1-src.tgz.asc &&
  gpg --verify icu4c-75_1-src.tgz.asc && rm icu4c-75_1-src.tgz.asc

# 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.*

List of HOWTOs

Web page itself last updated: 2023-12-20 8:06pm (EST -0500)
HOWTO last updated: 2024-07-09 10:01pm
Copyright © 2001-2024 Jason Englander. All Rights reserved.
[HTML5]