2
0
mirror of https://github.com/koreader/koreader synced 2024-10-31 21:20:20 +00:00
koreader/platform/debian/do_debian_package.sh
Martín Fernández 879f8a7624
[Desktop] Fix missing glyphs by packaging freefonts again (#6218)
Also disable battery completely from defaults/option in desktop linux as it always return 0%
2020-06-01 08:07:42 +02:00

125 lines
4.9 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Script to generate debian packages for KOReader
# shellcheck disable=SC2164
if [ -z "${1}" ]; then
echo "${0}: can't find KOReader build, please specify a path"
exit 1
else
INSTALL_DIR="${1}"
VERSION="$(cut -f2 -dv "${1}/koreader/git-rev" | cut -f1,2 -d-)"
fi
uname_to_debian() {
if [ "$(uname -m)" == "x86_64" ]; then
echo "amd64"
elif [ "$(uname -m)" == "i686" ]; then
echo "i686"
elif [ "$(uname -m)" == "arm64" ]; then
echo "aarch64"
else
echo "any"
fi
}
link_fonts() {
syspath="../../../../share/fonts/truetype/$(basename "${1}")"
for FILE in *.ttf; do
rm -rf "${FILE}"
ln -s "${syspath}/${FILE}" "${FILE}"
done
}
if [ -z "${2}" ]; then
ARCH="$(uname_to_debian)"
else
ARCH="${2}"
fi
command_exists() {
type "$1" >/dev/null 2>/dev/null
}
# Run only if dpkg-deb exists
COMMAND="dpkg-deb"
if command_exists "${COMMAND}"; then
BASE_DIR="${INSTALL_DIR}/debian/usr"
# populate debian control file
mkdir -p "${INSTALL_DIR}/debian/DEBIAN"
{
echo "Section: graphics"
echo "Priority: optional"
echo "Depends: libsdl2-2.0-0, fonts-noto-hinted, fonts-droid-fallback, libc6 (>= 2.2.3)"
echo "Architecture: ${ARCH}"
echo "Version: ${VERSION}"
echo "Installed-Size: $(du -ks "${INSTALL_DIR}/debian/usr/" | cut -f 1)"
echo "Package: koreader"
echo "Maintainer: Martín Fdez <paziusss@gmail.com>"
echo "Homepage: https://koreader.rocks"
echo "Description: Ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats"
echo " KOReader is a document viewer for E Ink devices."
echo " Supported fileformats include EPUB, PDF, DjVu, XPS, CBT,"
echo " CBZ, FB2, PDB, TXT, HTML, RTF, CHM, DOC, MOBI and ZIP files."
echo " Its available for Kindle, Kobo, PocketBook, Android and desktop Linux."
} >"${INSTALL_DIR}/debian/DEBIAN/control"
# remove leftovers
find "${BASE_DIR}" -type f -name ".git" -print0 | xargs -0 rm -rf
find "${BASE_DIR}" -type f -name ".gitignore" -print0 | xargs -0 rm -rf
find "${BASE_DIR}" -type f -name "discovery2spore" -print0 | xargs -0 rm -rf
find "${BASE_DIR}" -type f -name "wadl2spore" -print0 | xargs -0 rm -rf
find "${BASE_DIR}" -type d -name "test" -print0 | xargs -0 rm -rf
find "${BASE_DIR}" -type f -name "*.txt" -print0 | xargs -0 rm -rf
find "${BASE_DIR}" -type f -name "LICENSE" -print0 | xargs -0 rm -rf
find "${BASE_DIR}" -type f -name "NOTICE" -print0 | xargs -0 rm -rf
find "${BASE_DIR}" -type f -name "README.md" -print0 | xargs -0 rm -rf
find "${BASE_DIR}/lib" -type f -name "COPYING" -print0 | xargs -0 rm -rf
# fix permissions
find "${BASE_DIR}" -type d -print0 | xargs -0 chmod 755
find "${BASE_DIR}" -executable -type f -print0 | xargs -0 chmod 755
find "${BASE_DIR}" -type f -name "*.cff" -print0 | xargs -0 chmod 644
find "${BASE_DIR}" -type f -name "*.crt" -print0 | xargs -0 chmod 644
find "${BASE_DIR}" -type f -name "*.html" -print0 | xargs -0 chmod 644
find "${BASE_DIR}" -type f -name "*.lua" -print0 | xargs -0 chmod 644
find "${BASE_DIR}" -type f -name "*manifest" -print0 | xargs -0 chmod 644
find "${BASE_DIR}" -type f -name "*.pattern" -print0 | xargs -0 chmod 644
find "${BASE_DIR}" -type f -name "*.png" -print0 | xargs -0 chmod 644
find "${BASE_DIR}" -type f -name "*.otf" -print0 | xargs -0 chmod 644
find "${BASE_DIR}" -type f -name "*.po*" -print0 | xargs -0 chmod 644
find "${BASE_DIR}" -type f -name "*.so*" -print0 | xargs -0 chmod 644
find "${BASE_DIR}" -type f -name "*.ttf" -print0 | xargs -0 chmod 644
find "${BASE_DIR}" -type f -name "git-rev" -print0 | xargs -0 chmod 644
find "${BASE_DIR}" -type f -name "reader.lua" -print0 | xargs -0 chmod 755
# use absolute path to luajit in reader.lua
sed -i 's/.\/luajit/\/usr\/lib\/koreader\/luajit/' "${BASE_DIR}/lib/koreader/reader.lua"
# use debian packaged fonts instead of our embedded ones to save a couple of MB.
# Note: avoid linking against fonts-noto-cjk-extra, cause it weights ~200MB.
(cd "${BASE_DIR}/lib/koreader/fonts/noto" && link_fonts "$(pwd)")
# DroidSansMono has a restrictive license. Replace it with DroidSansFallback
(
cd "${BASE_DIR}/lib/koreader/fonts/droid" && rm -rf DroidSansMono.ttf &&
ln -s ../../../../share/fonts-droid-fallback/truetype/DroidSansFallback.ttf DroidSansMono.ttf
)
# try to remove rpath
if command_exists chrpath; then
find "${BASE_DIR}/lib/koreader/libs" -type f -name "*.so*" -print0 | xargs -0 chrpath -d
else
echo "chrpath tool not found. Skipping RPATH deletion"
fi
(cd "${INSTALL_DIR}/.." &&
fakeroot dpkg-deb -b "${INSTALL_DIR}/debian" "koreader-${VERSION}-${ARCH}.deb")
else
echo "${COMMAND} not found, unable to build Debian package"
exit 1
fi
exit 0