diff --git a/ci/eval/attrpaths.nix b/ci/eval/attrpaths.nix deleted file mode 100644 index ff1bdabbb350..000000000000 --- a/ci/eval/attrpaths.nix +++ /dev/null @@ -1,85 +0,0 @@ -# This expression will, as efficiently as possible, dump a -# *superset* of all attrpaths of derivations which might be -# part of a release on *any* platform. -# -# This expression runs single-threaded under all current Nix -# implementations, but much faster and with much less memory -# used than ./outpaths.nix itself. -# -# Once you have the list of attrnames you can split it up into -# $NUM_CORES batches and evaluate the outpaths separately for each -# batch, in parallel. -# -# To dump the attrnames: -# -# nix-instantiate --eval --strict --json ci/eval/attrpaths.nix -A names -# -{ - lib ? import (path + "/lib"), - trace ? false, - path ? ./../.., - extraNixpkgsConfigJson ? "{}", -}: -let - - # TODO: Use mapAttrsToListRecursiveCond when this PR lands: - # https://github.com/NixOS/nixpkgs/pull/395160 - justAttrNames = - path: value: - let - result = - if path == [ "AAAAAASomeThingsFailToEvaluate" ] || !(lib.isAttrs value) then - [ ] - else if lib.isDerivation value then - [ path ] - else - lib.pipe value [ - (lib.mapAttrsToList ( - name: value: - lib.addErrorContext "while evaluating package set attribute path '${ - lib.showAttrPath (path ++ [ name ]) - }'" (justAttrNames (path ++ [ name ]) value) - )) - lib.concatLists - ]; - in - lib.traceIf trace "** ${lib.showAttrPath path}" result; - - outpaths = import ./outpaths.nix { - inherit path; - extraNixpkgsConfig = builtins.fromJSON extraNixpkgsConfigJson; - attrNamesOnly = true; - }; - - paths = [ - # Some of the following are based on variants, which are disabled with `attrNamesOnly = true`. - # Until these have been removed from release.nix / hydra, we manually add them to the list. - [ - "pkgsLLVM" - "stdenv" - ] - [ - "pkgsArocc" - "stdenv" - ] - [ - "pkgsZig" - "stdenv" - ] - [ - "pkgsStatic" - "stdenv" - ] - [ - "pkgsMusl" - "stdenv" - ] - ] - ++ justAttrNames [ ] outpaths; - - names = map lib.showAttrPath paths; - -in -{ - inherit paths names; -} diff --git a/ci/eval/chunk.nix b/ci/eval/chunk.nix index e1759c2c6615..9bea26ce3180 100644 --- a/ci/eval/chunk.nix +++ b/ci/eval/chunk.nix @@ -2,8 +2,8 @@ { lib ? import ../../lib, path ? ../.., - # The file containing all available attribute paths, which are split into chunks here - attrpathFile, + # The file containing the preEval result + preEvalFile, chunkSize, myChunk, includeBroken, @@ -12,12 +12,13 @@ }: let - attrpaths = lib.importJSON attrpathFile; - myAttrpaths = lib.sublist (chunkSize * myChunk) chunkSize attrpaths; + preEvalResult = lib.importJSON preEvalFile; + myAttrpaths = lib.sublist (chunkSize * myChunk) chunkSize preEvalResult.paths; unfiltered = import ./outpaths.nix { inherit path; inherit includeBroken systems; + inherit (preEvalResult) attrPathsDisallowedForInternalUse; extraNixpkgsConfig = builtins.fromJSON extraNixpkgsConfigJson; }; diff --git a/ci/eval/default.nix b/ci/eval/default.nix index 2e8bec41ca5d..547fcf1f26be 100644 --- a/ci/eval/default.nix +++ b/ci/eval/default.nix @@ -38,7 +38,7 @@ let fileset = unions ( map (lib.path.append ../..) [ ".version" - "ci/eval/attrpaths.nix" + "ci/eval/pre-eval.nix" "ci/eval/chunk.nix" "ci/eval/outpaths.nix" "default.nix" @@ -56,11 +56,11 @@ let builtins.readFile ../../pkgs/top-level/release-supported-systems.json ); - attrpathsSuperset = + preEval = { evalSystem, }: - runCommand "attrpaths-superset.json" + runCommand "pre-eval" { src = nixpkgs; # Don't depend on -dev outputs to reduce closure size for CI. @@ -73,15 +73,15 @@ let export NIX_STATE_DIR=$(mktemp -d) mkdir $out export GC_INITIAL_HEAP_SIZE=4g - command time -f "Attribute eval done [%MKB max resident, %Es elapsed] %C" \ + command time -f "Pre-eval done [%MKB max resident, %Es elapsed] %C" \ nix-instantiate --eval --strict --json --show-trace \ - "$src/ci/eval/attrpaths.nix" \ - -A paths \ + "$src/ci/eval/pre-eval.nix" \ + -A result \ -I "$src" \ --argstr extraNixpkgsConfigJson ${lib.escapeShellArg (builtins.toJSON extraNixpkgsConfig)} \ --option restrict-eval true \ --option allow-import-from-derivation false \ - --option eval-system "${evalSystem}" > $out/paths.json + --option eval-system "${evalSystem}" > $out/result.json ''; singleSystem = @@ -90,8 +90,8 @@ let # Note that this is intentionally not called `system`, # because `--argstr system` would only be passed to the ci/default.nix file! evalSystem ? builtins.currentSystem, - # The path to the `paths.json` file from `attrpathsSuperset` - attrpathFile ? "${attrpathsSuperset { inherit evalSystem; }}/paths.json", + # The path to the `result.json` file from `preEval` + preEvalFile ? "${preEval { inherit evalSystem; }}/result.json", }: let singleChunk = writeShellScript "single-chunk" '' @@ -121,12 +121,12 @@ let --show-trace \ --arg chunkSize "$chunkSize" \ --arg myChunk "$myChunk" \ - --arg attrpathFile "${attrpathFile}" \ + --arg preEvalFile "${preEvalFile}" \ --arg systems "[ \"$system\" ]" \ --arg includeBroken ${lib.boolToString includeBroken} \ --argstr extraNixpkgsConfigJson ${lib.escapeShellArg (builtins.toJSON extraNixpkgsConfig)} \ -I ${nixpkgs} \ - -I ${attrpathFile} \ + -I ${preEvalFile} \ > "$outputDir/result/$myChunk" \ 2> "$outputDir/stderr/$myChunk" exitCode=$? @@ -164,7 +164,7 @@ let echo "System: $evalSystem" cores=$NIX_BUILD_CORES echo "Cores: $cores" - attrCount=$(jq length "${attrpathFile}") + attrCount=$(jq '.paths | length' "${preEvalFile}") echo "Attribute count: $attrCount" echo "Chunk size: $chunkSize" # Same as `attrCount / chunkSize` but rounded up @@ -316,7 +316,7 @@ let in { inherit - attrpathsSuperset + preEval singleSystem diff combine diff --git a/ci/eval/outpaths.nix b/ci/eval/outpaths.nix index afbce48f3321..512290ce450a 100755 --- a/ci/eval/outpaths.nix +++ b/ci/eval/outpaths.nix @@ -6,7 +6,7 @@ includeBroken ? true, # set this to false to exclude meta.broken packages from the output path ? ./../.., - # used by ./attrpaths.nix + # used by ./pre-eval.nix attrNamesOnly ? false, # Set this to `null` to build for builtins.currentSystem only @@ -14,6 +14,8 @@ builtins.readFile (path + "/pkgs/top-level/release-supported-systems.json") ), + attrPathsDisallowedForInternalUse ? [ ], + # Customize the config used to evaluate nixpkgs extraNixpkgsConfig ? { }, }: @@ -35,6 +37,22 @@ let allowVariants = !attrNamesOnly; checkMeta = true; + # We don't need to care about problems being caught using the + # standard mechanism, because any problems whose kind is not + # nixpkgsInternalUseAllowed cause the corresponding attributes to + # be disallowed entirely for internal use with + # attrPathsDisallowedForInternalUse, see also ./pre-eval.nix + problems.matchers = lib.mkForce [ + # We only need to set the broken handler to error, so that CI + # doesn't evaluate those. No reason it couldn't evaluate them + # afaik, but this is how it's been before. + { + kind = "broken"; + handler = "error"; + } + ]; + inherit attrPathsDisallowedForInternalUse; + # Silence the `x86_64-darwin` deprecation warning. allowDeprecatedx86_64Darwin = true; diff --git a/ci/eval/pre-eval.nix b/ci/eval/pre-eval.nix new file mode 100644 index 000000000000..eff8204a7bd5 --- /dev/null +++ b/ci/eval/pre-eval.nix @@ -0,0 +1,128 @@ +# This file does a fast pre-evaluation of Nixpkgs to determine: +# - paths: A *superset* of all attrpaths of derivations which might be part of a release on *any* platform. +# - attrPathsDisallowedForInternalUse: Attribute paths whose meta.problems has problems whose kinds should not be used internally in Nixpkgs +# +# This expression runs single-threaded under all current Nix +# implementations, but much faster and with much less memory +# used than ./outpaths.nix itself. +# +# Once you have the list of attrnames you can split it up into +# $NUM_CORES batches and evaluate the outpaths separately for each +# batch, in parallel. +# +# To dump the result: +# +# nix-instantiate --eval --strict --json ci/eval/pre-eval.nix -A result +# +{ + lib ? import (path + "/lib"), + trace ? false, + path ? ./../.., + extraNixpkgsConfigJson ? "{}", +}: +let + + # TODO: Use mapAttrsToListRecursiveCond when this PR lands: + # https://github.com/NixOS/nixpkgs/pull/395160 + listAttrs = + path: value: + let + result = + if path == [ "AAAAAASomeThingsFailToEvaluate" ] || !(lib.isAttrs value) then + [ ] + else if lib.isDerivation value then + [ + { + inherit path value; + } + ] + else + lib.pipe value [ + (lib.mapAttrsToList ( + name: value: + lib.addErrorContext "while evaluating package set attribute path '${ + lib.showAttrPath (path ++ [ name ]) + }'" (listAttrs (path ++ [ name ]) value) + )) + lib.concatLists + ]; + in + lib.traceIf trace "** ${lib.showAttrPath path}" result; + + outpaths = import ./outpaths.nix { + inherit path; + extraNixpkgsConfig = builtins.fromJSON extraNixpkgsConfigJson; + attrNamesOnly = true; + }; + + list = + map + (path: { + inherit path; + # This looks a bit weird, but the only reason we care about this value + # is for the meta.problems check below, and stdenv's certainly don't + # have any problems, so this is fine :) + value = { }; + }) + [ + # Some of the following are based on variants, which are disabled with `attrNamesOnly = true`. + # Until these have been removed from release.nix / hydra, we manually add them to the list. + [ + "pkgsLLVM" + "stdenv" + ] + [ + "pkgsArocc" + "stdenv" + ] + [ + "pkgsZig" + "stdenv" + ] + [ + "pkgsStatic" + "stdenv" + ] + [ + "pkgsMusl" + "stdenv" + ] + ] + ++ listAttrs [ ] outpaths; + paths = map (attrs: attrs.path) list; + names = map lib.showAttrPath paths; + + inherit (import ../../pkgs/stdenv/generic/problems.nix { inherit lib; }) + disallowNixpkgsInternalUseKinds + ; + + # Determine the list of attributes whose packages have any meta.problems + # with a kind that's disallowed from internal Nixpkgs use + attrPathsDisallowedForInternalUse = lib.pipe list [ + (lib.map ( + attrs: + attrs + // { + problematicProblems = builtins.tryEval ( + lib.filterAttrs (name: problem: disallowNixpkgsInternalUseKinds ? ${problem.kind}) ( + attrs.value.meta.problems or { } + ) + ); + } + )) + (lib.filter (attrs: attrs.problematicProblems.success && attrs.problematicProblems.value != { })) + (lib.map (attrs: { + attrPath = attrs.path; + reason = "it has certain meta.problems whose kinds are disallowed: ${ + lib.generators.toPretty { } attrs.problematicProblems.value + }"; + })) + ]; +in +{ + # TODO: Do we still need these? Probably not + inherit paths names; + result = { + inherit paths attrPathsDisallowedForInternalUse; + }; +} diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 07af38660bab..c66a5b062439 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -407,25 +407,25 @@ in corerad = runTest ./corerad.nix; corteza = runTest ./corteza.nix; cosmic = runTest { - imports = [ ./cosmic.nix ]; + imports = [ ./cosmic ]; _module.args.testName = "cosmic"; _module.args.enableAutologin = false; _module.args.enableXWayland = true; }; cosmic-autologin = runTest { - imports = [ ./cosmic.nix ]; + imports = [ ./cosmic ]; _module.args.testName = "cosmic-autologin"; _module.args.enableAutologin = true; _module.args.enableXWayland = true; }; cosmic-autologin-noxwayland = runTest { - imports = [ ./cosmic.nix ]; + imports = [ ./cosmic ]; _module.args.testName = "cosmic-autologin-noxwayland"; _module.args.enableAutologin = true; _module.args.enableXWayland = false; }; cosmic-noxwayland = runTest { - imports = [ ./cosmic.nix ]; + imports = [ ./cosmic ]; _module.args.testName = "cosmic-noxwayland"; _module.args.enableAutologin = false; _module.args.enableXWayland = false; diff --git a/nixos/tests/cosmic.nix b/nixos/tests/cosmic.nix deleted file mode 100644 index f7fde6ca0e0f..000000000000 --- a/nixos/tests/cosmic.nix +++ /dev/null @@ -1,147 +0,0 @@ -{ - config, - lib, - testName, - enableAutologin, - enableXWayland, - ... -}: - -{ - name = testName; - - meta.maintainers = lib.teams.cosmic.members; - - nodes.machine = { - imports = [ ./common/user-account.nix ]; - - services = { - # For `cosmic-store` to be added to `environment.systemPackages` - # and for it to work correctly because Flatpak is a runtime - # dependency of `cosmic-store`. - flatpak.enable = true; - - displayManager.cosmic-greeter.enable = true; - desktopManager.cosmic = { - enable = true; - xwayland.enable = enableXWayland; - }; - }; - - services.displayManager.autoLogin = lib.mkIf enableAutologin { - enable = true; - user = "alice"; - }; - - environment.systemPackages = with config.node.pkgs; [ - # These two packages are used to check if a window was opened - # under the COSMIC session or not. Kinda important. - # TODO: Move the check from the test module to - # `nixos/lib/test-driver/src/test_driver/machine.py` so more - # Wayland-only testing can be done using the existing testing - # infrastructure. - jq - lswt - ]; - - # So far, all COSMIC tests launch a few GUI applications. In doing - # so, the default allocated memory to the guest of 1024M quickly - # poses a very high risk of an OOM-shutdown which is worse than an - # OOM-kill. Because now, the test failed, but not for a genuine - # reason, but an OOM-shutdown. That's an inconclusive failure - # which might possibly mask an actual failure. Not enabling - # systemd-oomd because we need said applications running for a - # few seconds. So instead, bump the allocated memory to the guest - # from 1024M to 4x; 4096M. - virtualisation.memorySize = 4096; - }; - - testScript = - { nodes, ... }: - let - cfg = nodes.machine; - user = cfg.users.users.alice; - DISPLAY = lib.strings.optionalString enableXWayland ( - if enableAutologin then "DISPLAY=:0" else "DISPLAY=:1" - ); - emptyPDF = config.node.pkgs.stdenvNoCC.mkDerivation { - name = "empty-pdf"; - dontUnpack = true; - nativeBuildInputs = [ config.node.pkgs.imagemagick ]; - buildPhase = '' - magick xc:none -page Letter empty.pdf - ''; - installPhase = '' - mkdir $out - mv empty.pdf $out/empty.pdf - ''; - }; - in - '' - #testName: ${testName} - '' - + ( - if enableAutologin then - '' - with subtest("cosmic-greeter initialisation"): - machine.wait_for_unit("graphical.target", timeout=120) - '' - else - '' - from time import sleep - - machine.wait_for_unit("graphical.target", timeout=120) - machine.wait_until_succeeds("pgrep --uid ${toString cfg.users.users.cosmic-greeter.name} --full cosmic-greeter", timeout=30) - # Sleep for 10 seconds for ensuring that `greetd` loads the - # password prompt for the login screen properly. - sleep(10) - - with subtest("cosmic-session login"): - machine.send_chars("${user.password}\n", delay=0.2) - '' - ) - + '' - # _One_ of the final processes to start as part of the - # `cosmic-session` target is the Workspaces applet. So, wait - # for it to start. The process existing means that COSMIC - # now handles any opened windows from now on. - machine.wait_until_succeeds("pgrep --uid ${toString user.uid} --full 'cosmic-panel-button com.system76.CosmicWorkspaces'", timeout=30) - - # The best way to test for Wayland and XWayland is to launch - # the GUI applications and see the results yourself. - with subtest("Launch applications"): - # key: binary_name - # value: "app-id" as reported by `lswt` - gui_apps_to_launch = {} - - # We want to ensure that the first-party applications - # start/launch properly. - gui_apps_to_launch['cosmic-edit'] = 'com.system76.CosmicEdit' - gui_apps_to_launch['cosmic-files'] = 'com.system76.CosmicFiles' - gui_apps_to_launch['cosmic-player'] = 'com.system76.CosmicPlayer' - gui_apps_to_launch['cosmic-reader'] = 'com.system76.CosmicReader' - gui_apps_to_launch['cosmic-settings'] = 'com.system76.CosmicSettings' - gui_apps_to_launch['cosmic-store'] = 'com.system76.CosmicStore' - gui_apps_to_launch['cosmic-term'] = 'com.system76.CosmicTerm' - - for gui_app, app_id in gui_apps_to_launch.items(): - # Don't fail the test if binary is absent - if machine.execute(f"su - ${user.name} -c 'command -v {gui_app}'", timeout=5)[0] == 0: - match gui_app: - case 'cosmic-reader': - opt_arg = '${emptyPDF}/empty.pdf' - case _: - opt_arg = "" - - machine.succeed(f"su - ${user.name} -c 'WAYLAND_DISPLAY=wayland-1 XDG_RUNTIME_DIR=/run/user/${toString user.uid} ${DISPLAY} {gui_app} {opt_arg} >&2 &'", timeout=5) - # Nix builds the following non-commented expression to the following: - # `su - alice -c 'WAYLAND_DISPLAY=wayland-1 XDG_RUNTIME_DIR=/run/user/1000 lswt --json | jq ".toplevels" | grep "^ \\"app-id\\": \\"{app_id}\\"$"' ` - machine.wait_until_succeeds(f''''su - ${user.name} -c 'WAYLAND_DISPLAY=wayland-1 XDG_RUNTIME_DIR=/run/user/${toString user.uid} lswt --json | jq ".toplevels" | grep "^ \\"app-id\\": \\"{app_id}\\"$"' '''', timeout=60) - machine.succeed(f"pkill {gui_app}", timeout=5) - - machine.succeed("echo 'test completed succeessfully' > /${testName}", timeout=5) - machine.copy_from_machine('/${testName}') - - machine.shutdown() - ''; -} diff --git a/nixos/tests/cosmic/default.nix b/nixos/tests/cosmic/default.nix new file mode 100644 index 000000000000..3b6dce9f55a4 --- /dev/null +++ b/nixos/tests/cosmic/default.nix @@ -0,0 +1,168 @@ +{ + config, + lib, + testName, + enableAutologin, + enableXWayland, + ... +}: + +let + user = config.nodes.machine.users.users.alice; + logFilePath = "/home/${user.name}/${testName}"; + # Use `writeShellScriptBin` instead of `writeShellScript` so that the + # process name in the journald log appears as 'cosmicTest[$pid]' + cosmicTest = config.node.pkgs.writeShellScriptBin "cosmicTest" '' + exec ${lib.getExe config.node.pkgs.python3Minimal} ${./test-script.py} \ + --log-file-path ${logFilePath} \ + --cosmic-reader-pdf ${config.node.pkgs.empty-pdf} \ + --polkit-agent-helper-path ${config.node.pkgs.polkit.out}/lib/polkit-1/polkit-agent-helper-1 \ + --root-user-password ${user.password} + ''; + cosmicTestDesktop = config.node.pkgs.makeDesktopItem { + name = "cosmicTest"; + desktopName = "COSMIC NixOS VM test (${testName})"; + exec = "cosmicTest"; + }; + cosmicTestAutostartItem = config.node.pkgs.makeAutostartItem { + name = "cosmicTest"; + package = cosmicTestDesktop; + }; +in + +{ + name = testName; + + meta.maintainers = lib.teams.cosmic.members; + + nodes.machine = { + imports = [ ../common/user-account.nix ]; + + services = { + # For `cosmic-store` to be added to `environment.systemPackages` + # and for it to work correctly because Flatpak is a runtime + # dependency of `cosmic-store`. + flatpak.enable = true; + + displayManager.cosmic-greeter.enable = true; + desktopManager.cosmic = { + enable = true; + xwayland.enable = enableXWayland; + }; + }; + + services.displayManager.autoLogin = lib.mkIf enableAutologin { + enable = true; + user = user.name; + }; + + users.users = { + alice.extraGroups = [ + "uinput" # for ydotoold + ]; + + root.password = user.password; + root.hashedPasswordFile = lib.mkForce null; + }; + + hardware.uinput.enable = true; + + environment.systemPackages = with config.node.pkgs; [ + ydotool + cosmicTest + cosmicTestAutostartItem + + # These two packages are used to check if a window was opened + # under the COSMIC session or not. Kinda important. + # TODO: Move the check from the test module to + # `nixos/lib/test-driver/src/test_driver/machine.py` so more + # Wayland-only testing can be done using the existing testing + # infrastructure. + jq + lswt + ]; + + # So far, all COSMIC tests launch a few GUI applications. In doing + # so, the default allocated memory to the guest of 1024M quickly + # poses a very high risk of an OOM-shutdown which is worse than an + # OOM-kill. Because now, the test failed, but not for a genuine + # reason, but an OOM-shutdown. That's an inconclusive failure + # which might possibly mask an actual failure. Not enabling + # systemd-oomd because we need said applications running for a + # few seconds. So instead, bump the allocated memory to the guest + # from 1024M to 4x; 4096M. + virtualisation.memorySize = 4096; + }; + + testScript = + { nodes, ... }: + '' + #testName: ${testName} + import sys + '' + + ( + if enableAutologin then + '' + with subtest("cosmic-greeter initialisation"): + machine.wait_for_unit("graphical.target", timeout=120) + '' + else + '' + from time import sleep + + machine.wait_for_unit("graphical.target", timeout=120) + machine.wait_until_succeeds("pgrep --uid ${config.nodes.machine.users.users.cosmic-greeter.name} --full cosmic-greeter", timeout=30) + # Sleep for 10 seconds for ensuring that `greetd` loads the + # password prompt for the login screen properly. + sleep(10) + + with subtest("cosmic-session login"): + machine.send_chars("${user.password}\n", delay=0.2) + '' + ) + + '' + with subtest("xdg autostart support in cosmic"): + # When checking the status of our `cosmicTest` package with: + # `machine.wait_for_unit("app-cosmicTest@autostart.service", user="${user.name}")` + # We are immediately greeted with the error: + # ``` + # subtest: xdg autostart support in cosmic + # machine: waiting for unit app-cosmicTest@autostart.service with user alice + # machine # [ 26.497516] cosmic-comp[1352]: [EGL] 0x3008 (BAD_DISPLAY) eglCreateSync: _eglCreateSync + # machine # [ 26.511706] su[1416]: Successful su for alice by root + # machine # [ 26.528190] su[1416]: pam_unix(su:session): session opened for user alice(uid=1000) by (uid=0) + # machine # Failed to connect to user scope bus via local transport: No such file or directory + # machine # [ 26.599563] su[1416]: pam_unix(su:session): session closed for user alice + # !!! Test "xdg autostart support in cosmic" failed with error: "retrieving systemctl property "ActiveState" for unit "app-cosmicTest@autostart.service" under user "alice" failed with exit code 1" + # ``` + # Meaning, our session is extremely new and the D-Bus user + # session socket does not yet exist. Instead, lets poll for + # the log file that the test is guaranteed to write to, as + # soon as it starts. + machine.wait_for_file("${logFilePath}.log", timeout=120) + + exit_code = 0 + try: + machine.wait_for_file("${logFilePath}.done", timeout=700) + except Exception: + exit_code = 1 + + # The log file is created in the very beginning of the test + # script's execution. If we are here, it means that the + # `wait_for_unit`'s "guard" on the test script's autostart unit + # plus the 630 second combined timeout of other two + # `wait_for_file`s, make it extremely likely for the log file to + # be present. + machine.copy_from_machine("${logFilePath}.log") + + machine.shutdown() + + with open(f"{machine.out_dir}/${testName}.log") as test_log_file: + contents = test_log_file.read() + print(contents) + if any("Z [ERROR] [L:" in line for line in contents.splitlines()): + exit_code = 1 + + sys.exit(exit_code) + ''; +} diff --git a/nixos/tests/cosmic/test-script.py b/nixos/tests/cosmic/test-script.py new file mode 100644 index 000000000000..07377fa95fac --- /dev/null +++ b/nixos/tests/cosmic/test-script.py @@ -0,0 +1,315 @@ +#!/usr/bin/env python3 +import argparse +import logging +import os +import pathlib +import subprocess +import time + + +def parse_cli_args() -> argparse.Namespace: + parser = argparse.ArgumentParser() + parser.add_argument( + "--log-file-path", + required=True, + type=str, + help="The path to the log file (without the '.log' suffix/extension)", + ) + parser.add_argument( + "--cosmic-reader-pdf", + required=True, + type=str, + help="The PDF that the `cosmic-reader` should open for testing", + ) + parser.add_argument( + "--polkit-agent-helper-path", + required=True, + type=str, + help="The path to the polkit agent helper (`${pkgs.polkit.out}/lib/polkit-1/polkit-agent-helper-1`)", + ) + parser.add_argument( + "--root-user-password", required=True, type=str, help="The root user's password" + ) + args = parser.parse_args() + return args + + +def start_ydotool_daemon() -> tuple[str, subprocess.Popen]: + """ + The ydotool requires a daemon to be running. + """ + xdg_runtime_dir = os.getenv("XDG_RUNTIME_DIR") or f"/run/user/{os.getuid()}" + ydotool_daemon_socket_path = f"{xdg_runtime_dir}/.ydotool_socket" + ydotool_daemon_process = subprocess.Popen( + [ + "ydotoold", + "--socket-path", + ydotool_daemon_socket_path, + "--mouse-off", + ], + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL, + ) + return ydotool_daemon_socket_path, ydotool_daemon_process + + +def wait_for_cosmic_de_readiness() -> None: + """ + Wait for the COSMIC DE to be ready, before running the tests. This + is done by waiting on the supposedly last component of the COSMIC + DE to be "ready." That component is the notification watcher, of + the `cosmic-applet` derivation. + """ + logging.info("=" * 80) + logging.info("Waiting for COSMIC DE to complete initialization") + + notification_watcher_wait_deadline = time.monotonic() + 360 + notification_watcher_exists = False + while time.monotonic() < notification_watcher_wait_deadline: + busctl_process = subprocess.run( + ["busctl", "--user", "status", "com.system76.CosmicStatusNotifierWatcher"], + check=False, + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL, + ) + if busctl_process.returncode == 0: + notification_watcher_exists = True + break + else: + time.sleep(1) + logging_msg = "The COSMIC DE is " + if notification_watcher_exists: + logging.info(f"{logging_msg} ready") + else: + logging.error(f"{logging_msg} not ready") + return + + +def perform_polkit_authentication_test( + cli_args: argparse.Namespace, + ydotool_daemon_socket_path: str, + ydotool_daemon_process: subprocess.Popen, +) -> None: + """ + 1. Run `pkexec` as a background process that produces a specific + output to stdout upon successful completion. + 2. Wait unil it has been confimred that `cosmic-osd` has created + a pop-up requesting the root user's password. + 3. Use ydotool to type the root user's password in the pop-up + prompt. + 4. Ensure that the the `pkexec` background process' stdout matches + the output that we expect. + + Any breakage in this flow is considered a failure of the polkit + authenticaion test. + """ + logging.info("=" * 80) + logging.info("Performing polkit authentication test") + + polkit_test_passed = False + polkit_test_command = [ + "pkexec", + "--disable-internal-agent", + "bash", + "-c", + "echo -n 'polkit test was successful'", + ] + logging.info(f"Running: {polkit_test_command}") + polkit_test_process = subprocess.Popen( + polkit_test_command, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + text=True, + ) + + polkit_popup_deadline = time.monotonic() + 60 + pop_up_msg = "the pop-up for polkit password authentication" + encountered_polkit_authentication_popup = False + while time.monotonic() < polkit_popup_deadline: + polkit_popup_check_process = subprocess.run( + [ + "pgrep", + "-afx", + f"{cli_args.polkit_agent_helper_path} --socket-activated", + ], + check=False, + ) + if polkit_popup_check_process.returncode == 0: + encountered_polkit_authentication_popup = True + logging.info(f"Noticed {pop_up_msg}") + if ydotool_daemon_process.poll() is None: + # The polkit-agent-helper process exists, but that + # doesn't necessarily mean that the pop-up is + # **rendered** and ready to accept the password. So we + # sleep for a few seconds. + time.sleep(20) + ydotool_process = subprocess.run( + [ + "ydotool", + "type", + "--key-delay=500", + f"{cli_args.root_user_password}\n", + ], + env={ + **os.environ.copy(), + "YDOTOOL_SOCKET": ydotool_daemon_socket_path, + }, + check=False, + ) + ydotool_msg = ( + "the root user's password in the pop-up for polkit authentication" + ) + if ydotool_process.returncode == 0: + logging.info(f"ydotool typed {ydotool_msg}") + else: + logging.error(f"ydotool did not type {ydotool_msg}") + else: + logging.error( + "The ydotool daemon exited for some reason before it could be used" + ) + break + time.sleep(1) + if not encountered_polkit_authentication_popup: + logging.error(f"Did not notice {pop_up_msg}") + + polkit_test_process_stdout = "" + polkit_test_process_stderr = "" + try: + polkit_test_process_stdout, polkit_test_process_stderr = ( + polkit_test_process.communicate(timeout=45) + ) + except subprocess.TimeoutExpired: + polkit_test_process.kill() + polkit_test_process_stdout, polkit_test_process_stderr = ( + polkit_test_process.communicate() + ) + + logging.info(f"polkit stdout: '{polkit_test_process_stdout}'") + logging.info(f"polkit stderr: '{polkit_test_process_stderr}'") + + if polkit_test_process_stdout: + logging.info(f"pkexec command stdout: {polkit_test_process_stdout}") + polkit_test_passed = "polkit test was successful" in polkit_test_process_stdout + else: + logging.warning("Could not capture stdout from the polkit test command") + + if polkit_test_passed: + logging.info("The polkit authentication test passed") + else: + logging.error("The polkit authentication test failed") + return + + +def perform_gui_application_test(cli_args: argparse.Namespace) -> None: + """ + 1. Start one GUI application as a background process. + 2. Wait unil it has been confimred that the GUI application is + running. + 3. Kill the background process of the GUI application. + + Any breakage in this flow is considered a failure of the test for + the GUI application. + """ + logging.info("=" * 80) + logging.info("Performing test to launch GUI applications") + + gui_apps_to_test = { + "com.system76.CosmicEdit": [ + "cosmic-edit", + ], + "com.system76.CosmicFiles": [ + "cosmic-files", + ], + "com.system76.CosmicPlayer": [ + "cosmic-player", + ], + "com.system76.CosmicReader": [ + "cosmic-reader", + cli_args.cosmic_reader_pdf, + ], + "com.system76.CosmicSettings": [ + "cosmic-settings", + ], + "com.system76.CosmicStore": [ + "cosmic-store", + ], + "com.system76.CosmicTerm": [ + "cosmic-term", + ], + } + + for gui_app_id, gui_app_command in gui_apps_to_test.items(): + logging.info(f"Running: {gui_app_command}") + gui_app_bg_process = subprocess.Popen( + gui_app_command, + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL, + ) + gui_app_bg_process_deadline = time.monotonic() + 30 + gui_app_is_running = False + + while time.monotonic() < gui_app_bg_process_deadline and not gui_app_is_running: + lswt_process = subprocess.run( + [ + "lswt", + "--custom", + "a", + ], + check=False, + text=True, + stdout=subprocess.PIPE, + stderr=subprocess.DEVNULL, + ) + lswt_process_stdout = lswt_process.stdout.strip() + if lswt_process_stdout: + if gui_app_id in lswt_process_stdout.splitlines(): + gui_app_is_running = True + time.sleep(1) + pkill_process = subprocess.run( + ["pkill", gui_app_command[0]], + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL, + check=False, + ) + + log_message = ( + f"The GUI application test for '{gui_app_command[0]}' ({gui_app_id})" + ) + if gui_app_is_running: + logging.info(f"{log_message} passed") + else: + logging.error(f"{log_message} failed") + return + + +def main() -> None: + cli_args = parse_cli_args() + logging.basicConfig( + level=logging.INFO, + format=f"%(asctime)sZ [%(levelname)s] [L:%(lineno)d] %(message)s", + datefmt="%H:%M:%S", + handlers=[ + logging.StreamHandler(), + logging.FileHandler(f"{cli_args.log_file_path}.log", mode="w"), + ], + ) + logging.Formatter.converter = time.gmtime + logging.info(f"Logging to '{cli_args.log_file_path}.log'") + + ydotool_daemon_socket_path, ydotool_daemon_process = start_ydotool_daemon() + + # Wait for the DE to be ready + wait_for_cosmic_de_readiness() + + # tests go here + perform_polkit_authentication_test( + cli_args, ydotool_daemon_socket_path, ydotool_daemon_process + ) + perform_gui_application_test(cli_args) + + pathlib.Path(f"{cli_args.log_file_path}.done").touch() + return + + +if __name__ == "__main__": + main() diff --git a/pkgs/applications/networking/browsers/chromium/info.json b/pkgs/applications/networking/browsers/chromium/info.json index fc3ece2ce796..c87e4a647a90 100644 --- a/pkgs/applications/networking/browsers/chromium/info.json +++ b/pkgs/applications/networking/browsers/chromium/info.json @@ -1,10 +1,10 @@ { "chromium": { - "version": "149.0.7827.196", + "version": "149.0.7827.200", "chromedriver": { - "version": "149.0.7827.197", - "hash_darwin": "sha256-tN7s6s/pbfAGRCMcoT3QWYHD8QRq2gcHfFSXoSG9V5Y=", - "hash_darwin_aarch64": "sha256-DZ8CZ4Obp67Zo2m4iyqUnShyhTK8+/75cJ/WmZZqQhE=" + "version": "149.0.7827.201", + "hash_darwin": "sha256-MHCcid+7wdYm8uIdrUIlXrk8ADHNUUXzPyMPFGP98WY=", + "hash_darwin_aarch64": "sha256-Gwmdo9qNyV/BnCj18f0BFpNgDf28e8vjNF98e5/vVjQ=" }, "deps": { "depot_tools": { @@ -21,8 +21,8 @@ "DEPS": { "src": { "url": "https://chromium.googlesource.com/chromium/src.git", - "rev": "43eb30368c6ca3d14d540487954abb2780aeae3a", - "hash": "sha256-pwSfASgR4SiQTJBERhOVyR8mANYJk67f+u2pmCCW6ko=", + "rev": "c35c164b1b6d1adca9eddf914ed6d0d0743dba6a", + "hash": "sha256-b2gBRUzRjqVZEb/tWUL1JF6Afq5gHJ3aOM02My1FyYU=", "recompress": true }, "src/third_party/clang-format/script": { @@ -823,7 +823,7 @@ } }, "ungoogled-chromium": { - "version": "149.0.7827.196", + "version": "149.0.7827.200", "deps": { "depot_tools": { "rev": "45dedc4c3b87c982fd846b3dc599b233ed3aff90", @@ -835,16 +835,16 @@ "hash": "sha256-oFs7fZAZEs/gQ7X1A4uigo9+Y+iEN9sMMQYwAjEuD04=" }, "ungoogled-patches": { - "rev": "149.0.7827.196-1", - "hash": "sha256-nRcMTP+su+mFP/JkyLBIDrG+dKYhvPANFw0Y8qVWzrA=" + "rev": "149.0.7827.200-1", + "hash": "sha256-D7c1ToAoUzAMpXoe60YPimRqe6/LRe0T95TduXUeTFo=" }, "npmHash": "sha256-pF0JtwFpPC4/fodbhSJnQKkczA9WlDg4VqEAy9aDVLg=" }, "DEPS": { "src": { "url": "https://chromium.googlesource.com/chromium/src.git", - "rev": "43eb30368c6ca3d14d540487954abb2780aeae3a", - "hash": "sha256-pwSfASgR4SiQTJBERhOVyR8mANYJk67f+u2pmCCW6ko=", + "rev": "c35c164b1b6d1adca9eddf914ed6d0d0743dba6a", + "hash": "sha256-b2gBRUzRjqVZEb/tWUL1JF6Afq5gHJ3aOM02My1FyYU=", "recompress": true }, "src/third_party/clang-format/script": { diff --git a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix index bdcaabb01e5b..d396bd299959 100644 --- a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix +++ b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix @@ -1,1859 +1,1859 @@ { - version = "152.0.2"; + version = "152.0.3"; sources = [ { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/ach/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/ach/firefox-152.0.3.tar.xz"; locale = "ach"; arch = "linux-x86_64"; - sha256 = "cd1464a0d69d24980a7fa2b847d9f9a6fabcde598babe3d15c6b93f56785f473"; + sha256 = "a3c835d1cf070b1aecc4f6de56ed220d870594eaa037456e02283ed7aee683f0"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/af/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/af/firefox-152.0.3.tar.xz"; locale = "af"; arch = "linux-x86_64"; - sha256 = "cfcdce7774c8750f363f787c0b1a0688fdd9874fd0414a2f615bcca65e2568ef"; + sha256 = "01dab8f94558839e5c0d0501d1f3390446e090d57b583fe6a8e52a5a23fb677f"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/an/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/an/firefox-152.0.3.tar.xz"; locale = "an"; arch = "linux-x86_64"; - sha256 = "5054a311c6629c0a50b82a80711ac4438a33a201f7b3e898643f48d9d7989abc"; + sha256 = "d93899ce605494beeec9ff39826ab9286595529161945e0d796dd8936c8cc758"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/ar/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/ar/firefox-152.0.3.tar.xz"; locale = "ar"; arch = "linux-x86_64"; - sha256 = "4d8e45b5f51364ace090cfb659b8940dc6b48af8f3de9a2eb8f7ea564f53365d"; + sha256 = "46ed1aaf257d2a6a08bceb71512c151cd8a4ea54f6756e5d4d65fb3489ee7f7d"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/ast/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/ast/firefox-152.0.3.tar.xz"; locale = "ast"; arch = "linux-x86_64"; - sha256 = "a3043021ea97e712648aab571f1c5265d5c0bad8c9b442e4d86efe392f805969"; + sha256 = "3dbbe10f74318aee46be85dc115bd5065510bfa257c019253442d3fee525d801"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/az/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/az/firefox-152.0.3.tar.xz"; locale = "az"; arch = "linux-x86_64"; - sha256 = "9a3c2e1366adcb506f3eacf9d627543403dc943faf15071fe97e3e85dc60091f"; + sha256 = "09f33a32ddda70ad66499d8fff2c44163ca1c24cb53b5de38a0fa625fbbf20bb"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/be/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/be/firefox-152.0.3.tar.xz"; locale = "be"; arch = "linux-x86_64"; - sha256 = "bc7b3261d106c255b17ad9598543ac6f2191cb60cb8f9e2bfdfa3054d1c7def4"; + sha256 = "f0c75fcc83bedc345005dc9f87599b589cfba0f58e5a4811802cc86601b64ccf"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/bg/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/bg/firefox-152.0.3.tar.xz"; locale = "bg"; arch = "linux-x86_64"; - sha256 = "def15f4465157f6018648baff8cc8d63af887c6e6f3ceb86296b7ea5d0ad9daf"; + sha256 = "ab2595a3ee8115e49f03ad889d0550d6dd583550de94fc159ec26e08ee48fa52"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/bn/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/bn/firefox-152.0.3.tar.xz"; locale = "bn"; arch = "linux-x86_64"; - sha256 = "43658b054499e27e9c502b1b37204b78d190f4ffa9a111001d90cb80bb1bfd40"; + sha256 = "58769b0cdc2e9b406b2fbe21e67e04e0e8550601620868f16fa7b252b1677f0a"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/br/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/br/firefox-152.0.3.tar.xz"; locale = "br"; arch = "linux-x86_64"; - sha256 = "3e9195aed6fa0714e4d8fcd86b63663613dad091068b926a573cdcf2466c2a33"; + sha256 = "a323e55705ac6717beae0ac52226fd19df5b7c5b95c0035db40766a76d72d850"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/bs/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/bs/firefox-152.0.3.tar.xz"; locale = "bs"; arch = "linux-x86_64"; - sha256 = "8776dbb3f0a515660ae6db28ad75cc4107c8d8b2cd6aed00be0f5fa8fdd1130e"; + sha256 = "ce60ef021b146a414eef8d80992b6fc25c419194a5bd851561d27d0ac81ca1c6"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/ca-valencia/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/ca-valencia/firefox-152.0.3.tar.xz"; locale = "ca-valencia"; arch = "linux-x86_64"; - sha256 = "8f442c5a0bf6ab983e5e81edfb8426b4a5433c1e5bde95fa1b52734645ce51d1"; + sha256 = "214dbdfdee37546adf3c88a03279731f8d690b355f4f0c06d3784c921a7f01cb"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/ca/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/ca/firefox-152.0.3.tar.xz"; locale = "ca"; arch = "linux-x86_64"; - sha256 = "632501ef22ed7de469fd59958be1d8b3c730d50282455de70ea140405ca83669"; + sha256 = "b139dcef80461c5eba08bf94706f1efd3523e1b7a712f0d76aa1ec7d38ff3058"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/cak/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/cak/firefox-152.0.3.tar.xz"; locale = "cak"; arch = "linux-x86_64"; - sha256 = "b7485e261017b9a1c11d135caad74a014782dd445c412ad9e4a44f627cf82ef2"; + sha256 = "77299acb0c8a854a8c393fb8ae7a7d7ab8c50dc06a9da59534c04bd76e78b5dd"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/cs/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/cs/firefox-152.0.3.tar.xz"; locale = "cs"; arch = "linux-x86_64"; - sha256 = "f3b072b3c9830f2fdaa755278e25a229df5b665bd3017954953028492100ff98"; + sha256 = "9d33f6d77a697303e54dc69d522ee6be8f9757d92ace0d83837172bbfa54190e"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/cy/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/cy/firefox-152.0.3.tar.xz"; locale = "cy"; arch = "linux-x86_64"; - sha256 = "a708dafc1bd9391ac03cf013a2882c1cbb2a3501ad25ddb71e2834c1fd2828bb"; + sha256 = "c0662c5b1126e9412287e10081b1e0eabdf526139343e193838a58b785fdb19b"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/da/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/da/firefox-152.0.3.tar.xz"; locale = "da"; arch = "linux-x86_64"; - sha256 = "8724f0ee08556d19855bf6acef1b3708e665ba5ee704428e9010033f3cdaf258"; + sha256 = "4c7f70455a3dea035ff384f6aa9d786886456065371937170db4c3bb746836e3"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/de/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/de/firefox-152.0.3.tar.xz"; locale = "de"; arch = "linux-x86_64"; - sha256 = "f253e47ef51f4ad48391410744a1b04aed4742161489896bac860077d34b1e90"; + sha256 = "08cba5dcd6dbef54a32ede8c4a7e19181878bcda8eaaa6783bbabbc08c36594b"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/dsb/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/dsb/firefox-152.0.3.tar.xz"; locale = "dsb"; arch = "linux-x86_64"; - sha256 = "1fe39a0cde54f0e9e4855e391ca84e28bb1c852d1a0215a2fa3fc7b63a4df279"; + sha256 = "6982a7365158dc87d5085e8b07bc679f0e9e93bc1fcea171422ec6297f330462"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/el/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/el/firefox-152.0.3.tar.xz"; locale = "el"; arch = "linux-x86_64"; - sha256 = "bb3b9812c0ad90468ccc633111166fcb8888bf83e08af2d98d5f7f95eb429695"; + sha256 = "04c974e36bbc1fc3a7ee6bf32547a44e97f7a1a20ac25d15c34fabc319f6b979"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/en-CA/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/en-CA/firefox-152.0.3.tar.xz"; locale = "en-CA"; arch = "linux-x86_64"; - sha256 = "2d910dacfff9191a298f929960da9c3c0dcd42015d4eac849e81de799f67963d"; + sha256 = "a238a2555f60b1fd1fde908f54080b30a8fe931d7bee803177b4932cfb73a15c"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/en-GB/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/en-GB/firefox-152.0.3.tar.xz"; locale = "en-GB"; arch = "linux-x86_64"; - sha256 = "ce85ec2e9a06e7aa5fd7bf93fb6ba9e3f422b8a161a183ec1142d70f565c748c"; + sha256 = "4a081f077d278bf604992cdc6f9b55167e9b02ee63741e1df9901f4bc3779e65"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/en-US/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/en-US/firefox-152.0.3.tar.xz"; locale = "en-US"; arch = "linux-x86_64"; - sha256 = "9e830c68115cdccaf8dcb7b5f93119bcbde9ebb074f8cb2fba34af14fe335e70"; + sha256 = "8bdb7a9138f40a1bc9191e9803d3cb5e1c3086e815821c7f42bcda7b8b98144b"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/eo/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/eo/firefox-152.0.3.tar.xz"; locale = "eo"; arch = "linux-x86_64"; - sha256 = "5e6a13ea4f3363f459c08a7f27a1357434f76bf96316f6ba8d7295312e2de537"; + sha256 = "79f45e04a2fb647415719504e61500b75ee20e5988e8716a866e7786ac5d13bd"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/es-AR/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/es-AR/firefox-152.0.3.tar.xz"; locale = "es-AR"; arch = "linux-x86_64"; - sha256 = "a68efd2ac28186d543facb1e9cec5816fb4391e67b7ecf222040a9159ac9376e"; + sha256 = "f6855c1cb0ea48c79032757c3182e0b0d78ee2d5c4dfd143c765970c594b2a64"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/es-CL/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/es-CL/firefox-152.0.3.tar.xz"; locale = "es-CL"; arch = "linux-x86_64"; - sha256 = "187b77bb443c1ba29b1682c028f427e6c94683219f03deb91d87d040a4f58df3"; + sha256 = "56740dbebf13e75afeea4e70713e73b5bfe0a5d0af1036e5077bfb677a7234bf"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/es-ES/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/es-ES/firefox-152.0.3.tar.xz"; locale = "es-ES"; arch = "linux-x86_64"; - sha256 = "30f0dc652ca5b8d2ecc521306f1c86b92010040eda42124002ea4eb7deedf276"; + sha256 = "6988f847b26ec0dbfeb45445d9ff3944a308f117f2353617d3423e14fbe12048"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/es-MX/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/es-MX/firefox-152.0.3.tar.xz"; locale = "es-MX"; arch = "linux-x86_64"; - sha256 = "8ead7b6797919a5b8735578cc7681c6ca877e1207b16f33663e5d7b14f48fe30"; + sha256 = "3000d5f90348c7277ff611b1527def5bd50e19d6ce44ab38fdefdd0bf8c99df3"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/et/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/et/firefox-152.0.3.tar.xz"; locale = "et"; arch = "linux-x86_64"; - sha256 = "652fdaa5bdc14539440b4c5b02f8164316261209700fcb3066e51c9ab288c339"; + sha256 = "7bd498ed61beaf1978112030503bd9ed491cc73821d8395d06134523debee078"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/eu/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/eu/firefox-152.0.3.tar.xz"; locale = "eu"; arch = "linux-x86_64"; - sha256 = "3ef4e32e8eb7de2023e22f8058869823e12b7dfea4514db62238bd7e63534605"; + sha256 = "88a912c81f2f4df5d016d7c7b143d0d80af69ff181b21836c216dddac4a30c49"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/fa/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/fa/firefox-152.0.3.tar.xz"; locale = "fa"; arch = "linux-x86_64"; - sha256 = "81f63f1e5b47753befc286616f8c889a0dd3c37da77aeba841e14e6b1494dbbc"; + sha256 = "e37bbbc257007a5d89adb3470f1094a2269f371db18eed92ad324d3c421dfde1"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/ff/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/ff/firefox-152.0.3.tar.xz"; locale = "ff"; arch = "linux-x86_64"; - sha256 = "dae435039b15631520c4e8b4bafa5dc3c9e634531216b229fafdc3f01377a698"; + sha256 = "788640ee8edf37b5833807f5489742d0c379c5d73cb79d97dd9f32fe8abaa693"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/fi/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/fi/firefox-152.0.3.tar.xz"; locale = "fi"; arch = "linux-x86_64"; - sha256 = "e637968825a824eca60d269c303338b0304cfd7f3081b391b1650e69458219cc"; + sha256 = "1abbba239f782b5681c624aa35677e8baaaed3b0ed0ee353d8a4cdb91aa2d34a"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/fr/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/fr/firefox-152.0.3.tar.xz"; locale = "fr"; arch = "linux-x86_64"; - sha256 = "1413e0f1c5a58af177f2b07d6fc1dd4a43e18d5a032acc64521a9e5afb653c4d"; + sha256 = "d306971952f0fa749bb311fb153c110259d0a7401eaa43cfa0d065b1b70d1258"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/fur/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/fur/firefox-152.0.3.tar.xz"; locale = "fur"; arch = "linux-x86_64"; - sha256 = "8a7c64f1c5f1937d065fbbb393555cef25f4268ed4a45f8005e78f3d2f7736a2"; + sha256 = "756c310f62573608207688a2ff74b5811fa721a2b69f69943decefe18994eb74"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/fy-NL/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/fy-NL/firefox-152.0.3.tar.xz"; locale = "fy-NL"; arch = "linux-x86_64"; - sha256 = "f65cc072eff7ec492afe1e9abc9f2c8005deab40cdd1032a865c4e59ba012dcd"; + sha256 = "281b6661705a7f56e003ee0ae1a24a3d546a79e149a6f36f02098a364148cbe0"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/ga-IE/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/ga-IE/firefox-152.0.3.tar.xz"; locale = "ga-IE"; arch = "linux-x86_64"; - sha256 = "370eefa54a4847c4707325b024beaca319032069f23e6e9b6334d02340d2a699"; + sha256 = "06342d4051101663a7d8b9aeea3e1a27aef3c8e12ad89da85f44913286b852f2"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/gd/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/gd/firefox-152.0.3.tar.xz"; locale = "gd"; arch = "linux-x86_64"; - sha256 = "02a43dac08b010f9ff36aef84a09d1b897fcd2cca704921e013c4368498bae7e"; + sha256 = "5258bbdc374d233ee1459029b87f525451a740b9bf921ab96eff6e6ffb762351"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/gl/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/gl/firefox-152.0.3.tar.xz"; locale = "gl"; arch = "linux-x86_64"; - sha256 = "f4cdb871f9e6a1e313a404bd31f6054a812ac62b5d726357c348ce7f176f408a"; + sha256 = "6258c870df03e7ed9e2d568cc85065959d0dfb3ec01d37c07bcd2d245e6439f5"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/gn/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/gn/firefox-152.0.3.tar.xz"; locale = "gn"; arch = "linux-x86_64"; - sha256 = "489d42d1cce2148c268b08844083039bab4675341e3d1044e7461a25ee2d73dc"; + sha256 = "8ec8d80e22ab4639ceda86626cf30f8e1d26f70e043ce4173c11f8e56da54646"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/gu-IN/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/gu-IN/firefox-152.0.3.tar.xz"; locale = "gu-IN"; arch = "linux-x86_64"; - sha256 = "cfb3be6e3f3ec83294c3211ff653fa56f89c7ed8319592c23a4cbe751b1bb26a"; + sha256 = "3f40fbf5088c8938a2042e639dbe84e0b02dad8502c188866d0f6083573250cf"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/he/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/he/firefox-152.0.3.tar.xz"; locale = "he"; arch = "linux-x86_64"; - sha256 = "be80c748dc1b75cbf7d316f2981e5979f4d8cffb5c45c0b46a2304fe360a95bc"; + sha256 = "2030ec344952bd59a8e671ee0aa4cdd331d8813473a4847055d7a9e60b61f521"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/hi-IN/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/hi-IN/firefox-152.0.3.tar.xz"; locale = "hi-IN"; arch = "linux-x86_64"; - sha256 = "8065346d35282305e6f37a2af0f1c564bc520ae96523159b6ed131bf119ac664"; + sha256 = "2e7373804927f710c6090b28c565cd349b46f978c0cbc5eef5b94b917d0c58d3"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/hr/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/hr/firefox-152.0.3.tar.xz"; locale = "hr"; arch = "linux-x86_64"; - sha256 = "fe8a539fc8583d329f963f798263e3e57f89e9928ad79a48ca6d78f96235d54d"; + sha256 = "811069e454a87cef11b63514b78459909fcfaf36adea8cf08c3bcdd3867d2d8d"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/hsb/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/hsb/firefox-152.0.3.tar.xz"; locale = "hsb"; arch = "linux-x86_64"; - sha256 = "9a5e92c176c5da7876990ed568ecb915337b4e9f836225d5fdd3775292b5f107"; + sha256 = "2525cc76f13dadfc98caaec52de572de7bf78c9d5f3c0cbf015909816d9c251a"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/hu/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/hu/firefox-152.0.3.tar.xz"; locale = "hu"; arch = "linux-x86_64"; - sha256 = "0f96b9017350195a548889e27f47e5170d7383832ac8519e7993d6a286f81e7e"; + sha256 = "a0e145d58f0f94306d6259aa107b91e58fd4736316edce872c80f30eba14e506"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/hy-AM/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/hy-AM/firefox-152.0.3.tar.xz"; locale = "hy-AM"; arch = "linux-x86_64"; - sha256 = "ffc143cef790eb5f5b4feef8854c85e5a8a8267f3b01b91383823f9ffe5e839a"; + sha256 = "9b784056fe0f37571c0165fe9aef1d771f97a8825a5c6f99e94e36df06577d1e"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/ia/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/ia/firefox-152.0.3.tar.xz"; locale = "ia"; arch = "linux-x86_64"; - sha256 = "337c3323598744dfde7f68986053af87703beb4bf21ec4731c9d8047206bbf59"; + sha256 = "96c1484e0f6f59bc4f826c8936b2a95ee78a7b35a1a58e2357da1f693bcb549d"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/id/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/id/firefox-152.0.3.tar.xz"; locale = "id"; arch = "linux-x86_64"; - sha256 = "47b3e38cf745cdcf7132fc27582325cce410b60dc44298ac7459d68183d313cf"; + sha256 = "3d0b304b495b2f3e1400e6b7c3690cbd0b890a869fa9c023c8209359e73619cd"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/is/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/is/firefox-152.0.3.tar.xz"; locale = "is"; arch = "linux-x86_64"; - sha256 = "0013d4ca3bbce703047f6fb3b0756fc02b91ac46af4f47fae746789efd92caf2"; + sha256 = "9da7db295ad23eaf3e1601c778497072ce1364d19eb6ae28020780390d75a759"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/it/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/it/firefox-152.0.3.tar.xz"; locale = "it"; arch = "linux-x86_64"; - sha256 = "ba51686964337e8773eac80c87bb2a77efa9c45e489e8e525b3ea870ecbb138f"; + sha256 = "821dce377afe1c91f6274568b634bcbf822cdd83ba6f7ddceadcbadb007b06a8"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/ja/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/ja/firefox-152.0.3.tar.xz"; locale = "ja"; arch = "linux-x86_64"; - sha256 = "9cff6f2f19eec0cad69ac66e452b6e4f52721a6b2a2537ffc574cffa80964f08"; + sha256 = "7e4b8a5a9bedb2d8b7e3d59564787eae6ddab3c88d14e391c747d5981b1182e5"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/ka/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/ka/firefox-152.0.3.tar.xz"; locale = "ka"; arch = "linux-x86_64"; - sha256 = "05a00df8fb25403ca256e40c16067cff327c6031a99ec1aebcf7e45ce6292dce"; + sha256 = "67ce36281db7824c73119f6f380f8f8ce82c182f89ae3905f635497f22ee8e99"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/kab/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/kab/firefox-152.0.3.tar.xz"; locale = "kab"; arch = "linux-x86_64"; - sha256 = "2c4e341264109c460d2707295dfffa84cc7ba92fa9ebae5f0f1a24f10d00bcb3"; + sha256 = "e7196569cec01d24198b106c3f66a051cba948bff579793fbf768ec3eb7a64c4"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/kk/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/kk/firefox-152.0.3.tar.xz"; locale = "kk"; arch = "linux-x86_64"; - sha256 = "d8a3950920d276f38b06ede9c29967d71f77b21be749653299662607f1644bdd"; + sha256 = "0f780e8bad04d38f0bb317cb9bb20c690c8507e89cea2c3c92368f52af7016b3"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/km/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/km/firefox-152.0.3.tar.xz"; locale = "km"; arch = "linux-x86_64"; - sha256 = "0794f8a14db3830bdbf82fa6fcd10ac882430c92c018076bdcc573510c76eb22"; + sha256 = "cee9aee9da256fbbcfdb6d5f67225a64c014bf6e531b32d2bcc1b4dd48768017"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/kn/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/kn/firefox-152.0.3.tar.xz"; locale = "kn"; arch = "linux-x86_64"; - sha256 = "8ec08ab22c43d6aa00aa481839cb0bfcfa6e2be9536dd1c4d6ec41414ee3b49d"; + sha256 = "d22a114647c4e07d8c38ed46b67dacb47e260860b796dc94111cf2f7275ac074"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/ko/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/ko/firefox-152.0.3.tar.xz"; locale = "ko"; arch = "linux-x86_64"; - sha256 = "71e2c736cd19b0d58e3428a0825fc23640d64dbbe2f78e72550e1d6cb4add793"; + sha256 = "bcc6fdc8b38c1d66ac998a2738a5f4c2f01752a05c002042cdab9295f1898c23"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/lij/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/lij/firefox-152.0.3.tar.xz"; locale = "lij"; arch = "linux-x86_64"; - sha256 = "c6b295b33e37834380549e360e5255d2bd94ffc7359e1f8d70bc21552549305f"; + sha256 = "3dec6d06ee0a072a32ae4b3ba29c202657e5d2b195e19e9caf065bb2b6bf071f"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/lt/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/lt/firefox-152.0.3.tar.xz"; locale = "lt"; arch = "linux-x86_64"; - sha256 = "8c4d359fa3a251c0b234bbd2286fa902cfc51c95487ec213bcf56960f464ff14"; + sha256 = "5277d133f5086b824966724107cc6f91570c897afa7da2649ee465368001271f"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/lv/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/lv/firefox-152.0.3.tar.xz"; locale = "lv"; arch = "linux-x86_64"; - sha256 = "fbefb8eab5d657ee934b984d0a9997365ba0605d414976a962c2904abe048424"; + sha256 = "25aba34fa20e86f654de75357b389d1653b71e24715e8f11997a98f8a0f27756"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/mk/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/mk/firefox-152.0.3.tar.xz"; locale = "mk"; arch = "linux-x86_64"; - sha256 = "eb3aaa45eb9c57d2405f8f79118294dce67b64f8cef4325dfe5b323cb76b5f75"; + sha256 = "6b082e367a8c5fa3352d2e78e5960fbb35df89081d9d4da8809d7a9b2bc8de2c"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/mr/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/mr/firefox-152.0.3.tar.xz"; locale = "mr"; arch = "linux-x86_64"; - sha256 = "c8f7e749151d1918438fe91124ee341210edae0b7ec9490c7a2fd76ca08b94ac"; + sha256 = "7126c188e0a32ab3161abf02bc98f908fda29574a7e732a56206ce3c24c86b9e"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/ms/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/ms/firefox-152.0.3.tar.xz"; locale = "ms"; arch = "linux-x86_64"; - sha256 = "446d6170967f3216da2d7d8ec408396b4c5a671108a815d0b2bfec3b42a67a63"; + sha256 = "331d912d33d08cdc152f5306e2f5344445a80d9fef9af9bf5634882ada3f521f"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/my/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/my/firefox-152.0.3.tar.xz"; locale = "my"; arch = "linux-x86_64"; - sha256 = "7434de7c02bb4b837963b27987ed80e29b510f0e9befc4e8651d0846084956dc"; + sha256 = "53741df418c53cad72a61f397a3dae27d47337c9cdd0c5b56663df904897fdd5"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/nb-NO/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/nb-NO/firefox-152.0.3.tar.xz"; locale = "nb-NO"; arch = "linux-x86_64"; - sha256 = "0a18e3134eaa9b1d6984456b2b12274feb75afae770f635af8abb37e80953752"; + sha256 = "63613d482ce908fbd314257954274a170d0f57c7b56ee42df36e362b144db1b4"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/ne-NP/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/ne-NP/firefox-152.0.3.tar.xz"; locale = "ne-NP"; arch = "linux-x86_64"; - sha256 = "a1761758fcc7be7c1cac11ad5c608075b4a2c6ac62b9659e1e1fa5bc3fabb282"; + sha256 = "77d5b146445dae80bdbdca8f647370da25356bfb21cc9e120d62e983a962103d"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/nl/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/nl/firefox-152.0.3.tar.xz"; locale = "nl"; arch = "linux-x86_64"; - sha256 = "9ea52bcc4f31d883d26c679a9cb629db656f251a0cff32629e02b486aebc7f63"; + sha256 = "3955bcaa96d4526c10d186fe11f6ee94ca7be85b078ea96c74f221dfe65d9091"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/nn-NO/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/nn-NO/firefox-152.0.3.tar.xz"; locale = "nn-NO"; arch = "linux-x86_64"; - sha256 = "ed27c24e2f70951dc043e2dacaf4ab3d13760ca9f2e2233c6252ce583349f164"; + sha256 = "9571810ce6a85a2dd3f1ca7006bcb51b724a0bfce1d2d865c68b21211a1d05dd"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/oc/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/oc/firefox-152.0.3.tar.xz"; locale = "oc"; arch = "linux-x86_64"; - sha256 = "93a7a26c49c009033fc304a4095a5206bd6277b93edd5417c783527253d83574"; + sha256 = "d6b3c2ed89cbbd189e488c6d4aaea3cf4dac149c8c517e7cbea7cb63f0933e19"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/pa-IN/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/pa-IN/firefox-152.0.3.tar.xz"; locale = "pa-IN"; arch = "linux-x86_64"; - sha256 = "d3b45e6857fa02bd4964ad949782197f6d39769a21a0b82d740ee24c69701a8d"; + sha256 = "439e06da5dcc0445198cda4836bb48c67b1672d11699fd7abcdcd7a96a554e47"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/pl/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/pl/firefox-152.0.3.tar.xz"; locale = "pl"; arch = "linux-x86_64"; - sha256 = "0734cc6b5a49496f884a8c0365eed1cc67be46e765ab6145db9f6d3421338bc2"; + sha256 = "06a22fd18e2b2fe485e75c6a2e91f556f06748aa9bdf8528d44dc1300a199a20"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/pt-BR/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/pt-BR/firefox-152.0.3.tar.xz"; locale = "pt-BR"; arch = "linux-x86_64"; - sha256 = "1874abfd6b483e01209a5909aba17d1335db2cdeadece887f60e6e4ed42d628f"; + sha256 = "1f1699851c257cb4f1fdac742d44dbfeb4384b0b88bf1f252461c74efacb3c6f"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/pt-PT/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/pt-PT/firefox-152.0.3.tar.xz"; locale = "pt-PT"; arch = "linux-x86_64"; - sha256 = "96996115235f3b229eaa5398512d15f253bbe3bb8fa954c8acd3802f4812ed3f"; + sha256 = "d22f36c18c6d70ee744e296389467fab0e67efc09b68352de99dc40ce9b697ca"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/rm/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/rm/firefox-152.0.3.tar.xz"; locale = "rm"; arch = "linux-x86_64"; - sha256 = "8cec45cc317d8cbb336cfd2e2a7275b2e7679ba6df33d145084715c72f60807b"; + sha256 = "86336c982f40933d79a20d5b58f0a5330392326ac0722ed9489159d72e758264"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/ro/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/ro/firefox-152.0.3.tar.xz"; locale = "ro"; arch = "linux-x86_64"; - sha256 = "ce9dce42d4f8d5f3d63c2d7e817177a89108696aa4d27b5d049783bd2cdf2fc4"; + sha256 = "54880f3c8be8c77d96c001f6ea221b20900bd7b31e0864dad2f506416d9dc94b"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/ru/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/ru/firefox-152.0.3.tar.xz"; locale = "ru"; arch = "linux-x86_64"; - sha256 = "0c2615efaa8bee7fc23781593c28473e63702f0f2c73a5cf4709684ce0b8f423"; + sha256 = "bb208cab97357e6b9aaf41621addb5d2b82a044d94984e0363cf04ff9cd639d4"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/sat/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/sat/firefox-152.0.3.tar.xz"; locale = "sat"; arch = "linux-x86_64"; - sha256 = "c0967d46a30d5d574381fac54fc7bcf659f5f8659c0c783f39cf394faa2eb721"; + sha256 = "3ca16856d57e841b26573d0de45d26ae2a00473fa14f6743cf31ba31da7283f2"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/sc/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/sc/firefox-152.0.3.tar.xz"; locale = "sc"; arch = "linux-x86_64"; - sha256 = "8f458413d13811427390a127b1a3eff9ace49136c81792656ca8453f5c7e9caf"; + sha256 = "1399349a5395f1b78b33511d2e953b82b0dff9a6881005676e379310a4afb090"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/sco/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/sco/firefox-152.0.3.tar.xz"; locale = "sco"; arch = "linux-x86_64"; - sha256 = "955040cb90bc39b4d3f843281729a9f5fb1eb3d43963eb3d5c20c589351005a0"; + sha256 = "5ff99cc301079cef43b2302dc01f8b686be8a980b281b3decd6e0c394ea2d67b"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/si/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/si/firefox-152.0.3.tar.xz"; locale = "si"; arch = "linux-x86_64"; - sha256 = "92041467f19ec5f2fca6b394cb0d560f31cb969f771d98e9e347bbe42a2207d5"; + sha256 = "2f97c8970ca8f081aa8a1d1ed993cd2e7364eba94d3478cd8b3107d1d74f2206"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/sk/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/sk/firefox-152.0.3.tar.xz"; locale = "sk"; arch = "linux-x86_64"; - sha256 = "5ac190c6e3018074b82dd7d13f48423102a01ee9b2201e1a112bcd549129ca0d"; + sha256 = "16a6e4f2b307807278e3846e1f2ebad11e46ce3eccf217abda65a29fcdae02d7"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/skr/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/skr/firefox-152.0.3.tar.xz"; locale = "skr"; arch = "linux-x86_64"; - sha256 = "fdd5225bd03501cf796c41b38f52c20535d217cd3027e1f259bbfb952fc08bd7"; + sha256 = "d8dd7e77807efd350ebaa4490a46b48c407d97102747cf6d9fc911f20aae8d67"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/sl/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/sl/firefox-152.0.3.tar.xz"; locale = "sl"; arch = "linux-x86_64"; - sha256 = "ad6d75438698eac8c14e1ab598e9d79a963e8c5b1d71e9e12157ea5ab3da6328"; + sha256 = "0c1801136e59d4e316d7f8dfd9d02f45d9c0109d4e71943511ef948b18909e3e"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/son/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/son/firefox-152.0.3.tar.xz"; locale = "son"; arch = "linux-x86_64"; - sha256 = "b8e7920fed9d0c6ba3954d0950ef3d4b5ee246eb6f911de07b213978f88a9856"; + sha256 = "3c8ab3b97b52742abf4d2a5d4ca82ae2ee09da1efb880a5ae94b815eff1ae7b0"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/sq/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/sq/firefox-152.0.3.tar.xz"; locale = "sq"; arch = "linux-x86_64"; - sha256 = "8267ae1ce2b6a8a2131dfa38929c697c28f61730adbcdde9460212e57a41ab21"; + sha256 = "b2dfa364016423b4a468154455e3b3f938e16db048c8422803dadfbfd64fb30d"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/sr/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/sr/firefox-152.0.3.tar.xz"; locale = "sr"; arch = "linux-x86_64"; - sha256 = "c121c8c66760308c8ed5433c140c06437b054d598d4881d9fcdd7bf596414fc6"; + sha256 = "47a75724a7f53d7b327ba7ef191190919f0749ec587eae8f7b4c3b0853d4128b"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/sv-SE/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/sv-SE/firefox-152.0.3.tar.xz"; locale = "sv-SE"; arch = "linux-x86_64"; - sha256 = "7f17e61b7d1ea4a7ca659b7e315f0c70e6604144122387fb8aa01a4d6ea19b8a"; + sha256 = "46df0f2fd8c8ee4591407c6a778223ab438a4fc4beaf4e19eb229c9c7737b3e4"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/szl/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/szl/firefox-152.0.3.tar.xz"; locale = "szl"; arch = "linux-x86_64"; - sha256 = "5208c5855d673c9d18a6d912154ea4a44807565ccb07f35d99f0a77caa34234f"; + sha256 = "529b33662658dd06e6cf2d5e1f5c3aa182a5eaab104b8d85a76a287e605142fd"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/ta/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/ta/firefox-152.0.3.tar.xz"; locale = "ta"; arch = "linux-x86_64"; - sha256 = "8fe4d95516f1594ec2dd078a5794f5d768cfc8abe12d6b64069f01518b240dc7"; + sha256 = "ef14ff929711e7b9d9ac49c5fd5451cd2a8b91b23be568c6f2fa9055ff315733"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/te/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/te/firefox-152.0.3.tar.xz"; locale = "te"; arch = "linux-x86_64"; - sha256 = "25ac2b2e0f6f6162e91c6183be409328d52f2d7fc7b0d2b50f3f2926c99a9e78"; + sha256 = "55290dee1a2a315d9c4931328cdd03c16613005d981958b32961d49aaf321328"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/tg/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/tg/firefox-152.0.3.tar.xz"; locale = "tg"; arch = "linux-x86_64"; - sha256 = "a54ca0e95760fef718a368b5efb23970c951b4a637001886d25aeca53a3c862c"; + sha256 = "411bae707309cd1efc1cce23f36679e169989154b2d59031e98afeefd2067976"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/th/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/th/firefox-152.0.3.tar.xz"; locale = "th"; arch = "linux-x86_64"; - sha256 = "445e215115bfcd7502b1fe8ec6a1a280d2756b721d54cf18f098aac42ba339b4"; + sha256 = "defdd70534c6add8e398382e3788fd333e6e9fdf7b28e0c0f1424d19ee066f3d"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/tl/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/tl/firefox-152.0.3.tar.xz"; locale = "tl"; arch = "linux-x86_64"; - sha256 = "88f76a27052b6a44419950fb046a4550d828c7d60de9daab13a53cf382fe71b2"; + sha256 = "87f21fef7e46d9611d15da99216ef2446e27c1df7c39db52f2c1d1c4cfc4b7a7"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/tr/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/tr/firefox-152.0.3.tar.xz"; locale = "tr"; arch = "linux-x86_64"; - sha256 = "2959f9ea2585c0e674a8d32042bdeb2a90e3016a1002f6b669792b68b09c8b2d"; + sha256 = "2c9047cc7ed638fe7bbd8ea2dc560136fa62b2693f72daf09edf787569c8ccc5"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/trs/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/trs/firefox-152.0.3.tar.xz"; locale = "trs"; arch = "linux-x86_64"; - sha256 = "abd39f6533ccb1d37fb5c4cfd49749cf23418cae9ec5c2b676cca5bbd643aec8"; + sha256 = "75b8309ea66f95b9ce3502cf3bd9a503d0f3bcf80b4b8337773597c1d6fd5eeb"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/uk/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/uk/firefox-152.0.3.tar.xz"; locale = "uk"; arch = "linux-x86_64"; - sha256 = "6f0cd5637db1a04666025115c564eb734a65ae8ddee21e8370a843cb7ed34bb5"; + sha256 = "c7e204b28521d37344c3dc683f3e344549fe78f5de1ac6524f50666efa7cba5e"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/ur/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/ur/firefox-152.0.3.tar.xz"; locale = "ur"; arch = "linux-x86_64"; - sha256 = "caf0fa151d7e0a8a47ef55bafebf587bfb153a0cfae7755e30cdfd3a0a84b5e5"; + sha256 = "eac2aa44cb2986b6fcb7224eb279103f1cc4dc83c9237fa12da5c50097b9e4af"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/uz/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/uz/firefox-152.0.3.tar.xz"; locale = "uz"; arch = "linux-x86_64"; - sha256 = "4b869863c41ab25405533f142765dbc20ad6dc611d692bfe4d58c09717f6f1ec"; + sha256 = "4e8b46de79a851b3f0e8c12f66a072e904a7dd5000e24f9b2156f6de7a18c463"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/vi/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/vi/firefox-152.0.3.tar.xz"; locale = "vi"; arch = "linux-x86_64"; - sha256 = "0a43ae34c355d5b0901d4d94134a142a35dfd8884be37c1455dac8881d642eaa"; + sha256 = "43ba17af61226603463443cbb155a9f3f6550b94d8b2bfd599fd7b041558507d"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/xh/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/xh/firefox-152.0.3.tar.xz"; locale = "xh"; arch = "linux-x86_64"; - sha256 = "aa16d71d417a35c7061f99f1f3198d29b38e0d5585d23b31b31cb274b0b0242d"; + sha256 = "09d3189d5f505959696996649c297e8b9b5ca86070c0d4180aa36c6d18b5fe89"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/zh-CN/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/zh-CN/firefox-152.0.3.tar.xz"; locale = "zh-CN"; arch = "linux-x86_64"; - sha256 = "b08c013ce0bf740fb7329d8aff2fb9237962251ff055dac1840b88b7eae9a823"; + sha256 = "74960070129bd2bf958581bf75f43dbdf20cfa7aa0656b1ff08fe989951f3783"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-x86_64/zh-TW/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-x86_64/zh-TW/firefox-152.0.3.tar.xz"; locale = "zh-TW"; arch = "linux-x86_64"; - sha256 = "d28f5d880c8e7d6a770fad1db80ecdcb6015dd9c3786cff1009da271f1dba767"; + sha256 = "60302013e2c9e6f77cda0dd9d26873f982635bb850482e521de43041f97a59b1"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/ach/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/ach/firefox-152.0.3.tar.xz"; locale = "ach"; arch = "linux-aarch64"; - sha256 = "d847f95bbb780b7b634384e28fa53caaeb88078f3a67d92f4f5a950b960df3d7"; + sha256 = "5d059d885a0930921ef5c4cc60e2d1339f4ddd574d3a2c11849985b5769a59f2"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/af/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/af/firefox-152.0.3.tar.xz"; locale = "af"; arch = "linux-aarch64"; - sha256 = "472ab2b6bb42a00c18a963e94f221aacdf144354055cdd11648585cc91eaa33b"; + sha256 = "4d2f807d96b2c794d89bc466df53c768605894bfbb92ab30f427f5893f12b924"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/an/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/an/firefox-152.0.3.tar.xz"; locale = "an"; arch = "linux-aarch64"; - sha256 = "719cb248b6a3799a424f79dea8d852658768f309350cf5d3a7dc7d775d0a6b02"; + sha256 = "0b579b200bbe42072705c826740122d46fa6cfc3d232fd3a3b879604ecdd4bf9"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/ar/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/ar/firefox-152.0.3.tar.xz"; locale = "ar"; arch = "linux-aarch64"; - sha256 = "a6bb3eccbd0e78697b367fb26ea0d2a67bcacedb70be49c63828ebab9d0e04a1"; + sha256 = "58bbf7531d7815d1748913b2405cd282127f86e66f5ec1bd125c05a7739c633b"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/ast/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/ast/firefox-152.0.3.tar.xz"; locale = "ast"; arch = "linux-aarch64"; - sha256 = "49ef08a5cbce3b5b2567eff387605301eb7705b211aa9404a52c4fc6c625edcb"; + sha256 = "6379c98267556fab8eaaef46b0d363f32fef6d017e93a085671b0893b95a7db0"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/az/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/az/firefox-152.0.3.tar.xz"; locale = "az"; arch = "linux-aarch64"; - sha256 = "cbe711cf857dfa17128703f4434f8ee5b11fce2b9a7033187b62f18ad8d570cf"; + sha256 = "d8277d6b0f16c9bd38e3f8b819ad87fd2b23a4502d36d1a32415c67c0100707e"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/be/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/be/firefox-152.0.3.tar.xz"; locale = "be"; arch = "linux-aarch64"; - sha256 = "9956c2ff4d58daab7ae247705d9fdb5d6d4cffa99c5410347716988dd20e0d21"; + sha256 = "b8f278e6717b7b060eebd5dbc7f32388b885503e8b4330fb85f922af8964369c"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/bg/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/bg/firefox-152.0.3.tar.xz"; locale = "bg"; arch = "linux-aarch64"; - sha256 = "15c965adea6f39e13726d21c68e15dec15de895f7a7b394d51c59587a9c44245"; + sha256 = "570e0536ac60f46d9f6dcb09b503592dfb1083ff7e2940959c2c3c36a2bec7cb"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/bn/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/bn/firefox-152.0.3.tar.xz"; locale = "bn"; arch = "linux-aarch64"; - sha256 = "06a22bc248c38245bd36f0001626f3cb101f33c2967bda66b967be5ae3675f96"; + sha256 = "256e9c6ca49b19960647c7b7e32899dcc7b536378ce5618defc756030bcdc6bb"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/br/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/br/firefox-152.0.3.tar.xz"; locale = "br"; arch = "linux-aarch64"; - sha256 = "49fdb53ca17142435cf164753cc7eb4a7482e7738d4059f7cb305892f8047b92"; + sha256 = "d4bad6db0e3b021bd2e7258a2e70e6998254919a9000d12da9278abd7ba30c7c"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/bs/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/bs/firefox-152.0.3.tar.xz"; locale = "bs"; arch = "linux-aarch64"; - sha256 = "4fad26b8af8d6803e7ffaf69eb24b0fb838262daf9d9b3ecc2be89b22aa91b13"; + sha256 = "d1cf30d1177850e0c1c93a0e3a4ad4387ea786a58013d71269bc293d68affb71"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/ca-valencia/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/ca-valencia/firefox-152.0.3.tar.xz"; locale = "ca-valencia"; arch = "linux-aarch64"; - sha256 = "2404f824a33287a06004c5a5f86896326504680bc7777c11764a9d68365f5e97"; + sha256 = "b105b2f883064af79931e32601abd9517a6ec5bcc7edaa758531a23157295083"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/ca/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/ca/firefox-152.0.3.tar.xz"; locale = "ca"; arch = "linux-aarch64"; - sha256 = "21232c40fe8533a618aa8c446d860f7591e939e3815057924e3518509a701c67"; + sha256 = "f1680c1bb1a5b66de60dd35947f0575fe8c79e5ed065000380a02c3218452b82"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/cak/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/cak/firefox-152.0.3.tar.xz"; locale = "cak"; arch = "linux-aarch64"; - sha256 = "3172993eae57fe3cfe2de51254b7d05d84c1b4f0dc7ea8fc0ebe213a324a06de"; + sha256 = "8ba72f5a6b4eac0677aac24390bae0c71ded4073bfa020740987c51892ce751a"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/cs/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/cs/firefox-152.0.3.tar.xz"; locale = "cs"; arch = "linux-aarch64"; - sha256 = "40df128162db45f2c3d019b53170fb1c5992a9351939adaeacad8b685effe716"; + sha256 = "f83954e76faa2ad3d78bc132f403a8d73143aa35686650ab42452580b5e0f6e1"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/cy/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/cy/firefox-152.0.3.tar.xz"; locale = "cy"; arch = "linux-aarch64"; - sha256 = "7ef1e048861b969b8d52d387b148941b2ba0b9ad0fba6734f4d6ac3b6fe7de5e"; + sha256 = "7fb7e4ec7b92bdac223a368a82ef2207db2d347cffc0a8a7f7d89d59a47b54a9"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/da/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/da/firefox-152.0.3.tar.xz"; locale = "da"; arch = "linux-aarch64"; - sha256 = "9e85eae7124e64a7086908a9f91553834809a6b07d6baf8fc33f780ff9a38306"; + sha256 = "f262d95e3917e7d66e7c77b1108acb3bae0ec6326ba944b66a3588a0da149a6d"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/de/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/de/firefox-152.0.3.tar.xz"; locale = "de"; arch = "linux-aarch64"; - sha256 = "2dac9ca6d07754bd1e3387c9558d8102799aab6323edc043b8c191eb9f4e745b"; + sha256 = "4b6a7580b91a10be480ae92e7df5b32e4f64926d0ede3bda407b3e6f3136fbf1"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/dsb/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/dsb/firefox-152.0.3.tar.xz"; locale = "dsb"; arch = "linux-aarch64"; - sha256 = "f7f8181accd65c1990081afb14c3a3754b0780cd58902e1a668a937afa495af7"; + sha256 = "b86ca2d56182f89d2ec8a473e37635b521f3298c72706d104b83e4e7b10d93ba"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/el/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/el/firefox-152.0.3.tar.xz"; locale = "el"; arch = "linux-aarch64"; - sha256 = "b8ecbfa04175235104c16fe530c66418f1bc098d909437e308390fce2d02534e"; + sha256 = "6d23fbb7244291ec69717165efd148dedfe51a244feaa0402f15a60c200f85e0"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/en-CA/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/en-CA/firefox-152.0.3.tar.xz"; locale = "en-CA"; arch = "linux-aarch64"; - sha256 = "cb8a4c44b49668c6b40ef9ac639069dfd93c0a8dd9bb2989e822bd7fcd582f9f"; + sha256 = "a76b74297ef997466017b25c6beae675b1b0e16b851693a9de34939e6c9010c3"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/en-GB/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/en-GB/firefox-152.0.3.tar.xz"; locale = "en-GB"; arch = "linux-aarch64"; - sha256 = "47da0f132d411cbd74be87536a4f643b109710d32cbd05415815fc89257c7b2e"; + sha256 = "952f72c01f53ab4936520038bdbf41782a24ba3aac0d1103eaec6dd963a3a5d0"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/en-US/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/en-US/firefox-152.0.3.tar.xz"; locale = "en-US"; arch = "linux-aarch64"; - sha256 = "d4adb8ad2ca193053d1ed09b35217ff18ff8a7a62fad2ae719808ca2e20972bf"; + sha256 = "9bf6bb30bc95f208f87bcc9e84f9ebe68241d190aa9c77e57faf736037a59d37"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/eo/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/eo/firefox-152.0.3.tar.xz"; locale = "eo"; arch = "linux-aarch64"; - sha256 = "563d463dbb16c83042cca51188a2ae4271b48b69369d575d74058749fe28df58"; + sha256 = "4234e89b13f349375116d8d53f37d9dc1c00616b2ccb1283b1c2ddb5ccb9c22a"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/es-AR/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/es-AR/firefox-152.0.3.tar.xz"; locale = "es-AR"; arch = "linux-aarch64"; - sha256 = "8a90442cd622bb9337e30a59fddb874d614c780a2ca314eff995832f62bd2683"; + sha256 = "060e9348a89c1b6e5fdf324543dde78b776dcb2dd7ef0c186c6dc2b01ba4b0ca"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/es-CL/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/es-CL/firefox-152.0.3.tar.xz"; locale = "es-CL"; arch = "linux-aarch64"; - sha256 = "e0e645802e0ad592f34a64a2de10d37d5dffeb833a934c4142318aa94a701ae2"; + sha256 = "826146f1f8bd2fedf25767b7e86c21858c1e7da5091dcbdbde726547f3b6beb4"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/es-ES/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/es-ES/firefox-152.0.3.tar.xz"; locale = "es-ES"; arch = "linux-aarch64"; - sha256 = "26e3f1a60c4e44f1b6bd2a576d07c01e2829e2fcbe7f317e7f9fdaf11112ea43"; + sha256 = "36b59fda5bd734bb4cbdf5253b7980fe01559cc1a7d07552a4c2213c15ed1ff8"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/es-MX/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/es-MX/firefox-152.0.3.tar.xz"; locale = "es-MX"; arch = "linux-aarch64"; - sha256 = "f3c0de68918a7bb443c85ae3b3195d8ca0a48baee39a76c798df0100011261f5"; + sha256 = "e6fca77a2f526308d8910d7630bec08fb395978490c45a0b8a88d76a21500e68"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/et/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/et/firefox-152.0.3.tar.xz"; locale = "et"; arch = "linux-aarch64"; - sha256 = "26d824b34548c326689ddfdb6f445e56e943fcda8acb9000d766b51f21b291d8"; + sha256 = "41a6fea3494b38ff8f20216bbac6bde20682bb9ae6572fb64a481ea1f22b290f"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/eu/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/eu/firefox-152.0.3.tar.xz"; locale = "eu"; arch = "linux-aarch64"; - sha256 = "bf8ff9041512fea5340c145643b87489d8ed1ef59567912b15319db111860a8c"; + sha256 = "a3137d0386898c5e67f41d03738ac4805412a95299936946d9d6524029683a4d"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/fa/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/fa/firefox-152.0.3.tar.xz"; locale = "fa"; arch = "linux-aarch64"; - sha256 = "bda38c8ac506590863d736c8670aa7e3c8f5190d447f0ba6c0a4ef328a9b0b2b"; + sha256 = "acfc17c9d8fd188ac384690cacd7c59f078ae4d7f2420ccc6dd305e3480e31ec"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/ff/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/ff/firefox-152.0.3.tar.xz"; locale = "ff"; arch = "linux-aarch64"; - sha256 = "8e0a753a098eb27005f5f9e013c8433496607aad10612ddf33100543193d98d0"; + sha256 = "239dadd1832120dc05ffc544cc34ecd4e3dd9011eb512bd6e787e3155d9a08ca"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/fi/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/fi/firefox-152.0.3.tar.xz"; locale = "fi"; arch = "linux-aarch64"; - sha256 = "b50970cc9907a6149374f2123939bc0f01bccd67a6e2389e109909e64bf68d2a"; + sha256 = "d60729d2e283146d740a8fa82dba3514fc1c96241652e440a78a975bbc0674cd"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/fr/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/fr/firefox-152.0.3.tar.xz"; locale = "fr"; arch = "linux-aarch64"; - sha256 = "39d93d9256f859711ec4a351762916699023fa6c4c14db6737415d96d5b39a20"; + sha256 = "791af4b9bf8a411f491a3cf0c4e7e6805f09cfb7d94ec6d2c2a16edec88feb4c"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/fur/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/fur/firefox-152.0.3.tar.xz"; locale = "fur"; arch = "linux-aarch64"; - sha256 = "f4db616f5f925cd8a22df8ea2ea72dccdaf95f3f8899e8631b67f41a933bcbc0"; + sha256 = "4d3952872152fa57aa9635db5372828deccb31f754568be30ce9b37b7bca84d7"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/fy-NL/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/fy-NL/firefox-152.0.3.tar.xz"; locale = "fy-NL"; arch = "linux-aarch64"; - sha256 = "ad0ffb4c02272650f925a1526c54da8dcb22c6c5c6b3b58efaf4adcf434327ed"; + sha256 = "d690ed839b08f35e49c456055156f8c072369d5534040316d21e063478639690"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/ga-IE/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/ga-IE/firefox-152.0.3.tar.xz"; locale = "ga-IE"; arch = "linux-aarch64"; - sha256 = "b6bfd3441337e7739869582ed81363dcb156f2982160b85a432fd1876d2eb69b"; + sha256 = "20f544b54395c537359c161af46445d976dfd82e1b117841b9b90936fd41cef6"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/gd/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/gd/firefox-152.0.3.tar.xz"; locale = "gd"; arch = "linux-aarch64"; - sha256 = "6ad401ea24abdf21eea1b84332487580ef12e4b343fd44fa5be1424a54fc8fbc"; + sha256 = "dbc5ed5cd972a3e955c00a63f1437ec693098104a560af12cdf01a3b408159ca"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/gl/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/gl/firefox-152.0.3.tar.xz"; locale = "gl"; arch = "linux-aarch64"; - sha256 = "005dea494f7ed9b1a8ca4b330ec6a47641bc042e2681af4b0085b43fc7890339"; + sha256 = "eb32a301cb0521de7a416a6ad704aa99b603b7f1d026527c5e40fa4cd4c24026"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/gn/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/gn/firefox-152.0.3.tar.xz"; locale = "gn"; arch = "linux-aarch64"; - sha256 = "83c3f73f8059c2d9ab07345d444c4c847efbb234ed8a09ad6033b6674c6b7db2"; + sha256 = "8b14a4575ecf7cf38253b6b0dca97dc8bc301fd2d2d0792141cdecb2f59d334e"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/gu-IN/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/gu-IN/firefox-152.0.3.tar.xz"; locale = "gu-IN"; arch = "linux-aarch64"; - sha256 = "3fd06ca2bd7b060aaeb96789f8131c966d9e5bdf5bb5c07348d00a5029e30c21"; + sha256 = "0fd01bc8772ad586241ebc65f40b7e9aa3d7e6c4e55e456e99bf34af74abcfe6"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/he/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/he/firefox-152.0.3.tar.xz"; locale = "he"; arch = "linux-aarch64"; - sha256 = "83f7810d09c9095850d1b9315d8bd12f617bfefc4d1fdbd927e8f1d6dc444f85"; + sha256 = "ea6bf9e1fd0b782eb32e09f5b829e58689ab70d1186360917cd65cf042890cf1"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/hi-IN/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/hi-IN/firefox-152.0.3.tar.xz"; locale = "hi-IN"; arch = "linux-aarch64"; - sha256 = "d96f0784be48c53f5099a55ef04e456e5428183ea917e04a95a0cc4e965c4cd7"; + sha256 = "4a6ee22866f0d001674d6491cae231d16fa73d22ee453d60f6a73582f595c49c"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/hr/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/hr/firefox-152.0.3.tar.xz"; locale = "hr"; arch = "linux-aarch64"; - sha256 = "0d25dd840b6a11073c1afec82996afd01ea9390af2b89d1633da709945aafb4e"; + sha256 = "d801e6cac4daa1f780cb5c9f27e57c2ebcfe79c39af9d683b59acc42b32174e1"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/hsb/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/hsb/firefox-152.0.3.tar.xz"; locale = "hsb"; arch = "linux-aarch64"; - sha256 = "8f284218c0956a8f76af7d6e4cc0595ea830de398496aa7494ed8fdf4f83a03d"; + sha256 = "db0bf8a3217dc22ae5ab0b527773a89287d9496a4c466db80d65aa4a140b7026"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/hu/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/hu/firefox-152.0.3.tar.xz"; locale = "hu"; arch = "linux-aarch64"; - sha256 = "1dace22b2d708101a7b309ea5a8e5c7d36c91bd8b6f51a2f6ed9e706cfb625ab"; + sha256 = "f0cbb9bd472370f98f5e1158d67d46c557a7ec43076394cd4672a4a5a4260af4"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/hy-AM/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/hy-AM/firefox-152.0.3.tar.xz"; locale = "hy-AM"; arch = "linux-aarch64"; - sha256 = "1d591f2bf3a2881bdcbb3be46951c517f33257768736c8603df7318844aaba25"; + sha256 = "e0f4c807b853e0c40a2f04a8edbd43660cc8dd52110e2158a0296b50dea40b74"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/ia/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/ia/firefox-152.0.3.tar.xz"; locale = "ia"; arch = "linux-aarch64"; - sha256 = "c04a7f5b030779269d67c0ea6d5afcda33c8e37ab2605b078f9d60c2d021bc28"; + sha256 = "b29003064198115aec2036abd1fc64283a1691e71ff34c41cba4ac3c54e69229"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/id/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/id/firefox-152.0.3.tar.xz"; locale = "id"; arch = "linux-aarch64"; - sha256 = "cb23611c068013915e4361b86ee9dfc855651ffcf4b000e66430b8548ca7fe2f"; + sha256 = "c00f60e3eada5b19bd609156e43d072d965a5fc1201f56c1f1d61bcb48793115"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/is/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/is/firefox-152.0.3.tar.xz"; locale = "is"; arch = "linux-aarch64"; - sha256 = "6e3e97ffe65bbe65e894932cdbe3992f431a5ca9e9f1f37c314bc1771c257552"; + sha256 = "d398c35dedecea5be0573a31705cf3a8aac1234859747c8ac47d28d44fd2c3e3"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/it/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/it/firefox-152.0.3.tar.xz"; locale = "it"; arch = "linux-aarch64"; - sha256 = "92a1e95bb09f67bb372683c391dce3739939ee945317f12fd75e8f060455ad58"; + sha256 = "b56a69347eb6c2f72fada964e7013bd24a936cbf062d673f3f6c9d40a3d27eb2"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/ja/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/ja/firefox-152.0.3.tar.xz"; locale = "ja"; arch = "linux-aarch64"; - sha256 = "9ee0f01e4bacd28fa2c2e1b050a0885b641b6b4ec615eb5a8c75457f59b28b87"; + sha256 = "f5ca6dc7d78e09f82bda57d234e9a0cb455a1c8132491be702a035cf199729eb"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/ka/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/ka/firefox-152.0.3.tar.xz"; locale = "ka"; arch = "linux-aarch64"; - sha256 = "ff158cf627f0e697a173f5d66a09c1cc8f1ddf50d67d0c97c90284e1bbdfc3e2"; + sha256 = "e8445e975a71595b66ff8f4f74ea56d4d03dbbbc3e3cb94249dd8923767007c6"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/kab/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/kab/firefox-152.0.3.tar.xz"; locale = "kab"; arch = "linux-aarch64"; - sha256 = "6542108a4ec7dcaa47c9277e506fc098ff2e991f1852edb511311bacfda8c2cc"; + sha256 = "e9405e1cf4dfdf4fd91ffd5763e590650e961887f0b68e69a536f0a6a92e6655"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/kk/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/kk/firefox-152.0.3.tar.xz"; locale = "kk"; arch = "linux-aarch64"; - sha256 = "353a7f58dbb0da3e0d76535df783165c20a32ee109e09258fe93a4b8933a5d7c"; + sha256 = "2904f9bc0a6930ff26562831434e101d4e4634eaa035667094402cf1fc84231c"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/km/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/km/firefox-152.0.3.tar.xz"; locale = "km"; arch = "linux-aarch64"; - sha256 = "d9bc8e08092631459159975623da09e813ef504936dfbe86f9f407f090a85d0d"; + sha256 = "33645365027ec0b145df70ff771f33c9af22b1310f2dfcb37432148540bedd3d"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/kn/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/kn/firefox-152.0.3.tar.xz"; locale = "kn"; arch = "linux-aarch64"; - sha256 = "f9490acf7866ffadb02fd8a517d1c54c67f3b5bfe01caeb4bddece0a5ea8c50b"; + sha256 = "a441932d128158bb1865a2b26f213e6108cf20a08adb890f4bcbbd854adaba0a"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/ko/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/ko/firefox-152.0.3.tar.xz"; locale = "ko"; arch = "linux-aarch64"; - sha256 = "b2eb21f8850fb5c73332605f3a5ed8aee75218e604678005de12229807c5a8c3"; + sha256 = "0928e5424b099345b5fbd08f7c85cd94a5c84e2493055654cdf6515b1f605b49"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/lij/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/lij/firefox-152.0.3.tar.xz"; locale = "lij"; arch = "linux-aarch64"; - sha256 = "328e5028c65b26fc5c7737d166c903789994416cd470d79c4fbb17f8f99239a1"; + sha256 = "3c2c2346900af2337e69aef0d62677427579e2368cfd793ac8b16ed88b9158e0"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/lt/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/lt/firefox-152.0.3.tar.xz"; locale = "lt"; arch = "linux-aarch64"; - sha256 = "6b92152cf414600b36385573086f1a6f1b1f67d682cae7d8287f1cf56d43110c"; + sha256 = "36e04b6aa0dc179f720bbc7d82bbf31695fabf15e50b3adb51149920c1da21c5"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/lv/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/lv/firefox-152.0.3.tar.xz"; locale = "lv"; arch = "linux-aarch64"; - sha256 = "55f4ad418ec69ddd893bef29c42bb20c7ad9d981e2426df8104b35dbe7a5d9af"; + sha256 = "6cb287d0578b1212a0fa5dc55a9a3b235c5e3377f49a3cedda505ac1b0317985"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/mk/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/mk/firefox-152.0.3.tar.xz"; locale = "mk"; arch = "linux-aarch64"; - sha256 = "ce288b0f16e4b9f93f1e0a970bbe1495fe2d2d3305f4b625d30cb5af95397b28"; + sha256 = "34d890adb8991fb8d9e38ff15e9587b5218be19bc30f09306172b3440ce729b1"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/mr/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/mr/firefox-152.0.3.tar.xz"; locale = "mr"; arch = "linux-aarch64"; - sha256 = "f726f77a166faa42887b1ea8ae7b2bd25ae4c4ae5ba9324758e5391d9be4a42c"; + sha256 = "3c3e583a06d8c946eec8124dabd63f5284320478570cdecb225cd99dea2e4923"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/ms/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/ms/firefox-152.0.3.tar.xz"; locale = "ms"; arch = "linux-aarch64"; - sha256 = "33c0c76cbbf62437077f39fc483580cc4f519108ac0776d6ec9ef3c4b5226069"; + sha256 = "7e0b445ec68567a0ca9ba084e19e796a86cf39059807cd21669be7f21dfb74ac"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/my/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/my/firefox-152.0.3.tar.xz"; locale = "my"; arch = "linux-aarch64"; - sha256 = "fb4e331173d5b0cff135531bde24d1da0ac815c456a9a5ab65be0f29a76e68b8"; + sha256 = "8a7e067b11fc7cc2cac063cc339384cf9a21aebd0fbdc27d902f4c3a31dd9785"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/nb-NO/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/nb-NO/firefox-152.0.3.tar.xz"; locale = "nb-NO"; arch = "linux-aarch64"; - sha256 = "5f4234df0b4e62aa679064455627f7168043c114c9e232eb24e639e93fcec7d8"; + sha256 = "cbf9331a14dc92e02098595a8b3a94ee48654d1d1e0af4864d0bed3d903010a6"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/ne-NP/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/ne-NP/firefox-152.0.3.tar.xz"; locale = "ne-NP"; arch = "linux-aarch64"; - sha256 = "6f3757a1b5ce6f4753695428ac5f1caf0c15bc935ca075cee42844ab8178eb74"; + sha256 = "1b64976f7fe609e2ade3d8af290f284c2ba367a13b058388fbb0d7ac94187b55"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/nl/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/nl/firefox-152.0.3.tar.xz"; locale = "nl"; arch = "linux-aarch64"; - sha256 = "137143bba38da817c50dd7230804c2bbea917c923d12c8a13558258940cbc525"; + sha256 = "adfb1de6a903856c2df065a649944c4fc0ea8c6535a268fc00e240a714c2b058"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/nn-NO/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/nn-NO/firefox-152.0.3.tar.xz"; locale = "nn-NO"; arch = "linux-aarch64"; - sha256 = "1c3f291f622604e6604900cb619154b3ed91d064fde7cb951e4df871087b62d0"; + sha256 = "08fad22a2bb321d29702933d1179aad732b3d824677a0ab7c282e8c77675f8fe"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/oc/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/oc/firefox-152.0.3.tar.xz"; locale = "oc"; arch = "linux-aarch64"; - sha256 = "84dd100fda879948122af8ac50e29c01c83216e9ada84935bb93b43d7d1a8735"; + sha256 = "0100613cf624f28cf1ac814f52fa792597a06ab4e61880325306b6f007aa5721"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/pa-IN/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/pa-IN/firefox-152.0.3.tar.xz"; locale = "pa-IN"; arch = "linux-aarch64"; - sha256 = "cd360f7e72d79145e772325d9c8440edd5b58b26b9257a57f5c9a46951b4c71a"; + sha256 = "e6851c3ddc3ea140bd7dd9038014b9ccf796d8d3da1ad507045d3647d744b22e"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/pl/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/pl/firefox-152.0.3.tar.xz"; locale = "pl"; arch = "linux-aarch64"; - sha256 = "62e9764449963bc4c8cfe690a426e058c4bdb66df1d09ea989592b5709161b7d"; + sha256 = "aebf893c72c7391e20048033a5bf6199498b4531bc3f0b17aafc0acabd5d9771"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/pt-BR/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/pt-BR/firefox-152.0.3.tar.xz"; locale = "pt-BR"; arch = "linux-aarch64"; - sha256 = "8e92a43c60e89b404dd713edb33a67592e631585ad33dc9bea7a10fed5a4ab15"; + sha256 = "577553d12a8bcb4aa66b7eee5b291e9a12556936c65cc8994ac3452986e910d0"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/pt-PT/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/pt-PT/firefox-152.0.3.tar.xz"; locale = "pt-PT"; arch = "linux-aarch64"; - sha256 = "cf2e705421bcebe925ee28c700d1fa31891f63df192971c84c6e0934038a7655"; + sha256 = "60c1fa57b9938767a0cc890627132521f6d9fae5ee6a3d573beb812b789fab70"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/rm/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/rm/firefox-152.0.3.tar.xz"; locale = "rm"; arch = "linux-aarch64"; - sha256 = "b02d819eb0ceaaf2f38b761bc4b69223ba6ad1ca4d700b25091784256f103857"; + sha256 = "7e56349870ba6451eb2aa98fca42b144f5f2e2ed8c5d5ccd895e64e448ab7b1f"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/ro/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/ro/firefox-152.0.3.tar.xz"; locale = "ro"; arch = "linux-aarch64"; - sha256 = "90360f3080b7e542b886b125698debc41a482673c9f0c353ff64cee97ffbe681"; + sha256 = "bebce3b301b0ec87bdc0c4b83c8cd65824e9262dc772821eb39232a177b9195a"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/ru/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/ru/firefox-152.0.3.tar.xz"; locale = "ru"; arch = "linux-aarch64"; - sha256 = "bc8756d9b540a280f3a833f60cce2b99a36bd9849cfc6a631ad900a2ff84e60a"; + sha256 = "d88f6b5c68da9d182d9de9e242b675acc66436d3efbc3bef0fc13b06ec803af5"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/sat/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/sat/firefox-152.0.3.tar.xz"; locale = "sat"; arch = "linux-aarch64"; - sha256 = "0e8fd1c6b10a21cd9fa37ded16e9417f036f4562e99738f0bbe1a906147df3ba"; + sha256 = "945f75b2c96c84b63eda2c9200d90124986d0ca7475c0b84266e2efdc43c1167"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/sc/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/sc/firefox-152.0.3.tar.xz"; locale = "sc"; arch = "linux-aarch64"; - sha256 = "3bbd410771f372cec3a5d5077f29252c28403a4811fb63b866b10d8a55f83c86"; + sha256 = "6b4a3759f95c21a96fbd5c1e480f3adfbdc832b5881751bd4c8b4fb500e2072d"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/sco/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/sco/firefox-152.0.3.tar.xz"; locale = "sco"; arch = "linux-aarch64"; - sha256 = "dcc1534adf144deda44a116c6e40eb8bd16c76c4a44d949682e84720dfaaf44a"; + sha256 = "128f0383cf791c86c1079d9db4ad0b75b707f1cd198a8915720c937195a1b76a"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/si/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/si/firefox-152.0.3.tar.xz"; locale = "si"; arch = "linux-aarch64"; - sha256 = "eeaf7915668d0f743601dd560d129b971b793b4126e2dcdb48e1bcac4ef5512f"; + sha256 = "3735d2dd9bb1b5f352989e358a3984cbe63a152f43663c7e3061c1633f017868"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/sk/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/sk/firefox-152.0.3.tar.xz"; locale = "sk"; arch = "linux-aarch64"; - sha256 = "69bedc57242c3e10d3bd7ba471d9bf3a8839afa0217533f4d24385e3bbf28e70"; + sha256 = "37fe9a258a1b55ac51109ca84114864c22895a93adec6027f9864f1b0a2ff51b"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/skr/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/skr/firefox-152.0.3.tar.xz"; locale = "skr"; arch = "linux-aarch64"; - sha256 = "925a973ba003c7c27110109112d87faff407c6de18b1a3f9ee1c38777e3383a9"; + sha256 = "50448cba933771dcb662357d43f0c6268f6d101d574e5c4a3e8fea1b7aad7569"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/sl/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/sl/firefox-152.0.3.tar.xz"; locale = "sl"; arch = "linux-aarch64"; - sha256 = "14f615d0b72247e3fcae8e7a9b094156f29e13f7ed5a37c98a8eb0c0410fc304"; + sha256 = "290b488e89a63741d8d4302fc307efb61b069e916e110492f293479576aeb7b8"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/son/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/son/firefox-152.0.3.tar.xz"; locale = "son"; arch = "linux-aarch64"; - sha256 = "8cebabd61ebd41b922d55e564bca533e52e36dc774b6f3a623304da09b02271c"; + sha256 = "467a0309f308b778cada063c2ad25b945e14555030c66a61f746c5a5710a451c"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/sq/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/sq/firefox-152.0.3.tar.xz"; locale = "sq"; arch = "linux-aarch64"; - sha256 = "d0642a88cb13dea258f72d9cf21a5deb1e757392897edd0e0c17f20d392bc2eb"; + sha256 = "4a78d0115de20c68538d1f05d91b2d8f2899249cd135c226c0b369a3c28b8e34"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/sr/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/sr/firefox-152.0.3.tar.xz"; locale = "sr"; arch = "linux-aarch64"; - sha256 = "e9e4971bf250bcd04024af94813b6461e9b0948695b5925cfcd20feb8865940a"; + sha256 = "cae2b28d401f43eedad17ef254558a468925813f8adb2f6179af6979442a380e"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/sv-SE/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/sv-SE/firefox-152.0.3.tar.xz"; locale = "sv-SE"; arch = "linux-aarch64"; - sha256 = "9c8a8c4f9de99cb3bec879114a91c2c18be05c1934736d8f5f6c3fbfbdb68fea"; + sha256 = "d0d1e397ee3fa5ec81b698820b63db7cf8cc2834acb6bbd062bf88847b8670b0"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/szl/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/szl/firefox-152.0.3.tar.xz"; locale = "szl"; arch = "linux-aarch64"; - sha256 = "73fdf71b78c86dd02b4b54e822d480a370c8e20567c11b200140ef37657fa7e1"; + sha256 = "3effaa5e026f1a5c290c5b840bf95155917ae1b25483cdf7f0d7136eb74674b3"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/ta/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/ta/firefox-152.0.3.tar.xz"; locale = "ta"; arch = "linux-aarch64"; - sha256 = "42facbb58cc856b36341533cffb471394c902cb0f6a7b181399405ce7a61935f"; + sha256 = "c51fe6f1a3d781aba27fc6f41cb95530106553e0e7c028375b198ed4ef0f9b83"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/te/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/te/firefox-152.0.3.tar.xz"; locale = "te"; arch = "linux-aarch64"; - sha256 = "68a9dc0e643e6dc6ae0ea15df69b9abf32bbc3afa6aacd8852a46cabe885c001"; + sha256 = "baf23af9ab6e1709ec40a0ce278c70c2041e096c60080cf21444a0c87dc1c153"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/tg/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/tg/firefox-152.0.3.tar.xz"; locale = "tg"; arch = "linux-aarch64"; - sha256 = "0177df70aee73b5bda5d2533facaeb85a1596ea2f81751c25149ede4889f57e2"; + sha256 = "c553c2e42f703effc9fbdfd33cad76b8521f1a3ea9d4be00511c39e888b43ec5"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/th/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/th/firefox-152.0.3.tar.xz"; locale = "th"; arch = "linux-aarch64"; - sha256 = "899f99f42d172bef1bda0ff68cf4625f3ed9b6c017d3eff95be3674f67fe79e2"; + sha256 = "3467122af66438a636c81af3ab9f3c5010dd61e0df75d9ea33a991f9f5230ff8"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/tl/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/tl/firefox-152.0.3.tar.xz"; locale = "tl"; arch = "linux-aarch64"; - sha256 = "62584a40e8d95a8e45a9970cf9aad7ef27f8fa76995e1a9deb39e0b132b13fd7"; + sha256 = "ba8c5cbe6011198616560e813ab76ab68b2a6700126b571601b790454a323fee"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/tr/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/tr/firefox-152.0.3.tar.xz"; locale = "tr"; arch = "linux-aarch64"; - sha256 = "dfdcbebabaaf2c57dc57ae2b2f0d9df152d96a1bb941d90a245e042e72fe1092"; + sha256 = "2779f1d3a5462c76cd899c1c75b7d3213017cff0dd1d7df892558bece308054d"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/trs/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/trs/firefox-152.0.3.tar.xz"; locale = "trs"; arch = "linux-aarch64"; - sha256 = "db01a8095380a45285dcd3b029985928a66395867dd887616131ddf63eb2eeee"; + sha256 = "6522d1dbaa4c3bec5606d5842d00e0ddd16e03abb2bb887eaa51b3337c7f9a2f"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/uk/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/uk/firefox-152.0.3.tar.xz"; locale = "uk"; arch = "linux-aarch64"; - sha256 = "6c99a23e765acb0f9ed5f7c0a2f29b1004361405f871a2c206499e2dc2f42834"; + sha256 = "d3a7ce13e69670befd2c7af93b670a907e1ec904f37f4eadac6a2c9bc1dfb391"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/ur/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/ur/firefox-152.0.3.tar.xz"; locale = "ur"; arch = "linux-aarch64"; - sha256 = "bb4bcd95fb1d91d3481a1f5c202ec3db5c6d097f11e322db00e6e582921f6d69"; + sha256 = "84a178f77fc81dda7914b25cf25d019649099640b9dcf1323f4a22a2a1b39ce9"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/uz/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/uz/firefox-152.0.3.tar.xz"; locale = "uz"; arch = "linux-aarch64"; - sha256 = "bca412e94ee7efceb4cd05df9acb6e6bec873d1ef76126ba62bfcc5ad41ffaa3"; + sha256 = "4686ce29647b174dc30e1d7075879049d07fe79c314f91f8e7fc78886e331cce"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/vi/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/vi/firefox-152.0.3.tar.xz"; locale = "vi"; arch = "linux-aarch64"; - sha256 = "99ed16690e4db79a478a18fc3705d83048b4839ec26d3ade27fb34eb46f2c13a"; + sha256 = "c89b30839c9a3f437fad38d97f571d46e052723bbb5993fb05da8dfdef388ceb"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/xh/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/xh/firefox-152.0.3.tar.xz"; locale = "xh"; arch = "linux-aarch64"; - sha256 = "58da125810cfe24eb4a8315d24f7693e9cf0d2cdf453006e977cfbf64b6d7c04"; + sha256 = "009e82d305d271565ac041e7384c0af5c3709a6e32db6134920a68ffa2f5b680"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/zh-CN/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/zh-CN/firefox-152.0.3.tar.xz"; locale = "zh-CN"; arch = "linux-aarch64"; - sha256 = "f40d878cf5fee2ac175b14a17843e6738fcaa424a3ce49d54dc010d8f4287d60"; + sha256 = "3b94964f4d5371ccb4f75c2ccfd8c59038b748429d6ec7c471f452f32c5e23fb"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/linux-aarch64/zh-TW/firefox-152.0.2.tar.xz"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/linux-aarch64/zh-TW/firefox-152.0.3.tar.xz"; locale = "zh-TW"; arch = "linux-aarch64"; - sha256 = "e6c56325213c1d3a64c4f3cb4ef96ec8a18bf3e93667d835de5290118434b86a"; + sha256 = "008fe9fdf2957aed0c692c06f53824111f29175a4f4d8ba500dac7e6803c4aa1"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/ach/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/ach/Firefox%20152.0.3.dmg"; locale = "ach"; arch = "mac"; - sha256 = "25b75e89c674b187b073e759252c6500bd0f867016a4d91489f303a8915a2466"; + sha256 = "56e098e6f1a95089368e1ad00896b0c9e11e695f0185608f8ded9f46c1f278da"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/af/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/af/Firefox%20152.0.3.dmg"; locale = "af"; arch = "mac"; - sha256 = "76f046d34096207878714583f2888c3417f643322deff76b5ecb3d049e90bd0b"; + sha256 = "23152ce91fdba48bb15b2cecadc03dea237bb4275e61c1cb6660c4a83ea10e99"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/an/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/an/Firefox%20152.0.3.dmg"; locale = "an"; arch = "mac"; - sha256 = "a51db34ad8543327c1274bad29daad83ddc7c5a28e0fb1fb4baca146d6b56033"; + sha256 = "9daa6bb00b092664ebeaaa2aeaa80fa31953a7025d367aeffdf8e8d357e6ccda"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/ar/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/ar/Firefox%20152.0.3.dmg"; locale = "ar"; arch = "mac"; - sha256 = "94b6c21a407e65b59b3faf9bac8eae91094f19d362d549d416d0bbb0790e341e"; + sha256 = "4721440a9d859f772bf80bc0b2b5c26b87484a2e48ae50323a9fca9399e8ff8b"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/ast/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/ast/Firefox%20152.0.3.dmg"; locale = "ast"; arch = "mac"; - sha256 = "b306cb9306fac4a218835fe85407b0c3eb2ebbf9e8fdc64782184d1ff17e1bb6"; + sha256 = "d493242c367636f3be196ad9e52dcb10f78e8a43e5587e92530f28a706fc8636"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/az/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/az/Firefox%20152.0.3.dmg"; locale = "az"; arch = "mac"; - sha256 = "3bfd04995b5df66be1d872700c065c5a94dd8bae7db0005a389f02f6c1d74a01"; + sha256 = "872f046d6f49767af802fd17c1a545673e4e86c7384db8611b9c0a9562ae0480"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/be/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/be/Firefox%20152.0.3.dmg"; locale = "be"; arch = "mac"; - sha256 = "0d4ffaf6d5cd63628de4b686ef2bc6ae577bcf37a1f787d9d0d0f61bb83c58a4"; + sha256 = "8c9fe855a567e2e8958ab86701653b1fd39e4471393bb4a0787aa1402fc55472"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/bg/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/bg/Firefox%20152.0.3.dmg"; locale = "bg"; arch = "mac"; - sha256 = "29379238d2bf015dda7c97ac6e33d4ad4ddc6f78e4626a08cc3db0cd15ef701b"; + sha256 = "b20b46352f6c18e2fd7399b4e6e33ce182592efe413e267f77b1912b4baf1d6c"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/bn/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/bn/Firefox%20152.0.3.dmg"; locale = "bn"; arch = "mac"; - sha256 = "12fcfbba2b563de36d48b72a9b0b3144fe571a10f14a276aa958c56c39fea587"; + sha256 = "0c51feb6ebba666c4622b2f756a3bcd6d374fafdf3e51c28b35b70e6bf2d2861"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/br/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/br/Firefox%20152.0.3.dmg"; locale = "br"; arch = "mac"; - sha256 = "15ab3833f064afaf29974c84a20bc77e39369a65d33f89b2f70b34f536e9e2b7"; + sha256 = "62126b8cd33b5d10cff53e94abb08872584c94ba4f7f22911514194c3231a3dc"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/bs/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/bs/Firefox%20152.0.3.dmg"; locale = "bs"; arch = "mac"; - sha256 = "c64e05ae3af91e383a911edfeb5cfcdc84057324c3314ad21889bbe68be49a3f"; + sha256 = "9176283a301a9a18a93efbf769ca3198c728f787258577a1451e362461d06124"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/ca-valencia/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/ca-valencia/Firefox%20152.0.3.dmg"; locale = "ca-valencia"; arch = "mac"; - sha256 = "ae03faf5e7aa16bbe231945dbc19d6b97340d924fd2e42dae1f51426418ff6ed"; + sha256 = "fbc21b67fb99f8d82ac7409d1e0666b0c03d56d66504ccb1affe97dec93bb580"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/ca/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/ca/Firefox%20152.0.3.dmg"; locale = "ca"; arch = "mac"; - sha256 = "3908f65520ad76efb538583d1bc50a8a22e9a8a64b80daa59d477d8ea0673af4"; + sha256 = "085ba0e8008cd184eb74178c0add64c58c6ddfed150143dfa342d936b0257c55"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/cak/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/cak/Firefox%20152.0.3.dmg"; locale = "cak"; arch = "mac"; - sha256 = "1422f25b125c426eec034a3c94ef74df45f3685099e2653080c41b1acff80c63"; + sha256 = "88df4204c7a0760dd8a9c1d1b7415f3f82751c709910fd3c1acc38f5b27d3878"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/cs/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/cs/Firefox%20152.0.3.dmg"; locale = "cs"; arch = "mac"; - sha256 = "d19369079e99a03b6526ed3440d1b9b1549c993af7beb158c85f1a573f75b609"; + sha256 = "099c6d65f09c9ee55029742b5dae4df060b34b5a6fb998bf2748e475da22559c"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/cy/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/cy/Firefox%20152.0.3.dmg"; locale = "cy"; arch = "mac"; - sha256 = "d56976d13763b5cf1b0efd43e5f4d3fe52726d665285b37c1cb6a5b5a72b4840"; + sha256 = "12356e1388364b2e0b2f63d66c3a39b736fe867384f4fb4ac74acc3552193b3d"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/da/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/da/Firefox%20152.0.3.dmg"; locale = "da"; arch = "mac"; - sha256 = "c5409e5aae65fc032c7a9ae515812ad76c584f26f95050434778d902414bfe03"; + sha256 = "8d78984c5b36b8c5e5a5054b07f6c7eea828948b249dc51a3df0f68c910971bb"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/de/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/de/Firefox%20152.0.3.dmg"; locale = "de"; arch = "mac"; - sha256 = "cf22599b7552585f40634b3dec726f5b17ac593209ed9957c7feb9892ba29a0c"; + sha256 = "d2f010fb5d50aa7ae2b92034214be832e15f6a430a4c949907f76d6fd341d47e"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/dsb/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/dsb/Firefox%20152.0.3.dmg"; locale = "dsb"; arch = "mac"; - sha256 = "b948d12079b9b91f138d2fcbaf0ba6bf68c13f1e82640c46ef327f033cb59f17"; + sha256 = "b923537e3cbc7a6dab9388fe25545803abd27b7572553a32ff54c4dc4a55cdcd"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/el/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/el/Firefox%20152.0.3.dmg"; locale = "el"; arch = "mac"; - sha256 = "803cec07edf0245dc512eeb1bce3078f8b4d6f998214fc3ded32d9bb4955713d"; + sha256 = "325bfad9d557f26db0e0012703401d3a591dc12e035e609b694af92ca85da47d"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/en-CA/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/en-CA/Firefox%20152.0.3.dmg"; locale = "en-CA"; arch = "mac"; - sha256 = "8a65e5f1acedfcfc7066e4bce540ce7b95514602109f6a9e3b3c71e000e701d4"; + sha256 = "113e61b47987cef552ef1dd479f22780acc59aa487d5f7826965ed520dead397"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/en-GB/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/en-GB/Firefox%20152.0.3.dmg"; locale = "en-GB"; arch = "mac"; - sha256 = "9939895e51ab1386cdcb88d374ef118d08dbf03624a92e758aba5d33db6954f9"; + sha256 = "2c87e6ce3d8c7438dc9f84181e73b62d69aed26dfdbe436bbb2803346de048e9"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/en-US/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/en-US/Firefox%20152.0.3.dmg"; locale = "en-US"; arch = "mac"; - sha256 = "36820598ede2790d59fc18dae96d0b6f7982106f125cdf5e1799ee75e1fb5278"; + sha256 = "5341a832935516be4f164d15021fb5a872668d6ebeddcdf35ae09ca599e717f0"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/eo/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/eo/Firefox%20152.0.3.dmg"; locale = "eo"; arch = "mac"; - sha256 = "a433c6b217df1c89303768f6991f88d0e7a33d27099b6394417e6534d4dbaf71"; + sha256 = "6b07b8ece001c69a58d12d7bf38e4e892965db03fdd05308fdc059a2b0618e7a"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/es-AR/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/es-AR/Firefox%20152.0.3.dmg"; locale = "es-AR"; arch = "mac"; - sha256 = "8816da179dacca059d09e3d0a12c1256336c1aa8fad4c981ee9e994791119e48"; + sha256 = "899447c9908716ce0e6c716195d7b34de1293bfd052821f531385028b8773059"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/es-CL/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/es-CL/Firefox%20152.0.3.dmg"; locale = "es-CL"; arch = "mac"; - sha256 = "cc39476078010bb514794a1060e7e81a90652a9cf6b9943481d13e386e044288"; + sha256 = "b5250c63a70e077fb7278d186efc02f195b48b6910a5ad251a4e26c52ca24f50"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/es-ES/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/es-ES/Firefox%20152.0.3.dmg"; locale = "es-ES"; arch = "mac"; - sha256 = "3490df393561475052f0032612dfe227d762f28bbcffcba1d70a363630e87e6c"; + sha256 = "719021784f7753f87b3f42c9df527bfc77844bbe06a2c60f7a0a194dd4ae1583"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/es-MX/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/es-MX/Firefox%20152.0.3.dmg"; locale = "es-MX"; arch = "mac"; - sha256 = "a3cda79274c98f616085b37f492eb276d1ec67d8f585491847a9005244fc1cb4"; + sha256 = "1da83f02fd636318c66b547ff3a71e490471e28e85189689e1958a36b0741ca1"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/et/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/et/Firefox%20152.0.3.dmg"; locale = "et"; arch = "mac"; - sha256 = "fe99491f8d84253fb21317bc6fa8704a65436b3b55c6aee5619b2eeffbbf4fb0"; + sha256 = "e81541f991778f958426f3806440755f62753fd3fa0ff52f07ef1213548f6134"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/eu/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/eu/Firefox%20152.0.3.dmg"; locale = "eu"; arch = "mac"; - sha256 = "26e81e36b7ba6f749455019abc25fb8149a3ebfc4f4fa3931ef2ecb8912a3726"; + sha256 = "66502a87d540dc41f425e6f0b983455a2b3605599568939df14a60c01faeae5d"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/fa/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/fa/Firefox%20152.0.3.dmg"; locale = "fa"; arch = "mac"; - sha256 = "036c2228738066bde713dc3c77e759dd648e7aec5ab1ddab583ba6b8465d67ea"; + sha256 = "8a55f5bd1c76c35ce2e884522c644f5b89e7d4d8d9c4c25767b9cd6d53524341"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/ff/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/ff/Firefox%20152.0.3.dmg"; locale = "ff"; arch = "mac"; - sha256 = "96051c1be44d8cfb1ea258986c7c27c14c02d87c55fb1ca89449c53cdafd9290"; + sha256 = "f9e364327710adab6ba74f77b35f6e49a1179d5a1cc1177fde363d8751089c7d"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/fi/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/fi/Firefox%20152.0.3.dmg"; locale = "fi"; arch = "mac"; - sha256 = "92f5df05051ad55d4d35a47a5cfecba34b6c6dd64399717b9d89dbe9c865758d"; + sha256 = "a45979e4c884fcc48f21510398f5bda49046acf889020fe2d55b475e376ac649"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/fr/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/fr/Firefox%20152.0.3.dmg"; locale = "fr"; arch = "mac"; - sha256 = "505806765749b5f3e406d3e6dd638d2d9348ad5e4032ae8e490e962a2715748a"; + sha256 = "1b1bcd3a2f48ef7d3828af4044f5876a6489ca0446e43b69a48d7cb756fcc2a2"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/fur/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/fur/Firefox%20152.0.3.dmg"; locale = "fur"; arch = "mac"; - sha256 = "08b9e572c56bfc1df0f39ca0fcf34bc256c95ce804d68b0ee097d7a4403815b9"; + sha256 = "cffe7ba1bb32cab2327151a67b09402d5c9d4c5d08bec2c45b220d3be9fd9a29"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/fy-NL/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/fy-NL/Firefox%20152.0.3.dmg"; locale = "fy-NL"; arch = "mac"; - sha256 = "4113dec413ced2e35b1d181a7e30e1722c73df27b948fbfd7f16354878f848b6"; + sha256 = "650ac1d1738390b660129fc0497eb82eb45ceee73f2d5e7d2582177f8dc9a265"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/ga-IE/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/ga-IE/Firefox%20152.0.3.dmg"; locale = "ga-IE"; arch = "mac"; - sha256 = "1d4d496f871df8d4bd59b067f78d0a97ac3d2f523c2b003cd4ecec0e293934e7"; + sha256 = "98a6c609523e9a585e9c68dc7d5d37afcc524ae4184b7925f800621e6daf07e0"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/gd/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/gd/Firefox%20152.0.3.dmg"; locale = "gd"; arch = "mac"; - sha256 = "588aafbcb3d66a6e5df935083bcf40b65c988420bee79f9a853bbd88a666bf96"; + sha256 = "1c21406d717906b3173175a365137be96db514db65f7b25369868dd34fd634ce"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/gl/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/gl/Firefox%20152.0.3.dmg"; locale = "gl"; arch = "mac"; - sha256 = "521b1a4dc036a0eb95b62be7d65b4527900863f9b259b508e7df57053d676ca0"; + sha256 = "8295beda14ec76cbd3e78437686957388ad626391158b7e47db2c8169c43ab8c"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/gn/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/gn/Firefox%20152.0.3.dmg"; locale = "gn"; arch = "mac"; - sha256 = "709af50b5a6b54779fa6aaa60ebb7176e545361468180ecbc87e8c15c29069c2"; + sha256 = "c861c2f4408bf06b4ac8abed2a6c6fbd906970d29ab8410d1821df9e9ff3cf59"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/gu-IN/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/gu-IN/Firefox%20152.0.3.dmg"; locale = "gu-IN"; arch = "mac"; - sha256 = "9b3611438b708ea8f1904b3a43d88f6aff9c2bcd64837f4574fe3bd0b718651e"; + sha256 = "f9c5d73606231610ef4f5630bb3a83f871394881d459ca2b5d200485839e24fa"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/he/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/he/Firefox%20152.0.3.dmg"; locale = "he"; arch = "mac"; - sha256 = "a1c1e36863b57b9cf99044969c9765326a4087e2c2b2982a21725c8eb207821f"; + sha256 = "8f353721bed93303a951a113476921289d238ac5724dce2dfb86608676ec2d48"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/hi-IN/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/hi-IN/Firefox%20152.0.3.dmg"; locale = "hi-IN"; arch = "mac"; - sha256 = "68c1517ed942a8cdce43601e783953300358d224886c0ad33f6fd53096ae78c6"; + sha256 = "ae170b0077e3020b9bfd3f33e7ac1a281c6a1d197a2c408a9996efe40aca12eb"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/hr/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/hr/Firefox%20152.0.3.dmg"; locale = "hr"; arch = "mac"; - sha256 = "4ab1acb844edb48eae97978aa75b39347e9136cea7cbacb34b0df75b8378e447"; + sha256 = "b9abfa043fc9ac59794b26d3b765f732817381d036c4a81746e95e27d444629e"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/hsb/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/hsb/Firefox%20152.0.3.dmg"; locale = "hsb"; arch = "mac"; - sha256 = "ebfafb6a67c03d869d9c2025fb4728a51893e7e952ecbe66d03d5049c934c610"; + sha256 = "d563c8f0c1ad4e27d9f7688ed04953030511907ba104fed2c4b23b8bf66959dd"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/hu/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/hu/Firefox%20152.0.3.dmg"; locale = "hu"; arch = "mac"; - sha256 = "ef3dd19b2d687c12ccb92d4edd1f2e34e30313b83d598f94f162d8073dab6605"; + sha256 = "173bce30d8014bf45ac8b44e4c71d936a3ae45b0fe7d9abfc82cd38927fd3cf9"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/hy-AM/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/hy-AM/Firefox%20152.0.3.dmg"; locale = "hy-AM"; arch = "mac"; - sha256 = "d565acae0b749e43b40b472b2c97645dc11d69986ae5e67b79babff0e2ffec15"; + sha256 = "9fb8e046b0ea8698d992423e62e605d54d200b3a1a93d791ee7384ae2013249d"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/ia/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/ia/Firefox%20152.0.3.dmg"; locale = "ia"; arch = "mac"; - sha256 = "cc88181a1e4d81441dd90e478201a0d47005dd19038c4bb0af9b71036148abc1"; + sha256 = "a71fc20e114102e4b6c09cf8058c891b77ff73a5cac37aa1e119b20e7790eb01"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/id/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/id/Firefox%20152.0.3.dmg"; locale = "id"; arch = "mac"; - sha256 = "7fd3731658746c0b62b5231ebed36953b53f06a675ec88e95e3b7036f6954d40"; + sha256 = "dc936024f81e5d167dd8d6a8962b6aa05b264141828d9c6099454b0e640a6b48"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/is/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/is/Firefox%20152.0.3.dmg"; locale = "is"; arch = "mac"; - sha256 = "56568eb5c3cdc49ade0773e90c7061abdc8e1c84874a050b42fa8f0e8839ee8b"; + sha256 = "2f1395fa6d2627f8859c587f6aebfa240d481d29106422fa906f8f985f5d3f18"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/it/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/it/Firefox%20152.0.3.dmg"; locale = "it"; arch = "mac"; - sha256 = "f42958437df8d1c31d7ab1c47656a4a5ae46ed3eb1259b5d9cb1d90a3d9650cc"; + sha256 = "da0e88794064f5edd1696d9eac2774d30c4f15c55f15171a9ed8aac3a5d2c243"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/ja-JP-mac/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/ja-JP-mac/Firefox%20152.0.3.dmg"; locale = "ja-JP-mac"; arch = "mac"; - sha256 = "14f00d5c5b3cff8713bce6b13add03010848cfa1fb2c252ca7270dc58ef3c11f"; + sha256 = "15ea1abe0a0ca6f540ccb852e44a4a4be06f62192b1d8162d4763c15af1328d0"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/ka/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/ka/Firefox%20152.0.3.dmg"; locale = "ka"; arch = "mac"; - sha256 = "da528db0bf6ef541c09d9ed408a7a9501a92516c122c4f18a5c0316ae4cc0376"; + sha256 = "9f855e6f9f54ac09f1f57cf4788e4053f5879b675c329df00b37508345efe8cd"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/kab/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/kab/Firefox%20152.0.3.dmg"; locale = "kab"; arch = "mac"; - sha256 = "6ad92c556c1cc040fb3da23a71c532ea9c67dbcfb6f5ae0c03a09d621404e8af"; + sha256 = "f8b9c6ba80256a95fc8cfd81ef6da472bb5ecea3193347a282d6dd3ce3013126"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/kk/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/kk/Firefox%20152.0.3.dmg"; locale = "kk"; arch = "mac"; - sha256 = "332c0b8292c8b13bfa53dd1471849be1b8de3ae18e884ce8c37805814a6659d6"; + sha256 = "406395a18ccc1f4e95b7fffe51ecde04d3ac6b09f1cc11309ffb8d0fc442d8bc"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/km/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/km/Firefox%20152.0.3.dmg"; locale = "km"; arch = "mac"; - sha256 = "310d21c96e3b17d88fbc403b148683f9fd25747352ba4103e95b267d2e57926a"; + sha256 = "f2b89c144475df1021e9cb80b46c82646922ac19180a2fdd91070391628ff38b"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/kn/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/kn/Firefox%20152.0.3.dmg"; locale = "kn"; arch = "mac"; - sha256 = "678f0cdbb5781d33eb55d8fdd969b5a1589c7bb6b2e04c7fda2f958f83a50409"; + sha256 = "66c5c2dbd004dc3bc25a2c2bc2b8988cfd32182972e5c6a569a25f3adbcfa64e"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/ko/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/ko/Firefox%20152.0.3.dmg"; locale = "ko"; arch = "mac"; - sha256 = "6e94adbca4f6643c2def8faa58ad5a3f485d5de640543aa844c3cf057c369fe7"; + sha256 = "c02b47b4bf791420287da2211ada388149b8870e63a8b8cde92964a2ac9e988f"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/lij/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/lij/Firefox%20152.0.3.dmg"; locale = "lij"; arch = "mac"; - sha256 = "6aacd78eaa0d46607425aec33a1b14a60a7bf8fdc194779da34bffccaede20cd"; + sha256 = "c8042f8a105bde79de27fca32e5a2de038eff8a4e1af55af18d133cbffb3802f"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/lt/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/lt/Firefox%20152.0.3.dmg"; locale = "lt"; arch = "mac"; - sha256 = "539f11dd45d0bc4a274ca364fd105108efbc90fc3578ca8f948aee9dc3f49779"; + sha256 = "e1a1c879195aabd441eb3676b756046a20d5d61b4c084f578351b4710ff110c9"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/lv/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/lv/Firefox%20152.0.3.dmg"; locale = "lv"; arch = "mac"; - sha256 = "68894d25745934b8a48a5b631c3d21c5a4af489a7806556c2f917fd677a31e88"; + sha256 = "2c2c51004997329ea282387037012bb69b5e6275078e84ca3c5a955d762ab7d6"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/mk/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/mk/Firefox%20152.0.3.dmg"; locale = "mk"; arch = "mac"; - sha256 = "f83b2672e04015b46e083f97f34701e2e73caf2f146485a9545de13a26418cae"; + sha256 = "b2e18b5df0fee6d86e6681a00006ebc382a707a54f0a460e6b817a8496673057"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/mr/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/mr/Firefox%20152.0.3.dmg"; locale = "mr"; arch = "mac"; - sha256 = "3a674a5565dd499be1e4bbe875673b47503fc5d0e654a1a50e4817fa998880bc"; + sha256 = "909c1f00b06d62dfad76d2c00172a236b1628008b2f84b205f4dd7e022893a67"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/ms/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/ms/Firefox%20152.0.3.dmg"; locale = "ms"; arch = "mac"; - sha256 = "c4fa9f93268bedf17b982b6814315e4e953724737dfd9d83314bd89f9ff51be7"; + sha256 = "83bb76c5f16396d703ee77cfcfca2dbca4ddd06cca5c4985a9502a4527cd1c35"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/my/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/my/Firefox%20152.0.3.dmg"; locale = "my"; arch = "mac"; - sha256 = "49a665f2e1565100357e22c62ce583f54791ee04859f7428d481780416d7b4ed"; + sha256 = "776fab192d037f4564cc036c6a599447e1ad12632f1bd2a8bac5f2ae4d9fa463"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/nb-NO/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/nb-NO/Firefox%20152.0.3.dmg"; locale = "nb-NO"; arch = "mac"; - sha256 = "8f2f2488fe16959cd88ac5765aa487a3f1756d3c3b9ff2c8fac6202b5439571f"; + sha256 = "59df6f7578eae04ae0077643fd2066a54e42245b5827c418dc45ccf454de52f7"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/ne-NP/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/ne-NP/Firefox%20152.0.3.dmg"; locale = "ne-NP"; arch = "mac"; - sha256 = "726de3cfc963d320b1d8ea957d077561b46e18fe7411a02271404083bc9b41a0"; + sha256 = "2d128ac3d1a8e2e608de3c166a109c075996b2114735d9760dbd132d0a22ff56"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/nl/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/nl/Firefox%20152.0.3.dmg"; locale = "nl"; arch = "mac"; - sha256 = "4691e6133f6c1341371df8a91fdb9193cde3d75e241832c37fa42853f67f9600"; + sha256 = "87f2d3ae87b3b13d2c7cd37b14048be8f6bdf747a210a36e7d63a3192fe661d4"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/nn-NO/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/nn-NO/Firefox%20152.0.3.dmg"; locale = "nn-NO"; arch = "mac"; - sha256 = "f4bf0ab27fc4ccd652710fe273bd0347bb426549b6162579c826f2de0cb31f92"; + sha256 = "8bd33e549a72fbf1ab189a4921ffd790077b684acedd2872d13f10e5a27faa82"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/oc/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/oc/Firefox%20152.0.3.dmg"; locale = "oc"; arch = "mac"; - sha256 = "83bbcc75583b17d0baae1524d0f83303a81af56838544921f4629471e2e11c7f"; + sha256 = "f4a3096cb351fe238329f2a07d55d1bccc813cb0a794b6ea9fe9f7cf0538cbb0"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/pa-IN/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/pa-IN/Firefox%20152.0.3.dmg"; locale = "pa-IN"; arch = "mac"; - sha256 = "da152fb643d7a84947b2582bf3855dc5ea85c9663a11c932b655a1afaadf27ba"; + sha256 = "c41616b34b897138a3c70f5a10549dfbdd35125501e4b643035a244f95ec901c"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/pl/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/pl/Firefox%20152.0.3.dmg"; locale = "pl"; arch = "mac"; - sha256 = "57423a7e88800d1502fd105fe16befa63f47324457968357af8e0cf7e01d758b"; + sha256 = "50d3c129c7239c7ff733cc38956fd349344a382af1d782e69d2fcd8300d48f98"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/pt-BR/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/pt-BR/Firefox%20152.0.3.dmg"; locale = "pt-BR"; arch = "mac"; - sha256 = "c7f075ab3effbc643b5895fd72eb2bfb182944b9c98185e3190246fd92cdd474"; + sha256 = "9be9d1e87e1bbd4f1554fdbe21d68f7e691357d3d9b90d5894317bae6edb73d8"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/pt-PT/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/pt-PT/Firefox%20152.0.3.dmg"; locale = "pt-PT"; arch = "mac"; - sha256 = "f09ecd540fd256b2f7beea71384c0353a8f047209ddfdc6691098b0dfdcf9367"; + sha256 = "b8af0b01ef1f899351344653cb4316807ddc62d76d47aee545b6b6133bd8f1aa"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/rm/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/rm/Firefox%20152.0.3.dmg"; locale = "rm"; arch = "mac"; - sha256 = "8debcec0fc1cb5c0a8fd9f8d5a6b10f99b44d1b7466e04991dbfe3a229f81e6f"; + sha256 = "846fd3755bb960ffef44a255bedb98cd10f9899acc7a38f04b0d9fd8d927d33f"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/ro/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/ro/Firefox%20152.0.3.dmg"; locale = "ro"; arch = "mac"; - sha256 = "62e1f2f0b812ac67aa2645a52f9ca12d22e79c6da6ec8da6142319b4fa816817"; + sha256 = "cae157331cedc9dd76c6a6d326485a281b692090d06145845e2c8e548298a71d"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/ru/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/ru/Firefox%20152.0.3.dmg"; locale = "ru"; arch = "mac"; - sha256 = "068027da9c21c6b8f219a6e3ee4cd70df11b1f284230cc9b126ba5fe79f504ad"; + sha256 = "ff954bbda9803fbac3b83e7a57e43c81856ca3a6658ee94198c6df120646ec93"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/sat/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/sat/Firefox%20152.0.3.dmg"; locale = "sat"; arch = "mac"; - sha256 = "8631fe42002950bbba8e1490e5208d32e159202420eada739a61494bf5bc5622"; + sha256 = "c14145fb2a25ccd186a155b400f8caf590e60e52d55d81c61717dd81e84f5623"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/sc/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/sc/Firefox%20152.0.3.dmg"; locale = "sc"; arch = "mac"; - sha256 = "6f7ca0b356cf6c7c13e2a0fe985eb4c2d73b6870b6d20f023a1f5d136d3e08b7"; + sha256 = "57a305d7c549625ceec4300ca2b929867173f4b65e4fc2c23e9164729e02c96f"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/sco/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/sco/Firefox%20152.0.3.dmg"; locale = "sco"; arch = "mac"; - sha256 = "142a174ec700972d6b33672d745747f6e2c0db68c0a0799a8ade454c7707d03e"; + sha256 = "506284324e3d4ac7f6d60311b084304cefe6acae32faff596e3ebd50fff4e7de"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/si/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/si/Firefox%20152.0.3.dmg"; locale = "si"; arch = "mac"; - sha256 = "c46f6fd548da754a3e5f53888dd50cf09b907d226ba7fbbbece6884112f8fa21"; + sha256 = "d8ed62cdd1b34d69347f9a5325dca1eba5a8ffd41be0ce38b0ba15e72a280b2e"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/sk/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/sk/Firefox%20152.0.3.dmg"; locale = "sk"; arch = "mac"; - sha256 = "3ac79d8489b796905e3fa94371465a1a7e21025b65bbc205c94e59036537f04b"; + sha256 = "54f9e421cb6f690631be680f0533b596ff05889643f408672574a654cd2183d3"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/skr/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/skr/Firefox%20152.0.3.dmg"; locale = "skr"; arch = "mac"; - sha256 = "b9787befc258c9641d7911ebf3f666f725d4b9219a6a911c5264422f58bba9b9"; + sha256 = "ae889d492f263855b1f77dfd1bf807097e2ec445e51922b9826177a69d7ca0ff"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/sl/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/sl/Firefox%20152.0.3.dmg"; locale = "sl"; arch = "mac"; - sha256 = "9060b3e1094d666ea65ab92ed27c5d40cf71dce85b5bf004cf3a29a9f792ed57"; + sha256 = "9861a142af8cd83463f1a455fcc5c605f1c19ec44f29d2afb53b36003e9d4373"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/son/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/son/Firefox%20152.0.3.dmg"; locale = "son"; arch = "mac"; - sha256 = "b5e35e41dae8261a280f2cd72331554b49e1f46778f563a612f439a8e39bffc1"; + sha256 = "ed0e40e61416958eb526b3cb82d999494755a4dbfd05d051480357838f4da52c"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/sq/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/sq/Firefox%20152.0.3.dmg"; locale = "sq"; arch = "mac"; - sha256 = "35d34ac0f451a7616e0f0030b645a3b2b5b60988056f60c44cd33c1be78ad7ff"; + sha256 = "849de0be8353f0269e065c658a19389af6c211581d6924dfc01d60a7c643b308"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/sr/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/sr/Firefox%20152.0.3.dmg"; locale = "sr"; arch = "mac"; - sha256 = "25f2cb28547fcf71a67fac72f57ccfbf421a6b3fad5d7941474b98037457394c"; + sha256 = "e25bc8a4f8d935d608fc06a095d1ddfcfc2e36fdd03f0046f2dd618803eb0391"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/sv-SE/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/sv-SE/Firefox%20152.0.3.dmg"; locale = "sv-SE"; arch = "mac"; - sha256 = "2d0db0a66fff3e67a57641bf46a4711da88140f707c75035ca337a74e6a11d9d"; + sha256 = "0d179ffa5fc5e68af17268c43380a92a0d7cae07932e8ec978ec56130a7b01bc"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/szl/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/szl/Firefox%20152.0.3.dmg"; locale = "szl"; arch = "mac"; - sha256 = "3024f7623dd5bc497b70625be61a10c2956824381ecd9cdef568e679113ce3b9"; + sha256 = "864a8b1781004ac332c2abd3abd66697a70d35b991d8ddf9fcf23774600aa131"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/ta/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/ta/Firefox%20152.0.3.dmg"; locale = "ta"; arch = "mac"; - sha256 = "ecfdc726ece186082c4738e7aff8d04b95fb582fcf63d29734e446a6eb7fb26e"; + sha256 = "c8fa4ad2fd6bc7c5aaac809abf5e74500ee1edcdb4d0a9a7828ae381dc9d6a4f"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/te/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/te/Firefox%20152.0.3.dmg"; locale = "te"; arch = "mac"; - sha256 = "8f3e831dabe8473ba71f795b832d285b41045bd8e3402b4815ace061048bf055"; + sha256 = "7434605d0651b7e90c21ad17ea5f9e591eb10ed15206301f167cd01fc0402888"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/tg/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/tg/Firefox%20152.0.3.dmg"; locale = "tg"; arch = "mac"; - sha256 = "6da4f9fed9c08250c5e94d605f07e8f7607d6a5bc9c436b8e94e39ee653e97fa"; + sha256 = "ece206eca9561cabca7af2ef1f57aaea53a81197d7eba3c25e44eeeaddf5a5fb"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/th/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/th/Firefox%20152.0.3.dmg"; locale = "th"; arch = "mac"; - sha256 = "164a4aabe806408c47b45c40b20aa9c3918e4411d5d1570906cf1858b07d0a02"; + sha256 = "2763d9ac85482247665263e2ec2915128ae5fc6bc9b797f988a0bfd312babc31"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/tl/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/tl/Firefox%20152.0.3.dmg"; locale = "tl"; arch = "mac"; - sha256 = "d76191543e98bd87fe9fb9d773bffe7971d0279e7ab600349638af445ffa5e91"; + sha256 = "8fab1df1ce997cb747b2edc3662c7497396303e0fe29d9be99e0d2cdd40d55c5"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/tr/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/tr/Firefox%20152.0.3.dmg"; locale = "tr"; arch = "mac"; - sha256 = "5236c45e0e059c5d60cd82ec7b8b3dae7fc37417d9d890da20d309ded71a4d15"; + sha256 = "b05b12f725fc6bee4cec4e8d0e53793e9824a08be4248aad2eb7ce4d4c0e10d6"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/trs/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/trs/Firefox%20152.0.3.dmg"; locale = "trs"; arch = "mac"; - sha256 = "5d3aebc24728bf3dde5f62a2b36014813b6cd831c92c89b29ea67f55f4da11ab"; + sha256 = "fa55a8d45db1bdf5a3e91fc11f53f8bc69073f71cac1b850069c5e7136fddf35"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/uk/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/uk/Firefox%20152.0.3.dmg"; locale = "uk"; arch = "mac"; - sha256 = "7f7f9a83bd19145b244960d43796d25b68edb1484108371c62bbf601ac3bd92e"; + sha256 = "edeb54bbaf8df52e61f43da11a651855aa191dd90e477283b603d257b1a7a823"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/ur/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/ur/Firefox%20152.0.3.dmg"; locale = "ur"; arch = "mac"; - sha256 = "b62f211834be70546f80fc31bc8228e784da8640ac14b02818788ec4dc58697e"; + sha256 = "3e8d6380106bc02b1fb753c0f26ae2bfb647fe1ad84ac128e871dc35c199d082"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/uz/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/uz/Firefox%20152.0.3.dmg"; locale = "uz"; arch = "mac"; - sha256 = "16653b5bd0d4e7952e9d3d3c79a77676e61ddb6f541e9fca971dfee7d84836e2"; + sha256 = "e7e2bb2ec038d7b9eeb159ead67c4f6c1245bd40d45155c53ce7429455305940"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/vi/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/vi/Firefox%20152.0.3.dmg"; locale = "vi"; arch = "mac"; - sha256 = "c1dd51da2d50f14bc679f9e5e14d5ba745bdf465c207c04efb97e6ae668270cd"; + sha256 = "03cd8fce121129dceb7a2b52acfda83149fdc39b402e24b6f571ad5ac027501d"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/xh/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/xh/Firefox%20152.0.3.dmg"; locale = "xh"; arch = "mac"; - sha256 = "ec3f0bb254f0767ef8a7a8ebfb89037fb388b3981a79be5da3e99ab47e3fca16"; + sha256 = "4ab591111007fec105de01b41084522c0ffe6fbfeb755dd79e861beeb02fc93f"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/zh-CN/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/zh-CN/Firefox%20152.0.3.dmg"; locale = "zh-CN"; arch = "mac"; - sha256 = "91d1ef13fcb1bbb791ef4e2dc1e878c19bc9ad3c6342eb2c65902d739de23041"; + sha256 = "cc920740d68bd70415c71b154b99b005235871a041a1824911d784785fbc2d9b"; } { - url = "https://archive.mozilla.org/pub/firefox/releases/152.0.2/mac/zh-TW/Firefox%20152.0.2.dmg"; + url = "https://archive.mozilla.org/pub/firefox/releases/152.0.3/mac/zh-TW/Firefox%20152.0.3.dmg"; locale = "zh-TW"; arch = "mac"; - sha256 = "d99e6b0cf6fe48fc83b4c9a772a490502d8308f6b8e01aadf5fb6852952f8881"; + sha256 = "e109ae5147f76ad02bb8ac7ff852d20650b2ff6e53a3c5b8ecf6979213566f92"; } ]; } diff --git a/pkgs/applications/networking/browsers/firefox/packages/firefox.nix b/pkgs/applications/networking/browsers/firefox/packages/firefox.nix index 31fe57eed8a0..fd608c187116 100644 --- a/pkgs/applications/networking/browsers/firefox/packages/firefox.nix +++ b/pkgs/applications/networking/browsers/firefox/packages/firefox.nix @@ -9,10 +9,10 @@ buildMozillaMach rec { pname = "firefox"; - version = "152.0.2"; + version = "152.0.3"; src = fetchurl { url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; - sha512 = "e4e54cffffcfd5751eac5817a7b74b0ef0aa43fc00ef29397cc9df9aa52572b2272b96e60373a70d712be4dc849170d8d5c1b449f3ea978b4ab28dee19056b03"; + sha512 = "f0b63f4a0d4bb0080761f1a7ecb949696b4f805a33fef322ceef3b59a492e1403ea4b8cfbc7f5d4b70cf5b3c5a66ddcc988654fa77fd3021b65f452ca190bf63"; }; meta = { diff --git a/pkgs/build-support/teleport/0001-fix-add-nix-path-to-exec-env-reexec.patch b/pkgs/build-support/teleport/0001-fix-add-nix-path-to-exec-env-reexec.patch new file mode 100644 index 000000000000..2ab25db3784a --- /dev/null +++ b/pkgs/build-support/teleport/0001-fix-add-nix-path-to-exec-env-reexec.patch @@ -0,0 +1,28 @@ +From e3651ca79c0edb66c04e0d3381f3b0b6f76d37d2 Mon Sep 17 00:00:00 2001 +From: 5aaee9 +Date: Thu, 24 Mar 2022 17:34:38 +0800 +Subject: [PATCH] fix: add nix path to exec env +# Adapted to new path starting from 18.8 + +--- + session/reexec/exec.go | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/session/reexec/exec.go b/session/reexec/exec.go +index 253fbafef..815a2e1e0 100644 +--- a/session/reexec/exec.go ++++ b/session/reexec/exec.go +@@ -30,8 +30,8 @@ import ( + ) + + const ( +- defaultPath = "/bin:/usr/bin:/usr/local/bin:/sbin" ++ defaultPath = "/run/wrappers/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:/bin:/usr/bin:/usr/local/bin:/sbin" + defaultEnvPath = "PATH=" + defaultPath +- defaultRootPath = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ++ defaultRootPath = "/run/wrappers/bin:/etc/profiles/per-user/root/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + defaultEnvRootPath = "PATH=" + defaultRootPath + defaultLoginDefsPath = "/etc/login.defs" +-- +2.32.0 (Apple Git-132) + diff --git a/pkgs/build-support/teleport/default.nix b/pkgs/build-support/teleport/default.nix index 025c4a149bdd..d696a6243627 100644 --- a/pkgs/build-support/teleport/default.nix +++ b/pkgs/build-support/teleport/default.nix @@ -157,10 +157,17 @@ buildGoModule (finalAttrs: { pkg-config ]; - patches = extPatches ++ [ - ./0001-fix-add-nix-path-to-exec-env.patch - ./rdpclient.patch - ]; + patches = + extPatches + ++ [ + ./rdpclient.patch + ] + ++ lib.optional (lib.versionOlder version "18.8.0") [ + ./0001-fix-add-nix-path-to-exec-env.patch + ] + ++ lib.optional (lib.versionAtLeast version "18.8.0") [ + ./0001-fix-add-nix-path-to-exec-env-reexec.patch + ]; # Reduce closure size for client machines outputs = [ diff --git a/pkgs/by-name/al/alcom/disable-updater-artifacts.patch b/pkgs/by-name/al/alcom/disable-updater-artifacts.patch deleted file mode 100644 index 17e739d312c6..000000000000 --- a/pkgs/by-name/al/alcom/disable-updater-artifacts.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/vrc-get-gui/Tauri.toml b/vrc-get-gui/Tauri.toml -index cd180da8..66a81aa9 100644 ---- a/vrc-get-gui/Tauri.toml -+++ b/vrc-get-gui/Tauri.toml -@@ -34,8 +34,6 @@ icon = [ - resources = [] - publisher = "anatawa12" - --createUpdaterArtifacts = "v1Compatible" # remove if ci # we do not generate updater artifacts in CI -- - [[bundle.fileAssociations]] - # note: for macOS we directory use info.plist for registering file association. - description = "ALCOM Project Template" diff --git a/pkgs/by-name/al/alcom/package.nix b/pkgs/by-name/al/alcom/package.nix index fb58e6d60d59..eccbad84748d 100644 --- a/pkgs/by-name/al/alcom/package.nix +++ b/pkgs/by-name/al/alcom/package.nix @@ -17,25 +17,18 @@ webkitgtk_4_1, }: let + subdir = "vrc-get-gui"; +in +rustPlatform.buildRustPackage (finalAttrs: { pname = "alcom"; - version = "1.1.5"; - + version = "1.1.6"; src = fetchFromGitHub { owner = "vrc-get"; repo = "vrc-get"; - tag = "gui-v${version}"; - hash = "sha256-xucU8nXskniHOiuwrtVoZM2FIKNKU45i4DNo6iLjZvM="; + tag = "gui-v${finalAttrs.version}"; + hash = "sha256-TpVHE3e3dMdBOtPVKomKvg5tQf42QWik18k5oVD2Hms="; }; - subdir = "vrc-get-gui"; -in -rustPlatform.buildRustPackage { - inherit pname version src; - - patches = [ - ./disable-updater-artifacts.patch - ]; - nativeBuildInputs = [ cargo-about cargo-tauri.hook @@ -55,13 +48,15 @@ rustPlatform.buildRustPackage { webkitgtk_4_1 ]; - cargoHash = "sha256-MeCx3BoEXckMZfecyBcwwVE8+6V9Di6ULkIhUvUFZIA="; + cargoHash = "sha256-J8vCr+B4J3ZqxkkNk+x0jr52qNJJYfBJe2oyLf0GLsc="; + buildFeatures = [ "no-self-updater" ]; buildAndTestSubdir = subdir; npmDeps = fetchNpmDeps { - inherit src; - sourceRoot = "${src.name}/${subdir}"; - hash = "sha256-snXOfAtanLPhQNo0mg/r8UUXJua2X+52t7+7QS1vOkI="; + name = "${finalAttrs.pname}-${finalAttrs.version}-npm-deps"; + inherit (finalAttrs) src; + sourceRoot = "${finalAttrs.src.name}/${subdir}"; + hash = "sha256-VyA2c2659Kg1DjLmmtvSAivltdraSBNArIu1XGENGmQ="; }; npmRoot = subdir; @@ -69,8 +64,11 @@ rustPlatform.buildRustPackage { description = "Experimental GUI application to manage VRChat Unity Projects"; homepage = "https://github.com/vrc-get/vrc-get"; license = lib.licenses.mit; - maintainers = with lib.maintainers; [ Scrumplex ]; + maintainers = with lib.maintainers; [ + Scrumplex + ImSapphire + ]; broken = stdenv.hostPlatform.isDarwin; mainProgram = "ALCOM"; }; -} +}) diff --git a/pkgs/by-name/as/asahi-audio/package.nix b/pkgs/by-name/as/asahi-audio/package.nix index edfe3364b1ba..c256a4221570 100644 --- a/pkgs/by-name/as/asahi-audio/package.nix +++ b/pkgs/by-name/as/asahi-audio/package.nix @@ -9,13 +9,13 @@ }: stdenvNoCC.mkDerivation (finalAttrs: { pname = "asahi-audio"; - version = "3.4"; + version = "4.0"; src = fetchFromGitHub { owner = "AsahiLinux"; repo = "asahi-audio"; tag = "v${finalAttrs.version}"; - hash = "sha256-7AuPkR/M1a4zB9+dJuOuv9uTp+kIqPlxVOXipsyGGz8="; + hash = "sha256-Tp+yL7SbzowYcCrfI7UU+5GeIJtyBMuE7KhcYmA1+hw="; }; makeFlags = [ diff --git a/pkgs/by-name/au/authelia/web.nix b/pkgs/by-name/au/authelia/web.nix index ca8a276e5e31..9aa80ab2b8da 100644 --- a/pkgs/by-name/au/authelia/web.nix +++ b/pkgs/by-name/au/authelia/web.nix @@ -62,4 +62,8 @@ stdenv.mkDerivation (finalAttrs: { runHook postInstall ''; + + # (node:24500) Warning: File descriptor 19 closed but not opened in unmanaged mode + # (node:24500) Warning: File descriptor 19 opened in unmanaged mode twice + meta.broken = stdenv.hostPlatform.isDarwin; }) diff --git a/pkgs/by-name/bu/buf/package.nix b/pkgs/by-name/bu/buf/package.nix index 9cf5f276fa98..7a67796b2288 100644 --- a/pkgs/by-name/bu/buf/package.nix +++ b/pkgs/by-name/bu/buf/package.nix @@ -10,16 +10,16 @@ buildGoModule (finalAttrs: { pname = "buf"; - version = "1.70.0"; + version = "1.71.0"; src = fetchFromGitHub { owner = "bufbuild"; repo = "buf"; tag = "v${finalAttrs.version}"; - hash = "sha256-C06/5a4icjgI35ADQKvlZ6JmCCyW/9e0aF9VIpLCqn0="; + hash = "sha256-GrGtJzZoyyEoIyqc8iItH7/LhXNEuTKbDl+gdB/5bHw="; }; - vendorHash = "sha256-Vveg7rBno66IPinVs9RJtzVJdtAJE55QZfWA3WIXGDQ="; + vendorHash = "sha256-8FJtJ/mHldia6t5yIPUfCvOlsKJSzT/vVcF+WxRO1Mo="; patches = [ # Skip a test that requires networking to be available to work. diff --git a/pkgs/by-name/cd/cdemu-daemon/package.nix b/pkgs/by-name/cd/cdemu-daemon/package.nix index f25748b01c85..95eb42f7e75c 100644 --- a/pkgs/by-name/cd/cdemu-daemon/package.nix +++ b/pkgs/by-name/cd/cdemu-daemon/package.nix @@ -14,11 +14,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "cdemu-daemon"; - version = "3.3.0"; + version = "3.3.1"; src = fetchurl { url = "mirror://sourceforge/cdemu/cdemu-daemon-${finalAttrs.version}.tar.xz"; - hash = "sha256-AYHjiOAQdu685gc6p0j2QNtCmTYTWix1kzWQZYvGPWU="; + hash = "sha256-rkhxivVGQ2lsCUQEXJupDenj74E3shQXExhTWysf+qo="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/em/empty-pdf/package.nix b/pkgs/by-name/em/empty-pdf/package.nix new file mode 100644 index 000000000000..55b13e079355 --- /dev/null +++ b/pkgs/by-name/em/empty-pdf/package.nix @@ -0,0 +1,41 @@ +{ + stdenvNoCC, + imagemagick, + lib, +}: + +stdenvNoCC.mkDerivation { + name = "empty-pdf"; + + __structuredAttrs = true; + strictDeps = true; + + dontUnpack = true; + + nativeBuildInputs = [ imagemagick ]; + + buildPhase = '' + runHook preBuild + + magick xc:none -page Letter empty.pdf + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mv empty.pdf $out + + runHook postInstall + ''; + + meta = { + description = "Empty PDF file intended for testing"; + maintainers = with lib.maintainers; [ + pandapip1 + thefossguy + ]; + platforms = imagemagick.meta.platforms; + }; +} diff --git a/pkgs/by-name/fo/forge-mtg/package.nix b/pkgs/by-name/fo/forge-mtg/package.nix index 245203dc7844..79bf41309d44 100644 --- a/pkgs/by-name/fo/forge-mtg/package.nix +++ b/pkgs/by-name/fo/forge-mtg/package.nix @@ -16,13 +16,13 @@ }: let - version = "2.0.12"; + version = "2.0.13"; src = fetchFromGitHub { owner = "Card-Forge"; repo = "forge"; rev = "forge-${version}"; - hash = "sha256-OwrjpK5aqEx5HCZqU+iLJtkUtmt5yGW1bHLrX1UYf3Q="; + hash = "sha256-BU2RkXE3oMVLlCqebQwidH/ZtHKrrD47PAQhMnF/8pU="; }; # launch4j downloads and runs a native binary during the package phase. diff --git a/pkgs/by-name/gi/gitaly/package.nix b/pkgs/by-name/gi/gitaly/package.nix index 7143fd093f77..ceb96f569302 100644 --- a/pkgs/by-name/gi/gitaly/package.nix +++ b/pkgs/by-name/gi/gitaly/package.nix @@ -7,7 +7,7 @@ }: let - version = "18.11.5"; + version = "18.11.6"; package_version = "v${lib.versions.major version}"; gitaly_package = "gitlab.com/gitlab-org/gitaly/${package_version}"; @@ -21,7 +21,7 @@ let owner = "gitlab-org"; repo = "gitaly"; rev = "v${version}"; - hash = "sha256-i2DgcNoGPR/B6qya+jYFU5noOSabSlwu9P7p5KwR6jI="; + hash = "sha256-fsr8ttV2q2iedTA5yn4iHry92Mgu775K1GW3JBz5N1U="; }; vendorHash = "sha256-/RJnCcmUoqGy08MSGEVM/taV1qZK65kiZw19n6S3ZQ0="; diff --git a/pkgs/by-name/gi/github-runner/deps.json b/pkgs/by-name/gi/github-runner/deps.json index d6dac8df3eaf..f11ad9e3f106 100644 --- a/pkgs/by-name/gi/github-runner/deps.json +++ b/pkgs/by-name/gi/github-runner/deps.json @@ -36,8 +36,8 @@ }, { "pname": "Microsoft.Bcl.Cryptography", - "version": "10.0.6", - "hash": "sha256-6VaDedxTljDNE+a4ao4xSG3rzZ6lbmCShtgMgHe9aH4=" + "version": "10.0.7", + "hash": "sha256-5hOu8j2jLhCj9m7MlBoCjq3Qo0ST+b8n6oG2lLHL24s=" }, { "pname": "Microsoft.CodeCoverage", @@ -46,18 +46,18 @@ }, { "pname": "Microsoft.DevTunnels.Connections", - "version": "1.3.39", - "hash": "sha256-aJBUNv1n7b64EBrAa04+Gw1MLYC315xANCRdK3RnWlA=" + "version": "1.3.48", + "hash": "sha256-/E7ik2riVOMUyPt/1pxU7laDHG1pG5JpLIf5cQ7x7K4=" }, { "pname": "Microsoft.DevTunnels.Contracts", - "version": "1.3.39", - "hash": "sha256-lREgEhQhgQJyLoMYS/N5w+i6iX0s3Ppnl0T71KhG2u8=" + "version": "1.3.48", + "hash": "sha256-YYmyZWmKv03BnOKAwbAeLrKqYDbBQ4ZS26jn92QkLSc=" }, { "pname": "Microsoft.DevTunnels.Management", - "version": "1.3.39", - "hash": "sha256-twyduZ89fY69k5onUihezBwdiu3BxdOMBLIXq4aQvY0=" + "version": "1.3.48", + "hash": "sha256-DyDPqIwQkKJESx5K9Y4nKtw05cHrTlTp56rg/JXuVag=" }, { "pname": "Microsoft.DevTunnels.Ssh", @@ -536,8 +536,8 @@ }, { "pname": "System.Diagnostics.EventLog", - "version": "10.0.6", - "hash": "sha256-MpXUz1TiiFkD1ngApC7HKqW+i37zi5V2ApOmqZwDqiI=" + "version": "10.0.7", + "hash": "sha256-fV+2RcEzBV/JUnPDOLce3VBQKqvo32zcTWMZeJcAAJg=" }, { "pname": "System.Diagnostics.EventLog", @@ -561,8 +561,8 @@ }, { "pname": "System.Formats.Asn1", - "version": "10.0.6", - "hash": "sha256-h5f9iYBUHgG9kOV7jlVQ8HqBQ0DQJt+wy3R/FbB1kaQ=" + "version": "10.0.7", + "hash": "sha256-s48DCef2td3qUMdsRRGFfzkZ/wl/kUaVseQBDDfWUzM=" }, { "pname": "System.Globalization", @@ -856,8 +856,8 @@ }, { "pname": "System.Security.Cryptography.Pkcs", - "version": "10.0.6", - "hash": "sha256-7T34t/DoxxMWUGRPSnLV1l5ScAxcDnK9iYKstRvLJuA=" + "version": "10.0.7", + "hash": "sha256-+3RdvoSme0k3FoutPdJLkbWPWsmqPVo80hMgpuH3FP0=" }, { "pname": "System.Security.Cryptography.Primitives", @@ -896,8 +896,8 @@ }, { "pname": "System.ServiceProcess.ServiceController", - "version": "10.0.6", - "hash": "sha256-Lvkb2mzQT/tcJ2yxkQDmKKFpEyaUbQ75qU51FwD1dzY=" + "version": "10.0.7", + "hash": "sha256-koSlZI43JaCrG3ultJ6Sj7Ic9D9N878L+6HtRRGyJSA=" }, { "pname": "System.Text.Encoding", diff --git a/pkgs/by-name/gi/github-runner/package.nix b/pkgs/by-name/gi/github-runner/package.nix index c38f27abb913..d88a6d2583be 100644 --- a/pkgs/by-name/gi/github-runner/package.nix +++ b/pkgs/by-name/gi/github-runner/package.nix @@ -35,13 +35,13 @@ assert builtins.all ( buildDotnetModule (finalAttrs: { pname = "github-runner"; - version = "2.334.0"; + version = "2.335.1"; src = fetchFromGitHub { owner = "actions"; repo = "runner"; tag = "v${finalAttrs.version}"; - hash = "sha256-KSfzWwIf8Vpc8H0XM1tIqdZhdY/noZCeYLBvdWjqmLA="; + hash = "sha256-mFwWhpFzp0pT7WaMpF/N6PGw0IJt3I6/e7GDgw9wA2U="; leaveDotGit = true; postFetch = '' git -C $out rev-parse --short HEAD > $out/.git-revision @@ -211,6 +211,10 @@ buildDotnetModule (finalAttrs: { "RepositoryActionWithInvalidWrapperActionfile_Node" "RepositoryActionWithWrapperActionfile_PreSteps" ] + ++ [ + "GitHub.Runner.Common.Tests.Worker.ActionManagerL0.GetDownloadInfoAsync_OmitsDependencies_WhenEmpty" + "GitHub.Runner.Common.Tests.Worker.ActionManagerL0.GetDownloadInfoAsync_PropagatesDependencies_WhenPresent" + ] ++ map (x: "GitHub.Runner.Common.Tests.DotnetsdkDownloadScriptL0.${x}") [ "EnsureDotnetsdkBashDownloadScriptUpToDate" "EnsureDotnetsdkPowershellDownloadScriptUpToDate" diff --git a/pkgs/by-name/gi/gitlab-pages/package.nix b/pkgs/by-name/gi/gitlab-pages/package.nix index 096573d2c5f5..0c6ae216ff5c 100644 --- a/pkgs/by-name/gi/gitlab-pages/package.nix +++ b/pkgs/by-name/gi/gitlab-pages/package.nix @@ -6,14 +6,14 @@ buildGoModule (finalAttrs: { pname = "gitlab-pages"; - version = "18.11.5"; + version = "18.11.6"; # nixpkgs-update: no auto update src = fetchFromGitLab { owner = "gitlab-org"; repo = "gitlab-pages"; rev = "v${finalAttrs.version}"; - hash = "sha256-jSTXLbzYCiCpqrbs9kAmW6um2X5hA1OFiA6fSZrQ2RI="; + hash = "sha256-D/AlIXbcgvPyP2TX/lXVYlnG2HXKZlxOhqRTfTXsaew="; }; vendorHash = "sha256-PUW4cgAiM1GTtvja894OZ4pe0SWChf5JsL4/fkns2kI="; diff --git a/pkgs/by-name/gi/gitlab/data.json b/pkgs/by-name/gi/gitlab/data.json index 3ce73f50325d..2f8606e66e98 100644 --- a/pkgs/by-name/gi/gitlab/data.json +++ b/pkgs/by-name/gi/gitlab/data.json @@ -1,17 +1,17 @@ { - "version": "18.11.5", - "repo_hash": "sha256-/RIUqxfRjq3+TOvapYMfl0uVqQLp1adpE6bR303rH6g=", + "version": "18.11.6", + "repo_hash": "sha256-bdnBX6M4BtuA03CP/N0teKnuey3V9qHseBoxTIGXE5Q=", "yarn_hash": "sha256-og09R28lwYvDk4pe7z1dRMaanYiTsUSx+SUKoWc53do=", "frontend_islands_yarn_hash": "sha256-EvGQin+5DqqIgM36jlVkVI49WcJzVvceYnkSS9ybfcY=", "owner": "gitlab-org", "repo": "gitlab", - "rev": "v18.11.5-ee", + "rev": "v18.11.6-ee", "passthru": { - "GITALY_SERVER_VERSION": "18.11.5", - "GITLAB_KAS_VERSION": "18.11.5", - "GITLAB_PAGES_VERSION": "18.11.5", + "GITALY_SERVER_VERSION": "18.11.6", + "GITLAB_KAS_VERSION": "18.11.6", + "GITLAB_PAGES_VERSION": "18.11.6", "GITLAB_SHELL_VERSION": "14.50.0", "GITLAB_ELASTICSEARCH_INDEXER_VERSION": "5.14.7", - "GITLAB_WORKHORSE_VERSION": "18.11.5" + "GITLAB_WORKHORSE_VERSION": "18.11.6" } } diff --git a/pkgs/by-name/gi/gitlab/gitlab-workhorse/default.nix b/pkgs/by-name/gi/gitlab/gitlab-workhorse/default.nix index 5fcf95d2f083..1e60673586d2 100644 --- a/pkgs/by-name/gi/gitlab/gitlab-workhorse/default.nix +++ b/pkgs/by-name/gi/gitlab/gitlab-workhorse/default.nix @@ -10,7 +10,7 @@ in buildGoModule (finalAttrs: { pname = "gitlab-workhorse"; - version = "18.11.5"; + version = "18.11.6"; # nixpkgs-update: no auto update src = fetchFromGitLab { diff --git a/pkgs/by-name/gi/gitlab/rubyEnv/Gemfile.lock b/pkgs/by-name/gi/gitlab/rubyEnv/Gemfile.lock index 9e054ba008c9..ef81560ad325 100644 --- a/pkgs/by-name/gi/gitlab/rubyEnv/Gemfile.lock +++ b/pkgs/by-name/gi/gitlab/rubyEnv/Gemfile.lock @@ -537,7 +537,7 @@ GEM thor (>= 0.19, < 2) descendants_tracker (0.0.4) thread_safe (~> 0.3, >= 0.3.1) - devfile (0.5.0) + devfile (0.5.2) device_detector (1.1.3) devise (4.9.4) bcrypt (~> 3.0) @@ -2678,7 +2678,7 @@ CHECKSUMS declarative_policy (2.1.0) sha256=f9ab705da726174bde97785c319311a4abf6143c07862f882bd8bc1b69361eea derailed_benchmarks (2.2.1) sha256=654280664fded41c9cd8fc27fc0fcfaf096023afab90eb4ac1185ba70c5d4439 descendants_tracker (0.0.4) sha256=e9c41dd4cfbb85829a9301ea7e7c48c2a03b26f09319db230e6479ccdc780897 - devfile (0.5.0) sha256=6a7e3be19e3e6b4b698b64ec4d6fd85b6653ce810c65cee611907d47ebb4cccf + devfile (0.5.2) sha256=2398cc38726f7bce03088eb74e4157f7839b353e36a488565e3fcc7739cd613d device_detector (1.1.3) sha256=c5fe3fe42cab2e8aa01f193b2074b8bb1510373ce47127206f28c7dea75a9c79 devise (4.9.4) sha256=920042fe5e704c548aa4eb65ebdd65980b83ffae67feb32c697206bfd975a7f8 devise-pbkdf2-encryptable (0.0.0) diff --git a/pkgs/by-name/gi/gitlab/rubyEnv/gemset.nix b/pkgs/by-name/gi/gitlab/rubyEnv/gemset.nix index 4ed69ec68a77..4391115257d4 100644 --- a/pkgs/by-name/gi/gitlab/rubyEnv/gemset.nix +++ b/pkgs/by-name/gi/gitlab/rubyEnv/gemset.nix @@ -1621,10 +1621,10 @@ src: { platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1kycnkmlfzch27kcwr8ch7756rjvv1plvv34idllnsrykvhknzka"; + sha256 = "0gb1rlwpgk1zbrb8i91n7qsrp0zpax0lxdwf101wwyvgf8wcr613"; type = "gem"; }; - version = "0.5.0"; + version = "0.5.2"; }; device_detector = { groups = [ "default" ]; diff --git a/pkgs/by-name/go/gotosocial/package.nix b/pkgs/by-name/go/gotosocial/package.nix index 7f674be42123..9b0d66660ca5 100644 --- a/pkgs/by-name/go/gotosocial/package.nix +++ b/pkgs/by-name/go/gotosocial/package.nix @@ -11,13 +11,13 @@ }: buildGo125Module (finalAttrs: { pname = "gotosocial"; - version = "0.21.2"; + version = "0.21.3"; src = fetchFromCodeberg { owner = "superseriousbusiness"; repo = "gotosocial"; tag = "v${finalAttrs.version}"; - hash = "sha256-Z3j5/pXnNTHgBmPEfFgjOJuL03LsPtvAwbuoL9wb5bk="; + hash = "sha256-gemi9t4wTjmCHEXfdXz1X9Q4gcvj/3LMtlrO5UpQ19M="; }; vendorHash = null; diff --git a/pkgs/by-name/hm/hmcl/package.nix b/pkgs/by-name/hm/hmcl/package.nix index 51a6d4b2e13e..0d4a96882331 100644 --- a/pkgs/by-name/hm/hmcl/package.nix +++ b/pkgs/by-name/hm/hmcl/package.nix @@ -50,13 +50,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "hmcl"; - version = "3.15.1"; + version = "3.15.2"; src = fetchurl { # HMCL has built-in keys, such as the Microsoft OAuth secret and the CurseForge API key. # See https://github.com/HMCL-dev/HMCL/blob/refs/tags/release-3.6.12/.github/workflows/gradle.yml#L26-L28 url = "https://github.com/HMCL-dev/HMCL/releases/download/v${finalAttrs.version}/HMCL-${finalAttrs.version}.jar"; - hash = "sha256-Uv6w3XEySoqsKCmZVmiDkGfmeretHfvpwFmYMJz0mv4="; + hash = "sha256-rT+RruLMz/DTlYSOMv4D6ZCOVt36iqyx42v8ea4XSdM="; }; # - HMCL prompts users to download prebuilt Terracotta binary for @@ -71,7 +71,7 @@ stdenv.mkDerivation (finalAttrs: { terracottaBundleJava = fetchurl { name = "hmcl-terracotta-bundle-java-${finalAttrs.version}"; url = "https://raw.githubusercontent.com/HMCL-dev/HMCL/v${finalAttrs.version}/${finalAttrs.terracottaBundleJavaPath}"; - hash = "sha256-05U4/TUYECPgrzZbLiSPUwo5XtIm2w+T8gCdtqpsRVs="; + hash = "sha256-1o/CUDeywtDlhAxqInk77aUwGCCYeZ84VMIyouN49uU="; }; macOSProviderJava = fetchurl { name = "hmcl-macos-provider-java-${finalAttrs.version}"; diff --git a/pkgs/by-name/im/image-analyzer/package.nix b/pkgs/by-name/im/image-analyzer/package.nix index 364286765d26..f35aae5c0e82 100644 --- a/pkgs/by-name/im/image-analyzer/package.nix +++ b/pkgs/by-name/im/image-analyzer/package.nix @@ -16,11 +16,11 @@ }: python3Packages.buildPythonApplication (finalAttrs: { pname = "image-analyzer"; - version = "3.3.0"; + version = "3.3.1"; src = fetchurl { url = "mirror://sourceforge/cdemu/image-analyzer-${finalAttrs.version}.tar.xz"; - hash = "sha256-N2aufwYEBVx7z2Vo7Qi4DP2MsDXXr5LrQdeNYOtNGnU="; + hash = "sha256-vsfDmtjrvAC49ynnJ7QguBfSVnt/sBpCy/Eau2l1/jQ="; }; buildInputs = [ diff --git a/pkgs/by-name/ki/kikit/default.nix b/pkgs/by-name/ki/kikit/default.nix index 40d312da3d57..9e9e61ca60d3 100644 --- a/pkgs/by-name/ki/kikit/default.nix +++ b/pkgs/by-name/ki/kikit/default.nix @@ -2,8 +2,9 @@ bc, zip, lib, - fetchFromGitHub, bats, + fetchFromGitHub, + python, buildPythonApplication, callPackage, kicad, @@ -19,6 +20,7 @@ versioneer, shapely, setuptools, + versionCheckHook, nix-update-script, }: let @@ -36,7 +38,10 @@ buildPythonApplication (finalAttrs: { hash = "sha256-QhtdQgMgHaB0xj2hQ4MCptr5DDgCOfRClUSyYzrFQis="; # Upstream uses versioneer, which relies on gitattributes substitution. # This leads to non-reproducible archives on GitHub. - # See https://github.com/NixOS/nixpkgs/issues/84312 + # See + # https://github.com/NixOS/nixpkgs/issues/84312 + # https://github.com/NixOS/nixpkgs/pull/395213 + # https://github.com/python-versioneer/python-versioneer/issues/217 postFetch = '' rm "$out/kikit/_version.py" ''; @@ -72,6 +77,7 @@ buildPythonApplication (finalAttrs: { nativeCheckInputs = [ pytestCheckHook + versionCheckHook bats ]; @@ -79,9 +85,10 @@ buildPythonApplication (finalAttrs: { "kikit" ]; - postPatch = '' - # Recreate _version.py, deleted at fetch time due to non-reproducibility. - echo 'def get_versions(): return {"version": "${finalAttrs.version}"}' > kikit/_version.py + # Recreate _version.py, deleted at fetch time due to non-reproducibility. + # should be done in postInstall to overwrite what versioneer generates again during the build phase + postInstall = '' + echo 'def get_versions(): return {"version": "${finalAttrs.version}"}' > $out/${python.sitePackages}/kikit/_version.py ''; preCheck = '' @@ -96,14 +103,15 @@ buildPythonApplication (finalAttrs: { passthru.updateScript = nix-update-script { }; meta = { + changelog = "https://github.com/yaqwsx/KiKit/releases/tag/${finalAttrs.src.tag}"; description = "Automation for KiCAD boards"; homepage = "https://github.com/yaqwsx/KiKit/"; - changelog = "https://github.com/yaqwsx/KiKit/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.mit; + mainProgram = "kikit"; maintainers = with lib.maintainers; [ jfly matusf ]; teams = with lib.teams; [ ngi ]; - license = lib.licenses.mit; }; }) diff --git a/pkgs/by-name/la/lasuite-docs-collaboration-server/package.nix b/pkgs/by-name/la/lasuite-docs-collaboration-server/package.nix index 5e16542be6a8..1ad982520822 100644 --- a/pkgs/by-name/la/lasuite-docs-collaboration-server/package.nix +++ b/pkgs/by-name/la/lasuite-docs-collaboration-server/package.nix @@ -13,20 +13,20 @@ stdenv.mkDerivation (finalAttrs: { pname = "lasuite-docs-collaboration-server"; - version = "5.1.0"; + version = "5.3.0"; src = fetchFromGitHub { owner = "suitenumerique"; repo = "docs"; tag = "v${finalAttrs.version}"; - hash = "sha256-Ptg3C+5DbUiWVS8nMCmqmSFMmNI4NW8NYBF+G5xOqSg="; + hash = "sha256-GQAhCwtcp/9rSk1B1/EWL2jnfd46w1vikEMJeucD1bA="; }; sourceRoot = "${finalAttrs.src.name}/src/frontend"; offlineCache = fetchYarnDeps { yarnLock = "${finalAttrs.src}/src/frontend/yarn.lock"; - hash = "sha256-GW60XK+iOM4A/Pyvh120MnNde8dPiZu46aOTfHOczZg="; + hash = "sha256-6uZF4op81QzYCAogvlcyZAkJsCqs72scyLKc1bc2QBU="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/la/lasuite-docs-frontend/package.nix b/pkgs/by-name/la/lasuite-docs-frontend/package.nix index 8ad50e89bbe5..c14ae1a7986e 100644 --- a/pkgs/by-name/la/lasuite-docs-frontend/package.nix +++ b/pkgs/by-name/la/lasuite-docs-frontend/package.nix @@ -12,20 +12,20 @@ stdenv.mkDerivation (finalAttrs: { pname = "lasuite-docs-frontend"; - version = "5.1.0"; + version = "5.3.0"; src = fetchFromGitHub { owner = "suitenumerique"; repo = "docs"; tag = "v${finalAttrs.version}"; - hash = "sha256-Ptg3C+5DbUiWVS8nMCmqmSFMmNI4NW8NYBF+G5xOqSg="; + hash = "sha256-GQAhCwtcp/9rSk1B1/EWL2jnfd46w1vikEMJeucD1bA="; }; sourceRoot = "${finalAttrs.src.name}/src/frontend"; offlineCache = fetchYarnDeps { yarnLock = "${finalAttrs.src}/src/frontend/yarn.lock"; - hash = "sha256-GW60XK+iOM4A/Pyvh120MnNde8dPiZu46aOTfHOczZg="; + hash = "sha256-6uZF4op81QzYCAogvlcyZAkJsCqs72scyLKc1bc2QBU="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/la/lasuite-docs/package.nix b/pkgs/by-name/la/lasuite-docs/package.nix index 39f940778262..98f84e289624 100644 --- a/pkgs/by-name/la/lasuite-docs/package.nix +++ b/pkgs/by-name/la/lasuite-docs/package.nix @@ -11,12 +11,12 @@ yarnConfigHook, }: let - version = "5.1.0"; + version = "5.3.0"; src = fetchFromGitHub { owner = "suitenumerique"; repo = "docs"; tag = "v${version}"; - hash = "sha256-Ptg3C+5DbUiWVS8nMCmqmSFMmNI4NW8NYBF+G5xOqSg="; + hash = "sha256-GQAhCwtcp/9rSk1B1/EWL2jnfd46w1vikEMJeucD1bA="; }; mail-templates = stdenv.mkDerivation { @@ -29,7 +29,7 @@ let offlineCache = fetchYarnDeps { yarnLock = "${src}/src/mail/yarn.lock"; - hash = "sha256-CKKGY87C5ifv0sHm9ExCzaGM3mV4C0NsWLCbw+ALqGc="; + hash = "sha256-MYzADDcXHGieGkygmlbZQbYcS68NdKWyHYGgoSaqDO8="; }; nativeBuildInputs = [ @@ -52,13 +52,6 @@ python3Packages.buildPythonApplication (finalAttrs: { patches = [ # Support configuration throught environment variables for SECURE_* ./secure_settings.patch - - # Fix creation of unsafe C function in postgresql migrations - ./postgresql_fix.patch - - # Fix installing all modules with uv_build - # https://github.com/suitenumerique/docs/pull/2295 - ./uv.patch ]; # They use a old version of mistralai which exported a class @@ -91,6 +84,7 @@ python3Packages.buildPythonApplication (finalAttrs: { boto3 celery emoji + dj-database-url django django-configurations django-cors-headers @@ -120,6 +114,7 @@ python3Packages.buildPythonApplication (finalAttrs: { mozilla-django-oidc nested-multipart-parser openai + posthog psycopg pycrdt pydantic-ai-slim diff --git a/pkgs/by-name/la/lasuite-docs/postgresql_fix.patch b/pkgs/by-name/la/lasuite-docs/postgresql_fix.patch deleted file mode 100644 index d15988dad623..000000000000 --- a/pkgs/by-name/la/lasuite-docs/postgresql_fix.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/core/migrations/0027_auto_20251120_0956.py b/core/migrations/0027_auto_20251120_0956.py -index fe795ff5..0db2090c 100644 ---- a/core/migrations/0027_auto_20251120_0956.py -+++ b/core/migrations/0027_auto_20251120_0956.py -@@ -11,11 +11,6 @@ class Migration(migrations.Migration): - operations = [ - migrations.RunSQL( - sql=""" -- CREATE OR REPLACE FUNCTION public.immutable_unaccent(regdictionary, text) -- RETURNS text -- LANGUAGE c IMMUTABLE PARALLEL SAFE STRICT AS -- '$libdir/unaccent', 'unaccent_dict'; -- - CREATE OR REPLACE FUNCTION public.f_unaccent(text) - RETURNS text - LANGUAGE sql IMMUTABLE PARALLEL SAFE STRICT diff --git a/pkgs/by-name/la/lasuite-docs/uv.patch b/pkgs/by-name/la/lasuite-docs/uv.patch deleted file mode 100644 index 7afa3ffe0bf8..000000000000 --- a/pkgs/by-name/la/lasuite-docs/uv.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff --git a/__init__.py b/__init__.py -deleted file mode 100644 -index e69de29b..00000000 -diff --git a/pyproject.toml b/pyproject.toml -index eb8ef0a0..dbb9f619 100644 ---- a/pyproject.toml -+++ b/pyproject.toml -@@ -97,6 +97,11 @@ dev = [ - ] - - [tool.uv.build-backend] -+module-name = [ -+ "core", -+ "demo", -+ "impress" -+] - module-root = "" - source-exclude = [ - "**/tests/**", diff --git a/pkgs/by-name/m1/m1n1/package.nix b/pkgs/by-name/m1/m1n1/package.nix index ba9320acbde9..9d03cb8f5057 100644 --- a/pkgs/by-name/m1/m1n1/package.nix +++ b/pkgs/by-name/m1/m1n1/package.nix @@ -3,7 +3,6 @@ stdenv, fetchFromGitHub, imagemagick, - source-code-pro, python3Packages, nix-update-script, nixos-icons, @@ -32,17 +31,23 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "m1n1"; - version = "1.5.2"; + version = "1.6.0"; src = fetchFromGitHub { owner = "AsahiLinux"; repo = "m1n1"; tag = "v${finalAttrs.version}"; - hash = "sha256-rxop5r+EVXnp1OVkGT6MUwcl6yNTJxJSJuruZiaou7g="; + hash = "sha256-yYXB2DhLcLqxaqwP5mII+j2PMIoXdZ35bpx/d0WSZA8="; fetchSubmodules = true; }; - cargoVendorDir = "."; + cargoDeps = rustPlatform.fetchCargoVendor { + inherit (finalAttrs) pname version; + src = "${finalAttrs.src}/rust"; + sourceRoot = "rust"; + hash = "sha256-iuiRp2FA5jnb3uh/p1gpc7Sznt1s4/UR91wEtXTf97o="; + }; + cargoRoot = "rust"; postPatch = lib.optionalString (customLogo != null) '' magick ${customLogo} -resize 128x128 data/custom_128.png @@ -56,14 +61,6 @@ stdenv.mkDerivation (finalAttrs: { rustPlatform.cargoSetupHook ]; - postConfigure = '' - patchShebangs --build font/makefont.sh - FONT_PATH=${source-code-pro}/share/fonts/opentype/SourceCodePro-Bold.otf - rm font/{SourceCodePro-Bold.ttf,font.bin,font_retina.bin} - ./font/makefont.sh 8 16 12 $FONT_PATH font/font.bin - ./font/makefont.sh 16 32 25 $FONT_PATH font/font_retina.bin - ''; - makeFlags = [ "ARCH=${stdenv.cc.targetPrefix}" "RELEASE=1" diff --git a/pkgs/by-name/ma/mastodon/source.nix b/pkgs/by-name/ma/mastodon/source.nix index 00a99719379d..dc6982dca446 100644 --- a/pkgs/by-name/ma/mastodon/source.nix +++ b/pkgs/by-name/ma/mastodon/source.nix @@ -5,14 +5,14 @@ patches ? [ ], }: let - version = "4.6.1"; + version = "4.6.2"; in applyPatches { src = fetchFromGitHub { owner = "mastodon"; repo = "mastodon"; rev = "v${version}"; - hash = "sha256-vnFmyLcIeiDHsVxh6BHFjolsGM0n2thOwt3MXrkjEx8="; + hash = "sha256-RA9yGmWyzwiD/skPxOB27hqRxMqKGFmMMDOvHR5FjqI="; passthru = { inherit version; yarnHash = "sha256-G1keSWDDpp0vBAOqQI8y8n7bmAeo9Hrdbo7R+cVZQwE="; diff --git a/pkgs/by-name/ma/mastodon/update.sh b/pkgs/by-name/ma/mastodon/update.sh index 75d7e9b74540..75027aed0b32 100755 --- a/pkgs/by-name/ma/mastodon/update.sh +++ b/pkgs/by-name/ma/mastodon/update.sh @@ -1,5 +1,5 @@ #!/usr/bin/env nix-shell -#! nix-shell -i bash -p bundix coreutils diffutils nix-prefetch-github gnused jq yarn-berry_4.yarn-berry-fetcher +#! nix-shell -i bash -p bundix coreutils diffutils nixfmt nix-prefetch-github gnused jq yarn-berry_4.yarn-berry-fetcher set -e OWNER=mastodon @@ -111,6 +111,9 @@ echo "Creating gemset.nix" bundix --lockfile="$SOURCE_DIR/Gemfile.lock" --gemfile="$SOURCE_DIR/Gemfile" echo "" >> gemset.nix # Create trailing newline to please EditorConfig checks +# Fix formatting +nixfmt gemset.nix + echo "Updating yarnHash" yarn-berry-fetcher missing-hashes "$SOURCE_DIR/yarn.lock" > missing-hashes.json YARN_HASH="$(yarn-berry-fetcher prefetch "$SOURCE_DIR/yarn.lock" ./missing-hashes.json 2>/dev/null)" diff --git a/pkgs/by-name/ol/olivetin/3k.nix b/pkgs/by-name/ol/olivetin/3k.nix index 5557cc60cea8..8979c680a5c7 100644 --- a/pkgs/by-name/ol/olivetin/3k.nix +++ b/pkgs/by-name/ol/olivetin/3k.nix @@ -16,18 +16,18 @@ buildGoModule (finalAttrs: { pname = "olivetin"; - version = "3000.14.0"; + version = "3000.15.0"; src = fetchFromGitHub { owner = "OliveTin"; repo = "OliveTin"; tag = finalAttrs.version; - hash = "sha256-bMc+fmyaRNVLVzGSAUq+TgEdq1VO3Guvw9RnV+YdrRI="; + hash = "sha256-AztJqhSJV9hIsnhaYZoIMC8ZE17pUT37nRUdCZ6ZiCA="; }; modRoot = "service"; - vendorHash = "sha256-MxiINWFSpbkBDOBcusr2VViGgnlEoqOmj2gZaiGGjj0="; + vendorHash = "sha256-lZ3KBoM+cDyYPX16wuZT3UQvB/SrRD6W2ic+GznG7hU="; subPackages = [ "." ]; @@ -75,14 +75,14 @@ buildGoModule (finalAttrs: { ''; outputHashMode = "recursive"; - outputHash = "sha256-EilPfKCT8byqBl2Ls5f8VrBcT8H+u8jqUQTX6brWhUE="; + outputHash = "sha256-v7aSikl1VSFZdNKnIucs7RdqFWoaVNIH9u27YG9Ei90="; }; webui = buildNpmPackage { pname = "olivetin-webui"; inherit (finalAttrs) version src; - npmDepsHash = "sha256-+XWucYyYHRC1usQ95HjlFVct2h8njuxfAKDFKNwwJLI="; + npmDepsHash = "sha256-fr5RTPNXNd8sD/LphnDsekIbB333LgEHCb/NUEqSBIE="; sourceRoot = "${finalAttrs.src.name}/frontend"; diff --git a/pkgs/by-name/os/osu-lazer-bin/package.nix b/pkgs/by-name/os/osu-lazer-bin/package.nix index c75389c729dd..89b990e2b9b3 100644 --- a/pkgs/by-name/os/osu-lazer-bin/package.nix +++ b/pkgs/by-name/os/osu-lazer-bin/package.nix @@ -10,23 +10,23 @@ let pname = "osu-lazer-bin"; - version = "2026.620.0"; + version = "2026.624.0"; src = { aarch64-darwin = fetchzip { url = "https://github.com/ppy/osu/releases/download/${version}-lazer/osu.app.Apple.Silicon.zip"; - hash = "sha256-SHqi+RFMwYkChmCc0i1X/bmMajVSLaWuNCx9+cDkg7E="; + hash = "sha256-kL2XGJzTRC+AtHH4+byaR1df9EYyIriuxzawDtAFWZ4="; stripRoot = false; }; x86_64-darwin = fetchzip { url = "https://github.com/ppy/osu/releases/download/${version}-lazer/osu.app.Intel.zip"; - hash = "sha256-WXMyeoTixCNPin+hIK+1v2bX26MWnsQ7ZQGwJQ7jbyc="; + hash = "sha256-NOBKnsZpMYU6uBfVqYK3ZrPzZBQURw6bN5rr1iZG9nA="; stripRoot = false; }; x86_64-linux = fetchurl { url = "https://github.com/ppy/osu/releases/download/${version}-lazer/osu.AppImage"; - hash = "sha256-rLom/UwqVOXUk/ayLvekRQMD49p5MB9BA6RCohtuPfg="; + hash = "sha256-EKmCq656djPGK5I1JqSDcTKtpbQZbO8WGWcPv+PT0q4="; }; } .${stdenvNoCC.system} or (throw "osu-lazer-bin: ${stdenvNoCC.system} is unsupported."); diff --git a/pkgs/by-name/os/osu-lazer/deps.json b/pkgs/by-name/os/osu-lazer/deps.json index f3639cbf1561..9fda74f72208 100644 --- a/pkgs/by-name/os/osu-lazer/deps.json +++ b/pkgs/by-name/os/osu-lazer/deps.json @@ -586,8 +586,8 @@ }, { "pname": "ppy.LocalisationAnalyser.Tools", - "version": "2025.1208.0", - "hash": "sha256-diVAckS1zNyVE1UGkbiu9jH/25j/c+Ad5XC3EjdLDsg=" + "version": "2026.611.0", + "hash": "sha256-f3QNC84ynXUHW0wvDZvCTCbNYpqdHzq12uNNwaB6M1g=" }, { "pname": "ppy.managed-midi", @@ -616,8 +616,8 @@ }, { "pname": "ppy.osu.Framework", - "version": "2026.616.0", - "hash": "sha256-Q9pyMPIpyiAp63VYiWEM8Zbiek0aXdsNBZY2ECaaZ/U=" + "version": "2026.623.0", + "hash": "sha256-IcCFJvj5ydy0r6mEpHgV+UK9N7cd/3CtjOCV2GT8HOY=" }, { "pname": "ppy.osu.Framework.NativeLibs", @@ -646,8 +646,8 @@ }, { "pname": "ppy.SDL3-CS", - "version": "2026.520.0", - "hash": "sha256-Owz9gClqs1Dnb+EHk4Xpl/tdbXSOwqrL67tTatj+HRU=" + "version": "2026.623.0", + "hash": "sha256-LMT2AVjP/HIC3a7PZDR4Vhlr6CCEhPu5ZF1eSYDIjeY=" }, { "pname": "ppy.Veldrid", diff --git a/pkgs/by-name/os/osu-lazer/package.nix b/pkgs/by-name/os/osu-lazer/package.nix index 3ff21e0f77b7..dea4064cb1cd 100644 --- a/pkgs/by-name/os/osu-lazer/package.nix +++ b/pkgs/by-name/os/osu-lazer/package.nix @@ -22,13 +22,13 @@ buildDotnetModule rec { pname = "osu-lazer"; - version = "2026.620.0"; + version = "2026.624.0"; src = fetchFromGitHub { owner = "ppy"; repo = "osu"; tag = "${version}-lazer"; - hash = "sha256-I2cziF/XRZhMRZCyjoec7G03IxldDMNQ//A7CmFW6/Y="; + hash = "sha256-qZPComGBdVReWQ0rVQeB9v8N2ul02AhGe8BlIzhz0+s="; }; projectFile = "osu.Desktop/osu.Desktop.csproj"; diff --git a/pkgs/by-name/re/redmine/Gemfile b/pkgs/by-name/re/redmine/Gemfile index 755975b9e9f1..cf30bf9e288f 100644 --- a/pkgs/by-name/re/redmine/Gemfile +++ b/pkgs/by-name/re/redmine/Gemfile @@ -2,7 +2,7 @@ source 'https://rubygems.org' ruby '>= 3.2.0', '< 3.5.0' -gem 'rails', '7.2.3' +gem 'rails', '7.2.3.1' gem 'rouge', '~> 4.5' gem 'mini_mime', '~> 1.1.0' gem "actionpack-xml_parser" diff --git a/pkgs/by-name/re/redmine/Gemfile.lock b/pkgs/by-name/re/redmine/Gemfile.lock index f2d477827f8f..5a4881050674 100644 --- a/pkgs/by-name/re/redmine/Gemfile.lock +++ b/pkgs/by-name/re/redmine/Gemfile.lock @@ -1,29 +1,29 @@ GEM remote: https://rubygems.org/ specs: - actioncable (7.2.3) - actionpack (= 7.2.3) - activesupport (= 7.2.3) + actioncable (7.2.3.1) + actionpack (= 7.2.3.1) + activesupport (= 7.2.3.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.2.3) - actionpack (= 7.2.3) - activejob (= 7.2.3) - activerecord (= 7.2.3) - activestorage (= 7.2.3) - activesupport (= 7.2.3) + actionmailbox (7.2.3.1) + actionpack (= 7.2.3.1) + activejob (= 7.2.3.1) + activerecord (= 7.2.3.1) + activestorage (= 7.2.3.1) + activesupport (= 7.2.3.1) mail (>= 2.8.0) - actionmailer (7.2.3) - actionpack (= 7.2.3) - actionview (= 7.2.3) - activejob (= 7.2.3) - activesupport (= 7.2.3) + actionmailer (7.2.3.1) + actionpack (= 7.2.3.1) + actionview (= 7.2.3.1) + activejob (= 7.2.3.1) + activesupport (= 7.2.3.1) mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (7.2.3) - actionview (= 7.2.3) - activesupport (= 7.2.3) + actionpack (7.2.3.1) + actionview (= 7.2.3.1) + activesupport (= 7.2.3.1) cgi nokogiri (>= 1.8.5) racc @@ -36,36 +36,36 @@ GEM actionpack-xml_parser (2.0.1) actionpack (>= 5.0) railties (>= 5.0) - actiontext (7.2.3) - actionpack (= 7.2.3) - activerecord (= 7.2.3) - activestorage (= 7.2.3) - activesupport (= 7.2.3) + actiontext (7.2.3.1) + actionpack (= 7.2.3.1) + activerecord (= 7.2.3.1) + activestorage (= 7.2.3.1) + activesupport (= 7.2.3.1) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.2.3) - activesupport (= 7.2.3) + actionview (7.2.3.1) + activesupport (= 7.2.3.1) builder (~> 3.1) cgi erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activejob (7.2.3) - activesupport (= 7.2.3) + activejob (7.2.3.1) + activesupport (= 7.2.3.1) globalid (>= 0.3.6) - activemodel (7.2.3) - activesupport (= 7.2.3) - activerecord (7.2.3) - activemodel (= 7.2.3) - activesupport (= 7.2.3) + activemodel (7.2.3.1) + activesupport (= 7.2.3.1) + activerecord (7.2.3.1) + activemodel (= 7.2.3.1) + activesupport (= 7.2.3.1) timeout (>= 0.4.0) - activestorage (7.2.3) - actionpack (= 7.2.3) - activejob (= 7.2.3) - activerecord (= 7.2.3) - activesupport (= 7.2.3) + activestorage (7.2.3.1) + actionpack (= 7.2.3.1) + activejob (= 7.2.3.1) + activerecord (= 7.2.3.1) + activesupport (= 7.2.3.1) marcel (~> 1.0) - activesupport (7.2.3) + activesupport (7.2.3.1) base64 benchmark (>= 0.3) bigdecimal @@ -74,18 +74,20 @@ GEM drb i18n (>= 1.6, < 2) logger (>= 1.4.2) - minitest (>= 5.1) + minitest (>= 5.1, < 6) securerandom (>= 0.3) tzinfo (~> 2.0, >= 2.0.5) - addressable (2.8.9) + addressable (2.9.0) public_suffix (>= 2.0.2, < 8.0) ast (2.4.3) + auth-sanitizer (0.2.1) + version_gem (~> 1.1, >= 1.1.10) base64 (0.3.0) - bcrypt (3.1.21) + bcrypt (3.1.22) benchmark (0.5.0) - bigdecimal (4.0.1) + bigdecimal (4.1.2) builder (3.3.0) - bullet (8.1.0) + bullet (8.1.3) activesupport (>= 3.0.0) uniform_notifier (~> 1.11) bundle-audit (0.2.0) @@ -106,10 +108,10 @@ GEM chunky_png (1.4.0) commonmarker (2.3.2) rb_sys (~> 0.9) - concurrent-ruby (1.3.6) + concurrent-ruby (1.3.7) connection_pool (3.0.2) crass (1.0.6) - css_parser (1.21.1) + css_parser (2.2.0) addressable csv (3.3.5) date (3.5.1) @@ -120,18 +122,18 @@ GEM domain_name (0.6.20240107) doorkeeper (5.8.2) railties (>= 5) - doorkeeper-i18n (5.2.8) + doorkeeper-i18n (5.2.9) doorkeeper (>= 5.2) drb (2.2.3) - erb (6.0.2) + erb (6.0.4) erubi (1.13.1) - faraday (2.14.1) + faraday (2.14.3) faraday-net_http (>= 2.0, < 3.5) json logger - faraday-net_http (3.4.2) + faraday-net_http (3.4.4) net-http (~> 0.5) - ffi (1.17.3) + ffi (1.17.4) globalid (1.3.0) activesupport (>= 6.1) hashie (5.1.0) @@ -141,7 +143,7 @@ GEM nokogiri (>= 1.4) htmlentities (4.4.2) http-accept (1.7.0) - http-cookie (1.1.0) + http-cookie (1.1.6) domain_name (~> 0.5) i18n (1.14.8) concurrent-ruby (~> 1.0) @@ -150,13 +152,13 @@ GEM activesupport (>= 6.0.0) railties (>= 6.0.0) io-console (0.8.2) - irb (1.17.0) + irb (1.18.0) pp (>= 0.6.0) prism (>= 1.3.0) rdoc (>= 4.0.0) reline (>= 0.4.2) - json (2.19.1) - jwt (3.1.2) + json (2.19.9) + jwt (3.2.0) base64 language_server-protocol (3.17.0.5) lint_roller (1.1.0) @@ -165,7 +167,7 @@ GEM rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) logger (1.7.0) - loofah (2.25.0) + loofah (2.25.1) crass (~> 1.0.2) nokogiri (>= 1.12.0) mail (2.8.1) @@ -173,12 +175,12 @@ GEM net-imap net-pop net-smtp - marcel (1.1.0) + marcel (1.2.1) matrix (0.4.3) mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0303) + mime-types-data (3.2026.0414) mini_magick (5.2.0) benchmark logger @@ -187,13 +189,13 @@ GEM minitest (5.27.0) mocha (3.1.0) ruby2_keywords (>= 0.0.5) - multi_xml (0.8.1) + multi_xml (0.9.1) bigdecimal (>= 3.1, < 5) mysql2 (0.5.7) bigdecimal net-http (0.9.1) uri (>= 0.11.1) - net-imap (0.5.13) + net-imap (0.5.15) date net-protocol net-ldap (0.17.1) @@ -205,19 +207,20 @@ GEM net-protocol netrc (0.11.0) nio4r (2.7.5) - nokogiri (1.19.1) + nokogiri (1.19.3) mini_portile2 (~> 2.8.2) racc (~> 1.4) - oauth2 (2.0.18) + oauth2 (2.0.23) + auth-sanitizer (~> 0.2, >= 0.2.1) faraday (>= 0.17.3, < 4.0) jwt (>= 1.0, < 4.0) logger (~> 1.2) multi_xml (~> 0.5) rack (>= 1.2, < 4) - snaky_hash (~> 2.0, >= 2.0.3) - version_gem (~> 1.1, >= 1.1.9) - parallel (1.27.0) - parser (3.3.10.2) + snaky_hash (~> 2.0, >= 2.0.6) + version_gem (~> 1.1, >= 1.1.11) + parallel (1.28.0) + parser (3.3.11.1) ast (~> 2.4.1) racc pg (1.5.9) @@ -230,35 +233,35 @@ GEM activesupport (>= 7.0.0) rack railties (>= 7.0.0) - psych (5.3.1) + psych (5.4.0) date stringio public_suffix (7.0.5) - puma (7.2.0) + puma (8.0.2) nio4r (~> 2.0) racc (1.8.1) - rack (3.2.5) - rack-session (2.1.1) + rack (3.2.6) + rack-session (2.1.2) base64 (>= 0.1.0) rack (>= 3.0.0) rack-test (2.2.0) rack (>= 1.3) rackup (2.3.1) rack (>= 3) - rails (7.2.3) - actioncable (= 7.2.3) - actionmailbox (= 7.2.3) - actionmailer (= 7.2.3) - actionpack (= 7.2.3) - actiontext (= 7.2.3) - actionview (= 7.2.3) - activejob (= 7.2.3) - activemodel (= 7.2.3) - activerecord (= 7.2.3) - activestorage (= 7.2.3) - activesupport (= 7.2.3) + rails (7.2.3.1) + actioncable (= 7.2.3.1) + actionmailbox (= 7.2.3.1) + actionmailer (= 7.2.3.1) + actionpack (= 7.2.3.1) + actiontext (= 7.2.3.1) + actionview (= 7.2.3.1) + activejob (= 7.2.3.1) + activemodel (= 7.2.3.1) + activerecord (= 7.2.3.1) + activestorage (= 7.2.3.1) + activesupport (= 7.2.3.1) bundler (>= 1.15.0) - railties (= 7.2.3) + railties (= 7.2.3.1) rails-dom-testing (2.3.0) activesupport (>= 5.0.0) minitest @@ -266,9 +269,9 @@ GEM rails-html-sanitizer (1.7.0) loofah (~> 2.25) nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0) - railties (7.2.3) - actionpack (= 7.2.3) - activesupport (= 7.2.3) + railties (7.2.3.1) + actionpack (= 7.2.3.1) + activesupport (= 7.2.3.1) cgi irb (~> 1.13) rackup (>= 1.0.0) @@ -277,13 +280,13 @@ GEM tsort (>= 0.2) zeitwerk (~> 2.6) rainbow (3.1.1) - rake (13.3.1) - rake-compiler-dock (1.11.0) + rake (13.4.2) + rake-compiler-dock (1.12.0) rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) - rb_sys (0.9.124) - rake-compiler-dock (= 1.11.0) + rb_sys (0.9.128) + rake-compiler-dock (= 1.12.0) rbpdf (1.21.4) htmlentities rbpdf-font (~> 1.19.0) @@ -292,7 +295,7 @@ GEM erb psych (>= 4.0.0) tsort - regexp_parser (2.11.3) + regexp_parser (2.12.0) reline (0.6.3) io-console (~> 0.5) requestjs-rails (0.0.14) @@ -303,8 +306,8 @@ GEM mime-types (>= 1.16, < 4.0) netrc (~> 0.8) rexml (3.4.4) - roadie (5.2.1) - css_parser (~> 1.4) + roadie (5.3.0) + css_parser (>= 1.4, < 3.0) nokogiri (~> 1.15) roadie-rails (3.3.0) railties (>= 5.1, < 8.1) @@ -346,7 +349,7 @@ GEM crass (~> 1.0.2) nokogiri (>= 1.12.0) securerandom (0.4.1) - selenium-webdriver (4.41.0) + selenium-webdriver (4.45.0) base64 (~> 0.2) logger (~> 1.4) rexml (~> 3.2, >= 3.2.5) @@ -358,7 +361,7 @@ GEM simplecov_json_formatter (~> 0.1) simplecov-html (0.13.2) simplecov_json_formatter (0.1.4) - snaky_hash (2.0.3) + snaky_hash (2.0.6) hashie (>= 0.1.0, < 6) version_gem (>= 1.1.8, < 3) sqlite3 (2.5.0) @@ -384,10 +387,10 @@ GEM uniform_notifier (1.18.0) uri (1.1.1) useragent (0.16.11) - version_gem (1.1.9) + version_gem (1.1.12) webrick (1.9.2) websocket (1.2.11) - websocket-driver (0.8.0) + websocket-driver (0.8.1) base64 websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) @@ -396,8 +399,8 @@ GEM zeitwerk (>= 2.7) xpath (3.2.0) nokogiri (~> 1.8) - yard (0.9.38) - zeitwerk (2.7.5) + yard (0.9.44) + zeitwerk (2.8.2) PLATFORMS ruby @@ -436,7 +439,7 @@ DEPENDENCIES propshaft (~> 1.1.0) puma rack (>= 3.1.3) - rails (= 7.2.3) + rails (= 7.2.3.1) rails-dom-testing (>= 2.3.0) rbpdf (~> 1.21.4) requestjs-rails (~> 0.0.13) @@ -462,7 +465,7 @@ DEPENDENCIES yard RUBY VERSION - ruby 3.3.10p183 + ruby 3.4.9p82 BUNDLED WITH 2.7.2 diff --git a/pkgs/by-name/re/redmine/gemset.nix b/pkgs/by-name/re/redmine/gemset.nix index 5d9ec4e70b2a..b8b1c5989d7e 100644 --- a/pkgs/by-name/re/redmine/gemset.nix +++ b/pkgs/by-name/re/redmine/gemset.nix @@ -11,10 +11,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1yfl7blz9zlww0al921kmyqsmsx8gdphqjnszp5fgpzi8nr1fpg1"; + sha256 = "0g5kbrqvhwlliyrzd2bhc3kdiqm58df0x3w716bs0ygwyjil1gyk"; type = "gem"; }; - version = "7.2.3"; + version = "7.2.3.1"; }; actionmailbox = { dependencies = [ @@ -29,10 +29,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0pjdrdlv14mzq24qx95hpxhfza0k72qc3qymaa6x1wihqfkz1fqn"; + sha256 = "0hf59r6sk0qb5va0ga549rbadcb5n1a2ry8nlkszzcksr6039rx4"; type = "gem"; }; - version = "7.2.3"; + version = "7.2.3.1"; }; actionmailer = { dependencies = [ @@ -47,10 +47,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1f4axhrdhk9z3hjv6xzxqyj7c3y17mn7kz1li1fv5lm6aaw4dmk8"; + sha256 = "0rq4aan18y6gwziabnj1q1486349k1v1i5m7ysv206pqqpavcy7m"; type = "gem"; }; - version = "7.2.3"; + version = "7.2.3.1"; }; actionpack = { dependencies = [ @@ -70,10 +70,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1kq7fbgb5yfsjd1na2ghc7assk18ca24kbvsx90p0xwm8v3f851a"; + sha256 = "1jp4w493wvfh9246wxk7g00m1a3vmzkvs0rznq62fwvjjdzzwsmn"; type = "gem"; }; - version = "7.2.3"; + version = "7.2.3.1"; }; actionpack-xml_parser = { dependencies = [ @@ -102,10 +102,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0ds0m7qp55qkprhdkzpxrvbfiam95s58xj7555hf5d5pnzpxkzx6"; + sha256 = "1qs350j3zm7sd6xxn61d93mv3lx1ravbjqja12c7nd7a0zs1h52v"; type = "gem"; }; - version = "7.2.3"; + version = "7.2.3.1"; }; actionview = { dependencies = [ @@ -120,10 +120,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1cpc91crvavdgvc3jqj1nqr9q6s581bm64894pbh8f5l85x7shhz"; + sha256 = "0z7zy6ibfpsdj9jbdm54bx3ws4dszcq7qa564jn645rr8dlbh6fy"; type = "gem"; }; - version = "7.2.3"; + version = "7.2.3.1"; }; activejob = { dependencies = [ @@ -134,10 +134,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1c7zwmhkg9fpkl2isiggs9b2xbf8jf0hhbvmjfgbcrz25m3n8jg4"; + sha256 = "1n3fiwm1x3dxwj36n9pspd2bgffyw28ys9yd36hjvf3iwdy25i0b"; type = "gem"; }; - version = "7.2.3"; + version = "7.2.3.1"; }; activemodel = { dependencies = [ "activesupport" ]; @@ -145,10 +145,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1nrr8w3hxkssgx13bcph8lb876hg57w01fbapy7fj4ijp6p6dbxv"; + sha256 = "1l60a6mqx1wgp15ki1cp68djci0czgrikpydii5bd877hndqdq9r"; type = "gem"; }; - version = "7.2.3"; + version = "7.2.3.1"; }; activerecord = { dependencies = [ @@ -160,10 +160,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1mx087zngip62400z44p969l6fja1fjxliq6kym6npzbii3vgb3g"; + sha256 = "0pd0f1hy6rvyanmrklqir33xq0jb2my4jajz7hc38nysfpi175dq"; type = "gem"; }; - version = "7.2.3"; + version = "7.2.3.1"; }; activestorage = { dependencies = [ @@ -177,10 +177,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0bya6k7i8s6538fa4j2c0a0xrf6kggg8mhrwnkkqj356zaxj452c"; + sha256 = "1azzbpfp726yigwzmj8g2jji149wisnwrgb86zix6mk25sj4w8hb"; type = "gem"; }; - version = "7.2.3"; + version = "7.2.3.1"; }; activesupport = { dependencies = [ @@ -204,10 +204,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "043vbilaw855c91n5l7g0k0wxj63kngj911685qy74xc1mvwjxan"; + sha256 = "0d6bhg9cim83g8cypjd7cms45ng4p9ga69v26i3vp823d98yvsqi"; type = "gem"; }; - version = "7.2.3"; + version = "7.2.3.1"; }; addressable = { dependencies = [ "public_suffix" ]; @@ -218,10 +218,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "11ali533wx91fh93xlk88gjqq8w0p7kxw09nlh41hwc9wv5ly5fc"; + sha256 = "1by7h2lwziiblizpd5yx87jsq8ppdhzvwf08ga34wzqgcv1nmpvz"; type = "gem"; }; - version = "2.8.9"; + version = "2.9.0"; }; ast = { groups = [ @@ -236,6 +236,20 @@ }; version = "2.4.3"; }; + auth-sanitizer = { + dependencies = [ "version_gem" ]; + groups = [ + "default" + "test" + ]; + platforms = [ ]; + source = { + remotes = [ "https://rubygems.org" ]; + sha256 = "0xy5gjb12kv6zjn4zyd16yfv4bygd02ykbr6cz10d6sqyw0wyzci"; + type = "gem"; + }; + version = "0.2.1"; + }; base64 = { groups = [ "default" @@ -255,10 +269,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1krd99p9828n07rcjjms56jaqv7v6s9pn7y6bppcfhhaflyn2r2r"; + sha256 = "0clhya4p8lhjj7hp31inp321wgzb0b5wbwppmya5sw1dikl7400z"; type = "gem"; }; - version = "3.1.21"; + version = "3.1.22"; }; benchmark = { groups = [ @@ -284,10 +298,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "19y406nx17arzsbc515mjmr6k5p59afprspa1k423yd9cp8d61wb"; + sha256 = "1g9zi8c4i7g8zz0c3hxrw6mblrjvgn7akys60clb9si7c1k1gljk"; type = "gem"; }; - version = "4.0.1"; + version = "4.1.2"; }; builder = { groups = [ "default" ]; @@ -308,10 +322,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1zwq7g98c1mdigahb50c980a0fcc4ib1m9ivmgf3f8gc6qk7wjv0"; + sha256 = "1jy7yfn94acbcn23g9zh48b8j9jphwcqgr2vfy013zi4fd93q5n8"; type = "gem"; }; - version = "8.1.0"; + version = "8.1.3"; }; bundle-audit = { dependencies = [ "bundler-audit" ]; @@ -398,10 +412,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1aymcakhzl83k77g2f2krz07bg1cbafbcd2ghvwr4lky3rz86mkb"; + sha256 = "1c2i64xsd35vijnb50rxb70g508s0x674xi0qpyyb8jy7bncl4j4"; type = "gem"; }; - version = "1.3.6"; + version = "1.3.7"; }; connection_pool = { groups = [ @@ -433,10 +447,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1izp5vna86s7xivqzml4nviy01bv76arrd5is8wkncwp1by3zzbc"; + sha256 = "09b3zwmx95jhdp3da6qx9w0d6s2yfpxjjip55wpwny5wsx3v5l93"; type = "gem"; }; - version = "1.21.1"; + version = "2.2.0"; }; csv = { groups = [ "default" ]; @@ -522,10 +536,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0lpmvaglypxlmaiqv4sjrf1b1sc8f589cv7xq3rr4j26vw0lf1g4"; + sha256 = "195l8nfay1yb4igg348mjffikvh1m16b4899gyzz7ysgwkx3m9yy"; type = "gem"; }; - version = "5.2.8"; + version = "5.2.9"; }; drb = { groups = [ @@ -550,10 +564,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0ar4nmvk1sk7drjigqyh9nnps3mxg625b8chfk42557p8i6jdrlz"; + sha256 = "1ncmbdjf2bwmk0jf5cxywns9zbxyfiy4h4p3pzi7yddyjhv81qrq"; type = "gem"; }; - version = "6.0.2"; + version = "6.0.4"; }; erubi = { groups = [ "default" ]; @@ -578,10 +592,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "077n5ss3z3ds4vj54w201kd12smai853dp9c9n7ii7g3q7nwwg54"; + sha256 = "0y7j6yzv07zggic6g0p2v1ivnvkzsbqjnfdl4215qqb6cxz290hq"; type = "gem"; }; - version = "2.14.1"; + version = "2.14.3"; }; faraday-net_http = { dependencies = [ "net-http" ]; @@ -592,10 +606,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0v4hfmc7d4lrqqj2wl366rm9551gd08zkv2ppwwnjlnkc217aizi"; + sha256 = "125m3qri52vwh5v9dhq0dkqxf8629cxrf99yyc01pva72wasyy0f"; type = "gem"; }; - version = "3.4.2"; + version = "3.4.4"; }; ffi = { groups = [ @@ -622,10 +636,10 @@ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0k1xaqw2jk13q3ss7cnyvkp8fzp75dk4kazysrxgfd1rpgvkk7qf"; + sha256 = "1kqasqvy8d7r09ri4n6bkdwbk63j7afd9ilsw34nzlgh0qp69ldw"; type = "gem"; }; - version = "1.17.3"; + version = "1.17.4"; }; globalid = { dependencies = [ "activesupport" ]; @@ -698,10 +712,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "06dvmngd4hwrr6k774i1h6c50h2l8nww9f1id0wvrvi72l6yd99q"; + sha256 = "1aga7z4p0dka4zcqw9i05wa4ab1q7h7cgnj328ldqqfycjz84jxs"; type = "gem"; }; - version = "1.1.0"; + version = "1.1.6"; }; i18n = { dependencies = [ "concurrent-ruby" ]; @@ -762,10 +776,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1bishrxfn2anwlagw8rzly7i2yicjnr947f48nh638yqjgdlv30n"; + sha256 = "1qs8a9vprg7s8krgq4s0pygr91hclqqyz98ik15p0m1sf2h5956y"; type = "gem"; }; - version = "1.17.0"; + version = "1.18.0"; }; json = { groups = [ @@ -775,10 +789,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0b888h9v2y4aasi9aapxqimiaj1i1csk56l22dczigs8kv2zv56x"; + sha256 = "16mp8vzgxa8nsa81np042za453j8b0ihpjkf666s7byxrnvjb44v"; type = "gem"; }; - version = "2.19.1"; + version = "2.19.9"; }; jwt = { dependencies = [ "base64" ]; @@ -789,10 +803,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0dfm4bhl4fzn076igh0bmh2v1vphcrxdv6ldc46hdd3bkbqr2sdg"; + sha256 = "1mqps8z4ly74hpksfajcfamqk1wb79biy187pn10knmi6zzb26al"; type = "gem"; }; - version = "3.1.2"; + version = "3.2.0"; }; language_server-protocol = { groups = [ @@ -859,10 +873,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1rk0n13c9nmk8di2x5gqk5r04vf8bkp7ff6z0b44wsmc7fndfpnz"; + sha256 = "011fdngxzr1p9dq2hxqz7qq1glj2g44xnhaadjqlf48cplywfdnl"; type = "gem"; }; - version = "2.25.0"; + version = "2.25.1"; }; mail = { dependencies = [ @@ -885,10 +899,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1vhb1sbzlq42k2pzd9v0w5ws4kjx184y8h4d63296bn57jiwzkzx"; + sha256 = "17w53z6vka8ddmxvi936biqv443d5yg0503wj7xfmy9j1qvfjy0n"; type = "gem"; }; - version = "1.1.0"; + version = "1.2.1"; }; matrix = { groups = [ @@ -928,10 +942,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "09627cnx432528j7j73711fbd0r30ri0lfsh9dfiki94b3gg2jhn"; + sha256 = "1k28j6ww8rf43r5i8278jvm2cq3pnzsvqm7yqpb4p93kadjlq726"; type = "gem"; }; - version = "3.2026.0303"; + version = "3.2026.0414"; }; mini_magick = { dependencies = [ @@ -1008,10 +1022,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0nnzdswa9l6w8k5ndgbv5al9f0jkg14dqwzyic4fjd5c1cls1nxd"; + sha256 = "0msflv26i6i3jr9w761k4qdl7cp9zbhymjkn57b1w90pkjsndrvw"; type = "gem"; }; - version = "0.8.1"; + version = "0.9.1"; }; mysql2 = { dependencies = [ "bigdecimal" ]; @@ -1047,10 +1061,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1c9p0r2z6j14g0vi323r6x4cs6w87xjvphlkxf7x63h2wsscgc7d"; + sha256 = "0506bhwr62szwcagcvxayhwz0d20k5ax1sh742va3mjnnkqcfkgn"; type = "gem"; }; - version = "0.5.13"; + version = "0.5.15"; }; net-ldap = { groups = [ "ldap" ]; @@ -1134,13 +1148,14 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1lss1nh526n3h1qsig2kjchi8vlsjwc8pdjpplm1f2yz6rzk52sr"; + sha256 = "1s30b7h7qpyim30m8060xs415mbr3ci7i5hdg09chh1aqfx2qcbq"; type = "gem"; }; - version = "1.19.1"; + version = "1.19.3"; }; oauth2 = { dependencies = [ + "auth-sanitizer" "faraday" "jwt" "logger" @@ -1153,10 +1168,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "11rj80dgjz05x5xx93y4bfk9rcn7fl56srj8fgqn7ffzf3j13kxs"; + sha256 = "0k428i1mlk6g7c054iks86g2h4h2p1y0mg2l3g6w84gd9l8604g6"; type = "gem"; }; - version = "2.0.18"; + version = "2.0.23"; }; parallel = { groups = [ @@ -1166,10 +1181,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0c719bfgcszqvk9z47w2p8j2wkz5y35k48ywwas5yxbbh3hm3haa"; + sha256 = "0w697335hi5dk5ay9kyn53399sy87y8v0y6ij93m5wmshhadxrik"; type = "gem"; }; - version = "1.27.0"; + version = "1.28.0"; }; parser = { dependencies = [ @@ -1183,10 +1198,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0mwk9syajzdradzqzp3agf03d0cazqwbfd1439nxpkmxli5chq3g"; + sha256 = "0m2xqvn1la62hji1mn04y59giikww95p2hs0r4y2rrz3mdxcwyni"; type = "gem"; }; - version = "3.3.10.2"; + version = "3.3.11.1"; }; pg = { groups = [ "default" ]; @@ -1270,10 +1285,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0x0r3gc66abv8i4dw0x0370b5hrshjfp6kpp7wbp178cy775fypb"; + sha256 = "1dx5bc3s1mb1i53np4cdkypg7ccygnvagr3hglyndbqilrljvxql"; type = "gem"; }; - version = "5.3.1"; + version = "5.4.0"; }; public_suffix = { groups = [ @@ -1294,10 +1309,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1a3jd9qakasizrf7dkq5mqv51fjf02r2chybai2nskjaa6mz93mz"; + sha256 = "1yw6nvkvddriacmva8hm0za0961d6j96dm7zm6748rmyzcfqgvf8"; type = "gem"; }; - version = "7.2.0"; + version = "8.0.2"; }; racc = { groups = [ @@ -1321,10 +1336,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1lyn3rh71rlf50p44xmsbha0pip4c95004j8kc9pm7xpq1s0kgac"; + sha256 = "1hhjy9gcp52dzij05gmidqac8g28ski5xm67prwmdqmjfcgqxmsy"; type = "gem"; }; - version = "3.2.5"; + version = "3.2.6"; }; rack-session = { dependencies = [ @@ -1335,10 +1350,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1sg4laz2qmllxh1c5sqlj9n1r7scdn08p3m4b0zmhjvyx9yw0v8b"; + sha256 = "1s7zcxlmg88a6dam4aqbgk9xkpy6dkdfqmmcszkkliy3q3w38m2r"; type = "gem"; }; - version = "2.1.1"; + version = "2.1.2"; }; rack-test = { dependencies = [ "rack" ]; @@ -1384,10 +1399,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1zwvc2fa0hm27ygfz1yc2bs52h4wzj1nhpv6cip6g28i2gmi564s"; + sha256 = "155skqkjrckvzj1qy37lrnafrillc47qhf3l80g3zvw100ba1h4n"; type = "gem"; }; - version = "7.2.3"; + version = "7.2.3.1"; }; rails-dom-testing = { dependencies = [ @@ -1434,10 +1449,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "08h44mkf91861agp7xw778gqpf5mppydsfgphgkj7wp6pyk11c3f"; + sha256 = "0np1m8xqb4wbzwpg66yjnqjban0di92lbjzcrgnwwhq2w4z3k8xf"; type = "gem"; }; - version = "7.2.3"; + version = "7.2.3.1"; }; rainbow = { groups = [ @@ -1457,20 +1472,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "175iisqb211n0qbfyqd8jz2g01q6xj038zjf4q0nm8k6kz88k7lc"; + sha256 = "009p524zl0p0kfa65nii8wdmaigkmawv9pbvlcffky7islmmp0nb"; type = "gem"; }; - version = "13.3.1"; + version = "13.4.2"; }; rake-compiler-dock = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1hpq52ab86s70yv5hk56f0z14izhh59af95nlv73bsrksln1zdga"; + sha256 = "08w033c3p25wr0zwbgx0b4mb4ha5kqd4j0ydmx9j0gcgfg10acpi"; type = "gem"; }; - version = "1.11.0"; + version = "1.12.0"; }; rb-fsevent = { groups = [ @@ -1505,10 +1520,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1rvshyirm32lzf2sggcrhvz5hi828s3rznmkchvzgshjgdapcd2i"; + sha256 = "1z9q0l9l5r210jsmcmq3lxd4fr0j5lv348kn33g9a62fdm6izf4s"; type = "gem"; }; - version = "0.9.124"; + version = "0.9.128"; }; rbpdf = { dependencies = [ @@ -1561,10 +1576,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "192mzi0wgwl024pwpbfa6c2a2xlvbh3mjd75a0sakdvkl60z64ya"; + sha256 = "1fwfw26a32rps78920nn29shqg2zmqv72i89j1fap41isshida9m"; type = "gem"; }; - version = "2.11.3"; + version = "2.12.0"; }; reline = { dependencies = [ "io-console" ]; @@ -1630,10 +1645,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1mh1a0m0i0xrm20nry4d3gf0q5kbmm5lp15n52r93gcjwwfgd974"; + sha256 = "1jlzxlq52qbsacxkz4gny988j2pcip73ydp1fg9s1q98ra4h6554"; type = "gem"; }; - version = "5.2.1"; + version = "5.3.0"; }; roadie-rails = { dependencies = [ @@ -1843,10 +1858,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "08nxpr0lxn95ml19n0vy6dnw1gnhq9n1b0za5h18dwawsly1ghfd"; + sha256 = "1lg22fmcalwnzgnanswn5g7vc24wmancnvbyf1ynzb46vyj6bb7c"; type = "gem"; }; - version = "4.41.0"; + version = "4.45.0"; }; simplecov = { dependencies = [ @@ -1901,10 +1916,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0mnllrwhs7psw6xxs8x5yx85k12qjfdgs8zs0bxm70bfascx58r5"; + sha256 = "0jk50mjq69065ygdhkhbmxp9k2c7knizhp022ysq5xfyikjclqrn"; type = "gem"; }; - version = "2.0.3"; + version = "2.0.6"; }; sqlite3 = { dependencies = [ "mini_portile2" ]; @@ -2105,10 +2120,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "195r5qylwxwqbllnpli9c2pzin0lky6h3fw912h88g2lmri0j6hc"; + sha256 = "0gfv1qxfn202xffasw2mrrrf2jkdp6hsps0177k9fyc0fwb6k3xp"; type = "gem"; }; - version = "1.1.9"; + version = "1.1.12"; }; webrick = { groups = [ "default" ]; @@ -2142,10 +2157,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0qj9dmkmgahmadgh88kydb7cv15w13l1fj3kk9zz28iwji5vl3gd"; + sha256 = "15idgibqpdaj97f734drx8a7k1jcc8wvxlk2nbafac72ihikicjs"; type = "gem"; }; - version = "0.8.0"; + version = "0.8.1"; }; websocket-extensions = { groups = [ "default" ]; @@ -2190,19 +2205,19 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "03q1hf12csqy5q2inafzi44179zaq9n5yrb0k2j2llqhzcmbh7vj"; + sha256 = "0a3zi3v7qjm7lm4yp9z2sm959533k543sc4z0ixqik8wcfdpw27b"; type = "gem"; }; - version = "0.9.38"; + version = "0.9.44"; }; zeitwerk = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1pbkiwwla5gldgb3saamn91058nl1sq1344l5k36xsh9ih995nnq"; + sha256 = "04hx33lsnp4q0qf8982mz0acs1dap5s2bsmihi0n0g08249sc4kj"; type = "gem"; }; - version = "2.7.5"; + version = "2.8.2"; }; } diff --git a/pkgs/by-name/re/redmine/package.nix b/pkgs/by-name/re/redmine/package.nix index 90b099494bb2..aacda5507597 100644 --- a/pkgs/by-name/re/redmine/package.nix +++ b/pkgs/by-name/re/redmine/package.nix @@ -15,7 +15,7 @@ }: let - version = "6.1.2"; + version = "6.1.3"; rubyEnv = bundlerEnv { name = "redmine-env-${version}"; @@ -69,7 +69,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { src = fetchurl { url = "https://www.redmine.org/releases/redmine-${finalAttrs.version}.tar.gz"; - hash = "sha256-k46XXoCMz7Sw3LrYtC8Cqs8Mqe8VSRw4xa9HVnQMzwg="; + hash = "sha256-YdswCMf9GKOvxVntZW/Tj9+N+CIKxpWYsxkJUYMZC3o="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/by-name/se/servarr-ffmpeg/package.nix b/pkgs/by-name/se/servarr-ffmpeg/package.nix index 197e817f393e..0692c8a38bc2 100644 --- a/pkgs/by-name/se/servarr-ffmpeg/package.nix +++ b/pkgs/by-name/se/servarr-ffmpeg/package.nix @@ -6,7 +6,7 @@ }: let - version = "5.1.4"; + version = "5.1.10"; in (ffmpeg-headless.override { @@ -17,8 +17,8 @@ in source = fetchFromGitHub { owner = "Servarr"; repo = "FFmpeg"; - rev = "e9230b4c9027435dd402a68833f144643a3df43a"; - hash = "sha256-oMIblMOnnYpKvYeleCZpFZURGVc3fDAlYpOJu+u7HkU="; + rev = "9eecad42d64ab888b9bb366df998b5b7cac0e2bc"; + hash = "sha256-8qXQIbBNFRX3HsEHD2m4STHyxALqTSoIkKrVLc6vX/4="; }; buildFfmpeg = false; diff --git a/pkgs/by-name/si/sing-box/package.nix b/pkgs/by-name/si/sing-box/package.nix index 9f8d4eec4e87..30453fd03a3c 100644 --- a/pkgs/by-name/si/sing-box/package.nix +++ b/pkgs/by-name/si/sing-box/package.nix @@ -10,16 +10,16 @@ buildGoModule (finalAttrs: { pname = "sing-box"; - version = "1.13.13"; + version = "1.13.14"; src = fetchFromGitHub { owner = "SagerNet"; repo = "sing-box"; tag = "v${finalAttrs.version}"; - hash = "sha256-RsiBxPQOE4rE3cFRjl81x1uIG2A4/smSBUg+G0vm7uQ="; + hash = "sha256-ODQ1i2lOuQLb3LDq6ONqHJQ7sT7dXICCJoyW/I9zF38="; }; - vendorHash = "sha256-FUzGQx0TIJdWWYtF6781BSXLViFrXbPEdLKjuvtuleM="; + vendorHash = "sha256-Znk4bsm9TUseEuCQszs9rvVx8TDu+cwEVfVOhw7exYA="; tags = [ "with_gvisor" diff --git a/pkgs/by-name/so/sonarr/package.nix b/pkgs/by-name/so/sonarr/package.nix index 84f640006638..eb437a1f8c82 100644 --- a/pkgs/by-name/so/sonarr/package.nix +++ b/pkgs/by-name/so/sonarr/package.nix @@ -21,7 +21,7 @@ applyPatches, }: let - version = "4.0.17.2952"; + version = "4.0.18.2971"; # The dotnet8 compatibility patches also change `yarn.lock`, so we must pass # the already patched lockfile to `fetchYarnDeps`. src = applyPatches { @@ -29,7 +29,7 @@ let owner = "Sonarr"; repo = "Sonarr"; tag = "v${version}"; - hash = "sha256-nOpCKQqX6lHBcLtIC18CZ0nCrhXTjpEPcO0L2/kcNEo="; + hash = "sha256-83qbbBNk42KjKZNvYaAINoWZa3uEgaV0eveGl9dKTd8="; }; postPatch = '' mv src/NuGet.Config NuGet.Config @@ -208,6 +208,7 @@ buildDotnetModule { tie niklaskorz karaolidis + nyanloutre ]; mainProgram = "Sonarr"; # platforms inherited from dotnet-sdk. diff --git a/pkgs/by-name/sp/speakersafetyd/package.nix b/pkgs/by-name/sp/speakersafetyd/package.nix index 43412ece7307..03ee113db2db 100644 --- a/pkgs/by-name/sp/speakersafetyd/package.nix +++ b/pkgs/by-name/sp/speakersafetyd/package.nix @@ -11,16 +11,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "speakersafetyd"; - version = "2.0.0"; + version = "2.0.1"; src = fetchFromGitHub { owner = "AsahiLinux"; repo = "speakersafetyd"; tag = finalAttrs.version; - hash = "sha256-tHHoVJqWcip5u/e7M9l74opdzfe0Y9Q6ItIT7w7XfA8="; + hash = "sha256-duIPpTzZqVSZLxF/CYlxa1PPtnzeABTCYfZZ7lomkls="; }; - cargoHash = "sha256-v0w/eA/qd9xBivgq7BgdaGRGDdX2NA1gbRgv84cB6d4="; + cargoHash = "sha256-gg1VcCrXKk5QsNvU7wz039md0gpFom6SrLuW6tjNQog="; nativeBuildInputs = [ pkg-config diff --git a/pkgs/by-name/te/teleport_17/package.nix b/pkgs/by-name/te/teleport_17/package.nix index 6c166deafdc4..e70b5709bfeb 100644 --- a/pkgs/by-name/te/teleport_17/package.nix +++ b/pkgs/by-name/te/teleport_17/package.nix @@ -7,11 +7,11 @@ }: buildTeleport { - version = "17.7.23"; - hash = "sha256-o1aYmNN4yytgJFQ7V1sPjq6r2pDzf4mG/juyYK5IF3A="; - vendorHash = "sha256-cL2U1GOV6PtxSl8N8gjKOHCpj5jhun5D+DbeWBixnxI="; + version = "17.7.24"; + hash = "sha256-45vaxznxRfa4X/V7hZsQKVIWvbVG8F2cEQN19xp4WQg="; + vendorHash = "sha256-ERwCdWdp230wkqsRUCnd1hbO4PqXo+gDPsoGbxQqt04="; cargoHash = "sha256-cDcDfptq8z0pwjImuAovv/5XwoaPb/ostyxkyNEbkRM="; - pnpmHash = "sha256-NTH5YnqeZg/jEkjguSXGS3/MI/r8us11By/fZ1m1caQ="; + pnpmHash = "sha256-hk9DI3GSBm2XttCYCi5kjhEhUMm5ToRQcbT+RYI+S2Q="; wasm-bindgen-cli = wasm-bindgen-cli_0_2_95; inherit buildGoModule withRdpClient extPatches; diff --git a/pkgs/by-name/te/teleport_18/package.nix b/pkgs/by-name/te/teleport_18/package.nix index d93d3874fe32..71fb509ee77e 100644 --- a/pkgs/by-name/te/teleport_18/package.nix +++ b/pkgs/by-name/te/teleport_18/package.nix @@ -7,11 +7,11 @@ }: buildTeleport { - version = "18.7.6"; - hash = "sha256-p7qwsUr6n6OAl/b20SgropAubfPfwBiVTvbReb2HpO8="; - vendorHash = "sha256-/ZY0J0yB/8qMG6vEIta7Nf2Uv3xTZ/WPoMz+Dj5hwZA="; - pnpmHash = "sha256-uRsS5m0Q4fAFvJ3Qp6xcEAB8QFriLXbeGtD0o0n46RE="; - cargoHash = "sha256-KkFwMSBXsRmDuaPU1n6FPq2P5UQiQnb7+HEDOhhmjd0="; + version = "18.8.3"; + hash = "sha256-DHPOWIvzBCOT3GU0YHBtG46ctB0Nh8XwSmpl9vgCET8="; + vendorHash = "sha256-0+fIoprAQyoom9xBpXGiEgmE4dWktcqlZQOzkRXYlKo="; + pnpmHash = "sha256-8FlC9Sm12A5kfS9X0qYDNJOePZjeJU7LDTRlWUIEneA="; + cargoHash = "sha256-IX0HCeCosXCe/oTYa8PImemf9op2AeagSnl44uBnSbM="; wasm-bindgen-cli = wasm-bindgen-cli_0_2_99; buildGoModule = buildGo125Module; diff --git a/pkgs/by-name/te/temporal_capi/package.nix b/pkgs/by-name/te/temporal_capi/package.nix index 28ea9526a1b9..f536a71dc4a5 100644 --- a/pkgs/by-name/te/temporal_capi/package.nix +++ b/pkgs/by-name/te/temporal_capi/package.nix @@ -11,16 +11,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "temporal_capi"; - version = "0.2.3"; + version = "0.2.4"; src = fetchFromGitHub { owner = "boa-dev"; repo = "temporal"; tag = "v${finalAttrs.version}"; - hash = "sha256-wD4pTVgQZrGONgSTDm9Eq3fo3Ez7aIC0/n4Rqgksad4="; + hash = "sha256-0JhYANVsVvNC0OZe1E6WzGc+pH9j7Z9SGCmhk8TQanU="; }; - cargoHash = "sha256-8m4fWMEZxQ4g3h+81K9KnQvHHewmExOq0nouJ7wec8M="; + cargoHash = "sha256-atS6chUiKa9VVbsyar00YCdlVOuZ52qQWkz6HIvEqP4="; postPatch = '' # Force crate-type to include staticlib diff --git a/pkgs/by-name/to/tor/package.nix b/pkgs/by-name/to/tor/package.nix index aec143bf3329..02543dacc7e4 100644 --- a/pkgs/by-name/to/tor/package.nix +++ b/pkgs/by-name/to/tor/package.nix @@ -46,11 +46,11 @@ in stdenv.mkDerivation (finalAttrs: { pname = "tor"; - version = "0.4.9.10"; + version = "0.4.9.11"; src = fetchurl { url = "https://dist.torproject.org/tor-${finalAttrs.version}.tar.gz"; - hash = "sha256-3+6QTq6Pw4ouOzURVPisD8oqZkkDjxp+allGHeV9pH8="; + hash = "sha256-LmwXIBGMgSrPAHn9R8+Rtr+rpddmwyHE09KijWoRqO0="; }; outputs = [ diff --git a/pkgs/development/libraries/ffmpeg/default.nix b/pkgs/development/libraries/ffmpeg/default.nix index acfedac85f4d..5baddb0c34e2 100644 --- a/pkgs/development/libraries/ffmpeg/default.nix +++ b/pkgs/development/libraries/ffmpeg/default.nix @@ -16,18 +16,18 @@ let ); v4 = { - version = "4.4.7"; - hash = "sha256-A/75BOHNhoal0VLJPOoQmyBHF4BIVk8iZOdM3RBU6iE="; + version = "4.4.8"; + hash = "sha256-byCiCiuwrikID6hCe0CD2KyPVUYuGmas5Zs0fd6dJRQ="; }; v6 = { - version = "6.1.5"; - hash = "sha256-iLAqdv1Dn7qln8Ag5lbGKOrWQZVLNREAgXbdDbHiMjc="; + version = "6.1.6"; + hash = "sha256-7Mu0D9AVR+rVfqtZMmNV9EUNpUyMr09p/PuET0muS0U="; }; v7 = { - version = "7.1.4"; - hash = "sha256-GDN0+tJY8Nap9UkNUfzqT9cGV1IVCuy5Du/64G+8QdE="; + version = "7.1.5"; + hash = "sha256-DjmW5LeI9OJmPeIh61znAns4+kolxwKguEvKawgxy8I="; }; v8 = { version = "8.1.1"; diff --git a/pkgs/development/libraries/ffmpeg/generic.nix b/pkgs/development/libraries/ffmpeg/generic.nix index 06cf679cd2cd..91eff80b0b17 100644 --- a/pkgs/development/libraries/ffmpeg/generic.nix +++ b/pkgs/development/libraries/ffmpeg/generic.nix @@ -460,15 +460,7 @@ stdenv.mkDerivation ( hash = "sha256-ulB5BujAkoRJ8VHou64Th3E94z6m+l6v9DpG7/9nYsM="; }) ] - ++ optionals (lib.versionAtLeast version "6.1" && lib.versionOlder version "6.2") [ - (fetchpatch2 { - # this can be removed post 6.1 - name = "fix_build_failure_due_to_PropertyKey_EncoderID"; - url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/cb049d377f54f6b747667a93e4b719380c3e9475"; - hash = "sha256-sxRXKKgUak5vsQTiV7ge8vp+N22CdTIvuczNgVRP72c="; - }) - ] - ++ optionals (lib.versionOlder version "7.1.1") [ + ++ optionals (lib.versionOlder version "7.1.1" && lib.versions.major version != "5") [ (fetchpatch2 { name = "texinfo-7.1.patch"; url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/4d9cdf82ee36a7da4f065821c86165fe565aeac2"; diff --git a/pkgs/development/ocaml-modules/landmarks-ppx/default.nix b/pkgs/development/ocaml-modules/landmarks-ppx/default.nix index dedaee7e9c5c..06923412f2f0 100644 --- a/pkgs/development/ocaml-modules/landmarks-ppx/default.nix +++ b/pkgs/development/ocaml-modules/landmarks-ppx/default.nix @@ -1,8 +1,5 @@ { - lib, buildDunePackage, - fetchpatch, - ocaml, landmarks, ppxlib, }: @@ -10,17 +7,14 @@ buildDunePackage { pname = "landmarks-ppx"; - inherit (landmarks) src version; + minimalOCamlVersion = "5.3"; - patches = lib.optional (lib.versionAtLeast ppxlib.version "0.36") (fetchpatch { - url = "https://github.com/LexiFi/landmarks/commit/367c229e3275a83f81343ba116374bb68abc9d83.patch"; - hash = "sha256-Qxue+++sNV6EHJGX1mbIeY2E2D5NuFpmIIBkTyvGvo8="; - }); + inherit (landmarks) src version; buildInputs = [ ppxlib ]; propagatedBuildInputs = [ landmarks ]; - doCheck = lib.versionAtLeast ocaml.version "5.1"; + doCheck = true; meta = landmarks.meta // { description = "Preprocessor instrumenting code using the landmarks library"; diff --git a/pkgs/development/ocaml-modules/landmarks/default.nix b/pkgs/development/ocaml-modules/landmarks/default.nix index 757417c82f23..09600d6178c7 100644 --- a/pkgs/development/ocaml-modules/landmarks/default.nix +++ b/pkgs/development/ocaml-modules/landmarks/default.nix @@ -2,25 +2,23 @@ lib, fetchFromGitHub, buildDunePackage, - ocaml, }: buildDunePackage (finalAttrs: { pname = "landmarks"; - version = "1.5"; - minimalOCamlVersion = "4.08"; + version = "1.7"; src = fetchFromGitHub { owner = "LexiFi"; repo = "landmarks"; tag = "v${finalAttrs.version}"; - hash = "sha256-eIq02D19OzDOrMDHE1Ecrgk+T6s9vj2X6B2HY+z+K8Q="; + hash = "sha256-9o9jf0M3zKc+Xojs4dqPRctYswSYqIo0jeOvkfdLfZ4="; }; - doCheck = lib.versionAtLeast ocaml.version "4.08" && lib.versionOlder ocaml.version "5.0"; + doCheck = true; meta = { - inherit (finalAttrs.src.meta) homepage; + homepage = "https://github.com/LexiFi/landmarks"; description = "Simple Profiling Library for OCaml"; longDescription = '' Landmarks is a simple profiling library for OCaml. It provides diff --git a/pkgs/development/ocaml-modules/ocsipersist/lib.nix b/pkgs/development/ocaml-modules/ocsipersist/lib.nix index 339e1c11d0f6..d498b0e41eb2 100644 --- a/pkgs/development/ocaml-modules/ocsipersist/lib.nix +++ b/pkgs/development/ocaml-modules/ocsipersist/lib.nix @@ -1,41 +1,30 @@ { lib, buildDunePackage, - applyPatches, - fetchpatch, fetchFromGitHub, + js_of_ocaml, lwt_ppx, lwt, }: buildDunePackage (finalAttrs: { pname = "ocsipersist-lib"; - version = "2.0.0"; + version = "2.1.0"; - src = applyPatches { + minimalOCamlVersion = "4.13"; - src = fetchFromGitHub { - owner = "ocsigen"; - repo = "ocsipersist"; - tag = finalAttrs.version; - hash = "sha256-7CKKwJxqxUpCMNs4xGbsMZ6Qud9AnczBStTXS+N21DU="; - }; - - patches = [ - # Migrate to logs - (fetchpatch { - url = "https://github.com/ocsigen/ocsipersist/commit/1fc0088b4dc2226f01863dd25f8ed56528c5543d.patch"; - hash = "sha256-WR7SW8jAAo47AIQ7UMQNF8FTXgj6FbxIqFjrLhu7wFs="; - excludes = [ - "*.opam" - "dune-project" - ]; - }) - ]; + src = fetchFromGitHub { + owner = "ocsigen"; + repo = "ocsipersist"; + tag = finalAttrs.version; + hash = "sha256-YJzfgeyNXgBXAK607ROUXUmSpMKYx63ofZaBB8dnsq4="; }; buildInputs = [ lwt_ppx ]; - propagatedBuildInputs = [ lwt ]; + propagatedBuildInputs = [ + js_of_ocaml + lwt + ]; meta = { description = "Persistent key/value storage (for Ocsigen) - support library"; diff --git a/pkgs/development/python-modules/itables/default.nix b/pkgs/development/python-modules/itables/default.nix index b367545cb49b..adb7eca7b2ce 100644 --- a/pkgs/development/python-modules/itables/default.nix +++ b/pkgs/development/python-modules/itables/default.nix @@ -31,7 +31,7 @@ buildPythonPackage rec { pname = "itables"; - version = "2.8.0"; + version = "2.8.1"; # itables has 4 different node packages, each with their own # package-lock.json, and partially depending on each other. @@ -39,7 +39,7 @@ buildPythonPackage rec { # the source tarball from pypi, which includes the javascript bundle already. src = fetchPypi { inherit pname version; - hash = "sha256-uDJfvb0GEATyHqYkJZROXnGmTCpkhJlk4KSwAM3nA2I="; + hash = "sha256-Vix9cW1mfz+vh//hBEoZdHo7Ix7mqncl62+QjKoYxCk="; }; pyproject = true; diff --git a/pkgs/development/tools/pnpm/default.nix b/pkgs/development/tools/pnpm/default.nix index b8606c879724..f81d2861f3eb 100644 --- a/pkgs/development/tools/pnpm/default.nix +++ b/pkgs/development/tools/pnpm/default.nix @@ -22,12 +22,12 @@ let hash = "sha256-hAL2daH0zJ1PJ7v6s1wtSi4dfrATHfA9rQlhnoZnTQw="; }; "10" = { - version = "10.33.4"; - hash = "sha256-jnDdxmSbGLw9iVzzqQjAKR6kw4A5rYcixH4Bja8enPw="; + version = "10.34.0"; + hash = "sha256-WOFDJYhx31FYm2UcBiBdq+xIdmpdu6PCWZm2m1C+WY4="; }; "11" = { - version = "11.8.0"; - hash = "sha256-HpY6XEylFoVQugP8TujYc6dysHK3/OY7SP/yfXIOLpg="; + version = "11.9.0"; + hash = "sha256-K1Z6pmAmI4B4rC4KM77D/r1g6WKYeqxpdFbzGAgZsoc="; }; }; diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix index 85f67b213d7a..26f2a6530991 100644 --- a/pkgs/os-specific/linux/nvidia-x11/default.nix +++ b/pkgs/os-specific/linux/nvidia-x11/default.nix @@ -181,8 +181,8 @@ rec { # Source corresponding to https://aur.archlinux.org/packages/nvidia-470xx-dkms aurPatches = fetchgit { url = "https://aur.archlinux.org/nvidia-470xx-utils.git"; - rev = "7c1c2c124147d960a6c7114eb26a4eadae9b9f3d"; - hash = "sha256-sNW+I4dkPSudfORLEp1RNGHyQKWBYnBEeGrfJU7SYTs="; + rev = "7abbeeb510742be09e1eb806c14bab2833a25783"; + hash = "sha256-hRBws0o4DWI5fvZRn0OwitXRSR9HCkRkgnvnkiZI6Ko="; }; in generic { @@ -203,6 +203,9 @@ rec { "nvidia-470xx-fix-linux-6.14.patch" "nvidia-470xx-fix-linux-6.15.patch" "nvidia-470xx-fix-linux-6.17.patch" + "nvidia-470xx-fix-linux-6.19-part1.patch" + "nvidia-470xx-fix-linux-6.19-part2.patch" + "nvidia-470xx-fix-linux-7.0.patch" ]; patchFlags = [ "-p1" diff --git a/pkgs/os-specific/linux/zfs/2_4.nix b/pkgs/os-specific/linux/zfs/2_4.nix index 5752d198e755..80d3cb8e8487 100644 --- a/pkgs/os-specific/linux/zfs/2_4.nix +++ b/pkgs/os-specific/linux/zfs/2_4.nix @@ -18,6 +18,15 @@ callPackage ./generic.nix args { # this package should point to the latest release. version = "2.4.2"; + extraPatches = [ + # https://github.com/openzfs/zfs/issues/18366 + # dedup data corruption fix unreleased as of OpenZFS 2.4.3 + (fetchpatch { + url = "https://github.com/openzfs/zfs/commit/6fb72fda0f60d9efb591e320f83f78b19ec451cc.patch?full_index=1"; + hash = "sha256-UuSVmO61Ux5S3F+JAtRnHyeVS4EFobDTKBuD5s8PI+k="; + }) + ]; + tests = { inherit (nixosTests.zfs) series_2_4; } diff --git a/pkgs/servers/http/nginx/mainline.nix b/pkgs/servers/http/nginx/mainline.nix index 7e6e8943428c..ffdd1b43b0f5 100644 --- a/pkgs/servers/http/nginx/mainline.nix +++ b/pkgs/servers/http/nginx/mainline.nix @@ -1,6 +1,6 @@ { callPackage, ... }@args: callPackage ./generic.nix args { - version = "1.31.1"; - hash = "sha256-n8quuPIlRLCaGadh80EsQRIhVCJAFjS+vdEpakA8xLw="; + version = "1.31.2"; + hash = "sha256-ryqVfEHaY23cT4g+RSPG0UC0eE285CAAw2SuUJKqRzw="; } diff --git a/pkgs/servers/http/nginx/stable.nix b/pkgs/servers/http/nginx/stable.nix index 61d47dba246b..c67b76e64573 100644 --- a/pkgs/servers/http/nginx/stable.nix +++ b/pkgs/servers/http/nginx/stable.nix @@ -1,6 +1,6 @@ { callPackage, ... }@args: callPackage ./generic.nix args { - version = "1.30.2"; - hash = "sha256-ffMJCQf8o8wORW1twAzrIw2nTqiAJs7/Cv/CnbvZrEw="; + version = "1.30.3"; + hash = "sha256-5YI9xvRWEJk975Pr9s/OaCZK9JWMd+h0t9IPNwkAG48="; } diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix index 17be55522861..14f1eb85885f 100644 --- a/pkgs/stdenv/generic/check-meta.nix +++ b/pkgs/stdenv/generic/check-meta.nix @@ -50,6 +50,7 @@ let inherit (import ./problems.nix { inherit lib; }) problemsType genCheckProblems + completeMetaProblems ; checkProblems = genCheckProblems config; @@ -639,6 +640,8 @@ let unsupported = hasUnsupportedPlatform attrs; insecure = isMarkedInsecure attrs; + problems = completeMetaProblems config attrs; + available = validity.valid != "no" && ((config.checkMetaRecursively or false) -> all (d: d.meta.available or true) references); diff --git a/pkgs/stdenv/generic/problems.nix b/pkgs/stdenv/generic/problems.nix index 926075bd8229..e21f2126acbe 100644 --- a/pkgs/stdenv/generic/problems.nix +++ b/pkgs/stdenv/generic/problems.nix @@ -48,6 +48,8 @@ rec { groupBy subtractLists genAttrs + concatMap + unique ; handlers = rec { @@ -70,66 +72,81 @@ rec { max = a: b: if lessThan a b then b else a; }; - # TODO: Combine this and automaticProblems into a `{ removal = { manual = true; ... }; ... }` structure for less error-prone changes - kinds = rec { - # Automatic and manual problem kinds - known = map (problem: problem.kindName) automaticProblems ++ manual; - # Problem kinds that are currently allowed to be specified in `meta.problems` - manual = [ - "removal" - "deprecated" - "broken" - ]; - # Problem kinds that are currently only allowed to be specified once - unique = [ - "removal" - ]; + kinds = { + maintainerless = { + manualAllowed = false; + isUnique = false; + nixpkgsInternalUseAllowed = true; + automatic = { + condition = + # To get usable output, we want to avoid flagging "internal" derivations. + # Because we do not have a way to reliably decide between internal or + # external derivation, some heuristics are required to decide. + # + # If `outputHash` is defined, the derivation is a FOD, such as the output of a fetcher. + # If `description` is not defined, the derivation is probably not a package. + # Simply checking whether `meta` is defined is insufficient, + # as some fetchers and trivial builders do define meta. + config: attrs: + # Order of checks optimised for short-circuiting the common case of having maintainers + (attrs.meta.maintainers or [ ] == [ ]) + && (attrs.meta.teams or [ ] == [ ]) + && (!attrs ? outputHash) + && (attrs ? meta.description); + value.message = "This package has no declared maintainer, i.e. an empty `meta.maintainers` and `meta.teams` attribute."; + }; + }; + broken = { + manualAllowed = true; + isUnique = false; + nixpkgsInternalUseAllowed = true; + automatic = { + condition = + config: + let + # TODO: Consider deprecating this or making it generic for all problems + allowBroken = config.allowBroken || builtins.getEnv "NIXPKGS_ALLOW_BROKEN" == "1"; - # Same thing but a set with null values (comes in handy at times) - manual' = genAttrs manual (k: null); - unique' = genAttrs unique (k: null); - }; - - automaticProblems = [ - { - kindName = "maintainerless"; - condition = - # To get usable output, we want to avoid flagging "internal" derivations. - # Because we do not have a way to reliably decide between internal or - # external derivation, some heuristics are required to decide. - # - # If `outputHash` is defined, the derivation is a FOD, such as the output of a fetcher. - # If `description` is not defined, the derivation is probably not a package. - # Simply checking whether `meta` is defined is insufficient, - # as some fetchers and trivial builders do define meta. - config: attrs: - # Order of checks optimised for short-circuiting the common case of having maintainers - (attrs.meta.maintainers or [ ] == [ ]) - && (attrs.meta.teams or [ ] == [ ]) - && (!attrs ? outputHash) - && (attrs ? meta.description); - value.message = "This package has no declared maintainer, i.e. an empty `meta.maintainers` and `meta.teams` attribute."; - } - { - kindName = "broken"; - condition = - config: - let - # TODO: Consider deprecating this or making it generic for all problems - allowBroken = config.allowBroken || builtins.getEnv "NIXPKGS_ALLOW_BROKEN" == "1"; - - allowBrokenPredicate = - if config ? allowBrokenPredicate then + allowBrokenPredicate = lib.warnIf (lib.oldestSupportedReleaseIsAtLeast 2605) "config.allowBrokenPredicate is deprecated, use config.problems.handlers.myPackage.broken = \"warn\" for individual packages instead." - config.allowBrokenPredicate - else - x: false; - in - attrs: attrs.meta.broken or false && !allowBroken && !allowBrokenPredicate attrs; - value.message = "This package is broken."; - } - ]; + config.allowBrokenPredicate; + in + if allowBroken then + attrs: false + else if config ? allowBrokenPredicate then + attrs: attrs ? meta.broken && attrs.meta.broken && !allowBrokenPredicate attrs + else + attrs: attrs ? meta.broken && attrs.meta.broken; + value.message = "This package is broken."; + }; + }; + removal = { + manualAllowed = true; + isUnique = true; + nixpkgsInternalUseAllowed = false; + automatic = null; + }; + deprecated = { + manualAllowed = true; + isUnique = false; + nixpkgsInternalUseAllowed = false; + automatic = null; + }; + }; + + # Problem kinds that are currently allowed to be specified in `meta.problems` + manualKinds = lib.filterAttrs (name: value: value.manualAllowed) kinds; + # Problem kinds that are currently only allowed to be specified once + uniqueKinds = lib.filterAttrs (name: value: value.isUnique) kinds; + + disallowNixpkgsInternalUseKinds = lib.filterAttrs ( + name: value: !value.nixpkgsInternalUseAllowed + ) kinds; + + automaticProblems = lib.mapAttrsToList (name: value: value.automatic // { kindName = name; }) ( + lib.filterAttrs (name: value: value.automatic != null) kinds + ); genAutomaticProblems = config: attrs: @@ -144,7 +161,7 @@ rec { let types = lib.types; handlerType = types.enum handlers.levels; - problemKindType = types.enum kinds.known; + problemKindType = types.enum (attrNames kinds); in { handlers = lib.mkOption { @@ -246,7 +263,8 @@ rec { record enum ; - kindType = enum kinds.manual; + # While we should only allow manual kinds, we need to allow `meta.problems = otherPackage.meta.problems`, which includes automatic ones as well + kindType = enum (attrNames kinds); subRecord = record { kind = kindType; message = str; @@ -266,7 +284,7 @@ rec { let kindGroups = groupBy (kind: kind) (mapAttrsToList (name: problem: problem.kind or name) v); in - all (kind: kinds.manual' ? ${kind} && (kinds.unique' ? ${kind} -> length kindGroups.${kind} == 1)) ( + all (kind: kinds ? ${kind} && (uniqueKinds ? ${kind} -> length kindGroups.${kind} == 1)) ( attrNames kindGroups ) ); @@ -290,14 +308,14 @@ rec { ++ concatLists ( mapAttrsToList ( kind: kindGroup: - optionals (!kinds.manual' ? ${kind}) ( + optionals (!kinds ? ${kind}) ( map ( el: "${ctx}.${el.name}: Problem kind ${kind}, inferred from the problem name, is invalid; expected ${kindType.name}. You can specify an explicit problem kind with `${ctx}.${el.name}.kind`" ) (filter (el: !el.explicit) kindGroup) ) ++ - optional (kinds.unique' ? ${kind} && length kindGroup > 1) + optional (uniqueKinds ? ${kind} && length kindGroup > 1) "${ctx}: Problem kind ${kind} should be unique, but is used for these problems: ${ concatMapStringsSep ", " (el: el.name) kindGroup }" @@ -330,7 +348,10 @@ rec { }; }; - Returns both the structure itself for inspection and a function that can query it with very few allocations/lookups + Returns: + - the structure itself for inspection + - a function that can query the structure with very few allocations/lookups + - a list of problem kinds/names/packages that require handling This allows collapsing arbitrarily many problem handlers/matchers into a predictable structure that can be queried in a predictable and fast way */ @@ -352,6 +373,20 @@ rec { ) config.problems.handlers ); + # Lookup table for all the kinds/names/packages that actually need to be + # handled + definedConstraints = listToAttrs ( + map (ident: { + name = "${ident}s"; # plural + value = unique ( + concatMap ( + constraint: + optionals (constraint.${ident} != null && constraint.handler != "ignore") [ (constraint.${ident}) ] + ) constraints + ); + }) identOrder + ); + getHandler = list: (foldl' @@ -410,26 +445,27 @@ rec { switch = doLevel 0 constraints; in { - inherit switch; + inherit switch definedConstraints; handlerForProblem = if isString switch then - pname: name: kind: + kind: name: pname: switch else - pname: name: kind: + kind: let - switch' = switch.kindSpecific.${kind} or switch.kindFallback; + kindSwitch = switch.kindSpecific.${kind} or switch.kindFallback; in - if isString switch' then - switch' + if isString kindSwitch then + name: pname: kindSwitch else + name: let - switch'' = switch'.nameSpecific.${name} or switch'.nameFallback; + nameSwitch = kindSwitch.nameSpecific.${name} or kindSwitch.nameFallback; in - if isString switch'' then - switch'' + if isString nameSwitch then + pname: nameSwitch else - switch''.packageSpecific.${pname} or switch''.packageFallback; + pname: nameSwitch.packageSpecific.${pname} or nameSwitch.packageFallback; }; genCheckProblems = @@ -438,50 +474,62 @@ rec { # This is here so that it gets cached for a (checkProblems config) thunk inherit (genHandlerSwitch config) handlerForProblem + definedConstraints ; - # Makes sure that automatic problems can cache with just config applied - automaticProblemsConfigCache = map ( - problem: problem // { condition = problem.condition config; } + + # All the problem kinds that actually need to be checked + configuredProblems = definedConstraints.kinds ++ definedConstraints.names; + + # Filter out any problems that are always ignored in config.problems. + # Makes sure to cache the condition by appliny config, and the handler + # by applying the problem's kind and name + automaticProblemsConfigCache = concatMap ( + problem: + optional (elem problem.kindName configuredProblems) { + condition = problem.condition config; + handler = handlerForProblem problem.kindName problem.kindName; + } ) automaticProblems; in attrs: - let - pname = getName attrs; - manualProblems = attrs.meta.problems or { }; - in if # Fast path for when there's no problem that needs to be handled - # No automatic problems that needs handling all ( - problem: - problem.condition attrs -> handlerForProblem pname problem.kindName problem.kindName == "ignore" + problem: problem.condition attrs -> problem.handler (getName attrs) == "ignore" ) automaticProblemsConfigCache && ( # No manual problems - manualProblems == { } + !attrs ? meta.problems # Or all manual problems are ignored - || all (name: handlerForProblem pname name (manualProblems.${name}.kind or name) == "ignore") ( - attrNames manualProblems - ) + || all ( + name: handlerForProblem (attrs.meta.problems.${name}.kind or name) name (getName attrs) == "ignore" + ) (attrNames attrs.meta.problems) ) then null else # Slow path, only here we actually figure out which problems we need to handle let + pname = getName attrs; problems = attrs.meta.problems or { } // genAutomaticProblems config attrs; problemsToHandle = filter (v: v.handler != "ignore") ( mapAttrsToList (name: problem: rec { inherit name; # Kind falls back to the name kind = problem.kind or name; - handler = handlerForProblem pname name kind; + handler = handlerForProblem kind name pname; inherit problem; }) problems ); in processProblems pname problemsToHandle; + completeMetaProblems = + config: attrs: + mapAttrs (name: problem: { kind = name; } // problem) ( + (attrs.meta.problems or { }) // genAutomaticProblems config attrs + ); + processProblems = pname: problemsToHandle: let diff --git a/pkgs/test/problems/cases/invalid-kind-error/expected-stderr b/pkgs/test/problems/cases/invalid-kind-error/expected-stderr index 07c5a38e1bcb..6fdf2b1d04b1 100644 --- a/pkgs/test/problems/cases/invalid-kind-error/expected-stderr +++ b/pkgs/test/problems/cases/invalid-kind-error/expected-stderr @@ -1,4 +1,4 @@ (stack trace truncated; use '--show-trace' to show the full, detailed trace) error: Refusing to evaluate package 'a-0' in /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-default.nix:11 because it has an invalid meta attrset: - - a.meta.problems.invalid: Problem kind invalid, inferred from the problem name, is invalid; expected enum. You can specify an explicit problem kind with `a.meta.problems.invalid.kind` + - a.meta.problems.invalid: Problem kind invalid, inferred from the problem name, is invalid; expected enum. You can specify an explicit problem kind with `a.meta.problems.invalid.kind` diff --git a/pkgs/test/problems/unit.nix b/pkgs/test/problems/unit.nix index 073ddaa12cfa..aef201508e63 100644 --- a/pkgs/test/problems/unit.nix +++ b/pkgs/test/problems/unit.nix @@ -2,10 +2,15 @@ let p = import ../../stdenv/generic/problems.nix { inherit lib; }; + genConstraintsTest = problems: expected: { + expr = (p.genHandlerSwitch { inherit problems; }).definedConstraints; + inherit expected; + }; + genHandlerTest = let slowReference = - config: package: name: kind: + config: kind: name: package: # Try to find an explicit handler (config.problems.handlers.${package} or { }).${name} # Fall back, iterating through the matchers @@ -31,7 +36,7 @@ let map ( name: - map (kind: f package name kind) [ + map (kind: f kind name package) [ "k1" "k2" "k3" @@ -150,4 +155,84 @@ lib.runTests { ]; handlers = { }; }; + + testDefinedConstraintsEmpty = + genConstraintsTest + { + matchers = [ ]; + handlers = { }; + } + { + kinds = [ ]; + names = [ ]; + packages = [ ]; + }; + + testDefinedConstraintsMatchers = + genConstraintsTest + { + handlers = { }; + matchers = [ + { + package = null; + name = null; + kind = "k1"; + handler = "warn"; + } + { + package = null; + name = null; + kind = "k2"; + handler = "error"; + } + { + package = null; + name = null; + kind = "k3"; + handler = "ignore"; + } + { + package = "p1"; + name = "n1"; + kind = null; + handler = "error"; + } + { + package = "p2"; + name = "n1"; + kind = null; + handler = "warn"; + } + ]; + } + { + kinds = [ + "k1" + "k2" + ]; + names = [ "n1" ]; + packages = [ + "p1" + "p2" + ]; + }; + + testDefinedConstraintsHandlers = + genConstraintsTest + { + matchers = [ ]; + handlers.p1.n1 = "warn"; + handlers.p1.n2 = "error"; + handlers.p2.n3 = "ignore"; + } + { + kinds = [ ]; + names = [ + "n1" + "n2" + ]; + packages = [ + "p1" + ]; + }; } diff --git a/pkgs/top-level/config.nix b/pkgs/top-level/config.nix index 526dd4182702..97aacdad942e 100644 --- a/pkgs/top-level/config.nix +++ b/pkgs/top-level/config.nix @@ -58,6 +58,34 @@ let internal = true; }; + attrPathsDisallowedForInternalUse = mkOption { + type = types.listOf ( + types.submodule { + options.attrPath = lib.mkOption { + type = types.listOf types.str; + description = '' + Attribute path to disallow. + ''; + }; + options.reason = lib.mkOption { + type = types.nullOr types.str; + default = null; + example = /* because */ "it's dangerous."; + description = '' + Reason for it being disallowed. + ''; + }; + } + ); + internal = true; + default = [ ]; + description = '' + List of attribute paths that may not be used by other packages in Nixpkgs. + + Should usually only be defined by Nixpkgs CI. + ''; + }; + # Config options warnUndeclaredOptions = mkOption { diff --git a/pkgs/top-level/default.nix b/pkgs/top-level/default.nix index 443496f650fb..4e19941441da 100644 --- a/pkgs/top-level/default.nix +++ b/pkgs/top-level/default.nix @@ -214,7 +214,29 @@ let ; }; - pkgs = boot stages; + fixedPoint = boot stages; + + pkgs = + # Generally only set by CI, don't want to cause a performance hit for users + if config.attrPathsDisallowedForInternalUse == [ ] then + fixedPoint + else + # See ./stage.nix, which replaced config.attrPathsDisallowedForInternalUse with aborts. + # We replace these attribute paths with their original derivations again, + # because CI would just error out from the aborting attributes themselves. + # Internally all packages still see the aborting attributes if used as dependencies, + # because we do this here after the fixed-point is calculated. + # Note that we don't want to remove the attributes entirely like what aliases.nix does, + # because unlike aliases, CI still needs to check the packages to evaluate at all, + # which it wouldn't if they're removed entirely. + lib.updateManyAttrsByPath + (map (attrs: { + path = attrs.attrPath; + update = + _: + lib.getAttrFromPath attrs.attrPath fixedPoint.__internalBeforeInternallyDisallowedAttrPathsOverlay; + }) config.attrPathsDisallowedForInternalUse) + (removeAttrs fixedPoint [ "__internalBeforeInternallyDisallowedAttrPathsOverlay" ]); in checked pkgs diff --git a/pkgs/top-level/nixpkgs-basic-release-checks.nix b/pkgs/top-level/nixpkgs-basic-release-checks.nix index 1c7e60655985..e10d6f5e1ed2 100644 --- a/pkgs/top-level/nixpkgs-basic-release-checks.nix +++ b/pkgs/top-level/nixpkgs-basic-release-checks.nix @@ -56,7 +56,7 @@ pkgs.runCommand "nixpkgs-release-checks" set -x nix-env -f $src \ --show-trace --argstr system "$platform" \ - --arg config '{ allowAliases = false; allowDeprecatedx86_64Darwin = true; }' \ + --arg config '{ lib, pkgs }: { problems.matchers = lib.mkForce [ ]; allowAliases = false; allowDeprecatedx86_64Darwin = true; }' \ --option lint-url-literals fatal \ -qa --drv-path --system-filter \* --system \ "''${opts[@]}" 2> eval-warnings.log > packages1 @@ -72,7 +72,7 @@ pkgs.runCommand "nixpkgs-release-checks" nix-env -f $src2 \ --show-trace --argstr system "$platform" \ - --arg config '{ allowAliases = false; allowDeprecatedx86_64Darwin = true; }' \ + --arg config '{ lib, pkgs }: { problems.matchers = lib.mkForce [ ]; allowAliases = false; allowDeprecatedx86_64Darwin = true; }' \ --option lint-url-literals fatal \ -qa --drv-path --system-filter \* --system \ "''${opts[@]}" > packages2 @@ -95,7 +95,7 @@ pkgs.runCommand "nixpkgs-release-checks" nix-env -f $src \ --show-trace --argstr system "$platform" \ - --arg config '{ allowAliases = false; allowDeprecatedx86_64Darwin = true; }' \ + --arg config '{ lib, pkgs }: { problems.matchers = lib.mkForce [ ]; allowAliases = false; allowDeprecatedx86_64Darwin = true; }' \ --option lint-url-literals fatal \ -qa --drv-path --system-filter \* --system --meta --xml \ "''${opts[@]}" > /dev/null diff --git a/pkgs/top-level/stage.nix b/pkgs/top-level/stage.nix index 8aa46192660f..20a5dfebb9f9 100644 --- a/pkgs/top-level/stage.nix +++ b/pkgs/top-level/stage.nix @@ -316,6 +316,32 @@ let }; }; + # Replaces the attributes in config.attrPathsDisallowedForInternalUse with aborts. + # Not throws because those would be ignored by nix-env, which is what CI uses to evaluate everything + # See also ./default.nix, where these attributes are added back again so they're still checked by CI + internallyDisallowedAttrPathsOverlay = + final: prev: + # Generally only set by CI, don't want to cause a performance hit for users + if config.attrPathsDisallowedForInternalUse == [ ] then + { } + else + { + # So that ./default.nix can add them back again outside the fixed point + # Don't use this in packages! + __internalBeforeInternallyDisallowedAttrPathsOverlay = prev; + } + // lib.updateManyAttrsByPath (map ( + { attrPath, reason }: + { + path = attrPath; + update = + _: + abort "${lib.concatStringsSep "." attrPath} is disallowed from being used within Nixpkgs${ + lib.optionalString (reason != null) ", because ${reason}" + }"; + } + ) config.attrPathsDisallowedForInternalUse) prev; + # The complete chain of package set builders, applied from top to bottom. # stdenvOverlays must be last as it brings package forward from the # previous bootstrapping phases which have already been overlaid. @@ -331,6 +357,7 @@ let aliases variants configOverrides + internallyDisallowedAttrPathsOverlay ] ++ overlays ++ [