whalebird: 5.0.7 -> 6.0.4 (#284125)
This commit is contained in:
parent
a7c9fcd248
commit
cbb2518af7
2 changed files with 66 additions and 54 deletions
|
@ -1,37 +1,53 @@
|
|||
{ lib, stdenv, fetchurl
|
||||
, autoPatchelfHook, makeDesktopItem, copyDesktopItems, makeWrapper, gnugrep, asar
|
||||
, electron, python3, alsa-lib, gtk3, libdbusmenu, libxshmfence, mesa, nss
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, makeDesktopItem
|
||||
, copyDesktopItems
|
||||
, makeWrapper
|
||||
, electron
|
||||
, cacert
|
||||
, gitMinimal
|
||||
, yarn
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "whalebird";
|
||||
version = "5.0.7";
|
||||
version = "6.0.4";
|
||||
|
||||
src = let
|
||||
downloads = "https://github.com/h3poteto/whalebird-desktop/releases/download/v${version}";
|
||||
in
|
||||
if stdenv.system == "x86_64-linux" then
|
||||
fetchurl {
|
||||
url = downloads + "/Whalebird-${version}-linux-x64.tar.bz2";
|
||||
hash = "sha256-eufP038REwF2VwAxxI8R0S3fE8oJ+SX/CES5ozuut2w=";
|
||||
}
|
||||
else if stdenv.system == "aarch64-linux" then
|
||||
fetchurl {
|
||||
url = downloads + "/Whalebird-${version}-linux-arm64.tar.bz2";
|
||||
hash = "sha256-U0xVTUUm6wsRxYc1w4vfNtVE6o8dNzXTSi+IX4mgDEE=";
|
||||
}
|
||||
else
|
||||
throw "Whalebird is not supported for ${stdenv.system}";
|
||||
src = fetchFromGitHub {
|
||||
owner = "h3poteto";
|
||||
repo = "whalebird-desktop";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-Yx0GEEPJ+d4/RvCbqZdKR6iE2iUNbOJr+RuboqjT8z8=";
|
||||
};
|
||||
# we cannot use fetchYarnDeps because that doesn't support yarn 2/berry lockfiles
|
||||
offlineCache = stdenv.mkDerivation {
|
||||
name = "whalebird-${version}-offline-cache";
|
||||
inherit src;
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
makeWrapper
|
||||
copyDesktopItems
|
||||
gnugrep
|
||||
asar
|
||||
cacert # needed for git
|
||||
gitMinimal # needed to download git dependencies
|
||||
yarn
|
||||
];
|
||||
|
||||
buildInputs = [ alsa-lib gtk3 libdbusmenu libxshmfence mesa nss ];
|
||||
buildPhase = ''
|
||||
export HOME=$(mktemp -d)
|
||||
yarn config set enableTelemetry 0
|
||||
yarn config set cacheFolder $out
|
||||
yarn config set --json supportedArchitectures.os '[ "linux" ]'
|
||||
yarn config set --json supportedArchitectures.cpu '[ "arm64", "x64" ]'
|
||||
yarn
|
||||
'';
|
||||
|
||||
outputHashMode = "recursive";
|
||||
outputHash = "sha256-RjTGAgHRRQ4O3eTYpmTrl+KXafDZkWf1NH6lzdozVAA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
copyDesktopItems
|
||||
yarn
|
||||
];
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
|
@ -44,28 +60,21 @@ stdenv.mkDerivation rec {
|
|||
})
|
||||
];
|
||||
|
||||
unpackPhase = ''
|
||||
mkdir -p opt
|
||||
tar -xf ${src} -C opt
|
||||
# remove the version/target suffix from the untar'd directory
|
||||
mv opt/Whalebird-* opt/Whalebird
|
||||
'';
|
||||
ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
# Necessary steps to find the tray icon
|
||||
# For aarch64-linux, we need to overwrite this symlink first as it points to
|
||||
# /usr/bin/python3
|
||||
if [ "${stdenv.system}" = "aarch64-linux" ]
|
||||
then ln -sf ${python3}/bin/python3 \
|
||||
opt/Whalebird/resources/app.asar.unpacked/node_modules/better-sqlite3/build/node_gyp_bins/python3
|
||||
fi
|
||||
asar extract opt/Whalebird/resources/app.asar "$TMP/work"
|
||||
substituteInPlace "$TMP/work/dist/electron/main.js" \
|
||||
--replace "$(grep -oE '.{2},"tray_icon.png"' "$TMP/work/dist/electron/main.js")" \
|
||||
"\"$out/opt/Whalebird/resources/build/icons/tray_icon.png\""
|
||||
asar pack --unpack='{*.node,*.ftz,rect-overlay}' "$TMP/work" opt/Whalebird/resources/app.asar
|
||||
export HOME=$(mktemp -d)
|
||||
yarn config set enableTelemetry 0
|
||||
yarn config set cacheFolder ${offlineCache}
|
||||
|
||||
yarn --immutable-cache
|
||||
yarn run nextron build --no-pack
|
||||
yarn run electron-builder --dir \
|
||||
--config electron-builder.yml \
|
||||
-c.electronDist="${electron}/libexec/electron" \
|
||||
-c.electronVersion=${electron.version}
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
@ -73,26 +82,29 @@ stdenv.mkDerivation rec {
|
|||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir $out
|
||||
mv opt $out
|
||||
mkdir -p $out/opt
|
||||
cp -r ./dist/linux-unpacked $out/opt/Whalebird
|
||||
|
||||
# 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"
|
||||
# Install icons
|
||||
# Taken from https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=whalebird#n41
|
||||
for i in 16 32 128 256 512; do
|
||||
install -Dm644 "resources/icons/icon.iconset/icon_$i"x"$i.png" \
|
||||
"$out/share/icons/hicolor/$i"x"$i/apps/whalebird.png"
|
||||
done
|
||||
install -Dm644 "resources/icons/icon.iconset/icon_32x32@2x.png" \
|
||||
"$out/share/icons/hicolor/64x64/apps/whalebird.png"
|
||||
|
||||
makeWrapper ${electron}/bin/electron $out/bin/whalebird \
|
||||
--add-flags $out/opt/Whalebird/resources/app.asar \
|
||||
makeWrapper "${electron}/bin/electron" "$out/bin/whalebird" \
|
||||
--add-flags "$out/opt/Whalebird/resources/app.asar" \
|
||||
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Electron based Mastodon, Pleroma and Misskey client for Windows, Mac and Linux";
|
||||
description = "Single-column Fediverse client for desktop";
|
||||
homepage = "https://whalebird.social";
|
||||
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
||||
sourceProvenance = with sourceTypes; [ fromSource ];
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ wolfangaukang colinsane weathercold ];
|
||||
platforms = [ "x86_64-linux" "aarch64-linux" ];
|
||||
|
|
|
@ -36001,7 +36001,7 @@ with pkgs;
|
|||
wgnord = callPackage ../applications/networking/wgnord/default.nix { };
|
||||
|
||||
whalebird = callPackage ../applications/misc/whalebird {
|
||||
electron = electron_21;
|
||||
electron = electron_27;
|
||||
};
|
||||
|
||||
windowlab = callPackage ../applications/window-managers/windowlab { };
|
||||
|
|
Loading…
Reference in a new issue