diff options
author | Anderson Torres <torres.anderson.85@protonmail.com> | 2022-06-19 16:06:00 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-19 16:06:00 -0300 |
commit | 5540fe6619326835138127310ccbb5097da8a063 (patch) | |
tree | 3e19d6b2b3f0a7744cace2a06551a504fde3856d | |
parent | 07eb8d105a1ee01a09464d878c6c1daf1a4fcdae (diff) | |
parent | b5ad148a637e03e02bec67208766d75f55d31707 (diff) |
Merge pull request #176476 from uninsane/colinsane/whalebird-aarch64
whalebird: 4.5.4 -> 4.6.0, add aarch64 support
-rw-r--r-- | maintainers/maintainer-list.nix | 7 | ||||
-rw-r--r-- | pkgs/applications/misc/whalebird/default.nix | 60 |
2 files changed, 51 insertions, 16 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index ac8b3965dbaa7..0bdeaee25a038 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -2529,6 +2529,13 @@ fingerprint = "68B8 0D57 B2E5 4AC3 EC1F 49B0 B37E 0F23 7101 6A4C"; }]; }; + colinsane = { + name = "Colin Sane"; + email = "colin@uninsane.org"; + matrix = "@colin:uninsane.org"; + github = "uninsane"; + githubId = 106709944; + }; collares = { email = "mauricio@collares.org"; github = "collares"; diff --git a/pkgs/applications/misc/whalebird/default.nix b/pkgs/applications/misc/whalebird/default.nix index 9b8a7f0a348ad..f49b14e8fc48f 100644 --- a/pkgs/applications/misc/whalebird/default.nix +++ b/pkgs/applications/misc/whalebird/default.nix @@ -1,28 +1,51 @@ -{ lib, stdenv, fetchurl, dpkg, autoPatchelfHook, makeWrapper, electron +{ lib, stdenv, fetchurl, autoPatchelfHook, makeDesktopItem, copyDesktopItems, makeWrapper, electron , nodePackages, alsa-lib, gtk3, libdbusmenu, libxshmfence, mesa, nss }: stdenv.mkDerivation rec { pname = "whalebird"; - version = "4.5.4"; + version = "4.6.0"; - src = fetchurl { - url = "https://github.com/h3poteto/whalebird-desktop/releases/download/${version}/Whalebird-${version}-linux-x64.deb"; - sha256 = "048c2hpnlzjli8r1lcm7hd32qfsq4p9vkimrgc049yw9f15ndjpr"; - }; + src = let + downloads = "https://github.com/h3poteto/whalebird-desktop/releases/download/${version}"; + in + if stdenv.system == "x86_64-linux" then + fetchurl { + url = downloads + "/Whalebird-${version}-linux-x64.tar.bz2"; + sha256 = "02f2f4b7184494926ef58523174acfa23738d5f27b4956d094836a485047c2f8"; + } + else if stdenv.system == "aarch64-linux" then + fetchurl { + url = downloads + "/Whalebird-${version}-linux-arm64.tar.bz2"; + sha256 = "de0cdf7cbd6f0305100a2440e2559ddce0a5e4ad73a341874d6774e23dc76974"; + } + else + throw "Whalebird is not supported for ${stdenv.system}"; nativeBuildInputs = [ - dpkg autoPatchelfHook makeWrapper + copyDesktopItems nodePackages.asar ]; buildInputs = [ alsa-lib gtk3 libdbusmenu libxshmfence mesa nss ]; - dontConfigure = true; + desktopItems = [ + (makeDesktopItem { + desktopName = "Whalebird"; + comment = meta.description; + categories = [ "Network" ]; + exec = "whalebird"; + icon = "whalebird"; + name = "whalebird"; + }) + ]; unpackPhase = '' - dpkg-deb -x ${src} ./ + mkdir -p opt + tar -xf ${src} -C opt + # remove the version/target suffix from the untar'd directory + mv opt/Whalebird-* opt/Whalebird ''; buildPhase = '' @@ -31,7 +54,7 @@ stdenv.mkDerivation rec { # Necessary steps to find the tray icon asar extract opt/Whalebird/resources/app.asar "$TMP/work" substituteInPlace $TMP/work/dist/electron/main.js \ - --replace "jo,\"tray_icon.png\"" "\"$out/opt/Whalebird/resources/build/icons/tray_icon.png\"" + --replace "Do,\"tray_icon.png\"" "\"$out/opt/Whalebird/resources/build/icons/tray_icon.png\"" asar pack --unpack='{*.node,*.ftz,rect-overlay}' "$TMP/work" opt/Whalebird/resources/app.asar runHook postBuild @@ -41,12 +64,17 @@ stdenv.mkDerivation rec { runHook preInstall mkdir $out - mv usr/share opt $out + mv opt $out + + # install icons + for icon in $out/opt/Whalebird/resources/build/icons/*.png; do + mkdir -p "$out/share/icons/hicolor/$(basename $icon .png)/apps" + ln -s "$icon" "$out/share/icons/hicolor/$(basename $icon .png)/apps/whalebird.png" + done - substituteInPlace $out/share/applications/whalebird.desktop \ - --replace '/opt/Whalebird' $out/bin makeWrapper ${electron}/bin/electron $out/bin/whalebird \ - --add-flags $out/opt/Whalebird/resources/app.asar + --add-flags $out/opt/Whalebird/resources/app.asar \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland}}" runHook postInstall ''; @@ -55,7 +83,7 @@ stdenv.mkDerivation rec { description = "Electron based Mastodon, Pleroma and Misskey client for Windows, Mac and Linux"; homepage = "https://whalebird.social"; license = licenses.mit; - maintainers = with maintainers; [ wolfangaukang ]; - platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ wolfangaukang colinsane ]; + platforms = [ "x86_64-linux" "aarch64-linux" ]; }; } |