diff options
187 files changed, 2638 insertions, 1741 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index e2b68cb52cd8a..078936c592902 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -11902,6 +11902,12 @@ github = "Mephistophiles"; githubId = 4850908; }; + mevatron = { + email = "mevatron@gmail.com"; + name = "mevatron"; + github = "mevatron"; + githubId = 714585; + }; mfossen = { email = "msfossen@gmail.com"; github = "mfossen"; @@ -14988,6 +14994,12 @@ githubId = 18549627; name = "Proglodyte"; }; + proglottis = { + email = "proglottis@gmail.com"; + github = "proglottis"; + githubId = 74465; + name = "James Fargher"; + }; progval = { email = "progval+nix@progval.net"; github = "progval"; @@ -18178,6 +18190,12 @@ githubId = 2389333; name = "Andy Tockman"; }; + teatwig = { + email = "nix@teatwig.net"; + name = "tea"; + github = "teatwig"; + githubId = 18734648; + }; techknowlogick = { email = "techknowlogick@gitea.com"; github = "techknowlogick"; diff --git a/nixos/doc/manual/release-notes/rl-2405.section.md b/nixos/doc/manual/release-notes/rl-2405.section.md index 7310d5ea1b3ed..648064643930a 100644 --- a/nixos/doc/manual/release-notes/rl-2405.section.md +++ b/nixos/doc/manual/release-notes/rl-2405.section.md @@ -49,9 +49,10 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m - The `power.ups` module now generates `upsd.conf`, `upsd.users` and `upsmon.conf` automatically from a set of new configuration options. This breaks compatibility with existing `power.ups` setups where these files were created manually. Back up these files before upgrading NixOS. -- `k9s` was updated to v0.30. There have been various breaking changes in the config file format, - check out the changelog of [v0.29](https://github.com/derailed/k9s/releases/tag/v0.29.0) and - [v0.30](https://github.com/derailed/k9s/releases/tag/v0.30.0) for details. It is recommended +- `k9s` was updated to v0.31. There have been various breaking changes in the config file format, + check out the changelog of [v0.29](https://github.com/derailed/k9s/releases/tag/v0.29.0), + [v0.30](https://github.com/derailed/k9s/releases/tag/v0.30.0) and + [v0.31](https://github.com/derailed/k9s/releases/tag/v0.31.0) for details. It is recommended to back up your current configuration and let k9s recreate the new base configuration. - `idris2` was updated to v0.7.0. This version introduces breaking changes. Check out the [changelog](https://github.com/idris-lang/Idris2/blob/v0.7.0/CHANGELOG.md#v070) for details. @@ -157,6 +158,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m - `services.zfs.zed.enableMail` now uses the global `sendmail` wrapper defined by an email module (such as msmtp or Postfix). It no longer requires using a special ZFS build with email support. +- The `krb5` module has been rewritten and moved to `security.krb5`, moving all options but `security.krb5.enable` and `security.krb5.package` into `security.krb5.settings`. + - Gitea 1.21 upgrade has several breaking changes, including: - Custom themes and other assets that were previously stored in `custom/public/*` now belong in `custom/public/assets/*` - New instances of Gitea using MySQL now ignore the `[database].CHARSET` config option and always use the `utf8mb4` charset, existing instances should migrate via the `gitea doctor convert` CLI command. diff --git a/nixos/modules/config/krb5/default.nix b/nixos/modules/config/krb5/default.nix deleted file mode 100644 index df7a3f48236f0..0000000000000 --- a/nixos/modules/config/krb5/default.nix +++ /dev/null @@ -1,369 +0,0 @@ -{ config, lib, pkgs, ... }: - -with lib; - -let - - cfg = config.krb5; - - # This is to provide support for old configuration options (as much as is - # reasonable). This can be removed after 18.03 was released. - defaultConfig = { - libdefaults = optionalAttrs (cfg.defaultRealm != null) - { default_realm = cfg.defaultRealm; }; - - realms = optionalAttrs (lib.all (value: value != null) [ - cfg.defaultRealm cfg.kdc cfg.kerberosAdminServer - ]) { - ${cfg.defaultRealm} = { - kdc = cfg.kdc; - admin_server = cfg.kerberosAdminServer; - }; - }; - - domain_realm = optionalAttrs (lib.all (value: value != null) [ - cfg.domainRealm cfg.defaultRealm - ]) { - ".${cfg.domainRealm}" = cfg.defaultRealm; - ${cfg.domainRealm} = cfg.defaultRealm; - }; - }; - - mergedConfig = (recursiveUpdate defaultConfig { - inherit (config.krb5) - kerberos libdefaults realms domain_realm capaths appdefaults plugins - extraConfig config; - }); - - filterEmbeddedMetadata = value: if isAttrs value then - (filterAttrs - (attrName: attrValue: attrName != "_module" && attrValue != null) - value) - else value; - - indent = " "; - - mkRelation = name: value: - if (isList value) then - concatMapStringsSep "\n" (mkRelation name) value - else "${name} = ${mkVal value}"; - - mkVal = value: - if (value == true) then "true" - else if (value == false) then "false" - else if (isInt value) then (toString value) - else if (isAttrs value) then - let configLines = concatLists - (map (splitString "\n") - (mapAttrsToList mkRelation value)); - in - (concatStringsSep "\n${indent}" - ([ "{" ] ++ configLines)) - + "\n}" - else value; - - mkMappedAttrsOrString = value: concatMapStringsSep "\n" - (line: if builtins.stringLength line > 0 - then "${indent}${line}" - else line) - (splitString "\n" - (if isAttrs value then - concatStringsSep "\n" - (mapAttrsToList mkRelation value) - else value)); - -in { - - ###### interface - - options = { - krb5 = { - enable = mkEnableOption (lib.mdDoc "building krb5.conf, configuration file for Kerberos V"); - - kerberos = mkOption { - type = types.package; - default = pkgs.krb5; - defaultText = literalExpression "pkgs.krb5"; - example = literalExpression "pkgs.heimdal"; - description = lib.mdDoc '' - The Kerberos implementation that will be present in - `environment.systemPackages` after enabling this - service. - ''; - }; - - libdefaults = mkOption { - type = with types; either attrs lines; - default = {}; - apply = attrs: filterEmbeddedMetadata attrs; - example = literalExpression '' - { - default_realm = "ATHENA.MIT.EDU"; - }; - ''; - description = lib.mdDoc '' - Settings used by the Kerberos V5 library. - ''; - }; - - realms = mkOption { - type = with types; either attrs lines; - default = {}; - example = literalExpression '' - { - "ATHENA.MIT.EDU" = { - admin_server = "athena.mit.edu"; - kdc = [ - "athena01.mit.edu" - "athena02.mit.edu" - ]; - }; - }; - ''; - apply = attrs: filterEmbeddedMetadata attrs; - description = lib.mdDoc "Realm-specific contact information and settings."; - }; - - domain_realm = mkOption { - type = with types; either attrs lines; - default = {}; - example = literalExpression '' - { - "example.com" = "EXAMPLE.COM"; - ".example.com" = "EXAMPLE.COM"; - }; - ''; - apply = attrs: filterEmbeddedMetadata attrs; - description = lib.mdDoc '' - Map of server hostnames to Kerberos realms. - ''; - }; - - capaths = mkOption { - type = with types; either attrs lines; - default = {}; - example = literalExpression '' - { - "ATHENA.MIT.EDU" = { - "EXAMPLE.COM" = "."; - }; - "EXAMPLE.COM" = { - "ATHENA.MIT.EDU" = "."; - }; - }; - ''; - apply = attrs: filterEmbeddedMetadata attrs; - description = lib.mdDoc '' - Authentication paths for non-hierarchical cross-realm authentication. - ''; - }; - - appdefaults = mkOption { - type = with types; either attrs lines; - default = {}; - example = literalExpression '' - { - pam = { - debug = false; - ticket_lifetime = 36000; - renew_lifetime = 36000; - max_timeout = 30; - timeout_shift = 2; - initial_timeout = 1; - }; - }; - ''; - apply = attrs: filterEmbeddedMetadata attrs; - description = lib.mdDoc '' - Settings used by some Kerberos V5 applications. - ''; - }; - - plugins = mkOption { - type = with types; either attrs lines; - default = {}; - example = literalExpression '' - { - ccselect = { - disable = "k5identity"; - }; - }; - ''; - apply = attrs: filterEmbeddedMetadata attrs; - description = lib.mdDoc '' - Controls plugin module registration. - ''; - }; - - extraConfig = mkOption { - type = with types; nullOr lines; - default = null; - example = '' - [logging] - kdc = SYSLOG:NOTICE - admin_server = SYSLOG:NOTICE - default = SYSLOG:NOTICE - ''; - description = lib.mdDoc '' - These lines go to the end of `krb5.conf` verbatim. - `krb5.conf` may include any of the relations that are - valid for `kdc.conf` (see `man kdc.conf`), - but it is not a recommended practice. - ''; - }; - - config = mkOption { - type = with types; nullOr lines; - default = null; - example = '' - [libdefaults] - default_realm = EXAMPLE.COM - - [realms] - EXAMPLE.COM = { - admin_server = kerberos.example.com - kdc = kerberos.example.com - default_principal_flags = +preauth - } - - [domain_realm] - example.com = EXAMPLE.COM - .example.com = EXAMPLE.COM - - [logging] - kdc = SYSLOG:NOTICE - admin_server = SYSLOG:NOTICE - default = SYSLOG:NOTICE - ''; - description = lib.mdDoc '' - Verbatim `krb5.conf` configuration. Note that this - is mutually exclusive with configuration via - `libdefaults`, `realms`, - `domain_realm`, `capaths`, - `appdefaults`, `plugins` and - `extraConfig` configuration options. Consult - `man krb5.conf` for documentation. - ''; - }; - - defaultRealm = mkOption { - type = with types; nullOr str; - default = null; - example = "ATHENA.MIT.EDU"; - description = lib.mdDoc '' - DEPRECATED, please use - `krb5.libdefaults.default_realm`. - ''; - }; - - domainRealm = mkOption { - type = with types; nullOr str; - default = null; - example = "athena.mit.edu"; - description = lib.mdDoc '' - DEPRECATED, please create a map of server hostnames to Kerberos realms - in `krb5.domain_realm`. - ''; - }; - - kdc = mkOption { - type = with types; nullOr str; - default = null; - example = "kerberos.mit.edu"; - description = lib.mdDoc '' - DEPRECATED, please pass a `kdc` attribute to a realm - in `krb5.realms`. - ''; - }; - - kerberosAdminServer = mkOption { - type = with types; nullOr str; - default = null; - example = "kerberos.mit.edu"; - description = lib.mdDoc '' - DEPRECATED, please pass an `admin_server` attribute - to a realm in `krb5.realms`. - ''; - }; - }; - }; - - ###### implementation - - config = mkIf cfg.enable { - - environment.systemPackages = [ cfg.kerberos ]; - - environment.etc."krb5.conf".text = if isString cfg.config - then cfg.config - else ('' - [libdefaults] - ${mkMappedAttrsOrString mergedConfig.libdefaults} - - [realms] - ${mkMappedAttrsOrString mergedConfig.realms} - - [domain_realm] - ${mkMappedAttrsOrString mergedConfig.domain_realm} - - [capaths] - ${mkMappedAttrsOrString mergedConfig.capaths} - - [appdefaults] - ${mkMappedAttrsOrString mergedConfig.appdefaults} - - [plugins] - ${mkMappedAttrsOrString mergedConfig.plugins} - '' + optionalString (mergedConfig.extraConfig != null) - ("\n" + mergedConfig.extraConfig)); - - warnings = flatten [ - (optional (cfg.defaultRealm != null) '' - The option krb5.defaultRealm is deprecated, please use - krb5.libdefaults.default_realm. - '') - (optional (cfg.domainRealm != null) '' - The option krb5.domainRealm is deprecated, please use krb5.domain_realm. - '') - (optional (cfg.kdc != null) '' - The option krb5.kdc is deprecated, please pass a kdc attribute to a - realm in krb5.realms. - '') - (optional (cfg.kerberosAdminServer != null) '' - The option krb5.kerberosAdminServer is deprecated, please pass an - admin_server attribute to a realm in krb5.realms. - '') - ]; - - assertions = [ - { assertion = !((builtins.any (value: value != null) [ - cfg.defaultRealm cfg.domainRealm cfg.kdc cfg.kerberosAdminServer - ]) && ((builtins.any (value: value != {}) [ - cfg.libdefaults cfg.realms cfg.domain_realm cfg.capaths - cfg.appdefaults cfg.plugins - ]) || (builtins.any (value: value != null) [ - cfg.config cfg.extraConfig - ]))); - message = '' - Configuration of krb5.conf by deprecated options is mutually exclusive - with configuration by section. Please migrate your config using the - attributes suggested in the warnings. - ''; - } - { assertion = !(cfg.config != null - && ((builtins.any (value: value != {}) [ - cfg.libdefaults cfg.realms cfg.domain_realm cfg.capaths - cfg.appdefaults cfg.plugins - ]) || (builtins.any (value: value != null) [ - cfg.extraConfig cfg.defaultRealm cfg.domainRealm cfg.kdc - cfg.kerberosAdminServer - ]))); - message = '' - Configuration of krb5.conf using krb.config is mutually exclusive with - configuration by section. If you want to mix the two, you can pass - lines to any configuration section or lines to krb5.extraConfig. - ''; - } - ]; - }; -} diff --git a/nixos/modules/installer/tools/nix-fallback-paths.nix b/nixos/modules/installer/tools/nix-fallback-paths.nix index e4241e9654036..d1cdef2135518 100644 --- a/nixos/modules/installer/tools/nix-fallback-paths.nix +++ b/nixos/modules/installer/tools/nix-fallback-paths.nix @@ -1,7 +1,7 @@ { - x86_64-linux = "/nix/store/azvn85cras6xv4z5j85fiy406f24r1q0-nix-2.18.1"; - i686-linux = "/nix/store/9bnwy7f9h0kzdzmcnjjsjg0aak5waj40-nix-2.18.1"; - aarch64-linux = "/nix/store/hh65xwqm9s040s3cgn9vzcmrxj0sf5ij-nix-2.18.1"; - x86_64-darwin = "/nix/store/6zi5fqzn9n17wrk8r41rhdw4j7jqqsi3-nix-2.18.1"; - aarch64-darwin = "/nix/store/0pbq6wzr2f1jgpn5212knyxpwmkjgjah-nix-2.18.1"; + x86_64-linux = "/nix/store/smfmnz0ylx80wkbqbjibj7zcw4q668xp-nix-2.19.2"; + i686-linux = "/nix/store/knp0akbpj2k0rf26fmysmxdysmayihax-nix-2.19.2"; + aarch64-linux = "/nix/store/761hq0abn07nrydrf6mls61bscx2vz2i-nix-2.19.2"; + x86_64-darwin = "/nix/store/zlqvxis1dfcfgmy5fza4hllg6h03vhpb-nix-2.19.2"; + aarch64-darwin = "/nix/store/53r8ay20mygy2sifn7j2p8wjqlx2kxik-nix-2.19.2"; } diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 36f34e50d595d..02832e656dc95 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -10,7 +10,6 @@ ./config/gtk/gtk-icon-cache.nix ./config/i18n.nix ./config/iproute2.nix - ./config/krb5/default.nix ./config/ldap.nix ./config/ldso.nix ./config/locale.nix @@ -309,6 +308,7 @@ ./security/duosec.nix ./security/google_oslogin.nix ./security/ipa.nix + ./security/krb5 ./security/lock-kernel-modules.nix ./security/misc.nix ./security/oath.nix diff --git a/nixos/modules/security/ipa.nix b/nixos/modules/security/ipa.nix index 49226ec38199c..3bf8b11f86261 100644 --- a/nixos/modules/security/ipa.nix +++ b/nixos/modules/security/ipa.nix @@ -117,8 +117,8 @@ in { config = mkIf cfg.enable { assertions = [ { - assertion = !config.krb5.enable; - message = "krb5 must be disabled through `krb5.enable` for FreeIPA integration to work."; + assertion = !config.security.krb5.enable; + message = "krb5 must be disabled through `security.krb5.enable` for FreeIPA integration to work."; } { assertion = !config.users.ldap.enable; diff --git a/nixos/modules/security/krb5/default.nix b/nixos/modules/security/krb5/default.nix new file mode 100644 index 0000000000000..5921982f954ca --- /dev/null +++ b/nixos/modules/security/krb5/default.nix @@ -0,0 +1,90 @@ +{ config, lib, pkgs, ... }: +let + inherit (lib) mdDoc mkIf mkOption mkPackageOption mkRemovedOptionModule; + inherit (lib.types) bool; + + mkRemovedOptionModule' = name: reason: mkRemovedOptionModule ["krb5" name] reason; + mkRemovedOptionModuleCfg = name: mkRemovedOptionModule' name '' + The option `krb5.${name}' has been removed. Use + `security.krb5.settings.${name}' for structured configuration. + ''; + + cfg = config.security.krb5; + format = import ./krb5-conf-format.nix { inherit pkgs lib; } { }; +in { + imports = [ + (mkRemovedOptionModuleCfg "libdefaults") + (mkRemovedOptionModuleCfg "realms") + (mkRemovedOptionModuleCfg "domain_realm") + (mkRemovedOptionModuleCfg "capaths") + (mkRemovedOptionModuleCfg "appdefaults") + (mkRemovedOptionModuleCfg "plugins") + (mkRemovedOptionModuleCfg "config") + (mkRemovedOptionModuleCfg "extraConfig") + (mkRemovedOptionModule' "kerberos" '' + The option `krb5.kerberos' has been moved to `security.krb5.package'. + '') + ]; + + options = { + security.krb5 = { + enable = mkOption { + default = false; + description = mdDoc "Enable and configure Kerberos utilities"; + type = bool; + }; + + package = mkPackageOption pkgs "krb5" { + example = "heimdal"; + }; + + settings = mkOption { + default = { }; + type = format.type; + description = mdDoc '' + Structured contents of the {file}`krb5.conf` file. See + {manpage}`krb5.conf(5)` for details about configuration. + ''; + example = { + include = [ "/run/secrets/secret-krb5.conf" ]; + includedir = [ "/run/secrets/secret-krb5.conf.d" ]; + + libdefaults = { + default_realm = "ATHENA.MIT.EDU"; + }; + + realms = { + "ATHENA.MIT.EDU" = { + admin_server = "athena.mit.edu"; + kdc = [ + "athena01.mit.edu" + "athena02.mit.edu" + ]; + }; + }; + + domain_realm = { + "mit.edu" = "ATHENA.MIT.EDU"; + }; + + logging = { + kdc = "SYSLOG:NOTICE"; + admin_server = "SYSLOG:NOTICE"; + default = "SYSLOG:NOTICE"; + }; + }; + }; + }; + }; + + config = mkIf cfg.enable { + environment = { + systemPackages = [ cfg.package ]; + etc."krb5.conf".source = format.generate "krb5.conf" cfg.settings; + }; + }; + + meta.maintainers = builtins.attrValues { + inherit (lib.maintainers) dblsaiko h7x4; + }; +} diff --git a/nixos/modules/security/krb5/krb5-conf-format.nix b/nixos/modules/security/krb5/krb5-conf-format.nix new file mode 100644 index 0000000000000..d01e47a40be05 --- /dev/null +++ b/nixos/modules/security/krb5/krb5-conf-format.nix @@ -0,0 +1,88 @@ +{ pkgs, lib, ... }: + +# Based on +# - https://web.mit.edu/kerberos/krb5-1.12/doc/admin/conf_files/krb5_conf.html +# - https://manpages.debian.org/unstable/heimdal-docs/krb5.conf.5heimdal.en.html + +let + inherit (lib) boolToString concatMapStringsSep concatStringsSep filter + isAttrs isBool isList mapAttrsToList mdDoc mkOption singleton splitString; + inherit (lib.types) attrsOf bool coercedTo either int listOf oneOf path + str submodule; +in +{ }: { + type = let + section = attrsOf relation; + relation = either (attrsOf value) value; + value = either (listOf atom) atom; + atom = oneOf [int str bool]; + in submodule { + freeformType = attrsOf section; + options = { + include = mkOption { + default = [ ]; + description = mdDoc '' + Files to include in the Kerberos configuration. + ''; + type = coercedTo path singleton (listOf path); + }; + includedir = mkOption { + default = [ ]; + description = mdDoc '' + Directories containing files to include in the Kerberos configuration. + ''; + type = coercedTo path singleton (listOf path); + }; + module = mkOption { + default = [ ]; + description = mdDoc '' + Modules to obtain Kerberos configuration from. + ''; + type = coercedTo path singleton (listOf path); + }; + }; + }; + + generate = let + indent = str: concatMapStringsSep "\n" (line: " " + line) (splitString "\n" str); + + formatToplevel = args @ { + include ? [ ], + includedir ? [ ], + module ? [ ], + ... + }: let + sections = removeAttrs args [ "include" "includedir" "module" ]; + in concatStringsSep "\n" (filter (x: x != "") [ + (concatStringsSep "\n" (mapAttrsToList formatSection sections)) + (concatMapStringsSep "\n" (m: "module ${m}") module) + (concatMapStringsSep "\n" (i: "include ${i}") include) + (concatMapStringsSep "\n" (i: "includedir ${i}") includedir) + ]); + + formatSection = name: section: '' + [${name}] + ${indent (concatStringsSep "\n" (mapAttrsToList formatRelation section))} + ''; + + formatRelation = name: relation: + if isAttrs relation + then '' + ${name} = { + ${indent (concatStringsSep "\n" (mapAttrsToList formatValue relation))} + }'' + else formatValue name relation; + + formatValue = name: value: + if isList value + then concatMapStringsSep "\n" (formatAtom name) value + else formatAtom name value; + + formatAtom = name: atom: let + v = if isBool atom then boolToString atom else toString atom; + in "${name} = ${v}"; + in + name: value: pkgs.writeText name '' + ${formatToplevel value} + ''; +} diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix index 50f9272ac301f..111be7057afc0 100644 --- a/nixos/modules/security/pam.nix +++ b/nixos/modules/security/pam.nix @@ -1086,8 +1086,8 @@ in security.pam.krb5 = { enable = mkOption { - default = config.krb5.enable; - defaultText = literalExpression "config.krb5.enable"; + default = config.security.krb5.enable; + defaultText = literalExpression "config.security.krb5.enable"; type = types.bool; description = lib.mdDoc '' Enables Kerberos PAM modules (`pam-krb5`, @@ -1095,7 +1095,7 @@ in If set, users can authenticate with their Kerberos password. This requires a valid Kerberos configuration - (`config.krb5.enable` should be set to + (`config.security.krb5.enable` should be set to `true`). Note that the Kerberos PAM modules are not necessary when using SSS diff --git a/nixos/modules/services/misc/gitlab.nix b/nixos/modules/services/misc/gitlab.nix index ca6910b795d8f..d8e4aab4feea5 100644 --- a/nixos/modules/services/misc/gitlab.nix +++ b/nixos/modules/services/misc/gitlab.nix @@ -1359,6 +1359,7 @@ in { '' else '' jq <${pkgs.writeText "database.yml" (builtins.toJSON databaseConfig)} \ + '${if lib.versionAtLeast (lib.getVersion cfg.packages.gitlab) "15.9" then ".production.main as $main | del(.production.main) | .production |= {main: $main} + ." else ""}' \ >'${cfg.statePath}/config/database.yml' '' } diff --git a/nixos/modules/services/network-filesystems/kubo.nix b/nixos/modules/services/network-filesystems/kubo.nix index 8226fc614bc47..126e0902d5b4a 100644 --- a/nixos/modules/services/network-filesystems/kubo.nix +++ b/nixos/modules/services/network-filesystems/kubo.nix @@ -282,8 +282,9 @@ in environment.systemPackages = [ cfg.package ]; environment.variables.IPFS_PATH = fakeKuboRepo; - # https://github.com/lucas-clemente/quic-go/wiki/UDP-Receive-Buffer-Size + # https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes boot.kernel.sysctl."net.core.rmem_max" = mkDefault 2500000; + boot.kernel.sysctl."net.core.wmem_max" = mkDefault 2500000; programs.fuse = mkIf cfg.autoMount { userAllowOther = true; diff --git a/nixos/modules/services/system/kerberos/default.nix b/nixos/modules/services/system/kerberos/default.nix index 4ed48e463741a..486d4b49c195a 100644 --- a/nixos/modules/services/system/kerberos/default.nix +++ b/nixos/modules/services/system/kerberos/default.nix @@ -3,7 +3,7 @@ let inherit (lib) mkOption mkIf types length attrNames; cfg = config.services.kerberos_server; - kerberos = config.krb5.kerberos; + kerberos = config.security.krb5.package; aclEntry = { options = { diff --git a/nixos/modules/services/system/kerberos/heimdal.nix b/nixos/modules/services/system/kerberos/heimdal.nix index 837c59caa5620..4789e4790b4bc 100644 --- a/nixos/modules/services/system/kerberos/heimdal.nix +++ b/nixos/modules/services/system/kerberos/heimdal.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf concatStringsSep concatMapStrings toList mapAttrs mapAttrsToList; cfg = config.services.kerberos_server; - kerberos = config.krb5.kerberos; + kerberos = config.security.krb5.package; stateDir = "/var/heimdal"; aclFiles = mapAttrs (name: {acl, ...}: pkgs.writeText "${name}.acl" (concatMapStrings (( diff --git a/nixos/modules/services/system/kerberos/mit.nix b/nixos/modules/services/system/kerberos/mit.nix index 112000140453f..a654bd1fe7e1b 100644 --- a/nixos/modules/services/system/kerberos/mit.nix +++ b/nixos/modules/services/system/kerberos/mit.nix @@ -4,7 +4,7 @@ let inherit (lib) mkIf concatStrings concatStringsSep concatMapStrings toList mapAttrs mapAttrsToList; cfg = config.services.kerberos_server; - kerberos = config.krb5.kerberos; + kerberos = config.security.krb5.package; stateDir = "/var/lib/krb5kdc"; PIDFile = "/run/kdc.pid"; aclMap = { diff --git a/nixos/modules/services/web-apps/dokuwiki.nix b/nixos/modules/services/web-apps/dokuwiki.nix index 1df1cbf9f0e18..256ab3229ea6c 100644 --- a/nixos/modules/services/web-apps/dokuwiki.nix +++ b/nixos/modules/services/web-apps/dokuwiki.nix @@ -122,62 +122,8 @@ let }; }; - # The current implementations of `doRename`, `mkRenamedOptionModule` do not provide the full options path when used with submodules. - # They would only show `settings.useacl' instead of `services.dokuwiki.sites."site1.local".settings.useacl' - # The partial re-implementation of these functions is done to help users in debugging by showing the full path. - mkRenamed = from: to: { config, options, name, ... }: let - pathPrefix = [ "services" "dokuwiki" "sites" name ]; - fromPath = pathPrefix ++ from; - fromOpt = getAttrFromPath from options; - toOp = getAttrsFromPath to config; - toPath = pathPrefix ++ to; - in { - options = setAttrByPath from (mkOption { - visible = false; - description = lib.mdDoc "Alias of {option}${showOption toPath}"; - apply = x: builtins.trace "Obsolete option `${showOption fromPath}' is used. It was renamed to ${showOption toPath}" toOp; - }); - config = mkMerge [ - { - warnings = optional fromOpt.isDefined - "The option `${showOption fromPath}' defined in ${showFiles fromOpt.files} has been renamed to `${showOption toPath}'."; - } - (lib.modules.mkAliasAndWrapDefsWithPriority (setAttrByPath to) fromOpt) - ]; - }; - siteOpts = { options, config, lib, name, ... }: { - imports = [ - (mkRenamed [ "aclUse" ] [ "settings" "useacl" ]) - (mkRenamed [ "superUser" ] [ "settings" "superuser" ]) - (mkRenamed [ "disableActions" ] [ "settings" "disableactions" ]) - ({ config, options, ... }: let - showPath = suffix: lib.options.showOption ([ "services" "dokuwiki" "sites" name ] ++ suffix); - replaceExtraConfig = "Please use `${showPath ["settings"]}' to pass structured settings instead."; - ecOpt = options.extraConfig; - ecPath = showPath [ "extraConfig" ]; - in { - options.extraConfig = mkOption { - visible = false; - apply = x: throw "The option ${ecPath} can no longer be used since it's been removed.\n${replaceExtraConfig}"; - }; - config.assertions = [ - { - assertion = !ecOpt.isDefined; - message = "The option definition `${ecPath}' in ${showFiles ecOpt.files} no longer has any effect; please remove it.\n${replaceExtraConfig}"; - } - { - assertion = config.mergedConfig.useacl -> (config.acl != null || config.aclFile != null); - message = "Either ${showPath [ "acl" ]} or ${showPath [ "aclFile" ]} is mandatory if ${showPath [ "settings" "useacl" ]} is true"; - } - { - assertion = config.usersFile != null -> config.mergedConfig.useacl != false; - message = "${showPath [ "settings" "useacl" ]} is required when ${showPath [ "usersFile" ]} is set (Currently defined as `${config.usersFile}' in ${showFiles options.usersFile.files})."; - } - ]; - }) - ]; options = { enable = mkEnableOption (lib.mdDoc "DokuWiki web application"); @@ -392,21 +338,6 @@ let ''; }; - # Required for the mkRenamedOptionModule - # TODO: Remove me once https://github.com/NixOS/nixpkgs/issues/96006 is fixed - # or we don't have any more notes about the removal of extraConfig, ... - warnings = mkOption { - type = types.listOf types.unspecified; - default = [ ]; - visible = false; - internal = true; - }; - assertions = mkOption { - type = types.listOf types.unspecified; - default = [ ]; - visible = false; - internal = true; - }; }; }; in @@ -440,10 +371,6 @@ in # implementation config = mkIf (eachSite != {}) (mkMerge [{ - warnings = flatten (mapAttrsToList (_: cfg: cfg.warnings) eachSite); - - assertions = flatten (mapAttrsToList (_: cfg: cfg.assertions) eachSite); - services.phpfpm.pools = mapAttrs' (hostName: cfg: ( nameValuePair "dokuwiki-${hostName}" { inherit user; diff --git a/nixos/modules/services/x11/desktop-managers/gnome.nix b/nixos/modules/services/x11/desktop-managers/gnome.nix index 20eca7746447b..2cf9bc2eac37e 100644 --- a/nixos/modules/services/x11/desktop-managers/gnome.nix +++ b/nixos/modules/services/x11/desktop-managers/gnome.nix @@ -449,7 +449,6 @@ in gnome-color-manager gnome-control-center gnome-shell-extensions - gnome-themes-extra pkgs.gnome-tour # GNOME Shell detects the .desktop file on first log-in. pkgs.gnome-user-docs pkgs.orca diff --git a/nixos/modules/virtualisation/lxd.nix b/nixos/modules/virtualisation/lxd.nix index c4c856d9be30d..885fb4e078530 100644 --- a/nixos/modules/virtualisation/lxd.nix +++ b/nixos/modules/virtualisation/lxd.nix @@ -33,21 +33,11 @@ in { ''; }; - package = lib.mkOption { - type = lib.types.package; - default = pkgs.lxd; - defaultText = lib.literalExpression "pkgs.lxd"; - description = lib.mdDoc '' - The LXD package to use. - ''; - }; + package = lib.mkPackageOption pkgs "lxd" { }; - lxcPackage = lib.mkOption { - type = lib.types.package; - default = pkgs.lxc; - defaultText = lib.literalExpression "pkgs.lxc"; - description = lib.mdDoc '' - The LXC package to use with LXD (required for AppArmor profiles). + lxcPackage = lib.mkPackageOption pkgs "lxc" { + extraDescription = '' + Required for AppArmor profiles. ''; }; @@ -149,7 +139,7 @@ in { ui = { enable = lib.mkEnableOption (lib.mdDoc "(experimental) LXD UI"); - package = lib.mkPackageOption pkgs.lxd-unwrapped "ui" { }; + package = lib.mkPackageOption pkgs [ "lxd-unwrapped" "ui" ] { }; }; }; }; diff --git a/nixos/tests/kerberos/heimdal.nix b/nixos/tests/kerberos/heimdal.nix index 47f9d0285aef7..393289f7a92ca 100644 --- a/nixos/tests/kerberos/heimdal.nix +++ b/nixos/tests/kerberos/heimdal.nix @@ -1,5 +1,6 @@ import ../make-test-python.nix ({pkgs, ...}: { name = "kerberos_server-heimdal"; + nodes.machine = { config, libs, pkgs, ...}: { services.kerberos_server = { enable = true; @@ -7,16 +8,18 @@ import ../make-test-python.nix ({pkgs, ...}: { "FOO.BAR".acl = [{principal = "admin"; access = ["add" "cpw"];}]; }; }; - krb5 = { + security.krb5 = { enable = true; - kerberos = pkgs.heimdal; - libdefaults = { - default_realm = "FOO.BAR"; - }; - realms = { - "FOO.BAR" = { - admin_server = "machine"; - kdc = "machine"; + package = pkgs.heimdal; + settings = { + libdefaults = { + default_realm = "FOO.BAR"; + }; + realms = { + "FOO.BAR" = { + admin_server = "machine"; + kdc = "machine"; + }; }; }; }; @@ -39,4 +42,6 @@ import ../make-test-python.nix ({pkgs, ...}: { "kinit -kt alice.keytab alice", ) ''; + + meta.maintainers = [ pkgs.lib.maintainers.dblsaiko ]; }) diff --git a/nixos/tests/kerberos/mit.nix b/nixos/tests/kerberos/mit.nix index 7e427ffef0ba8..1191d047abbf0 100644 --- a/nixos/tests/kerberos/mit.nix +++ b/nixos/tests/kerberos/mit.nix @@ -1,5 +1,6 @@ import ../make-test-python.nix ({pkgs, ...}: { name = "kerberos_server-mit"; + nodes.machine = { config, libs, pkgs, ...}: { services.kerberos_server = { enable = true; @@ -7,16 +8,18 @@ import ../make-test-python.nix ({pkgs, ...}: { "FOO.BAR".acl = [{principal = "admin"; access = ["add" "cpw"];}]; }; }; - krb5 = { + security.krb5 = { enable = true; - kerberos = pkgs.krb5; - libdefaults = { - default_realm = "FOO.BAR"; - }; - realms = { - "FOO.BAR" = { - admin_server = "machine"; - kdc = "machine"; + package = pkgs.krb5; + settings = { + libdefaults = { + default_realm = "FOO.BAR"; + }; + realms = { + "FOO.BAR" = { + admin_server = "machine"; + kdc = "machine"; + }; }; }; }; @@ -38,4 +41,6 @@ import ../make-test-python.nix ({pkgs, ...}: { "echo alice_pw | sudo -u alice kinit", ) ''; + + meta.maintainers = [ pkgs.lib.maintainers.dblsaiko ]; }) diff --git a/nixos/tests/krb5/default.nix b/nixos/tests/krb5/default.nix index dd5b2f37202e8..ede085632c634 100644 --- a/nixos/tests/krb5/default.nix +++ b/nixos/tests/krb5/default.nix @@ -1,5 +1,4 @@ { system ? builtins.currentSystem }: { example-config = import ./example-config.nix { inherit system; }; - deprecated-config = import ./deprecated-config.nix { inherit system; }; } diff --git a/nixos/tests/krb5/deprecated-config.nix b/nixos/tests/krb5/deprecated-config.nix deleted file mode 100644 index aca29ae6ca2b2..0000000000000 --- a/nixos/tests/krb5/deprecated-config.nix +++ /dev/null @@ -1,50 +0,0 @@ -# Verifies that the configuration suggested in deprecated example values -# will result in the expected output. - -import ../make-test-python.nix ({ pkgs, ...} : { - name = "krb5-with-deprecated-config"; - meta = with pkgs.lib.maintainers; { - maintainers = [ eqyiel ]; - }; - - nodes.machine = - { ... }: { - krb5 = { - enable = true; - defaultRealm = "ATHENA.MIT.EDU"; - domainRealm = "athena.mit.edu"; - kdc = "kerberos.mit.edu"; - kerberosAdminServer = "kerberos.mit.edu"; - }; - }; - - testScript = - let snapshot = pkgs.writeText "krb5-with-deprecated-config.conf" '' - [libdefaults] - default_realm = ATHENA.MIT.EDU - - [realms] - ATHENA.MIT.EDU = { - admin_server = kerberos.mit.edu - kdc = kerberos.mit.edu - } - - [domain_realm] - .athena.mit.edu = ATHENA.MIT.EDU - athena.mit.edu = ATHENA.MIT.EDU - - [capaths] - - - [appdefaults] - - - [plugins] - - ''; - in '' - machine.succeed( - "diff /etc/krb5.conf ${snapshot}" - ) - ''; -}) diff --git a/nixos/tests/krb5/example-config.nix b/nixos/tests/krb5/example-config.nix index 9a5c3b2af2490..33bed481b39fc 100644 --- a/nixos/tests/krb5/example-config.nix +++ b/nixos/tests/krb5/example-config.nix @@ -4,78 +4,77 @@ import ../make-test-python.nix ({ pkgs, ...} : { name = "krb5-with-example-config"; meta = with pkgs.lib.maintainers; { - maintainers = [ eqyiel ]; + maintainers = [ eqyiel dblsaiko ]; }; nodes.machine = { pkgs, ... }: { - krb5 = { + security.krb5 = { enable = true; - kerberos = pkgs.krb5; - libdefaults = { - default_realm = "ATHENA.MIT.EDU"; - }; - realms = { - "ATHENA.MIT.EDU" = { - admin_server = "athena.mit.edu"; - kdc = [ - "athena01.mit.edu" - "athena02.mit.edu" - ]; + package = pkgs.krb5; + settings = { + includedir = [ + "/etc/krb5.conf.d" + ]; + include = [ + "/etc/krb5-extra.conf" + ]; + libdefaults = { + default_realm = "ATHENA.MIT.EDU"; }; - }; - domain_realm = { - "example.com" = "EXAMPLE.COM"; - ".example.com" = "EXAMPLE.COM"; - }; - capaths = { - "ATHENA.MIT.EDU" = { - "EXAMPLE.COM" = "."; + realms = { + "ATHENA.MIT.EDU" = { + admin_server = "athena.mit.edu"; + kdc = [ + "athena01.mit.edu" + "athena02.mit.edu" + ]; + }; }; - "EXAMPLE.COM" = { - "ATHENA.MIT.EDU" = "."; + domain_realm = { + "example.com" = "EXAMPLE.COM"; + ".example.com" = "EXAMPLE.COM"; }; - }; - appdefaults = { - pam = { - debug = false; - ticket_lifetime = 36000; - renew_lifetime = 36000; - max_timeout = 30; - timeout_shift = 2; - initial_timeout = 1; + capaths = { + "ATHENA.MIT.EDU" = { + "EXAMPLE.COM" = "."; + }; + "EXAMPLE.COM" = { + "ATHENA.MIT.EDU" = "."; + }; }; - }; - plugins = { - ccselect = { - disable = "k5identity"; + appdefaults = { + pam = { + debug = false; + ticket_lifetime = 36000; + renew_lifetime = 36000; + max_timeout = 30; + timeout_shift = 2; + initial_timeout = 1; + }; + }; + plugins.ccselect.disable = "k5identity"; + logging = { + kdc = "SYSLOG:NOTICE"; + admin_server = "SYSLOG:NOTICE"; + default = "SYSLOG:NOTICE"; }; }; - extraConfig = '' - [logging] - kdc = SYSLOG:NOTICE - admin_server = SYSLOG:NOTICE - default = SYSLOG:NOTICE - ''; }; }; testScript = let snapshot = pkgs.writeText "krb5-with-example-config.conf" '' - [libdefaults] - default_realm = ATHENA.MIT.EDU - - [realms] - ATHENA.MIT.EDU = { - admin_server = athena.mit.edu - kdc = athena01.mit.edu - kdc = athena02.mit.edu + [appdefaults] + pam = { + debug = false + initial_timeout = 1 + max_timeout = 30 + renew_lifetime = 36000 + ticket_lifetime = 36000 + timeout_shift = 2 } - [domain_realm] - .example.com = EXAMPLE.COM - example.com = EXAMPLE.COM - [capaths] ATHENA.MIT.EDU = { EXAMPLE.COM = . @@ -84,25 +83,32 @@ import ../make-test-python.nix ({ pkgs, ...} : { ATHENA.MIT.EDU = . } - [appdefaults] - pam = { - debug = false - initial_timeout = 1 - max_timeout = 30 - renew_lifetime = 36000 - ticket_lifetime = 36000 - timeout_shift = 2 - } + [domain_realm] + .example.com = EXAMPLE.COM + example.com = EXAMPLE.COM + + [libdefaults] + default_realm = ATHENA.MIT.EDU + + [logging] + admin_server = SYSLOG:NOTICE + default = SYSLOG:NOTICE + kdc = SYSLOG:NOTICE [plugins] ccselect = { disable = k5identity } - [logging] - kdc = SYSLOG:NOTICE - admin_server = SYSLOG:NOTICE - default = SYSLOG:NOTICE + [realms] + ATHENA.MIT.EDU = { + admin_server = athena.mit.edu + kdc = athena01.mit.edu + kdc = athena02.mit.edu + } + + include /etc/krb5-extra.conf + includedir /etc/krb5.conf.d ''; in '' machine.succeed( diff --git a/nixos/tests/nfs/kerberos.nix b/nixos/tests/nfs/kerberos.nix index a7d08bc628c62..1bace4058be59 100644 --- a/nixos/tests/nfs/kerberos.nix +++ b/nixos/tests/nfs/kerberos.nix @@ -1,15 +1,17 @@ import ../make-test-python.nix ({ pkgs, lib, ... }: let - krb5 = - { enable = true; - domain_realm."nfs.test" = "NFS.TEST"; + security.krb5 = { + enable = true; + settings = { + domain_realm."nfs.test" = "NFS.TEST"; libdefaults.default_realm = "NFS.TEST"; - realms."NFS.TEST" = - { admin_server = "server.nfs.test"; - kdc = "server.nfs.test"; - }; + realms."NFS.TEST" = { + admin_server = "server.nfs.test"; + kdc = "server.nfs.test"; + }; }; + }; hosts = '' @@ -32,7 +34,7 @@ in nodes = { client = { lib, ... }: - { inherit krb5 users; + { inherit security users; networking.extraHosts = hosts; networking.domain = "nfs.test"; @@ -48,7 +50,7 @@ in }; server = { lib, ...}: - { inherit krb5 users; + { inherit security users; networking.extraHosts = hosts; networking.domain = "nfs.test"; @@ -128,4 +130,6 @@ in expected = ["alice", "users"] assert ids == expected, f"ids incorrect: got {ids} expected {expected}" ''; + + meta.maintainers = [ lib.maintainers.dblsaiko ]; }) diff --git a/nixos/tests/pam/pam-file-contents.nix b/nixos/tests/pam/pam-file-contents.nix index 2bafd90618e97..accaa4cc70a94 100644 --- a/nixos/tests/pam/pam-file-contents.nix +++ b/nixos/tests/pam/pam-file-contents.nix @@ -7,7 +7,7 @@ import ../make-test-python.nix ({ pkgs, ... }: { nodes.machine = { ... }: { imports = [ ../../modules/profiles/minimal.nix ]; - krb5.enable = true; + security.krb5.enable = true; users = { mutableUsers = false; diff --git a/pkgs/applications/audio/ft2-clone/default.nix b/pkgs/applications/audio/ft2-clone/default.nix index 895b39bb9cc26..d299148e6ade6 100644 --- a/pkgs/applications/audio/ft2-clone/default.nix +++ b/pkgs/applications/audio/ft2-clone/default.nix @@ -13,13 +13,13 @@ stdenv.mkDerivation rec { pname = "ft2-clone"; - version = "1.74"; + version = "1.75"; src = fetchFromGitHub { owner = "8bitbubsy"; repo = "ft2-clone"; rev = "v${version}"; - hash = "sha256-plr5vmtYL0adeocY4/3hRI2RQ7lDkLvBbQPq2Jw6MvU="; + hash = "sha256-K+RUsRr19fc0E9VhZWIawxkGXCTwqXl3a13pRiRxDPg="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/applications/emulators/yuzu/compat-list.nix b/pkgs/applications/emulators/yuzu/compat-list.nix index 431a2e5197e32..4b8d531163909 100644 --- a/pkgs/applications/emulators/yuzu/compat-list.nix +++ b/pkgs/applications/emulators/yuzu/compat-list.nix @@ -1,13 +1,13 @@ { stdenv, fetchFromGitHub, unstableGitUpdater }: stdenv.mkDerivation { pname = "yuzu-compatibility-list"; - version = "unstable-2023-12-28"; + version = "unstable-2024-01-08"; src = fetchFromGitHub { owner = "flathub"; repo = "org.yuzu_emu.yuzu"; - rev = "0b9bf10851d6ad54441dc4f687d5755ed2c6f7a8"; - hash = "sha256-oWEeAhyxFO1TFH3d+/ivRf1KnNUU8y5c/7NtOzlpKXg="; + rev = "0f5500f50e2a5ac7e40e6f5f8aeb160d46348828"; + hash = "sha256-0JHl7myoa3MlfucmbKB5tubJ6sQ2IlTIL3i2yveOvaU="; }; buildCommand = '' diff --git a/pkgs/applications/emulators/yuzu/early-access/sources.nix b/pkgs/applications/emulators/yuzu/early-access/sources.nix index 4f9c6a1f8d39d..ec513e7b5e2c1 100644 --- a/pkgs/applications/emulators/yuzu/early-access/sources.nix +++ b/pkgs/applications/emulators/yuzu/early-access/sources.nix @@ -1,7 +1,7 @@ # Generated by ./update.sh - do not update manually! -# Last updated: 2023-12-29 +# Last updated: 2024-01-10 { - version = "4037"; - distHash = "sha256:0pw56hj13fm9j5nja1lhj839d88w00kcr30kygasr36w9c7yv2n7"; - fullHash = "sha256:0f42fp8z333b3k4pn8j0cp3480llvlygl5p6qfgywhq3g5hcpzpb"; + version = "4056"; + distHash = "sha256:14qd5v238pka9axrxjbaawr0kpkkbd95mzri6jdjxjyzbkk03hmb"; + fullHash = "sha256:0fb4i6708q59ql9ffrw2myanqgxpy20z971y6l7yvxm1pqw9qhyx"; } diff --git a/pkgs/applications/emulators/yuzu/mainline.nix b/pkgs/applications/emulators/yuzu/mainline.nix index 6964f272553e5..892c694164e28 100644 --- a/pkgs/applications/emulators/yuzu/mainline.nix +++ b/pkgs/applications/emulators/yuzu/mainline.nix @@ -47,13 +47,13 @@ }: stdenv.mkDerivation(finalAttrs: { pname = "yuzu"; - version = "1665"; + version = "1676"; src = fetchFromGitHub { owner = "yuzu-emu"; repo = "yuzu-mainline"; rev = "mainline-0-${finalAttrs.version}"; - hash = "sha256-xzSup1oz83GPpOGh9aJJ5YjoFX/cBI8RV6SvDYNH/zA="; + hash = "sha256-vRrliVuGXI/Dpmdkbj+P5hshzPzB6nijrXQfLXHaGqk="; fetchSubmodules = true; }; diff --git a/pkgs/applications/emulators/yuzu/update.sh b/pkgs/applications/emulators/yuzu/update.sh new file mode 100755 index 0000000000000..4bb96b2105b4d --- /dev/null +++ b/pkgs/applications/emulators/yuzu/update.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p nix-update +#shellcheck shell=bash +nix-update -u yuzuPackages.nx_tzdb "$@" +nix-update -u yuzuPackages.compat-list "$@" +nix-update -u yuzuPackages.mainline "$@" +nix-update -u yuzuPackages.early-access "$@" diff --git a/pkgs/applications/graphics/imgp/default.nix b/pkgs/applications/graphics/imgp/default.nix index 89887c9f4e870..995aaf2599df2 100644 --- a/pkgs/applications/graphics/imgp/default.nix +++ b/pkgs/applications/graphics/imgp/default.nix @@ -1,21 +1,17 @@ -{ lib, fetchFromGitHub, buildPythonApplication, pillow, imgp }: +{ lib, fetchFromGitHub, buildPythonApplication, pythonOlder, pillow }: buildPythonApplication rec { pname = "imgp"; - version = "2.8"; + version = "2.9"; + disabled = pythonOlder "3.8"; src = fetchFromGitHub { owner = "jarun"; - repo = pname; + repo = "imgp"; rev = "v${version}"; - sha256 = "1miabaxd5pwxn0va4drzj1d4ppxvyqsrrd4xw1j6qr52yci0lms8"; + hash = "sha256-yQ2BzOBn6Bl9ieZkREKsj1zLnoPcf0hZhZ90Za5kiKA="; }; - postPatch = '' - substituteInPlace imgp \ - --replace "Image.ANTIALIAS" "Image.Resampling.LANCZOS" - ''; - propagatedBuildInputs = [ pillow ]; installFlags = [ @@ -36,7 +32,7 @@ buildPythonApplication rec { meta = with lib; { description = "High-performance CLI batch image resizer & rotator"; homepage = "https://github.com/jarun/imgp"; - license = licenses.gpl3; + license = licenses.gpl3Plus; platforms = platforms.unix; maintainers = with maintainers; [ sikmir ]; }; diff --git a/pkgs/applications/misc/archivebox/default.nix b/pkgs/applications/misc/archivebox/default.nix index 42f9feb421fe8..4979a683ebe02 100644 --- a/pkgs/applications/misc/archivebox/default.nix +++ b/pkgs/applications/misc/archivebox/default.nix @@ -1,7 +1,16 @@ { lib +, stdenv , python3 , fetchFromGitHub , fetchPypi +, curl +, wget +, git +, ripgrep +, postlight-parser +, readability-extractor +, chromium +, yt-dlp }: let @@ -34,6 +43,8 @@ let rev = "e43f383dae3a35237e42f6acfe1207a8e7e7bdf5"; hash = "sha256-NAMa78KhAuoJfp0Cb0Codz84sRfRQ1JhSLNYRI4GBPM="; }; + # possibly a real issue, but that version is not supported anymore + disabledTests = [ "test_should_highlight_bash_syntax_without_name" ]; }); }; }; @@ -41,31 +52,51 @@ in python.pkgs.buildPythonApplication rec { pname = "archivebox"; - version = "0.6.2"; + version = "0.7.2"; + pyproject = true; src = fetchPypi { inherit pname version; - sha256 = "sha256-zHty7lTra6yab9d0q3EqsPG3F+lrnZL6PjQAbL1A2NY="; + hash = "sha256-hdBUEX2tOWN2b11w6aG3x7MP7KQTj4Rwc2w8XvABGf4="; }; + nativeBuildInputs = with python.pkgs; [ + pdm-backend + ]; + propagatedBuildInputs = with python.pkgs; [ - requests - mypy-extensions + croniter + dateparser django django-extensions - dateparser - youtube-dl + ipython + mypy-extensions python-crontab - croniter + requests w3lib - ipython + yt-dlp ]; + makeWrapperArgs = [ + "--set USE_NODE True" # used through dependencies, not needed explicitly + "--set READABILITY_BINARY ${lib.meta.getExe readability-extractor}" + "--set MERCURY_BINARY ${lib.meta.getExe postlight-parser}" + "--set CURL_BINARY ${lib.meta.getExe curl}" + "--set RIPGREP_BINARY ${lib.meta.getExe ripgrep}" + "--set WGET_BINARY ${lib.meta.getExe wget}" + "--set GIT_BINARY ${lib.meta.getExe git}" + "--set YOUTUBEDL_BINARY ${lib.meta.getExe yt-dlp}" + ] ++ (if (lib.meta.availableOn stdenv.hostPlatform chromium) then [ + "--set CHROME_BINARY ${chromium}/bin/chromium-browser" + ] else [ + "--set-default USE_CHROME False" + ]); + meta = with lib; { description = "Open source self-hosted web archiving"; homepage = "https://archivebox.io"; license = licenses.mit; - maintainers = with maintainers; [ siraben ]; + maintainers = with maintainers; [ siraben viraptor ]; platforms = platforms.unix; }; } diff --git a/pkgs/applications/misc/bazecor/default.nix b/pkgs/applications/misc/bazecor/default.nix index 894f2af320ddb..0767c3c038181 100644 --- a/pkgs/applications/misc/bazecor/default.nix +++ b/pkgs/applications/misc/bazecor/default.nix @@ -5,13 +5,13 @@ appimageTools.wrapAppImage rec { pname = "bazecor"; - version = "1.3.8"; + version = "1.3.9"; src = appimageTools.extract { inherit pname version; src = fetchurl { url = "https://github.com/Dygmalab/Bazecor/releases/download/v${version}/Bazecor-${version}-x64.AppImage"; - hash = "sha256-SwlSH5z0p9ZVoDQzj4GxO3g/iHG8zQZndE4TmqdMtZQ="; + hash = "sha256-qve5xxhhyVej8dPDkZ7QQdeDUmqGO4pHJTykbS4RhAk="; }; # Workaround for https://github.com/Dygmalab/Bazecor/issues/370 @@ -26,7 +26,7 @@ appimageTools.wrapAppImage rec { # also make sure to update the udev rules in ./10-dygma.rules; most recently # taken from - # https://github.com/Dygmalab/Bazecor/blob/v1.3.8/src/main/utils/udev.ts#L6 + # https://github.com/Dygmalab/Bazecor/blob/v1.3.9/src/main/utils/udev.ts#L6 extraPkgs = p: (appimageTools.defaultFhsEnvArgs.multiPkgs p) ++ [ p.glib @@ -39,6 +39,12 @@ appimageTools.wrapAppImage rec { extraInstallCommands = '' mv $out/bin/bazecor-* $out/bin/bazecor + install -m 444 -D ${src}/Bazecor.desktop -t $out/share/applications + substituteInPlace $out/share/applications/Bazecor.desktop \ + --replace 'Exec=Bazecor' 'Exec=bazecor' + + install -m 444 -D ${src}/bazecor.png -t $out/share/pixmaps + mkdir -p $out/lib/udev/rules.d ln -s --target-directory=$out/lib/udev/rules.d ${./10-dygma.rules} ''; diff --git a/pkgs/applications/misc/clipcat/default.nix b/pkgs/applications/misc/clipcat/default.nix index 539798647d1ae..8de62f1a2296a 100644 --- a/pkgs/applications/misc/clipcat/default.nix +++ b/pkgs/applications/misc/clipcat/default.nix @@ -7,16 +7,16 @@ rustPlatform.buildRustPackage rec { pname = "clipcat"; - version = "0.16.0"; + version = "0.16.1"; src = fetchFromGitHub { owner = "xrelkd"; repo = pname; rev = "v${version}"; - hash = "sha256-9BilasXc/3FFPcKAgPvc0hIHP7NbOqRD8ZwIMRc/Y3M="; + hash = "sha256-SqA8UjKTBtkE1IkWGeshI8KBHr86V9r/+YvFZNJ6Oq8="; }; - cargoHash = "sha256-zkeKhi0DiYqA5+KiU77ZJXRyhLUKVDmHvF7TG1URzo4="; + cargoHash = "sha256-KU3kXqy9zL7GQdSsCNW7jcsxdTuRXjJyDtBpmgoXi6E="; nativeBuildInputs = [ protobuf diff --git a/pkgs/applications/misc/pe-bear/default.nix b/pkgs/applications/misc/pe-bear/default.nix index 1275f8f0db56f..45cca9e49f49c 100644 --- a/pkgs/applications/misc/pe-bear/default.nix +++ b/pkgs/applications/misc/pe-bear/default.nix @@ -8,13 +8,13 @@ stdenv.mkDerivation rec { pname = "pe-bear"; - version = "0.6.6"; + version = "0.6.7"; src = fetchFromGitHub { owner = "hasherezade"; repo = "pe-bear"; rev = "v${version}"; - sha256 = "sha256-WuuhQxjmV/AlmM1z85paUbpIaBht4fgqY8yvtZ0hPKQ="; + sha256 = "sha256-O5vBmcQXwde63OKc2LI66/tEqPzs0pK8loYkhILg2oY="; fetchSubmodules = true; }; diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix index b428800206531..0f848d77c6787 100644 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix +++ b/pkgs/applications/networking/browsers/chromium/upstream-info.nix @@ -15,9 +15,9 @@ version = "2023-10-23"; }; }; - hash = "sha256-lT1CCwYj0hT4tCJb689mZwNecUsEwcfn2Ot8r9LBT+M="; - hash_deb_amd64 = "sha256-4BWLn0+gYNWG4DsolbY6WlTvXWl7tZIZrnqXlrGUGjQ="; - version = "120.0.6099.199"; + hash = "sha256-yqk0bh68onWqML20Q8eDsTT9o+eKtta7kS9HL74do6Q="; + hash_deb_amd64 = "sha256-MxIyOXssQ1Ke5WZbBbB4FpDec+rn46m8+PbMdmxaQCA="; + version = "120.0.6099.216"; }; ungoogled-chromium = { deps = { diff --git a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix index 17e5cccd02076..191f1b97860b0 100644 --- a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix +++ b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix @@ -1,1025 +1,1025 @@ { - version = "121.0"; + version = "121.0.1"; sources = [ - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/ach/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ach/firefox-121.0.1.tar.bz2"; locale = "ach"; arch = "linux-x86_64"; - sha256 = "ef3acc06adbfbfea448f174ee9e7572c92d4f41b0a25d492880311d3ce59d25d"; + sha256 = "61e2e650ec64d7a57d666cb03ab9cfcfea5b4e666f3375a061bdacea7038144b"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/af/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/af/firefox-121.0.1.tar.bz2"; locale = "af"; arch = "linux-x86_64"; - sha256 = "948209f8fde1f41fc1602ce37a2183f34dda8605021a3f1c2db7f93b790b8919"; + sha256 = "9b0e01ee3214ca1876021269bbb063ab4b47edb3f584823f8550cf117690381b"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/an/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/an/firefox-121.0.1.tar.bz2"; locale = "an"; arch = "linux-x86_64"; - sha256 = "779894e500e83eb4914af04dab209f1bf4da7e2c94b793ddae91ea4d5bd4bac6"; + sha256 = "d1a90391bcc72fb452a3391caeb7d17fb152db3ccd1400e0d343874849c1a7ad"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/ar/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ar/firefox-121.0.1.tar.bz2"; locale = "ar"; arch = "linux-x86_64"; - sha256 = "69b55140214377d9f3f8dc730c846f1f4ffd634c2dfeea06b968b6b62f17edd0"; + sha256 = "27bbc7b43d76514a42b71ac4811223bcb2a6ddfd82d8dbdfe4e8b36f0d4000c3"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/ast/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ast/firefox-121.0.1.tar.bz2"; locale = "ast"; arch = "linux-x86_64"; - sha256 = "0c554f77afbf4cb24641a26c912801d14edf40cbb62989c63b0ad11bfb5bfd42"; + sha256 = "774c8498b2c95bc01d69e35b68ef1c673b83caa92aa567f9811967d818df9fb0"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/az/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/az/firefox-121.0.1.tar.bz2"; locale = "az"; arch = "linux-x86_64"; - sha256 = "b5ee9c6713bade0d4ff402784e0c5dcb6f3d868f9b4e45796ca349981673312b"; + sha256 = "b17401bb3f337257f67fe5816eafe1082eb8e0d7cf49ba19f9a50eb350645a00"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/be/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/be/firefox-121.0.1.tar.bz2"; locale = "be"; arch = "linux-x86_64"; - sha256 = "6fbed06adeda99ffddac291ff971fd05f89d860356035f8c3b0de0d649dfb531"; + sha256 = "2fb32fc854e7ddec1bc3f3c26992fbd6484734b129d9e10155f88fb7e6dad313"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/bg/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/bg/firefox-121.0.1.tar.bz2"; locale = "bg"; arch = "linux-x86_64"; - sha256 = "d053ebaafc0758341dde58e7e6d632dea87dcb7f6d3afc65f93d4b775bc67eaa"; + sha256 = "454ed5dad32c6727bac42b89904164d597ed4129abc38631619f95360cecd73a"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/bn/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/bn/firefox-121.0.1.tar.bz2"; locale = "bn"; arch = "linux-x86_64"; - sha256 = "3b09592af340f9bb58ee2267a6c1465102a9a0b2094d31309c6f912096e9edba"; + sha256 = "4451bddc6cb18bdf57b27ab3c95863cf5cd7b1dfee599f45a2feab97ce527c79"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/br/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/br/firefox-121.0.1.tar.bz2"; locale = "br"; arch = "linux-x86_64"; - sha256 = "22bb3f28936a9ccbf84b3ea6bf030c9ae4364539f1327d0666020399c1dae0d4"; + sha256 = "764aed72d196188ce207d11573e311cba5cb90935cedf99eda21c4400f5c2df0"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/bs/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/bs/firefox-121.0.1.tar.bz2"; locale = "bs"; arch = "linux-x86_64"; - sha256 = "3f3e8dc33ad5c74a81ce6344e9a04cc7048967d5319d6027e8f22734fa5ea260"; + sha256 = "1200c51bd3be276e3ed681c246f5e2fae5907e0b20d9869363c4d19aa301f438"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/ca-valencia/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ca-valencia/firefox-121.0.1.tar.bz2"; locale = "ca-valencia"; arch = "linux-x86_64"; - sha256 = "97a419a909e87475a5f2703d6f78c9efd22c48faa4f43819535af39a35d242f3"; + sha256 = "9734e5f3e4c220aa05031e0aa22ecba84dab1038213f986ab2c724136a8d483a"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/ca/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ca/firefox-121.0.1.tar.bz2"; locale = "ca"; arch = "linux-x86_64"; - sha256 = "beef08c0ca636034c844227d500fc1827d9ebc495465d602e3c2e020f292c36e"; + sha256 = "7e2f880b51c36a01c8f8ee46a43c274aa42a4e41a81383b1a30af096d405f0ea"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/cak/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/cak/firefox-121.0.1.tar.bz2"; locale = "cak"; arch = "linux-x86_64"; - sha256 = "428c8227543097de1f380d7fa8aae3430db8ac7c2958bb7ebd327a9d6016de79"; + sha256 = "163946337a14850df357580c1ea3381eaa08e12619d91daca52b3bc35f704a10"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/cs/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/cs/firefox-121.0.1.tar.bz2"; locale = "cs"; arch = "linux-x86_64"; - sha256 = "53131c9a655b8fce9a4bab43cfb4497794594d0bcb32700e12b480011b24c4fb"; + sha256 = "dba761165e351f8a59b17417462b610708fa35856ad7ccba6dd893e0b9de8405"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/cy/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/cy/firefox-121.0.1.tar.bz2"; locale = "cy"; arch = "linux-x86_64"; - sha256 = "4b107aee59e72c954037e60a49cbc182ed4c58a8f2ada71e23d54d6a0eca272c"; + sha256 = "9e3e8c97abae7f1c84277c4fb006674636af5761b9ae4f0e0dd6a733b1b33213"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/da/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/da/firefox-121.0.1.tar.bz2"; locale = "da"; arch = "linux-x86_64"; - sha256 = "7df23761b1370594fb0f2e4db64a1b37f927dd399c4ab0d9e2f5fc0d68518ad3"; + sha256 = "91e64816bc718cd82ddfe724933f2b46d23ee6dd6c1e6047b814a8f40caf0f84"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/de/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/de/firefox-121.0.1.tar.bz2"; locale = "de"; arch = "linux-x86_64"; - sha256 = "2ad8bf7ae7b01b9493e1490225230e146a0aa3e442a5f969f293946385882f02"; + sha256 = "a711c23f0267ae47a50d688cb3b3c9aef638dd0a2ba17eedbf872205a9c6c6e1"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/dsb/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/dsb/firefox-121.0.1.tar.bz2"; locale = "dsb"; arch = "linux-x86_64"; - sha256 = "3ce4f431262b2ef2715a9708438ded794613daf585e9aa040c476724cced94bb"; + sha256 = "15c3b378de1c7b10c2b5a9c9a79fc42d4e60d29abbe352b385f026214674b99c"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/el/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/el/firefox-121.0.1.tar.bz2"; locale = "el"; arch = "linux-x86_64"; - sha256 = "d60541d1a382b9789daab611c25b0a8bdd6b3cfb7b3122bd5839d875290819b1"; + sha256 = "b643aef6dbd89b9b8b6809d1bd208a4828dc07743577d9dfb2483ff6fce3915c"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/en-CA/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/en-CA/firefox-121.0.1.tar.bz2"; locale = "en-CA"; arch = "linux-x86_64"; - sha256 = "f70e4d37314c395da64e441df445d43cae8647744d4bd5826b368802d2b76ba0"; + sha256 = "bc6d9e97eead59d634872a1e611e016127b27cd65bc17d68bbbdde15e3460b16"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/en-GB/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/en-GB/firefox-121.0.1.tar.bz2"; locale = "en-GB"; arch = "linux-x86_64"; - sha256 = "b12b6dac28538d4425dc3c953480fcb54d23c3688edacdd72990df65ef8ffdd1"; + sha256 = "2b2e17b54255af3c4aa0c00bce68e289fc6973413d81e9ea324ee54bcb15865e"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/en-US/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/en-US/firefox-121.0.1.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; - sha256 = "f1c779b04e81a72860b9be0185d3f957c746dfc2128d62f5413b720a279b17e9"; + sha256 = "0fb696e03ac444d6c973cf3ff9f9c123b369e2091c80b50753ff1b447f1a96c1"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/eo/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/eo/firefox-121.0.1.tar.bz2"; locale = "eo"; arch = "linux-x86_64"; - sha256 = "4454448aa79f2c4f8ad7f3fe28b2ee918901b3dd989514d1cb269dbcf447b1f1"; + sha256 = "0f20aabbb73b11d03c2f40e51cc22a428473893b8fda55091d4a902828dca6f1"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/es-AR/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/es-AR/firefox-121.0.1.tar.bz2"; locale = "es-AR"; arch = "linux-x86_64"; - sha256 = "3757f45aa86e8052d9c963d04736428df6206bbbdeb48e5ace2ae4b490846295"; + sha256 = "27cb1fcf9d493630c9f051f973aecf1ae9ed35cf8c66d2ef38a92ea044d6c5de"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/es-CL/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/es-CL/firefox-121.0.1.tar.bz2"; locale = "es-CL"; arch = "linux-x86_64"; - sha256 = "4820ee8162ca6e51b98397ff49652e34108afa4fa24521da57efb0cf0e09b034"; + sha256 = "59116e71c7a95cd092254321884215374d99292dca233eacc952128829f4e8f2"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/es-ES/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/es-ES/firefox-121.0.1.tar.bz2"; locale = "es-ES"; arch = "linux-x86_64"; - sha256 = "f40e232caf2a5e2a238eeae189bcce6270875ac4b57945167592a24220a90181"; + sha256 = "383d904e7007c60316b50257dd46cdcef48d633ea1deef46952f434d4ca84762"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/es-MX/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/es-MX/firefox-121.0.1.tar.bz2"; locale = "es-MX"; arch = "linux-x86_64"; - sha256 = "58c20d883e1c1f7a37e997cb03f9e240a5c86fd004814a066a155e891a4bc629"; + sha256 = "ab39a7f2695842eff58f84d90552cb1b61a09ca7999eb19f608aee3990fb2a74"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/et/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/et/firefox-121.0.1.tar.bz2"; locale = "et"; arch = "linux-x86_64"; - sha256 = "dd7b7815612603b44a9bd91568356d0292e205e6a7bd3551fef9bf1dfeef8ca6"; + sha256 = "b40e393c23e5a4fa972916b18c6e00312406021b0e9cd3e269ebf4b66978b50b"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/eu/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/eu/firefox-121.0.1.tar.bz2"; locale = "eu"; arch = "linux-x86_64"; - sha256 = "20fef639f4c9f668013817ca75ad9144cb243f5086d2f32ef34e10f4a4164c29"; + sha256 = "68a612b6b6b43f65c0b502ae4da029e449440641e6fc89c6aa6677731fff1faa"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/fa/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/fa/firefox-121.0.1.tar.bz2"; locale = "fa"; arch = "linux-x86_64"; - sha256 = "2898af2c401b048a7c32b1f9312b9576121f664da8d95be075c1fd60a05e70bb"; + sha256 = "28ea60c4a4e134746e722c8c87d9f1afd20688db976e7fca47152b45d2da1547"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/ff/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ff/firefox-121.0.1.tar.bz2"; locale = "ff"; arch = "linux-x86_64"; - sha256 = "d6efcdafd8337ff67f53b761d3d2b95f9bd24d59441e93f6ce7b46e16e8a42b4"; + sha256 = "7323f510d9670b0f1ed8517fe38714c7fd0939ea6591d0eda859e26d7d5ad693"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/fi/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/fi/firefox-121.0.1.tar.bz2"; locale = "fi"; arch = "linux-x86_64"; - sha256 = "a987d796e049963563a69b8213ea7d460181dd348df3b0ea00e61d0ca016eecd"; + sha256 = "ef9ecbad9124b15ee458249e4aba8218db809da41594efe8bbe466ff9d0352f7"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/fr/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/fr/firefox-121.0.1.tar.bz2"; locale = "fr"; arch = "linux-x86_64"; - sha256 = "acd056a2d719dc3ba2c5d96e3a28fc89e3c00188c08144e91e420652ddd561eb"; + sha256 = "fb5b1ab97096db60252c544eb872d281143342e83a0d5d0204a66f589b33a6cb"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/fur/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/fur/firefox-121.0.1.tar.bz2"; locale = "fur"; arch = "linux-x86_64"; - sha256 = "65511fef8341eebcf3027cb5982bb1565a0902e1f091f573bc48ef4be6fdcfee"; + sha256 = "79bdc2c760cc50d75b239f1474a06992d2fbac79ed749a662aa5e34442c6662a"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/fy-NL/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/fy-NL/firefox-121.0.1.tar.bz2"; locale = "fy-NL"; arch = "linux-x86_64"; - sha256 = "e5af90c421271865b6b1454267c0724ff1da35fe135a37b74cd941d37a9746ed"; + sha256 = "4bb989f96238ec0480ad15fff54108692dd0def067ebfdc595d466835d168195"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/ga-IE/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ga-IE/firefox-121.0.1.tar.bz2"; locale = "ga-IE"; arch = "linux-x86_64"; - sha256 = "45d9c8f93e99f203ef033e8e4cf0db7c7a5b90ec70e07e92dc6992d30c0df625"; + sha256 = "12a1be1b1a2296b6e70e86abaa3068e4d99c5ae815f328ee5f3b776229b05251"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/gd/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/gd/firefox-121.0.1.tar.bz2"; locale = "gd"; arch = "linux-x86_64"; - sha256 = "46599ac0cbcc5725b3f4f556e99bc8977a8ffd22ac19074274cde732ddf52573"; + sha256 = "e75972466d6e89c7590c18874d532c401eb2a0614aa1d8b8a54f4fae6c71c2bd"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/gl/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/gl/firefox-121.0.1.tar.bz2"; locale = "gl"; arch = "linux-x86_64"; - sha256 = "f88acfc4242fe28917d4a46324d3e5b13d5c8429e14331b77e814779b8bd284c"; + sha256 = "d62d9f48bd06283525878c5f7bca57d06fffc2d463247b894022eda741393110"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/gn/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/gn/firefox-121.0.1.tar.bz2"; locale = "gn"; arch = "linux-x86_64"; - sha256 = "8728938933b9065e59653d7b77679321669dc301893b99c636302b4f4a7db64d"; + sha256 = "c335f9ac58630ab4f43df2c540e42a97bd1de67ece223ef6e8c93dd5b0c32c8b"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/gu-IN/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/gu-IN/firefox-121.0.1.tar.bz2"; locale = "gu-IN"; arch = "linux-x86_64"; - sha256 = "a5b73e0d53421217dce2d68dc1c7a605ddb317e3ad22fadabcf550e4042b8b50"; + sha256 = "32223f3968ebe177636135ab5ea21d5e2a9ffdbc6b4b9f38e7d62cfdca613455"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/he/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/he/firefox-121.0.1.tar.bz2"; locale = "he"; arch = "linux-x86_64"; - sha256 = "82530562791c5e4f6fbc52cecc003eb63c23c7f9312dfb1c494fccf01a0e9b35"; + sha256 = "ccfa245850bfae3bd9bb50621bd9790be8150226486a8893ba49897c8a68e764"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/hi-IN/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/hi-IN/firefox-121.0.1.tar.bz2"; locale = "hi-IN"; arch = "linux-x86_64"; - sha256 = "b7ec2ce57c8c7b2e742f93aa0a9ad35a36e1d59e6b945a5d85e4ccd74b218d8f"; + sha256 = "9ee63d24017e36adb80883eaaefce80c90bb83b29ff7d4c05c293ef910e2fb2c"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/hr/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/hr/firefox-121.0.1.tar.bz2"; locale = "hr"; arch = "linux-x86_64"; - sha256 = "ea6f54926ea763367826398eba1d61dcd7dbf39cb43c6961aebce867ef54c069"; + sha256 = "9e82c557c45b9804365c1fda8281e2019ba00bf091ea07e3348ba1800d6a66a6"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/hsb/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/hsb/firefox-121.0.1.tar.bz2"; locale = "hsb"; arch = "linux-x86_64"; - sha256 = "31f48263620d530c107eb88a2dcece4e20f59de1f4af8ab403e6fa8d1f8a04d6"; + sha256 = "8787af457d2984f2d109e5a3c2a3473b6e07e6b27047b8da3e7414394a44a5e1"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/hu/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/hu/firefox-121.0.1.tar.bz2"; locale = "hu"; arch = "linux-x86_64"; - sha256 = "fdcfd89185a9a33e33db78442c7c74a56f5a9c9270c2924140c37d2dc5ae6e20"; + sha256 = "961aec03b5936eb13d34d893fed72e360e474418eb51cd809fdbb3b8a00480c9"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/hy-AM/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/hy-AM/firefox-121.0.1.tar.bz2"; locale = "hy-AM"; arch = "linux-x86_64"; - sha256 = "f731daf591cc2124b9f3fea17eb44df778b2f6b58249d3c3cc811742901d5e70"; + sha256 = "10a2420a05679ccd68c2c9d5a3024a66f40f1abcb462a669f66b9a422dcf58ab"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/ia/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ia/firefox-121.0.1.tar.bz2"; locale = "ia"; arch = "linux-x86_64"; - sha256 = "8cfa3b50c0f1ab4b159516d7867d4bb38494af760f3606083045e17e369750e2"; + sha256 = "e18c01ad46e2cc6bacc7d3498086768b1bf6287824db3291fe8d18bfb243d042"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/id/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/id/firefox-121.0.1.tar.bz2"; locale = "id"; arch = "linux-x86_64"; - sha256 = "90ee84250491e6fed4999998db0599c33b25e0ead02a0410a663fdcbeea66399"; + sha256 = "c2c5c36473f2546c28e9d757160729383965a4a55938a910a613f54bfcc94a6d"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/is/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/is/firefox-121.0.1.tar.bz2"; locale = "is"; arch = "linux-x86_64"; - sha256 = "584e910bae339a0aab099a4ba73bd8b90543432a87c5f863a1289a724d106db8"; + sha256 = "3f9f0621a2fa055a5b52d294c27319c2a5c278b9ac56ce1440095bb2620f1d82"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/it/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/it/firefox-121.0.1.tar.bz2"; locale = "it"; arch = "linux-x86_64"; - sha256 = "c5737976489b0568628ac626235df7e06aa6a33ff7c4929a694290a147956219"; + sha256 = "eda0e937d6dde858db88143243ca01ea2d73adf04f98ac72dd4710c4ecbc10ba"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/ja/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ja/firefox-121.0.1.tar.bz2"; locale = "ja"; arch = "linux-x86_64"; - sha256 = "56e65e7963979c08b802225de32cef747aa94f23ce0ea86861d6a84833417395"; + sha256 = "c33096a2b4f3b9079eace0030f01eea4e4a8fdd915e89b63be6c1e56c88e13fb"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/ka/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ka/firefox-121.0.1.tar.bz2"; locale = "ka"; arch = "linux-x86_64"; - sha256 = "d43868e9095863c5e05c747175e33a2e99b5dff36f98909dfd312d36aa04f073"; + sha256 = "27361ee4fdb6b922b32a4678c5a4d3485b933ef1407787ec7f73cbe90c97ac57"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/kab/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/kab/firefox-121.0.1.tar.bz2"; locale = "kab"; arch = "linux-x86_64"; - sha256 = "b0e74a6da62c6175b68ec0ad270e7799618f7d5e57c41ab33c8daee201c5c101"; + sha256 = "a5ac5dec68c793018aa83ddd013ba65c2a1e19b982b7032597545e636f131061"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/kk/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/kk/firefox-121.0.1.tar.bz2"; locale = "kk"; arch = "linux-x86_64"; - sha256 = "0ecfc3db9f30291a20db3aad76d1404a6e4bff6573042a3af00900342376993b"; + sha256 = "46d1e71817a2f44f7c6b49c6e33afdfaad778b317a9a81d848ff8341724cc142"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/km/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/km/firefox-121.0.1.tar.bz2"; locale = "km"; arch = "linux-x86_64"; - sha256 = "355447e849684932129cdb3a20310827e0fc71a6439b24a16bb1bc5868187e0f"; + sha256 = "7b7c0df9becbd8592a0f0e63ded352f3c9f70f9677a8ab4778ae6cdb361b25db"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/kn/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/kn/firefox-121.0.1.tar.bz2"; locale = "kn"; arch = "linux-x86_64"; - sha256 = "f997d63f1343c5e6fb595db1e0ffd1804aa4576a20ce1a82ba7880a2dc21e2c9"; + sha256 = "238f6164454b1b1f2fa1b22133641b2b085aba70eab7a789a403ec4dc62c8beb"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/ko/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ko/firefox-121.0.1.tar.bz2"; locale = "ko"; arch = "linux-x86_64"; - sha256 = "395edaabf9806305e52e65b6d801311898d966a47bb776ed23dfd09c3e6b2495"; + sha256 = "2934f15ba210a82f59487e7ed41fcb533e1a9abd951faa7801465a2e637685e9"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/lij/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/lij/firefox-121.0.1.tar.bz2"; locale = "lij"; arch = "linux-x86_64"; - sha256 = "3d4a1d6352fc4beb9fb184cac6237a263d421baef58710a3bdea53a37c57ddb3"; + sha256 = "b4ea1daa08300658d512309db0aa2abf13b5c0b4bd62c1a90cc42f20ea726cf3"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/lt/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/lt/firefox-121.0.1.tar.bz2"; locale = "lt"; arch = "linux-x86_64"; - sha256 = "e7eafc5a8e0349d037984d74361bd63c75176e9a51fc9e84a15359116823e8c4"; + sha256 = "e04c9c6fabdc59620b3cc506657d7d14a628b9bf7f207fc2d4d637c3e7908ae1"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/lv/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/lv/firefox-121.0.1.tar.bz2"; locale = "lv"; arch = "linux-x86_64"; - sha256 = "f1806c16570e94eef8728f011dc43e7580d1f390beee642f1dd05c701a572b35"; + sha256 = "7b9a7e3dbf229f1e89126a7bb82c855ed749c486cbcc6e0570b599fd78f03505"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/mk/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/mk/firefox-121.0.1.tar.bz2"; locale = "mk"; arch = "linux-x86_64"; - sha256 = "25f80e5105036239f8f8020e0e4815285427c42a4a127bff553d1b79c333df61"; + sha256 = "3baab70ac191f0bf60bbe373b6350510f4de0bd54acb911a8c5b58b3747a510b"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/mr/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/mr/firefox-121.0.1.tar.bz2"; locale = "mr"; arch = "linux-x86_64"; - sha256 = "236bfa9e78ac47247b98c61581a8f5aa1129c7027c97c6aa04c7a68e2c944e37"; + sha256 = "8ba9e54161df78db71664f3af57b5065119d51e3f03a8f5313f3851dbdd1e30b"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/ms/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ms/firefox-121.0.1.tar.bz2"; locale = "ms"; arch = "linux-x86_64"; - sha256 = "1d2210fa0e9a7496d6f1ab10f04b5039061d911574fac3b1dc17340c82fb1866"; + sha256 = "45688a565ba45ea2150bf329996a802c3ed26243e4b4082eda45fcbc63d8aa6e"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/my/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/my/firefox-121.0.1.tar.bz2"; locale = "my"; arch = "linux-x86_64"; - sha256 = "660203f5198c926ae6f1f86c8677e405f2c13aed8d1e65169a5701e4a586d514"; + sha256 = "4848b526cd6eb3d3005005510d350a370e4bcbaf47e4ca071dd3dc70ac84ae56"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/nb-NO/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/nb-NO/firefox-121.0.1.tar.bz2"; locale = "nb-NO"; arch = "linux-x86_64"; - sha256 = "f9c90cd8f3ba7dc143bac4fe778462dba7ea34c350de84dea09ea079cb0c6c88"; + sha256 = "68eb317b69bc6496648e662aa9e4a38475df9be7b7bb86fd08d81ba11d9c6cff"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/ne-NP/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ne-NP/firefox-121.0.1.tar.bz2"; locale = "ne-NP"; arch = "linux-x86_64"; - sha256 = "b4750911a594eb8f2b34a8af7a664860dca4fcdcbfd0d063c8e718033508443f"; + sha256 = "f63b3c8971ae0a32670cd39fbce1b97b231a2b3a4e04a31f6bdb14f7c157ea43"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/nl/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/nl/firefox-121.0.1.tar.bz2"; locale = "nl"; arch = "linux-x86_64"; - sha256 = "ac52d8331aa94fb5185c8770e7e276c1dd37116f01abf3ebea496789adbb5e2b"; + sha256 = "40d72203eaa7cc0eefc9f1c0643ce754886179e05345242535c841c220dcf43a"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/nn-NO/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/nn-NO/firefox-121.0.1.tar.bz2"; locale = "nn-NO"; arch = "linux-x86_64"; - sha256 = "2ee98acdf01fe0726a736732308e524699c55696001ccb6009f58b1bbc5713a9"; + sha256 = "3aa806d419bbe4b004fa2977fc16d25c22d8640ae03966d2b7b32c34ca5f8405"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/oc/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/oc/firefox-121.0.1.tar.bz2"; locale = "oc"; arch = "linux-x86_64"; - sha256 = "75f9f45d77428b92be5bb9cdc6052fe6a045151b61224bc09f0eb567ddd2f11c"; + sha256 = "b81878dcd02d0f9c9a3c5370447a530152867eb62ccf5d272e8214b87b4ea627"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/pa-IN/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/pa-IN/firefox-121.0.1.tar.bz2"; locale = "pa-IN"; arch = "linux-x86_64"; - sha256 = "e034fc67a4e7b90c016217690c6ea39eaa84131582d9576e41d257566acce9c1"; + sha256 = "ff722c833602cfd6dcfc09a5e06cdbe16fcd815bd6bb8e560279cbce9eb105e6"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/pl/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/pl/firefox-121.0.1.tar.bz2"; locale = "pl"; arch = "linux-x86_64"; - sha256 = "6111a0800e83da94ad2913161a003bc0b5ecd372f83987444c0eeebe399917df"; + sha256 = "5431ebf47bcc9bfadaca87859b34db3cb5f8a0cb530ab022b5a1f3e5b73b0740"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/pt-BR/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/pt-BR/firefox-121.0.1.tar.bz2"; locale = "pt-BR"; arch = "linux-x86_64"; - sha256 = "abd7ae8b27d2e8210d9938edf0eddb72956bc137cedd06a7b34e5e4a52074373"; + sha256 = "d7f66ada6d590ca36dc0ddb069c6a28f557925f6b3066ba513d8ef62e1c88f5c"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/pt-PT/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/pt-PT/firefox-121.0.1.tar.bz2"; locale = "pt-PT"; arch = "linux-x86_64"; - sha256 = "01ec4c8a9a411c904e7708fc352526b72a7a4f545a4a4e642683c061f42826d7"; + sha256 = "bee7aa8b091e4458bb50b3c275a3ae076d7d8a574291124fd514ef0cb6699011"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/rm/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/rm/firefox-121.0.1.tar.bz2"; locale = "rm"; arch = "linux-x86_64"; - sha256 = "4b96bbb04f1759a072c70dba2201e113e60dd8a8b9f0335ebc5992616c0a6495"; + sha256 = "754ae25293bc89a11a3dd12322fbaa14dca1572aa5703646c29975518ebff14f"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/ro/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ro/firefox-121.0.1.tar.bz2"; locale = "ro"; arch = "linux-x86_64"; - sha256 = "43a7d5d47e32a35a56ab5172e659121c42009f54e66eccae6eb308405067ec2d"; + sha256 = "99827a51daa72f60861fd6df2737fe797015459ac92ea437e6092ccbc34af81d"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/ru/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ru/firefox-121.0.1.tar.bz2"; locale = "ru"; arch = "linux-x86_64"; - sha256 = "af27dedf6da50ab4e4a107005faf4842e7293097c3682fdeb0894941d958a5de"; + sha256 = "881bf39e6a1da610fad0ba44a818c25ae3a86d425d62b76bb7ce5a63423925c4"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/sat/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/sat/firefox-121.0.1.tar.bz2"; locale = "sat"; arch = "linux-x86_64"; - sha256 = "3de63d35a7a78cfa874013ec73e74de45a1f07860620301488b3e925c1b4108a"; + sha256 = "a4179b39b6da0a339f55d84f03f24aac755e437227346773c9e433b4f39b6bda"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/sc/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/sc/firefox-121.0.1.tar.bz2"; locale = "sc"; arch = "linux-x86_64"; - sha256 = "80e32c4a536071c209c747425af2ecc9333ff2f0f6c509fb2a1064be4601c7ff"; + sha256 = "14f6683b0a204296d931af97162cdfd4b32309a074a5303c804b5bf36d8a6478"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/sco/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/sco/firefox-121.0.1.tar.bz2"; locale = "sco"; arch = "linux-x86_64"; - sha256 = "87b40fc859041840aa7cdf7dc9e89769bdf2155dc485af629cb480e87aa6243c"; + sha256 = "ecbae7bc344363a1c79c3607825ba1bbfedb83db6bd1d1ea5367dfcdd3cac1fe"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/si/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/si/firefox-121.0.1.tar.bz2"; locale = "si"; arch = "linux-x86_64"; - sha256 = "3ddd4de2de556c910eb7da073657060dd8054b8c1438a7e09aeb68492482637c"; + sha256 = "810e93d08053997269a20d6bd96e7858190d7f5148c38759d711aa931539acdc"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/sk/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/sk/firefox-121.0.1.tar.bz2"; locale = "sk"; arch = "linux-x86_64"; - sha256 = "cf7422e46ddbf5cd00770ddff4c5f5c82ab364bde0fdc4782c88882be8fb3b23"; + sha256 = "a226304b56a4e7ceeeb1e84f1e4fa9ea88404ff34cbd1f3170ff4a8d7d770a03"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/sl/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/sl/firefox-121.0.1.tar.bz2"; locale = "sl"; arch = "linux-x86_64"; - sha256 = "f0470965c2aaf90f1ca95851400c0b8485304a778cf997cab21e40598d3d1e68"; + sha256 = "e2854e43356a239d3db72954a0401190fd17350b3a9fc2b43106ef98cd0ecac8"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/son/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/son/firefox-121.0.1.tar.bz2"; locale = "son"; arch = "linux-x86_64"; - sha256 = "f4b1cfdd70699d2f10178bd5fa332cc28258cd73ead2608db3e4cd8a69ab6a85"; + sha256 = "07da2205fcc2c270bc1509d2815da75963b35fe150318ac9092cfe1d83fcf930"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/sq/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/sq/firefox-121.0.1.tar.bz2"; locale = "sq"; arch = "linux-x86_64"; - sha256 = "1748d6c6a3bf84dd8015f7c8c4050dcea6929774efa5467f5f62572b67f291e5"; + sha256 = "193bfac5ac3b0341ad923a414730f12f1677a73b3ff705e32a836d062a296e6b"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/sr/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/sr/firefox-121.0.1.tar.bz2"; locale = "sr"; arch = "linux-x86_64"; - sha256 = "663d92f57d3ec4634765ade2e44d3460b459abb873cc0a6a5b203fee87fb218b"; + sha256 = "0b20e5cba5eba22a017c374ee9b32e81ab7220af22a4fc08ffc8ad182922fdeb"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/sv-SE/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/sv-SE/firefox-121.0.1.tar.bz2"; locale = "sv-SE"; arch = "linux-x86_64"; - sha256 = "0a6a9e02420518d96a45b04feab9301697dd72b7255ee19b39d1dd33960b66ea"; + sha256 = "7bcbb76745d1d8dc60aac40126ed9fa38481f4c939e675d2fc0a96ec4abe1240"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/szl/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/szl/firefox-121.0.1.tar.bz2"; locale = "szl"; arch = "linux-x86_64"; - sha256 = "3003a6c3c8b657b0212579f7d0eec691cc9b81cdce86f8ffef66958f69954d7b"; + sha256 = "822ac7638da383072e0cfbd66f76ab483d8e29c53620146da9501583bf7b62d1"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/ta/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ta/firefox-121.0.1.tar.bz2"; locale = "ta"; arch = "linux-x86_64"; - sha256 = "45370a57cfec070cd57496649ce635e976c710d3adc74b08fc73f7cb58e87e2c"; + sha256 = "cd9dd52e263d4e48b830172afecb46c9bc148e2bafb03330154e2dfa311aec39"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/te/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/te/firefox-121.0.1.tar.bz2"; locale = "te"; arch = "linux-x86_64"; - sha256 = "c10dc1bc43c1b0090831dddf66ea66a6b3ee930446e0540c0bdb6ae41e8152e8"; + sha256 = "08a334b567ed6d686b721827eb8de56d770c4a5148ade529fa4c01b66db0bde7"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/tg/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/tg/firefox-121.0.1.tar.bz2"; locale = "tg"; arch = "linux-x86_64"; - sha256 = "f9921241c30e47e2a2d98aa354aaff68a0b2db169ba2eb1e7a327d5cc059f143"; + sha256 = "71b5609765863bfa3037b397a363f1c563ca3a6676de32d331eab58e41b2868c"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/th/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/th/firefox-121.0.1.tar.bz2"; locale = "th"; arch = "linux-x86_64"; - sha256 = "cc156d5af07d8d63128af44f7c5cb0e566f40062cbad02d2a80efc1245c82b8b"; + sha256 = "bc25bf6710150d225cfaf7f7ee9d62b1753baaef8f6aa6738c3f0d54d7233501"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/tl/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/tl/firefox-121.0.1.tar.bz2"; locale = "tl"; arch = "linux-x86_64"; - sha256 = "cd3d2fce357553ffa19e8a3ac4887106e29c5ee991bf845c5852fe02361ad975"; + sha256 = "c88f9ade5cbdb4b5b8dc45ecef2a8c7a78e45c22a5def3ca298b16666228f4c1"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/tr/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/tr/firefox-121.0.1.tar.bz2"; locale = "tr"; arch = "linux-x86_64"; - sha256 = "a37d55a78feb048fe3da87bebaa819e0ca869c6630a784ee77a45c0d10b3d744"; + sha256 = "1dc3f9175ddc1f6cf5460b940ac08e1d95f67e29dfb30dc4c8b1d883d5c7493a"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/trs/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/trs/firefox-121.0.1.tar.bz2"; locale = "trs"; arch = "linux-x86_64"; - sha256 = "27fe308a6e2cec8b97515411020decec375af0fb5d1aa506caffc1e8e9fa7400"; + sha256 = "442c8dd19b236ae1cee7c6c1de7fd77eec3c785c94fe6e3ce114631e966b097a"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/uk/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/uk/firefox-121.0.1.tar.bz2"; locale = "uk"; arch = "linux-x86_64"; - sha256 = "2052940b332b93d5aea8a6c4b412a7a5875809fddfec96eb6329e469162c9887"; + sha256 = "090a05ce028f014fd4c6eb721ebf2552ca529259dcdd8d663e85929002d779cd"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/ur/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/ur/firefox-121.0.1.tar.bz2"; locale = "ur"; arch = "linux-x86_64"; - sha256 = "e4d162b47cbdb9da7133543aa037b4e972a84370d3f7ecb349a7757cc5d38437"; + sha256 = "c37a152a51aa6777128b34e645210bd965024f024584da510dc6438eda6e5ee3"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/uz/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/uz/firefox-121.0.1.tar.bz2"; locale = "uz"; arch = "linux-x86_64"; - sha256 = "b4be97acd2fc09590ce21971f955f03e121e1ca39569b798853f77843b16710a"; + sha256 = "aa511b68e1537c291eec462c403f55810b24af6567754b4000d69c084a377d0a"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/vi/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/vi/firefox-121.0.1.tar.bz2"; locale = "vi"; arch = "linux-x86_64"; - sha256 = "90cdaeaad614567f0c6fbf0f0b1e6aa74d1ffca5a8c53b10dee52ffb153f3c85"; + sha256 = "222b904551bb11d593067c02bf1128ab9635b88b94da5b6ccd5cf39165bf937a"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/xh/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/xh/firefox-121.0.1.tar.bz2"; locale = "xh"; arch = "linux-x86_64"; - sha256 = "6434a5afcd8d4aea393afc6713ff2a4a1c40e8e528faf418065399bdbb3fa436"; + sha256 = "df6013b77cbb1c75f68b6ca8554e261603d5f297e6d48c95ab4052382852c53f"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/zh-CN/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/zh-CN/firefox-121.0.1.tar.bz2"; locale = "zh-CN"; arch = "linux-x86_64"; - sha256 = "0e836a1c781dde800377df7ad927b8a6b1410ec0cd0e74e6314bc3e7f86c7efa"; + sha256 = "fbd1e851be504423e28b4bc97dd0d2d3bc6144cb0506598fc310a8d638f21dfe"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-x86_64/zh-TW/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-x86_64/zh-TW/firefox-121.0.1.tar.bz2"; locale = "zh-TW"; arch = "linux-x86_64"; - sha256 = "adf4d91655b60e2f3b48745b41cccde5a3a34efbb86c2de13b4cce9f77cf8d5a"; + sha256 = "39056ea8146ecb6a3df07b45717dd89b0a91276caa6f8e3a8d7224cc2f024dce"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/ach/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ach/firefox-121.0.1.tar.bz2"; locale = "ach"; arch = "linux-i686"; - sha256 = "57a8ad9e88167bb8cdb0b502784f715a50deddf0e2f0736f039a5d09f631bfc7"; + sha256 = "d0deafaa8615f94f4f01bfbd86289c9569ffc46385077918cfebe9f253a91de3"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/af/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/af/firefox-121.0.1.tar.bz2"; locale = "af"; arch = "linux-i686"; - sha256 = "fc7913067d14abe7997c8f9777d44cb73696f623bdf2ccbcc8eab1227c1cb945"; + sha256 = "f8534ee6db382698e3bba5aceccdea87b31ce779f7f02be4edc8a407f476d6b2"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/an/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/an/firefox-121.0.1.tar.bz2"; locale = "an"; arch = "linux-i686"; - sha256 = "ef86d1e7b870ca78078e3dc26962fbce1ecc5f1951af6b2d0e1567504895fbdd"; + sha256 = "af0e8d054eec725ce88d231bcafbec662fa857be974251f0891f1e2e14d1f4fe"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/ar/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ar/firefox-121.0.1.tar.bz2"; locale = "ar"; arch = "linux-i686"; - sha256 = "0add44758a453250e67fbeaa62a88ee69dd133b137988b72fc930159966e319e"; + sha256 = "ba13fb5fe8eb6767445452c3b3e5f354fd146b508fe2dbbe7e516a23b2cb7e85"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/ast/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ast/firefox-121.0.1.tar.bz2"; locale = "ast"; arch = "linux-i686"; - sha256 = "e28fbd987e329ad091ea58a58bc78eac408dc5672a226a28e322a10aa2a22cab"; + sha256 = "d245f092ce639001ce8a4af5f2965018af79d55c88f3c11e6baf9645de3e0a22"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/az/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/az/firefox-121.0.1.tar.bz2"; locale = "az"; arch = "linux-i686"; - sha256 = "4034fd3be479eb3a5f6fa58c42e6c754a5d4a3f2d7a3c5f6606f7853487d1c2b"; + sha256 = "79521e66a30f97407cd5b9278d69b801ae1ba76b5261e766fb4f0d59fd4c5160"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/be/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/be/firefox-121.0.1.tar.bz2"; locale = "be"; arch = "linux-i686"; - sha256 = "7a95cf4eeb05a3b5f911eb08dcf4aea0b6150de2bd21d26b9b736989b155749f"; + sha256 = "69f50dcf627b6fa7cb9949f6475559a7e87b78dfe1319d480550353cb1261fa5"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/bg/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/bg/firefox-121.0.1.tar.bz2"; locale = "bg"; arch = "linux-i686"; - sha256 = "8fd66e5c423af9228f1dcb96beb626c643ef5f69c73744b50d55de599d99ba46"; + sha256 = "7b968493db1ab2ab9c5ed2f447373713c0f6b955a511871f79ca671c4f2ccb20"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/bn/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/bn/firefox-121.0.1.tar.bz2"; locale = "bn"; arch = "linux-i686"; - sha256 = "d859dbca5c39cdbc93462ed3bcedc13566067116e5f7ab4e6a89944b81b5a81b"; + sha256 = "c8c876ed33b8a206d442cadfa9445eb0ef48ec757498470cc36774ef0cb4689d"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/br/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/br/firefox-121.0.1.tar.bz2"; locale = "br"; arch = "linux-i686"; - sha256 = "11a9c336c767b03ab50f008fa03e07a1de329e94c57bae103d38fb33c274c130"; + sha256 = "2a0eafb760287f371ea0f02563c0ae9b147e064b1e87392676078c21b5b24b53"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/bs/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/bs/firefox-121.0.1.tar.bz2"; locale = "bs"; arch = "linux-i686"; - sha256 = "1b0eccf7457252195e30deeaf1cbdcce23d0ecce857df71f01246597975191ec"; + sha256 = "e1ed9ea2a5d6442b7e1988793ce4042ef80887808d391173b2d71955c72be302"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/ca-valencia/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ca-valencia/firefox-121.0.1.tar.bz2"; locale = "ca-valencia"; arch = "linux-i686"; - sha256 = "3f5e1ea20e9a6caacc0f2f3f958b1578aaa0d5c8c6d27e6c295294c18c8069dc"; + sha256 = "a1f924ff9d93a644695e724ce5ea018a6358de92e910f29e34971a89d8ed433c"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/ca/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ca/firefox-121.0.1.tar.bz2"; locale = "ca"; arch = "linux-i686"; - sha256 = "ece0ab9a6779a3bad27e632041b38ef9b4c1b20c6b2a43af292c811c63b1a191"; + sha256 = "9a56ab4996fd06fb151d054b0b0ce9c590f3c05e1888f1c3bd97671a176c491a"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/cak/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/cak/firefox-121.0.1.tar.bz2"; locale = "cak"; arch = "linux-i686"; - sha256 = "df8936cd8236928d458c7e02f24cefa8b76d42fc6aad3e1bf9b3a063692bd8a9"; + sha256 = "cf61439403d911ae4a8ffbcb0f0453229d794234940c44971b4871b3f84543f9"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/cs/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/cs/firefox-121.0.1.tar.bz2"; locale = "cs"; arch = "linux-i686"; - sha256 = "057ca6befa22e37fe704a588065f4a369144e1084d2218369128e114bd6db69f"; + sha256 = "ccd71584b1e8fae3c3ffc9d706a554113b4b654f6f37c05120b01ed834fd2180"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/cy/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/cy/firefox-121.0.1.tar.bz2"; locale = "cy"; arch = "linux-i686"; - sha256 = "3a7ed9936c1a4208ee8347c5f51ef96c864ffac83804fc992f01e0fc90c87d56"; + sha256 = "16c1a7e4299c2e13978490cf5aed6f51d29036eff78dd5fdb0ce0f86bc175225"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/da/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/da/firefox-121.0.1.tar.bz2"; locale = "da"; arch = "linux-i686"; - sha256 = "0700547406cbca013ff4b499d29c9495d99b648d9cd08972c0314e719aedfc1d"; + sha256 = "00c4ee3fd31db0b72dae3395863d335340f7479f547e13fde2a8267c5a98f6d0"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/de/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/de/firefox-121.0.1.tar.bz2"; locale = "de"; arch = "linux-i686"; - sha256 = "b638879aa131f0a8e66af21a8b4187041e942894a7fea2eda1d00c270600bc01"; + sha256 = "6f0920684cb0013739d3e3d5d614094be3f6b830abbcd979a27cebfdd217ae9a"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/dsb/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/dsb/firefox-121.0.1.tar.bz2"; locale = "dsb"; arch = "linux-i686"; - sha256 = "942c035780179f8b47103259266306b07af99de044ebdff755ca5c823bdbf5b9"; + sha256 = "32c4b421fb269b665a75bf6d97548ab17a0ca15f9f8be57f3c10f5d9303865ec"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/el/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/el/firefox-121.0.1.tar.bz2"; locale = "el"; arch = "linux-i686"; - sha256 = "b78ef29b54fa6cfbe660eac9f56a2ee5f99b46511f0d6944e5ff5227de9f0643"; + sha256 = "09ffe174de4fcd0f5676d4df4058333ce4c4bc3a46dc19d2a1a80ea26a497120"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/en-CA/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/en-CA/firefox-121.0.1.tar.bz2"; locale = "en-CA"; arch = "linux-i686"; - sha256 = "b633a9d40ee8b1aa3a287feee9438b94cd6b919a473c57c4f3526bf0ee3e07e9"; + sha256 = "d1178d1866c356bf1d8814b93993f0ca80a437065ed07715821c5190da58c2fd"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/en-GB/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/en-GB/firefox-121.0.1.tar.bz2"; locale = "en-GB"; arch = "linux-i686"; - sha256 = "730a94730cc710c5709f9a22c84515b9dca368fd98ae0c9610f0f47646975db6"; + sha256 = "334a7fc0f1c2669793761605cd406f959ec8a369cd968cf37e9cf7e7643beeab"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/en-US/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/en-US/firefox-121.0.1.tar.bz2"; locale = "en-US"; arch = "linux-i686"; - sha256 = "d237a5a3cf69d0815eec3d00826aa004da64b8ab41837bec5a0e8de906b0f5e1"; + sha256 = "8611a988558d0c6f0b1f4fc0d8fd1bed3e0e75be22b620d01868ce3991162f28"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/eo/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/eo/firefox-121.0.1.tar.bz2"; locale = "eo"; arch = "linux-i686"; - sha256 = "b950a19fa0a6cf3f90cb2e7e5078164d92152add365f6f7f3f139b253aefc91b"; + sha256 = "4715ce7d3c79fb8db393d2f5867f754b5a94ecc43f395c95cd7ed2e6f9fcad09"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/es-AR/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/es-AR/firefox-121.0.1.tar.bz2"; locale = "es-AR"; arch = "linux-i686"; - sha256 = "7397f6d1ad267ed25993d14d65a05dbbc35a145f7de8baaa91a065b393ed342f"; + sha256 = "24e4174e35b2c90ef8b7db9198593499d66535fb55cacb027e43b48dd22c8dbc"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/es-CL/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/es-CL/firefox-121.0.1.tar.bz2"; locale = "es-CL"; arch = "linux-i686"; - sha256 = "317296559da73eb9f44b1814d4d46ea33831135b7ccb29a4204489fa223315c0"; + sha256 = "733dd845dde345a112afc69d1a46cc937766607c0b43e3ed2a7613d8da4d6d82"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/es-ES/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/es-ES/firefox-121.0.1.tar.bz2"; locale = "es-ES"; arch = "linux-i686"; - sha256 = "2d12b6f90481b7a0d3baea96120a6ae4be6fad0a3d78d3b1b25c9c4fabf8f583"; + sha256 = "9c8634b101e46c7cd47b89921be8fcc9a0783e17d07a4095062dd4138a64aad9"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/es-MX/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/es-MX/firefox-121.0.1.tar.bz2"; locale = "es-MX"; arch = "linux-i686"; - sha256 = "1031eaf77fb729955a2f764cd5afe6992dc2aab847b7905c941e80eec9dabd85"; + sha256 = "afc95dcaa7673a929bedaf92073f46f8c57b08958e746613ed5bee137a910b6d"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/et/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/et/firefox-121.0.1.tar.bz2"; locale = "et"; arch = "linux-i686"; - sha256 = "54bce31eb3f0a5f421cbb101eb512a16a5aa572d05b8fd7ef1d86c41fc7c4fe2"; + sha256 = "d18ca3c6e1825d4f62227866facc64158ece54fb58bdfa69163546163346ae34"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/eu/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/eu/firefox-121.0.1.tar.bz2"; locale = "eu"; arch = "linux-i686"; - sha256 = "2665099e30b3b0ba2c2b3e5cca89185be171a17da1458e64eacc97f3d2334aac"; + sha256 = "81b468c2ac8d58e325da92c949076d03d789950cd44dfadd302062dceeaed170"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/fa/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/fa/firefox-121.0.1.tar.bz2"; locale = "fa"; arch = "linux-i686"; - sha256 = "61c096bc3e281dbc8d5d73975698a0016fbe138294b4b72e30a31c059e9a4f38"; + sha256 = "b2f1f4042474c6d6124ca23a1902f555fc37a73a0b92cf153a3a09113eae5b34"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/ff/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ff/firefox-121.0.1.tar.bz2"; locale = "ff"; arch = "linux-i686"; - sha256 = "0b0c74629f98ee4a0d03931e35a88fc5eecdef3df2cd9a315c474f5bb380d2c1"; + sha256 = "65a3aa3af61bcb27c292e6b67f69540339729398047c1ab5acbec8e84c30ca6a"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/fi/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/fi/firefox-121.0.1.tar.bz2"; locale = "fi"; arch = "linux-i686"; - sha256 = "becd35f86e9231f7f4d5d103f99d7f766f1b150f7fc87aaf85c0677dc94defa2"; + sha256 = "e11000164538358286326378f3a3652d8d3d2ad5cbf09eced8f20273df9dbd8b"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/fr/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/fr/firefox-121.0.1.tar.bz2"; locale = "fr"; arch = "linux-i686"; - sha256 = "0098172a97a87a054f7b103b3eb2f6c37bbc2ce9161869c299ad5757bbb3f565"; + sha256 = "c88b42e49677e308b2590dde20ee4b475665c9fda176d01ea3a5071257f50f67"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/fur/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/fur/firefox-121.0.1.tar.bz2"; locale = "fur"; arch = "linux-i686"; - sha256 = "e052e014e60fa632988aa230694197edcd5988e4a784b3c1130f36d5b232629f"; + sha256 = "54ee96d1c9836d984cefd04592e34ac371aee56ffe3109785e7a4cc9789fecf5"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/fy-NL/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/fy-NL/firefox-121.0.1.tar.bz2"; locale = "fy-NL"; arch = "linux-i686"; - sha256 = "93fcc885f55aa31dde07565fa5760a20a269e667f15ae8b2bd91b0a5b2b86a11"; + sha256 = "b21c518113ec026106406bd809975342e39aceee068fa85d9bd6879da2f79b07"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/ga-IE/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ga-IE/firefox-121.0.1.tar.bz2"; locale = "ga-IE"; arch = "linux-i686"; - sha256 = "50388572a793456cfb4ad99ea7d2d31ca6e59e8e6ff3e95eff0ec03b79051c33"; + sha256 = "9e8e205c209117be055ccb8e0e751199ffa3743497ea8d41400b2cb5ddcb5a63"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/gd/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/gd/firefox-121.0.1.tar.bz2"; locale = "gd"; arch = "linux-i686"; - sha256 = "1876a3919e4fe0d943dedaec6f936756711a4267e643fdff15d68310a9c4421b"; + sha256 = "319d8bfd6684d150a5eb0444ac9474bcb676ac30bcd56944957497292f8e5c62"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/gl/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/gl/firefox-121.0.1.tar.bz2"; locale = "gl"; arch = "linux-i686"; - sha256 = "ce700ae62957204efdb89ce45e49f3fd0eaff54355e1a258cb7cae09bbecd00d"; + sha256 = "9c4ba31fe522be326132047d46e397cf78daaf7b819cf9493cd20520a6dda323"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/gn/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/gn/firefox-121.0.1.tar.bz2"; locale = "gn"; arch = "linux-i686"; - sha256 = "cc470351cae294762d170f1fd06c45d8e5fca1cf6363e8721318a29e77134488"; + sha256 = "ebeb87f88ac83d57a94bc2c51e3bf2d976fdc3a00d524c5de5957899875f5c07"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/gu-IN/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/gu-IN/firefox-121.0.1.tar.bz2"; locale = "gu-IN"; arch = "linux-i686"; - sha256 = "1ce12bbadcfcacf62d72289b7676b8f3737a78de39faa8760b42e34c1d5fab84"; + sha256 = "98607151a1750a6c323bd98018829ede6097dbef26f76b4f04f64f33f6f93e5f"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/he/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/he/firefox-121.0.1.tar.bz2"; locale = "he"; arch = "linux-i686"; - sha256 = "a2d302839136f7e09874e73c2094edd75cfa33cb13004410ac2862a96421db32"; + sha256 = "8c8d2a79ca7b269e84e9f591891a4160a10780a26f3be9d5dd503f9fbabb9b6b"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/hi-IN/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/hi-IN/firefox-121.0.1.tar.bz2"; locale = "hi-IN"; arch = "linux-i686"; - sha256 = "1f442324a9263576b8a16c0253fd8975f94540708192082622ed892d37c55350"; + sha256 = "cf30469e3363b0c04247772282c1a2b1769140b43ef3ee8a53ddc3f686f3bdee"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/hr/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/hr/firefox-121.0.1.tar.bz2"; locale = "hr"; arch = "linux-i686"; - sha256 = "339de4338e2a971ee27952d018118a72531a800ef7b16d740c70cece52866c9f"; + sha256 = "4ec0f21bc0cb261b730a6e8e466e37030cab7bc373aedf667c2555c673f81c48"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/hsb/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/hsb/firefox-121.0.1.tar.bz2"; locale = "hsb"; arch = "linux-i686"; - sha256 = "fc79988f7096bbf1128401be4dcd9fd9f47599c5019c98390d11dfb7f9b67329"; + sha256 = "8a0bc7439a7b6c41aa03b95baf1a454655198d8d303eabebc45ddbfbc09d8443"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/hu/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/hu/firefox-121.0.1.tar.bz2"; locale = "hu"; arch = "linux-i686"; - sha256 = "13540683f5cf052c142a3f5f305cfc9c876fe2821e30cb081c1826acb6ad9d34"; + sha256 = "0093b8f0de21d380bf86f6ddb14bd027c5f1feffb33e9802969a6c0046b715dd"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/hy-AM/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/hy-AM/firefox-121.0.1.tar.bz2"; locale = "hy-AM"; arch = "linux-i686"; - sha256 = "211c23d439e5426171842cae165cc644a69d43b48b82a18a71cd2f169cf6cd11"; + sha256 = "b94f12ada81cda5b890bd3400a67e0ba040860fea29777de19299428666788fb"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/ia/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ia/firefox-121.0.1.tar.bz2"; locale = "ia"; arch = "linux-i686"; - sha256 = "1e5f85f09529466f9c96c449dc111ca2d2f22cdc71e3ea603fccf0eeb2abff21"; + sha256 = "96c87ae1aefeb5fb73b0c434524f6c02fb61bf98b20f3925d51b18ff1e1a03d7"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/id/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/id/firefox-121.0.1.tar.bz2"; locale = "id"; arch = "linux-i686"; - sha256 = "805cf50848d2648a23bb94a5acb2cdca5b3355f1c7274edc8f38a3064dd67ea3"; + sha256 = "e193de3de704822a6444690c1d2f4d91c5529ef719c3174362d4d6e042f22d6c"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/is/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/is/firefox-121.0.1.tar.bz2"; locale = "is"; arch = "linux-i686"; - sha256 = "6bf03f07217bf649621e94a62b1e19d31b2254b5123caeb38333ec072c0097b0"; + sha256 = "8472dad2f691ed637c1ae81301ea142d3a1746e676fd9d2d44878da1a8f04e38"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/it/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/it/firefox-121.0.1.tar.bz2"; locale = "it"; arch = "linux-i686"; - sha256 = "7360a2d33da0cc2db29e42737eb30183d674cc4ce61b1b023c98f21953dc27db"; + sha256 = "2ce0be7bf863a763ff36c70d290b10cb377b11357c07d271827730085eebcbfa"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/ja/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ja/firefox-121.0.1.tar.bz2"; locale = "ja"; arch = "linux-i686"; - sha256 = "02c1c188acf8703cc2ccc1c3a6eb52ee96b6a34689262d41f84e7ad529e080f9"; + sha256 = "2cda46f9e362432d44946fb0829e60a93a3eeb4e6b1339c2af101b9277324990"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/ka/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ka/firefox-121.0.1.tar.bz2"; locale = "ka"; arch = "linux-i686"; - sha256 = "79c5780e0cb0308e7e4404579a8528cd4e92c2872e0e866f8eb3edb6ba15b149"; + sha256 = "62e2965a838cb71baacc3a615de4c0a32bfa0f926d4d21fb8e2fdf270a7d73a1"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/kab/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/kab/firefox-121.0.1.tar.bz2"; locale = "kab"; arch = "linux-i686"; - sha256 = "95c16ab969b2a774853224abddc0f97ab3896508d4be08adece694311bb809ee"; + sha256 = "6f97ec12339a9b0430a1dc7f443c9b99a406683929b016d17a5fe85b04207427"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/kk/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/kk/firefox-121.0.1.tar.bz2"; locale = "kk"; arch = "linux-i686"; - sha256 = "67be9749d7b9b7326825b46fb4bfaa11db2b6912cd145309a4f62534f36abc7a"; + sha256 = "8d001526f29721d0ea2add4f81def84617f7dd05a6b9b21bc7d468146a79ccd0"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/km/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/km/firefox-121.0.1.tar.bz2"; locale = "km"; arch = "linux-i686"; - sha256 = "6b9d2ed7d7fa1067c0efd5aaecba0013155e1dc8bca3884fdb018ea9b44e5637"; + sha256 = "22c568c6be8d3ede76157ac15597e4a98ec75293f521ef94da4761f28e8d29c2"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/kn/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/kn/firefox-121.0.1.tar.bz2"; locale = "kn"; arch = "linux-i686"; - sha256 = "18907950babb49166cf58b8d14fdff7aa9454da27f9b8ed5e8c4987327ec2107"; + sha256 = "86dcba2daed23052c4aaf54f383df41587bd551972df063e4903badfa76ad750"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/ko/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ko/firefox-121.0.1.tar.bz2"; locale = "ko"; arch = "linux-i686"; - sha256 = "8ed9fc182742c09de4cbb084d1e651e6882701d7ee9c9867c0152538e1841247"; + sha256 = "2fa667db03d7888858eca9cdcdc56c51c60818aa65bfbfa37b1bb2bffa1f49f1"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/lij/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/lij/firefox-121.0.1.tar.bz2"; locale = "lij"; arch = "linux-i686"; - sha256 = "203bd75f29b813bab13f32611433859046ffaea9607ecea48b22c278257443ed"; + sha256 = "0ccd6bf746e4970175bd39a49999836ff3cdb802c57c59209656958084d8de60"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/lt/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/lt/firefox-121.0.1.tar.bz2"; locale = "lt"; arch = "linux-i686"; - sha256 = "8dc41e56185e1de86602d4ce3943b3b3fbea36d3f7f1d03c50eca419f037e721"; + sha256 = "ebd327ec7cb8074bbc553646ff205f4fbd6a68cf7900f57580c2c9d94c7ca29d"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/lv/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/lv/firefox-121.0.1.tar.bz2"; locale = "lv"; arch = "linux-i686"; - sha256 = "c0838180c17bd7bef6e59e2237a1d29934147cf3177ca8a13884c6adf4131ec5"; + sha256 = "95d76ce938a0b15c424332b65fdb762a674a08aca7eee5b04fd5907317235389"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/mk/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/mk/firefox-121.0.1.tar.bz2"; locale = "mk"; arch = "linux-i686"; - sha256 = "bc9f537d1f6ff409d2517000a50e944d668399a085c77e2df183ed5118b20d51"; + sha256 = "b77683bc7e258ba8f5227438afb8a23b5daf1f05bf4da105cac374626d11b486"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/mr/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/mr/firefox-121.0.1.tar.bz2"; locale = "mr"; arch = "linux-i686"; - sha256 = "1522f56cec5621cff7b8ed17bbb39b959205df43f7850f55d93cafdc0d64497b"; + sha256 = "a9447b5006d28228183e98e4edd4540ecd937236b84f36fac8e58cdd1f15eb7c"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/ms/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ms/firefox-121.0.1.tar.bz2"; locale = "ms"; arch = "linux-i686"; - sha256 = "0fcd94a9927d48b19dab829b452574d62809309a7ff438595633981a0d54584f"; + sha256 = "aa2759b33a4d02bb8d8e9d0a0d8ba35377ce0a79c1e67f915da2b5bf59afaa92"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/my/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/my/firefox-121.0.1.tar.bz2"; locale = "my"; arch = "linux-i686"; - sha256 = "2af6d2a265949d42f4e3e12219a8d51d0df5d6b745009e88b8806a271e978ef0"; + sha256 = "82606d03aa86b70433db07c6023ae6110bf7f151bfce31afa9301a197d522ad5"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/nb-NO/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/nb-NO/firefox-121.0.1.tar.bz2"; locale = "nb-NO"; arch = "linux-i686"; - sha256 = "13926023af0438bb2411082b12f9cfe6c8f915de82333d91bfb5590c89db5cb1"; + sha256 = "c0d6f272eb21c78ed6cfc10d98e0d20f6ad8213998e01c119e49d74e36465861"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/ne-NP/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ne-NP/firefox-121.0.1.tar.bz2"; locale = "ne-NP"; arch = "linux-i686"; - sha256 = "aba6beda26f42d2f153637d9651233b66f715df15d867da69d36c1707f542786"; + sha256 = "06c87707482cc6d3a450d89a17128faacb8ffafee78a15c2a93a0f37b2055cae"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/nl/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/nl/firefox-121.0.1.tar.bz2"; locale = "nl"; arch = "linux-i686"; - sha256 = "656ec31332aab8d580b58693f2dd918e58b0cfb6515f1b9cddaab405e771f086"; + sha256 = "c0331e2d2d77ccd632fd98363a3eb353d118b1d0607ee1751b163c5ada28ac2f"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/nn-NO/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/nn-NO/firefox-121.0.1.tar.bz2"; locale = "nn-NO"; arch = "linux-i686"; - sha256 = "36c0191e2399b2787100eed0ce05102fff75246b1aaefb6867494898d484ad0e"; + sha256 = "f138acc322322b5d9be91061f70e543a9435bc94aad4d3c4c6cb94220215c823"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/oc/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/oc/firefox-121.0.1.tar.bz2"; locale = "oc"; arch = "linux-i686"; - sha256 = "8d22d9c7d301f919dc07581fabbb4ab84bcd9a570c698e209f20a0790120eb4e"; + sha256 = "724d8a0b5d0e8b44938f13705a6ab7689eb7cbd8e7fb29a0fc1c798f66431584"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/pa-IN/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/pa-IN/firefox-121.0.1.tar.bz2"; locale = "pa-IN"; arch = "linux-i686"; - sha256 = "119f7b5c1730b396644e0c32d2539e20366b5e915964ec11287b0e012794bdfd"; + sha256 = "cceff29fa2b5f1a78f65c4156c9c22ef38bc647dd264c5c43ddc22f3ca491e68"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/pl/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/pl/firefox-121.0.1.tar.bz2"; locale = "pl"; arch = "linux-i686"; - sha256 = "b9c67e208458ffe236bc551d6d7da1ea18093fbcc633c612c15bf19bd37b2a95"; + sha256 = "ce9fd590e338f9dd4fddd216123ec34bf4451a1e8caebadfea8224dbbf098261"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/pt-BR/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/pt-BR/firefox-121.0.1.tar.bz2"; locale = "pt-BR"; arch = "linux-i686"; - sha256 = "912207883c316874cc40765d52b5f229addb367c453918f6ddbe1e2ca7f2b38f"; + sha256 = "483ce8b9182ed5f2aafed6e3d277d31562803b5ec4dd432c892d2f1e82907fc6"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/pt-PT/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/pt-PT/firefox-121.0.1.tar.bz2"; locale = "pt-PT"; arch = "linux-i686"; - sha256 = "86a6e19eefa91375a51d8f897f61179aeda1486e365e4eabe68b78a6dd77eead"; + sha256 = "dbd5fe2066c25d41598b3d26e6b247aecc98a63666736d4d3e7534128313f4a2"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/rm/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/rm/firefox-121.0.1.tar.bz2"; locale = "rm"; arch = "linux-i686"; - sha256 = "edb883a3206d1e7a1f22840e4180cafd312c7c1aea4c1ecddde47fd6d71cc574"; + sha256 = "8a7f536b9099d57072ffa6a31407dd7a3c7f7c3dd5250b0dc0babf0cb2ac6957"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/ro/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ro/firefox-121.0.1.tar.bz2"; locale = "ro"; arch = "linux-i686"; - sha256 = "5fe901c5392095e023acba59b8da3caef7c89ada5874b58c0cb9dfd76c3e8991"; + sha256 = "f27400bdc54ee66cca10149b18f1debcd445a7e6f56373e3ba8a9dd9119c9844"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/ru/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ru/firefox-121.0.1.tar.bz2"; locale = "ru"; arch = "linux-i686"; - sha256 = "2c1179bc792f3a598d76f4ed6b082185e79131188b96dc6878b956151dd9f5f4"; + sha256 = "3bc7f5f68b85fbae77dc2af246a5bb69894ada939418f033efb264843d276de1"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/sat/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/sat/firefox-121.0.1.tar.bz2"; locale = "sat"; arch = "linux-i686"; - sha256 = "403656a5c18fc5324c99a11ccb8b7a76067709429bee3e987dcec15a9231cd3a"; + sha256 = "4abc03ab621d99fdba4fcefc1defc3371594be170aacbdb7b1f74630d0f63b96"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/sc/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/sc/firefox-121.0.1.tar.bz2"; locale = "sc"; arch = "linux-i686"; - sha256 = "7e1ab0434bdf2f3512d5e438322a7c963130f3876dc3efda09ac072df3c92701"; + sha256 = "427ecd0a6c32c46b158dbef49176dd0e637bed303f8b21c59d2bfa27047bee76"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/sco/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/sco/firefox-121.0.1.tar.bz2"; locale = "sco"; arch = "linux-i686"; - sha256 = "457d7a4fd1a1d47d8a6c3c4f221e04cfdd75c2625f97a0c0c012f356d5a3fc0e"; + sha256 = "708aa1bf4a9cafc1dc0231e4040a59c074b5a1047281c3aa46a6534c237ce7c1"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/si/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/si/firefox-121.0.1.tar.bz2"; locale = "si"; arch = "linux-i686"; - sha256 = "3bfc54906ce1b748c5749d66058670e028e4e71156ef0c3e6b902a9f5ceb56c5"; + sha256 = "d21ffbb6a318bf87c50b78b664ab1c3827eaae90eb6f36dc29a344a1fef6cc3f"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/sk/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/sk/firefox-121.0.1.tar.bz2"; locale = "sk"; arch = "linux-i686"; - sha256 = "e07ee130f5061c5ef7d865fdafa0925cf1988f1d059dd705d1dc6d1f557fe243"; + sha256 = "f894d457f50280817e0c360f07024853be68cbfc0b92997b254854ff7d7e1c7a"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/sl/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/sl/firefox-121.0.1.tar.bz2"; locale = "sl"; arch = "linux-i686"; - sha256 = "1a749df70aada6e5a927c7b43ba91536c046e6d2f887a2a84b9e391929a77694"; + sha256 = "e350bb8f25cd36ac9a84ab6461bf5bda68667c701de54581f4b5e33a528eda7a"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/son/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/son/firefox-121.0.1.tar.bz2"; locale = "son"; arch = "linux-i686"; - sha256 = "177817eff1e25128cfa027396ae99948577212bb7068e52275286b11abc6257f"; + sha256 = "afe90dfbf0c3d5fbd733d2916c7959504fd6c6ec79fa87839931cf82f87b0a76"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/sq/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/sq/firefox-121.0.1.tar.bz2"; locale = "sq"; arch = "linux-i686"; - sha256 = "ab824b17f55dacf6e568300af4e81856ef71e654cee481df30962c51198ff0b0"; + sha256 = "0a9e8752e0a04c182943e28676b6344745d777e5b682e5c28bb4f1e032797790"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/sr/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/sr/firefox-121.0.1.tar.bz2"; locale = "sr"; arch = "linux-i686"; - sha256 = "95c12ffb4e8ac50b3bfa823dc062ee0ed598900900c19e2f561389245a054681"; + sha256 = "08836866ca46423a551d48d4b9881ca8596c2b4aef4a0038323abf40c203de72"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/sv-SE/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/sv-SE/firefox-121.0.1.tar.bz2"; locale = "sv-SE"; arch = "linux-i686"; - sha256 = "e9affb84a718a326c3ffe33435fb75d0ebe669d713128e6592bd117ff97b5d18"; + sha256 = "28dd81c52b5b5c5bf7db8d29a47ccee72c4d297f11875cb92b3b35b0031bfc17"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/szl/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/szl/firefox-121.0.1.tar.bz2"; locale = "szl"; arch = "linux-i686"; - sha256 = "ea79f2cb5c4a6fa99f85314f52d2ead9e247e443853750e6779d912da5d2a33a"; + sha256 = "85e4f4064d3024eec49bf94878e662c16f8a33854320d5c50d8a0fd48bf7c6bc"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/ta/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ta/firefox-121.0.1.tar.bz2"; locale = "ta"; arch = "linux-i686"; - sha256 = "2b50e20c6a1ae24651a1b9363fba339fd50bff0aef47005a19ad9b7b15d1a5b1"; + sha256 = "8f90b39b4b418cfaff0167fa03afbe911ce1a0a512d85441af4a9e7372ff7165"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/te/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/te/firefox-121.0.1.tar.bz2"; locale = "te"; arch = "linux-i686"; - sha256 = "ef4d6478854c8d643ea33c77e702a4bfdefead93965891d962f65ce7d2889b5c"; + sha256 = "45be535d8838f6b725d635d150feea2fb251cb65f6851f6c9d1af29eb077c554"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/tg/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/tg/firefox-121.0.1.tar.bz2"; locale = "tg"; arch = "linux-i686"; - sha256 = "cb83d6a083d66f1a57477ccd8e3e94e7ac899ede10a7acae4a83f32da3ca172f"; + sha256 = "b4e45161d0d8698fe6ff1ceaa155036ce61e9bd28fb7ce31f0dbf448281321b9"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/th/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/th/firefox-121.0.1.tar.bz2"; locale = "th"; arch = "linux-i686"; - sha256 = "32b28399d0fe0678f89ecc65a0fa3c892d681e4ed39acb82cd672166edb29670"; + sha256 = "4a32a0e86e9bb3a7f9cdbf1a971897c2cf45e0fd4dadcfbe8d6609e310c6dc6c"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/tl/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/tl/firefox-121.0.1.tar.bz2"; locale = "tl"; arch = "linux-i686"; - sha256 = "1c828ad1418d650c5006ab2bd7d133d77b807266512fda81dc93d2342f362153"; + sha256 = "72983ac4f0f40ee4cd638d57f8db6ce99a87a27dbe627f9f95f8807c2309fbdf"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/tr/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/tr/firefox-121.0.1.tar.bz2"; locale = "tr"; arch = "linux-i686"; - sha256 = "649615224be67242c5f3bccae51717080cfdd3b1200f5e6568727b735c70e0aa"; + sha256 = "7cbb94c9f1ab8152b185bb8c895276dfb4dfd4b560e0792c4d77da76da1a8c3f"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/trs/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/trs/firefox-121.0.1.tar.bz2"; locale = "trs"; arch = "linux-i686"; - sha256 = "01a38f360175f49dceb29aa22631d9003a0a20910b4d386dcfeb45dbba6adebf"; + sha256 = "e9aec2bfdbc5ba15dafde1ea9ff209055454fbf2b997bd34ae82090e34cbc499"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/uk/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/uk/firefox-121.0.1.tar.bz2"; locale = "uk"; arch = "linux-i686"; - sha256 = "437d15bbd1c7b8e5b8653057960c27aa6939da79227b8235e51668499a37fa3b"; + sha256 = "6691d918ee8d2255be1f6c90357c8c05a683d9feef11536de2faf7c9914c8d2f"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/ur/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/ur/firefox-121.0.1.tar.bz2"; locale = "ur"; arch = "linux-i686"; - sha256 = "8811ed01323278ee2c1ee9517509d5c977ef95cd87dd956a9664d6d399350d85"; + sha256 = "f07b18c0838f9ec477b065d38d76ae4f8ffbd5a77e8d0df5d51ed4712418c901"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/uz/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/uz/firefox-121.0.1.tar.bz2"; locale = "uz"; arch = "linux-i686"; - sha256 = "121703f75f8ac5e0c0d62001bce1c6e2a45e91d2da379153f722d03d3eef3616"; + sha256 = "4f5648887a4963e8eb57272e56fe7739845e882d627f779c79eecf3ab9344a74"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/vi/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/vi/firefox-121.0.1.tar.bz2"; locale = "vi"; arch = "linux-i686"; - sha256 = "d2b3f04d9cdfd262b2f27b4ef13275eea9bcaa8bc7ecb66005ebb0af67f72629"; + sha256 = "3097ab6528ce9190f6698917c7af4a8ac7ddced04279d0ae4b17dc7848b9d5ad"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/xh/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/xh/firefox-121.0.1.tar.bz2"; locale = "xh"; arch = "linux-i686"; - sha256 = "54409f2bc668e2808b65fba77b68e9a703c32053dac64a738cedf381d2069c79"; + sha256 = "5bbbbd68182e235cc587b2f480ca71c62b3998b474bfbfc9418d02c24a69d500"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/zh-CN/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/zh-CN/firefox-121.0.1.tar.bz2"; locale = "zh-CN"; arch = "linux-i686"; - sha256 = "65717053ac51b68d0bd25ada7f6d63030cdf56ab10363faac69c3674a6e09092"; + sha256 = "b482323a818ad8f264a2713eb49cc1f92a179b711aa8710e4dbb246cb95a243a"; } - { url = "https://archive.mozilla.org/pub/firefox/releases/121.0/linux-i686/zh-TW/firefox-121.0.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/releases/121.0.1/linux-i686/zh-TW/firefox-121.0.1.tar.bz2"; locale = "zh-TW"; arch = "linux-i686"; - sha256 = "d98f30218f9384925301bc36249602ef38111a5a94f5a18378196a8e18b01273"; + sha256 = "0dffab00201502d1fa6a90b61ba99302e16b4dc783800a191fffbb6f31350260"; } ]; } diff --git a/pkgs/applications/networking/browsers/firefox/packages.nix b/pkgs/applications/networking/browsers/firefox/packages.nix index 81aaf519453a0..4972d29fe40d9 100644 --- a/pkgs/applications/networking/browsers/firefox/packages.nix +++ b/pkgs/applications/networking/browsers/firefox/packages.nix @@ -3,10 +3,10 @@ { firefox = buildMozillaMach rec { pname = "firefox"; - version = "121.0"; + version = "121.0.1"; src = fetchurl { url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; - sha512 = "52e9e21ce825c4e58f09fd2c7347f1ac4efbca47e119136a712f0d4ee80c769ef80a43bad74a4c88cd377f804f5780b07f7af5b779f3fb5d244fa095e6b3b18a"; + sha512 = "7810850a922cb4a274ced6556e14256d3ff518a96f10a0f86d1f8e40daa0a8b1a5cfcc9cbf1391029d920944e94a9149951ee107a0e718a294954bb50b6ced2e"; }; extraPatches = [ diff --git a/pkgs/applications/networking/cluster/atlantis/default.nix b/pkgs/applications/networking/cluster/atlantis/default.nix index ba99106c0960b..1f90627aa2ad3 100644 --- a/pkgs/applications/networking/cluster/atlantis/default.nix +++ b/pkgs/applications/networking/cluster/atlantis/default.nix @@ -2,16 +2,20 @@ buildGoModule rec { pname = "atlantis"; - version = "0.22.3"; + version = "0.27.0"; src = fetchFromGitHub { owner = "runatlantis"; repo = "atlantis"; rev = "v${version}"; - sha256 = "sha256-A/FT9t5Z+Iw1mVwS3d5Cc86A9e6jVbEtmEWroVUhhtw="; + hash = "sha256-a+xrmEHkSh5kicxIIxnoXgF9ep2ay5kCXwMR2sAVJIA="; }; + ldflags = [ + "-X=main.version=${version}" + "-X=main.date=1970-01-01T00:00:00Z" + ]; - vendorHash = "sha256-KUkh5yx+v5g0N4yIpgpt3i+uCtOtR0Jvf2PFQcGWtm8="; + vendorHash = "sha256-ZbCNHARgliw9TMkHyS9k+cnWgbdCCJ+8nMdJMu66Uvo="; subPackages = [ "." ]; diff --git a/pkgs/applications/networking/cluster/k9s/default.nix b/pkgs/applications/networking/cluster/k9s/default.nix index 191f499c9d0fb..7ab9b188e72ce 100644 --- a/pkgs/applications/networking/cluster/k9s/default.nix +++ b/pkgs/applications/networking/cluster/k9s/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "k9s"; - version = "0.30.8"; + version = "0.31.1"; src = fetchFromGitHub { owner = "derailed"; repo = "k9s"; rev = "v${version}"; - hash = "sha256-RIk3e/rySYev5n0NLN6ZYHIx3ssfdUXnzBJ2y6Y/n5U="; + hash = "sha256-01Hlf/wFJjqQbvr/yvzEb+W8Z3krkPlQHUWw04FM7ts="; }; ldflags = [ @@ -23,7 +23,7 @@ buildGoModule rec { proxyVendor = true; - vendorHash = "sha256-Exn4NYegZWrItBoGVb97GUDRhhfeSJUEdr7xJnxcRMI="; + vendorHash = "sha256-F7RxqxfjcmBAa8MmgRfUvEEtGMvs7NK5P257n7isl9E="; # TODO investigate why some config tests are failing doCheck = !(stdenv.isDarwin && stdenv.isAarch64); diff --git a/pkgs/applications/networking/cluster/linkerd/edge.nix b/pkgs/applications/networking/cluster/linkerd/edge.nix index e4cad2ae422fe..0378e6c31be81 100644 --- a/pkgs/applications/networking/cluster/linkerd/edge.nix +++ b/pkgs/applications/networking/cluster/linkerd/edge.nix @@ -2,7 +2,7 @@ (callPackage ./generic.nix { }) { channel = "edge"; - version = "23.12.2"; - sha256 = "1icra5x0mj02yiy8d7byhs4pzbxnixffwj6gdqxkh9g65d8mpc16"; - vendorHash = "sha256-8QyI8jxAdBTo75hqD3rtZtO71QaIs3VjlXI5xjGXS5w="; + version = "23.12.4"; + sha256 = "0q6bizch27z1lmw7as7f34zf8b95605wpr27c2mb8s1375q9lixd"; + vendorHash = "sha256-Mp2iZuESfTSe5whejJ7a43WSP6kmxFqoIlDxWx7vBLc="; } diff --git a/pkgs/applications/networking/cluster/opentofu/default.nix b/pkgs/applications/networking/cluster/opentofu/default.nix index 735c37084efa9..305d437044e6d 100644 --- a/pkgs/applications/networking/cluster/opentofu/default.nix +++ b/pkgs/applications/networking/cluster/opentofu/default.nix @@ -14,13 +14,13 @@ let package = buildGoModule rec { pname = "opentofu"; - version = "1.6.0-rc1"; + version = "1.6.0"; src = fetchFromGitHub { owner = "opentofu"; repo = "opentofu"; rev = "v${version}"; - hash = "sha256-3aNK0i0LrFmDT6JEvlYggIPC+DsilUtkrcp8E0w8FO8="; + hash = "sha256-S/D2qaXdBGEJS1/ihPJAEueUvD2bmqG1hpv+HTXCJSQ="; }; vendorHash = "sha256-kSm5RZqQRgbmPaKt5IWmuMhHwAu+oJKTX1q1lbE7hWk="; diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index eeb00b2103e87..2655acbb8c092 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -436,13 +436,13 @@ "vendorHash": "sha256-DwRfbD4AqB+4KLuYtqY5fUdzRrEpTIvL4VAM7nieJJA=" }, "gandi": { - "hash": "sha256-8heDWScvmqUStu8Hq08wvcmEiI6Ym3tb3yCjHMgsDis=", + "hash": "sha256-fsCtmwyxkXfOtiZG27VEb010jglK35yr4EynnUWlFog=", "homepage": "https://registry.terraform.io/providers/go-gandi/gandi", "owner": "go-gandi", "repo": "terraform-provider-gandi", - "rev": "v2.2.4", + "rev": "v2.3.0", "spdx": "MPL-2.0", - "vendorHash": "sha256-uWTY8cFztXFrQQ7GW6/R+x9M6vHmsb934ldq+oeW5vk=" + "vendorHash": "sha256-EiTWJ4bw8IwsRTD9Lt28Up2DXH0oVneO2IaO8VqWtkw=" }, "github": { "hash": "sha256-VBKjk8dimVBLyuhCMTGE6oH7zdiBAzAERzm85YZ4Gkg=", @@ -454,33 +454,33 @@ "vendorHash": null }, "gitlab": { - "hash": "sha256-IzZN7W1nfByUco4LG0AutSAVRHpeAnaHNmu6tpvHyQk=", + "hash": "sha256-J7jjGlvdxdAfbvSuekVaDTOZbY3MhxvLQMxGFH6LKEQ=", "homepage": "https://registry.terraform.io/providers/gitlabhq/gitlab", "owner": "gitlabhq", "repo": "terraform-provider-gitlab", - "rev": "v16.6.0", + "rev": "v16.7.0", "spdx": "MPL-2.0", - "vendorHash": "sha256-TMLLsOquMpkeAqS8hLI963hQ6t9n2fyx4XjtB+7oR2E=" + "vendorHash": "sha256-X+8WUPVpP27wWeWM1DA8P3fOToK791mtO6/grKyxcXg=" }, "google": { - "hash": "sha256-ISZC6jMxQ3f/TKsjMkG7uL260XXLdZEQauoEQUNY5eY=", + "hash": "sha256-ZlU2ifri8yM6oUwS1tVmHkTbZfdcei7M0aaX8d4o4NE=", "homepage": "https://registry.terraform.io/providers/hashicorp/google", "owner": "hashicorp", "proxyVendor": true, "repo": "terraform-provider-google", - "rev": "v5.10.0", + "rev": "v5.11.0", "spdx": "MPL-2.0", - "vendorHash": "sha256-Bk4NxA/je67lre74KkKz4eT9fgmut3Crho8z/l1xEBY=" + "vendorHash": "sha256-N/FsxRGQu7GQG54oUO4TYiBFjRSZaU1vxBidC56D7m8=" }, "google-beta": { - "hash": "sha256-roAdaihEy3OHaAG0qP6Puliqj97jvphwNr0lmKYY1Tg=", + "hash": "sha256-VZmoIR4yDh3uaaE9DOt6B04IIxsqla+dFWWXbU2qW1c=", "homepage": "https://registry.terraform.io/providers/hashicorp/google-beta", "owner": "hashicorp", "proxyVendor": true, "repo": "terraform-provider-google-beta", - "rev": "v5.10.0", + "rev": "v5.11.0", "spdx": "MPL-2.0", - "vendorHash": "sha256-Bk4NxA/je67lre74KkKz4eT9fgmut3Crho8z/l1xEBY=" + "vendorHash": "sha256-N/FsxRGQu7GQG54oUO4TYiBFjRSZaU1vxBidC56D7m8=" }, "googleworkspace": { "hash": "sha256-dedYnsKHizxJZibuvJOMbJoux0W6zgKaK5fxIofKqCY=", @@ -492,13 +492,13 @@ "vendorHash": "sha256-fqVBnAivVekV+4tpkl+E6eNA3wi8mhLevJRCs3W7L2g=" }, "grafana": { - "hash": "sha256-3Sq+08URFntRO4uF3VFo49vrdvD1Vb+nG7V4a0IHlu0=", + "hash": "sha256-6A7+9LuKq7XvP65XB00wTKfbY0cXbGR2puVP3qMSVfA=", "homepage": "https://registry.terraform.io/providers/grafana/grafana", "owner": "grafana", "repo": "terraform-provider-grafana", - "rev": "v2.8.0", + "rev": "v2.8.1", "spdx": "MPL-2.0", - "vendorHash": "sha256-uhvk1TcnT8PNV2oHJy+rM+Z+WuKgl0rGoNypEWn7ddA=" + "vendorHash": "sha256-FhpuE01EcxnZALAeMvSBxKmgJRNiJvQg6+WVKCI3Cek=" }, "gridscale": { "hash": "sha256-nOuckOEiHTMUOSjRwTHaitLOosraEl2mbU4gafi3gi4=", @@ -655,13 +655,13 @@ "vendorHash": "sha256-cLp8w0UcO9Hork/GTLOGCcSvfaYEIKl5so3/0ELm79Y=" }, "keycloak": { - "hash": "sha256-itnXalLx5Bku7sxM5wKJs2vCvDeJnhR1bQ55ye1tpKs=", + "hash": "sha256-2Z7nQ5NKS18OtoXXLm/P1n64NAxLR8nfMGyS2y17lag=", "homepage": "https://registry.terraform.io/providers/mrparkers/keycloak", "owner": "mrparkers", "repo": "terraform-provider-keycloak", - "rev": "v4.3.1", + "rev": "v4.4.0", "spdx": "MIT", - "vendorHash": "sha256-GhmawLENmRuG5ZbXEZAw8pYmHn2SN2ONzfSIVEyN4U4=" + "vendorHash": "sha256-F78OR8EG0Vy3WVJWTOlAsIBazsSXGD6KeceYuGnBqjQ=" }, "kubectl": { "hash": "sha256-UkUwWi7Z9cSMyZakD6JxMl+qdczAYfZQgwroCUjFIUM=", @@ -673,11 +673,11 @@ "vendorHash": "sha256-lXQHo66b9X0jZhoF+5Ix5qewQGyI82VPJ7gGzc2CHao=" }, "kubernetes": { - "hash": "sha256-kB91X+IkBtOJ28CopNMU0G6MHRNUZ8d0VgiO7JTneGo=", + "hash": "sha256-1MPVP9DTC5pIe5rzO/N3hcN8De+PMH/1WDiq5e1GRtA=", "homepage": "https://registry.terraform.io/providers/hashicorp/kubernetes", "owner": "hashicorp", "repo": "terraform-provider-kubernetes", - "rev": "v2.25.1", + "rev": "v2.25.2", "spdx": "MPL-2.0", "vendorHash": "sha256-1EpDTVVxmz4icLClRlJQiy2kZpZMHR9f9rAoFaZ25XY=" }, @@ -700,13 +700,13 @@ "vendorHash": "sha256-K/PH8DAi6Wj+isPx9xefQcLPKnrimfItZFSPfktTias=" }, "linode": { - "hash": "sha256-nuTQdZdkLc+AX69m26a6Cjt0HJEFo+Vvd5TH3qDMxBk=", + "hash": "sha256-AGRSwQ96CNvP1QXcUW34+B6yZLhjb9Yfu/DQWM9UdkQ=", "homepage": "https://registry.terraform.io/providers/linode/linode", "owner": "linode", "repo": "terraform-provider-linode", - "rev": "v2.12.0", + "rev": "v2.13.0", "spdx": "MPL-2.0", - "vendorHash": "sha256-hbGilQWhlme1URDz2idjYMq1oAYiI4JIvs/n/+W1lEU=" + "vendorHash": "sha256-wCQ/qbM382HgN+AT4nmt0Bn8iZrmsd+ln+kkp5/4kqs=" }, "linuxbox": { "hash": "sha256-MzasMVtXO7ZeZ+qEx2Z+7881fOIA0SFzSvXVHeEROtg=", @@ -917,11 +917,11 @@ "vendorHash": null }, "ovh": { - "hash": "sha256-s8Tg1j47J0sj9Jt98mS4rFgtGl4uFIfdaQDNXOV8Bbg=", + "hash": "sha256-TJ5PIRBgiJYT/JsWgHUXdRyaTdkO4ORHj5YDyyvt+tk=", "homepage": "https://registry.terraform.io/providers/ovh/ovh", "owner": "ovh", "repo": "terraform-provider-ovh", - "rev": "v0.35.0", + "rev": "v0.36.1", "spdx": "MPL-2.0", "vendorHash": null }, @@ -935,13 +935,13 @@ "vendorHash": null }, "pass": { - "hash": "sha256-QGcHOsyUINH4bqK14OEzNm4b7oMK/4hwN9SuKt4m6t8=", + "hash": "sha256-GQ2g7VyK+eeBqW3LMR4U0gMYsvQnG3y+KEKKkvnmfsk=", "homepage": "https://registry.terraform.io/providers/camptocamp/pass", "owner": "camptocamp", "repo": "terraform-provider-pass", - "rev": "v2.1.0", + "rev": "v2.1.1", "spdx": "MPL-2.0", - "vendorHash": "sha256-LWyfkhyTr6xHtt8nCdqid/zKwGerYVxSEpqSe853S9w=" + "vendorHash": "sha256-Koojva0MAw5WC942VbxZ6d1Pf1VwFvJMmp16TsHRS3w=" }, "porkbun": { "hash": "sha256-YWUccesHNy8mdP5iWtXP1macOLGRKqqla6dWGYihJAo=", diff --git a/pkgs/applications/networking/instant-messengers/session-desktop/default.nix b/pkgs/applications/networking/instant-messengers/session-desktop/default.nix index 214551cf237cd..9b2dc1e62ef31 100644 --- a/pkgs/applications/networking/instant-messengers/session-desktop/default.nix +++ b/pkgs/applications/networking/instant-messengers/session-desktop/default.nix @@ -8,12 +8,12 @@ }: let - version = "1.11.4"; + version = "1.11.5"; pname = "session-desktop"; src = fetchurl { url = "https://github.com/oxen-io/session-desktop/releases/download/v${version}/session-desktop-linux-x86_64-${version}.AppImage"; - hash = "sha256-fSa113BYpTZ4jvxroQsoslAkWfQr4/ROkgVOFyiVsKQ="; + hash = "sha256-Sma8e3A1tf7JmnlS4mbtlF98Ow5aRPqw+aUoitzCjmk="; }; appimage = appimageTools.wrapType2 { inherit version pname src; diff --git a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix index 4585daa8ef3f0..50db157ccac17 100644 --- a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix +++ b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix @@ -124,5 +124,6 @@ in stdenv.mkDerivation { license = licenses.unfree; maintainers = with maintainers; [ panaeon jraygauthier ]; platforms = [ "x86_64-linux" ]; + mainProgram = "skypeforlinux"; }; } diff --git a/pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix b/pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix index a859efd3fae70..6aa4ea71b6a13 100644 --- a/pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix +++ b/pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix @@ -1,7 +1,6 @@ { lib , stdenv , fetchFromGitHub -, fetchpatch , makeWrapper , makeDesktopItem , copyDesktopItems @@ -20,13 +19,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "teams-for-linux"; - version = "1.4.1"; + version = "1.4.2"; src = fetchFromGitHub { owner = "IsmaelMartinez"; repo = "teams-for-linux"; rev = "v${finalAttrs.version}"; - hash = "sha256-1URS9VPqV58p8RUA47j8sdqYqps1Ruo0aqdZXedvPX8="; + hash = "sha256-Y1SVUcBRDM+nyWuT0r0WS/PfKNkQd9x9DYlmJUFoeoo="; }; offlineCache = fetchYarnDeps { @@ -34,16 +33,6 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-ef+JW5ud9LlRxaCJC2iOT5N7FgZO7IkAABJcMQPvIBA="; }; - patches = [ - # remove when IsmaelMartinez/teams-for-linux#1058 is merged - (fetchpatch { - name = "teams-for-linux-fix-version.patch"; - url = "https://github.com/IsmaelMartinez/teams-for-linux/commit/1d14947eef35c6a2e0cbdfcce405820f8dd36c68.diff"; - hash = "sha256-kj2jEAqgZ0frUw85hY23mFYFcXz95z/WQSDymsheDfg="; - }) - ]; - - nativeBuildInputs = [ yarn prefetch-yarn-deps nodejs copyDesktopItems makeWrapper ]; configurePhase = '' diff --git a/pkgs/applications/networking/instant-messengers/webcord/default.nix b/pkgs/applications/networking/instant-messengers/webcord/default.nix index 6549c533c26fd..5e76ac99e2770 100644 --- a/pkgs/applications/networking/instant-messengers/webcord/default.nix +++ b/pkgs/applications/networking/instant-messengers/webcord/default.nix @@ -5,6 +5,7 @@ , python3 , pipewire , libpulseaudio +, libnotify , xdg-utils , electron_28 , makeDesktopItem @@ -44,6 +45,7 @@ buildNpmPackage rec { libPath = lib.makeLibraryPath [ libpulseaudio pipewire + libnotify ]; binPath = lib.makeBinPath [ xdg-utils ]; in diff --git a/pkgs/applications/networking/instant-messengers/zulip/default.nix b/pkgs/applications/networking/instant-messengers/zulip/default.nix index e519b817e142c..d2509990ff605 100644 --- a/pkgs/applications/networking/instant-messengers/zulip/default.nix +++ b/pkgs/applications/networking/instant-messengers/zulip/default.nix @@ -5,11 +5,11 @@ let pname = "zulip"; - version = "5.10.3"; + version = "5.10.4"; src = fetchurl { url = "https://github.com/zulip/zulip-desktop/releases/download/v${version}/Zulip-${version}-x86_64.AppImage"; - hash = "sha256-AnaW/zH2Vng8lpzv6LHlzCUnNWJoLpsSpmD0iZfteFg="; + hash = "sha256-M4h+kV4JjZ91K6OpxKc10XVohzKJEVxw8cYcVALibXA="; name="${pname}-${version}.AppImage"; }; @@ -37,5 +37,6 @@ in appimageTools.wrapType2 { license = licenses.asl20; maintainers = with maintainers; [ andersk jonafato ]; platforms = [ "x86_64-linux" ]; + mainProgram = "zulip"; }; } diff --git a/pkgs/applications/networking/jmeter/default.nix b/pkgs/applications/networking/jmeter/default.nix index 474a775e7c2f9..2b0627451e31d 100644 --- a/pkgs/applications/networking/jmeter/default.nix +++ b/pkgs/applications/networking/jmeter/default.nix @@ -2,10 +2,10 @@ stdenv.mkDerivation rec { pname = "jmeter"; - version = "5.6.2"; + version = "5.6.3"; src = fetchurl { url = "https://archive.apache.org/dist/jmeter/binaries/apache-${pname}-${version}.tgz"; - sha256 = "sha256-CGltO2J40nI0LRhgniFn7yjS0dX3G1koCcALvVfMjvA="; + sha256 = "sha256-9o78F/4GD2mMSKar4lmakzknSGvaKSTb4Ux0iVMY3d4="; }; nativeBuildInputs = [ makeWrapper jre ]; diff --git a/pkgs/applications/networking/mailreaders/mailspring/default.nix b/pkgs/applications/networking/mailreaders/mailspring/default.nix index 96f3f3aea2251..a211650d3d9a2 100644 --- a/pkgs/applications/networking/mailreaders/mailspring/default.nix +++ b/pkgs/applications/networking/mailreaders/mailspring/default.nix @@ -22,11 +22,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "mailspring"; - version = "1.13.2"; + version = "1.13.3"; src = fetchurl { url = "https://github.com/Foundry376/Mailspring/releases/download/${finalAttrs.version}/mailspring-${finalAttrs.version}-amd64.deb"; - hash = "sha256-KEoKUg5CRYP0kNT4jr7pjUp6gK4cQ/qQEiOBNCrhbFM="; + hash = "sha256-2F5k8zRRI6x1EQ0k8wvIq1Q3Lnrn2ROp/Mq+H7Vqzlc="; }; nativeBuildInputs = [ diff --git a/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix b/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix index 235991396f57d..79b553a5dc920 100644 --- a/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix +++ b/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitHub, mercury, pandoc, ncurses, gpgme }: +{ lib, stdenv, fetchFromGitHub, mercury, pandoc, ncurses, gpgme, coreutils, file }: stdenv.mkDerivation rec { pname = "notmuch-bower"; @@ -12,6 +12,10 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ mercury pandoc ]; + postPatch = '' + substituteInPlace src/compose.m --replace 'shell_quoted("base64' 'shell_quoted("${coreutils}/bin/base64' + substituteInPlace src/detect_mime_type.m --replace 'shell_quoted("file' 'shell_quoted("${file}/bin/file' + ''; buildInputs = [ ncurses gpgme ]; diff --git a/pkgs/applications/science/electronics/magic-vlsi/default.nix b/pkgs/applications/science/electronics/magic-vlsi/default.nix index 2e4ef8003d15f..1c9ef55e1e016 100644 --- a/pkgs/applications/science/electronics/magic-vlsi/default.nix +++ b/pkgs/applications/science/electronics/magic-vlsi/default.nix @@ -50,6 +50,6 @@ stdenv.mkDerivation rec { description = "VLSI layout tool written in Tcl"; homepage = "http://opencircuitdesign.com/magic/"; license = licenses.mit; - maintainers = with maintainers; [ anna328p thoughtpolice AndersonTorres ]; + maintainers = with maintainers; [ thoughtpolice AndersonTorres ]; }; } diff --git a/pkgs/applications/science/logic/iprover/default.nix b/pkgs/applications/science/logic/iprover/default.nix index 6485681e3313f..77e5919c0eee1 100644 --- a/pkgs/applications/science/logic/iprover/default.nix +++ b/pkgs/applications/science/logic/iprover/default.nix @@ -1,29 +1,39 @@ -{ lib, stdenv, fetchurl, ocaml, eprover, zlib }: +{ lib, stdenv, fetchFromGitLab, ocamlPackages, eprover, z3, zlib }: stdenv.mkDerivation rec { pname = "iprover"; - version = "3.1"; + version = "3.8.1"; - src = fetchurl { - url = "http://www.cs.man.ac.uk/~korovink/iprover/iprover-v${version}.tar.gz"; - sha256 = "0lik8p7ayhjwpkln1iwf0ri84ramhch74j5nj6z7ph6wfi92pgg8"; + src = fetchFromGitLab { + owner = "korovin"; + repo = pname; + rev = "f61edb113b705606c7314dc4dce0687832c3169f"; + hash = "sha256-XXqbEoYKjoktE3ZBEIEFjLhA1B75zhnfPszhe8SvbI8="; }; + postPatch = '' + substituteInPlace configure --replace Linux Debian + ''; + strictDeps = true; - nativeBuildInputs = [ ocaml eprover ]; - buildInputs = [ zlib ]; + nativeBuildInputs = [ eprover ] ++ (with ocamlPackages; [ + ocaml findlib + ]); + buildInputs = [ zlib ocamlPackages.z3 z3 ] ++ (with ocamlPackages; [ + ocamlgraph yojson zarith + ]); preConfigure = "patchShebangs ."; installPhase = '' + runHook preInstall mkdir -p "$out/bin" cp iproveropt "$out/bin" - mkdir -p "$out/share/${pname}-${version}" - cp *.p "$out/share/${pname}-${version}" echo -e "#! ${stdenv.shell}\\n$out/bin/iproveropt --clausifier \"${eprover}/bin/eprover\" --clausifier_options \" --tstp-format --silent --cnf \" \"\$@\"" > "$out"/bin/iprover chmod a+x "$out"/bin/iprover + runHook postInstall ''; meta = with lib; { diff --git a/pkgs/applications/science/math/mathematica/versions.nix b/pkgs/applications/science/math/mathematica/versions.nix index 74422621c7b45..3bbf70433471f 100644 --- a/pkgs/applications/science/math/mathematica/versions.nix +++ b/pkgs/applications/science/math/mathematica/versions.nix @@ -8,6 +8,20 @@ let versions = [ { + version = "14.0.0"; + lang = "en"; + language = "English"; + sha256 = "sha256-NzMhGQZq6o6V4UdtJxUH/yyP2s7wjTR86SRA7lW7JfI="; + installer = "Mathematica_14.0.0_LINUX.sh"; + } + { + version = "14.0.0"; + lang = "en"; + language = "English"; + sha256 = "sha256-UrcBEg6G6nbVX++X0z0oG5JjieXL0AquAqtjzY5EBn4="; + installer = "Mathematica_14.0.0_BNDL_LINUX.sh"; + } + { version = "13.3.1"; lang = "en"; language = "English"; diff --git a/pkgs/applications/version-management/got/default.nix b/pkgs/applications/version-management/got/default.nix index ee694403f294c..671a6d329573a 100644 --- a/pkgs/applications/version-management/got/default.nix +++ b/pkgs/applications/version-management/got/default.nix @@ -1,27 +1,38 @@ -{ lib, stdenv, fetchurl -, pkg-config, openssl, libbsd, libevent, libuuid, libossp_uuid, libmd, zlib, ncurses, bison +{ lib +, stdenv +, fetchurl +, pkg-config +, openssl +, libbsd +, libevent +, libuuid +, libossp_uuid +, libmd +, zlib +, ncurses +, bison , autoPatchelfHook }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "got"; - version = "0.94"; + version = "0.95"; src = fetchurl { - url = "https://gameoftrees.org/releases/portable/got-portable-${version}.tar.gz"; - hash = "sha256-hG0/a+sk6uZCxR908YfZCW44qx/SIwwGO9mUaxxHZ3k="; + url = "https://gameoftrees.org/releases/portable/got-portable-${finalAttrs.version}.tar.gz"; + hash = "sha256-5on9ff76OAFmoaKTwVM0hUCGLiAZGJzt6+jCx2Nygg4="; }; nativeBuildInputs = [ pkg-config bison ] ++ lib.optionals stdenv.isLinux [ autoPatchelfHook ]; buildInputs = [ openssl libbsd libevent libuuid libmd zlib ncurses ] - ++ lib.optionals stdenv.isDarwin [ libossp_uuid ]; + ++ lib.optionals stdenv.isDarwin [ libossp_uuid ]; configureFlags = [ "--enable-gotd" ]; preConfigure = lib.optionalString stdenv.isDarwin '' - # The configure script assumes dependencies on Darwin are install via + # The configure script assumes dependencies on Darwin are installed via # Homebrew or MacPorts and hardcodes assumptions about the paths of # dependencies which fails the nixpkgs configurePhase. substituteInPlace configure --replace 'xdarwin' 'xhomebrew' @@ -38,7 +49,7 @@ stdenv.mkDerivation rec { installCheckPhase = '' runHook preInstallCheck - test "$($out/bin/got --version)" = '${pname} ${version}' + test "$($out/bin/got --version)" = "${finalAttrs.pname} ${finalAttrs.version}" runHook postInstallCheck ''; @@ -59,4 +70,4 @@ stdenv.mkDerivation rec { platforms = platforms.linux ++ platforms.darwin; maintainers = with maintainers; [ abbe afh ]; }; -} +}) diff --git a/pkgs/applications/video/lbry/default.nix b/pkgs/applications/video/lbry/default.nix index cadd38523ca15..b7c03850c951c 100644 --- a/pkgs/applications/video/lbry/default.nix +++ b/pkgs/applications/video/lbry/default.nix @@ -2,7 +2,7 @@ let pname = "lbry-desktop"; - version = "0.53.8"; + version = "0.53.9"; in appimageTools.wrapAppImage rec { name = "${pname}-${version}"; @@ -12,7 +12,7 @@ in appimageTools.wrapAppImage rec { src = fetchurl { url = "https://github.com/lbryio/lbry-desktop/releases/download/v${version}/LBRY_${version}.AppImage"; # Gotten from latest-linux.yml - hash = "sha512-WZB2pMzSuWGPj6uad+rIECOhuWEOxi0hVUQifOrhUrKj4SnBDws+oy7V2+NpDGkzbG+Kf3IO8rcWBD4wfFoo2Q=="; + hash = "sha256-FkqIazE4eIEobYRBstXfPWh6MTCaNcCLk14yDGC4rRk="; }; }; diff --git a/pkgs/applications/video/obs-studio/default.nix b/pkgs/applications/video/obs-studio/default.nix index d64f52d90d4de..02875950acb44 100644 --- a/pkgs/applications/video/obs-studio/default.nix +++ b/pkgs/applications/video/obs-studio/default.nix @@ -139,6 +139,7 @@ stdenv.mkDerivation (finalAttrs: { "-DBUILD_BROWSER=ON" "-DCEF_ROOT_DIR=../../cef" "-DENABLE_JACK=ON" + (lib.cmakeBool "ENABLE_QSV11" stdenv.hostPlatform.isx86_64) ]; dontWrapGApps = true; diff --git a/pkgs/build-support/oci-tools/default.nix b/pkgs/build-support/oci-tools/default.nix index 18b238033ffde..67e081522d64c 100644 --- a/pkgs/build-support/oci-tools/default.nix +++ b/pkgs/build-support/oci-tools/default.nix @@ -42,7 +42,7 @@ "/sys/fs/cgroup" = { type = "cgroup"; source = "cgroup"; - options = [ "nosuid" "noexec" "nodev" "realatime" "ro" ]; + options = [ "nosuid" "noexec" "nodev" "relatime" "ro" ]; }; }; config = writeText "config.json" (builtins.toJSON { diff --git a/pkgs/by-name/ap/apt/package.nix b/pkgs/by-name/ap/apt/package.nix index 934c17eeac129..d776493c04b93 100644 --- a/pkgs/by-name/ap/apt/package.nix +++ b/pkgs/by-name/ap/apt/package.nix @@ -33,11 +33,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "apt"; - version = "2.7.7"; + version = "2.7.8"; src = fetchurl { url = "mirror://debian/pool/main/a/apt/apt_${finalAttrs.version}.tar.xz"; - hash = "sha256-07PztwFPblYbhsBZuJBA0MdCy6vFdlk8bvqg3Xsk3nc="; + hash = "sha256-nAmiwfGEiftDDWFrk+bfWhX2FHOFanidXjzOCtIZXcY="; }; # cycle detection; lib can't be split diff --git a/pkgs/by-name/co/codeium/package.nix b/pkgs/by-name/co/codeium/package.nix index 89d2d58165589..7ecca1ea410bd 100644 --- a/pkgs/by-name/co/codeium/package.nix +++ b/pkgs/by-name/co/codeium/package.nix @@ -13,10 +13,10 @@ let }.${system} or throwSystem; hash = { - x86_64-linux = "sha256-VokC5JAfBvFUaep8eIDI2eNObfhGwa2qTXcZxuaohNo="; - aarch64-linux = "sha256-n9D9syJU/vuwwh0gdJOIobzgAv/rQawTanyRiiz9gl4="; - x86_64-darwin = "sha256-wW7U3eTfR3nZtFEbhNK8GzaxK5XbW19VPV4dwo2kCxY="; - aarch64-darwin = "sha256-NTDe6PdNc5Li1vyDTypb53zDOIK8C0iS0wTDu80S84s="; + x86_64-linux = "sha256-Tip719cZ2La7d7fdpwrKCTRyUyaZCaNXb3bH0fb6WUs="; + aarch64-linux = "sha256-Ua0GNPZRT4VCeSpnczkWXhzV7fHeyyLJlkOzMXskNiU="; + x86_64-darwin = "sha256-GAus7HeKyEPfts6nKJfKVVsCgdw0nUou+oFO6orIkAM="; + aarch64-darwin = "sha256-AvikE5fIsrIkeJth1x5J+hAJI1U18+JwZpAJe0laDAQ="; }.${system} or throwSystem; bin = "$out/bin/codeium_language_server"; @@ -24,7 +24,7 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "codeium"; - version = "1.6.18"; + version = "1.6.20"; src = fetchurl { name = "${finalAttrs.pname}-${finalAttrs.version}.gz"; url = "https://github.com/Exafunction/codeium/releases/download/language-server-v${finalAttrs.version}/language_server_${plat}.gz"; diff --git a/pkgs/by-name/eb/ebpf-usb/package.nix b/pkgs/by-name/eb/ebpf-usb/package.nix new file mode 100644 index 0000000000000..a4da98ee7fb54 --- /dev/null +++ b/pkgs/by-name/eb/ebpf-usb/package.nix @@ -0,0 +1,48 @@ +{ lib +, fetchFromGitHub +, python3Packages +, bcc +}: + +python3Packages.buildPythonApplication rec { + pname = "ebpf-usb"; + version = "unstable-2022-04-03"; + pyproject = false; + + src = fetchFromGitHub { + owner = "francisrstokes"; + repo = "ebpf-usb"; + rev = "3ab6f0d8c6ece51bbb5cc5e05daa4008eccd70e8"; + hash = "sha256-n3ttFej9sroTqAOgyAejwKT+aMt/z7HlVPV6CVGPNUQ="; + }; + + makeWrapperArgs = [ + "--set PYTHONUNBUFFERED 1" + ]; + + pythonPath = [ bcc ] ++ (with python3Packages; [ + hexdump + ]); + + postPatch = '' + substituteInPlace ebpf-usb.py \ + --replace '#!/usr/bin/env -S python3 -u' '#!/usr/bin/env python3' + ''; + + installPhase = '' + runHook preInstall + install -Dm755 ebpf-usb.py $out/bin/ebpf-usb + runHook postInstall + ''; + + # no tests + doCheck = false; + + meta = with lib; { + description = "A Python script for USB monitoring using eBPF"; + homepage = "https://github.com/francisrstokes/ebpf-usb"; + license = lib.licenses.unfree; + maintainers = with maintainers; [ mevatron ]; + mainProgram = "ebpf-usb"; + }; +} diff --git a/pkgs/by-name/no/nom/package.nix b/pkgs/by-name/no/nom/package.nix index eed31c03f759b..4913eb9c7ef76 100644 --- a/pkgs/by-name/no/nom/package.nix +++ b/pkgs/by-name/no/nom/package.nix @@ -4,13 +4,13 @@ }: buildGoModule rec { pname = "nom"; - version = "2.1.0"; + version = "2.1.1"; src = fetchFromGitHub { owner = "guyfedwards"; repo = "nom"; rev = "v${version}"; - hash = "sha256-RKuaMgPYBD2G9WOKvfb+hj01aBVsCP0eOXULE+JpLR8="; + hash = "sha256-yemEq61oUzoOrBZ7e6djNxbw/QqR5Fuhi1Y12n/AdrU="; }; vendorHash = "sha256-fP6yxfIQoVaBC9hYcrCyo3YP3ntEVDbDTwKMO9TdyDI="; diff --git a/pkgs/by-name/op/openswitcher/package.nix b/pkgs/by-name/op/openswitcher/package.nix new file mode 100644 index 0000000000000..f8e3a5edef8ec --- /dev/null +++ b/pkgs/by-name/op/openswitcher/package.nix @@ -0,0 +1,80 @@ +{ lib +, python3Packages +, fetchFromSourcehut +, desktop-file-utils +, gobject-introspection +, gtk3 +, libhandy +, meson +, ninja +, pkg-config +, scdoc +, wrapGAppsHook +}: + +python3Packages.buildPythonApplication rec { + pname = "openswitcher"; + version = "0.9.1"; + format = "other"; + + src = fetchFromSourcehut { + owner = "~martijnbraam"; + repo = "pyatem"; + rev = version; + hash = "sha256-264XqBl+1qsAc5vOxJabbkubY+F72xo06WWishVEQOI="; + }; + + outputs = [ + "out" + "man" + ]; + + depsBuildBuild = [ + pkg-config + ]; + + nativeBuildInputs = [ + desktop-file-utils + gobject-introspection + gtk3 + meson + ninja + pkg-config + scdoc + wrapGAppsHook + ]; + + dontWrapGApps = true; + + buildInputs = [ + gtk3 + libhandy + ]; + + propagatedBuildInputs = with python3Packages; [ + # for switcher-control, bmd-setup + paho-mqtt + pyatem + pygobject3 + # for atemswitch + requests + # for openswitcher-proxy + toml + ]; + + postInstall = '' + install -Dm644 -t $out/lib/udev/rules.d/ $src/100-blackmagicdesign.rules + ''; + + preFixup = '' + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + meta = with lib; { + description = "Blackmagic Design mixer control application"; + downloadPage = "https://git.sr.ht/~martijnbraam/pyatem"; + homepage = "https://openswitcher.org/"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ hexa ]; + }; +} diff --git a/pkgs/by-name/pa/par2cmdline-turbo/package.nix b/pkgs/by-name/pa/par2cmdline-turbo/package.nix new file mode 100644 index 0000000000000..c5f2bbde63f56 --- /dev/null +++ b/pkgs/by-name/pa/par2cmdline-turbo/package.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchFromGitHub, autoreconfHook }: + +stdenv.mkDerivation rec { + pname = "par2cmdline-turbo"; + version = "1.1.1"; + + src = fetchFromGitHub { + owner = "animetosho"; + repo = "par2cmdline-turbo"; + rev = "v${version}"; + hash = "sha256-EJ6gBja5tPrfsfbqYs8pZDEPmJ6mCPfkUYOTTMFaKG8="; + }; + + nativeBuildInputs = [ autoreconfHook ]; + enableParallelBuilding = true; + + meta = with lib; { + homepage = "https://github.com/animetosho/par2cmdline-turbo"; + description = "par2cmdline × ParPar: speed focused par2cmdline fork"; + license = licenses.gpl2Plus; + maintainers = [ maintainers.proglottis ]; + platforms = platforms.all; + mainProgram = "par2"; + }; +} diff --git a/pkgs/by-name/po/postlight-parser/package.json b/pkgs/by-name/po/postlight-parser/package.json new file mode 100644 index 0000000000000..11b49c9e686e9 --- /dev/null +++ b/pkgs/by-name/po/postlight-parser/package.json @@ -0,0 +1,165 @@ +{ + "name": "@postlight/parser", + "version": "2.2.3", + "description": "Postlight Parser transforms web pages into clean text. Publishers and programmers use it to make the web make sense, and readers use it to read any web article comfortably.", + "author": "Postlight <mercury@postlight.com>", + "homepage": "https://reader.postlight.com", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/postlight/parser.git" + }, + "bugs": { + "url": "https://github.com/postlight/parser/issues" + }, + "keywords": [ + "mercury", + "parser", + "reader", + "web", + "content" + ], + "files": [ + "dist", + "cli.js", + "src/shims/" + ], + "main": "./dist/mercury.js", + "bin": { + "mercury-parser": "./cli.js", + "postlight-parser": "./cli.js" + }, + "scripts": { + "lint": "eslint . --fix", + "lint:ci": "remark . && eslint .", + "lint-fix-quiet": "eslint --fix --quiet", + "build": "yarn lint && rollup -c && yarn test:build", + "build:ci": "rollup -c && yarn test:build", + "build:web": "yarn lint && rollup -c rollup.config.web.js && yarn test:build:web", + "build:esm": "yarn lint && rollup -c rollup.config.esm.js && yarn test:build:esm", + "build:esm:ci": "rollup -c rollup.config.esm.js && yarn test:build:esm", + "build:web:ci": "rollup -c rollup.config.web.js && yarn test:build:web", + "release": "yarn build && yarn build:web", + "build:generator": "rollup -c scripts/rollup.config.js", + "test_build": "rollup -c", + "test": "yarn test:node && yarn test:web", + "test:node": "jest --json --outputFile test-output.json", + "test:web": "node ./node_modules/karma/bin/karma start karma.conf.js --auto-watch", + "test:build": "cd ./scripts && jest check-build.test.js", + "test:build:web": "node ./scripts/proxy-browser-test.js", + "test:build:esm": "node ./scripts/proxy-browser-test.js", + "watch:test": "jest --watch", + "generate-parser": "node ./dist/generate-custom-parser.js" + }, + "engines": { + "node": ">=10" + }, + "devDependencies": { + "@babel/core": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.0.0", + "@babel/polyfill": "^7.0.0", + "@babel/preset-env": "^7.0.0", + "@babel/runtime": "^7.0.0", + "@jesses/circle-github-bot": "^2.1.0", + "@octokit/rest": "^16.9.0", + "babel-core": "^7.0.0-bridge.0", + "babel-eslint": "^10.0.1", + "babel-jest": "^23.4.2", + "babel-plugin-module-alias": "^1.6.0", + "babel-plugin-module-resolver": "^3.1.2", + "babelify": "^10.0.0", + "babelrc-rollup": "^3.0.0", + "brfs": "^2.0.1", + "brfs-babel": "^2.0.0", + "browserify": "^16.2.3", + "changelog-maker": "^2.3.0", + "eslint": "^5.12.0", + "eslint-config-airbnb": "^17.1.0", + "eslint-config-prettier": "^6.1.0", + "eslint-import-resolver-babel-module": "^2.2.1", + "eslint-plugin-babel": "^5.3.0", + "eslint-plugin-import": "^2.14.0", + "eslint-plugin-jsx-a11y": "^6.1.2", + "eslint-plugin-react": "^7.12.3", + "express": "^4.16.4", + "husky": "^3.0.0", + "inquirer": "^7.0.0", + "jasmine-core": "^2.5.2", + "jest": "^23.6.0", + "jest-cli": "^23.6.0", + "karma": "^6.3.16", + "karma-browserify": "8.1.0", + "karma-chrome-launcher": "^3.0.0", + "karma-cli": "^2.0.0", + "karma-jasmine": "^1.0.2", + "karma-mocha": "^1.3.0", + "karma-requirejs": "^1.1.0", + "lint-staged": "^8.1.0", + "mocha": "^6.0.0", + "nock": "^10.0.6", + "ora": "^4.0.0", + "prettier": "^1.15.3", + "remark-cli": "^7.0.0", + "remark-lint": "^6.0.4", + "remark-preset-lint-recommended": "^3.0.2", + "request": "^2.88.2", + "requirejs": "^2.3.6", + "rollup": "^1.1.0", + "rollup-plugin-babel": "^4.0.1", + "rollup-plugin-commonjs": "^9.2.0", + "rollup-plugin-node-globals": "^1.4.0", + "rollup-plugin-node-resolve": "^2.0.0", + "rollup-plugin-terser": "^6.1.0", + "rollup-plugin-uglify": "^6.0.1", + "watchify": "^3.11.1" + }, + "dependencies": { + "@babel/runtime-corejs2": "^7.2.0", + "@postlight/ci-failed-test-reporter": "^1.0", + "browser-request": "github:postlight/browser-request#feat-add-headers-to-response", + "cheerio": "^0.22.0", + "difflib": "github:postlight/difflib.js", + "ellipsize": "0.1.0", + "iconv-lite": "0.5.0", + "jquery": "^3.5.0", + "moment": "^2.23.0", + "moment-parseformat": "3.0.0", + "moment-timezone": "0.5.37", + "postman-request": "^2.88.1-postman.31", + "string-direction": "^0.1.2", + "turndown": "^7.1.1", + "valid-url": "^1.0.9", + "wuzzy": "^0.1.4", + "yargs-parser": "^15.0.1" + }, + "bundleDependencies": [ + "jquery", + "moment-timezone", + "browser-request" + ], + "browser": { + "main": "./dist/mercury.web.js", + "cheerio": "./src/shims/cheerio-query", + "jquery": "./node_modules/jquery/dist/jquery.min.js", + "postman-request": "browser-request", + "iconv-lite": "./src/shims/iconv-lite", + "moment-timezone": "./node_modules/moment-timezone/builds/moment-timezone-with-data-2012-2022.min.js" + }, + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, + "lint-staged": { + "*.js": [ + "eslint --fix", + "prettier --write", + "git add" + ], + "*.{json,css,md}": [ + "remark .", + "prettier --write", + "git add" + ] + } +} diff --git a/pkgs/by-name/po/postlight-parser/package.nix b/pkgs/by-name/po/postlight-parser/package.nix new file mode 100644 index 0000000000000..c00028b9a4016 --- /dev/null +++ b/pkgs/by-name/po/postlight-parser/package.nix @@ -0,0 +1,36 @@ +{ lib +, stdenv +, mkYarnPackage +, fetchFromGitHub +, fetchYarnDeps +}: + +mkYarnPackage rec { + pname = "postlight-parser"; + version = "2.2.3"; + + src = fetchFromGitHub { + owner = "postlight"; + repo = "parser"; + rev = "v${version}"; + hash = "sha256-k6m95FHeJ+iiWSeY++1zds/bo1RtNXbnv2spaY/M+L0="; + }; + + packageJSON = ./package.json; + + doDist = false; + + offlineCache = fetchYarnDeps { + yarnLock = "${src}/yarn.lock"; + hash = "sha256-Vs8bfkhEbPv33ew//HBeDnpQcyWveByHi1gUsdl2CNI="; + }; + + meta = with lib; { + changelog = "https://github.com/postlight/parser/blob/${src.rev}/CHANGELOG.md"; + homepage = "https://reader.postlight.com"; + description = "Extracts the bits that humans care about from any URL you give it"; + license = licenses.mit; + maintainers = with maintainers; [ viraptor ]; + mainProgram = "postlight-parser"; + }; +} diff --git a/pkgs/by-name/re/readability-extractor/package.nix b/pkgs/by-name/re/readability-extractor/package.nix new file mode 100644 index 0000000000000..49d8333dd8e8a --- /dev/null +++ b/pkgs/by-name/re/readability-extractor/package.nix @@ -0,0 +1,29 @@ +{ lib +, stdenv +, buildNpmPackage +, fetchFromGitHub +}: + +buildNpmPackage { + pname = "readability-extractor"; + version = "0.0.10"; + + src = fetchFromGitHub { + owner = "ArchiveBox"; + repo = "readability-extractor"; + rev = "be5c3222990d4f0459b21e74802565309bdd1d52"; + hash = "sha256-KX9mtvwDUIV2XsH6Hgx5/W34AlM4QtZuzxp4QofPcyg="; + }; + + dontNpmBuild = true; + + npmDepsHash = "sha256-bQHID9c2Ioyectx6t/GjTR/4cCyfwDfpT0aEQZoYCiU="; + + meta = with lib; { + homepage = "https://github.com/ArchiveBox/readability-extractor"; + description = "Javascript wrapper around Mozilla Readability for ArchiveBox to call as a oneshot CLI to extract article text"; + license = licenses.mit; + maintainers = with maintainers; [ viraptor ]; + mainProgram = "readability-extractor"; + }; +} diff --git a/pkgs/by-name/sh/shadershark/package.nix b/pkgs/by-name/sh/shadershark/package.nix new file mode 100644 index 0000000000000..e27036575be76 --- /dev/null +++ b/pkgs/by-name/sh/shadershark/package.nix @@ -0,0 +1,63 @@ +{ stdenv +, lib +, fetchhg +, libepoxy +, xorg +, libGLU +, glm +, pkg-config +, imagemagick +, makeWrapper +, installShellFiles +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "shadershark"; + version = "0.1"; + + src = fetchhg { + url = "https://hg.globalcode.info/graphics/shader-shark"; + rev = "v${finalAttrs.version}"; + hash = "sha256-AYZWfqMckPKgXNIX9kAAv1mvD3opLi5EUElFsigiF3c="; + }; + + nativeBuildInputs = [ + pkg-config + makeWrapper + installShellFiles + ]; + + buildInputs = [ + libepoxy + xorg.libX11 + libGLU + glm + imagemagick + ]; + + installPhase = '' + runHook preInstall + mkdir -p $out/{bin,share/shadershark} + + install -m755 -D build/shader-shark $out/bin + cp -r shaders textures $out/share/shadershark + + wrapProgram $out/bin/shader-shark \ + --set SHADER_SHARK_DATA_DIR $out/share/shadershark + + installShellCompletion --bash --name shader-shark.bash bash-completion.sh + + runHook postInstall + ''; + + passthru.updateScript = [ ./update.sh finalAttrs.src.url ]; + + meta = with lib; { + mainProgram = "shader-shark"; + description = "OpenGL/X11 application for GNU/Linux consisting of a single window that shows simple 3D scene of a textured rectangle with applied vertex and fragment shaders (GLSL)"; + homepage = "https://graphics.globalcode.info/v_0/shader-shark.xhtml"; + license = licenses.gpl3; + maintainers = [ maintainers.lucasew ]; + platforms = platforms.linux; + }; +}) diff --git a/pkgs/by-name/sh/shadershark/update.sh b/pkgs/by-name/sh/shadershark/update.sh new file mode 100755 index 0000000000000..0bd125caac951 --- /dev/null +++ b/pkgs/by-name/sh/shadershark/update.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i bash -p curl common-updater-scripts + +set -e + +repo_url="$1"; shift + +data="$(curl "$repo_url/tags")" + +rev="$(echo "$data" | grep '/rev/v' | sed 's;.*/rev/v\([^"]*\)[^$]*;\1;' | head -n 1)" +echo "new rev: $rev" + +update-source-version shadershark "$rev" \ + --print-changes diff --git a/pkgs/by-name/te/tera-cli/package.nix b/pkgs/by-name/te/tera-cli/package.nix index 8b40581b6dc82..1f0e421013c93 100644 --- a/pkgs/by-name/te/tera-cli/package.nix +++ b/pkgs/by-name/te/tera-cli/package.nix @@ -5,16 +5,16 @@ }: rustPlatform.buildRustPackage rec { pname = "tera-cli"; - version = "0.2.5"; + version = "0.3.0"; src = fetchFromGitHub { owner = "chevdor"; repo = "tera-cli"; rev = "v${version}"; - hash = "sha256-W+pcVLxOlikwAGvx0twm23GyCMzdqnHY0YBNtcsSB5I="; + hash = "sha256-Fzrlt6p4bVtJvGg8SaMdS/+2wzABtBkj9ERcg3/bwcQ="; }; - cargoHash = "sha256-A01mok8KQk1FV8P7E4svdBCW6xqpduHy1XuUcdDFjfc="; + cargoHash = "sha256-aPN7rbU/BSgNAoq0g8JrzsXk3pbenrJZxqrm5f4zYn8="; meta = with lib; { description = "A command line utility to render templates from json|toml|yaml and ENV, using the tera templating engine"; diff --git a/pkgs/by-name/te/termcap/package.nix b/pkgs/by-name/te/termcap/package.nix new file mode 100644 index 0000000000000..6382ade90ea71 --- /dev/null +++ b/pkgs/by-name/te/termcap/package.nix @@ -0,0 +1,67 @@ +{ lib +, stdenv +, fetchurl +, fetchpatch +, autoreconfHook +, enableStatic ? stdenv.hostPlatform.isStatic +, enableShared ? !stdenv.hostPlatform.isStatic +}: + +stdenv.mkDerivation rec { + pname = "termcap"; + version = "1.3.1"; + + src = fetchurl { + url = "mirror://gnu/termcap/termcap-${version}.tar.gz"; + hash = "sha256-kaDiLlOHykRntbyxjt8cUbkwJi/UZtX9o5bdnSZxkQA="; + }; + + patches = [ + (fetchpatch { + name = "0001-tparam-replace-write-with-fprintf.patch"; + url = "https://github.com/msys2/MINGW-packages/raw/c6691ad1bd9d4c6823a18068ca0683c3e32ea005/mingw-w64-termcap/0001-tparam-replace-write-with-fprintf.patch"; + hash = "sha256-R9XaLfa8fzQBt+M+uA1AFTvKYCeOWLUD/7GViazXwto="; + }) + ]; + + outputs = [ "out" "dev" ]; + + enableParallelBuilding = true; + + strictDeps = true; + + nativeBuildInputs = [ autoreconfHook ]; + + makeFlags = [ + "AR=${stdenv.cc.targetPrefix}ar" + ]; + + env.NIX_CFLAGS_COMPILE = toString ([ + "-DSTDC_HEADERS" + ] ++ lib.optionals stdenv.cc.isClang [ + "-Wno-implicit-function-declaration" + ]); + + # Library only statically links by default + postInstall = lib.optionalString (!enableStatic) '' + rm $out/lib/libtermcap.a + '' + lib.optionalString enableShared (let + libName = "lib${pname}${stdenv.hostPlatform.extensions.sharedLibrary}"; + impLibName = "lib${pname}.dll.a"; + winImpLib = lib.optionalString stdenv.hostPlatform.isWindows + "-Wl,--out-implib,${impLibName}"; + in '' + ${stdenv.cc.targetPrefix}cc -shared -o ${libName} termcap.o tparam.o version.o ${winImpLib} + install -Dm644 ${libName} $out/lib + '' + lib.optionalString stdenv.hostPlatform.isWindows '' + install -Dm644 ${impLibName} $out/lib + ''); + + meta = { + description = "Terminal feature database"; + homepage = "https://www.gnu.org/software/termutils/"; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [ wegank ]; + platforms = lib.platforms.all; + }; +} diff --git a/pkgs/by-name/un/universal-android-debloater/package.nix b/pkgs/by-name/un/universal-android-debloater/package.nix index 3be147dabc97d..8b91f0b5fae99 100644 --- a/pkgs/by-name/un/universal-android-debloater/package.nix +++ b/pkgs/by-name/un/universal-android-debloater/package.nix @@ -14,16 +14,16 @@ }: rustPlatform.buildRustPackage rec { pname = "universal-android-debloater"; - version = "0.6.1"; + version = "0.6.2"; src = fetchFromGitHub { owner = "Universal-Debloater-Alliance"; repo = pname; rev = version; - hash = "sha256-8s4/lAekW2glz4lH79UtbziToytT53m5wQGTVMBAqMU="; + hash = "sha256-yCtdCg2mEAz4b/ev32x+RbjCtHTu20mOKFgtckXk1Fo="; }; - cargoHash = "sha256-fMW9CmDyJ77PIuJ6QGI8nNZsuAZwkL9xf3xbbX13HKw="; + cargoHash = "sha256-70dX5fqORdGG2q3YeXJHABCHy0dvtA/Cptk8aLGNgV4="; buildInputs = [ expat diff --git a/pkgs/by-name/wi/win2xcur/package.nix b/pkgs/by-name/wi/win2xcur/package.nix new file mode 100644 index 0000000000000..94dcfb935f431 --- /dev/null +++ b/pkgs/by-name/wi/win2xcur/package.nix @@ -0,0 +1,23 @@ +{ lib, python3Packages, fetchFromGitHub }: + +python3Packages.buildPythonPackage rec { + pname = "win2xcur"; + version = "0.1.2"; + + src = fetchFromGitHub { + owner = "quantum5"; + repo = "win2xcur"; + rev = "v${version}"; + sha256 = "sha256-OjLj+QYg8YOJzDq3Y6/uyEXlNWbPm8VA/b1yP9jT6Jo="; + }; + + propagatedBuildInputs = with python3Packages; [ numpy wand ]; + + meta = with lib; { + description = "Tools that convert cursors between the Windows (*.cur, *.ani) and Xcursor format"; + homepage = "https://github.com/quantum5/win2xcur"; + changelog = "https://github.com/quantum5/win2xcur/releases/tag/v${version}"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ teatwig ]; + }; +} diff --git a/pkgs/by-name/wl/wlvncc/package.nix b/pkgs/by-name/wl/wlvncc/package.nix new file mode 100644 index 0000000000000..24ec18ff4b16e --- /dev/null +++ b/pkgs/by-name/wl/wlvncc/package.nix @@ -0,0 +1,68 @@ +{ lib +, stdenv +, fetchFromGitHub +, aml +, cyrus_sasl +, ffmpeg +, gnutls +, libGL +, libdrm +, libgcrypt +, libjpeg +, libpng +, libxkbcommon +, lzo +, mesa +, meson +, ninja +, openssl +, pkg-config +, pixman +, wayland +, zlib +}: +stdenv.mkDerivation { + pname = "wlvncc"; + version = "unstable-2023-01-05"; + + src = fetchFromGitHub { + owner = "any1"; + repo = "wlvncc"; + rev = "2b9a886edd38204ef36e9f9f65dd32aaa3784530"; + hash = "sha256-0HbZEtDaLjr966RS+2GHc7N4nsivPIv57T/+AJliwUI="; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + ]; + + buildInputs = [ + aml + cyrus_sasl + ffmpeg + gnutls + libGL + libdrm + libgcrypt + libjpeg + libpng + libxkbcommon + lzo + mesa + openssl + pixman + wayland + zlib + ]; + + meta = with lib; { + description = "A Wayland Native VNC Client"; + homepage = "https://github.com/any1/wlvncc"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ teutat3s ]; + platforms = platforms.linux; + mainProgram = "wlvncc"; + }; +} diff --git a/pkgs/data/misc/v2ray-domain-list-community/default.nix b/pkgs/data/misc/v2ray-domain-list-community/default.nix index 01042d5c6b68c..9593195d78d49 100644 --- a/pkgs/data/misc/v2ray-domain-list-community/default.nix +++ b/pkgs/data/misc/v2ray-domain-list-community/default.nix @@ -3,12 +3,12 @@ let generator = pkgsBuildBuild.buildGoModule rec { pname = "v2ray-domain-list-community"; - version = "20240101162810"; + version = "20240105034708"; src = fetchFromGitHub { owner = "v2fly"; repo = "domain-list-community"; rev = version; - hash = "sha256-aL5QH+bvQt3l40GuM0lbvamjl1I7MpkSNceiaccyttg="; + hash = "sha256-8taKbZUWttpTY56lzgWJeAPpt0q9srSwRkNqkOsmY2Y="; }; vendorHash = "sha256-azvMUi8eLNoNofRa2X4SKTTiMd6aOyO6H/rOiKjkpIY="; meta = with lib; { diff --git a/pkgs/data/themes/dracula-theme/default.nix b/pkgs/data/themes/dracula-theme/default.nix index b555b9197403c..e4cfce0adbe1e 100644 --- a/pkgs/data/themes/dracula-theme/default.nix +++ b/pkgs/data/themes/dracula-theme/default.nix @@ -1,8 +1,8 @@ -{ lib, stdenvNoCC, fetchFromGitHub, gtk-engine-murrine }: +{ lib, stdenvNoCC, fetchFromGitHub, unstableGitUpdater, gtk-engine-murrine }: let themeName = "Dracula"; - version = "4.0.0"; + version = "unstable-2023-12-16"; in stdenvNoCC.mkDerivation { pname = "dracula-theme"; @@ -11,8 +11,8 @@ stdenvNoCC.mkDerivation { src = fetchFromGitHub { owner = "dracula"; repo = "gtk"; - rev = "v${version}"; - hash = "sha256-q3/uBd+jPFhiVAllyhqf486Jxa0mnCDSIqcm/jwGtJA="; + rev = "80d5a3fedf280e9cc7f2df3b100a1082c3bcd1cc"; + hash = "sha256-BPL0Msva1/sPQKPeRJHgvU+xXU3m8b2E6aDBLmXbkkA="; }; propagatedUserEnvPkgs = [ @@ -38,11 +38,13 @@ stdenvNoCC.mkDerivation { runHook postInstall ''; + passthru.updateScript = unstableGitUpdater { }; + meta = with lib; { description = "Dracula variant of the Ant theme"; homepage = "https://github.com/dracula/gtk"; license = licenses.gpl3; platforms = platforms.all; - maintainers = with maintainers; [ alexarice ]; + maintainers = with maintainers; [ alexarice msfjarvis ]; }; } diff --git a/pkgs/development/compilers/djgpp/default.nix b/pkgs/development/compilers/djgpp/default.nix index d6f645f3a31a7..1dabc225d9a42 100644 --- a/pkgs/development/compilers/djgpp/default.nix +++ b/pkgs/development/compilers/djgpp/default.nix @@ -58,6 +58,10 @@ stdenv.mkDerivation rec { hardeningDisable = [ "format" ]; + # stripping breaks static libs, causing this when you attempt to compile a binary: + # error adding symbols: Archive has no index; run ranlib to add one + dontStrip = true; + buildPhase = '' runHook preBuild mkdir download; pushd download diff --git a/pkgs/development/compilers/llvm/common/bintools.nix b/pkgs/development/compilers/llvm/common/bintools.nix index a60060e868913..85b570d976ae8 100644 --- a/pkgs/development/compilers/llvm/common/bintools.nix +++ b/pkgs/development/compilers/llvm/common/bintools.nix @@ -8,6 +8,7 @@ runCommand "llvm-binutils-${version}" preferLocalBuild = true; passthru = { isLLVM = true; + inherit targetPrefix; }; } ('' diff --git a/pkgs/development/compilers/nim/default.nix b/pkgs/development/compilers/nim/default.nix index 70d46dc46061e..1b5f21ddef796 100644 --- a/pkgs/development/compilers/nim/default.nix +++ b/pkgs/development/compilers/nim/default.nix @@ -147,7 +147,7 @@ in { ln -sf $out/nim/bin/nim $out/bin/nim ln -sf $out/nim/lib $out/lib ./install.sh $out - cp -a tools $out/nim/ + cp -a tools dist $out/nim/ runHook postInstall ''; diff --git a/pkgs/development/cuda-modules/generic-builders/manifest.nix b/pkgs/development/cuda-modules/generic-builders/manifest.nix index 5a4c5280d7dbd..5cde8552effc9 100644 --- a/pkgs/development/cuda-modules/generic-builders/manifest.nix +++ b/pkgs/development/cuda-modules/generic-builders/manifest.nix @@ -26,6 +26,7 @@ redistribRelease, # See ./modules/generic/manifests/feature/release.nix featureRelease, + cudaMajorMinorVersion, }: let inherit (lib) @@ -98,7 +99,7 @@ backendStdenv.mkDerivation ( outputToPatterns = { bin = [ "bin" ]; dev = [ - "share/pkg-config" + "share/pkgconfig" "**/*.pc" "**/*.cmake" ]; @@ -127,22 +128,34 @@ backendStdenv.mkDerivation ( sha256 = redistribRelease.${redistArch}.sha256 or lib.fakeHash; }; + # Handle the pkg-config files: + # 1. No FHS + # 2. Location expected by the pkg-config wrapper + # 3. Generate unversioned names too postPatch = '' - if [[ -d pkg-config ]] ; then - mkdir -p share/pkg-config - mv pkg-config/* share/pkg-config/ - rmdir pkg-config - fi + for path in pkg-config pkgconfig ; do + [[ -d "$path" ]] || continue + mkdir -p share/pkgconfig + mv "$path"/* share/pkgconfig/ + rmdir "$path" + done - for pc in share/pkg-config/*.pc ; do + for pc in share/pkgconfig/*.pc ; do sed -i \ -e "s|^cudaroot\s*=.*\$|cudaroot=''${!outputDev}|" \ -e "s|^libdir\s*=.*/lib\$|libdir=''${!outputLib}/lib|" \ -e "s|^includedir\s*=.*/include\$|includedir=''${!outputDev}/include|" \ "$pc" done + + # E.g. cuda-11.8.pc -> cuda.pc + for pc in share/pkgconfig/*-"$majorMinorVersion.pc" ; do + ln -s "$(basename "$pc")" "''${pc%-$majorMinorVersion.pc}".pc + done ''; + env.majorMinorVersion = cudaMajorMinorVersion; + # We do need some other phases, like configurePhase, so the multiple-output setup hook works. dontBuild = true; diff --git a/pkgs/development/cuda-modules/setup-hooks/auto-add-cuda-compat-runpath.sh b/pkgs/development/cuda-modules/setup-hooks/auto-add-cuda-compat-runpath.sh index 537daad2f00e3..ae25cebaca6fa 100644 --- a/pkgs/development/cuda-modules/setup-hooks/auto-add-cuda-compat-runpath.sh +++ b/pkgs/development/cuda-modules/setup-hooks/auto-add-cuda-compat-runpath.sh @@ -10,7 +10,7 @@ elfHasDynamicSection() { autoAddCudaCompatRunpathPhase() ( local outputPaths mapfile -t outputPaths < <(for o in $(getAllOutputNames); do echo "${!o}"; done) - find "${outputPaths[@]}" -type f -executable -print0 | while IFS= read -rd "" f; do + find "${outputPaths[@]}" -type f -print0 | while IFS= read -rd "" f; do if isELF "$f"; then # patchelf returns an error on statically linked ELF files if elfHasDynamicSection "$f" ; then diff --git a/pkgs/development/cuda-modules/setup-hooks/auto-add-opengl-runpath-hook.sh b/pkgs/development/cuda-modules/setup-hooks/auto-add-opengl-runpath-hook.sh index f50a5f6c25c66..a6eeef7c76994 100644 --- a/pkgs/development/cuda-modules/setup-hooks/auto-add-opengl-runpath-hook.sh +++ b/pkgs/development/cuda-modules/setup-hooks/auto-add-opengl-runpath-hook.sh @@ -9,7 +9,7 @@ elfHasDynamicSection() { autoAddOpenGLRunpathPhase() ( local outputPaths mapfile -t outputPaths < <(for o in $(getAllOutputNames); do echo "${!o}"; done) - find "${outputPaths[@]}" -type f -executable -print0 | while IFS= read -rd "" f; do + find "${outputPaths[@]}" -type f -print0 | while IFS= read -rd "" f; do if isELF "$f"; then # patchelf returns an error on statically linked ELF files if elfHasDynamicSection "$f" ; then diff --git a/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py b/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py index d9b539926b833..9e46a11141a65 100755 --- a/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py +++ b/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py @@ -210,7 +210,7 @@ def _determine_latest_version(current_version, target, versions): return (max(sorted(versions))).raw_version -def _get_latest_version_pypi(package, extension, current_version, target): +def _get_latest_version_pypi(attr_path, package, extension, current_version, target): """Get latest version and hash from PyPI.""" url = "{}/{}/json".format(INDEX, package) json = _fetch_page(url) @@ -234,7 +234,7 @@ def _get_latest_version_pypi(package, extension, current_version, target): return version, sha256, None -def _get_latest_version_github(package, extension, current_version, target): +def _get_latest_version_github(attr_path, package, extension, current_version, target): def strip_prefix(tag): return re.sub("^[^0-9]*", "", tag) @@ -242,9 +242,6 @@ def _get_latest_version_github(package, extension, current_version, target): matches = re.findall(r"^([^0-9]*)", string) return next(iter(matches), "") - # when invoked as an updateScript, UPDATE_NIX_ATTR_PATH will be set - # this allows us to work with packages which live outside of python-modules - attr_path = os.environ.get("UPDATE_NIX_ATTR_PATH", f"python3Packages.{package}") try: homepage = subprocess.check_output( [ @@ -421,13 +418,17 @@ def _update_package(path, target): # Attempt a fetch using each pname, e.g. backports-zoneinfo vs backports.zoneinfo successful_fetch = False for pname in pnames: - if BULK_UPDATE and _skip_bulk_update(f"python3Packages.{pname}"): + # when invoked as an updateScript, UPDATE_NIX_ATTR_PATH will be set + # this allows us to work with packages which live outside of python-modules + attr_path = os.environ.get("UPDATE_NIX_ATTR_PATH", f"python3Packages.{pname}") + + if BULK_UPDATE and _skip_bulk_update(attr_path): raise ValueError(f"Bulk update skipped for {pname}") - elif _get_attr_value(f"python3Packages.{pname}.cargoDeps") is not None: + elif _get_attr_value(f"{attr_path}.cargoDeps") is not None: raise ValueError(f"Cargo dependencies are unsupported, skipping {pname}") try: new_version, new_sha256, prefix = FETCHERS[fetcher]( - pname, extension, version, target + attr_path, pname, extension, version, target ) successful_fetch = True break @@ -452,7 +453,7 @@ def _update_package(path, target): sri_hash = _hash_to_sri("sha256", new_sha256) # retrieve the old output hash for a more precise match - if old_hash := _get_attr_value(f"python3Packages.{pname}.src.outputHash"): + if old_hash := _get_attr_value(f"{attr_path}.src.outputHash"): # fetchers can specify a sha256, or a sri hash try: text = _replace_value("hash", sri_hash, text, old_hash) diff --git a/pkgs/development/libraries/SDL_gfx/default.nix b/pkgs/development/libraries/SDL_gfx/default.nix index 41d84184c165d..bccc11f43d418 100644 --- a/pkgs/development/libraries/SDL_gfx/default.nix +++ b/pkgs/development/libraries/SDL_gfx/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "SDL_gfx"; - version = "2.0.26"; + version = "2.0.27"; src = fetchurl { url = "https://www.ferzkopp.net/Software/SDL_gfx-2.0/${pname}-${version}.tar.gz"; - sha256 = "0ijljhs0v99dj6y27hc10z6qchyp8gdp4199y6jzngy6dzxlzsvw"; + sha256 = "sha256-37FaxfjOeklS3BLSrtl0dRjF5rM1wOMWNtI/k8Yw9Bk="; }; # SDL_gfx.pc refers to sdl.pc and some SDL_gfx headers import SDL.h diff --git a/pkgs/development/libraries/fastcdr/default.nix b/pkgs/development/libraries/fastcdr/default.nix index e8968043a1d76..64a7eeac1915f 100644 --- a/pkgs/development/libraries/fastcdr/default.nix +++ b/pkgs/development/libraries/fastcdr/default.nix @@ -10,13 +10,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "fastcdr"; - version = "2.1.2"; + version = "2.1.3"; src = fetchFromGitHub { owner = "eProsima"; repo = "Fast-CDR"; rev = "v${finalAttrs.version}"; - hash = "sha256-rdRn/vRcZuej7buyb1K6f+9A4oLSodNw3pwefjsUXHA="; + hash = "sha256-eSf6LNTVsGEBXjTmTBjjWKBqs68pbnVcw1p2bi1Asgg="; }; patches = [ diff --git a/pkgs/development/libraries/libgcrypt/1.8.nix b/pkgs/development/libraries/libgcrypt/1.8.nix index 1cbbafe403192..2f0f3b4fd019e 100644 --- a/pkgs/development/libraries/libgcrypt/1.8.nix +++ b/pkgs/development/libraries/libgcrypt/1.8.nix @@ -69,7 +69,7 @@ stdenv.mkDerivation rec { license = licenses.lgpl2Plus; platforms = platforms.all; knownVulnerabilities = [ - "CVE-2018-12437" # CVE is about LibTomCrypt + "CVE-2021-40528" ]; }; } diff --git a/pkgs/development/libraries/libsystemtap/default.nix b/pkgs/development/libraries/libsystemtap/default.nix index 3525d057b97af..4ec9fea5a0e65 100644 --- a/pkgs/development/libraries/libsystemtap/default.nix +++ b/pkgs/development/libraries/libsystemtap/default.nix @@ -6,12 +6,12 @@ stdenv.mkDerivation { pname = "libsystemtap"; - version = "4.6"; + version = "5.0"; src = fetchgit { url = "git://sourceware.org/git/systemtap.git"; - rev = "release-4.6"; - hash = "sha256-z7OUy0VGxK39aYCWFfvJnWk34Je0R+51kK5pGh7TzXM="; + rev = "release-5.0"; + hash = "sha256-dIBpySBTFn01CNtYwbXEramUlcYHPF6O/Ffr1BxdAH0="; }; dontBuild = true; diff --git a/pkgs/development/libraries/openscenegraph/default.nix b/pkgs/development/libraries/openscenegraph/default.nix index f45bda41b8635..62f45de2bebf3 100644 --- a/pkgs/development/libraries/openscenegraph/default.nix +++ b/pkgs/development/libraries/openscenegraph/default.nix @@ -1,10 +1,10 @@ -{ stdenv, lib, fetchFromGitHub, fetchpatch, cmake, pkg-config, doxygen, +{ stdenv, lib, fetchFromGitHub, fetchpatch, fetchurl, cmake, pkg-config, doxygen, libX11, libXinerama, libXrandr, libGLU, libGL, - glib, ilmbase, libxml2, pcre, zlib, + glib, libxml2, pcre, zlib, AGL, Accelerate, Carbon, Cocoa, Foundation, boost, jpegSupport ? true, libjpeg, - exrSupport ? false, openexr, + exrSupport ? false, openexr_3, gifSupport ? true, giflib, pngSupport ? true, libpng, tiffSupport ? true, libtiff, @@ -42,9 +42,9 @@ stdenv.mkDerivation rec { buildInputs = lib.optionals (!stdenv.isDarwin) [ libX11 libXinerama libXrandr libGLU libGL ] ++ [ - glib ilmbase libxml2 pcre zlib + glib libxml2 pcre zlib ] ++ lib.optional jpegSupport libjpeg - ++ lib.optional exrSupport openexr + ++ lib.optional exrSupport openexr_3 ++ lib.optional gifSupport giflib ++ lib.optional pngSupport libpng ++ lib.optional tiffSupport libtiff @@ -74,6 +74,11 @@ stdenv.mkDerivation rec { url = "https://github.com/openscenegraph/OpenSceneGraph/commit/bc2daf9b3239c42d7e51ecd7947d31a92a7dc82b.patch"; hash = "sha256-VR8YKOV/YihB5eEGZOGaIfJNrig1EPS/PJmpKsK284c="; }) + # OpenEXR 3 support: https://github.com/openscenegraph/OpenSceneGraph/issues/1075 + (fetchurl { + url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-games/openscenegraph/files/openscenegraph-3.6.5-openexr3.patch?id=0f642d8f09b589166f0e0c0fc84df7673990bf3f"; + hash = "sha256-fdNbkg6Vp7DeDBTe5Zso8qJ5v9uPSXHpQ5XlGkvputk="; + }) ]; cmakeFlags = lib.optional (!withApps) "-DBUILD_OSG_APPLICATIONS=OFF" ++ lib.optional withExamples "-DBUILD_OSG_EXAMPLES=ON"; diff --git a/pkgs/development/lisp-modules/nix-cl.nix b/pkgs/development/lisp-modules/nix-cl.nix index 3f45f58110e90..327f4aa65aff5 100644 --- a/pkgs/development/lisp-modules/nix-cl.nix +++ b/pkgs/development/lisp-modules/nix-cl.nix @@ -147,7 +147,7 @@ let stdenv.mkDerivation (rec { inherit - pname version nativeLibs javaLibs lispLibs systems asds + version nativeLibs javaLibs lispLibs systems asds pkg program flags faslExt ; @@ -216,6 +216,7 @@ let dontStrip = true; } // (args // { + pname = "${args.pkg.pname}-${args.pname}"; src = if builtins.length (args.patches or []) > 0 then pkgs.applyPatches { inherit (args) src patches; } else args.src; diff --git a/pkgs/development/lisp-modules/packages.nix b/pkgs/development/lisp-modules/packages.nix index afb2d834579ab..aef2b84b1c047 100644 --- a/pkgs/development/lisp-modules/packages.nix +++ b/pkgs/development/lisp-modules/packages.nix @@ -232,13 +232,13 @@ let prompter = build-asdf-system rec { pname = "prompter"; - version = "0.1.1"; + version = "20240108-git"; src = pkgs.fetchFromGitHub { owner = "atlas-engineer"; repo = "prompter"; - rev = version; - sha256 = "sha256-A9gIUBj0oUDFGR5aqHz+tdNR6t03LPMrx0n9qM3ACwE="; + rev = "7890ed5d02e70aba01ceb964c6ee4f40776e7dc0"; + hash = "sha256-rRKtpSKAqfzvnlC3NQ4840RrlbBUpI4V6uX6p5hRJWQ="; }; lispLibs = [ @@ -362,7 +362,7 @@ let nyxt-gtk = build-asdf-system { pname = "nyxt"; - version = "3.10.0"; + version = "3.11.0"; lispLibs = (with super; [ alexandria @@ -470,8 +470,8 @@ let src = pkgs.fetchFromGitHub { owner = "atlas-engineer"; repo = "nyxt"; - rev = "3.10.0"; - sha256 = "sha256-yEa5Lx1egkg9Jh3EQfvaBQicm31uxIq/3s2NOQUC4uc="; + rev = "3.11.0"; + hash = "sha256-Nw2r3FdqwxHlq8CrZo7Z423xe0rR5zu+U4dDPdG880M="; }; nativeBuildInputs = [ pkgs.makeWrapper ]; diff --git a/pkgs/development/ocaml-modules/mirage-crypto/rng.nix b/pkgs/development/ocaml-modules/mirage-crypto/rng.nix index bbc7823e1f099..5fd9e1289a6e7 100644 --- a/pkgs/development/ocaml-modules/mirage-crypto/rng.nix +++ b/pkgs/development/ocaml-modules/mirage-crypto/rng.nix @@ -1,17 +1,16 @@ { buildDunePackage, mirage-crypto, ounit2, randomconv, dune-configurator -, cstruct, duration, logs, mtime, ocaml_lwt }: +, cstruct, duration, logs }: buildDunePackage rec { pname = "mirage-crypto-rng"; inherit (mirage-crypto) version src; - duneVersion = "3"; doCheck = true; checkInputs = [ ounit2 randomconv ]; buildInputs = [ dune-configurator ]; - propagatedBuildInputs = [ cstruct mirage-crypto duration logs mtime ]; + propagatedBuildInputs = [ cstruct mirage-crypto duration logs ]; strictDeps = true; diff --git a/pkgs/development/python-modules/aws-lambda-builders/default.nix b/pkgs/development/python-modules/aws-lambda-builders/default.nix index 15b1c698d4dcd..e944cccb5be07 100644 --- a/pkgs/development/python-modules/aws-lambda-builders/default.nix +++ b/pkgs/development/python-modules/aws-lambda-builders/default.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "aws-lambda-builders"; - version = "1.44.0"; + version = "1.45.0"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -21,7 +21,7 @@ buildPythonPackage rec { owner = "awslabs"; repo = "aws-lambda-builders"; rev = "refs/tags/v${version}"; - hash = "sha256-97NhNlYaxBwUdBmg6qzpGdtGyE86rO/PXl9pDfyitbI="; + hash = "sha256-TmU7neEnHaRuGNzK9VuXUiEayBLZaPqjrnPLvBOQj5g="; }; postPatch = '' diff --git a/pkgs/development/python-modules/birch/default.nix b/pkgs/development/python-modules/birch/default.nix new file mode 100644 index 0000000000000..3afd6d3df06a9 --- /dev/null +++ b/pkgs/development/python-modules/birch/default.nix @@ -0,0 +1,60 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, setuptools +, strct +, pytestCheckHook +, pyyaml +}: + +buildPythonPackage rec { + pname = "birch"; + version = "0.0.35"; + pyproject = true; + + src = fetchFromGitHub { + owner = "shaypal5"; + repo = "birch"; + rev = "v${version}"; + hash = "sha256-KdQZzQJvJ+logpcLQfaqqEEZJ/9VmNTQX/a4v0oBC98="; + }; + + postPatch = '' + substituteInPlace pytest.ini \ + --replace \ + "--cov" \ + "#--cov" + ''; + + nativeBuildInputs = [ + setuptools + ]; + + propagatedBuildInputs = [ + strct + ]; + + pythonImportsCheck = [ + "birch" + "birch.casters" + "birch.exceptions" + "birch.paths" + ]; + + nativeCheckInputs = [ + pytestCheckHook + pyyaml + ]; + + preCheck = '' + export HOME="$(mktemp -d)" + ''; + + + meta = with lib; { + description = "Simple hierarchical configuration for Python packages"; + homepage = "https://github.com/shaypal5/birch"; + license = licenses.mit; + maintainers = with maintainers; [ pbsds ]; + }; +} diff --git a/pkgs/development/python-modules/blackjax/default.nix b/pkgs/development/python-modules/blackjax/default.nix index 4e47e692657ae..f9521db79cb8a 100644 --- a/pkgs/development/python-modules/blackjax/default.nix +++ b/pkgs/development/python-modules/blackjax/default.nix @@ -2,6 +2,7 @@ , buildPythonPackage , pythonOlder , fetchFromGitHub +, pytest-xdist , pytestCheckHook , setuptools-scm , fastprogress @@ -14,16 +15,16 @@ buildPythonPackage rec { pname = "blackjax"; - version = "1.0.0"; + version = "1.1.0"; pyproject = true; - disabled = pythonOlder "3.8"; + disabled = pythonOlder "3.9"; src = fetchFromGitHub { owner = "blackjax-devs"; - repo = pname; + repo = "blackjax"; rev = "refs/tags/${version}"; - hash = "sha256-hqOKSHyZ/BmOu6MJLeecD3H1BbLbZqywmlBzn3xjQRk="; + hash = "sha256-VAsCDI0rEqx0UJlD82wbZ8KuMi6LOjUlO6YzqnOfAGk="; }; nativeBuildInputs = [ setuptools-scm ]; @@ -39,7 +40,10 @@ buildPythonPackage rec { typing-extensions ]; - nativeCheckInputs = [ pytestCheckHook ]; + nativeCheckInputs = [ + pytestCheckHook + pytest-xdist + ]; disabledTestPaths = [ "tests/test_benchmarks.py" ]; disabledTests = [ # too slow diff --git a/pkgs/development/python-modules/cachier/default.nix b/pkgs/development/python-modules/cachier/default.nix index 2a1fe461d51ca..28159a16454cd 100644 --- a/pkgs/development/python-modules/cachier/default.nix +++ b/pkgs/development/python-modules/cachier/default.nix @@ -1,29 +1,31 @@ { lib , buildPythonPackage , pythonOlder -, fetchPypi +, fetchFromGitHub , pythonRelaxDepsHook , setuptools , watchdog , portalocker -, pathtools , pytestCheckHook , pymongo , dnspython , pymongo-inmemory , pandas +, birch }: buildPythonPackage rec { pname = "cachier"; - version = "2.2.1"; - format = "setuptools"; + version = "2.2.2"; + pyproject = true; disabled = pythonOlder "3.8"; - src = fetchPypi { - inherit pname version; - hash = "sha256-nm98LT87Z7yErKvIqMp93OEX9TDojqqtItgryHgSQJQ="; + src = fetchFromGitHub { + owner = "python-cachier"; + repo = "cachier"; + rev = "v${version}"; + hash = "sha256-zUZqT4SIwZRqhRS/wHIzIYVULnp5aYcytCQd17T0D/4="; }; pythonRemoveDeps = [ "setuptools" ]; @@ -36,7 +38,6 @@ buildPythonPackage rec { propagatedBuildInputs = [ watchdog portalocker - pathtools ]; preCheck = '' @@ -52,6 +53,7 @@ buildPythonPackage rec { dnspython pymongo-inmemory pandas + birch ]; disabledTests = [ diff --git a/pkgs/development/python-modules/clarifai-grpc/default.nix b/pkgs/development/python-modules/clarifai-grpc/default.nix index c0cee1aaf3a92..7225f683c31b2 100644 --- a/pkgs/development/python-modules/clarifai-grpc/default.nix +++ b/pkgs/development/python-modules/clarifai-grpc/default.nix @@ -11,7 +11,7 @@ buildPythonPackage rec { pname = "clarifai-grpc"; - version = "9.11.5"; + version = "10.0.0"; pyproject = true; disabled = pythonOlder "3.8"; @@ -20,7 +20,7 @@ buildPythonPackage rec { owner = "Clarifai"; repo = "clarifai-python-grpc"; rev = "refs/tags/${version}"; - hash = "sha256-jH5B3iakMj7tyKWREicrqmBvekjocRbYuvuUjudB8vg="; + hash = "sha256-FpBrVoKwuKLanF0SYJLO1cd8qhI1xgBVa1wVpojG8p8="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/cstruct/default.nix b/pkgs/development/python-modules/cstruct/default.nix index 688fe787af2be..5c0baaf88f204 100644 --- a/pkgs/development/python-modules/cstruct/default.nix +++ b/pkgs/development/python-modules/cstruct/default.nix @@ -6,14 +6,14 @@ buildPythonPackage rec { pname = "cstruct"; - version = "5.2"; + version = "5.3"; format = "setuptools"; src = fetchFromGitHub { owner = "andreax79"; repo = "python-cstruct"; - rev = "v${version}"; - hash = "sha256-Dwogf0mmxFyBV7tPsuKV6gMZLPSCm7YhzqgJNHpaPFA="; + rev = "refs/tags/v${version}"; + hash = "sha256-VDJ0k3cOuHjckujf9yD1GVE+UM/Y9rjqhiq+MqGq2eM="; }; pythonImportsCheck = [ diff --git a/pkgs/development/python-modules/django-modelcluster/default.nix b/pkgs/development/python-modules/django-modelcluster/default.nix index 7c3e77b324609..5c1dd8f78dda8 100644 --- a/pkgs/development/python-modules/django-modelcluster/default.nix +++ b/pkgs/development/python-modules/django-modelcluster/default.nix @@ -17,7 +17,7 @@ buildPythonPackage rec { pname = "django-modelcluster"; - version = "6.1"; + version = "6.2.1"; format = "setuptools"; disabled = pythonOlder "3.5"; @@ -26,7 +26,7 @@ buildPythonPackage rec { owner = "wagtail"; repo = "django-modelcluster"; rev = "refs/tags/v${version}"; - hash = "sha256-fNGD2aU668VQ8YHcaFjtjiW/gYJgSx7arDAyUKpFYRE="; + hash = "sha256-y2jGSZvTeSnpWDFJ+aNGofTEtMMlY9TrXZjQeET5OhY="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/epion/default.nix b/pkgs/development/python-modules/epion/default.nix index f286e67ba2670..3f3a88f2fd433 100644 --- a/pkgs/development/python-modules/epion/default.nix +++ b/pkgs/development/python-modules/epion/default.nix @@ -10,7 +10,7 @@ buildPythonPackage rec { pname = "epion"; - version = "0.0.1"; + version = "0.0.2"; pyproject = true; disabled = pythonOlder "3.7"; @@ -18,9 +18,8 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "devenzo-com"; repo = "epion_python"; - # https://github.com/devenzo-com/epion_python/issues/1 - rev = "d8759951fc7bfd1507abe725b2bc98754cbbf505"; - hash = "sha256-uC227rlu4NB5lpca02QLi2JZ5SKklLfv7rXvvJA1aCA="; + rev = "refs/tags/${version}"; + hash = "sha256-XyYjbr0EPRrwWsXhZT2oWcoDPZoZCuT9aZ2UHSSt0E8="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/f5-icontrol-rest/default.nix b/pkgs/development/python-modules/f5-icontrol-rest/default.nix index 080c3f5f0d735..f5dde3911546d 100644 --- a/pkgs/development/python-modules/f5-icontrol-rest/default.nix +++ b/pkgs/development/python-modules/f5-icontrol-rest/default.nix @@ -7,14 +7,14 @@ buildPythonPackage rec { pname = "f5-icontrol-rest"; - version = "1.3.15"; + version = "1.3.16"; format = "setuptools"; src = fetchFromGitHub { owner = "F5Networks"; repo = "f5-icontrol-rest-python"; - rev = "v${version}"; - sha256 = "sha256-ScudlJTQfa0BsEVI+mIndYWF8OcARdxwFwTAOEJxA8w="; + rev = "refs/tags/v${version}"; + sha256 = "sha256-asAFIRoc2zll8a8gMMt4ZRQILhMAes8wf3PGwG5wF9c="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/geopandas/default.nix b/pkgs/development/python-modules/geopandas/default.nix index e075700ce1f52..92aa4631c4bbd 100644 --- a/pkgs/development/python-modules/geopandas/default.nix +++ b/pkgs/development/python-modules/geopandas/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { pname = "geopandas"; - version = "0.14.1"; + version = "0.14.2"; format = "setuptools"; disabled = pythonOlder "3.9"; @@ -23,7 +23,7 @@ buildPythonPackage rec { owner = "geopandas"; repo = "geopandas"; rev = "refs/tags/v${version}"; - hash = "sha256-mQ13fjhtFXvUnBok5bDz+zkbgfXEUmwiv77rBpYS5oo="; + hash = "sha256-E4J6VBKPwyQ4IVVClLzNoI//oxlymY+KE6ALaENWwOg="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/gql/default.nix b/pkgs/development/python-modules/gql/default.nix index 9827f8d5a71af..37fa70e28efe0 100644 --- a/pkgs/development/python-modules/gql/default.nix +++ b/pkgs/development/python-modules/gql/default.nix @@ -1,11 +1,13 @@ { lib , aiofiles , aiohttp +, anyio , backoff , botocore , buildPythonPackage , fetchFromGitHub , graphql-core +, httpx , mock , parse , pytest-asyncio @@ -14,6 +16,7 @@ , pythonOlder , requests , requests-toolbelt +, setuptools , urllib3 , vcrpy , websockets @@ -22,25 +25,26 @@ buildPythonPackage rec { pname = "gql"; - version = "3.4.1"; - format = "setuptools"; + version = "3.6.0b0"; + pyproject = true; disabled = pythonOlder "3.7"; src = fetchFromGitHub { owner = "graphql-python"; - repo = pname; + repo = "gql"; rev = "refs/tags/v${version}"; - hash = "sha256-/uPaRju2AJCjMCfA29IKQ4Hu71RBu/Yz8jHwk9EE1Eg="; + hash = "sha256-yX6NbtGxBa3lL/bS3j2ouTPku6a4obqNGx1xRzx+Skk="; }; - postPatch = '' - substituteInPlace setup.py --replace \ - "websockets>=10,<11;python_version>'3.6'" \ - "websockets>=10,<12;python_version>'3.6'" - ''; + __darwinAllowLocalNetworking = true; + + nativeBuildInputs = [ + setuptools + ]; propagatedBuildInputs = [ + anyio backoff graphql-core yarl @@ -60,6 +64,7 @@ buildPythonPackage rec { all = [ aiohttp botocore + httpx requests requests-toolbelt urllib3 @@ -68,6 +73,9 @@ buildPythonPackage rec { aiohttp = [ aiohttp ]; + httpx = [ + httpx + ]; requests = [ requests requests-toolbelt diff --git a/pkgs/development/python-modules/jaxopt/default.nix b/pkgs/development/python-modules/jaxopt/default.nix index 36a43027231d8..0f0e396b906de 100644 --- a/pkgs/development/python-modules/jaxopt/default.nix +++ b/pkgs/development/python-modules/jaxopt/default.nix @@ -2,6 +2,7 @@ , buildPythonPackage , pythonOlder , fetchFromGitHub +, pytest-xdist , pytestCheckHook , absl-py , cvxpy @@ -16,7 +17,7 @@ buildPythonPackage rec { pname = "jaxopt"; - version = "0.8.2"; + version = "0.8.3"; format = "setuptools"; disabled = pythonOlder "3.8"; @@ -25,7 +26,7 @@ buildPythonPackage rec { owner = "google"; repo = "jaxopt"; rev = "refs/tags/jaxopt-v${version}"; - hash = "sha256-uVOd3knoku5fKBNXOhCikGtjDuW3TtRqev94OM/8Pgk="; + hash = "sha256-T/BHSnuk3IRuLkBj3Hvb/tFIb7Au25jjQtvwL28OU1U="; }; propagatedBuildInputs = [ @@ -38,6 +39,7 @@ buildPythonPackage rec { ]; nativeCheckInputs = [ + pytest-xdist pytestCheckHook cvxpy optax @@ -52,11 +54,6 @@ buildPythonPackage rec { "jaxopt.tree_util" ]; - disabledTests = [ - # Stack frame issue - "test_bisect" - ]; - meta = with lib; { homepage = "https://jaxopt.github.io"; description = "Hardware accelerated, batchable and differentiable optimizers in JAX"; diff --git a/pkgs/development/python-modules/libsass/default.nix b/pkgs/development/python-modules/libsass/default.nix index 4996dfc1169e6..8c84a76dc9944 100644 --- a/pkgs/development/python-modules/libsass/default.nix +++ b/pkgs/development/python-modules/libsass/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "libsass"; - version = "0.22.0"; + version = "0.23.0"; format = "setuptools"; src = fetchFromGitHub { owner = "sass"; repo = "libsass-python"; rev = "refs/tags/${version}"; - hash = "sha256-5O4Er3jNUFy83m/K0HzYR+fHcSDqF/3M+fXaFZY8zEg="; + hash = "sha256-CiSr9/3EDwpDEzu6VcMBAlm3CtKTmGYbZMnMEjyZVxI="; }; buildInputs = [ libsass ]; diff --git a/pkgs/development/python-modules/litellm/default.nix b/pkgs/development/python-modules/litellm/default.nix index a359e96a0b5a0..a2640ffe428ff 100644 --- a/pkgs/development/python-modules/litellm/default.nix +++ b/pkgs/development/python-modules/litellm/default.nix @@ -15,7 +15,7 @@ , httpx }: let - version = "1.15.0"; + version = "1.16.19"; in buildPythonPackage rec { pname = "litellm"; @@ -26,7 +26,7 @@ buildPythonPackage rec { owner = "BerriAI"; repo = "litellm"; rev = "refs/tags/v${version}"; - hash = "sha256-s3Ue/N04YZHEfEnVxPHupRSVDHxWjVse8FDlRF5yKCk="; + hash = "sha256-KNQuTgJj7oLJsxfi8g9ShC5WHyrdpZGI5Nfgxzu/eak="; }; postPatch = '' diff --git a/pkgs/development/python-modules/pdf2docx/default.nix b/pkgs/development/python-modules/pdf2docx/default.nix index e337bf292fcf5..0b460879e7267 100644 --- a/pkgs/development/python-modules/pdf2docx/default.nix +++ b/pkgs/development/python-modules/pdf2docx/default.nix @@ -16,7 +16,7 @@ , python-docx }: let - version = "0.5.6"; + version = "0.5.7"; in buildPythonPackage { pname = "pdf2docx"; @@ -26,8 +26,8 @@ buildPythonPackage { src = fetchFromGitHub { owner = "dothinking"; repo = "pdf2docx"; - rev = "v${version}"; - hash = "sha256-NrT4GURQIJbqnHstfJrPzwLXT9c2oGBi4QJ6eGIFwu4="; + rev = "refs/tags/v${version}"; + hash = "sha256-GDftANn+ioaNR28VfRFDuFgdKoy7D4xiy0ezvWJ3zy0="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/pyatem/default.nix b/pkgs/development/python-modules/pyatem/default.nix new file mode 100644 index 0000000000000..5b7749ea57c99 --- /dev/null +++ b/pkgs/development/python-modules/pyatem/default.nix @@ -0,0 +1,75 @@ +{ lib +, stdenv +, buildPythonPackage +, fetchFromSourcehut + +# build-system +, setuptools + +# dependencies +, pyusb +, tqdm +, zeroconf + +# tests +, pillow +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "pyatem"; + version = "0.9.0"; # check latest version in setup.py + pyproject = true; + + src = fetchFromSourcehut { + owner = "~martijnbraam"; + repo = "pyatem"; + rev = version; + hash = "sha256-ntwUhgC8Cgrim+kU3B3ckgPDmPe+aEHDP4wsB45KbJg="; + }; + + nativeBuildInputs = [ + setuptools + ]; + + propagatedBuildInputs = [ + pyusb + tqdm + zeroconf + ]; + + nativeCheckInputs = [ + pillow + pytestCheckHook + ]; + + preCheck = '' + TESTDIR=$(mktemp -d) + cp -r pyatem/{test_*.py,fixtures} $TESTDIR/ + pushd $TESTDIR + ''; + + disabledTests = lib.optionals (stdenv.isLinux && stdenv.isAarch64) [ + # colorspace mapping has weird, but constant offsets on aarch64-linux + "test_blueramp" + "test_greenramp" + "test_hues" + "test_primaries" + "test_redramp" + ]; + + postCheck = '' + popd + ''; + + pythonImportsCheck = [ + "pyatem" + ]; + + meta = with lib; { + description = "Library for controlling Blackmagic Design ATEM video mixers"; + homepage = "https://git.sr.ht/~martijnbraam/pyatem"; + license = licenses.lgpl3Only; + maintainers = with maintainers; [ hexa ]; + }; +} diff --git a/pkgs/development/python-modules/pycollada/default.nix b/pkgs/development/python-modules/pycollada/default.nix index 3f489e2df2bc5..4b66ba84d2da0 100644 --- a/pkgs/development/python-modules/pycollada/default.nix +++ b/pkgs/development/python-modules/pycollada/default.nix @@ -2,12 +2,12 @@ buildPythonPackage rec { pname = "pycollada"; - version = "0.7.2"; + version = "0.8"; format = "setuptools"; src = fetchPypi { inherit pname version; - sha256 = "70a2630ed499bdab718c0e61a3e6ae3698130d7e4654e89cdecde51bfdaea56f"; + sha256 = "sha256-86N1nMTOwdWekyqtdDmdvPVB0YhiqtkDx3AEDaQq8g4="; }; propagatedBuildInputs = [ numpy python-dateutil ]; diff --git a/pkgs/development/python-modules/pygitguardian/default.nix b/pkgs/development/python-modules/pygitguardian/default.nix index 78dc32f7625b8..3d3590a371047 100644 --- a/pkgs/development/python-modules/pygitguardian/default.nix +++ b/pkgs/development/python-modules/pygitguardian/default.nix @@ -14,8 +14,8 @@ buildPythonPackage rec { pname = "pygitguardian"; - version = "1.11.0"; - format = "pyproject"; + version = "1.12.0"; + pyproject = true; disabled = pythonOlder "3.7"; @@ -23,7 +23,7 @@ buildPythonPackage rec { owner = "GitGuardian"; repo = "py-gitguardian"; rev = "refs/tags/v${version}"; - hash = "sha256-Vr0+y3Zi7DsXzm2COOlMqUVjlZMRJkaVxT8QpSePhuA="; + hash = "sha256-ybl6QOLb1xE6v0D1C2wKMsSU+r2gWzj24Q4pPIMBsCY="; }; nativeBuildInputs = [ @@ -49,6 +49,7 @@ buildPythonPackage rec { disabledTests = [ # Tests require an API key + "test_bogus_rate_limit" "test_compute_sca_files" "test_content_scan_exceptions" "test_content_scan" @@ -60,6 +61,7 @@ buildPythonPackage rec { "test_multi_content_scan" "test_multiscan_parameters" "test_quota_overview" + "test_rate_limit" "test_sca_client_scan_diff" "test_sca_scan_directory_invalid_tar" "test_sca_scan_directory" diff --git a/pkgs/development/python-modules/pynetbox/default.nix b/pkgs/development/python-modules/pynetbox/default.nix index 9c23c018e8fe2..2759ff5066437 100644 --- a/pkgs/development/python-modules/pynetbox/default.nix +++ b/pkgs/development/python-modules/pynetbox/default.nix @@ -10,14 +10,14 @@ buildPythonPackage rec { pname = "pynetbox"; - version = "7.3.0"; + version = "7.3.3"; format = "setuptools"; src = fetchFromGitHub { owner = "netbox-community"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-/ptLsV+3EYDBjM+D1VO75VqvCYe6PTlpKAJuQskazJc="; + hash = "sha256-QIvh24ZqnF8uF9HOuY0yt3QT/jHgJ2C916d+rBqezWQ="; }; SETUPTOOLS_SCM_PRETEND_VERSION = version; diff --git a/pkgs/development/python-modules/pysol-cards/default.nix b/pkgs/development/python-modules/pysol-cards/default.nix index 9816445bc2f20..88c38fc598274 100644 --- a/pkgs/development/python-modules/pysol-cards/default.nix +++ b/pkgs/development/python-modules/pysol-cards/default.nix @@ -2,13 +2,13 @@ buildPythonPackage rec { pname = "pysol-cards"; - version = "0.14.3"; + version = "0.16.0"; format = "setuptools"; src = fetchPypi { inherit version; pname = "pysol_cards"; - hash = "sha256-sPv9OGFb/G/XVdq1hQWprhYtDaGGbCXKkUGTi1gj8GE="; + hash = "sha256-C4fKez+ZFVzM08/XOfc593RNb4GYIixtSToDSj1FcMM="; }; propagatedBuildInputs = [ six random2 ]; diff --git a/pkgs/development/python-modules/pytado/default.nix b/pkgs/development/python-modules/pytado/default.nix index 8575fceadc4f2..5962364b76773 100644 --- a/pkgs/development/python-modules/pytado/default.nix +++ b/pkgs/development/python-modules/pytado/default.nix @@ -8,7 +8,7 @@ buildPythonPackage rec { pname = "pytado"; - version = "0.17.2"; + version = "0.17.3"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -17,7 +17,7 @@ buildPythonPackage rec { owner = "wmalgadey"; repo = "PyTado"; rev = "refs/tags/${version}"; - sha256 = "sha256-w1qtSEpnZCs7+M/0Gywz9AeMxUzz2csHKm9SxBKzmz4="; + sha256 = "sha256-whpNYiAb2cqKI4m0HJN2lPt51FLuEzrkrRTSWs6uznU="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/pytest-check/default.nix b/pkgs/development/python-modules/pytest-check/default.nix index 9981c7c8ce8f4..ed62f69d4818f 100644 --- a/pkgs/development/python-modules/pytest-check/default.nix +++ b/pkgs/development/python-modules/pytest-check/default.nix @@ -8,13 +8,13 @@ buildPythonPackage rec { pname = "pytest-check"; - version = "2.2.3"; + version = "2.2.4"; format = "pyproject"; src = fetchPypi { pname = "pytest_check"; inherit version; - hash = "sha256-bfAyZLa7zyXNhhUSDNoDtObRH9srfI3eapyP7xinSVw="; + hash = "sha256-0uaWYDFB9bLekFuTWD5FmE7DxhzscCZJ3rEL2XSFYLs="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/screenlogicpy/default.nix b/pkgs/development/python-modules/screenlogicpy/default.nix index 3d3f7d230261f..020e6a43cb7dc 100644 --- a/pkgs/development/python-modules/screenlogicpy/default.nix +++ b/pkgs/development/python-modules/screenlogicpy/default.nix @@ -10,7 +10,7 @@ buildPythonPackage rec { pname = "screenlogicpy"; - version = "0.10.0"; + version = "0.10.1"; pyproject = true; disabled = pythonOlder "3.10"; @@ -19,7 +19,7 @@ buildPythonPackage rec { owner = "dieselrabbit"; repo = "screenlogicpy"; rev = "refs/tags/v${version}"; - hash = "sha256-pilPmHE5amCQ/mGTy3hJqtSEElx7SevQpeMJZKYv7BA="; + hash = "sha256-z6cM0sihZvOHCA3v1DYQEev0axf4AcqEW13WA1EMhQM="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/sexpdata/default.nix b/pkgs/development/python-modules/sexpdata/default.nix index 0d2c0192c1c99..0349c7cd94797 100644 --- a/pkgs/development/python-modules/sexpdata/default.nix +++ b/pkgs/development/python-modules/sexpdata/default.nix @@ -7,14 +7,14 @@ buildPythonPackage rec { pname = "sexpdata"; - version = "1.0.1"; + version = "1.0.2"; format = "pyproject"; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-b2XxFSkYkMvOXNJpwTvfH4KkzSO8YbbhUKJ1Ee5qfV4="; + hash = "sha256-krZ7A2H2dm+PnkS5UZzz+8+vp1Xbhbv4k8Phz03awQk="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/slackclient/default.nix b/pkgs/development/python-modules/slackclient/default.nix index ead249a9a7223..75090e8d243a0 100644 --- a/pkgs/development/python-modules/slackclient/default.nix +++ b/pkgs/development/python-modules/slackclient/default.nix @@ -21,7 +21,7 @@ buildPythonPackage rec { pname = "slackclient"; - version = "3.26.1"; + version = "3.26.2"; format = "setuptools"; disabled = pythonOlder "3.6"; @@ -30,7 +30,7 @@ buildPythonPackage rec { owner = "slackapi"; repo = "python-slack-sdk"; rev = "refs/tags/v${version}"; - hash = "sha256-jg4mUVT1sB9hxRqhLOeZxQHTpBK/N76b2XUaFe/nBKY="; + hash = "sha256-pvD86kbNOnuNT6+WTAKziJDUTx3ebJUq029UbSVuxdw="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix b/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix index b08ecd9ebea23..2d5a7b9974649 100644 --- a/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix +++ b/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix @@ -10,14 +10,14 @@ buildPythonPackage rec { pname = "sphinxcontrib-bibtex"; - version = "2.6.1"; + version = "2.6.2"; format = "setuptools"; disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; - hash = "sha256-BGtJ8HCuUnavNMG43bm8lWLvbeL3pS03qRy45T9UuGM="; + hash = "sha256-9IevaUM28ov7fWoXBwlTp9JkvsQwAKI3lyQnT1+NcK4="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/steamship/default.nix b/pkgs/development/python-modules/steamship/default.nix index adc6db83dd9bd..bd430bedd3e9e 100644 --- a/pkgs/development/python-modules/steamship/default.nix +++ b/pkgs/development/python-modules/steamship/default.nix @@ -16,12 +16,12 @@ buildPythonPackage rec { pname = "steamship"; - version = "2.17.32"; + version = "2.17.33"; format = "pyproject"; src = fetchPypi { inherit pname version; - hash = "sha256-dTpz2/XXu8patDnorg/36652j9VLUjE5uF2fVzbDjfI="; + hash = "sha256-hvvXg+V/VKTWWdqXM7Q1K5awemkGhSz64gV7HeRBXfg="; }; pythonRelaxDeps = [ diff --git a/pkgs/development/python-modules/strct/default.nix b/pkgs/development/python-modules/strct/default.nix new file mode 100644 index 0000000000000..7244002d41694 --- /dev/null +++ b/pkgs/development/python-modules/strct/default.nix @@ -0,0 +1,52 @@ +{ lib +, fetchFromGitHub +, buildPythonPackage +, setuptools +, pytestCheckHook +, sortedcontainers +}: + +buildPythonPackage rec { + pname = "strct"; + version = "0.0.32"; + pyproject = true; + + src = fetchFromGitHub { + owner = "shaypal5"; + repo = "strct"; + rev = "v${version}"; + hash = "sha256-ctafvdfSOdp7tlCUYg7d5XTXR1qBcWvOVtGtNUnhYIw="; + }; + + postPatch = '' + substituteInPlace pytest.ini \ + --replace \ + "--cov" \ + "#--cov" + ''; + + nativeBuildInputs = [ + setuptools + ]; + + nativeCheckInputs = [ + pytestCheckHook + sortedcontainers + ]; + + pythonImportsCheck = [ + "strct" + "strct.dicts" + "strct.hash" + "strct.lists" + "strct.sets" + "strct.sortedlists" + ]; + + meta = with lib; { + description = "A small pure-python package for data structure related utility functions"; + homepage = "https://github.com/shaypal5/strct"; + license = licenses.mit; + maintainers = with maintainers; [ pbsds ]; + }; +} diff --git a/pkgs/development/python-modules/sumo/default.nix b/pkgs/development/python-modules/sumo/default.nix index da7641c9d056b..1f60553de0bce 100644 --- a/pkgs/development/python-modules/sumo/default.nix +++ b/pkgs/development/python-modules/sumo/default.nix @@ -18,7 +18,7 @@ buildPythonPackage rec { pname = "sumo"; - version = "2.3.7"; + version = "2.3.8"; format = "setuptools"; disabled = pythonOlder "3.8"; @@ -27,7 +27,7 @@ buildPythonPackage rec { owner = "SMTG-UCL"; repo = "sumo"; rev = "refs/tags/v${version}"; - hash = "sha256-9NHz8SPymD9zANWMeajjavpjw68X4abqhrLl0dn92l0="; + hash = "sha256-nQ5US7maFcOJCqFYeokGiBFp3jhiOPSfCBeclLdHdkk="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/tokenizers/default.nix b/pkgs/development/python-modules/tokenizers/default.nix index d8a731825feb3..4711cfe00dd0a 100644 --- a/pkgs/development/python-modules/tokenizers/default.nix +++ b/pkgs/development/python-modules/tokenizers/default.nix @@ -1,5 +1,6 @@ { lib , stdenv +, linkFarm , buildPythonPackage , cargo , datasets @@ -21,41 +22,43 @@ let # See https://github.com/huggingface/tokenizers/blob/main/bindings/python/tests/utils.py for details # about URLs and file names - robertaVocab = fetchurl { - url = "https://s3.amazonaws.com/models.huggingface.co/bert/roberta-base-vocab.json"; - sha256 = "0m86wpkfb2gdh9x9i9ng2fvwk1rva4p0s98xw996nrjxs7166zwy"; - }; - robertaMerges = fetchurl { - url = "https://s3.amazonaws.com/models.huggingface.co/bert/roberta-base-merges.txt"; - sha256 = "1idd4rvkpqqbks51i2vjbd928inw7slij9l4r063w3y5fd3ndq8w"; - }; - albertVocab = fetchurl { - url = "https://s3.amazonaws.com/models.huggingface.co/bert/albert-base-v1-tokenizer.json"; - sha256 = "1hra9pn8rczx7378z88zjclw2qsdrdwq20m56sy42s2crbas6akf"; - }; - bertVocab = fetchurl { - url = "https://s3.amazonaws.com/models.huggingface.co/bert/bert-base-uncased-vocab.txt"; - sha256 = "18rq42cmqa8zanydsbzrb34xwy4l6cz1y900r4kls57cbhvyvv07"; - }; - norvigBig = fetchurl { - url = "https://norvig.com/big.txt"; - sha256 = "0yz80icdly7na03cfpl0nfk5h3j3cam55rj486n03wph81ynq1ps"; - }; - docPipelineTokenizer = fetchurl { - url = "https://s3.amazonaws.com/models.huggingface.co/bert/anthony/doc-pipeline/tokenizer.json"; - hash = "sha256-i533xC8J5CDMNxBjo+p6avIM8UOcui8RmGAmK0GmfBc="; - }; - docQuicktourTokenizer = fetchurl { - url = "https://s3.amazonaws.com/models.huggingface.co/bert/anthony/doc-quicktour/tokenizer.json"; - hash = "sha256-ipY9d5DR5nxoO6kj7rItueZ9AO5wq9+Nzr6GuEIfIBI="; - }; - openaiVocab = fetchurl { - url = "https://s3.amazonaws.com/models.huggingface.co/bert/openai-gpt-vocab.json"; - sha256 = "0y40gc9bixj5rxv674br1rxmxkd3ly29p80x1596h8yywwcrpx7x"; - }; - openaiMerges = fetchurl { - url = "https://s3.amazonaws.com/models.huggingface.co/bert/openai-gpt-merges.txt"; - sha256 = "09a754pm4djjglv3x5pkgwd6f79i2rq8ydg0f7c3q1wmwqdbba8f"; + test-data = linkFarm "tokenizers-test-data" { + "roberta-base-vocab.json" = fetchurl { + url = "https://s3.amazonaws.com/models.huggingface.co/bert/roberta-base-vocab.json"; + sha256 = "0m86wpkfb2gdh9x9i9ng2fvwk1rva4p0s98xw996nrjxs7166zwy"; + }; + "roberta-base-merges.txt" = fetchurl { + url = "https://s3.amazonaws.com/models.huggingface.co/bert/roberta-base-merges.txt"; + sha256 = "1idd4rvkpqqbks51i2vjbd928inw7slij9l4r063w3y5fd3ndq8w"; + }; + "albert-base-v1-tokenizer.json" = fetchurl { + url = "https://s3.amazonaws.com/models.huggingface.co/bert/albert-base-v1-tokenizer.json"; + sha256 = "1hra9pn8rczx7378z88zjclw2qsdrdwq20m56sy42s2crbas6akf"; + }; + "bert-base-uncased-vocab.txt" = fetchurl { + url = "https://s3.amazonaws.com/models.huggingface.co/bert/bert-base-uncased-vocab.txt"; + sha256 = "18rq42cmqa8zanydsbzrb34xwy4l6cz1y900r4kls57cbhvyvv07"; + }; + "big.txt" = fetchurl { + url = "https://norvig.com/big.txt"; + sha256 = "0yz80icdly7na03cfpl0nfk5h3j3cam55rj486n03wph81ynq1ps"; + }; + "bert-wiki.json" = fetchurl { + url = "https://s3.amazonaws.com/models.huggingface.co/bert/anthony/doc-pipeline/tokenizer.json"; + hash = "sha256-i533xC8J5CDMNxBjo+p6avIM8UOcui8RmGAmK0GmfBc="; + }; + "tokenizer-wiki.json" = fetchurl { + url = "https://s3.amazonaws.com/models.huggingface.co/bert/anthony/doc-quicktour/tokenizer.json"; + hash = "sha256-ipY9d5DR5nxoO6kj7rItueZ9AO5wq9+Nzr6GuEIfIBI="; + }; + "openai-gpt-vocab.json" = fetchurl { + url = "https://s3.amazonaws.com/models.huggingface.co/bert/openai-gpt-vocab.json"; + sha256 = "0y40gc9bixj5rxv674br1rxmxkd3ly29p80x1596h8yywwcrpx7x"; + }; + "openai-gpt-merges.txt" = fetchurl { + url = "https://s3.amazonaws.com/models.huggingface.co/bert/openai-gpt-merges.txt"; + sha256 = "09a754pm4djjglv3x5pkgwd6f79i2rq8ydg0f7c3q1wmwqdbba8f"; + }; }; in buildPythonPackage rec { @@ -107,16 +110,7 @@ buildPythonPackage rec { postUnpack = '' # Add data files for tests, otherwise tests attempt network access mkdir $sourceRoot/tests/data - ( cd $sourceRoot/tests/data - ln -s ${robertaVocab} roberta-base-vocab.json - ln -s ${robertaMerges} roberta-base-merges.txt - ln -s ${albertVocab} albert-base-v1-tokenizer.json - ln -s ${bertVocab} bert-base-uncased-vocab.txt - ln -s ${docPipelineTokenizer} bert-wiki.json - ln -s ${docQuicktourTokenizer} tokenizer-wiki.json - ln -s ${norvigBig} big.txt - ln -s ${openaiVocab} openai-gpt-vocab.json - ln -s ${openaiMerges} openai-gpt-merges.txt ) + ln -s ${test-data}/* $sourceRoot/tests/data/ ''; preCheck = '' diff --git a/pkgs/development/python-modules/torch/bin.nix b/pkgs/development/python-modules/torch/bin.nix index 7a4756e905ccb..9b12470cdde8c 100644 --- a/pkgs/development/python-modules/torch/bin.nix +++ b/pkgs/development/python-modules/torch/bin.nix @@ -68,7 +68,7 @@ in buildPythonPackage { jinja2 networkx filelock - ] ++ lib.optionals stdenv.isx86_64 [ + ] ++ lib.optionals (stdenv.isLinux && stdenv.isx86_64) [ openai-triton ]; diff --git a/pkgs/development/python-modules/types-setuptools/default.nix b/pkgs/development/python-modules/types-setuptools/default.nix index 9c705d4bfbecf..2d7dbc81c5c1d 100644 --- a/pkgs/development/python-modules/types-setuptools/default.nix +++ b/pkgs/development/python-modules/types-setuptools/default.nix @@ -1,18 +1,23 @@ { lib , buildPythonPackage , fetchPypi +, setuptools }: buildPythonPackage rec { pname = "types-setuptools"; - version = "68.2.0.2"; - format = "setuptools"; + version = "69.0.0.20240106"; + pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-Ce/DgK1cf3jjC8oVRvcGRpVozyYITPq3Ps+D3qHShEY="; + hash = "sha256-4Hf5CJV43zyZOPbkqhYz8YK6Z0Cm/bEzPxYrrl38utw="; }; + nativeBuildInputs = [ + setuptools + ]; + # Module doesn't have tests doCheck = false; diff --git a/pkgs/development/python-modules/zamg/default.nix b/pkgs/development/python-modules/zamg/default.nix index 5138ebd1319ae..294fbc4197d96 100644 --- a/pkgs/development/python-modules/zamg/default.nix +++ b/pkgs/development/python-modules/zamg/default.nix @@ -9,7 +9,7 @@ buildPythonPackage rec { pname = "zamg"; - version = "0.3.3"; + version = "0.3.4"; pyproject = true; disabled = pythonOlder "3.8"; @@ -18,7 +18,7 @@ buildPythonPackage rec { owner = "killer0071234"; repo = "python-zamg"; rev = "refs/tags/v${version}"; - hash = "sha256-hgJtM208xsDh9RbxOFu5DOiKonLMj8aWyu9+EhpE6TA="; + hash = "sha256-MomqMgL3axMdT/ckx2IG9k0IIDlNq0bod0ukjIvkM7Y="; }; postPatch = '' diff --git a/pkgs/development/python-modules/zm-py/default.nix b/pkgs/development/python-modules/zm-py/default.nix index 633cf9c15f6bc..ddd5b72b929d0 100644 --- a/pkgs/development/python-modules/zm-py/default.nix +++ b/pkgs/development/python-modules/zm-py/default.nix @@ -1,29 +1,46 @@ -{ lib, fetchPypi, buildPythonPackage, isPy3k -, pytest, requests }: +{ lib +, buildPythonPackage +, fetchFromGitHub +, poetry-core +, pytestCheckHook +, pythonOlder +, requests +}: buildPythonPackage rec { pname = "zm-py"; - version = "0.5.2"; - format = "setuptools"; + version = "0.5.4"; + pyproject = true; - src = fetchPypi { - inherit pname version; - sha256 = "b391cca0e52f2a887aa7a46c314b73335b7e3341c428b425fcf314983e5ebb36"; + disabled = pythonOlder "3.11"; + + src = fetchFromGitHub { + owner = "rohankapoorcom"; + repo = "zm-py"; + rev = "refs/tags/v${version}"; + hash = "sha256-n9FRX2Pnn96H0HVT4SHLJgONc0XzQ005itMNpvl9IYg="; }; - disabled = !isPy3k; + nativeBuildInputs = [ + poetry-core + ]; - propagatedBuildInputs = [ requests ]; + propagatedBuildInputs = [ + requests + ]; - nativeCheckInputs = [ pytest ]; + nativeCheckInputs = [ + pytestCheckHook + ]; - checkPhase = '' - PYTHONPATH="./zoneminder:$PYTHONPATH" pytest - ''; + pythonImportsCheck = [ + "zoneminder" + ]; meta = with lib; { description = "A loose python wrapper around the ZoneMinder REST API"; homepage = "https://github.com/rohankapoorcom/zm-py"; + changelog = "https://github.com/rohankapoorcom/zm-py/releases/tag/v${version}"; license = licenses.asl20; maintainers = with maintainers; [ peterhoeg ]; }; diff --git a/pkgs/development/tools/api-linter/default.nix b/pkgs/development/tools/api-linter/default.nix index 3d298785bf0f6..197628dfafc44 100644 --- a/pkgs/development/tools/api-linter/default.nix +++ b/pkgs/development/tools/api-linter/default.nix @@ -5,16 +5,16 @@ buildGoModule rec { pname = "api-linter"; - version = "1.62.0"; + version = "1.63.1"; src = fetchFromGitHub { owner = "googleapis"; repo = "api-linter"; rev = "v${version}"; - hash = "sha256-QUI54nFlZJnZ2zfhSnFV5nGoXFiVm9jEnWP7B9HwjNI="; + hash = "sha256-S2SP/Q4iVVrsvTo5pedOwkOXsPGwstz+NM0bltWBa1Y="; }; - vendorHash = "sha256-GOgjHrYSFpzkGUorr4w3YShOHWCczp0Qzjq/qw89i4k="; + vendorHash = "sha256-vr/HLcOdzkKGdKJXROaKo070mwg1r2D2m0C3sT2CeQc="; subPackages = [ "cmd/api-linter" ]; @@ -23,7 +23,7 @@ buildGoModule rec { "-w" ]; - # reference: https://github.com/googleapis/api-linter/blob/v1.62.0/.github/workflows/release.yaml#L76 + # reference: https://github.com/googleapis/api-linter/blob/v1.63.1/.github/workflows/release.yaml#L76 preBuild = '' cat > cmd/api-linter/version.go <<EOF package main diff --git a/pkgs/development/tools/firebase-tools/default.nix b/pkgs/development/tools/firebase-tools/default.nix index 337de8c263b80..35789463f5bb1 100644 --- a/pkgs/development/tools/firebase-tools/default.nix +++ b/pkgs/development/tools/firebase-tools/default.nix @@ -8,16 +8,16 @@ buildNpmPackage rec { pname = "firebase-tools"; - version = "13.0.2"; + version = "13.0.3"; src = fetchFromGitHub { owner = "firebase"; repo = "firebase-tools"; rev = "v${version}"; - hash = "sha256-vR4WvnZjxdbebXWdVbM8vQTCo7pgRMcu9A2KygHZCMk="; + hash = "sha256-kq7ZrTh6cbrVCEW2/APtcdLqn9hCKXIxZmGgvgpfG4U="; }; - npmDepsHash = "sha256-h99Zj+yJJvLKc/B6AbKKQTOdrZCIT3BVlkxrOtOyNA4="; + npmDepsHash = "sha256-VR+fpykY38JekzcBCK99qmiM3veuZ85BtGGTNf7TW5o="; postPatch = '' ln -s npm-shrinkwrap.json package-lock.json diff --git a/pkgs/development/tools/glamoroustoolkit/default.nix b/pkgs/development/tools/glamoroustoolkit/default.nix index f861ef74e0cec..a7e7bcb93ddf3 100644 --- a/pkgs/development/tools/glamoroustoolkit/default.nix +++ b/pkgs/development/tools/glamoroustoolkit/default.nix @@ -21,12 +21,12 @@ stdenv.mkDerivation (finalAttrs: { pname = "glamoroustoolkit"; - version = "1.0.10"; + version = "1.0.11"; src = fetchzip { url = "https://github.com/feenkcom/gtoolkit-vm/releases/download/v${finalAttrs.version}/GlamorousToolkit-x86_64-unknown-linux-gnu.zip"; stripRoot = false; - hash = "sha256-TvT1u9eVHEg/NomTVlY8gFAYxj76ZLRLm3kbtXUTyc8="; + hash = "sha256-GQeYR232zoHLIt1AzznD7rp6u4zMiAdj1+0OfXfT6AQ="; }; nativeBuildInputs = [ wrapGAppsHook ]; diff --git a/pkgs/development/tools/google-java-format/default.nix b/pkgs/development/tools/google-java-format/default.nix index 1ff635fc2063a..bf499e891dd67 100644 --- a/pkgs/development/tools/google-java-format/default.nix +++ b/pkgs/development/tools/google-java-format/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "google-java-format"; - version = "1.19.1"; + version = "1.19.2"; src = fetchurl { url = "https://github.com/google/google-java-format/releases/download/v${version}/google-java-format-${version}-all-deps.jar"; - sha256 = "sha256-ffNOUfh4Kb8mfc0Dwl/lSUMChDLYW/ETi9Csx1mIteM="; + sha256 = "sha256-2Ji19wxVr9z3wEMeSX1opIRyw4Ty0E/m8JeN/+Ysvio="; }; dontUnpack = true; diff --git a/pkgs/development/tools/just/default.nix b/pkgs/development/tools/just/default.nix index c9849e27d6f9c..01dd6651b7f63 100644 --- a/pkgs/development/tools/just/default.nix +++ b/pkgs/development/tools/just/default.nix @@ -11,17 +11,17 @@ rustPlatform.buildRustPackage rec { pname = "just"; - version = "1.22.0"; + version = "1.22.1"; outputs = [ "out" "man" "doc" ]; src = fetchFromGitHub { owner = "casey"; repo = pname; rev = "refs/tags/${version}"; - hash = "sha256-f7JZ19BPYNB/2Jy3m4ro1sOHbLgCd53td2DyxqvUnRo="; + hash = "sha256-AUK42SGRVLG8ZBauaLXpq9qlJHeS4sDNSiukZ8TMDu0="; }; - cargoHash = "sha256-5QMKcvpAubJ55i9UjuuI/An4z0aOvrtvSiLhj+prepU="; + cargoHash = "sha256-hZLiYJrXR7MWu09lw5/pwYzxKUPy7S97qKGqEnHMYW0="; nativeBuildInputs = [ installShellFiles mdbook ]; buildInputs = lib.optionals stdenv.isDarwin [ libiconv ]; diff --git a/pkgs/development/tools/ktlint/default.nix b/pkgs/development/tools/ktlint/default.nix index 78d2af75668bb..83ecedf8a640e 100644 --- a/pkgs/development/tools/ktlint/default.nix +++ b/pkgs/development/tools/ktlint/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "ktlint"; - version = "1.1.0"; + version = "1.1.1"; src = fetchurl { url = "https://github.com/pinterest/ktlint/releases/download/${version}/ktlint"; - sha256 = "sha256-ZyMaiirHJOLvQRq+lQQ+tz+LnugD21WaM4IeU2HgGK8="; + sha256 = "sha256:01cl4jaa2bq52wii1wkzsy6sw546xh8wa8kyhvnfwp34m9d32r4w"; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/development/tools/misc/cmake-language-server/default.nix b/pkgs/development/tools/misc/cmake-language-server/default.nix index 6d2bc2b009fd2..93ad66cd05967 100644 --- a/pkgs/development/tools/misc/cmake-language-server/default.nix +++ b/pkgs/development/tools/misc/cmake-language-server/default.nix @@ -66,5 +66,6 @@ buildPythonApplication rec { homepage = "https://github.com/regen100/cmake-language-server"; license = licenses.mit; maintainers = with maintainers; [ kira-bruneau ]; + mainProgram = "cmake-language-server"; }; } diff --git a/pkgs/development/tools/misc/opengrok/default.nix b/pkgs/development/tools/misc/opengrok/default.nix index 8ed515c6f904b..73f54dc24b8ed 100644 --- a/pkgs/development/tools/misc/opengrok/default.nix +++ b/pkgs/development/tools/misc/opengrok/default.nix @@ -2,12 +2,12 @@ stdenv.mkDerivation rec { pname = "opengrok"; - version = "1.13.0"; + version = "1.13.1"; # binary distribution src = fetchurl { url = "https://github.com/oracle/opengrok/releases/download/${version}/${pname}-${version}.tar.gz"; - hash = "sha256-qlZPoJrsH5ZHOXI0+eLiO/9rjZFXVLiF1dahTNbzfUI="; + hash = "sha256-3/BBLPoYX1/ft3MGiJD9OPtkB2PJM7bXkGRuXxTToXI="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/development/tools/okteto/default.nix b/pkgs/development/tools/okteto/default.nix index 32eb3ccdaf99e..5e153e4a90f80 100644 --- a/pkgs/development/tools/okteto/default.nix +++ b/pkgs/development/tools/okteto/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "okteto"; - version = "2.23.2"; + version = "2.24.0"; src = fetchFromGitHub { owner = "okteto"; repo = "okteto"; rev = version; - hash = "sha256-CR3ay54Z/h/mYomWtoOqV0Ynq+iygLR5Zd31gaEQ098="; + hash = "sha256-DnhUqnz+0VfZk5KCbVrQcQpsAI2ojVFMHw83UN2DzwQ="; }; - vendorHash = "sha256-HodvOSuzp57ijaShCJ+fnX5qk4o5LzMLOfPnpDlc2FU="; + vendorHash = "sha256-vSvHjQZFLzUIC9u+myI6Xi4YhetVkiQxBIkm5/RoV2U="; postPatch = '' # Disable some tests that need file system & network access. diff --git a/pkgs/development/tools/rust/cargo-tauri/default.nix b/pkgs/development/tools/rust/cargo-tauri/default.nix index 6da0790107eb4..73256d0f4b3ad 100644 --- a/pkgs/development/tools/rust/cargo-tauri/default.nix +++ b/pkgs/development/tools/rust/cargo-tauri/default.nix @@ -13,7 +13,7 @@ }: let - inherit (darwin.apple_sdk.frameworks) CoreServices Security; + inherit (darwin.apple_sdk.frameworks) CoreServices Security SystemConfiguration; in rustPlatform.buildRustPackage rec { pname = "tauri"; @@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec { cargoHash = "sha256-CHX4fesnqxoeplqXGFrn4RSfGdrkhKNANvXIwMkWXDs="; buildInputs = [ openssl ] ++ lib.optionals stdenv.isLinux [ glibc libsoup cairo gtk3 webkitgtk ] - ++ lib.optionals stdenv.isDarwin [ CoreServices Security ]; + ++ lib.optionals stdenv.isDarwin [ CoreServices Security SystemConfiguration ]; nativeBuildInputs = [ pkg-config ]; meta = with lib; { diff --git a/pkgs/development/tools/rust/sqlx-cli/default.nix b/pkgs/development/tools/rust/sqlx-cli/default.nix index 98898bcf9c31f..16edbf5591d2f 100644 --- a/pkgs/development/tools/rust/sqlx-cli/default.nix +++ b/pkgs/development/tools/rust/sqlx-cli/default.nix @@ -15,19 +15,34 @@ rustPlatform.buildRustPackage rec { pname = "sqlx-cli"; - version = "0.7.1"; + version = "0.7.3"; src = fetchFromGitHub { owner = "launchbadge"; repo = "sqlx"; rev = "v${version}"; - hash = "sha256-567/uJPQhrNqDqBF/PqklXm2avSjvtQsddjChwUKUCI="; + hash = "sha256-AKVNyuV9jwzmsy6tHkGkLj1fhVT8XYvEn2Ip2wCKDxI="; }; - cargoHash = "sha256-X7fLbih1s3sxn8vb2kQeFUKDK2DlC+sjm9ZTwj3FD1Y="; + cargoHash = "sha256-F3FLu/n57F8psk+d0Hf+HnqV/DvEFQwRefu/4C8A1sU="; + + # Prepare the Cargo.lock for offline use. + # See https://github.com/NixOS/nixpkgs/issues/261412 + postConfigure = '' + cargo metadata --offline > /dev/null + ''; + + buildNoDefaultFeatures = true; + buildFeatures = [ + "native-tls" + "postgres" + "sqlite" + "mysql" + "completions" + ]; doCheck = false; - cargoBuildFlags = [ "--package sqlx-cli --no-default-features --features native-tls,postgres,sqlite,mysql,completions" ]; + cargoBuildFlags = [ "--package sqlx-cli" ]; nativeBuildInputs = [ installShellFiles diff --git a/pkgs/development/tools/sqldef/default.nix b/pkgs/development/tools/sqldef/default.nix index 4698c4179d04d..4141cd4f91766 100644 --- a/pkgs/development/tools/sqldef/default.nix +++ b/pkgs/development/tools/sqldef/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "sqldef"; - version = "0.16.14"; + version = "0.16.15"; src = fetchFromGitHub { owner = "k0kubun"; repo = "sqldef"; rev = "v${version}"; - hash = "sha256-AuUGv3spAxPi3EwgWlxAfgksh6W/rTCnsGr3Fch5YTs="; + hash = "sha256-srwCSALP+xtccMnIOpsErn4hk83grXyOMEA2Hwsvjv0="; }; proxyVendor = true; diff --git a/pkgs/development/tools/symfony-cli/default.nix b/pkgs/development/tools/symfony-cli/default.nix index 98f312cebd70a..11e4c8e3db3c5 100644 --- a/pkgs/development/tools/symfony-cli/default.nix +++ b/pkgs/development/tools/symfony-cli/default.nix @@ -10,14 +10,14 @@ buildGoModule rec { pname = "symfony-cli"; - version = "5.8.0"; - vendorHash = "sha256-JIvMW12q5RySBP6b1k178N8V8XFCaTEJj/XslqbxcpA="; + version = "5.8.1"; + vendorHash = "sha256-bscRqFYV2qzTmu04l00/iMsFQR5ITPBFVr9BQwVGFU8="; src = fetchFromGitHub { owner = "symfony-cli"; repo = "symfony-cli"; rev = "v${version}"; - hash = "sha256-X85hPwnn7UnadhPolS8gwC+KYvJMZXOo3Dy72I2f2Q4="; + hash = "sha256-GJPUYza1LhWZP9U3JKoe3i0npLgypo3DkKex9DFo1U4="; }; ldflags = [ diff --git a/pkgs/development/web/bun/default.nix b/pkgs/development/web/bun/default.nix index b253b86b51498..ed516df42c3ce 100644 --- a/pkgs/development/web/bun/default.nix +++ b/pkgs/development/web/bun/default.nix @@ -12,7 +12,7 @@ }: stdenvNoCC.mkDerivation rec { - version = "1.0.21"; + version = "1.0.22"; pname = "bun"; src = passthru.sources.${stdenvNoCC.hostPlatform.system} or (throw "Unsupported system: ${stdenvNoCC.hostPlatform.system}"); @@ -51,19 +51,19 @@ stdenvNoCC.mkDerivation rec { sources = { "aarch64-darwin" = fetchurl { url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-darwin-aarch64.zip"; - hash = "sha256-PqQWBoSRfCs4uPNCTdgxkrsfvkJcA7KADbqrij+J6Ks="; + hash = "sha256-DbpDJe7QfWa+QK31mqmWUxJ9O/CUhDHk2RILBo5d1+A="; }; "aarch64-linux" = fetchurl { url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-linux-aarch64.zip"; - hash = "sha256-tQ2ShcOlh0Zqsw6hHXxq5M0W562Fp3u6VfW6uRgsCIQ="; + hash = "sha256-dROAnP6cTX4uteDdIXTFg/h+DX6IanRw2EuQgOev5xc="; }; "x86_64-darwin" = fetchurl { url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-darwin-x64.zip"; - hash = "sha256-u+ExrmaZIfzItS0NgeMKzrrI+2ViImvz2hSlr1yYlOI="; + hash = "sha256-ZkFXtiUFsR2XX97vYHXvGVm0FulInL0d+44TvUZA+0U="; }; "x86_64-linux" = fetchurl { url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-linux-x64.zip"; - hash = "sha256-MrIR77IE4OdSVIeU+xp3PPuM/TFvd7nD9YyX+efLnU0="; + hash = "sha256-+TCpIiI1s84TxOq+5YPfETKqgPUxgkdZDeM5KNyoZfY="; }; }; updateScript = writeShellScript "update-bun" '' diff --git a/pkgs/games/factorio/versions.json b/pkgs/games/factorio/versions.json index d034e6eab15d3..583d3ae3cbed7 100644 --- a/pkgs/games/factorio/versions.json +++ b/pkgs/games/factorio/versions.json @@ -2,56 +2,56 @@ "x86_64-linux": { "alpha": { "experimental": { - "name": "factorio_alpha_x64-1.1.94.tar.xz", + "name": "factorio_alpha_x64-1.1.101.tar.xz", "needsAuth": true, - "sha256": "06z3l828drnqv075qa3sg8l1877dlakqnppr79y031jlp8vg19pm", + "sha256": "07f8hcyf4hmf9lpa2ljm6ygpaaj2yd28da4krwa5yzjvqs88b4fq", "tarDirectory": "x64", - "url": "https://factorio.com/get-download/1.1.94/alpha/linux64", - "version": "1.1.94" + "url": "https://factorio.com/get-download/1.1.101/alpha/linux64", + "version": "1.1.101" }, "stable": { - "name": "factorio_alpha_x64-1.1.94.tar.xz", + "name": "factorio_alpha_x64-1.1.100.tar.xz", "needsAuth": true, - "sha256": "06z3l828drnqv075qa3sg8l1877dlakqnppr79y031jlp8vg19pm", + "sha256": "0ylr1x39x6x9d4zx5h0j4isgz5m56kznadf984bcvsl51plhh5wc", "tarDirectory": "x64", - "url": "https://factorio.com/get-download/1.1.94/alpha/linux64", - "version": "1.1.94" + "url": "https://factorio.com/get-download/1.1.100/alpha/linux64", + "version": "1.1.100" } }, "demo": { "experimental": { - "name": "factorio_demo_x64-1.1.94.tar.xz", + "name": "factorio_demo_x64-1.1.101.tar.xz", "needsAuth": false, - "sha256": "1z2l8xj3vvrd1m3q1rypczzqdzrmldmyipfg54qly8cfj3pxvk4w", + "sha256": "14cnz4y1iqjv8ks0w1k60qy1nqjn33wajwzdpnmxgcz01rzfqd8a", "tarDirectory": "x64", - "url": "https://factorio.com/get-download/1.1.94/demo/linux64", - "version": "1.1.94" + "url": "https://factorio.com/get-download/1.1.101/demo/linux64", + "version": "1.1.101" }, "stable": { - "name": "factorio_demo_x64-1.1.94.tar.xz", + "name": "factorio_demo_x64-1.1.100.tar.xz", "needsAuth": false, - "sha256": "1z2l8xj3vvrd1m3q1rypczzqdzrmldmyipfg54qly8cfj3pxvk4w", + "sha256": "08xrmik7z7p0pgrnscriqhssv2chrpp42gi2dw8fgjb4wf76wqc4", "tarDirectory": "x64", - "url": "https://factorio.com/get-download/1.1.94/demo/linux64", - "version": "1.1.94" + "url": "https://factorio.com/get-download/1.1.100/demo/linux64", + "version": "1.1.100" } }, "headless": { "experimental": { - "name": "factorio_headless_x64-1.1.94.tar.xz", + "name": "factorio_headless_x64-1.1.101.tar.xz", "needsAuth": false, - "sha256": "0ajs883dnz2ak1mxqvsw6hmpahcxqq243ravp5gb3iyiaaprqa4n", + "sha256": "14l3cg8swl3l7lzp44j4zk9wldzf4g23vda67wyzfyx82pvad206", "tarDirectory": "x64", - "url": "https://factorio.com/get-download/1.1.94/headless/linux64", - "version": "1.1.94" + "url": "https://factorio.com/get-download/1.1.101/headless/linux64", + "version": "1.1.101" }, "stable": { - "name": "factorio_headless_x64-1.1.94.tar.xz", + "name": "factorio_headless_x64-1.1.100.tar.xz", "needsAuth": false, - "sha256": "0ajs883dnz2ak1mxqvsw6hmpahcxqq243ravp5gb3iyiaaprqa4n", + "sha256": "0d6qphx6kpdmvyf40j45ih2s8q48i28nac86pal4vvlkdwadsl4q", "tarDirectory": "x64", - "url": "https://factorio.com/get-download/1.1.94/headless/linux64", - "version": "1.1.94" + "url": "https://factorio.com/get-download/1.1.100/headless/linux64", + "version": "1.1.100" } } } diff --git a/pkgs/games/frotz/default.nix b/pkgs/games/frotz/default.nix index 9b5256fc1c727..9bc7ae5ae512a 100644 --- a/pkgs/games/frotz/default.nix +++ b/pkgs/games/frotz/default.nix @@ -1,4 +1,7 @@ -{ fetchFromGitLab +{ lib +, stdenv +, fetchFromGitLab +, fetchpatch , libao , libmodplug , libsamplerate @@ -7,29 +10,31 @@ , ncurses , which , pkg-config -, lib, stdenv }: +}: stdenv.mkDerivation rec { - version = "2.53"; pname = "frotz"; + version = "2.54"; src = fetchFromGitLab { domain = "gitlab.com"; owner = "DavidGriffith"; repo = "frotz"; rev = version; - sha256 = "sha256-xVC/iE71W/Wdy5aPGH9DtcVAHWCcg3HkEA3iDV6OYUo="; + hash = "sha256-GvGxojD8d5GVy/d8h3q6K7KJroz2lsKbfE0F0acjBl8="; }; + patches = [ + (fetchpatch { + url = "https://github.com/macports/macports-ports/raw/496e5b91e3b6c9dc6820d77ab60dbe400d1924ee/games/frotz/files/Makefile.patch"; + extraPrefix = ""; + hash = "sha256-P83ZzSi3bhncQ52Y38Q3F/7v1SJKr5614tytt862HRg="; + }) + ]; + nativeBuildInputs = [ which pkg-config ]; buildInputs = [ libao libmodplug libsamplerate libsndfile libvorbis ncurses ]; - preBuild = '' - makeFlagsArray+=( - CC="cc" - CFLAGS="-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600" - LDFLAGS="-lncursesw -ltinfo" - ) - ''; + installFlags = [ "PREFIX=$(out)" ]; meta = with lib; { @@ -37,7 +42,7 @@ stdenv.mkDerivation rec { changelog = "https://gitlab.com/DavidGriffith/frotz/-/raw/${version}/NEWS"; description = "A z-machine interpreter for Infocom games and other interactive fiction"; platforms = platforms.unix; - maintainers = with maintainers; [ nicknovitski ddelabru ]; + maintainers = with maintainers; [ nicknovitski ddelabru ]; license = licenses.gpl2; }; } diff --git a/pkgs/games/osu-lazer/bin.nix b/pkgs/games/osu-lazer/bin.nix index e042e9d295eb7..ba624c8c575df 100644 --- a/pkgs/games/osu-lazer/bin.nix +++ b/pkgs/games/osu-lazer/bin.nix @@ -7,22 +7,22 @@ let pname = "osu-lazer-bin"; - version = "2023.1229.0"; + version = "2023.1231.0"; src = { aarch64-darwin = fetchzip { url = "https://github.com/ppy/osu/releases/download/${version}/osu.app.Apple.Silicon.zip"; - hash = "sha256-aZp8pVeCxmaAyWYnBg7w8sPMXy+L2UGRk3NvG/VsxYI="; + hash = "sha256-nvO8PPh+zBReHvDNFg1tXqSVICvhR9imEPC8y2gTNoA="; stripRoot = false; }; x86_64-darwin = fetchzip { url = "https://github.com/ppy/osu/releases/download/${version}/osu.app.Intel.zip"; - hash = "sha256-Xle/WcWg+lYA+DxQmE4Kzn1pJTa+HrM13utXqdK8ZZY="; + hash = "sha256-W4SJ4I8ebpUXiOzKh/WyyOGHuS49lyfbgHc5ec/qhZY="; stripRoot = false; }; x86_64-linux = fetchurl { url = "https://github.com/ppy/osu/releases/download/${version}/osu.AppImage"; - hash = "sha256-lRdRPwa6xix5Nvt3szPeposmqU8D826iFmE6S1uPBF8="; + hash = "sha256-BOe42jIwVBSZF0T/TMvOTdu2sQe19jpAl8WkqyZjy8U="; }; }.${stdenv.system} or (throw "${pname}-${version}: ${stdenv.system} is unsupported."); diff --git a/pkgs/games/osu-lazer/default.nix b/pkgs/games/osu-lazer/default.nix index 9949a2ee9f0fa..bf9170f0fe920 100644 --- a/pkgs/games/osu-lazer/default.nix +++ b/pkgs/games/osu-lazer/default.nix @@ -16,13 +16,13 @@ buildDotnetModule rec { pname = "osu-lazer"; - version = "2023.1229.0"; + version = "2023.1231.0"; src = fetchFromGitHub { owner = "ppy"; repo = "osu"; rev = version; - hash = "sha256-2GcPV6UHnNdToXfLs2+i3XNwE6Ymaj2bqNb5EePE3kM="; + hash = "sha256-QNIBfB0d1Zjpm31w5Rb3Vve1KIwH7hbEP3zALFLpO/8="; }; projectFile = "osu.Desktop/osu.Desktop.csproj"; diff --git a/pkgs/games/shattered-pixel-dungeon/experienced-pixel-dungeon.nix b/pkgs/games/shattered-pixel-dungeon/experienced-pixel-dungeon.nix index bf8ed2ea5b66e..918bfb7684c91 100644 --- a/pkgs/games/shattered-pixel-dungeon/experienced-pixel-dungeon.nix +++ b/pkgs/games/shattered-pixel-dungeon/experienced-pixel-dungeon.nix @@ -4,13 +4,13 @@ callPackage ./generic.nix rec { pname = "experienced-pixel-dungeon"; - version = "2.16"; + version = "2.16.2"; src = fetchFromGitHub { owner = "TrashboxBobylev"; repo = "Experienced-Pixel-Dungeon-Redone"; rev = "ExpPD-${version}"; - hash = "sha256-EfSByMceefUcnNmLSTnFNJs/iz1Q45X0BHHfj89d7PI="; + hash = "sha256-fTHAA3pCXAA9W32eeY29eaLnfcG5pLop/awQG5zKMt4="; }; postPatch = '' diff --git a/pkgs/misc/jitsi-meet-prosody/default.nix b/pkgs/misc/jitsi-meet-prosody/default.nix index 5f49773abd377..c121d88941f78 100644 --- a/pkgs/misc/jitsi-meet-prosody/default.nix +++ b/pkgs/misc/jitsi-meet-prosody/default.nix @@ -2,10 +2,10 @@ stdenv.mkDerivation rec { pname = "jitsi-meet-prosody"; - version = "1.0.7658"; + version = "1.0.7712"; src = fetchurl { url = "https://download.jitsi.org/stable/${pname}_${version}-1_all.deb"; - sha256 = "TCkCtAuzek7qT4udr9edGLderEmZ5ZyYXgRnfUFXgds="; + sha256 = "MONg1CxLrfB+cmmXm4r3HqwF1on+vDZ0IODKSr7PsWo="; }; dontBuild = true; diff --git a/pkgs/os-specific/linux/amdgpu-pro/default.nix b/pkgs/os-specific/linux/amdgpu-pro/default.nix index 96339c1d164f5..ade6da99810b2 100644 --- a/pkgs/os-specific/linux/amdgpu-pro/default.nix +++ b/pkgs/os-specific/linux/amdgpu-pro/default.nix @@ -9,7 +9,7 @@ , perl , zlib , expat -, libffi +, libffi_3_3 , libselinux , libdrm , udev @@ -119,7 +119,7 @@ in stdenv.mkDerivation rec { libxshmfence elfutils expat - libffi + libffi_3_3 libselinux # libudev is not listed in any dependencies, but is loaded dynamically udev diff --git a/pkgs/os-specific/linux/kernel/zen-kernels.nix b/pkgs/os-specific/linux/kernel/zen-kernels.nix index 526533e442225..b2aca67a7c9b2 100644 --- a/pkgs/os-specific/linux/kernel/zen-kernels.nix +++ b/pkgs/os-specific/linux/kernel/zen-kernels.nix @@ -4,9 +4,9 @@ let # comments with variant added for update script # ./update-zen.py zen zenVariant = { - version = "6.6.10"; #zen + version = "6.7"; #zen suffix = "zen1"; #zen - sha256 = "1hhy5jp1s65vpvrw9xylx3xl7mmagzmm5r9bq81hvvr7bhf754ny"; #zen + sha256 = "005m4qjhbvn4jmm37sad9bmrrk2qfkxlaq3s7k296hjfkrqnbvlw"; #zen isLqx = false; }; # ./update-zen.py lqx diff --git a/pkgs/os-specific/linux/nvme-cli/default.nix b/pkgs/os-specific/linux/nvme-cli/default.nix index d10900d3958aa..b7e94d3938aa0 100644 --- a/pkgs/os-specific/linux/nvme-cli/default.nix +++ b/pkgs/os-specific/linux/nvme-cli/default.nix @@ -10,13 +10,13 @@ stdenv.mkDerivation rec { pname = "nvme-cli"; - version = "2.7"; + version = "2.7.1"; src = fetchFromGitHub { owner = "linux-nvme"; repo = "nvme-cli"; rev = "v${version}"; - hash = "sha256-qijzXucNE+M8fOEtNaoQYX41HeJOMtg/cJFCUJyS6Ew="; + hash = "sha256-Gm+1tb/Nh+Yg2PgSUn/1hR4CZYnfTWRwcQU0A8UeQwI="; }; mesonFlags = [ diff --git a/pkgs/servers/geospatial/mapserver/default.nix b/pkgs/servers/geospatial/mapserver/default.nix index c46aa3d48d0da..922f0864b8414 100644 --- a/pkgs/servers/geospatial/mapserver/default.nix +++ b/pkgs/servers/geospatial/mapserver/default.nix @@ -15,6 +15,11 @@ stdenv.mkDerivation rec { sha256 = "sha256-fAf4kOe/6bQW0i46+EZbD/6iWI2Bjkn2no6XeR/+mg4="; }; + patches = [ + # drop this patch for version 8.0.2 + ./fix-build-w-libxml2-12.patch + ]; + nativeBuildInputs = [ cmake pkg-config diff --git a/pkgs/servers/geospatial/mapserver/fix-build-w-libxml2-12.patch b/pkgs/servers/geospatial/mapserver/fix-build-w-libxml2-12.patch new file mode 100644 index 0000000000000..e33a7f7bc44cd --- /dev/null +++ b/pkgs/servers/geospatial/mapserver/fix-build-w-libxml2-12.patch @@ -0,0 +1,39 @@ +diff --git a/mapows.c b/mapows.c +index f141a7b..5a94ecb 100644 +--- a/mapows.c ++++ b/mapows.c +@@ -168,7 +168,7 @@ static int msOWSPreParseRequest(cgiRequestObj *request, + #endif + if (ows_request->document == NULL + || (root = xmlDocGetRootElement(ows_request->document)) == NULL) { +- xmlErrorPtr error = xmlGetLastError(); ++ const xmlError *error = xmlGetLastError(); + msSetError(MS_OWSERR, "XML parsing error: %s", + "msOWSPreParseRequest()", error->message); + return MS_FAILURE; +diff --git a/mapwcs.cpp b/mapwcs.cpp +index 70e63b8..19afa79 100644 +--- a/mapwcs.cpp ++++ b/mapwcs.cpp +@@ -362,7 +362,7 @@ static int msWCSParseRequest(cgiRequestObj *request, wcsParamsObj *params, mapOb + /* parse to DOM-Structure and get root element */ + if((doc = xmlParseMemory(request->postrequest, strlen(request->postrequest))) + == NULL) { +- xmlErrorPtr error = xmlGetLastError(); ++ const xmlError *error = xmlGetLastError(); + msSetError(MS_WCSERR, "XML parsing error: %s", + "msWCSParseRequest()", error->message); + return MS_FAILURE; +diff --git a/mapwcs20.cpp b/mapwcs20.cpp +index b35e803..2431bdc 100644 +--- a/mapwcs20.cpp ++++ b/mapwcs20.cpp +@@ -1446,7 +1446,7 @@ int msWCSParseRequest20(mapObj *map, + + /* parse to DOM-Structure and get root element */ + if(doc == NULL) { +- xmlErrorPtr error = xmlGetLastError(); ++ const xmlError *error = xmlGetLastError(); + msSetError(MS_WCSERR, "XML parsing error: %s", + "msWCSParseRequest20()", error->message); + return MS_FAILURE; diff --git a/pkgs/servers/home-assistant/custom-components/README.md b/pkgs/servers/home-assistant/custom-components/README.md index d7137e5c62f7f..888ea97e45535 100644 --- a/pkgs/servers/home-assistant/custom-components/README.md +++ b/pkgs/servers/home-assistant/custom-components/README.md @@ -39,6 +39,7 @@ buildHomeAssistantComponent { # changelog, description, homepage, license, maintainers } } +``` ## Package attribute diff --git a/pkgs/servers/jicofo/default.nix b/pkgs/servers/jicofo/default.nix index 3ace911102d40..d8d85b8f65992 100644 --- a/pkgs/servers/jicofo/default.nix +++ b/pkgs/servers/jicofo/default.nix @@ -2,10 +2,10 @@ let pname = "jicofo"; - version = "1.0-1057"; + version = "1.0-1059"; src = fetchurl { url = "https://download.jitsi.org/stable/${pname}_${version}-1_all.deb"; - sha256 = "TdLPpwgULubzqyhD8PZhUMJG+AZnPT8xgjS3mUnToEo="; + sha256 = "NlBRUI4j/5njFS/TtBTsaV/5ILFtqWd6SF+FqpGp1Uk="; }; in stdenv.mkDerivation { diff --git a/pkgs/servers/jitsi-videobridge/default.nix b/pkgs/servers/jitsi-videobridge/default.nix index 3d0f399e49520..96f5190e18f12 100644 --- a/pkgs/servers/jitsi-videobridge/default.nix +++ b/pkgs/servers/jitsi-videobridge/default.nix @@ -2,10 +2,10 @@ let pname = "jitsi-videobridge2"; - version = "2.3-61-g814bffd6"; + version = "2.3-64-g719465d1"; src = fetchurl { url = "https://download.jitsi.org/stable/${pname}_${version}-1_all.deb"; - sha256 = "EzYD6x4CSv8lJRbBCR7Irfh8oaOl8qw+vw6YRfBh6nk="; + sha256 = "zZYBSHaMhGzJfONyEUkPUCalxLyB/EjqLqIgJPg2Z8o="; }; in stdenv.mkDerivation { diff --git a/pkgs/servers/keycloak/default.nix b/pkgs/servers/keycloak/default.nix index 14c38c848f252..646d2d83ed1cc 100644 --- a/pkgs/servers/keycloak/default.nix +++ b/pkgs/servers/keycloak/default.nix @@ -18,11 +18,11 @@ let ''; in stdenv.mkDerivation rec { pname = "keycloak"; - version = "23.0.3"; + version = "23.0.4"; src = fetchzip { url = "https://github.com/keycloak/keycloak/releases/download/${version}/keycloak-${version}.zip"; - hash = "sha256-5K8+pfn1zoXzBWJevZBx+9kZmefs1AvPoshOKP/dkNY="; + hash = "sha256-qvgYH/e+V++Tk39sgELTiUqyoEbBuUoCRNaCiM8ZuoA="; }; nativeBuildInputs = [ makeWrapper jre ]; diff --git a/pkgs/servers/keycloak/keycloak-metrics-spi/default.nix b/pkgs/servers/keycloak/keycloak-metrics-spi/default.nix index 7a7442d8946a7..4752e5fe08c9f 100644 --- a/pkgs/servers/keycloak/keycloak-metrics-spi/default.nix +++ b/pkgs/servers/keycloak/keycloak-metrics-spi/default.nix @@ -11,7 +11,7 @@ maven.buildMavenPackage rec { hash = "sha256-pacmx5w1VVWz3HmHO6sc2friNUpzo4zyJI1/TQgCXlc="; }; - mvnHash = "sha256-rwAc2KtKo4vJ0JWwPquMyt+FHVNTmMpzBPbo8lWDN/A="; + mvnHash = "sha256-RjERY434UL9z/gNZFV+wMTITCmTPGanwu61L8sEGaKY="; installPhase = '' runHook preInstall diff --git a/pkgs/servers/monitoring/grafana-agent/default.nix b/pkgs/servers/monitoring/grafana-agent/default.nix index 96487015df8c6..02a263aa8e161 100644 --- a/pkgs/servers/monitoring/grafana-agent/default.nix +++ b/pkgs/servers/monitoring/grafana-agent/default.nix @@ -14,16 +14,16 @@ buildGoModule rec { pname = "grafana-agent"; - version = "0.38.1"; + version = "0.39.0"; src = fetchFromGitHub { owner = "grafana"; repo = "agent"; rev = "v${version}"; - hash = "sha256-caqJE92yEzqU/UQS7Cgxe+4+wGqBqPshhhPAyPP2WPQ="; + hash = "sha256-mUPWww7RnrCwJKGWXIsX7vnTmxj2h31AzM8a0eKa15g="; }; - vendorHash = "sha256-aN/vIBbezieMhWG/czwXxx+/M40mDySZmM8pxVVs3Vs="; + vendorHash = "sha256-nOuinJXTiTumHlOWcuGTBcrw9ArIdb/R8jIT/5+i0vM="; proxyVendor = true; # darwin/linux hash mismatch frontendYarnOfflineCache = fetchYarnDeps { diff --git a/pkgs/servers/sabnzbd/default.nix b/pkgs/servers/sabnzbd/default.nix index efc0f64f35838..4f34c9f0b73ad 100644 --- a/pkgs/servers/sabnzbd/default.nix +++ b/pkgs/servers/sabnzbd/default.nix @@ -47,14 +47,14 @@ let ]); path = lib.makeBinPath [ coreutils par2cmdline unrar unzip p7zip util-linux ]; in stdenv.mkDerivation rec { - version = "4.2.0"; + version = "4.2.1"; pname = "sabnzbd"; src = fetchFromGitHub { owner = pname; repo = pname; rev = version; - sha256 = "sha256-ub8CwFcmxfsfhR45M5lVZvCHyzN/7CK4ElS4Q0U4qu8="; + sha256 = "sha256-M9DvwizNeCXkV07dkgiComdjoceUACCuccZb+y9RMdw="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/servers/web-apps/jitsi-meet/default.nix b/pkgs/servers/web-apps/jitsi-meet/default.nix index 34c2621847b1b..0f3055361adbe 100644 --- a/pkgs/servers/web-apps/jitsi-meet/default.nix +++ b/pkgs/servers/web-apps/jitsi-meet/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "jitsi-meet"; - version = "1.0.7658"; + version = "1.0.7712"; src = fetchurl { url = "https://download.jitsi.org/jitsi-meet/src/jitsi-meet-${version}.tar.bz2"; - sha256 = "5NzIN0T/7Y9WrCLA7CXAbBOOPIl4BuVHdz15jKf7fQo="; + sha256 = "NNO+lXSPGtEDN7cqBatH2l8jqaQnTdNXfo9uzc+SwUA="; }; dontBuild = true; diff --git a/pkgs/stdenv/adapters.nix b/pkgs/stdenv/adapters.nix index dd29871907188..cde718df1abac 100644 --- a/pkgs/stdenv/adapters.nix +++ b/pkgs/stdenv/adapters.nix @@ -83,7 +83,10 @@ rec { in overrideCC stdenv (stdenv.cc.override { inherit libcxx; - extraPackages = [ cxxabi pkgs.pkgsTargetTarget."llvmPackages_${lib.versions.major llvmLibcxxVersion}".compiler-rt ]; + extraPackages = [ + cxxabi + pkgs.buildPackages.targetPackages."llvmPackages_${lib.versions.major llvmLibcxxVersion}".compiler-rt + ]; }); # Override the setup script of stdenv. Useful for testing new diff --git a/pkgs/test/nixpkgs-check-by-name/README.md b/pkgs/test/nixpkgs-check-by-name/README.md index 19865ca0952b5..871847bd74cca 100644 --- a/pkgs/test/nixpkgs-check-by-name/README.md +++ b/pkgs/test/nixpkgs-check-by-name/README.md @@ -28,6 +28,8 @@ These checks are performed by this tool: - Each package directory must not refer to files outside itself using symlinks or Nix path expressions. ### Nix evaluation checks + +Evaluate Nixpkgs with `system` set to `x86_64-linux` and check that: - For each package directory, the `pkgs.${name}` attribute must be defined as `callPackage pkgs/by-name/${shard}/${name}/package.nix args` for some `args`. - For each package directory, `pkgs.lib.isDerivation pkgs.${name}` must be `true`. diff --git a/pkgs/test/nixpkgs-check-by-name/src/eval.nix b/pkgs/test/nixpkgs-check-by-name/src/eval.nix index bf9f19d8e460b..7707dc732b703 100644 --- a/pkgs/test/nixpkgs-check-by-name/src/eval.nix +++ b/pkgs/test/nixpkgs-check-by-name/src/eval.nix @@ -1,11 +1,7 @@ # Takes a path to nixpkgs and a path to the json-encoded list of attributes to check. -# Returns an attribute set containing information on each requested attribute. -# If the attribute is missing from Nixpkgs it's also missing from the result. -# -# The returned information is an attribute set with: -# - call_package_path: The <path> from `<attr> = callPackage <path> { ... }`, -# or null if it's not defined as with callPackage, or if the <path> is not a path -# - is_derivation: The result of `lib.isDerivation <attr>` +# Returns an value containing information on each requested attribute, +# which is decoded on the Rust side. +# See ./eval.rs for the meaning of the returned values { attrsPath, nixpkgsPath, @@ -13,70 +9,85 @@ let attrs = builtins.fromJSON (builtins.readFile attrsPath); - # This overlay mocks callPackage to persist the path of the first argument - callPackageOverlay = self: super: { + nixpkgsPathLength = builtins.stringLength (toString nixpkgsPath) + 1; + removeNixpkgsPrefix = builtins.substring nixpkgsPathLength (-1); + + # We need access to the `callPackage` arguments of each attribute. + # The only way to do so is to override `callPackage` with our own version that adds this information to the result, + # and then try to access this information. + overlay = final: prev: { + + # Information for attributes defined using `callPackage` callPackage = fn: args: - let - result = super.callPackage fn args; - variantInfo._attributeVariant = { - # These names are used by the deserializer on the Rust side - CallPackage.path = + addVariantInfo (prev.callPackage fn args) { + Manual = { + path = if builtins.isPath fn then - toString fn + removeNixpkgsPrefix (toString fn) else null; - CallPackage.empty_arg = + empty_arg = args == { }; }; - in - if builtins.isAttrs result then - # If this was the last overlay to be applied, we could just only return the `_callPackagePath`, - # but that's not the case because stdenv has another overlays on top of user-provided ones. - # So to not break the stdenv build we need to return the mostly proper result here - result // variantInfo - else - # It's very rare that callPackage doesn't return an attribute set, but it can occur. - variantInfo; + }; + # Information for attributes that are auto-called from pkgs/by-name. + # This internal attribute is only used by pkgs/by-name _internalCallByNamePackageFile = file: - let - result = super._internalCallByNamePackageFile file; - variantInfo._attributeVariant = { - # This name is used by the deserializer on the Rust side - AutoCalled = null; - }; - in - if builtins.isAttrs result then - # If this was the last overlay to be applied, we could just only return the `_callPackagePath`, - # but that's not the case because stdenv has another overlays on top of user-provided ones. - # So to not break the stdenv build we need to return the mostly proper result here - result // variantInfo - else - # It's very rare that callPackage doesn't return an attribute set, but it can occur. - variantInfo; + addVariantInfo (prev._internalCallByNamePackageFile file) { + Auto = null; + }; + }; + # We can't just replace attribute values with their info in the overlay, + # because attributes can depend on other attributes, so this would break evaluation. + addVariantInfo = value: variant: + if builtins.isAttrs value then + value // { + _callPackageVariant = variant; + } + else + # It's very rare that callPackage doesn't return an attribute set, but it can occur. + # In such a case we can't really return anything sensible that would include the info, + # so just don't return the info and let the consumer handle it. + value; + pkgs = import nixpkgsPath { # Don't let the users home directory influence this result config = { }; - overlays = [ callPackageOverlay ]; + overlays = [ overlay ]; + # We check evaluation and callPackage only for x86_64-linux. + # Not ideal, but hard to fix + system = "x86_64-linux"; }; - attrInfo = attr: - let - value = pkgs.${attr}; - in - { - # These names are used by the deserializer on the Rust side - variant = value._attributeVariant or { Other = null; }; - is_derivation = pkgs.lib.isDerivation value; - }; + attrInfo = name: value: + if ! builtins.isAttrs value then + { + NonAttributeSet = null; + } + else if ! value ? _callPackageVariant then + { + NonCallPackage = null; + } + else + { + CallPackage = { + call_package_variant = value._callPackageVariant; + is_derivation = pkgs.lib.isDerivation value; + }; + }; - attrInfos = builtins.listToAttrs (map (name: { - inherit name; - value = attrInfo name; - }) attrs); + attrInfos = map (name: [ + name + ( + if ! pkgs ? ${name} then + { Missing = null; } + else + { Existing = attrInfo name pkgs.${name}; } + ) + ]) attrs; in -# Filter out attributes not in Nixpkgs -builtins.intersectAttrs pkgs attrInfos +attrInfos diff --git a/pkgs/test/nixpkgs-check-by-name/src/eval.rs b/pkgs/test/nixpkgs-check-by-name/src/eval.rs index cd8c70472cf25..65f71ccafc6f4 100644 --- a/pkgs/test/nixpkgs-check-by-name/src/eval.rs +++ b/pkgs/test/nixpkgs-check-by-name/src/eval.rs @@ -6,33 +6,48 @@ use std::path::Path; use anyhow::Context; use serde::Deserialize; -use std::collections::HashMap; use std::path::PathBuf; use std::process; use tempfile::NamedTempFile; /// Attribute set of this structure is returned by eval.nix #[derive(Deserialize)] -struct AttributeInfo { - variant: AttributeVariant, +enum ByNameAttribute { + /// The attribute doesn't exist at all + Missing, + Existing(AttributeInfo), +} + +#[derive(Deserialize)] +enum AttributeInfo { + /// The attribute exists, but its value isn't an attribute set + NonAttributeSet, + /// The attribute exists, but its value isn't defined using callPackage + NonCallPackage, + /// The attribute exists and its value is an attribute set + CallPackage(CallPackageInfo), +} + +#[derive(Deserialize)] +struct CallPackageInfo { + call_package_variant: CallPackageVariant, + /// Whether the attribute is a derivation (`lib.isDerivation`) is_derivation: bool, } #[derive(Deserialize)] -enum AttributeVariant { +enum CallPackageVariant { /// The attribute is auto-called as pkgs.callPackage using pkgs/by-name, /// and it is not overridden by a definition in all-packages.nix - AutoCalled, + Auto, /// The attribute is defined as a pkgs.callPackage <path> <args>, /// and overridden by all-packages.nix - CallPackage { + Manual { /// The <path> argument or None if it's not a path path: Option<PathBuf>, /// true if <args> is { } empty_arg: bool, }, - /// The attribute is not defined as pkgs.callPackage - Other, } /// Check that the Nixpkgs attribute values corresponding to the packages in pkgs/by-name are @@ -45,20 +60,22 @@ pub fn check_values( ) -> validation::Result<ratchet::Nixpkgs> { // Write the list of packages we need to check into a temporary JSON file. // This can then get read by the Nix evaluation. - let attrs_file = NamedTempFile::new().context("Failed to create a temporary file")?; + let attrs_file = NamedTempFile::new().with_context(|| "Failed to create a temporary file")?; // We need to canonicalise this path because if it's a symlink (which can be the case on // Darwin), Nix would need to read both the symlink and the target path, therefore need 2 // NIX_PATH entries for restrict-eval. But if we resolve the symlinks then only one predictable // entry is needed. let attrs_file_path = attrs_file.path().canonicalize()?; - serde_json::to_writer(&attrs_file, &package_names).context(format!( - "Failed to serialise the package names to the temporary path {}", - attrs_file_path.display() - ))?; + serde_json::to_writer(&attrs_file, &package_names).with_context(|| { + format!( + "Failed to serialise the package names to the temporary path {}", + attrs_file_path.display() + ) + })?; let expr_path = std::env::var("NIX_CHECK_BY_NAME_EXPR_PATH") - .context("Could not get environment variable NIX_CHECK_BY_NAME_EXPR_PATH")?; + .with_context(|| "Could not get environment variable NIX_CHECK_BY_NAME_EXPR_PATH")?; // With restrict-eval, only paths in NIX_PATH can be accessed, so we explicitly specify the // ones needed needed let mut command = process::Command::new("nix-instantiate"); @@ -97,80 +114,96 @@ pub fn check_values( let result = command .output() - .context(format!("Failed to run command {command:?}"))?; + .with_context(|| format!("Failed to run command {command:?}"))?; if !result.status.success() { anyhow::bail!("Failed to run command {command:?}"); } // Parse the resulting JSON value - let actual_files: HashMap<String, AttributeInfo> = serde_json::from_slice(&result.stdout) - .context(format!( - "Failed to deserialise {}", - String::from_utf8_lossy(&result.stdout) - ))?; - - Ok( - validation::sequence(package_names.into_iter().map(|package_name| { - let relative_package_file = structure::relative_file_for_package(&package_name); - let absolute_package_file = nixpkgs_path.join(&relative_package_file); - - if let Some(attribute_info) = actual_files.get(&package_name) { - let check_result = if !attribute_info.is_derivation { - NixpkgsProblem::NonDerivation { - relative_package_file: relative_package_file.clone(), - package_name: package_name.clone(), - } - .into() - } else { - Success(()) - }; - - let check_result = check_result.and(match &attribute_info.variant { - AttributeVariant::AutoCalled => Success(ratchet::Package { - empty_non_auto_called: ratchet::EmptyNonAutoCalled::Valid, - }), - AttributeVariant::CallPackage { path, empty_arg } => { - let correct_file = if let Some(call_package_path) = path { - absolute_package_file == *call_package_path - } else { - false - }; - - if correct_file { - Success(ratchet::Package { - // Empty arguments for non-auto-called packages are not allowed anymore. - empty_non_auto_called: if *empty_arg { - ratchet::EmptyNonAutoCalled::Invalid - } else { - ratchet::EmptyNonAutoCalled::Valid - }, - }) - } else { - NixpkgsProblem::WrongCallPackage { - relative_package_file: relative_package_file.clone(), - package_name: package_name.clone(), + let attributes: Vec<(String, ByNameAttribute)> = serde_json::from_slice(&result.stdout) + .with_context(|| { + format!( + "Failed to deserialise {}", + String::from_utf8_lossy(&result.stdout) + ) + })?; + + let check_result = validation::sequence(attributes.into_iter().map( + |(attribute_name, attribute_value)| { + let relative_package_file = structure::relative_file_for_package(&attribute_name); + + use ratchet::RatchetState::*; + use AttributeInfo::*; + use ByNameAttribute::*; + use CallPackageVariant::*; + + let check_result = match attribute_value { + Missing => NixpkgsProblem::UndefinedAttr { + relative_package_file: relative_package_file.clone(), + package_name: attribute_name.clone(), + } + .into(), + Existing(NonAttributeSet) => NixpkgsProblem::NonDerivation { + relative_package_file: relative_package_file.clone(), + package_name: attribute_name.clone(), + } + .into(), + Existing(NonCallPackage) => NixpkgsProblem::WrongCallPackage { + relative_package_file: relative_package_file.clone(), + package_name: attribute_name.clone(), + } + .into(), + Existing(CallPackage(CallPackageInfo { + is_derivation, + call_package_variant, + })) => { + let check_result = if !is_derivation { + NixpkgsProblem::NonDerivation { + relative_package_file: relative_package_file.clone(), + package_name: attribute_name.clone(), + } + .into() + } else { + Success(()) + }; + + check_result.and(match &call_package_variant { + Auto => Success(ratchet::Package { + empty_non_auto_called: Tight, + }), + Manual { path, empty_arg } => { + let correct_file = if let Some(call_package_path) = path { + relative_package_file == *call_package_path + } else { + false + }; + + if correct_file { + Success(ratchet::Package { + // Empty arguments for non-auto-called packages are not allowed anymore. + empty_non_auto_called: if *empty_arg { + Loose(ratchet::EmptyNonAutoCalled) + } else { + Tight + }, + }) + } else { + NixpkgsProblem::WrongCallPackage { + relative_package_file: relative_package_file.clone(), + package_name: attribute_name.clone(), + } + .into() } - .into() } - } - AttributeVariant::Other => NixpkgsProblem::WrongCallPackage { - relative_package_file: relative_package_file.clone(), - package_name: package_name.clone(), - } - .into(), - }); - - check_result.map(|value| (package_name.clone(), value)) - } else { - NixpkgsProblem::UndefinedAttr { - relative_package_file: relative_package_file.clone(), - package_name: package_name.clone(), + }) } - .into() - } - })) - .map(|elems| ratchet::Nixpkgs { - packages: elems.into_iter().collect(), - }), - ) + }; + check_result.map(|value| (attribute_name.clone(), value)) + }, + )); + + Ok(check_result.map(|elems| ratchet::Nixpkgs { + package_names, + package_map: elems.into_iter().collect(), + })) } diff --git a/pkgs/test/nixpkgs-check-by-name/src/main.rs b/pkgs/test/nixpkgs-check-by-name/src/main.rs index 18c950d0a6eb0..d7627acb5fee6 100644 --- a/pkgs/test/nixpkgs-check-by-name/src/main.rs +++ b/pkgs/test/nixpkgs-check-by-name/src/main.rs @@ -38,15 +38,13 @@ pub struct Args { /// Path to the base Nixpkgs to run ratchet checks against. /// For PRs, this should be set to a checkout of the PRs base branch. - /// If not specified, no ratchet checks will be performed. - /// However, this flag will become required once CI uses it. #[arg(long)] - base: Option<PathBuf>, + base: PathBuf, } fn main() -> ExitCode { let args = Args::parse(); - match process(args.base.as_deref(), &args.nixpkgs, &[], &mut io::stderr()) { + match process(&args.base, &args.nixpkgs, &[], &mut io::stderr()) { Ok(true) => { eprintln!("{}", "Validated successfully".green()); ExitCode::SUCCESS @@ -77,7 +75,7 @@ fn main() -> ExitCode { /// - `Ok(false)` if there are problems, all of which will be written to `error_writer`. /// - `Ok(true)` if there are no problems pub fn process<W: io::Write>( - base_nixpkgs: Option<&Path>, + base_nixpkgs: &Path, main_nixpkgs: &Path, eval_accessible_paths: &[&Path], error_writer: &mut W, @@ -87,18 +85,14 @@ pub fn process<W: io::Write>( let check_result = main_result.result_map(|nixpkgs_version| { // If the main Nixpkgs doesn't have any problems, run the ratchet checks against the base // Nixpkgs - if let Some(base) = base_nixpkgs { - check_nixpkgs(base, eval_accessible_paths, error_writer)?.result_map( - |base_nixpkgs_version| { - Ok(ratchet::Nixpkgs::compare( - Some(base_nixpkgs_version), - nixpkgs_version, - )) - }, - ) - } else { - Ok(ratchet::Nixpkgs::compare(None, nixpkgs_version)) - } + check_nixpkgs(base_nixpkgs, eval_accessible_paths, error_writer)?.result_map( + |base_nixpkgs_version| { + Ok(ratchet::Nixpkgs::compare( + base_nixpkgs_version, + nixpkgs_version, + )) + }, + ) })?; match check_result { @@ -123,10 +117,12 @@ pub fn check_nixpkgs<W: io::Write>( error_writer: &mut W, ) -> validation::Result<ratchet::Nixpkgs> { Ok({ - let nixpkgs_path = nixpkgs_path.canonicalize().context(format!( - "Nixpkgs path {} could not be resolved", - nixpkgs_path.display() - ))?; + let nixpkgs_path = nixpkgs_path.canonicalize().with_context(|| { + format!( + "Nixpkgs path {} could not be resolved", + nixpkgs_path.display() + ) + })?; if !nixpkgs_path.join(utils::BASE_SUBPATH).exists() { writeln!( @@ -234,16 +230,16 @@ mod tests { let base_path = path.join("base"); let base_nixpkgs = if base_path.exists() { - Some(base_path.as_path()) + base_path.as_path() } else { - None + Path::new("tests/empty-base") }; // We don't want coloring to mess up the tests let writer = temp_env::with_var("NO_COLOR", Some("1"), || -> anyhow::Result<_> { let mut writer = vec![]; process(base_nixpkgs, &path, &[&extra_nix_path], &mut writer) - .context(format!("Failed test case {name}"))?; + .with_context(|| format!("Failed test case {name}"))?; Ok(writer) })?; diff --git a/pkgs/test/nixpkgs-check-by-name/src/ratchet.rs b/pkgs/test/nixpkgs-check-by-name/src/ratchet.rs index c12f1ead25402..85feb0eee62f3 100644 --- a/pkgs/test/nixpkgs-check-by-name/src/ratchet.rs +++ b/pkgs/test/nixpkgs-check-by-name/src/ratchet.rs @@ -10,31 +10,20 @@ use std::collections::HashMap; /// The ratchet value for the entirety of Nixpkgs. #[derive(Default)] pub struct Nixpkgs { - /// The ratchet values for each package in `pkgs/by-name` - pub packages: HashMap<String, Package>, + /// Sorted list of attributes in package_map + pub package_names: Vec<String>, + /// The ratchet values for all packages + pub package_map: HashMap<String, Package>, } impl Nixpkgs { /// Validates the ratchet checks for Nixpkgs - pub fn compare(optional_from: Option<Self>, to: Self) -> Validation<()> { + pub fn compare(from: Self, to: Self) -> Validation<()> { validation::sequence_( // We only loop over the current attributes, // we don't need to check ones that were removed - to.packages.into_iter().map(|(name, attr_to)| { - let attr_from = if let Some(from) = &optional_from { - from.packages.get(&name) - } else { - // This pretends that if there's no base version to compare against, all - // attributes existed without conforming to the new strictness check for - // backwards compatibility. - // TODO: Remove this case. This is only needed because the `--base` - // argument is still optional, which doesn't need to be once CI is updated - // to pass it. - Some(&Package { - empty_non_auto_called: EmptyNonAutoCalled::Invalid, - }) - }; - Package::compare(&name, attr_from, &attr_to) + to.package_names.into_iter().map(|name| { + Package::compare(&name, from.package_map.get(&name), &to.package_map[&name]) }), ) } @@ -43,13 +32,13 @@ impl Nixpkgs { /// The ratchet value for a single package in `pkgs/by-name` pub struct Package { /// The ratchet value for the check for non-auto-called empty arguments - pub empty_non_auto_called: EmptyNonAutoCalled, + pub empty_non_auto_called: RatchetState<EmptyNonAutoCalled>, } impl Package { /// Validates the ratchet checks for a single package defined in `pkgs/by-name` pub fn compare(name: &str, optional_from: Option<&Self>, to: &Self) -> Validation<()> { - EmptyNonAutoCalled::compare( + RatchetState::<EmptyNonAutoCalled>::compare( name, optional_from.map(|x| &x.empty_non_auto_called), &to.empty_non_auto_called, @@ -57,29 +46,59 @@ impl Package { } } -/// The ratchet value of a single package in `pkgs/by-name` +/// The ratchet state of a generic ratchet check. +pub enum RatchetState<Context> { + /// The ratchet is loose, it can be tightened more. + /// In other words, this is the legacy state we're trying to move away from. + /// Introducing new instances is not allowed but previous instances will continue to be allowed. + /// The `Context` is context for error messages in case a new instance of this state is + /// introduced + Loose(Context), + /// The ratchet is tight, it can't be tightened any further. + /// This is either because we already use the latest state, or because the ratchet isn't + /// relevant. + Tight, +} + +/// A trait that can convert an attribute-specific error context into a NixpkgsProblem +pub trait ToNixpkgsProblem { + /// How to convert an attribute-specific error context into a NixpkgsProblem + fn to_nixpkgs_problem(name: &str, context: &Self, existed_before: bool) -> NixpkgsProblem; +} + +impl<Context: ToNixpkgsProblem> RatchetState<Context> { + /// Compare the previous ratchet state of an attribute to the new state. + /// The previous state may be `None` in case the attribute is new. + fn compare(name: &str, optional_from: Option<&Self>, to: &Self) -> Validation<()> { + // If we don't have a previous state, enforce a tight ratchet + let from = optional_from.unwrap_or(&RatchetState::Tight); + match (from, to) { + // Always okay to keep it tight or tighten the ratchet + (_, RatchetState::Tight) => Success(()), + + // Grandfathering policy for a loose ratchet + (RatchetState::Loose { .. }, RatchetState::Loose { .. }) => Success(()), + + // Loosening a ratchet is now allowed + (RatchetState::Tight, RatchetState::Loose(context)) => { + Context::to_nixpkgs_problem(name, context, optional_from.is_some()).into() + } + } + } +} + +/// The ratchet value of an attribute /// for the non-auto-called empty argument check of a single. /// /// This checks that packages defined in `pkgs/by-name` cannot be overridden /// with an empty second argument like `callPackage ... { }`. -#[derive(PartialEq, PartialOrd)] -pub enum EmptyNonAutoCalled { - Invalid, - Valid, -} +pub struct EmptyNonAutoCalled; -impl EmptyNonAutoCalled { - /// Validates the non-auto-called empty argument ratchet check for a single package defined in `pkgs/by-name` - fn compare(name: &str, optional_from: Option<&Self>, to: &Self) -> Validation<()> { - let from = optional_from.unwrap_or(&Self::Valid); - if to >= from { - Success(()) - } else { - NixpkgsProblem::WrongCallPackage { - relative_package_file: structure::relative_file_for_package(name), - package_name: name.to_owned(), - } - .into() +impl ToNixpkgsProblem for EmptyNonAutoCalled { + fn to_nixpkgs_problem(name: &str, _context: &Self, _existed_before: bool) -> NixpkgsProblem { + NixpkgsProblem::WrongCallPackage { + relative_package_file: structure::relative_file_for_package(name), + package_name: name.to_owned(), } } } diff --git a/pkgs/test/nixpkgs-check-by-name/src/references.rs b/pkgs/test/nixpkgs-check-by-name/src/references.rs index 0561a9b22e858..3b3b05419780a 100644 --- a/pkgs/test/nixpkgs-check-by-name/src/references.rs +++ b/pkgs/test/nixpkgs-check-by-name/src/references.rs @@ -17,10 +17,12 @@ pub fn check_references( ) -> validation::Result<()> { // The empty argument here is the subpath under the package directory to check // An empty one means the package directory itself - check_path(relative_package_dir, absolute_package_dir, Path::new("")).context(format!( - "While checking the references in package directory {}", - relative_package_dir.display() - )) + check_path(relative_package_dir, absolute_package_dir, Path::new("")).with_context(|| { + format!( + "While checking the references in package directory {}", + relative_package_dir.display() + ) + }) } /// Checks for a specific path to not have references outside @@ -62,7 +64,9 @@ fn check_path( .map(|entry| { let entry_subpath = subpath.join(entry.file_name()); check_path(relative_package_dir, absolute_package_dir, &entry_subpath) - .context(format!("Error while recursing into {}", subpath.display())) + .with_context(|| { + format!("Error while recursing into {}", subpath.display()) + }) }) .collect_vec()?, ) @@ -70,8 +74,8 @@ fn check_path( // Only check Nix files if let Some(ext) = path.extension() { if ext == OsStr::new("nix") { - check_nix_file(relative_package_dir, absolute_package_dir, subpath).context( - format!("Error while checking Nix file {}", subpath.display()), + check_nix_file(relative_package_dir, absolute_package_dir, subpath).with_context( + || format!("Error while checking Nix file {}", subpath.display()), )? } else { Success(()) @@ -93,13 +97,12 @@ fn check_nix_file( subpath: &Path, ) -> validation::Result<()> { let path = absolute_package_dir.join(subpath); - let parent_dir = path.parent().context(format!( - "Could not get parent of path {}", - subpath.display() - ))?; + let parent_dir = path + .parent() + .with_context(|| format!("Could not get parent of path {}", subpath.display()))?; - let contents = - read_to_string(&path).context(format!("Could not read file {}", subpath.display()))?; + let contents = read_to_string(&path) + .with_context(|| format!("Could not read file {}", subpath.display()))?; let root = Root::parse(&contents); if let Some(error) = root.errors().first() { diff --git a/pkgs/test/nixpkgs-check-by-name/src/utils.rs b/pkgs/test/nixpkgs-check-by-name/src/utils.rs index 5cc4a0863ba82..7e0198dede424 100644 --- a/pkgs/test/nixpkgs-check-by-name/src/utils.rs +++ b/pkgs/test/nixpkgs-check-by-name/src/utils.rs @@ -10,10 +10,10 @@ pub const PACKAGE_NIX_FILENAME: &str = "package.nix"; pub fn read_dir_sorted(base_dir: &Path) -> anyhow::Result<Vec<fs::DirEntry>> { let listing = base_dir .read_dir() - .context(format!("Could not list directory {}", base_dir.display()))?; + .with_context(|| format!("Could not list directory {}", base_dir.display()))?; let mut shard_entries = listing .collect::<io::Result<Vec<_>>>() - .context(format!("Could not list directory {}", base_dir.display()))?; + .with_context(|| format!("Could not list directory {}", base_dir.display()))?; shard_entries.sort_by_key(|entry| entry.file_name()); Ok(shard_entries) } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/empty-base/default.nix b/pkgs/test/nixpkgs-check-by-name/tests/empty-base/default.nix new file mode 100644 index 0000000000000..af25d1450122b --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/empty-base/default.nix @@ -0,0 +1 @@ +import ../mock-nixpkgs.nix { root = ./.; } diff --git a/pkgs/test/nixpkgs-check-by-name/tests/empty-base/pkgs/by-name/README.md b/pkgs/test/nixpkgs-check-by-name/tests/empty-base/pkgs/by-name/README.md new file mode 100644 index 0000000000000..e69de29bb2d1d --- /dev/null +++ b/pkgs/test/nixpkgs-check-by-name/tests/empty-base/pkgs/by-name/README.md diff --git a/pkgs/test/nixpkgs-check-by-name/tests/mock-nixpkgs.nix b/pkgs/test/nixpkgs-check-by-name/tests/mock-nixpkgs.nix index 01bb27a480388..cb8066062cc64 100644 --- a/pkgs/test/nixpkgs-check-by-name/tests/mock-nixpkgs.nix +++ b/pkgs/test/nixpkgs-check-by-name/tests/mock-nixpkgs.nix @@ -19,6 +19,8 @@ It returns a Nixpkgs-like function that can be auto-called and evaluates to an a overlays ? [], # Passed by the checker to make sure a real Nixpkgs isn't influenced by impurities config ? {}, + # Passed by the checker to make sure a real Nixpkgs isn't influenced by impurities + system ? null, }: let diff --git a/pkgs/tools/misc/jugglinglab/default.nix b/pkgs/tools/misc/jugglinglab/default.nix index 9d552072f7dff..64b91a68d9480 100644 --- a/pkgs/tools/misc/jugglinglab/default.nix +++ b/pkgs/tools/misc/jugglinglab/default.nix @@ -1,37 +1,73 @@ -{ lib, stdenv, fetchFromGitHub, jre, makeWrapper, ant, jdk }: -stdenv.mkDerivation rec { - version = "1.6.3"; +{ lib +, stdenv +, maven +, fetchFromGitHub +, makeWrapper +, wrapGAppsHook +, jre +}: + +let + platformName = { + "x86_64-linux" = "linux-x86-64"; + "aarch64-linux" = "linux-aarch64"; + "x86_64-darwin" = "darwin-x86-64"; + "aarch64-darwin" = "darwin-aarch64"; + }.${stdenv.system} or null; +in +maven.buildMavenPackage rec { pname = "jugglinglab"; + version = "1.6.5"; + src = fetchFromGitHub { owner = "jkboyce"; repo = "jugglinglab"; rev = "v${version}"; - sha256 = "sha256-Gq8V7gLl9IakQi7xaK8TCI/B2+6LlLjoLdcv9zlalIE="; + hash = "sha256-Y87uHFpVs4A/wErNO2ZF6Su0v4LEvaE9nIysrqFoY8w="; }; - buildInputs = [ jre ]; - nativeBuildInputs = [ ant jdk makeWrapper ]; - buildPhase = "ant"; + + patches = [ + # make sure mvnHash doesn't change when maven is updated + ./fix-default-maven-plugin-versions.patch + ]; + + mvnHash = "sha256-1Uzo9nRw+YR/sd7CC9MTPe/lttkRX6BtmcsHaagP1Do="; + + # fix jar timestamps for reproducibility + mvnParameters = "-Dproject.build.outputTimestamp=1980-01-01T00:00:02Z"; + + nativeBuildInputs = [ + makeWrapper + wrapGAppsHook + ]; + + dontWrapGApps = true; installPhase = '' - mkdir -p "$out/bin" - mkdir -p "$out/lib" - cp bin/*.jar $out/lib/ + runHook preInstall - # copied from the upstream shell wrapper - classpath=$out/lib/JugglingLab.jar:$out/lib/commons-math3-3.6.1.jar:$out/lib/protobuf.jar:$out/lib/com.google.ortools.jar + install -Dm644 bin/JugglingLab.jar -t $out/share/jugglinglab + ${lib.optionalString (platformName != null) '' + install -Dm755 bin/ortools-lib/ortools-${platformName}/* -t $out/lib/ortools-lib + ''} + + runHook postInstall + ''; + # gappsWrapperArgs are set in preFixup + postFixup = '' makeWrapper ${jre}/bin/java $out/bin/jugglinglab \ - --add-flags "-cp $classpath" \ - --add-flags "-Xss2048k -Djava.library.path=ortools-lib" \ - --add-flags jugglinglab.JugglingLab + "''${gappsWrapperArgs[@]}" \ + --add-flags "-Xss2048k -Djava.library.path=$out/lib/ortools-lib" \ + --add-flags "-jar $out/share/jugglinglab/JugglingLab.jar" ''; meta = with lib; { - description = "A program to visualize different juggling pattens"; - homepage = "https://jugglinglab.org/"; - license = licenses.gpl2; - maintainers = with maintainers; [ wnklmnn ]; - platforms = platforms.all; - mainProgram = "jugglinglab"; + description = "A program to visualize different juggling pattens"; + homepage = "https://jugglinglab.org/"; + license = licenses.gpl2Only; + mainProgram = "jugglinglab"; + maintainers = with maintainers; [ wnklmnn tomasajt ]; + platforms = platforms.all; }; } diff --git a/pkgs/tools/misc/jugglinglab/fix-default-maven-plugin-versions.patch b/pkgs/tools/misc/jugglinglab/fix-default-maven-plugin-versions.patch new file mode 100644 index 0000000000000..a2f74b19b61fd --- /dev/null +++ b/pkgs/tools/misc/jugglinglab/fix-default-maven-plugin-versions.patch @@ -0,0 +1,70 @@ +diff --git a/pom.xml b/pom.xml +index 93fd6be..5f929c3 100644 +--- a/pom.xml ++++ b/pom.xml +@@ -42,6 +43,65 @@ + + <build> + <plugins> ++ <plugin> ++ <groupId>org.apache.maven.plugins</groupId> ++ <artifactId>maven-enforcer-plugin</artifactId> ++ <version>3.4.1</version> ++ <executions> ++ <execution> ++ <id>require-all-plugin-versions-to-be-set</id> ++ <phase>validate</phase> ++ <goals> ++ <goal>enforce</goal> ++ </goals> ++ <configuration> ++ <rules> ++ <requirePluginVersions /> ++ </rules> ++ </configuration> ++ </execution> ++ </executions> ++ </plugin> ++ <plugin> ++ <groupId>org.apache.maven.plugins</groupId> ++ <artifactId>maven-compiler-plugin</artifactId> ++ <version>3.12.1</version> ++ </plugin> ++ <plugin> ++ <groupId>org.apache.maven.plugins</groupId> ++ <artifactId>maven-surefire-plugin</artifactId> ++ <version>3.2.3</version> ++ </plugin> ++ <plugin> ++ <groupId>org.apache.maven.plugins</groupId> ++ <artifactId>maven-jar-plugin</artifactId> ++ <version>3.3.0</version> ++ </plugin> ++ <plugin> ++ <groupId>org.apache.maven.plugins</groupId> ++ <artifactId>maven-clean-plugin</artifactId> ++ <version>3.3.2</version> ++ </plugin> ++ <plugin> ++ <groupId>org.apache.maven.plugins</groupId> ++ <artifactId>maven-install-plugin</artifactId> ++ <version>3.1.1</version> ++ </plugin> ++ <plugin> ++ <groupId>org.apache.maven.plugins</groupId> ++ <artifactId>maven-site-plugin</artifactId> ++ <version>4.0.0-M13</version> ++ </plugin> ++ <plugin> ++ <groupId>org.apache.maven.plugins</groupId> ++ <artifactId>maven-resources-plugin</artifactId> ++ <version>3.3.1</version> ++ </plugin> ++ <plugin> ++ <groupId>org.apache.maven.plugins</groupId> ++ <artifactId>maven-deploy-plugin</artifactId> ++ <version>3.1.1</version> ++ </plugin> + + <!-- remove existing `bin/JugglingLab.jar` --> + <!-- otherwise on overwrite Maven creates `bin/original-JugglingLab.jar` --> diff --git a/pkgs/tools/misc/plocate/default.nix b/pkgs/tools/misc/plocate/default.nix index 8cc8b9b6b801d..5081ec12b0ba8 100644 --- a/pkgs/tools/misc/plocate/default.nix +++ b/pkgs/tools/misc/plocate/default.nix @@ -10,12 +10,12 @@ }: stdenv.mkDerivation rec { pname = "plocate"; - version = "1.1.20"; + version = "1.1.21"; src = fetchgit { url = "https://git.sesse.net/plocate"; rev = version; - sha256 = "sha256-Nc39wPVW+GpmT8X8q/VbrPhPxO/PgFBPTOCWAkkUfDY="; + sha256 = "sha256-ucCRm1w3ON3Qh7qt1Pf5/3kvXVGP+dJwjSuwYGcDMcs="; }; postPatch = '' diff --git a/pkgs/tools/networking/goflow2/default.nix b/pkgs/tools/networking/goflow2/default.nix index de90345911c06..b80172fdee99c 100644 --- a/pkgs/tools/networking/goflow2/default.nix +++ b/pkgs/tools/networking/goflow2/default.nix @@ -5,13 +5,13 @@ buildGoModule rec { pname = "goflow2"; - version = "2.1.0"; + version = "2.1.1"; src = fetchFromGitHub { owner = "netsampler"; repo = pname; rev = "v${version}"; - hash = "sha256-c+1Y3OTM2FR9o7zWYGW3uH1LQ2U1occf1++Rnf/atVQ="; + hash = "sha256-RgHCUuP2EE38X6iMaYD2a8f/C2fBcBEHM5ErlKBkMqI="; }; ldflags = [ diff --git a/pkgs/tools/networking/redli/default.nix b/pkgs/tools/networking/redli/default.nix index 7c757c9ef7707..8045be91a75d7 100644 --- a/pkgs/tools/networking/redli/default.nix +++ b/pkgs/tools/networking/redli/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "redli"; - version = "0.9.0"; + version = "0.11.0"; src = fetchFromGitHub { owner = "IBM-Cloud"; repo = pname; rev = "v${version}"; - hash = "sha256-AeIGlRsUWK6q0GJJFmvJwpuGy312VPsMhkxMqDDzay4="; + hash = "sha256-Tux4GsYG3DlJoV10Ahb+X+8mpkchLchbh+PCgRD0kUA="; }; vendorHash = null; diff --git a/pkgs/tools/networking/requestly/default.nix b/pkgs/tools/networking/requestly/default.nix index e833b0a7e7f14..4655da5a34c0e 100644 --- a/pkgs/tools/networking/requestly/default.nix +++ b/pkgs/tools/networking/requestly/default.nix @@ -5,11 +5,11 @@ let pname = "requestly"; - version = "1.5.15"; + version = "1.5.16"; src = fetchurl { url = "https://github.com/requestly/requestly-desktop-app/releases/download/v${version}/Requestly-${version}.AppImage"; - hash = "sha256-GTc4VikXsyiEfgN6oY/YQPBqNLia4cFz1aYS65+SboI="; + hash = "sha256-c+Ti7j+3r0hSw2uvaDkavykUQQdvg0OgD1XdDTQbJuA="; }; appimageContents = appimageTools.extractType2 { inherit pname version src; }; diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index 4652ddb76a5b4..411030ee57331 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -259,7 +259,7 @@ in lib.makeExtensible (self: ({ else nix; - stable = addFallbackPathsCheck self.nix_2_18; + stable = addFallbackPathsCheck self.nix_2_19; unstable = self.nix_2_19; } // lib.optionalAttrs config.allowAliases { diff --git a/pkgs/tools/security/cnspec/default.nix b/pkgs/tools/security/cnspec/default.nix index d4d0c91f87705..2eee5568fea47 100644 --- a/pkgs/tools/security/cnspec/default.nix +++ b/pkgs/tools/security/cnspec/default.nix @@ -5,17 +5,17 @@ buildGoModule rec { pname = "cnspec"; - version = "9.13.0"; + version = "9.14.0"; src = fetchFromGitHub { owner = "mondoohq"; repo = "cnspec"; rev = "refs/tags/v${version}"; - hash = "sha256-hGiMdL+SXJ5psrmfM5pvKD01yaD1q3tOOhfGzbcjvuE="; + hash = "sha256-9MIIxWfETi2DX1DYPALL+JoC4r3yKJpeSFIx+hrGKiM="; }; proxyVendor = true; - vendorHash = "sha256-pRFRPUL/Ck4m7JH5ykei3PSXbCFKRii8YyjBLQ5kb9M="; + vendorHash = "sha256-Yii2sDfYqIzQAUaMotT87Wa5g3skxWllq6yGlkPDbLg="; subPackages = [ "apps/cnspec" diff --git a/pkgs/tools/security/cryptomator/default.nix b/pkgs/tools/security/cryptomator/default.nix index c80be56319f14..bf6f5c3c05879 100644 --- a/pkgs/tools/security/cryptomator/default.nix +++ b/pkgs/tools/security/cryptomator/default.nix @@ -14,17 +14,17 @@ in assert stdenv.isLinux; # better than `called with unexpected argument 'enableJavaFX'` mavenJdk.buildMavenPackage rec { pname = "cryptomator"; - version = "1.11.0"; + version = "1.11.1"; src = fetchFromGitHub { owner = "cryptomator"; repo = "cryptomator"; rev = version; - hash = "sha256-NMNlDEUpwKUywzhXhxlNX7NiE+6wOov2Yt8nTfbKTNI="; + hash = "sha256-Y+oG2NF4Vsklp1W22Xv+XrkY6vwn23FkzAXG/5828Og="; }; mvnParameters = "-Dmaven.test.skip=true -Plinux"; - mvnHash = "sha256-cmwU9k7TRRJ07bT1EmY3pIBkvvqmFyE7WJeVL7VFDyc="; + mvnHash = "sha256-cXmnJHgKW6SGnhHFuFJP/DKNmFacfHbC3nQ2uVdIvUE="; preBuild = '' VERSION=${version} diff --git a/pkgs/tools/security/ggshield/default.nix b/pkgs/tools/security/ggshield/default.nix index 06f8796db8643..50b3439732d37 100644 --- a/pkgs/tools/security/ggshield/default.nix +++ b/pkgs/tools/security/ggshield/default.nix @@ -6,14 +6,14 @@ python3.pkgs.buildPythonApplication rec { pname = "ggshield"; - version = "1.22.0"; - format = "pyproject"; + version = "1.23.0"; + pyproject = true; src = fetchFromGitHub { owner = "GitGuardian"; repo = "ggshield"; rev = "refs/tags/v${version}"; - hash = "sha256-AxFztqD43KqX0r8tZz4ltjUh2x42kdPqi+b/OunpPF4="; + hash = "sha256-c2EXgUs+6GA5zHHF7Cx21LIsZ+jbmQFFUwLft2q5M30="; }; pythonRelaxDeps = true; diff --git a/pkgs/tools/security/keybase/default.nix b/pkgs/tools/security/keybase/default.nix index d29f17679c85f..3d990468109b8 100644 --- a/pkgs/tools/security/keybase/default.nix +++ b/pkgs/tools/security/keybase/default.nix @@ -36,7 +36,7 @@ buildGoModule rec { homepage = "https://www.keybase.io/"; description = "The Keybase official command-line utility and service"; platforms = platforms.linux ++ platforms.darwin; - maintainers = with maintainers; [ avaq carlsverre np rvolosatovs Br1ght0ne shofius ]; + maintainers = with maintainers; [ avaq np rvolosatovs Br1ght0ne shofius ]; license = licenses.bsd3; }; } diff --git a/pkgs/tools/system/htop/default.nix b/pkgs/tools/system/htop/default.nix index 50c6ea461f365..20274695f8ac2 100644 --- a/pkgs/tools/system/htop/default.nix +++ b/pkgs/tools/system/htop/default.nix @@ -11,13 +11,13 @@ assert systemdSupport -> stdenv.isLinux; stdenv.mkDerivation rec { pname = "htop"; - version = "3.2.2"; + version = "3.3.0"; src = fetchFromGitHub { owner = "htop-dev"; repo = pname; rev = version; - sha256 = "sha256-OrlNE1A71q4XAauYNfumV1Ev1wBpFIBxPiw7aF++yjM="; + hash = "sha256-qDhQkzY2zj2yxbgFUXwE0MGEgAFOsAhnapUuetO9WTw="; }; nativeBuildInputs = [ autoreconfHook ] diff --git a/pkgs/tools/system/smartmontools/default.nix b/pkgs/tools/system/smartmontools/default.nix index 02c4340aded2e..55ec05d2a9a77 100644 --- a/pkgs/tools/system/smartmontools/default.nix +++ b/pkgs/tools/system/smartmontools/default.nix @@ -38,7 +38,11 @@ stdenv.mkDerivation rec { cp -v ${driverdb} drivedb.h ''; - configureFlags = [ "--with-scriptpath=${scriptPath}" ]; + configureFlags = [ + "--with-scriptpath=${scriptPath}" + # does not work on NixOS + "--without-update-smart-drivedb" + ]; nativeBuildInputs = [ autoreconfHook ]; buildInputs = lib.optionals stdenv.isDarwin [ IOKit ApplicationServices ]; diff --git a/pkgs/tools/text/sift/default.nix b/pkgs/tools/text/sift/default.nix index 1e79570622c0b..25dd61a3e4a06 100644 --- a/pkgs/tools/text/sift/default.nix +++ b/pkgs/tools/text/sift/default.nix @@ -32,7 +32,7 @@ buildGoModule rec { meta = with lib; { description = "A fast and powerful alternative to grep"; homepage = "https://sift-tool.org"; - maintainers = with maintainers; [ carlsverre viraptor ]; + maintainers = with maintainers; [ viraptor ]; license = licenses.gpl3; }; } diff --git a/pkgs/tools/virtualization/kubevirt/default.nix b/pkgs/tools/virtualization/kubevirt/default.nix index 67027dc4bd284..519ffa83e6608 100644 --- a/pkgs/tools/virtualization/kubevirt/default.nix +++ b/pkgs/tools/virtualization/kubevirt/default.nix @@ -8,13 +8,13 @@ buildGoModule rec { pname = "kubevirt"; - version = "1.1.0"; + version = "1.1.1"; src = fetchFromGitHub { owner = "kubevirt"; repo = "kubevirt"; rev = "v${version}"; - sha256 = "sha256-dW2rHW/37Jpk3vuu3O87nynK8Mp0IAqpkRvBDxT/++I="; + hash = "sha256-4r85RDfndLUjpAmipe3oLFcGzD4GRfPgf7wku2unoes="; }; vendorHash = null; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5060b1b2831a9..fbde424d67a34 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3022,7 +3022,7 @@ with pkgs; ### APPLICATIONS/TERMINAL-EMULATORS alacritty = callPackage ../applications/terminal-emulators/alacritty { - inherit (darwin.apple_sdk.frameworks) AppKit CoreGraphics CoreServices CoreText Foundation OpenGL; + inherit (darwin.apple_sdk_11_0.frameworks) AppKit CoreGraphics CoreServices CoreText Foundation OpenGL; }; blackbox-terminal = callPackage ../applications/terminal-emulators/blackbox-terminal { }; diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix index 92e527c735a8b..dc71b01f3c268 100644 --- a/pkgs/top-level/linux-kernels.nix +++ b/pkgs/top-level/linux-kernels.nix @@ -298,15 +298,7 @@ in { akvcam = callPackage ../os-specific/linux/akvcam { }; - amdgpu-pro = callPackage ../os-specific/linux/amdgpu-pro { - libffi = pkgs.libffi.overrideAttrs (orig: rec { - version = "3.3"; - src = fetchurl { - url = "https://github.com/libffi/libffi/releases/download/v${version}/${orig.pname}-${version}.tar.gz"; - sha256 = "0mi0cpf8aa40ljjmzxb7im6dbj45bb0kllcd09xgmp834y9agyvj"; - }; - }); - }; + amdgpu-pro = callPackage ../os-specific/linux/amdgpu-pro { }; apfs = callPackage ../os-specific/linux/apfs { }; diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index ee00fe5cc494f..35535adc54f8c 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -1110,7 +1110,7 @@ let mirage-crypto-pk = callPackage ../development/ocaml-modules/mirage-crypto/pk.nix { }; - mirage-crypto-rng = callPackage ../development/ocaml-modules/mirage-crypto/rng.nix { mtime = mtime_1; }; + mirage-crypto-rng = callPackage ../development/ocaml-modules/mirage-crypto/rng.nix { }; mirage-crypto-rng-async = callPackage ../development/ocaml-modules/mirage-crypto/rng-async.nix { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 0216403903417..35c07c5c5a509 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1482,6 +1482,8 @@ self: super: with self; { bip32 = callPackage ../development/python-modules/bip32 { }; + birch = callPackage ../development/python-modules/birch { }; + bitarray = callPackage ../development/python-modules/bitarray { }; bitbox02 = callPackage ../development/python-modules/bitbox02 { }; @@ -9360,6 +9362,8 @@ self: super: with self; { pyatag = callPackage ../development/python-modules/pyatag { }; + pyatem = callPackage ../development/python-modules/pyatem { }; + pyatome = callPackage ../development/python-modules/pyatome { }; pycketcasts = callPackage ../development/python-modules/pycketcasts { }; @@ -13792,6 +13796,8 @@ self: super: with self; { strawberry-graphql = callPackage ../development/python-modules/strawberry-graphql { }; + strct = callPackage ../development/python-modules/strct { }; + streamdeck = callPackage ../development/python-modules/streamdeck { }; streaming-form-data = callPackage ../development/python-modules/streaming-form-data { }; |