# If you are using Cyrus IMAP 2.5.x, you want libical 2.0.x
# If you are using Cyrus IMAP >= 3.2.x, you want libical 3.0.x
# Below, version 2.x is located below version 3.x
# They are set up to not clobber each other, but there will always be a
# libical.so symlink pointing to the one most recently installed
# Libical 2.0.0
# ==============
# Version 2.0.0 of Libical is supported by Cyrus IMAP as of version 2.5.9
# Prerequisites:
# CMake >= 3.1.0
# Perl
# libicu (optional but recommended; Slackware has a 'icu4c' package)
# pkg-config
# Berkeley DB (optional)
# Glib >= 2.3.2 (optional; for libical-glib)
# libxml >= 2.7.3 (optional; for libical-glib)
# doxygen (optional; for API docs)
# If you have an older version installed under a different prefix,
# such as the default of /usr/local, and want to match the Slackware
# prefix of /usr, remove the old one before you proceed below.
# 'make uninstall' as root from the source directory should take
# care of that for you.
# Get it
cd
test -f installed/libical-2.0.0.tar.gz &&
mv -f installed/libical-2.0.0.tar.gz .
test ! -f libical-2.0.0.tar.gz &&
wget https://github.com/libical/libical/releases/download/v2.0.0/\
libical-2.0.0.tar.gz
# Extract the source
mkdir -p -m 0700 ~/src
cd ~/src
find -type d -maxdepth 1 -name "libical-2.*" -exec rm -r {} \;
tar xzvf ~/libical-2.0.0.tar.gz
cd libical-2.0.0
test $UID = 0 && chown -R root:root .
# If you want static libraries only pass -DSTATIC_ONLY=True to cmake
# If you want shared libraries only pass -DSHARED_ONLY=True to cmake
# (otherwise you get both)
# To enable Berkeley DB pass -DWITH_BDB=True to cmake
# Create a build directory for it
mkdir build
cd build
# Not necessary to specify lib64 vs lib, it will handle that
# Configure the build for 64-bit
test $(uname -m) = 'x86_64' &&
cmake -DCMAKE_INSTALL_PREFIX=/usr ..
# Configure the build for anything else
test $(uname -m) != 'x86_64' &&
cmake -DCMAKE_INSTALL_PREFIX=/usr ..
# Build it
make
# Test the build
make test
# Become root to install it
su
# Remove the Slackware package, if there is one
test -x /sbin/removepkg && /sbin/removepkg libical
# 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/libical-2.*.tar.*
mv -f libical-2.0.0.tar.gz installed/
# Libical 3.0.18
# ==============
# Prerequisites:
# CMake >= 3.5.0
# Perl
# libicu (optional but recommended)
# pkg-config
# Berkeley DB (optional)
# Glib >= 2.32 (optional; for libical-glib)
# libxml >= 2.7.3 (optional; for libical-glib)
# doxygen (optional; for API docs)
# If you have an older version installed under a different prefix,
# such as the default of /usr/local, and want to match the Slackware
# prefix of /usr, remove the old one before you proceed below.
# 'make uninstall' as root from the source directory should take
# care of that for you.
# Get it
cd
test -f installed/libical-3.0.18.tar.gz &&
mv -f installed/libical-3.0.18.tar.gz .
test ! -f libical-3.0.18.tar.gz &&
wget https://github.com/libical/libical/releases/download/v3.0.18/\
libical-3.0.18.tar.gz
# Extract the source
mkdir -p -m 0700 ~/src
cd ~/src
find -type d -maxdepth 1 -name "libical-3.*" -exec rm -r {} \;
tar xzvf ~/libical-3.0.18.tar.gz
cd libical-3.0.18
test $UID = 0 && chown -R root:root .
# Read these:
# README.md (pandoc can convert it if needed)
# ReleaseNotes.txt
# Install.txt
# If you want static libraries only pass -DSTATIC_ONLY=True to cmake
# If you want shared libraries only pass -DSHARED_ONLY=True to cmake
# (otherwise you get both)
# To enable Berkeley DB pass -DWITH_BDB=True to cmake
# Create a build directory for it
mkdir build
cd build
# Not necessary to specify lib64 vs lib, it will handle that
# Configure the build
cmake -DCMAKE_INSTALL_PREFIX=/usr ..
# Build it
make
# Test the build
make test
# Become root to install it
su
# Remove the Slackware package, if there is one
test -x /sbin/removepkg && /sbin/removepkg libical
# 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/libical-3.tar.*
mv -f libical-3.0.18.tar.gz installed/
# If you ever want to uninstall libical, this should do it:
# (see install_manifest.txt in the source directory)
cd
su
test -d src/libical-* && ( cd src/libical-* ; make uninstall )
for pfx in /usr /usr/local; do
test -d ${pfx}/include/libical && rm -r ${pfx}/include/libical
test -d ${pfx}/include/libical-glib && rm -r ${pfx}/include/libical-glib
test -d ${pfx}/lib/cmake/LibIcal && rm -r ${pfx}/lib/cmake/LibIcal
test -d ${pfx}/lib64/cmake/LibIcal && rm -r ${pfx}/lib64/cmake/LibIcal
( cd ${pfx}/lib/pkgconfig
rm -f libical.pc libical-glib.pc )
( cd ${pfx}/lib64/pkgconfig
rm -f libical.pc libical-glib.pc )
( cd ${pfx}/lib
rm -f libical.* libical-glib.* libical_cxx.* libicalss.* libicalvcal.* )
( cd ${pfx}/lib64
rm -f libical.* libical-glib.* libical_cxx.* libicalss.* libicalvcal.* )
test -d ${pfx}/share/gtk-doc/html/libical-glib &&
rm -r ${pfx}/share/gtk-doc/html/libical-glib
done
exit
find ~/src -maxdepth 1 -type d -name "libical-*" -exec rm -r {} \;
rm -f ~/installed/libical-*.tar.*