nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 qt5,
6 openssl,
7 protobuf,
8 pkg-config,
9 cmake,
10}:
11
12stdenv.mkDerivation (finalAttrs: {
13 pname = "ricochet-refresh";
14 version = "3.0.34";
15
16 src = fetchFromGitHub {
17 owner = "blueprint-freespeech";
18 repo = "ricochet-refresh";
19 rev = "v${finalAttrs.version}-release";
20 fetchSubmodules = true;
21 hash = "sha256-/IT3K3PL2fNl4P7xzItVnI8xJx5MmKxhw3ZEX9rN7j4=";
22 };
23
24 sourceRoot = "${finalAttrs.src.name}/src";
25
26 strictDeps = true;
27
28 buildInputs =
29 (with qt5; [
30 qtbase
31 qttools
32 qtmultimedia
33 qtquickcontrols2
34 qtwayland
35 ])
36 ++ [
37 openssl
38 protobuf
39 ];
40
41 nativeBuildInputs = [
42 pkg-config
43 protobuf
44 cmake
45 qt5.wrapQtAppsHook
46 ];
47
48 enableParallelBuilding = true;
49
50 cmakeBuildType = "MinSizeRel";
51
52 # https://github.com/blueprint-freespeech/ricochet-refresh/blob/main/BUILDING.md
53 cmakeFlags = [
54 (lib.cmakeBool "RICOCHET_REFRESH_INSTALL_DESKTOP" true)
55 (lib.cmakeBool "USE_SUBMODULE_FMT" true)
56 ];
57
58 meta = {
59 description = "Secure chat without DNS or WebPKI";
60 mainProgram = "ricochet-refresh";
61 longDescription = ''
62 Ricochet Refresh is a peer-to-peer messenger app that uses Tor
63 to connect clients.
64
65 When you start Ricochet Refresh it creates a Tor hidden
66 service on your computer. The address of this hidden service
67 is your anonymous identity on the Tor network and how others
68 will be able to communicate with you. When you start a chat
69 with one of your contacts a Tor circuit is created between
70 your machine and the your contact's machine.
71
72 The original Ricochet uses onion "v2" hashed-RSA addresses,
73 which are no longer supported by the Tor network. Ricochet
74 Refresh upgrades the original Ricochet protocol to use the
75 current onion "v3" ed25519 addresses.
76 '';
77 homepage = "https://www.ricochetrefresh.net/";
78 downloadPage = "https://github.com/blueprint-freespeech/ricochet-refresh/releases";
79 license = lib.licenses.bsd3;
80 platforms = lib.platforms.linux;
81 };
82})