libidn2 - Implementation of the IDNA2008 + TR46 specifications ChangeLog

HOWTO


# GNU Libidn 2.3.4
# ================
# IDN = Internationalized Domain Names

# There is currently no libidn2 Slackware package, but there is one
# in slackware-current

# There is also a libidn, which is libidn x.x  Here we have libidn2 x.x.x

# libidn2-2.3.4 released [stable]
# Prerequisites:
# lzip (for tar to be able to decompress tar.lz)
# gettext (if you do not use --disable-nls)
# Valgrind (optional)
# libc's iconv or libiconv
# pkg-config
# gtk-doc (Slackware includes this in the sgml-tools/linuxdoc-tools)
# Ronn (optional; ruby-based, builds manuals)

# Get it
cd
test -f installed/libidn2-2.3.4.tar.gz &&
mv -f installed/libidn2-2.3.4.tar.gz .
test ! -f libidn2-2.3.4.tar.gz &&
wget https://ftpmirror.gnu.org/libidn/libidn2-2.3.4.tar.gz

# Verify tarball w/ sha256sum:
#
# It was provided in the announcement as base64 encoded binary instead of
# hex so some extra steps are required to get the same output:
#
# k8q6crTgUdH41PWgdqtjyZt3+u4Bm3K5eDsmeYbbtF8=
# ->
# sha256sum libidn2-2.3.4.tar.gz | xxd -r -p | base64
# -or-
# openssl sha256 -binary libidn2-2.3.4.tar.gz | openssl base64
# ->
echo "93caba72b4e051d1f8d4f5a076ab63c99b77faee019b72b9783b267986dbb4\
5f  libidn2-2.3.4.tar.gz" | sha256sum -c

# Verify tarball w/ gpg:
( gpg --list-keys A2670428 > /dev/null 2>&1 || gpg --recv-keys A2670428 ) &&
wget -nc https://ftpmirror.gnu.org/gnu/libidn/libidn2-2.3.4.tar.gz.sig &&
  gpg --verify libidn2-2.3.4.tar.gz.sig && rm libidn2-2.3.4.tar.gz.sig

# Extract the source
mkdir -p -m 0700 ~/src
cd ~/src
find -maxdepth 1 -type d -name "libidn2-*" -exec rm -r {} \;
tar xzvf ~/libidn2-2.3.4.tar.gz
cd libidn2-2.3.4
test $UID = 0 && chown -R root:root .

# I use --disable-nls because I only read/write English (well)
# Seems kind of odd to use for a library that handles internationalization,
# so you may want to leave that off

# Configure the build for 64-bit
test $(uname -m) = 'x86_64' &&
./configure --prefix=/usr --infodir=/usr/info --libdir=/usr/lib64 \
--mandir=/usr/man --disable-static --disable-nls

# Configure the build for anything else
test $(uname -m) != 'x86_64' &&
./configure --prefix=/usr --infodir=/usr/info --mandir=/usr/man \
--disable-static --disable-nls

# Build it
make

# Become root to install it
su

# Remove the Slackware package, if there is one
# You will still have libidn.so.* after this because it is also
# part of the aaa_elflibs package
test -x /sbin/removepkg && /sbin/removepkg libidn2

# Install it
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 src
rm -f installed/libidn2-*.tar.*
mv libidn2-2.3.4.tar.gz installed/


# If you ever want to uninstall Libidn2, this should do it:
cd
su
test -d src/libidn2-* && ( cd src/libidn2-* ; make uninstall )
rm -f /usr/bin/idn2 \
/usr/include/idn2.h \
/usr/info/libidn2.info \
/usr/lib*/libidn2.* \
/usr/lib64/pkgconfig/libidn2.pc \
/usr/man/man1/idn2.1 \
/usr/man/man3/idn2_*.3
ldconfig
exit
find ~/src -maxdepth 1 -type d -name "libidn2-*" -exec rm -r {} \;
rm -f ~/installed/libidn2-*.tar.*

List of HOWTOs

Web page itself last updated: 2023-12-20 8:06pm (EDT -0400)
HOWTO last updated: 2023-10-02 11:28pm
Copyright © 2001-2024 Jason Englander. All Rights reserved.
[HTML5]