nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 appimageTools,
3 symlinkJoin,
4 lib,
5 fetchurl,
6 makeDesktopItem,
7}:
8
9let
10 pname = "ssb-patchwork";
11 version = "3.18.1";
12 name = "Patchwork-${version}";
13
14 src = fetchurl {
15 url = "https://github.com/ssbc/patchwork/releases/download/v${version}/${name}.AppImage";
16 sha256 = "F8n6LLbgkg3z55lSY60T+pn2lra8aPt6Ztepw1gf2rI=";
17 };
18
19 binary = appimageTools.wrapType2 {
20 inherit pname version src;
21 };
22 # we only use this to extract the icon
23 appimage-contents = appimageTools.extractType2 {
24 inherit pname version src;
25 };
26
27 desktopItem = makeDesktopItem {
28 name = "ssb-patchwork";
29 exec = "${binary}/bin/ssb-patchwork";
30 icon = "ssb-patchwork";
31 comment = "Client for the decentralized social network Secure Scuttlebutt";
32 desktopName = "Patchwork";
33 genericName = "Patchwork";
34 categories = [ "Network" ];
35 };
36
37in
38symlinkJoin {
39 inherit version;
40 pname = "patchwork";
41
42 paths = [ binary ];
43
44 postBuild = ''
45 mkdir -p $out/share/pixmaps/ $out/share/applications
46 cp ${appimage-contents}/ssb-patchwork.png $out/share/pixmaps
47 cp ${desktopItem}/share/applications/* $out/share/applications/
48 '';
49
50 meta = {
51 description = "Decentralized messaging and sharing app built on top of Secure Scuttlebutt (SSB)";
52 longDescription = ''
53 sea-slang for gossip - a scuttlebutt is basically a watercooler on a ship.
54 '';
55 homepage = "https://www.scuttlebutt.nz/";
56 license = lib.licenses.agpl3Only;
57 maintainers = with lib.maintainers; [
58 asymmetric
59 picnoir
60 cyplo
61 ];
62 mainProgram = "ssb-patchwork";
63 platforms = [ "x86_64-linux" ];
64 };
65}