lol
1{ lib, fetchurl, appimageTools}:
2
3let
4 pname = "lbry-desktop";
5 version = "0.53.8";
6in appimageTools.wrapAppImage rec {
7 name = "${pname}-${version}";
8
9 # Fetch from GitHub Releases and extract
10 src = appimageTools.extract {
11 inherit name;
12 src = fetchurl {
13 url = "https://github.com/lbryio/lbry-desktop/releases/download/v${version}/LBRY_${version}.AppImage";
14 # Gotten from latest-linux.yml
15 hash = "sha512-WZB2pMzSuWGPj6uad+rIECOhuWEOxi0hVUQifOrhUrKj4SnBDws+oy7V2+NpDGkzbG+Kf3IO8rcWBD4wfFoo2Q==";
16 };
17 };
18
19 # At runtime, Lbry likes to have access to Ffmpeg
20 extraPkgs = pkgs: with pkgs; [
21 ffmpeg
22 ];
23
24 # General fixup
25 extraInstallCommands = ''
26 # Firstly, rename the executable to lbry for convinence
27 mv $out/bin/${name} $out/bin/lbry
28
29 # Now, install assets such as the desktop file and icons
30 install -m 444 -D ${src}/lbry.desktop -t $out/share/applications
31 substituteInPlace $out/share/applications/lbry.desktop \
32 --replace 'Exec=AppRun' 'Exec=lbry'
33 cp -r ${src}/usr/share/icons $out/share
34 '';
35
36 meta = with lib; {
37 description = "A browser and wallet for LBRY, the decentralized, user-controlled content marketplace";
38 longDescription = ''
39 The LBRY app is a graphical browser for the decentralized content marketplace provided by the LBRY protocol.
40 It is essentially the lbry daemon bundled with a UI using Electron.
41 '';
42 license = licenses.mit;
43 homepage = "https://lbry.com/";
44 downloadPage = "https://lbry.com/get/";
45 changelog = "https://github.com/lbryio/lbry-desktop/blob/master/CHANGELOG.md";
46 maintainers = with maintainers; [ enderger ];
47 platforms = [ "x86_64-linux" ];
48 };
49}