lol

floorp: drop, replace with floorp-bin; init at 12.1.4 (#439994)

authored by

misuzu and committed by
GitHub
c1ad944e 85d041e8

+216 -131
+2
doc/release-notes/rl-2511.section.md
··· 120 120 121 121 - `python3Packages.triton` no longer takes an `enableRocm` argument and supports ROCm in all build configurations via runtime binding. In most cases no action will be needed. If triton is unable to find the HIP SDK add `rocmPackages.clr` as a build input or set the environment variable `HIP_PATH="${rocmPackages.clr}"`. 122 122 123 + - `floorp` has been replaced with a binary build, available as `floorp-bin`. Due to major changes in the upstream project structure and build system, building Floorp from source has become unfeasible. No configuration or state migration is necessary. 124 + 123 125 - `inspircd` has been updated to the v4 release series. Please refer to the upstream documentation for [general information](https://docs.inspircd.org/4/overview/#v4-overview) and a list of [breaking changes](https://docs.inspircd.org/4/breaking-changes/). 124 126 125 127 - `lima` package now only includes the guest agent for the host's architecture by default. If your guest VM's architecture differs from your Lima host's, you'll need to enable the `lima-additional-guestagents` package by setting `withAdditionalGuestAgents = true` when overriding lima with this input.
-4
nixos/tests/all-tests.nix
··· 559 559 flannel = runTestOn [ "x86_64-linux" ] ./flannel.nix; 560 560 flaresolverr = runTest ./flaresolverr.nix; 561 561 flood = runTest ./flood.nix; 562 - floorp = runTest { 563 - imports = [ ./firefox.nix ]; 564 - _module.args.firefoxPackage = pkgs.floorp; 565 - }; 566 562 fluent-bit = runTest ./fluent-bit.nix; 567 563 fluentd = runTest ./fluentd.nix; 568 564 fluidd = runTest ./fluidd.nix;
-77
pkgs/applications/networking/browsers/floorp/default.nix
··· 1 - { 2 - stdenv, 3 - lib, 4 - fetchFromGitHub, 5 - buildMozillaMach, 6 - nixosTests, 7 - }: 8 - 9 - ( 10 - (buildMozillaMach rec { 11 - pname = "floorp"; 12 - packageVersion = "11.30.0"; 13 - applicationName = "Floorp"; 14 - binaryName = "floorp"; 15 - branding = "browser/branding/official"; 16 - requireSigning = false; 17 - allowAddonSideload = true; 18 - 19 - # Must match the contents of `browser/config/version.txt` in the source tree 20 - version = "128.14.0"; 21 - 22 - src = fetchFromGitHub { 23 - owner = "Floorp-Projects"; 24 - repo = "Floorp"; 25 - fetchSubmodules = true; 26 - rev = "v${packageVersion}"; 27 - hash = "sha256-4IAN0S9JWjaGXtnRUJz3HqUm+ZWL7KmryLu8ojSXiqg="; 28 - }; 29 - 30 - extraConfigureFlags = [ 31 - "--with-app-basename=${applicationName}" 32 - "--with-unsigned-addon-scopes=app,system" 33 - "--enable-proxy-bypass-protection" 34 - ]; 35 - 36 - extraPostPatch = '' 37 - # Fix .desktop files for PWAs generated by Floorp 38 - # The executable path returned by Services.dirsvc.get() is absolute and 39 - # thus is the full /nix/store/[..] path. To avoid breaking PWAs with each 40 - # update, rely on `floorp` being in $PATH, as before. 41 - substituteInPlace floorp/browser/base/content/modules/ssb/LinuxSupport.mjs \ 42 - --replace-fail 'Services.dirsvc.get("XREExeF",Ci.nsIFile).path' '"floorp"' 43 - ''; 44 - 45 - updateScript = ./update.sh; 46 - 47 - meta = { 48 - description = "Fork of Firefox that seeks balance between versatility, privacy and web openness"; 49 - homepage = "https://floorp.app/"; 50 - maintainers = with lib.maintainers; [ christoph-heiss ]; 51 - platforms = lib.platforms.unix; 52 - broken = stdenv.buildPlatform.is32bit; 53 - # since Firefox 60, build on 32-bit platforms fails with "out of memory". 54 - # not in `badPlatforms` because cross-compilation on 64-bit machine might work. 55 - maxSilent = 14400; # 4h, double the default of 7200s (c.f. #129212, #129115) 56 - license = lib.licenses.mpl20; 57 - mainProgram = "floorp"; 58 - }; 59 - tests = { 60 - inherit (nixosTests) floorp; 61 - }; 62 - }).override 63 - { 64 - # Upstream build configuration can be found at 65 - # .github/workflows/src/linux/shared/mozconfig_linux_base 66 - privacySupport = true; 67 - webrtcSupport = true; 68 - enableOfficialBranding = false; 69 - geolocationSupport = true; 70 - # https://github.com/NixOS/nixpkgs/issues/418473 71 - ltoSupport = false; 72 - } 73 - ).overrideAttrs 74 - (prev: { 75 - MOZ_DATA_REPORTING = ""; 76 - MOZ_TELEMETRY_REPORTING = ""; 77 - })
-38
pkgs/applications/networking/browsers/floorp/update.sh
··· 1 - #!/usr/bin/env nix-shell 2 - #!nix-shell -i bash -p curl nix-prefetch-github jq gnused 3 - 4 - set -e 5 - 6 - owner=Floorp-Projects 7 - repo=Floorp 8 - dirname="$(dirname "$0")" 9 - 10 - updateVersion() { 11 - sed -i "s/packageVersion = \"[0-9.]*\";/packageVersion = \"$1\";/g" "$dirname/default.nix" 12 - } 13 - 14 - updateBaseVersion() { 15 - local base 16 - base=$(curl -s "https://raw.githubusercontent.com/$owner/$repo/v$1/browser/config/version.txt") 17 - sed -i "s/version = \"[0-9.]*\";/version = \"$base\";/g" "$dirname/default.nix" 18 - } 19 - 20 - updateHash() { 21 - local hash 22 - hash=$(nix-prefetch-github --fetch-submodules --rev "v$1" $owner $repo | jq -r .hash) 23 - sed -i "s|hash = \"[a-zA-Z0-9\/+-=]*\";|hash = \"$hash\";|g" "$dirname/default.nix" 24 - } 25 - 26 - currentVersion=$(cd "$dirname" && nix eval --raw -f ../../../../.. floorp.version) 27 - 28 - latestTag=$(curl -s https://api.github.com/repos/Floorp-Projects/Floorp/releases/latest | jq -r ".tag_name") 29 - latestVersion="$(expr "$latestTag" : 'v\(.*\)')" 30 - 31 - if [[ "$currentVersion" == "$latestVersion" ]]; then 32 - echo "Floorp is up-to-date: ${currentVersion}" 33 - exit 0 34 - fi 35 - 36 - updateVersion "$latestVersion" 37 - updateBaseVersion "$latestVersion" 38 - updateHash "$latestVersion"
+139
pkgs/by-name/fl/floorp-bin-unwrapped/package.nix
··· 1 + { 2 + lib, 3 + stdenv, 4 + fetchurl, 5 + wrapGAppsHook3, 6 + autoPatchelfHook, 7 + alsa-lib, 8 + curl, 9 + dbus-glib, 10 + gtk3, 11 + libXtst, 12 + libva, 13 + pciutils, 14 + pipewire, 15 + adwaita-icon-theme, 16 + patchelfUnstable, # have to use patchelfUnstable to support --no-clobber-old-sections 17 + undmg, 18 + writeText, 19 + }: 20 + 21 + let 22 + inherit (lib.importJSON ./sources.json) version sources; 23 + 24 + binaryName = "floorp"; 25 + policies = { 26 + DisableAppUpdate = true; 27 + }; 28 + 29 + policiesJson = writeText "floorp-policies.json" (builtins.toJSON { inherit policies; }); 30 + 31 + in 32 + stdenv.mkDerivation (finalAttrs: { 33 + pname = "floorp-bin-unwrapped"; 34 + inherit version; 35 + 36 + src = fetchurl { 37 + inherit (sources.${stdenv.hostPlatform.system}) url sha256; 38 + }; 39 + 40 + sourceRoot = lib.optional stdenv.hostPlatform.isDarwin "."; 41 + 42 + nativeBuildInputs = [ 43 + wrapGAppsHook3 44 + ] 45 + ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ 46 + autoPatchelfHook 47 + patchelfUnstable 48 + ] 49 + ++ lib.optionals stdenv.hostPlatform.isDarwin [ 50 + undmg 51 + ]; 52 + 53 + buildInputs = lib.optionals (!stdenv.hostPlatform.isDarwin) [ 54 + gtk3 55 + adwaita-icon-theme 56 + alsa-lib 57 + dbus-glib 58 + libXtst 59 + ]; 60 + 61 + runtimeDependencies = [ 62 + curl 63 + pciutils 64 + ] 65 + ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ 66 + libva.out 67 + ]; 68 + 69 + appendRunpaths = lib.optionals (!stdenv.hostPlatform.isDarwin) [ 70 + "${pipewire}/lib" 71 + ]; 72 + 73 + # Firefox uses "relrhack" to manually process relocations from a fixed offset 74 + patchelfFlags = [ "--no-clobber-old-sections" ]; 75 + 76 + # don't break code signing 77 + dontFixup = stdenv.hostPlatform.isDarwin; 78 + 79 + installPhase = '' 80 + runHook preInstall 81 + '' 82 + + ( 83 + if stdenv.hostPlatform.isDarwin then 84 + '' 85 + # it's disabled, so remove these unused files 86 + rm -v \ 87 + Floorp.app/Contents/Resources/updater.ini \ 88 + Floorp.app/Contents/Library/LaunchServices/org.mozilla.updater 89 + rm -rvf Floorp.app/Contents/MacOS/updater.app 90 + 91 + mkdir -p $out/Applications 92 + mv Floorp.app $out/Applications/ 93 + '' 94 + else 95 + '' 96 + # it's disabled, so remove these unused files 97 + rm -v updater icons/updater.png updater.ini update-settings.ini 98 + 99 + mkdir -p "$prefix/lib" "$prefix/bin" 100 + cp -r . "$prefix/lib/floorp-bin-${finalAttrs.version}" 101 + ln -s "$prefix/lib/floorp-bin-${finalAttrs.version}/floorp" "$out/bin/${binaryName}" 102 + 103 + # See: https://github.com/mozilla/policy-templates/blob/master/README.md 104 + mkdir -p "$out/lib/floorp-bin-${finalAttrs.version}/distribution"; 105 + ln -s ${policiesJson} "$out/lib/floorp-bin-${finalAttrs.version}/distribution/policies.json"; 106 + '' 107 + ) 108 + + '' 109 + runHook postInstall 110 + ''; 111 + 112 + passthru = { 113 + inherit binaryName; 114 + applicationName = "Floorp"; 115 + libName = "floorp-bin-${finalAttrs.version}"; 116 + ffmpegSupport = true; 117 + gssSupport = true; 118 + gtk3 = gtk3; 119 + updateScript = ./update.sh; 120 + }; 121 + 122 + meta = { 123 + changelog = "https://blog.floorp.app/en/release/${finalAttrs.version}.html"; 124 + description = "Fork of Firefox that seeks balance between versatility, privacy and web openness"; 125 + homepage = "https://floorp.app/"; 126 + # https://github.com/Floorp-Projects/Floorp#-floorp-license-notices- 127 + license = with lib.licenses; [ 128 + mpl20 129 + mit 130 + ]; 131 + platforms = builtins.attrNames sources; 132 + hydraPlatforms = [ ]; 133 + maintainers = with lib.maintainers; [ 134 + christoph-heiss 135 + ]; 136 + mainProgram = "floorp"; 137 + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; 138 + }; 139 + })
+21
pkgs/by-name/fl/floorp-bin-unwrapped/sources.json
··· 1 + { 2 + "version": "12.1.4", 3 + "sources": { 4 + "aarch64-linux": { 5 + "url": "https://github.com/Floorp-Projects/Floorp/releases/download/v12.1.4/floorp-linux-aarch64.tar.xz", 6 + "sha256": "3221bc1299edacf061f0c66a3543532fd67ef0b7f998f4c41b4c7f062f79685b" 7 + }, 8 + "x86_64-linux": { 9 + "url": "https://github.com/Floorp-Projects/Floorp/releases/download/v12.1.4/floorp-linux-amd64.tar.xz", 10 + "sha256": "86a5d86a52f3778ca3d3b7b250c3e36820ab792232e8dd8cd4482586e9c1f2f1" 11 + }, 12 + "aarch64-darwin": { 13 + "url": "https://github.com/Floorp-Projects/Floorp/releases/download/v12.1.4/floorp-macOS-universal.dmg", 14 + "sha256": "482723722b6bab68ce5353d49502b1db6d3d43d3f918de273ef8de77c5d7f03a" 15 + }, 16 + "x86_64-darwin": { 17 + "url": "https://github.com/Floorp-Projects/Floorp/releases/download/v12.1.4/floorp-macOS-universal.dmg", 18 + "sha256": "482723722b6bab68ce5353d49502b1db6d3d43d3f918de273ef8de77c5d7f03a" 19 + } 20 + } 21 + }
+44
pkgs/by-name/fl/floorp-bin-unwrapped/update.sh
··· 1 + #!/usr/bin/env nix-shell 2 + #!nix-shell -i bash -p curl jq gnused gawk 3 + 4 + set -e 5 + 6 + dirname="$(dirname "$0")" 7 + currentVersion=$(nix eval --raw -f . floorp-bin-unwrapped.version) 8 + 9 + owner=Floorp-Projects 10 + repo=Floorp 11 + 12 + release=$(curl -s "https://api.github.com/repos/$owner/$repo/releases/latest") 13 + 14 + latestTag=$(jq -r ".tag_name" <<<"$release") 15 + latestVersion="$(expr "$latestTag" : 'v\(.*\)')" 16 + 17 + if [[ "$currentVersion" == "$latestVersion" ]]; then 18 + echo "Floorp is up-to-date: ${currentVersion}" 19 + exit 0 20 + fi 21 + 22 + jq ' 23 + { 24 + version: .tag_name[1:], 25 + sources: ( 26 + .assets 27 + | map( 28 + select(.name | (endswith(".tar.xz") or endswith(".dmg"))) 29 + | {url: .browser_download_url, sha256: (.digest | split(":").[1])} 30 + ) 31 + | map( 32 + if .url | contains("linux-aarch64") then 33 + {key: "aarch64-linux", value: .} 34 + elif .url | contains("linux-amd64") then 35 + {key: "x86_64-linux", value: .} 36 + elif .url | contains("macOS-universal") then 37 + [{key: "aarch64-darwin", value: .}, {key: "x86_64-darwin", value: .}] 38 + else null end 39 + ) 40 + | flatten 41 + | from_entries 42 + ) 43 + } 44 + ' <<<"$release" > "$dirname/sources.json"
+8
pkgs/by-name/fl/floorp-bin/package.nix
··· 1 + { 2 + wrapFirefox, 3 + floorp-bin-unwrapped, 4 + }: 5 + 6 + wrapFirefox floorp-bin-unwrapped { 7 + pname = "floorp-bin"; 8 + }
+2
pkgs/top-level/aliases.nix
··· 912 912 flashrom-stable = flashprog; # Added 2024-03-01 913 913 flatbuffers_2_0 = flatbuffers; # Added 2022-05-12 914 914 flatcam = throw "flatcam has been removed because it is unmaintained since 2022 and doesn't support Python > 3.10"; # Added 2025-01-25 915 + floorp = throw "floorp has been replaced with floorp-bin, as building from upstream sources has become unfeasible starting with version 12.x"; # Added 2025-09-06 916 + floorp-unwrapped = throw "floorp-unwrapped has been replaced with floorp-bin-unwrapped, as building from upstream sources has become unfeasible starting with version 12.x"; # Added 2025-09-06 915 917 flow-editor = flow-control; # Added 2025-03-05 916 918 flut-renamer = throw "flut-renamer is unmaintained and has been removed"; # Added 2025-08-26 917 919 flutter313 = throw "flutter313 has been removed because it isn't updated anymore, and no packages in nixpkgs use it. If you still need it, use flutter.mkFlutter to get a custom version"; # Added 2024-10-05
-12
pkgs/top-level/all-packages.nix
··· 11632 11632 ]; 11633 11633 }; 11634 11634 11635 - floorp-unwrapped = import ../applications/networking/browsers/floorp { 11636 - inherit 11637 - stdenv 11638 - lib 11639 - fetchFromGitHub 11640 - buildMozillaMach 11641 - nixosTests 11642 - ; 11643 - }; 11644 - 11645 - floorp = wrapFirefox floorp-unwrapped { }; 11646 - 11647 11635 formiko = 11648 11636 with python3Packages; 11649 11637 callPackage ../applications/editors/formiko {