this fixes current breakage, and should be a more durable solution for running the binary distributionmain
parent
e905ff84a5
commit
0cfc54bb46
@ -1,95 +1,76 @@ |
||||
## FIXME: see ../../../servers/code-server/ for a proper yarn packaging |
||||
## - export ELECTRON_SKIP_BINARY_DOWNLOAD=1 |
||||
## - jq "del(.scripts.preinstall)" node_modules/shellcheck/package.json | sponge node_modules/shellcheck/package.json |
||||
{ |
||||
alsa-lib, atk, cairo, cups, dbus, dpkg, expat, fetchurl, fetchzip, fontconfig, freetype, |
||||
gdk-pixbuf, glib, gtk3, libX11, libXScrnSaver, libXcomposite, libXcursor, |
||||
libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst, |
||||
libxcb, nspr, nss, lib, stdenv, udev, libuuid, pango, at-spi2-atk, at-spi2-core |
||||
lib, stdenv, buildFHSUserEnvBubblewrap, runCommand, writeScript, fetchurl, fetchzip |
||||
}: |
||||
let |
||||
pname = "webtorrent-desktop"; |
||||
version = "0.21.0"; |
||||
in |
||||
runCommand "${pname}-${version}" rec { |
||||
inherit (stdenv) shell; |
||||
inherit pname version; |
||||
src = |
||||
if stdenv.hostPlatform.system == "x86_64-linux" then |
||||
fetchzip { |
||||
url = "https://github.com/webtorrent/webtorrent-desktop/releases/download/v${version}/WebTorrent-v${version}-linux.zip"; |
||||
sha256 = "13gd8isq2l10kibsc1bsc15dbgpnwa7nw4cwcamycgx6pfz9a852"; |
||||
} |
||||
else |
||||
throw "Webtorrent is not currently supported on ${stdenv.hostPlatform.system}"; |
||||
|
||||
let |
||||
rpath = lib.makeLibraryPath ([ |
||||
alsa-lib |
||||
atk |
||||
at-spi2-core |
||||
at-spi2-atk |
||||
cairo |
||||
cups |
||||
dbus |
||||
expat |
||||
fontconfig |
||||
freetype |
||||
gdk-pixbuf |
||||
glib |
||||
gtk3 |
||||
pango |
||||
libuuid |
||||
libX11 |
||||
libXScrnSaver |
||||
libXcomposite |
||||
libXcursor |
||||
libXdamage |
||||
libXext |
||||
libXfixes |
||||
libXi |
||||
libXrandr |
||||
libXrender |
||||
libXtst |
||||
libxcb |
||||
nspr |
||||
nss |
||||
stdenv.cc.cc |
||||
udev |
||||
]); |
||||
in stdenv.mkDerivation rec { |
||||
pname = "webtorrent-desktop"; |
||||
version = "0.21.0"; |
||||
fhs = buildFHSUserEnvBubblewrap rec { |
||||
name = "fhsEnterWebTorrent"; |
||||
runScript = "${src}/WebTorrent"; |
||||
## use the trampoline, if you need to shell into the fhsenv |
||||
# runScript = writeScript "trampoline" '' |
||||
# #!/bin/sh |
||||
# exec "$@" |
||||
# ''; |
||||
targetPkgs = pkgs: with pkgs; with xorg; [ |
||||
alsa-lib atk at-spi2-core at-spi2-atk cairo cups dbus expat |
||||
fontconfig freetype gdk-pixbuf glib gtk3 pango libuuid libX11 |
||||
libXScrnSaver libXcomposite libXcursor libXdamage libXext |
||||
libXfixes libXi libXrandr libXrender libXtst libxcb nspr nss |
||||
stdenv.cc.cc udev |
||||
]; |
||||
# extraBwrapArgs = [ |
||||
# "--ro-bind /run/user/$(id -u)/pulse /run/user/$(id -u)/pulse" |
||||
# ]; |
||||
}; |
||||
|
||||
src = |
||||
if stdenv.hostPlatform.system == "x86_64-linux" then |
||||
fetchzip { |
||||
url = "https://github.com/webtorrent/webtorrent-desktop/releases/download/v${version}/WebTorrent-v${version}-linux.zip"; |
||||
sha256 = "13gd8isq2l10kibsc1bsc15dbgpnwa7nw4cwcamycgx6pfz9a852"; |
||||
} |
||||
else |
||||
throw "Webtorrent is not currently supported on ${stdenv.hostPlatform.system}"; |
||||
desktopFile = fetchurl { |
||||
url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/applications/webtorrent-desktop.desktop"; |
||||
sha256 = "1v16dqbxqds3cqg3xkzxsa5fyd8ssddvjhy9g3i3lz90n47916ca"; |
||||
}; |
||||
icon256File = fetchurl { |
||||
url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/icons/hicolor/256x256/apps/webtorrent-desktop.png"; |
||||
sha256 = "1dapxvvp7cx52zhyaby4bxm4rll9xc7x3wk8k0il4g3mc7zzn3yk"; |
||||
}; |
||||
icon48File = fetchurl { |
||||
url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/icons/hicolor/48x48/apps/webtorrent-desktop.png"; |
||||
sha256 = "00y96w9shbbrdbf6xcjlahqd08154kkrxmqraik7qshiwcqpw7p4"; |
||||
}; |
||||
nativeBuildInputs = [ dpkg ]; |
||||
installPhase = '' |
||||
mkdir -p $out/share/{applications,icons/hicolor/{48x48,256x256}/apps} |
||||
cp -R . $out/libexec |
||||
desktopFile = fetchurl { |
||||
url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/applications/webtorrent-desktop.desktop"; |
||||
sha256 = "1v16dqbxqds3cqg3xkzxsa5fyd8ssddvjhy9g3i3lz90n47916ca"; |
||||
}; |
||||
icon256File = fetchurl { |
||||
url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/icons/hicolor/256x256/apps/webtorrent-desktop.png"; |
||||
sha256 = "1dapxvvp7cx52zhyaby4bxm4rll9xc7x3wk8k0il4g3mc7zzn3yk"; |
||||
}; |
||||
icon48File = fetchurl { |
||||
url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/icons/hicolor/48x48/apps/webtorrent-desktop.png"; |
||||
sha256 = "00y96w9shbbrdbf6xcjlahqd08154kkrxmqraik7qshiwcqpw7p4"; |
||||
}; |
||||
|
||||
# Patch WebTorrent |
||||
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ |
||||
--set-rpath ${rpath}:$out/libexec $out/libexec/WebTorrent |
||||
meta = with lib; { |
||||
description = "Streaming torrent app for Mac, Windows, and Linux"; |
||||
homepage = "https://webtorrent.io/desktop"; |
||||
license = licenses.mit; |
||||
maintainers = [ maintainers.flokli maintainers.bendlas ]; |
||||
platforms = [ |
||||
"x86_64-linux" |
||||
]; |
||||
}; |
||||
|
||||
# Symlink to bin |
||||
mkdir -p $out/bin |
||||
ln -s $out/libexec/WebTorrent $out/bin/WebTorrent |
||||
} '' |
||||
mkdir -p $out/{bin,share/{applications,icons/hicolor/{48x48,256x256}/apps}} |
||||
|
||||
cp $icon48File $out/share/icons/hicolor/48x48/apps/webtorrent-desktop.png |
||||
cp $icon256File $out/share/icons/hicolor/256x256/apps/webtorrent-desktop.png |
||||
## Fix the desktop link |
||||
substitute $desktopFile $out/share/applications/webtorrent-desktop.desktop \ |
||||
--replace /opt/webtorrent-desktop $out/libexec |
||||
''; |
||||
cp $fhs/bin/fhsEnterWebTorrent $out/bin/WebTorrent |
||||
|
||||
meta = with lib; { |
||||
description = "Streaming torrent app for Mac, Windows, and Linux"; |
||||
homepage = "https://webtorrent.io/desktop"; |
||||
license = licenses.mit; |
||||
maintainers = [ maintainers.flokli ]; |
||||
platforms = [ |
||||
"x86_64-linux" |
||||
]; |
||||
}; |
||||
} |
||||
cp $icon48File $out/share/icons/hicolor/48x48/apps/webtorrent-desktop.png |
||||
cp $icon256File $out/share/icons/hicolor/256x256/apps/webtorrent-desktop.png |
||||
## Fix the desktop link |
||||
substitute $desktopFile $out/share/applications/webtorrent-desktop.desktop \ |
||||
--replace /opt/webtorrent-desktop $out/libexec |
||||
'' |
||||
|
Loading…
Reference in new issue