about summary refs log tree commit diff
path: root/pkgs/by-name/ko/koodo-reader/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/ko/koodo-reader/package.nix')
-rw-r--r--pkgs/by-name/ko/koodo-reader/package.nix50
1 files changed, 34 insertions, 16 deletions
diff --git a/pkgs/by-name/ko/koodo-reader/package.nix b/pkgs/by-name/ko/koodo-reader/package.nix
index 6386cece98efa..5a53af807eea4 100644
--- a/pkgs/by-name/ko/koodo-reader/package.nix
+++ b/pkgs/by-name/ko/koodo-reader/package.nix
@@ -8,10 +8,13 @@
   makeDesktopItem,
   copyDesktopItems,
   makeWrapper,
-  wrapGAppsHook,
+  wrapGAppsHook3,
   electron,
 }:
 
+let
+  electronDist = electron + (if stdenv.isDarwin then "/Applications" else "/libexec/electron");
+in
 mkYarnPackage rec {
   pname = "koodo-reader";
   version = "1.6.6";
@@ -29,23 +32,27 @@ mkYarnPackage rec {
   # should be copied from `koodo-reader.src`
   packageJSON = ./package.json;
 
-  patches = [ ./fix-isdev.patch ];
-
   offlineCache = fetchYarnDeps {
     yarnLock = "${src}/yarn.lock";
     hash = "sha256-VvYkotVb74zR9+/IWiQwOX/6RJf+xukpi7okRovfVzc=";
   };
 
-  nativeBuildInputs = [
-    copyDesktopItems
-    makeWrapper
-    wrapGAppsHook
-  ];
+  nativeBuildInputs =
+    [
+      makeWrapper
+    ]
+    ++ lib.optionals (!stdenv.isDarwin) [
+      copyDesktopItems
+      wrapGAppsHook3
+    ];
 
   dontWrapGApps = true;
 
   env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
 
+  # disable code signing on Darwin
+  env.CSC_IDENTITY_AUTO_DISCOVERY = "false";
+
   configurePhase = ''
     runHook preConfigure
 
@@ -60,8 +67,11 @@ mkYarnPackage rec {
 
     export HOME=$(mktemp -d)
     yarn --offline build
+
+    cp -r ${electronDist} electron-dist
+    chmod -R u+w electron-dist
     yarn --offline run electron-builder --dir \
-      -c.electronDist=${electron}/libexec/electron \
+      -c.electronDist=electron-dist \
       -c.electronVersion=${electron.version}
 
     runHook postBuild
@@ -70,21 +80,30 @@ mkYarnPackage rec {
   installPhase = ''
     runHook preInstall
 
-    install -Dm644 assets/icons/256x256.png $out/share/icons/hicolor/256x256/apps/koodo-reader.png
-    install -Dm644 ${./mime-types.xml} $out/share/mime/packages/koodo-reader.xml
+    ${lib.optionalString (!stdenv.isDarwin) ''
+      install -Dm644 assets/icons/256x256.png $out/share/icons/hicolor/256x256/apps/koodo-reader.png
+      install -Dm644 ${./mime-types.xml} $out/share/mime/packages/koodo-reader.xml
+
+      mkdir -p $out/share/lib/koodo-reader
+      cp -r dist/*-unpacked/{locales,resources{,.pak}} $out/share/lib/koodo-reader
+    ''}
 
-    mkdir -p $out/share/lib/koodo-reader
-    cp -r dist/*-unpacked/{locales,resources{,.pak}} $out/share/lib/koodo-reader
+    ${lib.optionalString stdenv.isDarwin ''
+      mkdir -p $out/Applications
+      cp -r dist/mac*/"Koodo Reader.app" $out/Applications
+      makeWrapper "$out/Applications/Koodo Reader.app/Contents/MacOS/Koodo Reader" $out/bin/koodo-reader
+    ''}
 
     runHook postInstall
   '';
 
   # we use makeShellWrapper instead of the makeBinaryWrapper provided by wrapGAppsHook for proper shell variable expansion
-  postFixup = ''
-    makeShellWrapper ${electron}/bin/electron $out/bin/koodo-reader \
+  postFixup = lib.optionalString (!stdenv.isDarwin) ''
+    makeShellWrapper ${lib.getExe electron} $out/bin/koodo-reader \
       --add-flags $out/share/lib/koodo-reader/resources/app.asar \
       "''${gappsWrapperArgs[@]}" \
       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
+      --set-default ELECTRON_IS_DEV 0 \
       --inherit-argv0
   '';
 
@@ -117,7 +136,6 @@ mkYarnPackage rec {
   ];
 
   meta = {
-    broken = stdenv.isDarwin;
     changelog = "https://github.com/troyeguo/koodo-reader/releases/tag/v${version}";
     description = "A cross-platform ebook reader";
     longDescription = ''