这是indexloc提供的服务,不要输入任何密码
Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
122 changes: 73 additions & 49 deletions pkgs/revolt/revolt.nix
Original file line number Diff line number Diff line change
@@ -1,56 +1,80 @@
{
lib,
newScope,
stdenv,
pkgs,
callPackage,
electron,
makeWrapper,
copyDesktopItems,
makeDesktopItem,
autoPatchelfHook,
fetchurl,
libX11,
libXrandr,
libXcomposite,
libXdamage,
glib,
libGL,
libxkbcommon,
libdrm,
nss,
atk,
at-spi2-atk,
gtk3,
mesa,
alsa-lib,
}:
lib.makeScope newScope (self: {
revolt = callPackage ({
pkgs,
stdenv,
electron,
mkYarnPackage,
}: let
rev = "19df085e793643b44b55bee76cdd8f00b891a106";
sha256 = "07g3cmb1dn6gvnc5w6shc81bdalsh74jr8rr15w67qk4w593lf5y";
src = pkgs.fetchFromGitHub {
owner = "revoltchat";
repo = "Desktop";
inherit rev sha256;
stdenv.mkDerivation rec {
pname = "Revolt";
version = "1.0.6";
src = fetchurl {
url = "https://github.com/revoltchat/desktop/releases/download/v${version}/Revolt-linux.tar.gz";
sha256 = "sha256-AG3RrpYkMgrUd3hOrlLhpdORGCX9Dl/1rh6zYg7VSN0=";
};
in
mkYarnPackage rec {
name = "revolt-${rev}";
inherit src;
packageJSON = ./package.json;
yarnLock = ./yarn.lock;

buildInputs = [electron];
dontBuild = true;
dontStrip = true;

pname = "Revolt";
installPhase = ''
ls -al
runHook preInstall
mkdir -p $out/{bin,libexec/${pname}}
mv node_modules $out/libexec/${pname}/node_modules
mv deps $out/libexec/${pname}/deps
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
name = pname;
exec = "revolt-desktop";
comment = "User-first, privacy focused chat platform.";
desktopName = "Revolt";
})
];

distPhase = ''
cd $out
unlink "$out/libexec/${pname}/deps/${pname}/node_modules"
ln -s "$out/libexec/${pname}/node_modules" "$out/libexec/${pname}/deps/${pname}/desktop/node_modules"
ls -al
ls -al libexec
mkdir -p bin
cd bin
echo '#!/bin/sh' > revolt
echo "cd $out/libexec/${pname}/deps/${pname}" >> revolt
echo "${electron}/bin/electron $out/libexec/${pname}/deps/${pname}/desktop" >> revolt
chmod 0755 $out/bin/revolt
true
'';
}) {};
})
nativeBuildInputs = [
autoPatchelfHook
makeWrapper
copyDesktopItems
];
buildInputs = [
electron

libX11
libXcomposite
libXrandr
libXdamage
glib
libxkbcommon
libdrm
nss
atk
at-spi2-atk
gtk3
libGL
mesa
alsa-lib
];

installPhase = ''
runHook preInstall

mkdir -p $out/opt/revolt $out/share/revolt $out/share/pixmaps
cp -r ./ $out/opt/revolt
mv $out/opt/revolt/{locales,resources} $out/share/revolt

makeWrapper ${electron}/bin/electron $out/bin/revolt-desktop \
--add-flags $out/share/revolt/resources/app.asar

runHook postInstall
'';
}