From 18906f453e5f5f4190ed281d6262f50e8b8f8ca0 Mon Sep 17 00:00:00 2001 From: Atemu Date: Fri, 11 Dec 2020 09:08:55 +0100 Subject: [PATCH 1/3] anki-bin: init at 2.1.36 Works around https://github.com/NixOS/nixpkgs/issues/78449 Co-authored-by: Dmitry Kalinkin --- pkgs/games/anki/bin.nix | 44 +++++++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 1 + 2 files changed, 45 insertions(+) create mode 100644 pkgs/games/anki/bin.nix diff --git a/pkgs/games/anki/bin.nix b/pkgs/games/anki/bin.nix new file mode 100644 index 00000000000..e0de57fdcab --- /dev/null +++ b/pkgs/games/anki/bin.nix @@ -0,0 +1,44 @@ +{ fetchurl, stdenv, lib, buildFHSUserEnv, appimageTools, writeShellScript, anki }: + +let + pname = "anki-bin"; + version = "2.1.36"; + + unpacked = stdenv.mkDerivation { + inherit pname version; + + src = fetchurl { + url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-linux.tar.bz2"; + sha256 = "01xcjnfs5pfh7v0nkffw2wpl19l6pj9k3kxrcawv3cm42asy0mfz"; + }; + + installPhase = '' + runHook preInstall + + xdg-mime () { + echo Stubbed! + } + export -f xdg-mime + + PREFIX=$out bash install.sh + + runHook postInstall + ''; + }; + + meta = with lib; { + inherit (anki.meta) license homepage description longDescription; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ atemu ]; + }; +in + +buildFHSUserEnv (appimageTools.defaultFhsEnvArgs // { + name = "anki"; + + runScript = writeShellScript "anki-wrapper.sh" '' + exec ${unpacked}/bin/anki + ''; + + inherit meta; +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 184632f4924..5de7e7403dc 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -25350,6 +25350,7 @@ in anki = python3Packages.callPackage ../games/anki { inherit (darwin.apple_sdk.frameworks) CoreAudio; }; + anki-bin = callPackage ../games/anki/bin.nix { buildFHSUserEnv = buildFHSUserEnvBubblewrap; }; armagetronad = callPackage ../games/armagetronad { }; From 0769fe271278380429b70f9dc635c93d13c09cec Mon Sep 17 00:00:00 2001 From: Atemu Date: Fri, 11 Dec 2020 18:19:10 +0100 Subject: [PATCH 2/3] anki-bin: add darwin support --- pkgs/games/anki/bin.nix | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/pkgs/games/anki/bin.nix b/pkgs/games/anki/bin.nix index e0de57fdcab..043a9e040db 100644 --- a/pkgs/games/anki/bin.nix +++ b/pkgs/games/anki/bin.nix @@ -1,7 +1,8 @@ -{ fetchurl, stdenv, lib, buildFHSUserEnv, appimageTools, writeShellScript, anki }: +{ fetchurl, stdenv, lib, buildFHSUserEnv, appimageTools, writeShellScript, anki, undmg }: let pname = "anki-bin"; + # Update hashes for both Linux and Darwin! version = "2.1.36"; unpacked = stdenv.mkDerivation { @@ -28,12 +29,12 @@ let meta = with lib; { inherit (anki.meta) license homepage description longDescription; - platforms = [ "x86_64-linux" ]; + platforms = [ "x86_64-linux" "x86_64-darwin" ]; maintainers = with maintainers; [ atemu ]; }; in -buildFHSUserEnv (appimageTools.defaultFhsEnvArgs // { +if stdenv.isLinux then buildFHSUserEnv (appimageTools.defaultFhsEnvArgs // { name = "anki"; runScript = writeShellScript "anki-wrapper.sh" '' @@ -41,4 +42,21 @@ buildFHSUserEnv (appimageTools.defaultFhsEnvArgs // { ''; inherit meta; -}) +}) else stdenv.mkDerivation { + inherit pname version; + + src = fetchurl { + url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-mac.dmg"; + sha256 = "1i6iidm5h8r9g801mvqxi2av03qdw3lr28056fv5ixnb5dq2wqim"; + }; + + nativeBuildInputs = [ undmg ]; + sourceRoot = "."; + + installPhase = '' + mkdir -p $out/Applications/ + cp -a Anki.app $out/Applications/ + ''; + + inherit meta; +} From 847b317a95f13572146fbdc43067a5abd8dcc3a6 Mon Sep 17 00:00:00 2001 From: Atemu Date: Thu, 24 Dec 2020 06:50:19 +0100 Subject: [PATCH 3/3] anki-bin: force x11 Co-authored-by: Vika --- pkgs/games/anki/bin.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/games/anki/bin.nix b/pkgs/games/anki/bin.nix index 043a9e040db..1a642c90d2e 100644 --- a/pkgs/games/anki/bin.nix +++ b/pkgs/games/anki/bin.nix @@ -38,6 +38,8 @@ if stdenv.isLinux then buildFHSUserEnv (appimageTools.defaultFhsEnvArgs // { name = "anki"; runScript = writeShellScript "anki-wrapper.sh" '' + # Wayland support is broken, disable via ENV variable + export QT_QPA_PLATFORM=xcb exec ${unpacked}/bin/anki '';