blob: ff36607709bc35cdac712228b89af4f1aa0c29d8 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
{ stdenv
, lib
, fetchFromGitHub
, buildMozillaMach
, nixosTests
}:
((buildMozillaMach rec {
pname = "floorp";
packageVersion = "11.14.1";
applicationName = "Floorp";
binaryName = "floorp";
branding = "browser/branding/official";
requireSigning = false;
allowAddonSideload = true;
# Must match the contents of `browser/config/version.txt` in the source tree
version = "115.13.0";
src = fetchFromGitHub {
owner = "Floorp-Projects";
repo = "Floorp";
fetchSubmodules = true;
rev = "v${packageVersion}";
hash = "sha256-PhI+hIypPF6W5RJIXhCAXblSJNwgYavfCgdQozDSXG0=";
};
extraConfigureFlags = [
"--with-app-name=${pname}"
"--with-app-basename=${applicationName}"
"--with-unsigned-addon-scopes=app,system"
];
extraPostPatch = ''
# Fix .desktop files for PWAs generated by Floorp; they hardcode /usr/bin
# https://github.com/NixOS/nixpkgs/issues/314115
substituteInPlace floorp/browser/base/content/modules/ssb/LinuxSupport.mjs \
--replace-fail /usr/bin/floorp floorp
'';
updateScript = ./update.sh;
meta = {
description = "Fork of Firefox, focused on keeping the Open, Private and Sustainable Web alive, built in Japan";
homepage = "https://floorp.app/";
maintainers = with lib.maintainers; [ christoph-heiss ];
platforms = lib.platforms.unix;
badPlatforms = lib.platforms.darwin;
broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory".
# not in `badPlatforms` because cross-compilation on 64-bit machine might work.
maxSilent = 14400; # 4h, double the default of 7200s (c.f. #129212, #129115)
license = lib.licenses.mpl20;
mainProgram = "floorp";
};
tests = [ nixosTests.floorp ];
}).override {
# Upstream build configuration can be found at
# .github/workflows/src/linux/shared/mozconfig_linux_base
privacySupport = true;
webrtcSupport = true;
enableOfficialBranding = false;
googleAPISupport = true;
mlsAPISupport = true;
}).overrideAttrs (prev: {
MOZ_DATA_REPORTING = "";
MOZ_TELEMETRY_REPORTING = "";
})
|