# Get the tarball
cd
mkdir -p -m 0700 installed
test -f installed/libheif-1.17.6.tar.gz &&
mv -f installed/libheif-1.17.6.tar.gz .
test ! -f libheif-1.17.6.tar.gz &&
wget https://github.com/strukturag/libheif/releases/download/v1.17.6/\
libheif-1.17.6.tar.gz
# Extract the source
mkdir -p -m 0700 ~/src
cd src
find -maxdepth 1 -type d -name "libheif-*" -exec rm -r {} \;
tar xzvf ~/libheif-1.17.6.tar.gz
cd libheif-1.17.6
test $UID = 0 && chown -R root:root .
# Read README.md
# Create a build directory
mkdir build
cd build
# If you do not have a /usr/local/share/man -> /usr/local/man symlink, or
# have MANPATH set to look in there also, be aware that this defaults to
# using /usr/local/share/man
# If you want to use a smaller non-plugin library, use
# --preset=release-noplugins
# Configure the build
# --preset requires CMake version >= 3.21
cmake --preset=release ..
# Build it
make
# Become root to install it
su
# Install it
make install
ldconfig
# Make sure your non-root user can remove the source later
chown -R $(logname) .
chmod -R u+rwx .
# Become your non-root user again
exit
# Save the tarball for later
cd
mkdir -p -m 0700 installed
rm -f installed/libheif-*.tar.*
mv libheif-1.17.6.tar.gz installed/
# If you ever want to uninstall libheif, this should do it:
# (see ~/src/libheif-1.17.6/build/install_manifest.txt)
cd
su
( cd /usr/local/bin
rm -f heif-convert heif-enc heif-info heif-thumbnailer )
test -d /usr/local/include/libheif && rm -r /usr/local/include/libheif
test -d /usr/local/lib/cmake/libheif && rm -r /usr/local/lib/cmake/libheif
test -d /usr/local/lib64/cmake/libheif &&
rm -r /usr/local/lib64/cmake/libheif
( cd /usr/local/lib
rm -f libheif.so libheif.so.* pkgconfig/libheif.pc
test -d ./libheif && rm -r ./libheif )
test -d /usr/local/lib64 &&
( cd /usr/local/lib64
rm -f libheif.so libheif.so.* pkgconfig/libheif.pc
test -d ./libheif && rm -r ./libheif )
( cd /usr/local/man/man1
rm -f heif-convert.1 heif-enc.1 heif-info.1 heif-thumbnailer.1 )
( cd /usr/local/share/man/man1
rm -f heif-convert.1 heif-enc.1 heif-info.1 heif-thumbnailer.1 )
rm -f /usr/local/share/thumbnailers/heif.thumbnailer
ldconfig
exit
find ~/src -maxdepth 1 -type d -name "libheif-*" -exec rm -r {} \;
rm -f ~/installed/libheif-*.tar.*