Commit c705c325 authored by liberodark's avatar liberodark
Browse files

koreader: fix Japanese text selection with patched luajit

parent 19be933f
Loading
Loading
Loading
Loading
+19 −7
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@
  lib,
  stdenv,
  fetchurl,
  fetchpatch,
  makeWrapper,
  fetchFromGitHub,
  dpkg,
@@ -14,11 +15,21 @@
  openssl,
  writeScript,
}:
let
  luajit_lua52 = luajit.override { enable52Compat = true; };

let
  version = "2025.10";

  # LuaJIT with table.pack/unpack support for KOReader
  # https://github.com/koreader/koreader-base/tree/master/thirdparty/luajit
  luajit_koreader = luajit.overrideAttrs (old: {
    patches = (old.patches or [ ]) ++ [
      (fetchpatch {
        url = "https://raw.githubusercontent.com/koreader/koreader-base/master/thirdparty/luajit/koreader-luajit-enable-table_pack.patch";
        hash = "sha256-tvx7eRoSwnumqK6H7+2RCAKRDFJtaRY/2mRPjy30fJA=";
      })
    ];
  });

  src_repo = fetchFromGitHub {
    repo = "koreader";
    owner = "koreader";
@@ -52,14 +63,15 @@ stdenv.mkDerivation {
    };

  nativeBuildInputs = [
    makeWrapper
    dpkg
    makeWrapper
  ];

  buildInputs = [
    glib
    gnutar
    gtk3-x11
    luajit_lua52
    luajit_koreader
    sdcv
    SDL2
    openssl
@@ -72,7 +84,7 @@ stdenv.mkDerivation {
  ''
  # Link required binaries
  + ''
    ln -sf ${luajit_lua52}/bin/luajit $out/lib/koreader/luajit
    ln -sf ${luajit_koreader}/bin/luajit $out/lib/koreader/luajit
    ln -sf ${sdcv}/bin/sdcv $out/lib/koreader/sdcv
    ln -sf ${gnutar}/bin/tar $out/lib/koreader/tar
  ''
@@ -83,7 +95,7 @@ stdenv.mkDerivation {
  ''
  # Copy fonts
  + ''
    find ${src_repo}/resources/fonts -type d -execdir cp -r '{}' $out/lib/koreader/fonts \;
    cp -r ${src_repo}/resources/fonts/* $out/lib/koreader/fonts/
  ''
  # Remove broken symlinks
  + ''
@@ -104,7 +116,7 @@ stdenv.mkDerivation {
  '';

  passthru = {
    inherit src_repo;
    inherit src_repo luajit_koreader;
    updateScript = writeScript "update-koreader" ''
      #!/usr/bin/env nix-shell
      #!nix-shell -i bash -p nix curl jq nix-update common-updater-scripts