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

This commit is contained in:
misuzu
2025-09-11 15:20:09 +00:00
committed by GitHub
10 changed files with 216 additions and 131 deletions

View File

@@ -120,6 +120,8 @@
- `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}"`.
- `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.
- `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/).
- `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.

View File

@@ -559,10 +559,6 @@ in
flannel = runTestOn [ "x86_64-linux" ] ./flannel.nix;
flaresolverr = runTest ./flaresolverr.nix;
flood = runTest ./flood.nix;
floorp = runTest {
imports = [ ./firefox.nix ];
_module.args.firefoxPackage = pkgs.floorp;
};
fluent-bit = runTest ./fluent-bit.nix;
fluentd = runTest ./fluentd.nix;
fluidd = runTest ./fluidd.nix;

View File

@@ -1,77 +0,0 @@
{
stdenv,
lib,
fetchFromGitHub,
buildMozillaMach,
nixosTests,
}:
(
(buildMozillaMach rec {
pname = "floorp";
packageVersion = "11.30.0";
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 = "128.14.0";
src = fetchFromGitHub {
owner = "Floorp-Projects";
repo = "Floorp";
fetchSubmodules = true;
rev = "v${packageVersion}";
hash = "sha256-4IAN0S9JWjaGXtnRUJz3HqUm+ZWL7KmryLu8ojSXiqg=";
};
extraConfigureFlags = [
"--with-app-basename=${applicationName}"
"--with-unsigned-addon-scopes=app,system"
"--enable-proxy-bypass-protection"
];
extraPostPatch = ''
# Fix .desktop files for PWAs generated by Floorp
# The executable path returned by Services.dirsvc.get() is absolute and
# thus is the full /nix/store/[..] path. To avoid breaking PWAs with each
# update, rely on `floorp` being in $PATH, as before.
substituteInPlace floorp/browser/base/content/modules/ssb/LinuxSupport.mjs \
--replace-fail 'Services.dirsvc.get("XREExeF",Ci.nsIFile).path' '"floorp"'
'';
updateScript = ./update.sh;
meta = {
description = "Fork of Firefox that seeks balance between versatility, privacy and web openness";
homepage = "https://floorp.app/";
maintainers = with lib.maintainers; [ christoph-heiss ];
platforms = lib.platforms.unix;
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 = {
inherit (nixosTests) floorp;
};
}).override
{
# Upstream build configuration can be found at
# .github/workflows/src/linux/shared/mozconfig_linux_base
privacySupport = true;
webrtcSupport = true;
enableOfficialBranding = false;
geolocationSupport = true;
# https://github.com/NixOS/nixpkgs/issues/418473
ltoSupport = false;
}
).overrideAttrs
(prev: {
MOZ_DATA_REPORTING = "";
MOZ_TELEMETRY_REPORTING = "";
})

View File

@@ -1,38 +0,0 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl nix-prefetch-github jq gnused
set -e
owner=Floorp-Projects
repo=Floorp
dirname="$(dirname "$0")"
updateVersion() {
sed -i "s/packageVersion = \"[0-9.]*\";/packageVersion = \"$1\";/g" "$dirname/default.nix"
}
updateBaseVersion() {
local base
base=$(curl -s "https://raw.githubusercontent.com/$owner/$repo/v$1/browser/config/version.txt")
sed -i "s/version = \"[0-9.]*\";/version = \"$base\";/g" "$dirname/default.nix"
}
updateHash() {
local hash
hash=$(nix-prefetch-github --fetch-submodules --rev "v$1" $owner $repo | jq -r .hash)
sed -i "s|hash = \"[a-zA-Z0-9\/+-=]*\";|hash = \"$hash\";|g" "$dirname/default.nix"
}
currentVersion=$(cd "$dirname" && nix eval --raw -f ../../../../.. floorp.version)
latestTag=$(curl -s https://api.github.com/repos/Floorp-Projects/Floorp/releases/latest | jq -r ".tag_name")
latestVersion="$(expr "$latestTag" : 'v\(.*\)')"
if [[ "$currentVersion" == "$latestVersion" ]]; then
echo "Floorp is up-to-date: ${currentVersion}"
exit 0
fi
updateVersion "$latestVersion"
updateBaseVersion "$latestVersion"
updateHash "$latestVersion"

View File

@@ -0,0 +1,139 @@
{
lib,
stdenv,
fetchurl,
wrapGAppsHook3,
autoPatchelfHook,
alsa-lib,
curl,
dbus-glib,
gtk3,
libXtst,
libva,
pciutils,
pipewire,
adwaita-icon-theme,
patchelfUnstable, # have to use patchelfUnstable to support --no-clobber-old-sections
undmg,
writeText,
}:
let
inherit (lib.importJSON ./sources.json) version sources;
binaryName = "floorp";
policies = {
DisableAppUpdate = true;
};
policiesJson = writeText "floorp-policies.json" (builtins.toJSON { inherit policies; });
in
stdenv.mkDerivation (finalAttrs: {
pname = "floorp-bin-unwrapped";
inherit version;
src = fetchurl {
inherit (sources.${stdenv.hostPlatform.system}) url sha256;
};
sourceRoot = lib.optional stdenv.hostPlatform.isDarwin ".";
nativeBuildInputs = [
wrapGAppsHook3
]
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
autoPatchelfHook
patchelfUnstable
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
undmg
];
buildInputs = lib.optionals (!stdenv.hostPlatform.isDarwin) [
gtk3
adwaita-icon-theme
alsa-lib
dbus-glib
libXtst
];
runtimeDependencies = [
curl
pciutils
]
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
libva.out
];
appendRunpaths = lib.optionals (!stdenv.hostPlatform.isDarwin) [
"${pipewire}/lib"
];
# Firefox uses "relrhack" to manually process relocations from a fixed offset
patchelfFlags = [ "--no-clobber-old-sections" ];
# don't break code signing
dontFixup = stdenv.hostPlatform.isDarwin;
installPhase = ''
runHook preInstall
''
+ (
if stdenv.hostPlatform.isDarwin then
''
# it's disabled, so remove these unused files
rm -v \
Floorp.app/Contents/Resources/updater.ini \
Floorp.app/Contents/Library/LaunchServices/org.mozilla.updater
rm -rvf Floorp.app/Contents/MacOS/updater.app
mkdir -p $out/Applications
mv Floorp.app $out/Applications/
''
else
''
# it's disabled, so remove these unused files
rm -v updater icons/updater.png updater.ini update-settings.ini
mkdir -p "$prefix/lib" "$prefix/bin"
cp -r . "$prefix/lib/floorp-bin-${finalAttrs.version}"
ln -s "$prefix/lib/floorp-bin-${finalAttrs.version}/floorp" "$out/bin/${binaryName}"
# See: https://github.com/mozilla/policy-templates/blob/master/README.md
mkdir -p "$out/lib/floorp-bin-${finalAttrs.version}/distribution";
ln -s ${policiesJson} "$out/lib/floorp-bin-${finalAttrs.version}/distribution/policies.json";
''
)
+ ''
runHook postInstall
'';
passthru = {
inherit binaryName;
applicationName = "Floorp";
libName = "floorp-bin-${finalAttrs.version}";
ffmpegSupport = true;
gssSupport = true;
gtk3 = gtk3;
updateScript = ./update.sh;
};
meta = {
changelog = "https://blog.floorp.app/en/release/${finalAttrs.version}.html";
description = "Fork of Firefox that seeks balance between versatility, privacy and web openness";
homepage = "https://floorp.app/";
# https://github.com/Floorp-Projects/Floorp#-floorp-license-notices-
license = with lib.licenses; [
mpl20
mit
];
platforms = builtins.attrNames sources;
hydraPlatforms = [ ];
maintainers = with lib.maintainers; [
christoph-heiss
];
mainProgram = "floorp";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
})

View File

@@ -0,0 +1,21 @@
{
"version": "12.1.4",
"sources": {
"aarch64-linux": {
"url": "https://github.com/Floorp-Projects/Floorp/releases/download/v12.1.4/floorp-linux-aarch64.tar.xz",
"sha256": "3221bc1299edacf061f0c66a3543532fd67ef0b7f998f4c41b4c7f062f79685b"
},
"x86_64-linux": {
"url": "https://github.com/Floorp-Projects/Floorp/releases/download/v12.1.4/floorp-linux-amd64.tar.xz",
"sha256": "86a5d86a52f3778ca3d3b7b250c3e36820ab792232e8dd8cd4482586e9c1f2f1"
},
"aarch64-darwin": {
"url": "https://github.com/Floorp-Projects/Floorp/releases/download/v12.1.4/floorp-macOS-universal.dmg",
"sha256": "482723722b6bab68ce5353d49502b1db6d3d43d3f918de273ef8de77c5d7f03a"
},
"x86_64-darwin": {
"url": "https://github.com/Floorp-Projects/Floorp/releases/download/v12.1.4/floorp-macOS-universal.dmg",
"sha256": "482723722b6bab68ce5353d49502b1db6d3d43d3f918de273ef8de77c5d7f03a"
}
}
}

View File

@@ -0,0 +1,44 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq gnused gawk
set -e
dirname="$(dirname "$0")"
currentVersion=$(nix eval --raw -f . floorp-bin-unwrapped.version)
owner=Floorp-Projects
repo=Floorp
release=$(curl -s "https://api.github.com/repos/$owner/$repo/releases/latest")
latestTag=$(jq -r ".tag_name" <<<"$release")
latestVersion="$(expr "$latestTag" : 'v\(.*\)')"
if [[ "$currentVersion" == "$latestVersion" ]]; then
echo "Floorp is up-to-date: ${currentVersion}"
exit 0
fi
jq '
{
version: .tag_name[1:],
sources: (
.assets
| map(
select(.name | (endswith(".tar.xz") or endswith(".dmg")))
| {url: .browser_download_url, sha256: (.digest | split(":").[1])}
)
| map(
if .url | contains("linux-aarch64") then
{key: "aarch64-linux", value: .}
elif .url | contains("linux-amd64") then
{key: "x86_64-linux", value: .}
elif .url | contains("macOS-universal") then
[{key: "aarch64-darwin", value: .}, {key: "x86_64-darwin", value: .}]
else null end
)
| flatten
| from_entries
)
}
' <<<"$release" > "$dirname/sources.json"

View File

@@ -0,0 +1,8 @@
{
wrapFirefox,
floorp-bin-unwrapped,
}:
wrapFirefox floorp-bin-unwrapped {
pname = "floorp-bin";
}

View File

@@ -912,6 +912,8 @@ mapAliases {
flashrom-stable = flashprog; # Added 2024-03-01
flatbuffers_2_0 = flatbuffers; # Added 2022-05-12
flatcam = throw "flatcam has been removed because it is unmaintained since 2022 and doesn't support Python > 3.10"; # Added 2025-01-25
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
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
flow-editor = flow-control; # Added 2025-03-05
flut-renamer = throw "flut-renamer is unmaintained and has been removed"; # Added 2025-08-26
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

View File

@@ -11632,18 +11632,6 @@ with pkgs;
];
};
floorp-unwrapped = import ../applications/networking/browsers/floorp {
inherit
stdenv
lib
fetchFromGitHub
buildMozillaMach
nixosTests
;
};
floorp = wrapFirefox floorp-unwrapped { };
formiko =
with python3Packages;
callPackage ../applications/editors/formiko {