koreader-from-src: lunasvg: populate in a simpler way

This commit is contained in:
Colin 2024-03-22 19:16:45 +00:00
parent ce770dbea9
commit e67ce7576b
2 changed files with 21 additions and 10 deletions

View File

@ -123,7 +123,7 @@ let
libk2pdfopt-src-ko = fetchFromGitHub {
owner = "koreader";
repo = "libk2pdfopt";
name = "libk2pdfopt";
name = "libk2pdfopt"; # where to unpack this in `srcs`
rev = "09f1e011a618c8ec06b4caa67079682119d2aaa7";
hash = "sha256-37sZ46dG6Z1Wk7NrhKAKl5j9r1bN6g01cd5Iyt/2coM=";
};
@ -131,11 +131,19 @@ let
lodepng-src-ko = fetchFromGitHub {
owner = "lvandeve";
repo = "lodepng";
name = "lodepng";
name = "lodepng"; # where to unpack this in `srcs`
rev = "d398e0f10d152a5d17fa30463474dc9f56523f9c";
hash = "sha256-ApOHUgU6X1rHwyjAHA/0Nt+buDFqY2ttXEnEvdrRl3A=";
};
lunasvg-src-ko = fetchFromGitHub {
owner = "sammycage";
repo = "lunasvg";
name = "lunasvg"; # where to unpack this in `srcs`
rev = "59d6f6ba835c1b7c7a0f9d4ea540ec3981777885";
hash = "sha256-gW2ikakS6Omz5upmy26nAo/jkGHYO2kjlB3UmKJBh1k=";
};
nanosvg-headers-ko = symlinkJoin {
# koreader's heavily-patched mupdf is dependent on a koreader-specific `stb_image_write` extension to nanosvg.
# nanosvg is used as a header-only library, so just patch that extension straight into the src.
@ -328,6 +336,7 @@ let
LIBWEBP_DIR="${lib.getDev libwebp}" \
LODEPNG_DIR="$NIX_BUILD_TOP/lodepng" \
LPEG_ROCK="${rockspecFor "lpeg"}" \
LUNASVG_DIR="$NIX_BUILD_TOP/lunasvg" \
LUAJIT="${luaEnv}/bin/luajit" \
LUAJIT_JIT="${luaEnv}/share/lua/5.1/jit" \
LUAJIT_LIB="${lib.getLib luaEnv}/lib/libluajit-5.1.so" \
@ -415,6 +424,7 @@ stdenv.mkDerivation rec {
leptonica-src-ko
libk2pdfopt-src-ko
lodepng-src-ko
lunasvg-src-ko
tesseract-src-ko
] ++ (lib.mapAttrsToList
(name: src: fetchgit (
@ -468,7 +478,7 @@ stdenv.mkDerivation rec {
--replace-fail ' -rm ' ' # -rm'
# make some sources writable (only the `sourceRoot` is writable by default)
chmod -R u+w "$NIX_BUILD_TOP"/{fbink,kobo-usbms,leptonica,libk2pdfopt,lodepng,tesseract}
chmod -R u+w "$NIX_BUILD_TOP"/{fbink,kobo-usbms,leptonica,libk2pdfopt,lodepng,lunasvg,tesseract}
# lots of places in Makefile.third (incorrectly) assume lib paths are relative to CURDIR,
# so link /nix into CURDIR to allow them to work anyway
@ -524,7 +534,7 @@ stdenv.mkDerivation rec {
skip_download() {
# sed -i 's/DOWNLOAD_COMMAND .*/DOWNLOAD_COMMAND ""/' "base/thirdparty/$1/CMakeLists.txt"
sed -i "s:DOWNLOAD_COMMAND .*:DOWNLOAD_COMMAND rm -fd $1 \\&\\& ln -s $NIX_BUILD_TOP/$1 .:" "base/thirdparty/$1/CMakeLists.txt"
sed -i "s:DOWNLOAD_COMMAND .*:DOWNLOAD_COMMAND rm -fd $1 $1-build \\&\\& ln -s $NIX_BUILD_TOP/$1 $1 \\&\\& ln -s $NIX_BUILD_TOP/$1 $1-build :" "base/thirdparty/$1/CMakeLists.txt"
}
${builtins.concatStringsSep "\n" (
@ -537,6 +547,7 @@ stdenv.mkDerivation rec {
skip_download kobo-usbms
skip_download libk2pdfopt
skip_download lodepng
skip_download lunasvg
# outDir should match OUTPUT_DIR in koreader-base
outDir="$NIX_BUILD_TOP/koreader/base/build/${stdenv.hostPlatform.config}"

View File

@ -229,12 +229,12 @@ in
# source.hash = "sha256-wb7ykJsndoq0DazHpfXieUcBBptowYqD/eTTN/EK/6g=";
# # package: not in nixpkgs
# };
lunasvg = {
source.url = "https://github.com/sammycage/lunasvg.git";
source.rev = "59d6f6ba835c1b7c7a0f9d4ea540ec3981777885";
source.hash = "sha256-gW2ikakS6Omz5upmy26nAo/jkGHYO2kjlB3UmKJBh1k=";
# package: not in nixpkgs
};
# lunasvg = {
# source.url = "https://github.com/sammycage/lunasvg.git";
# source.rev = "59d6f6ba835c1b7c7a0f9d4ea540ec3981777885";
# source.hash = "sha256-gW2ikakS6Omz5upmy26nAo/jkGHYO2kjlB3UmKJBh1k=";
# # package: not in nixpkgs
# };
minizip = {
source.url = "https://github.com/nmoinvaz/minizip";
source.rev = "0b46a2b4ca317b80bc53594688883f7188ac4d08";