diff --git a/.github/labeler.yml b/.github/labeler.yml index abec7c37288c..0ce739384228 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -261,7 +261,8 @@ - any: - changed-files: - any-glob-to-any-file: - - nixos/modules/services/cluster/k3s/**/* + - nixos/modules/services/cluster/rancher/default.nix + - nixos/modules/services/cluster/rancher/k3s.nix - nixos/tests/k3s/**/* - pkgs/applications/networking/cluster/k3s/**/* diff --git a/nixos/doc/manual/release-notes/rl-2511.section.md b/nixos/doc/manual/release-notes/rl-2511.section.md index 87bb02820f9f..84e1fcfaa6db 100644 --- a/nixos/doc/manual/release-notes/rl-2511.section.md +++ b/nixos/doc/manual/release-notes/rl-2511.section.md @@ -213,6 +213,8 @@ - `boot.enableContainers` is only turned on when a declarative NixOS container is defined in `containers`. If you use the `nixos-container` tool for imperative container management, set `boot.enableContainers = true;` explicitly. +- `etcd` package was upgraded to 3.6, see [migration notes](https://etcd.io/docs/v3.6/upgrades/upgrade_3_6/) for incompatibilities and upgrade procedure. + - `services.parsoid` and the `nodePackages.parsoid` package have been removed, as the JavaScript-based version this module uses is not compatible with modern MediaWiki versions. - `virtualisation.lxd` has been removed due to lack of Nixpkgs maintenance. Users can migrate to `virtualisation.incus`, a fork of LXD, as a replacement. See [Incus migration documentation](https://linuxcontainers.org/incus/docs/main/howto/server_migrate_lxd/) for migration information. @@ -330,6 +332,8 @@ and [release notes for v18](https://goteleport.com/docs/changelog/#1800-070325). - `firezone` has changed how the `Everyone` group behaves. Service Accounts are no longer considered part of `Everyone`. +- The `file-roller` module has been removed due to not being required for function, file roller itself has also been removed from the `services.desktopManager.gnome` module as it's not part of GNOME core applications. + - The `boot.readOnlyNixStore` has been removed. Control over bind mount options on `/nix/store` is now offered by the `boot.nixStoreMountOpts` option. - Direct use of `pkgs.formats.systemd` has been deprecated, and should now be instantiated with `pkgs.formats.systemd { }` similarly to other items in `pkgs.formats`. @@ -474,6 +478,9 @@ and [release notes for v18](https://goteleport.com/docs/changelog/#1800-070325). - `services.matter-server` now hosts a debug dashboard on the configured port. Open the port on the firewall with `services.matter-server.openFirewall`. +- `services.k3s` now shares most of its code with `services.rke2`. The merge resulted in both modules providing more options, with `services.rke2` receiving the most improvements. + Existing configurations for either module should not be affected. + - The new option [networking.ipips](#opt-networking.ipips) has been added to create IP within IP kind of tunnels (including 4in6, ip6ip6 and ipip). With the existing [networking.sits](#opt-networking.sits) option (6in4), it is now possible to create all combinations of IPv4 and IPv6 encapsulation. diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index de5978a41e78..1ee073ab3bc0 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -209,7 +209,6 @@ ./programs/extra-container.nix ./programs/fcast-receiver.nix ./programs/feedbackd.nix - ./programs/file-roller.nix ./programs/firefox.nix ./programs/firejail.nix ./programs/fish.nix @@ -475,7 +474,6 @@ ./services/cluster/corosync/default.nix ./services/cluster/druid/default.nix ./services/cluster/hadoop/default.nix - ./services/cluster/k3s/default.nix ./services/cluster/kubernetes/addon-manager.nix ./services/cluster/kubernetes/addons/dns.nix ./services/cluster/kubernetes/apiserver.nix @@ -488,7 +486,7 @@ ./services/cluster/kubernetes/scheduler.nix ./services/cluster/pacemaker/default.nix ./services/cluster/patroni/default.nix - ./services/cluster/rke2/default.nix + ./services/cluster/rancher/default.nix ./services/cluster/spark/default.nix ./services/cluster/temporal/default.nix ./services/computing/boinc/client.nix diff --git a/nixos/modules/programs/file-roller.nix b/nixos/modules/programs/file-roller.nix deleted file mode 100644 index d37825558e4a..000000000000 --- a/nixos/modules/programs/file-roller.nix +++ /dev/null @@ -1,40 +0,0 @@ -# File Roller. - -{ - config, - pkgs, - lib, - ... -}: - -let - cfg = config.programs.file-roller; - -in -{ - - ###### interface - - options = { - - programs.file-roller = { - - enable = lib.mkEnableOption "File Roller, an archive manager for GNOME"; - - package = lib.mkPackageOption pkgs "file-roller" { }; - - }; - - }; - - ###### implementation - - config = lib.mkIf cfg.enable { - - environment.systemPackages = [ cfg.package ]; - - services.dbus.packages = [ cfg.package ]; - - }; - -} diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index d7759c232fea..16e1410f72e8 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -75,6 +75,10 @@ in "programs" "goldwarden" ] "'goldwarden' has been removed from nixpkgs.") + (mkRemovedOptionModule [ + "programs" + "file-roller" + ] "Not required for the package to function anymore, use `pkgs.file-roller` instead.") (mkRemovedOptionModule [ "programs" "pantheon-tweaks" ] '' pantheon-tweaks is no longer a switchboard plugin but an independent app, adding the package to environment.systemPackages is sufficient. diff --git a/nixos/modules/services/cluster/k3s/default.nix b/nixos/modules/services/cluster/k3s/default.nix deleted file mode 100644 index c9a69af2fa16..000000000000 --- a/nixos/modules/services/cluster/k3s/default.nix +++ /dev/null @@ -1,913 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -let - cfg = config.services.k3s; - removeOption = - config: instruction: - lib.mkRemovedOptionModule ( - [ - "services" - "k3s" - ] - ++ config - ) instruction; - - manifestDir = "/var/lib/rancher/k3s/server/manifests"; - chartDir = "/var/lib/rancher/k3s/server/static/charts"; - imageDir = "/var/lib/rancher/k3s/agent/images"; - containerdConfigTemplateFile = "/var/lib/rancher/k3s/agent/etc/containerd/config.toml.tmpl"; - yamlFormat = pkgs.formats.yaml { }; - yamlDocSeparator = builtins.toFile "yaml-doc-separator" "\n---\n"; - # Manifests need a valid YAML suffix to be respected by k3s - mkManifestTarget = - name: if (lib.hasSuffix ".yaml" name || lib.hasSuffix ".yml" name) then name else name + ".yaml"; - # Produces a list containing all duplicate manifest names - duplicateManifests = lib.intersectLists (builtins.attrNames cfg.autoDeployCharts) ( - builtins.attrNames cfg.manifests - ); - # Produces a list containing all duplicate chart names - duplicateCharts = lib.intersectLists (builtins.attrNames cfg.autoDeployCharts) ( - builtins.attrNames cfg.charts - ); - - # Converts YAML -> JSON -> Nix - fromYaml = - path: - builtins.fromJSON ( - builtins.readFile ( - pkgs.runCommand "${path}-converted.json" { nativeBuildInputs = [ pkgs.yq-go ]; } '' - yq --no-colors --output-format json ${path} > $out - '' - ) - ); - - # Replace prefixes and characters that are problematic in file names - cleanHelmChartName = - name: - let - woPrefix = lib.removePrefix "https://" (lib.removePrefix "oci://" name); - in - lib.replaceStrings - [ - "/" - ":" - ] - [ - "-" - "-" - ] - woPrefix; - - # Fetch a Helm chart from a public registry. This only supports a basic Helm pull. - fetchHelm = - { - name, - repo, - version, - hash ? lib.fakeHash, - }: - let - isOci = lib.hasPrefix "oci://" repo; - pullCmd = if isOci then repo else "--repo ${repo} ${name}"; - name' = if isOci then "${repo}-${version}" else "${repo}-${name}-${version}"; - in - pkgs.runCommand (cleanHelmChartName "${name'}.tgz") - { - inherit (lib.fetchers.normalizeHash { } { inherit hash; }) outputHash outputHashAlgo; - impureEnvVars = lib.fetchers.proxyImpureEnvVars; - nativeBuildInputs = with pkgs; [ - kubernetes-helm - cacert - # Helm requires HOME to refer to a writable dir - writableTmpDirAsHomeHook - ]; - } - '' - helm pull ${pullCmd} --version ${version} - mv ./*.tgz $out - ''; - - # Returns the path to a YAML manifest file - mkExtraDeployManifest = - x: - # x is a derivation that provides a YAML file - if lib.isDerivation x then - x.outPath - # x is an attribute set that needs to be converted to a YAML file - else if builtins.isAttrs x then - (yamlFormat.generate "extra-deploy-chart-manifest" x) - # assume x is a path to a YAML file - else - x; - - # Generate a HelmChart custom resource. - mkHelmChartCR = - name: value: - let - chartValues = if (lib.isPath value.values) then fromYaml value.values else value.values; - # use JSON for values as it's a subset of YAML and understood by the k3s Helm controller - valuesContent = builtins.toJSON chartValues; - in - # merge with extraFieldDefinitions to allow setting advanced values and overwrite generated - # values - lib.recursiveUpdate { - apiVersion = "helm.cattle.io/v1"; - kind = "HelmChart"; - metadata = { - inherit name; - namespace = "kube-system"; - }; - spec = { - inherit valuesContent; - inherit (value) targetNamespace createNamespace; - chart = "https://%{KUBERNETES_API}%/static/charts/${name}.tgz"; - }; - } value.extraFieldDefinitions; - - # Generate a HelmChart custom resource together with extraDeploy manifests. This - # generates possibly a multi document YAML file that the auto deploy mechanism of k3s - # deploys. - mkAutoDeployChartManifest = name: value: { - # target is the final name of the link created for the manifest file - target = mkManifestTarget name; - inherit (value) enable package; - # source is a store path containing the complete manifest file - source = pkgs.concatText "auto-deploy-chart-${name}.yaml" ( - [ - (yamlFormat.generate "helm-chart-manifest-${name}.yaml" (mkHelmChartCR name value)) - ] - # alternate the YAML doc separator (---) and extraDeploy manifests to create - # multi document YAMLs - ++ (lib.concatMap (x: [ - yamlDocSeparator - (mkExtraDeployManifest x) - ]) value.extraDeploy) - ); - }; - - autoDeployChartsModule = lib.types.submodule ( - { config, ... }: - { - options = { - enable = lib.mkOption { - type = lib.types.bool; - default = true; - example = false; - description = '' - Whether to enable the installation of this Helm chart. Note that setting - this option to `false` will not uninstall the chart from the cluster, if - it was previously installed. Please use the the `--disable` flag or `.skip` - files to delete/disable Helm charts, as mentioned in the - [docs](https://docs.k3s.io/installation/packaged-components#disabling-manifests). - ''; - }; - - repo = lib.mkOption { - type = lib.types.nonEmptyStr; - example = "https://kubernetes.github.io/ingress-nginx"; - description = '' - The repo of the Helm chart. Only has an effect if `package` is not set. - The Helm chart is fetched during build time and placed as a `.tgz` archive on the - filesystem. - ''; - }; - - name = lib.mkOption { - type = lib.types.nonEmptyStr; - example = "ingress-nginx"; - description = '' - The name of the Helm chart. Only has an effect if `package` is not set. - The Helm chart is fetched during build time and placed as a `.tgz` archive on the - filesystem. - ''; - }; - - version = lib.mkOption { - type = lib.types.nonEmptyStr; - example = "4.7.0"; - description = '' - The version of the Helm chart. Only has an effect if `package` is not set. - The Helm chart is fetched during build time and placed as a `.tgz` archive on the - filesystem. - ''; - }; - - hash = lib.mkOption { - type = lib.types.str; - example = "sha256-ej+vpPNdiOoXsaj1jyRpWLisJgWo8EqX+Z5VbpSjsPA="; - default = ""; - description = '' - The hash of the packaged Helm chart. Only has an effect if `package` is not set. - The Helm chart is fetched during build time and placed as a `.tgz` archive on the - filesystem. - ''; - }; - - package = lib.mkOption { - type = with lib.types; either path package; - example = lib.literalExpression "../my-helm-chart.tgz"; - description = '' - The packaged Helm chart. Overwrites the options `repo`, `name`, `version` - and `hash` in case of conflicts. - ''; - }; - - targetNamespace = lib.mkOption { - type = lib.types.nonEmptyStr; - default = "default"; - example = "kube-system"; - description = "The namespace in which the Helm chart gets installed."; - }; - - createNamespace = lib.mkOption { - type = lib.types.bool; - default = false; - example = true; - description = "Whether to create the target namespace if not present."; - }; - - values = lib.mkOption { - type = with lib.types; either path attrs; - default = { }; - example = { - replicaCount = 3; - hostName = "my-host"; - server = { - name = "nginx"; - port = 80; - }; - }; - description = '' - Override default chart values via Nix expressions. This is equivalent to setting - values in a `values.yaml` file. - - WARNING: The values (including secrets!) specified here are exposed unencrypted - in the world-readable nix store. - ''; - }; - - extraDeploy = lib.mkOption { - type = with lib.types; listOf (either path attrs); - default = [ ]; - example = lib.literalExpression '' - [ - ../manifests/my-extra-deployment.yaml - { - apiVersion = "v1"; - kind = "Service"; - metadata = { - name = "app-service"; - }; - spec = { - selector = { - "app.kubernetes.io/name" = "MyApp"; - }; - ports = [ - { - name = "name-of-service-port"; - protocol = "TCP"; - port = 80; - targetPort = "http-web-svc"; - } - ]; - }; - } - ]; - ''; - description = "List of extra Kubernetes manifests to deploy with this Helm chart."; - }; - - extraFieldDefinitions = lib.mkOption { - inherit (yamlFormat) type; - default = { }; - example = { - spec = { - bootstrap = true; - helmVersion = "v2"; - backOffLimit = 3; - jobImage = "custom-helm-controller:v0.0.1"; - }; - }; - description = '' - Extra HelmChart field definitions that are merged with the rest of the HelmChart - custom resource. This can be used to set advanced fields or to overwrite - generated fields. See - for possible fields. - ''; - }; - }; - - config.package = lib.mkDefault (fetchHelm { - inherit (config) - repo - name - version - hash - ; - }); - } - ); - - manifestModule = lib.types.submodule ( - { - name, - config, - options, - ... - }: - { - options = { - enable = lib.mkOption { - type = lib.types.bool; - default = true; - description = "Whether this manifest file should be generated."; - }; - - target = lib.mkOption { - type = lib.types.nonEmptyStr; - example = "manifest.yaml"; - description = '' - Name of the symlink (relative to {file}`${manifestDir}`). - Defaults to the attribute name. - ''; - }; - - content = lib.mkOption { - type = with lib.types; nullOr (either attrs (listOf attrs)); - default = null; - description = '' - Content of the manifest file. A single attribute set will - generate a single document YAML file. A list of attribute sets - will generate multiple documents separated by `---` in a single - YAML file. - ''; - }; - - source = lib.mkOption { - type = lib.types.path; - example = lib.literalExpression "./manifests/app.yaml"; - description = '' - Path of the source `.yaml` file. - ''; - }; - }; - - config = { - target = lib.mkDefault (mkManifestTarget name); - source = lib.mkIf (config.content != null) ( - let - name' = "k3s-manifest-" + builtins.baseNameOf name; - docName = "k3s-manifest-doc-" + builtins.baseNameOf name; - mkSource = - value: - if builtins.isList value then - pkgs.concatText name' ( - lib.concatMap (x: [ - yamlDocSeparator - (yamlFormat.generate docName x) - ]) value - ) - else - yamlFormat.generate name' value; - in - lib.mkDerivedConfig options.content mkSource - ); - }; - } - ); -in -{ - imports = [ (removeOption [ "docker" ] "k3s docker option is no longer supported.") ]; - - # interface - options.services.k3s = { - enable = lib.mkEnableOption "k3s"; - - package = lib.mkPackageOption pkgs "k3s" { }; - - role = lib.mkOption { - description = '' - Whether k3s should run as a server or agent. - - If it's a server: - - - By default it also runs workloads as an agent. - - Starts by default as a standalone server using an embedded sqlite datastore. - - Configure `clusterInit = true` to switch over to embedded etcd datastore and enable HA mode. - - Configure `serverAddr` to join an already-initialized HA cluster. - - If it's an agent: - - - `serverAddr` is required. - ''; - default = "server"; - type = lib.types.enum [ - "server" - "agent" - ]; - }; - - serverAddr = lib.mkOption { - type = lib.types.str; - description = '' - The k3s server to connect to. - - Servers and agents need to communicate each other. Read - [the networking docs](https://rancher.com/docs/k3s/latest/en/installation/installation-requirements/#networking) - to know how to configure the firewall. - ''; - example = "https://10.0.0.10:6443"; - default = ""; - }; - - clusterInit = lib.mkOption { - type = lib.types.bool; - default = false; - description = '' - Initialize HA cluster using an embedded etcd datastore. - - If this option is `false` and `role` is `server` - - On a server that was using the default embedded sqlite backend, - enabling this option will migrate to an embedded etcd DB. - - If an HA cluster using the embedded etcd datastore was already initialized, - this option has no effect. - - This option only makes sense in a server that is not connecting to another server. - - If you are configuring an HA cluster with an embedded etcd, - the 1st server must have `clusterInit = true` - and other servers must connect to it using `serverAddr`. - ''; - }; - - token = lib.mkOption { - type = lib.types.str; - description = '' - The k3s token to use when connecting to a server. - - WARNING: This option will expose store your token unencrypted world-readable in the nix store. - If this is undesired use the tokenFile option instead. - ''; - default = ""; - }; - - tokenFile = lib.mkOption { - type = lib.types.nullOr lib.types.path; - description = "File path containing k3s token to use when connecting to the server."; - default = null; - }; - - extraFlags = lib.mkOption { - description = "Extra flags to pass to the k3s command."; - type = with lib.types; either str (listOf str); - default = [ ]; - example = [ - "--disable traefik" - "--cluster-cidr 10.24.0.0/16" - ]; - }; - - disableAgent = lib.mkOption { - type = lib.types.bool; - default = false; - description = "Only run the server. This option only makes sense for a server."; - }; - - environmentFile = lib.mkOption { - type = lib.types.nullOr lib.types.path; - description = '' - File path containing environment variables for configuring the k3s service in the format of an EnvironmentFile. See {manpage}`systemd.exec(5)`. - ''; - default = null; - }; - - configPath = lib.mkOption { - type = lib.types.nullOr lib.types.path; - default = null; - description = "File path containing the k3s YAML config. This is useful when the config is generated (for example on boot)."; - }; - - manifests = lib.mkOption { - type = lib.types.attrsOf manifestModule; - default = { }; - example = lib.literalExpression '' - { - deployment.source = ../manifests/deployment.yaml; - my-service = { - enable = false; - target = "app-service.yaml"; - content = { - apiVersion = "v1"; - kind = "Service"; - metadata = { - name = "app-service"; - }; - spec = { - selector = { - "app.kubernetes.io/name" = "MyApp"; - }; - ports = [ - { - name = "name-of-service-port"; - protocol = "TCP"; - port = 80; - targetPort = "http-web-svc"; - } - ]; - }; - }; - }; - - nginx.content = [ - { - apiVersion = "v1"; - kind = "Pod"; - metadata = { - name = "nginx"; - labels = { - "app.kubernetes.io/name" = "MyApp"; - }; - }; - spec = { - containers = [ - { - name = "nginx"; - image = "nginx:1.14.2"; - ports = [ - { - containerPort = 80; - name = "http-web-svc"; - } - ]; - } - ]; - }; - } - { - apiVersion = "v1"; - kind = "Service"; - metadata = { - name = "nginx-service"; - }; - spec = { - selector = { - "app.kubernetes.io/name" = "MyApp"; - }; - ports = [ - { - name = "name-of-service-port"; - protocol = "TCP"; - port = 80; - targetPort = "http-web-svc"; - } - ]; - }; - } - ]; - }; - ''; - description = '' - Auto-deploying manifests that are linked to {file}`${manifestDir}` before k3s starts. - Note that deleting manifest files will not remove or otherwise modify the resources - it created. Please use the the `--disable` flag or `.skip` files to delete/disable AddOns, - as mentioned in the [docs](https://docs.k3s.io/installation/packaged-components#disabling-manifests). - This option only makes sense on server nodes (`role = server`). - Read the [auto-deploying manifests docs](https://docs.k3s.io/installation/packaged-components#auto-deploying-manifests-addons) - for further information. - ''; - }; - - charts = lib.mkOption { - type = with lib.types; attrsOf (either path package); - default = { }; - example = lib.literalExpression '' - nginx = ../charts/my-nginx-chart.tgz; - redis = ../charts/my-redis-chart.tgz; - ''; - description = '' - Packaged Helm charts that are linked to {file}`${chartDir}` before k3s starts. - The attribute name will be used as the link target (relative to {file}`${chartDir}`). - The specified charts will only be placed on the file system and made available to the - Kubernetes APIServer from within the cluster. See the [](#opt-services.k3s.autoDeployCharts) - option and the [k3s Helm controller docs](https://docs.k3s.io/helm#using-the-helm-controller) - to deploy Helm charts. This option only makes sense on server nodes (`role = server`). - ''; - }; - - containerdConfigTemplate = lib.mkOption { - type = lib.types.nullOr lib.types.str; - default = null; - example = lib.literalExpression '' - # Base K3s config - {{ template "base" . }} - - # Add a custom runtime - [plugins."io.containerd.grpc.v1.cri".containerd.runtimes."custom"] - runtime_type = "io.containerd.runc.v2" - [plugins."io.containerd.grpc.v1.cri".containerd.runtimes."custom".options] - BinaryName = "/path/to/custom-container-runtime" - ''; - description = '' - Config template for containerd, to be placed at - `/var/lib/rancher/k3s/agent/etc/containerd/config.toml.tmpl`. - See the K3s docs on [configuring containerd](https://docs.k3s.io/advanced#configuring-containerd). - ''; - }; - - images = lib.mkOption { - type = with lib.types; listOf package; - default = [ ]; - example = lib.literalExpression '' - [ - (pkgs.dockerTools.pullImage { - imageName = "docker.io/bitnami/keycloak"; - imageDigest = "sha256:714dfadc66a8e3adea6609bda350345bd3711657b7ef3cf2e8015b526bac2d6b"; - hash = "sha256-IM2BLZ0EdKIZcRWOtuFY9TogZJXCpKtPZnMnPsGlq0Y="; - finalImageTag = "21.1.2-debian-11-r0"; - }) - - config.services.k3s.package.airgap-images - ] - ''; - description = '' - List of derivations that provide container images. - All images are linked to {file}`${imageDir}` before k3s starts and consequently imported - by the k3s agent. Consider importing the k3s airgap images archive of the k3s package in - use, if you want to pre-provision this node with all k3s container images. This option - only makes sense on nodes with an enabled agent. - ''; - }; - - gracefulNodeShutdown = { - enable = lib.mkEnableOption '' - graceful node shutdowns where the kubelet attempts to detect - node system shutdown and terminates pods running on the node. See the - [documentation](https://kubernetes.io/docs/concepts/cluster-administration/node-shutdown/#graceful-node-shutdown) - for further information. - ''; - - shutdownGracePeriod = lib.mkOption { - type = lib.types.nonEmptyStr; - default = "30s"; - example = "1m30s"; - description = '' - Specifies the total duration that the node should delay the shutdown by. This is the total - grace period for pod termination for both regular and critical pods. - ''; - }; - - shutdownGracePeriodCriticalPods = lib.mkOption { - type = lib.types.nonEmptyStr; - default = "10s"; - example = "15s"; - description = '' - Specifies the duration used to terminate critical pods during a node shutdown. This should be - less than `shutdownGracePeriod`. - ''; - }; - }; - - extraKubeletConfig = lib.mkOption { - type = with lib.types; attrsOf anything; - default = { }; - example = { - podsPerCore = 3; - memoryThrottlingFactor = 0.69; - containerLogMaxSize = "5Mi"; - }; - description = '' - Extra configuration to add to the kubelet's configuration file. The subset of the kubelet's - configuration that can be configured via a file is defined by the - [KubeletConfiguration](https://kubernetes.io/docs/reference/config-api/kubelet-config.v1beta1/) - struct. See the - [documentation](https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/) - for further information. - ''; - }; - - extraKubeProxyConfig = lib.mkOption { - type = with lib.types; attrsOf anything; - default = { }; - example = { - mode = "nftables"; - clientConnection.kubeconfig = "/var/lib/rancher/k3s/agent/kubeproxy.kubeconfig"; - }; - description = '' - Extra configuration to add to the kube-proxy's configuration file. The subset of the kube-proxy's - configuration that can be configured via a file is defined by the - [KubeProxyConfiguration](https://kubernetes.io/docs/reference/config-api/kube-proxy-config.v1alpha1/) - struct. Note that the kubeconfig param will be override by `clientConnection.kubeconfig`, so you must - set the `clientConnection.kubeconfig` if you want to use `extraKubeProxyConfig`. - ''; - }; - - autoDeployCharts = lib.mkOption { - type = lib.types.attrsOf autoDeployChartsModule; - apply = lib.mapAttrs mkAutoDeployChartManifest; - default = { }; - example = lib.literalExpression '' - { - harbor = { - name = "harbor"; - repo = "https://helm.goharbor.io"; - version = "1.14.0"; - hash = "sha256-fMP7q1MIbvzPGS9My91vbQ1d3OJMjwc+o8YE/BXZaYU="; - values = { - existingSecretAdminPassword = "harbor-admin"; - expose = { - tls = { - enabled = true; - certSource = "secret"; - secret.secretName = "my-tls-secret"; - }; - ingress = { - hosts.core = "example.com"; - className = "nginx"; - }; - }; - }; - }; - nginx = { - repo = "oci://registry-1.docker.io/bitnamicharts/nginx"; - version = "20.0.0"; - hash = "sha256-sy+tzB+i9jIl/tqOMzzuhVhTU4EZVsoSBtPznxF/36c="; - }; - custom-chart = { - package = ../charts/my-chart.tgz; - values = ../values/my-values.yaml; - extraFieldDefinitions = { - spec.timeout = "60s"; - }; - }; - } - ''; - description = '' - Auto deploying Helm charts that are installed by the k3s Helm controller. Avoid to use - attribute names that are also used in the [](#opt-services.k3s.manifests) and - [](#opt-services.k3s.charts) options. Manifests with the same name will override - auto deploying charts with the same name. Similiarly, charts with the same name will - overwrite the Helm chart contained in auto deploying charts. This option only makes - sense on server nodes (`role = server`). See the - [k3s Helm documentation](https://docs.k3s.io/helm) for further information. - ''; - }; - }; - - # implementation - - config = lib.mkIf cfg.enable { - warnings = - (lib.optional (cfg.role != "server" && cfg.manifests != { }) - "k3s: Auto deploying manifests are only installed on server nodes (role == server), they will be ignored by this node." - ) - ++ (lib.optional (cfg.role != "server" && cfg.charts != { }) - "k3s: Helm charts are only made available to the cluster on server nodes (role == server), they will be ignored by this node." - ) - ++ (lib.optional (cfg.role != "server" && cfg.autoDeployCharts != { }) - "k3s: Auto deploying Helm charts are only installed on server nodes (role == server), they will be ignored by this node." - ) - ++ (lib.optional (duplicateManifests != [ ]) - "k3s: The following auto deploying charts are overriden by manifests of the same name: ${toString duplicateManifests}." - ) - ++ (lib.optional (duplicateCharts != [ ]) - "k3s: The following auto deploying charts are overriden by charts of the same name: ${toString duplicateCharts}." - ) - ++ (lib.optional ( - cfg.disableAgent && cfg.images != [ ] - ) "k3s: Images are only imported on nodes with an enabled agent, they will be ignored by this node") - ++ (lib.optional ( - cfg.role == "agent" && cfg.configPath == null && cfg.serverAddr == "" - ) "k3s: serverAddr or configPath (with 'server' key) should be set if role is 'agent'") - ++ (lib.optional - (cfg.role == "agent" && cfg.configPath == null && cfg.tokenFile == null && cfg.token == "") - "k3s: Token or tokenFile or configPath (with 'token' or 'token-file' keys) should be set if role is 'agent'" - ); - - assertions = [ - { - assertion = cfg.role == "agent" -> !cfg.disableAgent; - message = "k3s: disableAgent must be false if role is 'agent'"; - } - { - assertion = cfg.role == "agent" -> !cfg.clusterInit; - message = "k3s: clusterInit must be false if role is 'agent'"; - } - ]; - - environment.systemPackages = [ config.services.k3s.package ]; - - # Use systemd-tmpfiles to activate k3s content - systemd.tmpfiles.settings."10-k3s" = - let - # Merge manifest with manifests generated from auto deploying charts, keep only enabled manifests - enabledManifests = lib.filterAttrs (_: v: v.enable) (cfg.autoDeployCharts // cfg.manifests); - # Merge charts with charts contained in enabled auto deploying charts - helmCharts = - (lib.concatMapAttrs (n: v: { ${n} = v.package; }) ( - lib.filterAttrs (_: v: v.enable) cfg.autoDeployCharts - )) - // cfg.charts; - # Make a systemd-tmpfiles rule for a manifest - mkManifestRule = manifest: { - name = "${manifestDir}/${manifest.target}"; - value = { - "L+".argument = "${manifest.source}"; - }; - }; - # Ensure that all chart targets have a .tgz suffix - mkChartTarget = name: if (lib.hasSuffix ".tgz" name) then name else name + ".tgz"; - # Make a systemd-tmpfiles rule for a chart - mkChartRule = target: source: { - name = "${chartDir}/${mkChartTarget target}"; - value = { - "L+".argument = "${source}"; - }; - }; - # Make a systemd-tmpfiles rule for a container image - mkImageRule = image: { - name = "${imageDir}/${image.name}"; - value = { - "L+".argument = "${image}"; - }; - }; - in - (lib.mapAttrs' (_: v: mkManifestRule v) enabledManifests) - // (lib.mapAttrs' (n: v: mkChartRule n v) helmCharts) - // (builtins.listToAttrs (map mkImageRule cfg.images)) - // (lib.optionalAttrs (cfg.containerdConfigTemplate != null) { - ${containerdConfigTemplateFile} = { - "L+".argument = "${pkgs.writeText "config.toml.tmpl" cfg.containerdConfigTemplate}"; - }; - }); - - systemd.services.k3s = - let - kubeletParams = - (lib.optionalAttrs (cfg.gracefulNodeShutdown.enable) { - inherit (cfg.gracefulNodeShutdown) shutdownGracePeriod shutdownGracePeriodCriticalPods; - }) - // cfg.extraKubeletConfig; - kubeletConfig = (pkgs.formats.yaml { }).generate "k3s-kubelet-config" ( - { - apiVersion = "kubelet.config.k8s.io/v1beta1"; - kind = "KubeletConfiguration"; - } - // kubeletParams - ); - - kubeProxyConfig = (pkgs.formats.yaml { }).generate "k3s-kubeProxy-config" ( - { - apiVersion = "kubeproxy.config.k8s.io/v1alpha1"; - kind = "KubeProxyConfiguration"; - } - // cfg.extraKubeProxyConfig - ); - in - { - description = "k3s service"; - after = [ - "firewall.service" - "network-online.target" - ]; - wants = [ - "firewall.service" - "network-online.target" - ]; - wantedBy = [ "multi-user.target" ]; - path = lib.optional config.boot.zfs.enabled config.boot.zfs.package; - serviceConfig = { - # See: https://github.com/rancher/k3s/blob/dddbd16305284ae4bd14c0aade892412310d7edc/install.sh#L197 - Type = if cfg.role == "agent" then "exec" else "notify"; - KillMode = "process"; - Delegate = "yes"; - Restart = "always"; - RestartSec = "5s"; - LimitNOFILE = 1048576; - LimitNPROC = "infinity"; - LimitCORE = "infinity"; - TasksMax = "infinity"; - EnvironmentFile = cfg.environmentFile; - ExecStart = lib.concatStringsSep " \\\n " ( - [ "${cfg.package}/bin/k3s ${cfg.role}" ] - ++ (lib.optional cfg.clusterInit "--cluster-init") - ++ (lib.optional cfg.disableAgent "--disable-agent") - ++ (lib.optional (cfg.serverAddr != "") "--server ${cfg.serverAddr}") - ++ (lib.optional (cfg.token != "") "--token ${cfg.token}") - ++ (lib.optional (cfg.tokenFile != null) "--token-file ${cfg.tokenFile}") - ++ (lib.optional (cfg.configPath != null) "--config ${cfg.configPath}") - ++ (lib.optional (kubeletParams != { }) "--kubelet-arg=config=${kubeletConfig}") - ++ (lib.optional (cfg.extraKubeProxyConfig != { }) "--kube-proxy-arg=config=${kubeProxyConfig}") - ++ (lib.flatten cfg.extraFlags) - ); - }; - }; - }; - - meta.maintainers = lib.teams.k3s.members; -} diff --git a/nixos/modules/services/cluster/rancher/default.nix b/nixos/modules/services/cluster/rancher/default.nix new file mode 100644 index 000000000000..31415945aab6 --- /dev/null +++ b/nixos/modules/services/cluster/rancher/default.nix @@ -0,0 +1,966 @@ +{ + config, + lib, + pkgs, + ... +}: +let + mkRancherModule = + { + # name used in paths/bin names/etc, e.g. k3s + name, + # systemd service name + serviceName ? name, + # extra flags to pass to the binary before user-defined extraFlags + extraBinFlags ? [ ], + # generate manifests as JSON rather than YAML, see rke2.nix + jsonManifests ? false, + + # which port on the local node hosts content placed in ${staticContentChartDir} on /static/ + # if null, it's assumed the content can be accessed via https://%{KUBERNETES_API}%/static/ + staticContentPort ? null, + }: + let + cfg = config.services.${name}; + + # Paths defined here are passed to the downstream modules as `paths` + manifestDir = "/var/lib/rancher/${name}/server/manifests"; + imageDir = "/var/lib/rancher/${name}/agent/images"; + containerdConfigTemplateFile = "/var/lib/rancher/${name}/agent/etc/containerd/config.toml.tmpl"; + staticContentChartDir = "/var/lib/rancher/${name}/server/static/charts"; + + manifestFormat = if jsonManifests then pkgs.formats.json { } else pkgs.formats.yaml { }; + # Manifests need a valid suffix to be respected + mkManifestTarget = + name: + if (lib.hasSuffix ".yaml" name || lib.hasSuffix ".yml" name || lib.hasSuffix ".json" name) then + name + else if jsonManifests then + name + ".json" + else + name + ".yaml"; + # Returns a path to the final manifest file + mkManifestSource = + name: manifests: + manifestFormat.generate name ( + if builtins.isList manifests then + { + apiVersion = "v1"; + kind = "List"; + items = manifests; + } + else + manifests + ); + + # Produces a list containing all duplicate manifest names + duplicateManifests = lib.intersectLists (builtins.attrNames cfg.autoDeployCharts) ( + builtins.attrNames cfg.manifests + ); + # Produces a list containing all duplicate chart names + duplicateCharts = lib.intersectLists (builtins.attrNames cfg.autoDeployCharts) ( + builtins.attrNames cfg.charts + ); + + # Converts YAML -> JSON -> Nix + fromYaml = + path: + builtins.fromJSON ( + builtins.readFile ( + pkgs.runCommand "${path}-converted.json" { nativeBuildInputs = [ pkgs.yq-go ]; } '' + yq --no-colors --output-format json ${path} > $out + '' + ) + ); + + # Replace prefixes and characters that are problematic in file names + cleanHelmChartName = + name: + let + woPrefix = lib.removePrefix "https://" (lib.removePrefix "oci://" name); + in + lib.replaceStrings + [ + "/" + ":" + ] + [ + "-" + "-" + ] + woPrefix; + + # Fetch a Helm chart from a public registry. This only supports a basic Helm pull. + fetchHelm = + { + name, + repo, + version, + hash ? lib.fakeHash, + }: + let + isOci = lib.hasPrefix "oci://" repo; + pullCmd = if isOci then repo else "--repo ${repo} ${name}"; + name' = if isOci then "${repo}-${version}" else "${repo}-${name}-${version}"; + in + pkgs.runCommand (cleanHelmChartName "${name'}.tgz") + { + inherit (lib.fetchers.normalizeHash { } { inherit hash; }) outputHash outputHashAlgo; + impureEnvVars = lib.fetchers.proxyImpureEnvVars; + nativeBuildInputs = with pkgs; [ + kubernetes-helm + cacert + # Helm requires HOME to refer to a writable dir + writableTmpDirAsHomeHook + ]; + } + '' + helm pull ${pullCmd} --version ${version} + mv ./*.tgz $out + ''; + + # Returns the path to a YAML manifest file + mkExtraDeployManifest = + x: + # x is a derivation that provides a YAML file + if lib.isDerivation x then + x.outPath + # x is an attribute set that needs to be converted to a YAML file + else if builtins.isAttrs x then + (manifestFormat.generate "extra-deploy-chart-manifest" x) + # assume x is a path to a YAML file + else + x; + + # Generate a HelmChart custom resource. + mkHelmChartCR = + name: value: + let + chartValues = if (lib.isPath value.values) then fromYaml value.values else value.values; + # use JSON for values as it's a subset of YAML and understood by the rancher Helm controller + valuesContent = builtins.toJSON chartValues; + in + # merge with extraFieldDefinitions to allow setting advanced values and overwrite generated + # values + lib.recursiveUpdate { + apiVersion = "helm.cattle.io/v1"; + kind = "HelmChart"; + metadata = { + inherit name; + namespace = "kube-system"; + }; + spec = { + inherit valuesContent; + inherit (value) targetNamespace createNamespace; + chart = + if staticContentPort == null then + "https://%{KUBERNETES_API}%/static/charts/${name}.tgz" + else + "https://localhost:${toString staticContentPort}/static/charts/${name}.tgz"; + bootstrap = staticContentPort != null; # needed for host network access + }; + } value.extraFieldDefinitions; + + # Generate a HelmChart custom resource together with extraDeploy manifests. + mkAutoDeployChartManifest = name: value: { + # target is the final name of the link created for the manifest file + target = mkManifestTarget name; + inherit (value) enable package; + # source is a store path containing the complete manifest file + source = mkManifestSource "auto-deploy-chart-${name}" ( + lib.singleton (mkHelmChartCR name value) + ++ builtins.map (x: fromYaml (mkExtraDeployManifest x)) value.extraDeploy + ); + }; + + autoDeployChartsModule = lib.types.submodule ( + { config, ... }: + { + options = { + enable = lib.mkOption { + type = lib.types.bool; + default = true; + example = false; + description = '' + Whether to enable the installation of this Helm chart. Note that setting + this option to `false` will not uninstall the chart from the cluster, if + it was previously installed. Please use the the `--disable` flag or `.skip` + files to delete/disable Helm charts, as mentioned in the + [docs](https://docs.k3s.io/installation/packaged-components#disabling-manifests). + ''; + }; + + repo = lib.mkOption { + type = lib.types.nonEmptyStr; + example = "https://kubernetes.github.io/ingress-nginx"; + description = '' + The repo of the Helm chart. Only has an effect if `package` is not set. + The Helm chart is fetched during build time and placed as a `.tgz` archive on the + filesystem. + ''; + }; + + name = lib.mkOption { + type = lib.types.nonEmptyStr; + example = "ingress-nginx"; + description = '' + The name of the Helm chart. Only has an effect if `package` is not set. + The Helm chart is fetched during build time and placed as a `.tgz` archive on the + filesystem. + ''; + }; + + version = lib.mkOption { + type = lib.types.nonEmptyStr; + example = "4.7.0"; + description = '' + The version of the Helm chart. Only has an effect if `package` is not set. + The Helm chart is fetched during build time and placed as a `.tgz` archive on the + filesystem. + ''; + }; + + hash = lib.mkOption { + type = lib.types.str; + example = "sha256-ej+vpPNdiOoXsaj1jyRpWLisJgWo8EqX+Z5VbpSjsPA="; + default = ""; + description = '' + The hash of the packaged Helm chart. Only has an effect if `package` is not set. + The Helm chart is fetched during build time and placed as a `.tgz` archive on the + filesystem. + ''; + }; + + package = lib.mkOption { + type = with lib.types; either path package; + example = lib.literalExpression "../my-helm-chart.tgz"; + description = '' + The packaged Helm chart. Overwrites the options `repo`, `name`, `version` + and `hash` in case of conflicts. + ''; + }; + + targetNamespace = lib.mkOption { + type = lib.types.nonEmptyStr; + default = "default"; + example = "kube-system"; + description = "The namespace in which the Helm chart gets installed."; + }; + + createNamespace = lib.mkOption { + type = lib.types.bool; + default = false; + example = true; + description = "Whether to create the target namespace if not present."; + }; + + values = lib.mkOption { + type = with lib.types; either path attrs; + default = { }; + example = { + replicaCount = 3; + hostName = "my-host"; + server = { + name = "nginx"; + port = 80; + }; + }; + description = '' + Override default chart values via Nix expressions. This is equivalent to setting + values in a `values.yaml` file. + + **WARNING**: The values (including secrets!) specified here are exposed unencrypted + in the world-readable nix store. + ''; + }; + + extraDeploy = lib.mkOption { + type = with lib.types; listOf (either path attrs); + default = [ ]; + example = lib.literalExpression '' + [ + ../manifests/my-extra-deployment.yaml + { + apiVersion = "v1"; + kind = "Service"; + metadata = { + name = "app-service"; + }; + spec = { + selector = { + "app.kubernetes.io/name" = "MyApp"; + }; + ports = [ + { + name = "name-of-service-port"; + protocol = "TCP"; + port = 80; + targetPort = "http-web-svc"; + } + ]; + }; + } + ]; + ''; + description = "List of extra Kubernetes manifests to deploy with this Helm chart."; + }; + + extraFieldDefinitions = lib.mkOption { + inherit (manifestFormat) type; + default = { }; + example = { + spec = { + bootstrap = true; + helmVersion = "v2"; + backOffLimit = 3; + jobImage = "custom-helm-controller:v0.0.1"; + }; + }; + description = '' + Extra HelmChart field definitions that are merged with the rest of the HelmChart + custom resource. This can be used to set advanced fields or to overwrite + generated fields. See + for possible fields. + ''; + }; + }; + + config.package = lib.mkDefault (fetchHelm { + inherit (config) + repo + name + version + hash + ; + }); + } + ); + + manifestModule = lib.types.submodule ( + { + name, + config, + options, + ... + }: + { + options = { + enable = lib.mkOption { + type = lib.types.bool; + default = true; + description = "Whether this manifest file should be generated."; + }; + + target = lib.mkOption { + type = lib.types.nonEmptyStr; + example = "manifest.yaml"; + description = '' + Name of the symlink (relative to {file}`${manifestDir}`). + Defaults to the attribute name. + ''; + }; + + content = lib.mkOption { + type = with lib.types; nullOr (either attrs (listOf attrs)); + default = null; + description = '' + Content of the manifest file. A single attribute set will + generate a single document YAML file. A list of attribute sets + will generate multiple documents separated by `---` in a single + YAML file. + ''; + }; + + source = lib.mkOption { + type = lib.types.path; + example = lib.literalExpression "./manifests/app.yaml"; + description = '' + Path of the source `.yaml` file. + ''; + }; + }; + + config = { + target = lib.mkDefault (mkManifestTarget name); + source = lib.mkIf (config.content != null) ( + let + name' = "${name}-manifest-" + builtins.baseNameOf name; + mkSource = mkManifestSource name'; + in + lib.mkDerivedConfig options.content mkSource + ); + }; + } + ); + in + { + paths = { + inherit + manifestDir + imageDir + containerdConfigTemplateFile + staticContentChartDir + ; + }; + + # interface + + options = { + enable = lib.mkEnableOption name; + + package = lib.mkPackageOption pkgs name { }; + + role = lib.mkOption { + description = "Whether ${name} should run as a server or agent."; + default = "server"; + type = lib.types.enum [ + "server" + "agent" + ]; + }; + + serverAddr = lib.mkOption { + type = lib.types.str; + description = "The ${name} server to connect to, used to join a cluster."; + example = "https://10.0.0.10:6443"; + default = ""; + }; + + token = lib.mkOption { + type = lib.types.str; + description = '' + The ${name} token to use when connecting to a server. + + **WARNING**: This option will expose your token unencrypted in the world-readable nix store. + If this is undesired use the tokenFile option instead. + ''; + default = ""; + }; + + tokenFile = lib.mkOption { + type = lib.types.nullOr lib.types.path; + description = "File path containing the ${name} token to use when connecting to a server."; + default = null; + }; + + agentToken = lib.mkOption { + type = lib.types.str; + description = '' + The ${name} token agents can use to connect to the server. + This option only makes sense on server nodes (`role = server`). + + **WARNING**: This option will expose your token unencrypted in the world-readable nix store. + If this is undesired use the tokenFile option instead. + ''; + default = ""; + }; + + agentTokenFile = lib.mkOption { + type = lib.types.nullOr lib.types.path; + description = '' + File path containing the ${name} token agents can use to connect to the server. + This option only makes sense on server nodes (`role = server`). + ''; + default = null; + }; + + extraFlags = lib.mkOption { + description = "Extra flags to pass to the ${name} command."; + type = with lib.types; either str (listOf str); + default = [ ]; + example = [ + "--etcd-expose-metrics" + "--cluster-cidr 10.24.0.0/16" + ]; + }; + + environmentFile = lib.mkOption { + type = lib.types.nullOr lib.types.path; + description = '' + File path containing environment variables for configuring the ${name} service in the format of an EnvironmentFile. See {manpage}`systemd.exec(5)`. + ''; + default = null; + }; + + configPath = lib.mkOption { + type = lib.types.nullOr lib.types.path; + default = null; + description = "File path containing the ${name} YAML config. This is useful when the config is generated (for example on boot)."; + }; + + disable = lib.mkOption { + type = lib.types.listOf lib.types.str; + description = "Disable default components via the `--disable` flag."; + default = [ ]; + }; + + nodeName = lib.mkOption { + type = lib.types.nullOr lib.types.str; + description = "Node name."; + default = null; + }; + + nodeLabel = lib.mkOption { + type = lib.types.listOf lib.types.str; + description = "Registering and starting kubelet with set of labels."; + default = [ ]; + }; + + nodeTaint = lib.mkOption { + type = lib.types.listOf lib.types.str; + description = "Registering kubelet with set of taints."; + default = [ ]; + }; + + nodeIP = lib.mkOption { + type = lib.types.nullOr lib.types.str; + description = "IPv4/IPv6 addresses to advertise for node."; + default = null; + }; + + selinux = lib.mkOption { + type = lib.types.bool; + description = "Enable SELinux in containerd."; + default = false; + }; + + manifests = lib.mkOption { + type = lib.types.attrsOf manifestModule; + default = { }; + example = lib.literalExpression '' + { + deployment.source = ../manifests/deployment.yaml; + my-service = { + enable = false; + target = "app-service.yaml"; + content = { + apiVersion = "v1"; + kind = "Service"; + metadata = { + name = "app-service"; + }; + spec = { + selector = { + "app.kubernetes.io/name" = "MyApp"; + }; + ports = [ + { + name = "name-of-service-port"; + protocol = "TCP"; + port = 80; + targetPort = "http-web-svc"; + } + ]; + }; + }; + }; + + nginx.content = [ + { + apiVersion = "v1"; + kind = "Pod"; + metadata = { + name = "nginx"; + labels = { + "app.kubernetes.io/name" = "MyApp"; + }; + }; + spec = { + containers = [ + { + name = "nginx"; + image = "nginx:1.14.2"; + ports = [ + { + containerPort = 80; + name = "http-web-svc"; + } + ]; + } + ]; + }; + } + { + apiVersion = "v1"; + kind = "Service"; + metadata = { + name = "nginx-service"; + }; + spec = { + selector = { + "app.kubernetes.io/name" = "MyApp"; + }; + ports = [ + { + name = "name-of-service-port"; + protocol = "TCP"; + port = 80; + targetPort = "http-web-svc"; + } + ]; + }; + } + ]; + }; + ''; + description = '' + Auto-deploying manifests that are linked to {file}`${manifestDir}` before ${name} starts. + Note that deleting manifest files will not remove or otherwise modify the resources + it created. Please use the the `--disable` flag or `.skip` files to delete/disable AddOns, + as mentioned in the [docs](https://docs.k3s.io/installation/packaged-components#disabling-manifests). + This option only makes sense on server nodes (`role = server`). + Read the [auto-deploying manifests docs](https://docs.k3s.io/installation/packaged-components#auto-deploying-manifests-addons) + for further information. + + **WARNING**: If you have multiple server nodes, and set this option on more than one server, + it is your responsibility to ensure that files stay in sync across those nodes. AddOn content is + not synced between nodes, and ${name} cannot guarantee correct behavior if different servers attempt + to deploy conflicting manifests. + ''; + }; + + containerdConfigTemplate = lib.mkOption { + type = lib.types.nullOr lib.types.str; + default = null; + example = lib.literalExpression '' + # Base config + {{ template "base" . }} + + # Add a custom runtime + [plugins."io.containerd.grpc.v1.cri".containerd.runtimes."custom"] + runtime_type = "io.containerd.runc.v2" + [plugins."io.containerd.grpc.v1.cri".containerd.runtimes."custom".options] + BinaryName = "/path/to/custom-container-runtime" + ''; + description = '' + Config template for containerd, to be placed at + `/var/lib/rancher/${name}/agent/etc/containerd/config.toml.tmpl`. + See the docs on [configuring containerd](https://docs.${name}.io/advanced#configuring-containerd). + ''; + }; + + images = lib.mkOption { + type = with lib.types; listOf package; + default = [ ]; + example = lib.literalExpression '' + [ + (pkgs.dockerTools.pullImage { + imageName = "docker.io/bitnami/keycloak"; + imageDigest = "sha256:714dfadc66a8e3adea6609bda350345bd3711657b7ef3cf2e8015b526bac2d6b"; + hash = "sha256-IM2BLZ0EdKIZcRWOtuFY9TogZJXCpKtPZnMnPsGlq0Y="; + finalImageTag = "21.1.2-debian-11-r0"; + }) + ] + ''; + description = '' + List of derivations that provide container images. + All images are linked to {file}`${imageDir}` before ${name} starts and are consequently imported + by the ${name} agent. This option only makes sense on nodes with an enabled agent. + ''; + }; + + gracefulNodeShutdown = { + enable = lib.mkEnableOption '' + graceful node shutdowns where the kubelet attempts to detect + node system shutdown and terminates pods running on the node. See the + [documentation](https://kubernetes.io/docs/concepts/cluster-administration/node-shutdown/#graceful-node-shutdown) + for further information. + ''; + + shutdownGracePeriod = lib.mkOption { + type = lib.types.nonEmptyStr; + default = "30s"; + example = "1m30s"; + description = '' + Specifies the total duration that the node should delay the shutdown by. This is the total + grace period for pod termination for both regular and critical pods. + ''; + }; + + shutdownGracePeriodCriticalPods = lib.mkOption { + type = lib.types.nonEmptyStr; + default = "10s"; + example = "15s"; + description = '' + Specifies the duration used to terminate critical pods during a node shutdown. This should be + less than `shutdownGracePeriod`. + ''; + }; + }; + + extraKubeletConfig = lib.mkOption { + type = with lib.types; attrsOf anything; + default = { }; + example = { + podsPerCore = 3; + memoryThrottlingFactor = 0.69; + containerLogMaxSize = "5Mi"; + }; + description = '' + Extra configuration to add to the kubelet's configuration file. The subset of the kubelet's + configuration that can be configured via a file is defined by the + [KubeletConfiguration](https://kubernetes.io/docs/reference/config-api/kubelet-config.v1beta1/) + struct. See the + [documentation](https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/) + for further information. + ''; + }; + + extraKubeProxyConfig = lib.mkOption { + type = with lib.types; attrsOf anything; + default = { }; + example = { + mode = "nftables"; + clientConnection.kubeconfig = "/var/lib/rancher/${name}/agent/kubeproxy.kubeconfig"; + }; + description = '' + Extra configuration to add to the kube-proxy's configuration file. The subset of the kube-proxy's + configuration that can be configured via a file is defined by the + [KubeProxyConfiguration](https://kubernetes.io/docs/reference/config-api/kube-proxy-config.v1alpha1/) + struct. Note that the kubeconfig param will be overriden by `clientConnection.kubeconfig`, so you must + set the `clientConnection.kubeconfig` option if you want to use `extraKubeProxyConfig`. + ''; + }; + + autoDeployCharts = lib.mkOption { + type = lib.types.attrsOf autoDeployChartsModule; + apply = lib.mapAttrs mkAutoDeployChartManifest; + default = { }; + example = lib.literalExpression '' + { + harbor = { + name = "harbor"; + repo = "https://helm.goharbor.io"; + version = "1.14.0"; + hash = "sha256-fMP7q1MIbvzPGS9My91vbQ1d3OJMjwc+o8YE/BXZaYU="; + values = { + existingSecretAdminPassword = "harbor-admin"; + expose = { + tls = { + enabled = true; + certSource = "secret"; + secret.secretName = "my-tls-secret"; + }; + ingress = { + hosts.core = "example.com"; + className = "nginx"; + }; + }; + }; + }; + nginx = { + repo = "oci://registry-1.docker.io/bitnamicharts/nginx"; + version = "20.0.0"; + hash = "sha256-sy+tzB+i9jIl/tqOMzzuhVhTU4EZVsoSBtPznxF/36c="; + }; + custom-chart = { + package = ../charts/my-chart.tgz; + values = ../values/my-values.yaml; + extraFieldDefinitions = { + spec.timeout = "60s"; + }; + }; + } + ''; + description = '' + Auto deploying Helm charts that are installed by the ${name} Helm controller. Avoid using + attribute names that are also used in the [](#opt-services.${name}.manifests) and + [](#opt-services.${name}.charts) options. Manifests with the same name will override + auto deploying charts with the same name. + This option only makes sense on server nodes (`role = server`). See the + [${name} Helm documentation](https://docs.${name}.io/helm) for further information. + + **WARNING**: If you have multiple server nodes, and set this option on more than one server, + it is your responsibility to ensure that files stay in sync across those nodes. AddOn content is + not synced between nodes, and ${name} cannot guarantee correct behavior if different servers attempt + to deploy conflicting manifests. + ''; + }; + + charts = lib.mkOption { + type = with lib.types; attrsOf (either path package); + default = { }; + example = lib.literalExpression '' + nginx = ../charts/my-nginx-chart.tgz; + redis = ../charts/my-redis-chart.tgz; + ''; + description = '' + Packaged Helm charts that are linked to {file}`${staticContentChartDir}` before ${name} starts. + The attribute name will be used as the link target (relative to {file}`${staticContentChartDir}`). + The specified charts will only be placed on the file system and made available via ${ + if staticContentPort == null then + "the Kubernetes APIServer from within the cluster" + else + "port ${toString staticContentPort} on server nodes" + }. See the [](#opt-services.${name}.autoDeployCharts) option and the + [${name} Helm controller docs](https://docs.${name}.io/helm#using-the-helm-controller) + to deploy Helm charts. This option only makes sense on server nodes (`role = server`). + ''; + }; + }; + + # implementation + + config = { + warnings = + (lib.optional (cfg.role != "server" && cfg.manifests != { }) + "${name}: Auto deploying manifests are only installed on server nodes (role == server), they will be ignored by this node." + ) + ++ (lib.optional (cfg.role != "server" && cfg.autoDeployCharts != { }) + "${name}: Auto deploying Helm charts are only installed on server nodes (role == server), they will be ignored by this node." + ) + ++ (lib.optional (duplicateManifests != [ ]) + "${name}: The following auto deploying charts are overriden by manifests of the same name: ${toString duplicateManifests}." + ) + ++ (lib.optional (duplicateCharts != [ ]) + "${name}: The following auto deploying charts are overriden by charts of the same name: ${toString duplicateCharts}." + ) + ++ (lib.optional (cfg.role != "server" && cfg.charts != { }) + "${name}: Helm charts are only made available to the cluster on server nodes (role == server), they will be ignored by this node." + ) + ++ (lib.optional ( + cfg.role == "agent" && cfg.configPath == null && cfg.serverAddr == "" + ) "${name}: serverAddr or configPath (with 'server' key) should be set if role is 'agent'") + ++ (lib.optional + (cfg.role == "agent" && cfg.configPath == null && cfg.tokenFile == null && cfg.token == "") + "${name}: token, tokenFile or configPath (with 'token' or 'token-file' keys) should be set if role is 'agent'" + ) + ++ (lib.optional ( + cfg.role == "agent" && !(cfg.agentTokenFile != null || cfg.agentToken != "") + ) "${name}: agentToken and agentToken should not be set if role is 'agent'"); + + environment.systemPackages = [ config.services.${name}.package ]; + + # Use systemd-tmpfiles to activate content + systemd.tmpfiles.settings."10-${name}" = + let + # Merge manifest with manifests generated from auto deploying charts, keep only enabled manifests + enabledManifests = lib.filterAttrs (_: v: v.enable) (cfg.autoDeployCharts // cfg.manifests); + # Make a systemd-tmpfiles rule for a manifest + mkManifestRule = manifest: { + name = "${manifestDir}/${manifest.target}"; + value = { + "L+".argument = "${manifest.source}"; + }; + }; + # Make a systemd-tmpfiles rule for a container image + mkImageRule = image: { + name = "${imageDir}/${image.name}"; + value = { + "L+".argument = "${image}"; + }; + }; + # Merge charts with charts contained in enabled auto deploying charts + helmCharts = + (lib.concatMapAttrs (n: v: { ${n} = v.package; }) ( + lib.filterAttrs (_: v: v.enable) cfg.autoDeployCharts + )) + // cfg.charts; + # Ensure that all chart targets have a .tgz suffix + mkChartTarget = name: if (lib.hasSuffix ".tgz" name) then name else name + ".tgz"; + # Make a systemd-tmpfiles rule for a chart + mkChartRule = target: source: { + name = "${staticContentChartDir}/${mkChartTarget target}"; + value = { + "L+".argument = "${source}"; + }; + }; + in + (lib.mapAttrs' (_: v: mkManifestRule v) enabledManifests) + // (builtins.listToAttrs (map mkImageRule cfg.images)) + // (lib.optionalAttrs (cfg.containerdConfigTemplate != null) { + ${containerdConfigTemplateFile} = { + "L+".argument = "${pkgs.writeText "config.toml.tmpl" cfg.containerdConfigTemplate}"; + }; + }) + // (lib.mapAttrs' mkChartRule helmCharts); + + systemd.services.${serviceName} = + let + kubeletParams = + (lib.optionalAttrs (cfg.gracefulNodeShutdown.enable) { + inherit (cfg.gracefulNodeShutdown) shutdownGracePeriod shutdownGracePeriodCriticalPods; + }) + // cfg.extraKubeletConfig; + kubeletConfig = manifestFormat.generate "${name}-kubelet-config" ( + { + apiVersion = "kubelet.config.k8s.io/v1beta1"; + kind = "KubeletConfiguration"; + } + // kubeletParams + ); + + kubeProxyConfig = manifestFormat.generate "${name}-kubeProxy-config" ( + { + apiVersion = "kubeproxy.config.k8s.io/v1alpha1"; + kind = "KubeProxyConfiguration"; + } + // cfg.extraKubeProxyConfig + ); + in + { + description = "${name} service"; + after = [ + "firewall.service" + "network-online.target" + ]; + wants = [ + "firewall.service" + "network-online.target" + ]; + wantedBy = [ "multi-user.target" ]; + path = lib.optional config.boot.zfs.enabled config.boot.zfs.package; + serviceConfig = { + # See: https://github.com/rancher/k3s/blob/dddbd16305284ae4bd14c0aade892412310d7edc/install.sh#L197 + Type = if cfg.role == "agent" then "exec" else "notify"; + KillMode = "process"; + Delegate = "yes"; + Restart = "always"; + RestartSec = "5s"; + LimitNOFILE = 1048576; + LimitNPROC = "infinity"; + LimitCORE = "infinity"; + TasksMax = "infinity"; + TimeoutStartSec = 0; + EnvironmentFile = cfg.environmentFile; + ExecStart = lib.concatStringsSep " \\\n " ( + [ "${cfg.package}/bin/${name} ${cfg.role}" ] + ++ (lib.optional (cfg.serverAddr != "") "--server ${cfg.serverAddr}") + ++ (lib.optional (cfg.token != "") "--token ${cfg.token}") + ++ (lib.optional (cfg.tokenFile != null) "--token-file ${cfg.tokenFile}") + ++ (lib.optional (cfg.agentToken != "") "--agent-token ${cfg.agentToken}") + ++ (lib.optional (cfg.agentTokenFile != null) "--agent-token-file ${cfg.agentTokenFile}") + ++ (lib.optional (cfg.configPath != null) "--config ${cfg.configPath}") + ++ (map (d: "--disable=${d}") cfg.disable) + ++ (lib.optional (cfg.nodeName != null) "--node-name=${cfg.nodeName}") + ++ (lib.optionals (cfg.nodeLabel != [ ]) (map (l: "--node-label=${l}") cfg.nodeLabel)) + ++ (lib.optionals (cfg.nodeTaint != [ ]) (map (t: "--node-taint=${t}") cfg.nodeTaint)) + ++ (lib.optional (cfg.nodeIP != null) "--node-ip=${cfg.nodeIP}") + ++ (lib.optional cfg.selinux "--selinux") + ++ (lib.optional (kubeletParams != { }) "--kubelet-arg=config=${kubeletConfig}") + ++ (lib.optional (cfg.extraKubeProxyConfig != { }) "--kube-proxy-arg=config=${kubeProxyConfig}") + ++ extraBinFlags + ++ (lib.flatten cfg.extraFlags) + ); + }; + }; + }; + }; +in +{ + imports = + # pass mkRancherModule explicitly instead of via + # _modules.args to prevent infinite recursion + let + args = { + inherit config lib; + inherit mkRancherModule; + }; + in + [ + (import ./k3s.nix args) + (import ./rke2.nix args) + ]; + + meta.maintainers = pkgs.rke2.meta.maintainers ++ lib.teams.k3s.members; +} diff --git a/nixos/modules/services/cluster/rancher/k3s.nix b/nixos/modules/services/cluster/rancher/k3s.nix new file mode 100644 index 000000000000..0a8a1fc2be7b --- /dev/null +++ b/nixos/modules/services/cluster/rancher/k3s.nix @@ -0,0 +1,137 @@ +{ + config, + lib, + mkRancherModule, + ... +}: +let + cfg = config.services.k3s; + baseModule = mkRancherModule { + name = "k3s"; + extraBinFlags = + (lib.optional cfg.clusterInit "--cluster-init") + ++ (lib.optional cfg.disableAgent "--disable-agent"); + }; + + removeOption = + config: instruction: + lib.mkRemovedOptionModule ( + [ + "services" + "k3s" + ] + ++ config + ) instruction; +in +{ + imports = [ (removeOption [ "docker" ] "k3s docker option is no longer supported.") ]; + + # interface + + options.services.k3s = lib.recursiveUpdate baseModule.options { + + # option overrides + + role.description = '' + Whether k3s should run as a server or agent. + + If it's a server: + + - By default it also runs workloads as an agent. + - Starts by default as a standalone server using an embedded sqlite datastore. + - Configure `clusterInit = true` to switch over to embedded etcd datastore and enable HA mode. + - Configure `serverAddr` to join an already-initialized HA cluster. + + If it's an agent: + + - `serverAddr` is required. + ''; + + serverAddr.description = '' + The k3s server to connect to. + + Servers and agents need to communicate each other. Read + [the networking docs](https://rancher.com/docs/k3s/latest/en/installation/installation-requirements/#networking) + to know how to configure the firewall. + ''; + + disable.description = '' + Disable default components, see the [K3s documentation](https://docs.k3s.io/installation/packaged-components#using-the---disable-flag). + ''; + + images = { + example = lib.literalExpression '' + [ + (pkgs.dockerTools.pullImage { + imageName = "docker.io/bitnami/keycloak"; + imageDigest = "sha256:714dfadc66a8e3adea6609bda350345bd3711657b7ef3cf2e8015b526bac2d6b"; + hash = "sha256-IM2BLZ0EdKIZcRWOtuFY9TogZJXCpKtPZnMnPsGlq0Y="; + finalImageTag = "21.1.2-debian-11-r0"; + }) + + config.services.k3s.package.airgap-images + ] + ''; + description = '' + List of derivations that provide container images. + All images are linked to {file}`${baseModule.paths.imageDir}` before k3s starts and are consequently imported + by the k3s agent. Consider importing the k3s airgap images archive of the k3s package in + use, if you want to pre-provision this node with all k3s container images. This option + only makes sense on nodes with an enabled agent. + ''; + }; + + # k3s-specific options + + clusterInit = lib.mkOption { + type = lib.types.bool; + default = false; + description = '' + Initialize HA cluster using an embedded etcd datastore. + + If this option is `false` and `role` is `server` + + On a server that was using the default embedded sqlite backend, + enabling this option will migrate to an embedded etcd DB. + + If an HA cluster using the embedded etcd datastore was already initialized, + this option has no effect. + + This option only makes sense in a server that is not connecting to another server. + + If you are configuring an HA cluster with an embedded etcd, + the 1st server must have `clusterInit = true` + and other servers must connect to it using `serverAddr`. + ''; + }; + + disableAgent = lib.mkOption { + type = lib.types.bool; + default = false; + description = "Only run the server. This option only makes sense for a server."; + }; + }; + + # implementation + + config = lib.mkIf cfg.enable ( + lib.recursiveUpdate baseModule.config { + warnings = ( + lib.optional ( + cfg.disableAgent && cfg.images != [ ] + ) "k3s: Images are only imported on nodes with an enabled agent, they will be ignored by this node." + ); + + assertions = [ + { + assertion = cfg.role == "agent" -> !cfg.disableAgent; + message = "k3s: disableAgent must be false if role is 'agent'"; + } + { + assertion = cfg.role == "agent" -> !cfg.clusterInit; + message = "k3s: clusterInit must be false if role is 'agent'"; + } + ]; + } + ); +} diff --git a/nixos/modules/services/cluster/rancher/rke2.nix b/nixos/modules/services/cluster/rancher/rke2.nix new file mode 100644 index 000000000000..d1cd0b4630e7 --- /dev/null +++ b/nixos/modules/services/cluster/rancher/rke2.nix @@ -0,0 +1,160 @@ +{ + config, + lib, + mkRancherModule, + ... +}: +let + cfg = config.services.rke2; + baseModule = mkRancherModule { + name = "rke2"; + serviceName = "rke2-${cfg.role}"; # upstream default, used by rke2-killall.sh + + extraBinFlags = + (lib.optional (cfg.cni != null) "--cni=${cfg.cni}") + ++ (lib.optional cfg.cisHardening "--profile=${ + if lib.versionAtLeast cfg.package.version "1.25" then + "cis" + else if lib.versionAtLeast cfg.package.version "1.23" then + "cis-1.23" + else + "cis-1.6" + }"); + + # RKE2 sometimes tries opening YAML manifests on start with O_RDWR, which we can't support + # without ugly workarounds since they're linked from the read-only /nix/store. + # https://github.com/rancher/rke2/blob/fa7ed3a87055830924d05009a1071acfbbfbcc2c/pkg/bootstrap/bootstrap.go#L355 + jsonManifests = true; + + # see https://github.com/rancher/rke2/issues/224 + # not all charts can be base64-encoded into chartContent due to + # https://github.com/k3s-io/helm-controller/issues/267 + staticContentPort = 9345; + }; +in +{ + # interface + + options.services.rke2 = lib.recursiveUpdate baseModule.options { + # option overrides + role.description = '' + Whether rke2 should run as a server or agent. + + If it's a server: + + - By default it also runs workloads as an agent. + - All options can be set. + + If it's an agent: + + - `serverAddr` is required. + - `token` or `tokenFile` is required. + - `agentToken`, `agentTokenFile`, `disable` and `cni` should not be set. + ''; + + disable.description = '' + Disable default components, see the [RKE2 documentation](https://docs.rke2.io/install/packaged_components#using-the---disable-flag). + ''; + + images = { + example = lib.literalExpression '' + [ + (pkgs.dockerTools.pullImage { + imageName = "docker.io/bitnami/keycloak"; + imageDigest = "sha256:714dfadc66a8e3adea6609bda350345bd3711657b7ef3cf2e8015b526bac2d6b"; + hash = "sha256-IM2BLZ0EdKIZcRWOtuFY9TogZJXCpKtPZnMnPsGlq0Y="; + finalImageTag = "21.1.2-debian-11-r0"; + }) + + config.services.rke2.package.images-core-linux-amd64-tar-zst + config.services.rke2.package.images-canal-linux-amd64-tar-zst + ] + ''; + description = '' + List of derivations that provide container images. + All images are linked to {file}`${baseModule.paths.imageDir}` before rke2 starts and are consequently imported + by the rke2 agent. Consider importing the rke2 core and CNI image archives of the rke2 package in + use, if you want to pre-provision this node with all rke2 container images. For a full list of available airgap images, check the + [source](https://github.com/NixOS/nixpkgs/blob/c8a1939887ee6e5f5aae29ce97321c0d83165f7d/pkgs/applications/networking/cluster/rke2/1_32/images-versions.json). + of the rke2 package in use. + ''; + }; + + # rke2-specific options + cni = lib.mkOption { + type = + with lib.types; + nullOr (enum [ + "none" + "canal" + "cilium" + "calico" + "flannel" + ]); + description = '' + CNI plugins to deploy, one of `none`, `calico`, `canal`, `cilium` or `flannel`. + + All CNI plugins get installed via a helm chart after the main components are up and running + and can be [customized by modifying the helm chart options](https://docs.rke2.io/helm). + + [Learn more about RKE2 and CNI plugins](https://docs.rke2.io/networking/basic_network_options) + + > **WARNING**: Flannel support in RKE2 is currently experimental. + ''; + default = null; + }; + + cisHardening = lib.mkOption { + type = lib.types.bool; + description = '' + Enable CIS Hardening for RKE2. + + The OS-level configuration options required to pass the CIS benchmark are enabled by default. + This option only creates the `etcd` user and group, and passes the `--profile=cis` flag to RKE2. + + Learn more about [CIS Hardening for RKE2](https://docs.rke2.io/security/hardening_guide). + ''; + default = false; + }; + }; + + # implementation + + config = lib.mkIf cfg.enable ( + lib.recursiveUpdate baseModule.config { + warnings = ( + lib.optional ( + cfg.role == "agent" && cfg.cni != null + ) "rke2: cni should not be set if role is 'agent'" + ); + + # Configure NetworkManager to ignore CNI network interfaces. + # See: https://docs.rke2.io/known_issues#networkmanager + environment.etc."NetworkManager/conf.d/rke2-canal.conf" = { + enable = config.networking.networkmanager.enable; + text = '' + [keyfile] + unmanaged-devices=interface-name:flannel*;interface-name:cali*;interface-name:tunl*;interface-name:vxlan.calico;interface-name:vxlan-v6.calico;interface-name:wireguard.cali;interface-name:wg-v6.cali + ''; + }; + + # CIS hardening + # https://docs.rke2.io/security/hardening_guide#kernel-parameters + # https://github.com/rancher/rke2/blob/ef0fc7aa9d3bbaa95ce9b1895972488cbd92e302/bundle/share/rke2/rke2-cis-sysctl.conf + boot.kernel.sysctl = { + "vm.panic_on_oom" = 0; + "vm.overcommit_memory" = 1; + "kernel.panic" = 10; + "kernel.panic_on_oops" = 1; + }; + # https://docs.rke2.io/security/hardening_guide#etcd-is-configured-properly + users = lib.mkIf cfg.cisHardening { + users.etcd = { + isSystemUser = true; + group = "etcd"; + }; + groups.etcd = { }; + }; + } + ); +} diff --git a/nixos/modules/services/cluster/rke2/default.nix b/nixos/modules/services/cluster/rke2/default.nix deleted file mode 100644 index 6e0cfd9df3fe..000000000000 --- a/nixos/modules/services/cluster/rke2/default.nix +++ /dev/null @@ -1,338 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -let - cfg = config.services.rke2; -in -{ - imports = [ ]; - - options.services.rke2 = { - enable = lib.mkEnableOption "rke2"; - - package = lib.mkPackageOption pkgs "rke2" { }; - - role = lib.mkOption { - type = lib.types.enum [ - "server" - "agent" - ]; - description = '' - Whether rke2 should run as a server or agent. - - If it's a server: - - - By default it also runs workloads as an agent. - - any optionals is allowed. - - If it's an agent: - - - `serverAddr` is required. - - `token` or `tokenFile` is required. - - `agentToken` or `agentTokenFile` or `disable` or `cni` are not allowed. - ''; - default = "server"; - }; - - configPath = lib.mkOption { - type = lib.types.path; - description = "Load configuration from FILE."; - default = "/etc/rancher/rke2/config.yaml"; - }; - - debug = lib.mkOption { - type = lib.types.bool; - description = "Turn on debug logs."; - default = false; - }; - - dataDir = lib.mkOption { - type = lib.types.path; - description = "The folder to hold state in."; - default = "/var/lib/rancher/rke2"; - }; - - token = lib.mkOption { - type = lib.types.str; - description = '' - Shared secret used to join a server or agent to a cluster. - - > WARNING: This option will expose store your token unencrypted world-readable in the nix store. - If this is undesired use the `tokenFile` option instead. - ''; - default = ""; - }; - - tokenFile = lib.mkOption { - type = lib.types.nullOr lib.types.path; - description = "File path containing rke2 token to use when connecting to the server."; - default = null; - }; - - disable = lib.mkOption { - type = lib.types.listOf lib.types.str; - description = "Do not deploy packaged components and delete any deployed components."; - default = [ ]; - }; - - nodeName = lib.mkOption { - type = lib.types.nullOr lib.types.str; - description = "Node name."; - default = null; - }; - - nodeLabel = lib.mkOption { - type = lib.types.listOf lib.types.str; - description = "Registering and starting kubelet with set of labels."; - default = [ ]; - }; - - nodeTaint = lib.mkOption { - type = lib.types.listOf lib.types.str; - description = "Registering kubelet with set of taints."; - default = [ ]; - }; - - nodeIP = lib.mkOption { - type = lib.types.nullOr lib.types.str; - description = "IPv4/IPv6 addresses to advertise for node."; - default = null; - }; - - agentToken = lib.mkOption { - type = lib.types.str; - description = '' - Shared secret used to join agents to the cluster, but not servers. - - > **WARNING**: This option will expose store your token unencrypted world-readable in the nix store. - If this is undesired use the `agentTokenFile` option instead. - ''; - default = ""; - }; - - agentTokenFile = lib.mkOption { - type = lib.types.nullOr lib.types.path; - description = "File path containing rke2 agent token to use when connecting to the server."; - default = null; - }; - - serverAddr = lib.mkOption { - type = lib.types.str; - description = "The rke2 server to connect to, used to join a cluster."; - example = "https://10.0.0.10:6443"; - default = ""; - }; - - selinux = lib.mkOption { - type = lib.types.bool; - description = "Enable SELinux in containerd."; - default = false; - }; - - cni = lib.mkOption { - type = lib.types.enum [ - "none" - "canal" - "cilium" - "calico" - "flannel" - ]; - description = '' - CNI Plugins to deploy, one of `none`, `calico`, `canal`, `cilium` or `flannel`. - - All CNI plugins get installed via a helm chart after the main components are up and running - and can be [customized by modifying the helm chart options](https://docs.rke2.io/helm). - - [Learn more about RKE2 and CNI plugins](https://docs.rke2.io/networking/basic_network_options) - - > **WARNING**: Flannel support in RKE2 is currently experimental. - ''; - default = "canal"; - }; - - cisHardening = lib.mkOption { - type = lib.types.bool; - description = '' - Enable CIS Hardening for RKE2. - - It will set the configurations and controls required to address Kubernetes benchmark controls - from the Center for Internet Security (CIS). - - Learn more about [CIS Hardening for RKE2](https://docs.rke2.io/security/hardening_guide). - - > **NOTICE**: - > - > You may need restart the `systemd-sysctl` muaually by: - > - > ```shell - > sudo systemctl restart systemd-sysctl - > ``` - ''; - default = false; - }; - - extraFlags = lib.mkOption { - type = lib.types.listOf lib.types.str; - description = '' - Extra flags to pass to the rke2 service/agent. - - Here you can find all the available flags: - - - [Server Configuration Reference](https://docs.rke2.io/reference/server_config) - - [Agent Configuration Reference](https://docs.rke2.io/reference/linux_agent_config) - ''; - example = [ - "--disable-kube-proxy" - "--cluster-cidr=10.24.0.0/16" - ]; - default = [ ]; - }; - - environmentVars = lib.mkOption { - type = lib.types.attrsOf lib.types.str; - description = '' - Environment variables for configuring the rke2 service/agent. - - Here you can find all the available environment variables: - - - [Server Configuration Reference](https://docs.rke2.io/reference/server_config) - - [Agent Configuration Reference](https://docs.rke2.io/reference/linux_agent_config) - - Besides the options above, you can also active environment variables by edit/create those files: - - - `/etc/default/rke2` - - `/etc/sysconfig/rke2` - - `/usr/local/lib/systemd/system/rke2.env` - ''; - # See: https://github.com/rancher/rke2/blob/master/bundle/lib/systemd/system/rke2-server.env#L1 - default = { - HOME = "/root"; - }; - }; - }; - - config = lib.mkIf cfg.enable { - assertions = [ - { - assertion = cfg.role == "agent" -> (builtins.pathExists cfg.configPath || cfg.serverAddr != ""); - message = "serverAddr or configPath (with 'server' key) should be set if role is 'agent'"; - } - { - assertion = - cfg.role == "agent" - -> (builtins.pathExists cfg.configPath || cfg.tokenFile != null || cfg.token != ""); - message = "token or tokenFile or configPath (with 'token' or 'token-file' keys) should be set if role is 'agent'"; - } - { - assertion = cfg.role == "agent" -> !(cfg.agentTokenFile != null || cfg.agentToken != ""); - message = "agentToken or agentTokenFile should NOT be set if role is 'agent'"; - } - { - assertion = cfg.role == "agent" -> !(cfg.disable != [ ]); - message = "disable should not be set if role is 'agent'"; - } - { - assertion = cfg.role == "agent" -> !(cfg.cni != "canal"); - message = "cni should not be set if role is 'agent'"; - } - ]; - - environment.systemPackages = [ config.services.rke2.package ]; - # To configure NetworkManager to ignore calico/flannel related network interfaces. - # See: https://docs.rke2.io/known_issues#networkmanager - environment.etc."NetworkManager/conf.d/rke2-canal.conf" = { - enable = config.networking.networkmanager.enable; - text = '' - [keyfile] - unmanaged-devices=interface-name:cali*;interface-name:flannel* - ''; - }; - # See: https://docs.rke2.io/security/hardening_guide#set-kernel-parameters - boot.kernel.sysctl = lib.mkIf cfg.cisHardening { - "vm.panic_on_oom" = 0; - "vm.overcommit_memory" = 1; - "kernel.panic" = 10; - "kernel.panic_on_oops" = 1; - }; - - systemd.services."rke2-${cfg.role}" = { - description = "Rancher Kubernetes Engine v2"; - documentation = [ "https://github.com/rancher/rke2#readme" ]; - after = [ "network-online.target" ]; - wants = [ "network-online.target" ]; - wantedBy = [ "multi-user.target" ]; - serviceConfig = { - Type = if cfg.role == "agent" then "exec" else "notify"; - EnvironmentFile = [ - "-/etc/default/%N" - "-/etc/sysconfig/%N" - "-/usr/local/lib/systemd/system/%N.env" - ]; - Environment = lib.mapAttrsToList (k: v: "${k}=${v}") cfg.environmentVars; - KillMode = "process"; - Delegate = "yes"; - LimitNOFILE = 1048576; - LimitNPROC = "infinity"; - LimitCORE = "infinity"; - TasksMax = "infinity"; - TimeoutStartSec = 0; - Restart = "always"; - RestartSec = "5s"; - ExecStartPre = [ - # There is a conflict between RKE2 and `nm-cloud-setup.service`. This service add a routing table that - # interfere with the CNI plugin's configuration. This script checks if the service is enabled and if so, - # failed the RKE2 start. - # See: https://github.com/rancher/rke2/issues/1053 - (pkgs.writeScript "check-nm-cloud-setup.sh" '' - #! ${pkgs.runtimeShell} - set -x - ! /run/current-system/systemd/bin/systemctl is-enabled --quiet nm-cloud-setup.service - '') - "-${pkgs.kmod}/bin/modprobe br_netfilter" - "-${pkgs.kmod}/bin/modprobe overlay" - ]; - ExecStart = "${cfg.package}/bin/rke2 '${cfg.role}' ${ - lib.escapeShellArgs ( - (lib.optional (cfg.configPath != "/etc/rancher/rke2/config.yaml") "--config=${cfg.configPath}") - ++ (lib.optional cfg.debug "--debug") - ++ (lib.optional (cfg.dataDir != "/var/lib/rancher/rke2") "--data-dir=${cfg.dataDir}") - ++ (lib.optional (cfg.token != "") "--token=${cfg.token}") - ++ (lib.optional (cfg.tokenFile != null) "--token-file=${cfg.tokenFile}") - ++ (lib.optionals (cfg.role == "server" && cfg.disable != [ ]) ( - map (d: "--disable=${d}") cfg.disable - )) - ++ (lib.optional (cfg.nodeName != null) "--node-name=${cfg.nodeName}") - ++ (lib.optionals (cfg.nodeLabel != [ ]) (map (l: "--node-label=${l}") cfg.nodeLabel)) - ++ (lib.optionals (cfg.nodeTaint != [ ]) (map (t: "--node-taint=${t}") cfg.nodeTaint)) - ++ (lib.optional (cfg.nodeIP != null) "--node-ip=${cfg.nodeIP}") - ++ (lib.optional (cfg.role == "server" && cfg.agentToken != "") "--agent-token=${cfg.agentToken}") - ++ (lib.optional ( - cfg.role == "server" && cfg.agentTokenFile != null - ) "--agent-token-file=${cfg.agentTokenFile}") - ++ (lib.optional (cfg.serverAddr != "") "--server=${cfg.serverAddr}") - ++ (lib.optional cfg.selinux "--selinux") - ++ (lib.optional (cfg.role == "server" && cfg.cni != "canal") "--cni=${cfg.cni}") - ++ (lib.optional cfg.cisHardening "--profile=${ - if cfg.package.version >= "1.25" then "cis-1.23" else "cis-1.6" - }") - ++ cfg.extraFlags - ) - }"; - ExecStopPost = - let - killProcess = pkgs.writeScript "kill-process.sh" '' - #! ${pkgs.runtimeShell} - /run/current-system/systemd/bin/systemd-cgls /system.slice/$1 | \ - ${pkgs.gnugrep}/bin/grep -Eo '[0-9]+ (containerd|kubelet)' | \ - ${pkgs.gawk}/bin/awk '{print $1}' | \ - ${pkgs.findutils}/bin/xargs -r ${pkgs.util-linux}/bin/kill - ''; - in - "-${killProcess} %n"; - }; - }; - }; -} diff --git a/nixos/modules/services/desktop-managers/gnome.nix b/nixos/modules/services/desktop-managers/gnome.nix index faa5085cc9e7..0cc84d435766 100644 --- a/nixos/modules/services/desktop-managers/gnome.nix +++ b/nixos/modules/services/desktop-managers/gnome.nix @@ -477,7 +477,6 @@ in # Since some of these have a corresponding package, we only # enable that program module if the package hasn't been excluded # through `environment.gnome.excludePackages` - programs.file-roller.enable = notExcluded pkgs.file-roller; programs.geary.enable = notExcluded pkgs.geary; programs.gnome-disks.enable = notExcluded pkgs.gnome-disk-utility; programs.seahorse.enable = notExcluded pkgs.seahorse; diff --git a/nixos/modules/services/desktop-managers/pantheon.nix b/nixos/modules/services/desktop-managers/pantheon.nix index 89713e7e9212..e24bf4d9ae1e 100644 --- a/nixos/modules/services/desktop-managers/pantheon.nix +++ b/nixos/modules/services/desktop-managers/pantheon.nix @@ -307,11 +307,11 @@ in (mkIf serviceCfg.apps.enable { programs.evince.enable = mkDefault (notExcluded pkgs.evince); - programs.file-roller.enable = mkDefault (notExcluded pkgs.file-roller); environment.systemPackages = utils.removePackagesByName ( [ pkgs.gnome-font-viewer + pkgs.file-roller ] ++ ( with pkgs.pantheon; diff --git a/nixos/modules/services/misc/redmine.nix b/nixos/modules/services/misc/redmine.nix index 983ba57e57d6..e853d55840c5 100644 --- a/nixos/modules/services/misc/redmine.nix +++ b/nixos/modules/services/misc/redmine.nix @@ -80,7 +80,7 @@ in enable = lib.mkEnableOption "Redmine, a project management web application"; package = lib.mkPackageOption pkgs "redmine" { - example = "redmine.override { ruby = pkgs.ruby_3_4; }"; + example = "redmine.override { ruby = pkgs.ruby_3_3; }"; }; user = lib.mkOption { diff --git a/nixos/modules/services/web-apps/onlyoffice.nix b/nixos/modules/services/web-apps/onlyoffice.nix index 50b723c9f0f3..5ac94c0cefcc 100644 --- a/nixos/modules/services/web-apps/onlyoffice.nix +++ b/nixos/modules/services/web-apps/onlyoffice.nix @@ -330,6 +330,7 @@ in after = [ "network.target" "postgresql.target" + "rabbitmq.service" ]; requires = [ "postgresql.target" ]; wantedBy = [ "multi-user.target" ]; diff --git a/nixos/modules/services/x11/desktop-managers/cinnamon.nix b/nixos/modules/services/x11/desktop-managers/cinnamon.nix index e10cf1f47c3e..6b118a769e33 100644 --- a/nixos/modules/services/x11/desktop-managers/cinnamon.nix +++ b/nixos/modules/services/x11/desktop-managers/cinnamon.nix @@ -250,7 +250,6 @@ in (mkIf serviceCfg.apps.enable { programs.gnome-disks.enable = mkDefault (notExcluded pkgs.gnome-disk-utility); programs.gnome-terminal.enable = mkDefault (notExcluded pkgs.gnome-terminal); - programs.file-roller.enable = mkDefault (notExcluded pkgs.file-roller); environment.systemPackages = with pkgs; @@ -270,6 +269,7 @@ in gnome-calculator gnome-calendar gnome-screenshot + file-roller ] config.environment.cinnamon.excludePackages; }) ]; diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix index fdc2164f0f9d..517305daab25 100644 --- a/nixos/modules/services/x11/xserver.nix +++ b/nixos/modules/services/x11/xserver.nix @@ -1021,7 +1021,8 @@ in fonts.packages = [ (if cfg.upscaleDefaultCursor then fontcursormisc_hidpi else pkgs.xorg.fontcursormisc) - pkgs.xorg.fontmiscmisc + pkgs.font-misc-misc + pkgs.font-alias ]; }; diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 3ebcadf90136..ac16eaf315a7 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -1139,6 +1139,7 @@ in ombi = runTest ./ombi.nix; omnom = runTest ./omnom; oncall = runTest ./web-apps/oncall.nix; + onlyoffice = runTest ./onlyoffice.nix; open-web-calendar = runTest ./web-apps/open-web-calendar.nix; open-webui = runTest ./open-webui.nix; openarena = runTest ./openarena.nix; diff --git a/nixos/tests/k3s/auto-deploy-charts.nix b/nixos/tests/k3s/auto-deploy-charts.nix index 18339e201482..133189f1e769 100644 --- a/nixos/tests/k3s/auto-deploy-charts.nix +++ b/nixos/tests/k3s/auto-deploy-charts.nix @@ -135,7 +135,7 @@ import ../make-test-python.nix ( machine.succeed("test -e /var/lib/rancher/k3s/server/manifests/values-file.yaml") machine.succeed("test -e /var/lib/rancher/k3s/server/manifests/advanced.yaml") # check that the timeout is set correctly, select only the first doc in advanced.yaml - advancedManifest = json.loads(machine.succeed("yq -o json 'select(di == 0)' /var/lib/rancher/k3s/server/manifests/advanced.yaml")) + advancedManifest = json.loads(machine.succeed("yq -o json '.items[0]' /var/lib/rancher/k3s/server/manifests/advanced.yaml")) t.assertEqual(advancedManifest["spec"]["timeout"], "69s", "unexpected value for spec.timeout") # wait for test jobs to complete machine.wait_until_succeeds("kubectl wait --for=condition=complete job/hello", timeout=180) diff --git a/nixos/tests/onlyoffice.nix b/nixos/tests/onlyoffice.nix new file mode 100644 index 000000000000..bf0960671247 --- /dev/null +++ b/nixos/tests/onlyoffice.nix @@ -0,0 +1,30 @@ +let + port = 8000; +in +{ + name = "onlyoffice"; + + nodes.machine = + { pkgs, ... }: + { + services.onlyoffice = { + enable = true; + inherit port; + hostname = "office.example.com"; + securityNonceFile = "${pkgs.writeText "nixos-test-onlyoffice-nonce.conf" '' + set $secure_link_secret "nixostest"; + ''}"; + }; + + networking.hosts = { + "::1" = [ "office.example.com" ]; + }; + }; + + testScript = '' + machine.wait_for_unit("onlyoffice-docservice.service") + machine.wait_for_unit("onlyoffice-converter.service") + machine.wait_for_open_port(${builtins.toString port}) + machine.succeed("curl --fail http://office.example.com/healthcheck") + ''; +} diff --git a/nixos/tests/rke2/multi-node.nix b/nixos/tests/rke2/multi-node.nix index 075e0c5146ca..ee394c07f828 100644 --- a/nixos/tests/rke2/multi-node.nix +++ b/nixos/tests/rke2/multi-node.nix @@ -31,46 +31,21 @@ import ../make-test-python.nix ( ]; }; }; - # A daemonset that responds 'hello' on port 8000 - networkTestDaemonset = pkgs.writeText "test.yml" '' - apiVersion: apps/v1 - kind: DaemonSet - metadata: - name: test - labels: - name: test - spec: - selector: - matchLabels: - name: test - template: - metadata: - labels: - name: test - spec: - containers: - - name: test - image: test.local/hello:local - imagePullPolicy: Never - resources: - limits: - memory: 20Mi - command: ["socat", "TCP4-LISTEN:8000,fork", "EXEC:echo hello"] - ''; tokenFile = pkgs.writeText "token" "p@s$w0rd"; agentTokenFile = pkgs.writeText "agent-token" "agentP@s$w0rd"; # Let flannel use eth1 to enable inter-node communication in tests - canalConfig = pkgs.writeText "rke2-canal-config.yaml" '' - apiVersion: helm.cattle.io/v1 - kind: HelmChartConfig - metadata: - name: rke2-canal - namespace: kube-system - spec: - valuesContent: |- - flannel: - iface: "eth1" - ''; + canalConfig = { + apiVersion = "helm.cattle.io/v1"; + kind = "HelmChartConfig"; + metadata = { + name = "rke2-canal"; + namespace = "kube-system"; + }; + # spec.valuesContent needs to a string, either json or yaml + spec.valuesContent = builtins.toJSON { + flannel.iface = "eth1"; + }; + }; in { name = "${rke2.name}-multi-node"; @@ -85,23 +60,6 @@ import ../make-test-python.nix ( ... }: { - # Setup image archives to be imported by rke2 - systemd.tmpfiles.settings."10-rke2" = { - "/var/lib/rancher/rke2/agent/images/rke2-images-core.tar.zst" = { - "L+".argument = "${coreImages}"; - }; - "/var/lib/rancher/rke2/agent/images/rke2-images-canal.tar.zst" = { - "L+".argument = "${canalImages}"; - }; - "/var/lib/rancher/rke2/agent/images/hello.tar.zst" = { - "L+".argument = "${helloImage}"; - }; - # Copy the canal config so that rke2 can write the remaining default values to it - "/var/lib/rancher/rke2/server/manifests/rke2-canal-config.yaml" = { - "C".argument = "${canalConfig}"; - }; - }; - # Canal CNI with VXLAN networking.firewall.allowedUDPPorts = [ 8472 ]; networking.firewall.allowedTCPPorts = [ @@ -134,6 +92,41 @@ import ../make-test-python.nix ( "rke2-snapshot-controller-crd" "rke2-snapshot-validation-webhook" ]; + images = [ + coreImages + canalImages + helloImage + ]; + manifests = { + canal-config.content = canalConfig; + # A daemonset that responds 'hello' on port 8000 + network-test.content = { + apiVersion = "apps/v1"; + kind = "DaemonSet"; + metadata = { + name = "test"; + labels.name = "test"; + }; + spec = { + selector.matchLabels.name = "test"; + template = { + metadata.labels.name = "test"; + spec.containers = [ + { + name = "hello"; + image = "${helloImage.imageName}:${helloImage.imageTag}"; + imagePullPolicy = "Never"; + command = [ + "socat" + "TCP4-LISTEN:8000,fork" + "EXEC:echo hello" + ]; + } + ]; + }; + }; + }; + }; }; }; @@ -145,22 +138,6 @@ import ../make-test-python.nix ( ... }: { - # Setup image archives to be imported by rke2 - systemd.tmpfiles.settings."10-rke2" = { - "/var/lib/rancher/rke2/agent/images/rke2-images-core.linux-amd64.tar.zst" = { - "L+".argument = "${coreImages}"; - }; - "/var/lib/rancher/rke2/agent/images/rke2-images-canal.linux-amd64.tar.zst" = { - "L+".argument = "${canalImages}"; - }; - "/var/lib/rancher/rke2/agent/images/hello.tar.zst" = { - "L+".argument = "${helloImage}"; - }; - "/var/lib/rancher/rke2/server/manifests/rke2-canal-config.yaml" = { - "C".argument = "${canalConfig}"; - }; - }; - # Canal CNI health checks networking.firewall.allowedTCPPorts = [ 9099 ]; # Canal CNI with VXLAN @@ -177,6 +154,12 @@ import ../make-test-python.nix ( tokenFile = agentTokenFile; serverAddr = "https://${nodes.server.networking.primaryIPAddress}:9345"; nodeIP = config.networking.primaryIPAddress; + manifests.canal-config.content = canalConfig; + images = [ + coreImages + canalImages + helloImage + ]; }; }; }; @@ -199,8 +182,7 @@ import ../make-test-python.nix ( server.succeed("${kubectl} cluster-info") server.wait_until_succeeds("${kubectl} get serviceaccount default") - # Now create a pod on each node via a daemonset and verify they can talk to each other. - server.succeed("${kubectl} apply -f ${networkTestDaemonset}") + # Now verify that each daemonset pod can talk to each other. server.wait_until_succeeds( f'[ "$(${kubectl} get ds test -o json | ${jq} .status.numberReady)" -eq {len(machines)} ]' ) @@ -217,9 +199,9 @@ import ../make-test-python.nix ( server.wait_until_succeeds(f"ping -c 1 {pod_ip}", timeout=5) agent.wait_until_succeeds(f"ping -c 1 {pod_ip}", timeout=5) # Verify the server can exec into the pod - # for pod in pods: - # resp = server.succeed(f"${kubectl} exec {pod} -- socat TCP:{pod_ip}:8000 -") - # assert resp.strip() == "hello", f"Unexpected response from hello daemonset: {resp.strip()}" + for pod in pods: + resp = server.succeed(f"${kubectl} exec {pod} -- socat TCP:{pod_ip}:8000 -").strip() + assert resp == "hello", f"Unexpected response from hello daemonset: {resp}" ''; } ) diff --git a/nixos/tests/rke2/single-node.nix b/nixos/tests/rke2/single-node.nix index 28117a8b84ce..e19cccf5acc0 100644 --- a/nixos/tests/rke2/single-node.nix +++ b/nixos/tests/rke2/single-node.nix @@ -26,19 +26,13 @@ import ../make-test-python.nix ( copyToRoot = pkgs.hello; config.Entrypoint = [ "${pkgs.hello}/bin/hello" ]; }; - testJobYaml = pkgs.writeText "test.yaml" '' - apiVersion: batch/v1 - kind: Job - metadata: - name: test - spec: - template: - spec: - containers: - - name: test - image: "test.local/hello:local" - restartPolicy: Never - ''; + # A ConfigMap in regular yaml format + cmFile = (pkgs.formats.yaml { }).generate "rke2-manifest-from-file.yaml" { + apiVersion = "v1"; + kind = "ConfigMap"; + metadata.name = "from-file"; + data.username = "foo-file"; + }; in { name = "${rke2.name}-single-node"; @@ -51,19 +45,6 @@ import ../make-test-python.nix ( ... }: { - # Setup image archives to be imported by rke2 - systemd.tmpfiles.settings."10-rke2" = { - "/var/lib/rancher/rke2/agent/images/rke2-images-core.tar.zst" = { - "L+".argument = "${coreImages}"; - }; - "/var/lib/rancher/rke2/agent/images/rke2-images-canal.tar.zst" = { - "L+".argument = "${canalImages}"; - }; - "/var/lib/rancher/rke2/agent/images/hello.tar.zst" = { - "L+".argument = "${helloImage}"; - }; - }; - # RKE2 needs more resources than the default virtualisation.cores = 4; virtualisation.memorySize = 4096; @@ -84,6 +65,47 @@ import ../make-test-python.nix ( "rke2-snapshot-controller-crd" "rke2-snapshot-validation-webhook" ]; + images = [ + coreImages + canalImages + helloImage + ]; + manifests = { + test-job.content = { + apiVersion = "batch/v1"; + kind = "Job"; + metadata.name = "test"; + spec.template.spec = { + containers = [ + { + name = "hello"; + image = "${helloImage.imageName}:${helloImage.imageTag}"; + } + ]; + restartPolicy = "Never"; + }; + }; + disabled = { + enable = false; + content = { + apiVersion = "v1"; + kind = "ConfigMap"; + metadata.name = "disabled"; + data.username = "foo"; + }; + }; + from-file.source = "${cmFile}"; + custom-target = { + enable = true; + target = "my-manifest.json"; + content = { + apiVersion = "v1"; + kind = "ConfigMap"; + metadata.name = "custom-target"; + data.username = "foo-custom"; + }; + }; + }; }; }; @@ -95,14 +117,28 @@ import ../make-test-python.nix ( '' start_all() - machine.wait_for_unit("rke2-server") - machine.succeed("${kubectl} cluster-info") + with subtest("Start cluster"): + machine.wait_for_unit("rke2-server") + machine.succeed("${kubectl} cluster-info") + machine.wait_until_succeeds("${kubectl} get serviceaccount default") - machine.wait_until_succeeds("${kubectl} get serviceaccount default") - machine.succeed("${kubectl} apply -f ${testJobYaml}") - machine.wait_until_succeeds("${kubectl} wait --for 'condition=complete' job/test") - output = machine.succeed("${kubectl} logs -l batch.kubernetes.io/job-name=test") - assert output.rstrip() == "Hello, world!", f"unexpected output of test job: {output}" + with subtest("Test job completes successfully"): + machine.wait_until_succeeds("${kubectl} wait --for 'condition=complete' job/test") + output = machine.succeed("${kubectl} logs -l batch.kubernetes.io/job-name=test").rstrip() + assert output == "Hello, world!", f"unexpected output of test job: {output}" + + with subtest("ConfigMap from-file exists"): + output = machine.succeed("${kubectl} get cm from-file -o=jsonpath='{.data.username}'").rstrip() + assert output == "foo-file", f"Unexpected data in Configmap from-file: {output}" + + with subtest("ConfigMap custom-target exists"): + # Check that the file exists at the custom target path + machine.succeed("ls /var/lib/rancher/rke2/server/manifests/my-manifest.json") + output = machine.succeed("${kubectl} get cm custom-target -o=jsonpath='{.data.username}'").rstrip() + assert output == "foo-custom", f"Unexpected data in Configmap custom-target: {output}" + + with subtest("Disabled ConfigMap doesn't exist"): + machine.fail("${kubectl} get cm disabled") ''; } ) diff --git a/pkgs/applications/editors/vscode/extensions/amazonwebservices.amazon-q-vscode/default.nix b/pkgs/applications/editors/vscode/extensions/amazonwebservices.amazon-q-vscode/default.nix index 5c05be44f94b..2670907374bc 100644 --- a/pkgs/applications/editors/vscode/extensions/amazonwebservices.amazon-q-vscode/default.nix +++ b/pkgs/applications/editors/vscode/extensions/amazonwebservices.amazon-q-vscode/default.nix @@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension (finalAttrs: { mktplcRef = { name = "amazon-q-vscode"; publisher = "AmazonWebServices"; - version = "1.103.0"; - hash = "sha256-WITAP0DZsLJyeZRhUfWDq34tjenh5nA+1aSb8rxskAw="; + version = "1.104.0"; + hash = "sha256-d97fT6dRiY9pAx7AbzaJ9qQv79b8oa1CJXqlaOycITU="; }; meta = { diff --git a/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix b/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix index 45be99940367..9836063c19a3 100644 --- a/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix +++ b/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix @@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension { mktplcRef = { name = "claude-code"; publisher = "anthropic"; - version = "2.0.37"; - hash = "sha256-wXYdMoJhdH5S8EGdELVFbmwrwO7LHgYiEFqiUscQo4Y="; + version = "2.0.42"; + hash = "sha256-GGQVvyQmkPC5503AzSVU8pGXBb1rv5S1W04V1in1T8E="; }; meta = { diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix index ffaf40631fd4..275f26fb0667 100644 --- a/pkgs/applications/editors/vscode/extensions/default.nix +++ b/pkgs/applications/editors/vscode/extensions/default.nix @@ -1005,8 +1005,8 @@ let mktplcRef = { name = "coder-remote"; publisher = "coder"; - version = "1.11.2"; - hash = "sha256-7peB8y2cNPCYXbdey4POzFcdra/j/RNzSF2gO3SLlGA="; + version = "1.11.3"; + hash = "sha256-7OXk7ykx4JuRZT6HNNGt2r2Bm4qU+q1yaViKPGoT2f0="; }; meta = { description = "Extension for Visual Studio Code to open any Coder workspace in VS Code with a single click"; @@ -1643,8 +1643,8 @@ let mktplcRef = { name = "vscode-open-in-github"; publisher = "fabiospampinato"; - version = "2.3.1"; - hash = "sha256-wqY8AArlTpQzoZ9OfV9MzlHIr9M/Ac4QUZL99n327EI="; + version = "2.4.0"; + hash = "sha256-7jHU8sW6nBVumry3DjgM+CNOvm/oZCGBMzrat4lRAtg="; }; meta = { changelog = "https://marketplace.visualstudio.com/items/fabiospampinato.vscode-open-in-github/changelog"; diff --git a/pkgs/applications/editors/vscode/extensions/wgsl-analyzer.wgsl-analyzer/default.nix b/pkgs/applications/editors/vscode/extensions/wgsl-analyzer.wgsl-analyzer/default.nix index 9114b98200b0..0d278b4e3f25 100644 --- a/pkgs/applications/editors/vscode/extensions/wgsl-analyzer.wgsl-analyzer/default.nix +++ b/pkgs/applications/editors/vscode/extensions/wgsl-analyzer.wgsl-analyzer/default.nix @@ -10,8 +10,8 @@ vscode-utils.buildVscodeMarketplaceExtension { mktplcRef = { name = "wgsl-analyzer"; publisher = "wgsl-analyzer"; - version = "0.11.130"; - hash = "sha256-bwtyLkMo9+3XQwUzKqSHOlCrSPqJMqKAPF17aeyr4QI="; + version = "0.11.141"; + hash = "sha256-egd9B5mS5pqzDWVry3dEQKfnxT4zI0RdLMJ/x5n6Nek="; }; nativeBuildInputs = [ diff --git a/pkgs/applications/emulators/libretro/cores/bsnes.nix b/pkgs/applications/emulators/libretro/cores/bsnes.nix index ae63e12c2afe..24f05b53fc34 100644 --- a/pkgs/applications/emulators/libretro/cores/bsnes.nix +++ b/pkgs/applications/emulators/libretro/cores/bsnes.nix @@ -5,13 +5,13 @@ }: mkLibretroCore { core = "bsnes"; - version = "0-unstable-2025-10-10"; + version = "0-unstable-2025-11-14"; src = fetchFromGitHub { owner = "libretro"; repo = "bsnes-libretro"; - rev = "57155d8037463346307123daabeaa27298e0f956"; - hash = "sha256-eQaeAdQ7OWRzPVSbNOPUmMKIvkztZYGm2tzBavJO4Gs="; + rev = "c11dd1f8551ad9b6668ebfcbb5833cfc034b7205"; + hash = "sha256-8QI7/BaAm3GERPUUprzFTrH7CuPK7W0fCAoHEefKeaI="; }; makefile = "Makefile"; diff --git a/pkgs/applications/emulators/libretro/cores/flycast.nix b/pkgs/applications/emulators/libretro/cores/flycast.nix index 3d530034d18c..57e32ee51b3c 100644 --- a/pkgs/applications/emulators/libretro/cores/flycast.nix +++ b/pkgs/applications/emulators/libretro/cores/flycast.nix @@ -8,13 +8,13 @@ }: mkLibretroCore { core = "flycast"; - version = "0-unstable-2025-10-18"; + version = "0-unstable-2025-11-15"; src = fetchFromGitHub { owner = "flyinghead"; repo = "flycast"; - rev = "5d628f8167947bc8a2a7608d52e4ff8b71b9ef34"; - hash = "sha256-QKUAVJsJL1Ff8KNz6lpMU/IZNb1I09++AqqccIBdAPw="; + rev = "4747e6190899949bafd3391b3ba33b8e4c37219c"; + hash = "sha256-su1nWwLEUcJtf85U9ABXMHltWOBVqlrYsMLHqNebWUs="; fetchSubmodules = true; }; diff --git a/pkgs/applications/networking/cluster/k3s/docs/ONBOARDING_MAINTAINER.md b/pkgs/applications/networking/cluster/k3s/docs/ONBOARDING_MAINTAINER.md index 1b43e4d5712a..580c614bbee3 100644 --- a/pkgs/applications/networking/cluster/k3s/docs/ONBOARDING_MAINTAINER.md +++ b/pkgs/applications/networking/cluster/k3s/docs/ONBOARDING_MAINTAINER.md @@ -8,7 +8,7 @@ A K3s maintainer, maintains K3s's: - [issues](https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+k3s) - [pull requests](https://github.com/NixOS/nixpkgs/pulls?q=is%3Aopen+is%3Apr+label%3A%226.topic%3A+k3s%22) - [NixOS tests](https://github.com/NixOS/nixpkgs/tree/master/nixos/tests/k3s) -- [NixOS service module](https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/cluster/k3s/default.nix) +- [NixOS service module](https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/cluster/rancher) - [update script](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/networking/cluster/k3s/update-script.sh) (the process of updating) - updates (the act of updating) and [r-ryantm bot logs](https://r.ryantm.com/log/k3s/) - deprecations diff --git a/pkgs/applications/networking/cluster/rke2/builder.nix b/pkgs/applications/networking/cluster/rke2/builder.nix index e8b3809b6156..99bfa58a1d82 100644 --- a/pkgs/applications/networking/cluster/rke2/builder.nix +++ b/pkgs/applications/networking/cluster/rke2/builder.nix @@ -157,6 +157,7 @@ buildGoModule (finalAttrs: { changelog = "https://github.com/rancher/rke2/releases/tag/v${finalAttrs.version}"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ + azey7f rorosen zimbatm zygot diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index a835723e75ce..24c48991da9a 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -985,11 +985,11 @@ "vendorHash": null }, "nutanix_nutanix": { - "hash": "sha256-NhVgZCscSyM6O/d4BYokGz9FQ2fSuN2/kw8iZhzzBQY=", + "hash": "sha256-pL8c9Q+iY2i4IuoL0zN2sJ+Gepx65FKGvwU9TshkRHs=", "homepage": "https://registry.terraform.io/providers/nutanix/nutanix", "owner": "nutanix", "repo": "terraform-provider-nutanix", - "rev": "v2.3.3", + "rev": "v2.3.4", "spdx": "MPL-2.0", "vendorHash": "sha256-CZo/GLUwmq/TxRDQr2h49rqENB24Zt4M7k5t7epXHuE=" }, @@ -1048,11 +1048,11 @@ "vendorHash": null }, "oracle_oci": { - "hash": "sha256-Pp2eOcz1LQv2Ft2oiwW+7dypDO1PuRE0I7Wcr2E/G4w=", + "hash": "sha256-1qYfGPM+Vh7r5UZY0cGjKWM/mxk8kF8S9K2NacrOWB8=", "homepage": "https://registry.terraform.io/providers/oracle/oci", "owner": "oracle", "repo": "terraform-provider-oci", - "rev": "v7.25.0", + "rev": "v7.26.1", "spdx": "MPL-2.0", "vendorHash": null }, diff --git a/pkgs/applications/networking/gns3/default.nix b/pkgs/applications/networking/gns3/default.nix index c43315d25a99..fa3ffcd39695 100644 --- a/pkgs/applications/networking/gns3/default.nix +++ b/pkgs/applications/networking/gns3/default.nix @@ -15,25 +15,25 @@ in { guiStable = mkGui { channel = "stable"; - version = "2.2.51"; - hash = "sha256-HXuhaJEcr33qYm2v/wFqnO7Ba4lyZgSzvh6dkNZX9XI="; + version = "2.2.54"; + hash = "sha256-rR7hrNX7BE86x51yaqvTKGfcc8ESnniFNOZ8Bu1Yzuc="; }; guiPreview = mkGui { channel = "stable"; - version = "2.2.51"; - hash = "sha256-HXuhaJEcr33qYm2v/wFqnO7Ba4lyZgSzvh6dkNZX9XI="; + version = "2.2.54"; + hash = "sha256-rR7hrNX7BE86x51yaqvTKGfcc8ESnniFNOZ8Bu1Yzuc="; }; serverStable = mkServer { channel = "stable"; - version = "2.2.51"; - hash = "sha256-Yw6RvHZzVU2wWXVxvuIu7GLFyqjakwqJ0EV6H0ZdVcQ="; + version = "2.2.54"; + hash = "sha256-ih/9zIJtex9ikZ4oCuyYEjZ3U/BtxDojOz6FnJ0HOYU="; }; serverPreview = mkServer { channel = "stable"; - version = "2.2.51"; - hash = "sha256-Yw6RvHZzVU2wWXVxvuIu7GLFyqjakwqJ0EV6H0ZdVcQ="; + version = "2.2.54"; + hash = "sha256-ih/9zIJtex9ikZ4oCuyYEjZ3U/BtxDojOz6FnJ0HOYU="; }; } diff --git a/pkgs/applications/science/logic/easycrypt/default.nix b/pkgs/applications/science/logic/easycrypt/default.nix index 15c251e6bc4a..27b39fd790c5 100644 --- a/pkgs/applications/science/logic/easycrypt/default.nix +++ b/pkgs/applications/science/logic/easycrypt/default.nix @@ -10,13 +10,13 @@ stdenv.mkDerivation rec { pname = "easycrypt"; - version = "2025.10"; + version = "2025.11"; src = fetchFromGitHub { owner = "easycrypt"; repo = "easycrypt"; tag = "r${version}"; - hash = "sha256-EF508JsM99lLIqTrWkV/gvlKYRSPQgaLfqxDoOkJbhU="; + hash = "sha256-BLyC8AB075Nyhb5heIKVkxnWWt4Zn8Doo10ShsACJ4g="; }; nativeBuildInputs = diff --git a/pkgs/by-name/al/alvr/package.nix b/pkgs/by-name/al/alvr/package.nix index 23edd3c561bd..d1d757157b26 100644 --- a/pkgs/by-name/al/alvr/package.nix +++ b/pkgs/by-name/al/alvr/package.nix @@ -7,6 +7,7 @@ pkg-config, autoAddDriverRunpath, alsa-lib, + android-tools, brotli, bzip2, celt, @@ -27,6 +28,7 @@ libva, libvdpau, libxkbcommon, + openapv, openssl, openvr, pipewire, @@ -59,6 +61,15 @@ rustPlatform.buildRustPackage rec { }) ]; + postPatch = '' + substituteInPlace alvr/server_openvr/cpp/platform/linux/EncodePipelineVAAPI.cpp \ + --replace-fail 'FF_PROFILE_H264_MAIN' 'AV_PROFILE_H264_MAIN' \ + --replace-fail 'FF_PROFILE_H264_BASELINE' 'AV_PROFILE_H264_BASELINE' \ + --replace-fail 'FF_PROFILE_H264_HIGH' 'AV_PROFILE_H264_HIGH' \ + --replace-fail 'FF_PROFILE_HEVC_MAIN' 'AV_PROFILE_HEVC_MAIN' \ + --replace-fail 'FF_PROFILE_AV1_MAIN' 'AV_PROFILE_AV1_MAIN' + ''; + env = { NIX_CFLAGS_COMPILE = toString [ "-lbrotlicommon" @@ -91,6 +102,7 @@ rustPlatform.buildRustPackage rec { buildInputs = [ alsa-lib + android-tools brotli bzip2 celt @@ -111,6 +123,7 @@ rustPlatform.buildRustPackage rec { libva libvdpau libxkbcommon + openapv openssl openvr pipewire diff --git a/pkgs/by-name/am/amazon-q-cli/package.nix b/pkgs/by-name/am/amazon-q-cli/package.nix index 11dec8b05dd3..897522730b60 100644 --- a/pkgs/by-name/am/amazon-q-cli/package.nix +++ b/pkgs/by-name/am/amazon-q-cli/package.nix @@ -8,7 +8,7 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "amazon-q-cli"; - version = "1.19.4"; + version = "1.19.6"; passthru.updateScript = nix-update-script { }; @@ -16,14 +16,14 @@ rustPlatform.buildRustPackage (finalAttrs: { owner = "aws"; repo = "amazon-q-developer-cli"; tag = "v${finalAttrs.version}"; - hash = "sha256-r5aqlhPwrWRyOKY86E7pKV3Gb7Pnwid+RoT9Gt1DS8Q="; + hash = "sha256-lJ1+EYlG+IzeUvbIGpeN+LisJQgFcYdXPN01cuB66Lw="; }; nativeBuildInputs = [ rustPlatform.bindgenHook ]; - cargoHash = "sha256-s18m3yRJDoDDB8l3HJ0SMLLLmzAs5dZYvopHTG4MbSc="; + cargoHash = "sha256-Y411prX2CH3nkZaVMgZuJChs2tjLJjDj2WPWm7b1cuo="; cargoBuildFlags = [ "-p" diff --git a/pkgs/by-name/am/amp-cli/package-lock.json b/pkgs/by-name/am/amp-cli/package-lock.json index 07772645fe4e..3bbc3afda595 100644 --- a/pkgs/by-name/am/amp-cli/package-lock.json +++ b/pkgs/by-name/am/amp-cli/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "dependencies": { - "@sourcegraph/amp": "^0.0.1762646500-gac8d42" + "@sourcegraph/amp": "^0.0.1763236881-g2ce1ea" } }, "node_modules/@napi-rs/keyring": { @@ -228,9 +228,9 @@ } }, "node_modules/@sourcegraph/amp": { - "version": "0.0.1762646500-gac8d42", - "resolved": "https://registry.npmjs.org/@sourcegraph/amp/-/amp-0.0.1762646500-gac8d42.tgz", - "integrity": "sha512-+1w32tuDcCTUSULBwWeVrOLYGIvS1z/hNWSG4p9v5TC40asudJ6DVHSgIEO4alY4v8lJ3NnDQ1t8FrdwClZi6g==", + "version": "0.0.1763236881-g2ce1ea", + "resolved": "https://registry.npmjs.org/@sourcegraph/amp/-/amp-0.0.1763236881-g2ce1ea.tgz", + "integrity": "sha512-65ghGiRw2y2sjGK2zsh5WaYNYP4g/7Ad87CAHGV51UrVEFYRdB9Mje35foScL/nzWa30rUjRpPNP1pKw55GQxQ==", "license": "Sourcegraph Commercial License", "dependencies": { "@napi-rs/keyring": "1.1.9" diff --git a/pkgs/by-name/am/amp-cli/package.nix b/pkgs/by-name/am/amp-cli/package.nix index 887211dc4916..0815be438151 100644 --- a/pkgs/by-name/am/amp-cli/package.nix +++ b/pkgs/by-name/am/amp-cli/package.nix @@ -9,11 +9,11 @@ buildNpmPackage (finalAttrs: { pname = "amp-cli"; - version = "0.0.1762646500-gac8d42"; + version = "0.0.1763236881-g2ce1ea"; src = fetchzip { url = "https://registry.npmjs.org/@sourcegraph/amp/-/amp-${finalAttrs.version}.tgz"; - hash = "sha256-jChd6cb2IBmEBu/gbCywaHJpN2Mj3EUp8YSKQ9HQd0A="; + hash = "sha256-2pkn3Anp5MB8D+leDU1GCsyd70N3b0S4FjhQYlyc7bs="; }; postPatch = '' @@ -45,7 +45,7 @@ buildNpmPackage (finalAttrs: { chmod +x bin/amp-wrapper.js ''; - npmDepsHash = "sha256-uuGqTutlApLDDFHlK+ACrox5B2KpJGYJP6M4CeCj2v0="; + npmDepsHash = "sha256-ACMguY9qWJ+3YNYFfwLpv5jZt+kVRabms+YZjMzRhzE="; propagatedBuildInputs = [ ripgrep diff --git a/pkgs/by-name/bl/blahaj/package.nix b/pkgs/by-name/bl/blahaj/package.nix index b834d213e8fe..c4237eb424bc 100644 --- a/pkgs/by-name/bl/blahaj/package.nix +++ b/pkgs/by-name/bl/blahaj/package.nix @@ -26,7 +26,7 @@ crystal.buildCrystalPackage rec { meta = with lib; { description = "Gay sharks at your local terminal - lolcat-like CLI tool"; - homepage = "https://blahaj.queer.software"; + homepage = "https://blahaj.geopjr.dev"; license = licenses.bsd2; maintainers = with maintainers; [ aleksana diff --git a/pkgs/by-name/bo/bottom/package.nix b/pkgs/by-name/bo/bottom/package.nix index b649db34aa16..45dd64fb0c90 100644 --- a/pkgs/by-name/bo/bottom/package.nix +++ b/pkgs/by-name/bo/bottom/package.nix @@ -38,6 +38,7 @@ rustPlatform.buildRustPackage (finalAttrs: { --zsh target/tmp/bottom/completion/_btm install -Dm444 desktop/bottom.desktop -t $out/share/applications + install -Dm644 assets/icons/bottom.svg -t $out/share/icons/hicolor/scalable/apps ''; doInstallCheck = true; diff --git a/pkgs/by-name/ca/cargo-wipe/package.nix b/pkgs/by-name/ca/cargo-wipe/package.nix index f4eb1a7e861a..8ca933496820 100644 --- a/pkgs/by-name/ca/cargo-wipe/package.nix +++ b/pkgs/by-name/ca/cargo-wipe/package.nix @@ -7,16 +7,16 @@ rustPlatform.buildRustPackage rec { pname = "cargo-wipe"; - version = "0.3.3"; + version = "0.4.0"; src = fetchFromGitHub { owner = "mihai-dinculescu"; repo = "cargo-wipe"; rev = "v${version}"; - sha256 = "sha256-xMYpZ6a8HdULblkfEqnqLjX8OVFJWx8MHDGNhuFzdTc="; + sha256 = "sha256-r+JMM6KUqcqpLi1Js/2RI8FSoaA5f7yXJ1EuCJB1fyE="; }; - cargoHash = "sha256-6Od0xP0Sp3839WbvN0VVAIsY8I1LAsR62yzXtcCSXQY="; + cargoHash = "sha256-fg1QjHSnK3lxim/t7AO/w1eIKfpJmYqGSGTpakUKBfk="; passthru = { updateScript = nix-update-script { }; diff --git a/pkgs/by-name/cf/cfn-changeset-viewer/package.nix b/pkgs/by-name/cf/cfn-changeset-viewer/package.nix index ec2f8037ad5c..d6e768ba44b8 100644 --- a/pkgs/by-name/cf/cfn-changeset-viewer/package.nix +++ b/pkgs/by-name/cf/cfn-changeset-viewer/package.nix @@ -8,13 +8,13 @@ buildNpmPackage rec { pname = "cfn-changeset-viewer"; - version = "0.3.6"; + version = "0.3.7"; src = fetchFromGitHub { owner = "trek10inc"; repo = "cfn-changeset-viewer"; tag = version; - hash = "sha256-hz1woGmJYOVGuu52DPPwkfbA49F/0hsxoAU6tiTvJx0="; + hash = "sha256-RTGKt8Mq0v3zIFZWTeAV+nDlegw0p9b19wpB/BfQGQk="; }; npmDepsHash = "sha256-NyWZ+8ArlUCsuBN5wZA9vnuX/3HFtuI42/V1+RIKom0="; diff --git a/pkgs/by-name/cl/claude-code/package-lock.json b/pkgs/by-name/cl/claude-code/package-lock.json index b09ccd221be8..3941dbf073d2 100644 --- a/pkgs/by-name/cl/claude-code/package-lock.json +++ b/pkgs/by-name/cl/claude-code/package-lock.json @@ -1,12 +1,12 @@ { "name": "@anthropic-ai/claude-code", - "version": "2.0.37", + "version": "2.0.42", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@anthropic-ai/claude-code", - "version": "2.0.37", + "version": "2.0.42", "license": "SEE LICENSE IN README.md", "bin": { "claude": "cli.js" diff --git a/pkgs/by-name/cl/claude-code/package.nix b/pkgs/by-name/cl/claude-code/package.nix index 5e81951cf53c..922525a21b6e 100644 --- a/pkgs/by-name/cl/claude-code/package.nix +++ b/pkgs/by-name/cl/claude-code/package.nix @@ -7,14 +7,14 @@ }: buildNpmPackage (finalAttrs: { pname = "claude-code"; - version = "2.0.37"; + version = "2.0.42"; src = fetchzip { url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${finalAttrs.version}.tgz"; - hash = "sha256-x4nHkwTE6qcB2PH+WPC0VyJTGeV6VTzeiiAsiQWChoo="; + hash = "sha256-Xn1h9Phw4FLrF0EfrY5MLA0RnOuA6Dk+PWqP7fN1DUU="; }; - npmDepsHash = "sha256-CxhMbABjSEmW4srMjFOhe6YFj7OovrPkgjyOimGSUao="; + npmDepsHash = "sha256-lM1BpuRSH7M5R2FoogMCoQLC+opgN5+LcwW2/5VF+ds="; postPatch = '' cp ${./package-lock.json} package-lock.json diff --git a/pkgs/by-name/cl/clouddrive2/package.nix b/pkgs/by-name/cl/clouddrive2/package.nix index 1f039361ddbb..04fe6bdf3e8b 100644 --- a/pkgs/by-name/cl/clouddrive2/package.nix +++ b/pkgs/by-name/cl/clouddrive2/package.nix @@ -11,16 +11,16 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "clouddrive2"; - version = "0.9.13"; + version = "0.9.15"; src = fetchurl { url = "https://github.com/cloud-fs/cloud-fs.github.io/releases/download/v${finalAttrs.version}/clouddrive-2-${os}-${arch}-${finalAttrs.version}.tgz"; hash = { - x86_64-linux = "sha256-jSmPbx7t4hJiUgPeKz6iugEMJ5RZ27+sJQFHx5YtEGs="; - aarch64-linux = "sha256-UWdVDTj1a+knGNMpXRZvxFlaX6y76Tx631Z0xMnRTjQ="; - x86_64-darwin = "sha256-iNUwjiTRwq4VszBw7qdhtinsxf8zMkTnEb66V/MSB48="; - aarch64-darwin = "sha256-HvNoiHlCzYW+A3QilpqukcCsBVLn18QfXyVPopgJe/0="; + x86_64-linux = "sha256-/VmDByB4uAyx0R2F5EpI7Fve7LIxM2kBMpdAmjFZMLk="; + aarch64-linux = "sha256-P3+oaSACVfe48HeRu4hgGmOcpv7XTHSDOuGdGeBFgtU="; + x86_64-darwin = "sha256-BcPkuejJU6jYinvgP+UQtefMhhu7q6CSwMCSs9byN/4="; + aarch64-darwin = "sha256-r+lIHEEfgGi7RC+TXDg5pdl53ouDicyfJ/HkdCgjIMg="; } .${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}"); }; diff --git a/pkgs/by-name/cl/clusterlint/package.nix b/pkgs/by-name/cl/clusterlint/package.nix index b6b294c1e2d1..2f2671854036 100644 --- a/pkgs/by-name/cl/clusterlint/package.nix +++ b/pkgs/by-name/cl/clusterlint/package.nix @@ -7,13 +7,13 @@ buildGoModule (finalAttrs: { pname = "clusterlint"; - version = "0.12.0"; + version = "0.13.0"; src = fetchFromGitHub { owner = "digitalocean"; repo = "clusterlint"; tag = "v${finalAttrs.version}"; - hash = "sha256-R6Dm7raIYxpulVtadU5AsSwCd5waOBOJRdD3o2vgGM4="; + hash = "sha256-zNrGWXKVpkr4NtDmawkICGy0l8foNr40zcdsdsKVAGY="; }; vendorHash = null; diff --git a/pkgs/by-name/di/difftastic/package.nix b/pkgs/by-name/di/difftastic/package.nix index dea97b8f1ff7..9d40a1637f34 100644 --- a/pkgs/by-name/di/difftastic/package.nix +++ b/pkgs/by-name/di/difftastic/package.nix @@ -9,16 +9,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "difftastic"; - version = "0.65.0"; + version = "0.67.0"; src = fetchFromGitHub { owner = "wilfred"; repo = "difftastic"; tag = finalAttrs.version; - hash = "sha256-w4z1ljIjPQQYPpMGgrcptTYeP5S72iVvVgNvrctN61w="; + hash = "sha256-AgY/v1z4ETHawT+yEwTEaPOLC9GmhR8bGUUBKHY/meQ="; }; - cargoHash = "sha256-qj2CyHlEVxTo3wsmuivpnhx02/gMbZjmpAM3dp4xXEQ="; + cargoHash = "sha256-TTg5Cky1exlvJokIw1IFGbPq4eJe2xSAPsGgI7BU+Jw="; env = lib.optionalAttrs stdenv.hostPlatform.isStatic { RUSTFLAGS = "-C relocation-model=static"; }; diff --git a/pkgs/by-name/et/etcd/package.nix b/pkgs/by-name/et/etcd/package.nix index 1d70cbf0fd3b..895d961b7642 100644 --- a/pkgs/by-name/et/etcd/package.nix +++ b/pkgs/by-name/et/etcd/package.nix @@ -1,3 +1,3 @@ -{ etcd_3_5 }: +{ etcd_3_6 }: -etcd_3_5 +etcd_3_6 diff --git a/pkgs/by-name/et/etcd_3_4/package.nix b/pkgs/by-name/et/etcd_3_4/package.nix index ac404468b339..059bafd39d78 100644 --- a/pkgs/by-name/et/etcd_3_4/package.nix +++ b/pkgs/by-name/et/etcd_3_4/package.nix @@ -7,13 +7,13 @@ buildGo124Module rec { pname = "etcd"; - version = "3.4.38"; + version = "3.4.39"; src = fetchFromGitHub { owner = "etcd-io"; repo = "etcd"; rev = "v${version}"; - hash = "sha256-+fRmz52ZqQTL8JJmSsufoVJP/FGHez9LliEwGsoCE7s="; + hash = "sha256-S1aNEd7pPgSu8vFhXIYFjEvfBG3OtmuKCvD5Zgj0m30="; }; proxyVendor = true; diff --git a/pkgs/by-name/et/etcd_3_5/package.nix b/pkgs/by-name/et/etcd_3_5/package.nix index b5b67dc32c4b..54c6468dbf94 100644 --- a/pkgs/by-name/et/etcd_3_5/package.nix +++ b/pkgs/by-name/et/etcd_3_5/package.nix @@ -8,11 +8,11 @@ }: let - version = "3.5.24"; - etcdSrcHash = "sha256-8qzgMiA/ATSFR5XTzWQhK1SmykHkT/FqBNG0RO93H9w="; - etcdServerVendorHash = "sha256-yCazbIcCOuabYDu7Tl0UTx47UiF/Rhg5O6r2kb+w4SY="; - etcdUtlVendorHash = "sha256-v8JQmyvHhvz7l8i8kwXVX9sAylElVSUnxKD5oUwQDUw="; - etcdCtlVendorHash = "sha256-UNdomi/3Q92CEsUYkt49vFF1Dp1QIFGK7wF/08U3dio="; + version = "3.5.25"; + etcdSrcHash = "sha256-7fCvlp/EG1SofsLC8il/twjg0rEaB/lhz6dnUxgLXik="; + etcdServerVendorHash = "sha256-R78j1BTuY3ORQiMnm2kWJGnK4jJi7am4x0udW4jjcCE="; + etcdUtlVendorHash = "sha256-J+/QgRAU1uk9LXdW8b6AhitFlxx/QU7IkJ+5Jez9MkM="; + etcdCtlVendorHash = "sha256-IiggECH1iFkb51MTeFSFnVbVVDUR1KgsQcbxz9IR4c4="; src = fetchFromGitHub { owner = "etcd-io"; diff --git a/pkgs/by-name/et/etcd_3_6/package.nix b/pkgs/by-name/et/etcd_3_6/package.nix index 49a2ad7f92c1..6da260ea77eb 100644 --- a/pkgs/by-name/et/etcd_3_6/package.nix +++ b/pkgs/by-name/et/etcd_3_6/package.nix @@ -11,11 +11,11 @@ }: let - version = "3.6.5"; - etcdSrcHash = "sha256-d0Ujg9ynnnSW0PYYYrNEmPtLnYW2HcCl+zcVo8ACiS0="; - etcdCtlVendorHash = "sha256-5r3Q+AfWp23tzbYQoD1hXEzRttJrUUKQSpcEV3GIlOE="; - etcdUtlVendorHash = "sha256-funO7EEJs28w4sk4sHVA/KR1TiHumVKNs0Gn/xFl4ig="; - etcdServerVendorHash = "sha256-OtWpX5A+kyQej2bueTqmNf62oKmXGQzjexzXlK/XJms="; + version = "3.6.6"; + etcdSrcHash = "sha256-MFkO2Rv38TQeREJ3zHgRdj3thnMK0ci3laEjn4CaXHs="; + etcdCtlVendorHash = "sha256-VxR/pPS/HR4EBPJJmQin7XqS5MvWreJe2dlOpQn3pqY="; + etcdUtlVendorHash = "sha256-xxq9t47985fA9fDvaanq2sPgUDZJDT2w46zp3pggryo="; + etcdServerVendorHash = "sha256-0uPIw2T9ZrR92MBB1xBBfbqXQUVg6sNDu8F5m1C+lEQ="; src = applyPatches { src = fetchFromGitHub { diff --git a/pkgs/by-name/fi/files-cli/package.nix b/pkgs/by-name/fi/files-cli/package.nix index ed6f3d130e3a..d6e2c5927d82 100644 --- a/pkgs/by-name/fi/files-cli/package.nix +++ b/pkgs/by-name/fi/files-cli/package.nix @@ -8,16 +8,16 @@ buildGoModule rec { pname = "files-cli"; - version = "2.15.134"; + version = "2.15.139"; src = fetchFromGitHub { repo = "files-cli"; owner = "files-com"; rev = "v${version}"; - hash = "sha256-gk8oLcCxlS/T2d1IYRQzZokrrJm2b/hrGgL77C8UW1c="; + hash = "sha256-4G0obQC2USQY9dGdLoOhfp6OvUYXRk/CsGeZHLpoMjg="; }; - vendorHash = "sha256-cjqOv0o8HIHnu6RKFVyCz+Phfh21IZOwRCJlYQdG+Q8="; + vendorHash = "sha256-doL9LiFwPQ1RO6ZJzIQ4IBol2/J+Tc7e8dGDEVdpMQo="; ldflags = [ "-s" diff --git a/pkgs/by-name/fo/font-arabic-misc/package.nix b/pkgs/by-name/fo/font-arabic-misc/package.nix new file mode 100644 index 000000000000..b0a11f198e83 --- /dev/null +++ b/pkgs/by-name/fo/font-arabic-misc/package.nix @@ -0,0 +1,43 @@ +{ + lib, + stdenv, + fetchurl, + bdftopcf, + mkfontscale, + writeScript, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "font-arabic-misc"; + version = "1.0.4"; + + src = fetchurl { + url = "mirror://xorg/individual/font/font-arabic-misc-${finalAttrs.version}.tar.xz"; + hash = "sha256-Rv/mG1LHih0tynD/IKny2E1pdEY5yrmghcen7hdmNGc="; + }; + + strictDeps = true; + + nativeBuildInputs = [ + bdftopcf + mkfontscale + ]; + + passthru = { + updateScript = writeScript "update-${finalAttrs.pname}" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p common-updater-scripts + version="$(list-directory-versions --pname ${finalAttrs.pname} \ + --url https://xorg.freedesktop.org/releases/individual/font/ \ + | sort -V | tail -n1)" + update-source-version ${finalAttrs.pname} "$version" + ''; + }; + + meta = { + description = "Arabic newspaper pcf font"; + homepage = "https://gitlab.freedesktop.org/xorg/font/arabic-misc"; + license = lib.licenses.mit; + maintainers = [ ]; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/by-name/fo/font-cursor-misc/package.nix b/pkgs/by-name/fo/font-cursor-misc/package.nix new file mode 100644 index 000000000000..a25a3e2277ac --- /dev/null +++ b/pkgs/by-name/fo/font-cursor-misc/package.nix @@ -0,0 +1,44 @@ +{ + lib, + stdenv, + fetchurl, + bdftopcf, + mkfontscale, + writeScript, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "font-cursor-misc"; + version = "1.0.4"; + + src = fetchurl { + url = "mirror://xorg/individual/font/font-cursor-misc-${finalAttrs.version}.tar.xz"; + hash = "sha256-JdnJWVATy4yghCBQmZOmQ0yRflPKH+w/Y6zUWhnU+YI="; + }; + + strictDeps = true; + + nativeBuildInputs = [ + bdftopcf + mkfontscale + ]; + + passthru = { + updateScript = writeScript "update-${finalAttrs.pname}" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p common-updater-scripts + version="$(list-directory-versions --pname ${finalAttrs.pname} \ + --url https://xorg.freedesktop.org/releases/individual/font/ \ + | sort -V | tail -n1)" + update-source-version ${finalAttrs.pname} "$version" + ''; + }; + + meta = { + description = "X Cursor as a pcf font"; + homepage = "https://gitlab.freedesktop.org/xorg/font/cursor-misc"; + # "These ""glyphs"" are unencumbered" + license = lib.licenses.publicDomain; + maintainers = [ ]; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/by-name/fo/font-daewoo-misc/package.nix b/pkgs/by-name/fo/font-daewoo-misc/package.nix new file mode 100644 index 000000000000..060e5161c6e2 --- /dev/null +++ b/pkgs/by-name/fo/font-daewoo-misc/package.nix @@ -0,0 +1,44 @@ +{ + lib, + stdenv, + fetchurl, + bdftopcf, + mkfontscale, + writeScript, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "font-daewoo-misc"; + version = "1.0.4"; + + src = fetchurl { + url = "mirror://xorg/individual/font/font-daewoo-misc-${finalAttrs.version}.tar.xz"; + hash = "sha256-9jyLPcjzAJjLhot9ssLAyLWz/Szv0EQDVpekPUx6TzE="; + }; + + strictDeps = true; + + nativeBuildInputs = [ + bdftopcf + mkfontscale + ]; + + passthru = { + updateScript = writeScript "update-${finalAttrs.pname}" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p common-updater-scripts + version="$(list-directory-versions --pname ${finalAttrs.pname} \ + --url https://xorg.freedesktop.org/releases/individual/font/ \ + | sort -V | tail -n1)" + update-source-version ${finalAttrs.pname} "$version" + ''; + }; + + meta = { + description = "Daewoo Gothic and Daewoo Mincho pcf fonts"; + homepage = "https://gitlab.freedesktop.org/xorg/font/daewoo-misc"; + # no license, just a copyright notice + license = lib.licenses.unfree; + maintainers = [ ]; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/by-name/fo/font-dec-misc/package.nix b/pkgs/by-name/fo/font-dec-misc/package.nix new file mode 100644 index 000000000000..d6d21b13bc74 --- /dev/null +++ b/pkgs/by-name/fo/font-dec-misc/package.nix @@ -0,0 +1,43 @@ +{ + lib, + stdenv, + fetchurl, + bdftopcf, + mkfontscale, + writeScript, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "font-dec-misc"; + version = "1.0.4"; + + src = fetchurl { + url = "mirror://xorg/individual/font/font-dec-misc-${finalAttrs.version}.tar.xz"; + hash = "sha256-gtloIB2P+L7A5R3M14G7TU6/F+EQBJRCeb3AIB4WGvc="; + }; + + strictDeps = true; + + nativeBuildInputs = [ + bdftopcf + mkfontscale + ]; + + passthru = { + updateScript = writeScript "update-${finalAttrs.pname}" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p common-updater-scripts + version="$(list-directory-versions --pname ${finalAttrs.pname} \ + --url https://xorg.freedesktop.org/releases/individual/font/ \ + | sort -V | tail -n1)" + update-source-version ${finalAttrs.pname} "$version" + ''; + }; + + meta = { + description = "DEC cursors in pcf font format"; + homepage = "https://gitlab.freedesktop.org/xorg/font/dec-misc"; + license = lib.licenses.hpnd; + maintainers = [ ]; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/by-name/fo/font-ibm-type1/package.nix b/pkgs/by-name/fo/font-ibm-type1/package.nix new file mode 100644 index 000000000000..4762f615625f --- /dev/null +++ b/pkgs/by-name/fo/font-ibm-type1/package.nix @@ -0,0 +1,39 @@ +{ + lib, + stdenv, + fetchurl, + mkfontscale, + writeScript, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "font-ibm-type1"; + version = "1.0.4"; + + src = fetchurl { + url = "mirror://xorg/individual/font/font-ibm-type1-${finalAttrs.version}.tar.xz"; + hash = "sha256-xDlelbpG1AxK0XN+kcrCDAq3VBEym2DbXZn+2Stgzn8="; + }; + + strictDeps = true; + + nativeBuildInputs = [ mkfontscale ]; + + passthru = { + updateScript = writeScript "update-${finalAttrs.pname}" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p common-updater-scripts + version="$(list-directory-versions --pname ${finalAttrs.pname} \ + --url https://xorg.freedesktop.org/releases/individual/font/ \ + | sort -V | tail -n1)" + update-source-version ${finalAttrs.pname} "$version" + ''; + }; + + meta = { + description = "IBM Courier Type1 fonts"; + homepage = "https://gitlab.freedesktop.org/xorg/font/ibm-type1"; + license = lib.licenses.unfreeRedistributable; + maintainers = [ ]; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/by-name/fo/font-jis-misc/package.nix b/pkgs/by-name/fo/font-jis-misc/package.nix new file mode 100644 index 000000000000..a4f3daa955e5 --- /dev/null +++ b/pkgs/by-name/fo/font-jis-misc/package.nix @@ -0,0 +1,46 @@ +{ + lib, + stdenv, + fetchurl, + bdftopcf, + mkfontscale, + writeScript, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "font-jis-misc"; + version = "1.0.4"; + + src = fetchurl { + url = "mirror://xorg/individual/font/font-jis-misc-${finalAttrs.version}.tar.xz"; + hash = "sha256-eNHv9sRx96poAqJtYszPUdjlGFWGQG2bbh7mkbC/+tA="; + }; + + strictDeps = true; + + nativeBuildInputs = [ + bdftopcf + mkfontscale + ]; + + passthru = { + updateScript = writeScript "update-${finalAttrs.pname}" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p common-updater-scripts + version="$(list-directory-versions --pname ${finalAttrs.pname} \ + --url https://xorg.freedesktop.org/releases/individual/font/ \ + | sort -V | tail -n1)" + update-source-version ${finalAttrs.pname} "$version" + ''; + }; + + meta = { + description = "JIS X 9051: 1984 pcf font"; + homepage = "https://gitlab.freedesktop.org/xorg/font/jis-misc"; + # licensing is unclear: + # - COPYING just says "permission to use" + # - The industial standard (JIS X 9051: 1984) this is from, is paid. + license = lib.licenses.unfree; + maintainers = [ ]; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/by-name/fo/font-misc-meltho/package.nix b/pkgs/by-name/fo/font-misc-meltho/package.nix new file mode 100644 index 000000000000..596984a8b072 --- /dev/null +++ b/pkgs/by-name/fo/font-misc-meltho/package.nix @@ -0,0 +1,40 @@ +{ + lib, + stdenv, + fetchurl, + mkfontscale, + writeScript, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "font-misc-meltho"; + version = "1.0.4"; + + src = fetchurl { + url = "mirror://xorg/individual/font/font-misc-meltho-${finalAttrs.version}.tar.xz"; + hash = "sha256-Y75ewXB4iY8mPCQJami0OuWwa4iFLkJUmvoD0STWUhk="; + }; + + strictDeps = true; + + nativeBuildInputs = [ mkfontscale ]; + + passthru = { + updateScript = writeScript "update-${finalAttrs.pname}" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p common-updater-scripts + version="$(list-directory-versions --pname ${finalAttrs.pname} \ + --url https://xorg.freedesktop.org/releases/individual/font/ \ + | sort -V | tail -n1)" + update-source-version ${finalAttrs.pname} "$version" + ''; + }; + + meta = { + description = "Collection of otf fonts designed for the display of syriac text"; + homepage = "https://gitlab.freedesktop.org/xorg/font/misc-meltho"; + # modified Bigelow & Holmes Font License + license = lib.licenses.unfreeRedistributable; + maintainers = [ ]; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/by-name/fo/font-misc-misc/package.nix b/pkgs/by-name/fo/font-misc-misc/package.nix new file mode 100644 index 000000000000..84cd9d1a1abc --- /dev/null +++ b/pkgs/by-name/fo/font-misc-misc/package.nix @@ -0,0 +1,51 @@ +{ + lib, + stdenv, + fetchurl, + pkg-config, + font-util, + bdftopcf, + mkfontscale, + writeScript, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "font-misc-misc"; + version = "1.1.3"; + + src = fetchurl { + url = "mirror://xorg/individual/font/font-misc-misc-${finalAttrs.version}.tar.xz"; + hash = "sha256-eavjYfWLshren1ZYmOSGMAzhzGIdUoW+wm4Utqhhj+0="; + }; + + strictDeps = true; + + nativeBuildInputs = [ + pkg-config + bdftopcf + font-util + mkfontscale + ]; + + buildInputs = [ font-util ]; + + configureFlags = [ "--with-fontrootdir=$(out)/share/fonts/X11" ]; + + passthru = { + updateScript = writeScript "update-${finalAttrs.pname}" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p common-updater-scripts + version="$(list-directory-versions --pname ${finalAttrs.pname} \ + --url https://xorg.freedesktop.org/releases/individual/font/ \ + | sort -V | tail -n1)" + update-source-version ${finalAttrs.pname} "$version" + ''; + }; + + meta = { + description = "Misc pcf fonts in different sizes"; + homepage = "https://gitlab.freedesktop.org/xorg/font/misc-misc"; + license = lib.licenses.publicDomain; + maintainers = [ ]; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/by-name/fz/fzf/package.nix b/pkgs/by-name/fz/fzf/package.nix index 988bf8ff2c83..7a7911d600ae 100644 --- a/pkgs/by-name/fz/fzf/package.nix +++ b/pkgs/by-name/fz/fzf/package.nix @@ -12,13 +12,13 @@ buildGoModule rec { pname = "fzf"; - version = "0.66.1"; + version = "0.67.0"; src = fetchFromGitHub { owner = "junegunn"; repo = "fzf"; rev = "v${version}"; - hash = "sha256-0dq4m5SGu37AGVUoFLgP40vjBTu6cYoUgB+ZhyfKi+M="; + hash = "sha256-P6jyKskc2jT6zMLAMxklN8e/630oWYT4bWim20IMKvo="; }; vendorHash = "sha256-uFXHoseFOxGIGPiWxWfDl339vUv855VHYgSs9rnDyuI="; diff --git a/pkgs/by-name/ga/gapless/package.nix b/pkgs/by-name/ga/gapless/package.nix index ce00a4aacad5..5f12d97da954 100644 --- a/pkgs/by-name/ga/gapless/package.nix +++ b/pkgs/by-name/ga/gapless/package.nix @@ -16,14 +16,14 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "gapless"; - version = "4.5"; + version = "4.6"; src = fetchFromGitLab { domain = "gitlab.gnome.org"; owner = "neithern"; repo = "g4music"; rev = "v${finalAttrs.version}"; - hash = "sha256-P8hmywS/k+24KfFxpQdnBv0ArD+pKgUNcYk/Mnsx5jY="; + hash = "sha256-UzOmf0it0vazKo4PhAhaobJFZc5YKBLq7bcexatROOA="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/gd/gdtoolkit_3/0001-Get-version-with-importlib-instead-of-pkg_resource.patch b/pkgs/by-name/gd/gdtoolkit_3/0001-Get-version-with-importlib-instead-of-pkg_resource.patch new file mode 100644 index 000000000000..6789306d9124 --- /dev/null +++ b/pkgs/by-name/gd/gdtoolkit_3/0001-Get-version-with-importlib-instead-of-pkg_resource.patch @@ -0,0 +1,149 @@ +From c27d6b2f66b26860ddd3811df7a5d02bc59a897c Mon Sep 17 00:00:00 2001 +From: eljamm +Date: Sun, 9 Nov 2025 20:48:07 +0100 +Subject: [PATCH] Get version with importlib instead of pkg_resource + +--- + gdtoolkit/formatter/__main__.py | 4 ++-- + gdtoolkit/gd2py/__main__.py | 4 ++-- + gdtoolkit/gdradon/__main__.py | 4 ++-- + gdtoolkit/linter/__main__.py | 4 ++-- + gdtoolkit/parser/__main__.py | 4 ++-- + gdtoolkit/parser/parser.py | 4 ++-- + 6 files changed, 12 insertions(+), 12 deletions(-) + +diff --git a/gdtoolkit/formatter/__main__.py b/gdtoolkit/formatter/__main__.py +index f71d1e3..7a6b0e4 100644 +--- a/gdtoolkit/formatter/__main__.py ++++ b/gdtoolkit/formatter/__main__.py +@@ -23,7 +23,7 @@ Examples: + echo 'tool' | gdformat - # reads from STDIN + """ + import sys +-import pkg_resources ++from importlib.metadata import version as pkg_version + import difflib + from typing import List, Tuple + +@@ -50,7 +50,7 @@ def main(): + arguments = docopt( + __doc__, + version="gdformat {}".format( +- pkg_resources.get_distribution("gdtoolkit").version ++ pkg_version("gdtoolkit") + ), + ) + +diff --git a/gdtoolkit/gd2py/__main__.py b/gdtoolkit/gd2py/__main__.py +index 47b85b2..bb69c7a 100644 +--- a/gdtoolkit/gd2py/__main__.py ++++ b/gdtoolkit/gd2py/__main__.py +@@ -17,7 +17,7 @@ Examples: + gd2py ./addons/gut/gut.gd | radon cc -s - + """ + import sys +-import pkg_resources ++from importlib.metadata import version as pkg_version + + from docopt import docopt + +@@ -28,7 +28,7 @@ def main(): + sys.stdout.reconfigure(encoding="utf-8") + arguments = docopt( + __doc__, +- version="gd2py {}".format(pkg_resources.get_distribution("gdtoolkit").version), ++ version="gd2py {}".format(pkg_version("gdtoolkit")), + ) + with open(arguments[""], "r", encoding="utf-8") as fh: + print(convert_code(fh.read())) +diff --git a/gdtoolkit/gdradon/__main__.py b/gdtoolkit/gdradon/__main__.py +index d9a2567..289c26e 100644 +--- a/gdtoolkit/gdradon/__main__.py ++++ b/gdtoolkit/gdradon/__main__.py +@@ -13,7 +13,7 @@ Examples: + gdradon cc file1.gd file2.gd path/ + """ + import sys +-import pkg_resources ++from importlib.metadata import version as pkg_version + from typing import List + + from docopt import docopt +@@ -32,7 +32,7 @@ def main(): + arguments = docopt( + __doc__, + version="gdradon {}".format( +- pkg_resources.get_distribution("gdtoolkit").version ++ pkg_version("gdtoolkit") + ), + ) + +diff --git a/gdtoolkit/linter/__main__.py b/gdtoolkit/linter/__main__.py +index 90a8b4d..136aa5e 100644 +--- a/gdtoolkit/linter/__main__.py ++++ b/gdtoolkit/linter/__main__.py +@@ -16,7 +16,7 @@ Options: + """ + import sys + import os +-import pkg_resources ++from importlib.metadata import version as pkg_version + import logging + import pathlib + from typing import List, Optional +@@ -43,7 +43,7 @@ CONFIG_FILE_NAME = "gdlintrc" + def main(): + arguments = docopt( + __doc__, +- version="gdlint {}".format(pkg_resources.get_distribution("gdtoolkit").version), ++ version="gdlint {}".format(pkg_version("gdtoolkit")), + ) + + if arguments["--verbose"]: +diff --git a/gdtoolkit/parser/__main__.py b/gdtoolkit/parser/__main__.py +index 132dfc4..9914817 100644 +--- a/gdtoolkit/parser/__main__.py ++++ b/gdtoolkit/parser/__main__.py +@@ -13,7 +13,7 @@ Options: + --version Show version. + """ + import sys +-import pkg_resources ++from importlib.metadata import version as pkg_version + from typing import Dict + + import lark +@@ -30,7 +30,7 @@ def main(): + arguments = docopt( + __doc__, + version="gdparse {}".format( +- pkg_resources.get_distribution("gdtoolkit").version ++ pkg_version("gdtoolkit") + ), + ) + files = arguments[""] +diff --git a/gdtoolkit/parser/parser.py b/gdtoolkit/parser/parser.py +index 37cc544..51021ec 100644 +--- a/gdtoolkit/parser/parser.py ++++ b/gdtoolkit/parser/parser.py +@@ -6,7 +6,7 @@ and to get an intermediate representation as a Lark Tree. + import os + import pickle + import sys +-import pkg_resources ++from importlib.metadata import version as pkg_version + + from lark import Lark, Tree, indenter + from lark.grammar import Rule +@@ -77,7 +77,7 @@ class Parser: + add_metadata: bool = False, + grammar_filename: str = "gdscript.lark", + ) -> Tree: +- version: str = pkg_resources.get_distribution("gdtoolkit").version ++ version: str = pkg_version("gdtoolkit") + + tree: Tree = None + cache_filepath: str = ( +-- +2.50.1 + diff --git a/pkgs/by-name/gd/gdtoolkit_3/package.nix b/pkgs/by-name/gd/gdtoolkit_3/package.nix index db3d0dee96df..b1220017c691 100644 --- a/pkgs/by-name/gd/gdtoolkit_3/package.nix +++ b/pkgs/by-name/gd/gdtoolkit_3/package.nix @@ -16,35 +16,41 @@ let src = fetchFromGitHub { owner = "lark-parser"; repo = "lark"; - rev = version; + tag = version; hash = "sha256-KN9buVlH8hJ8t0ZP5yefeYM5vH5Gg7a7TEDGKJYpozs="; fetchSubmodules = true; }; - patches = [ ]; }); }; }; in python.pkgs.buildPythonApplication rec { pname = "gdtoolkit3"; - version = "3.5.0"; - format = "setuptools"; + version = "3.6.0"; + pyproject = true; # If we try to get using fetchPypi it requires GeoIP (but the package dont has that dep!?) src = fetchFromGitHub { owner = "Scony"; repo = "godot-gdscript-toolkit"; tag = version; - hash = "sha256-cMGD5Xdf9ElS1NT7Q0NPB//EvUO0MI0VTtps5JRisZ4="; + hash = "sha256-DRZgjCrz/U6jPx1grNuhZTx9iXNyxzR6xWoAm5DKtoA="; }; - disabled = python.pythonOlder "3.7"; + # pkg_resources is deprecated and causes tests to fail + patches = [ + ./0001-Get-version-with-importlib-instead-of-pkg_resource.patch + ]; - propagatedBuildInputs = with python.pkgs; [ + build-system = with python.pkgs; [ + setuptools + ]; + + dependencies = with python.pkgs; [ docopt lark pyyaml - setuptools + radon ]; doCheck = true; @@ -60,12 +66,6 @@ python.pkgs.buildPythonApplication rec { writableTmpDirAsHomeHook ]; - # The tests are not working on NixOS - disabledTests = [ - "test_cc_on_empty_file_succeeds" - "test_cc_on_file_with_single_function_succeeds" - ]; - pythonImportsCheck = [ "gdtoolkit" "gdtoolkit.formatter" @@ -73,11 +73,11 @@ python.pkgs.buildPythonApplication rec { "gdtoolkit.parser" ]; - meta = with lib; { + meta = { description = "Independent set of tools for working with Godot's GDScript - parser, linter and formatter"; homepage = "https://github.com/Scony/godot-gdscript-toolkit"; - license = licenses.mit; - maintainers = with maintainers; [ + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ shiryel tmarkus ]; diff --git a/pkgs/by-name/ge/gemini-cli/package.nix b/pkgs/by-name/ge/gemini-cli/package.nix index 7948a6e18121..6388808ff04e 100644 --- a/pkgs/by-name/ge/gemini-cli/package.nix +++ b/pkgs/by-name/ge/gemini-cli/package.nix @@ -46,6 +46,9 @@ buildNpmPackage (finalAttrs: { # Remove node-pty dependency from packages/core/package.json ${jq}/bin/jq 'del(.optionalDependencies."node-pty")' packages/core/package.json > packages/core/package.json.tmp && mv packages/core/package.json.tmp packages/core/package.json + + # Get rid of auto-update + sed -i '/disableAutoUpdate: {/,/}/ s/default: false/default: true/' packages/cli/src/config/settingsSchema.ts ''; installPhase = '' diff --git a/pkgs/by-name/ge/gerbera/package.nix b/pkgs/by-name/ge/gerbera/package.nix index 53b70d049588..b5e6ad4aa428 100644 --- a/pkgs/by-name/ge/gerbera/package.nix +++ b/pkgs/by-name/ge/gerbera/package.nix @@ -14,6 +14,8 @@ sqlite, zlib, fmt, + jsoncpp, + icu77, # options enableMysql ? false, libmysqlclient, @@ -121,13 +123,13 @@ let in stdenv.mkDerivation rec { pname = "gerbera"; - version = "2.5.0"; + version = "3.0.0"; src = fetchFromGitHub { repo = "gerbera"; owner = "gerbera"; rev = "v${version}"; - sha256 = "sha256-3X8/8ewqXy9tvy4S9frmPENhsYTwaW6SydtJeiyVH1I="; + sha256 = "sha256-dszd4WSTjOWwLNha0yq1gtC5kxCrJMhnnhKYaor8JyU="; }; postPatch = @@ -140,6 +142,7 @@ stdenv.mkDerivation rec { in '' ${mysqlPatch} + substituteInPlace CMakeLists.txt --replace-fail /usr/share/bash-completion/completions $out/share/bash-completion/completions ''; cmakeFlags = [ @@ -162,6 +165,8 @@ stdenv.mkDerivation rec { sqlite zlib fmt + jsoncpp + icu77 ] ++ flatten (builtins.catAttrs "packages" (builtins.filter (e: e.enable) options)); diff --git a/pkgs/by-name/gi/git-cola/package.nix b/pkgs/by-name/gi/git-cola/package.nix index 7e134ceb6fbc..23eea9932438 100644 --- a/pkgs/by-name/gi/git-cola/package.nix +++ b/pkgs/by-name/gi/git-cola/package.nix @@ -14,14 +14,14 @@ python3Packages.buildPythonApplication rec { pname = "git-cola"; - version = "4.16.0"; + version = "4.16.1"; pyproject = true; src = fetchFromGitHub { owner = "git-cola"; repo = "git-cola"; tag = "v${version}"; - hash = "sha256-gBqMwqmpu0+gMeffiFdwy/kBdCUQRpJr+3vzUkBCRSk="; + hash = "sha256-rNu0D3mbGP9cEtVekwSgvjUoTKQkoLx6VuSbyXJEqjY="; }; build-system = with python3Packages; [ diff --git a/pkgs/by-name/go/go2rtc/package.nix b/pkgs/by-name/go/go2rtc/package.nix index 39dbedf1bb94..041381b1d3fe 100644 --- a/pkgs/by-name/go/go2rtc/package.nix +++ b/pkgs/by-name/go/go2rtc/package.nix @@ -6,13 +6,13 @@ buildGoModule rec { pname = "go2rtc"; - version = "1.9.11"; + version = "1.9.12"; src = fetchFromGitHub { owner = "AlexxIT"; repo = "go2rtc"; tag = "v${version}"; - hash = "sha256-MJb88RwASZnURnqb8nmCKvf8G3VW+Vd1JlNtbh7i/Ps="; + hash = "sha256-NM8xH3HpfHOWVcOEM/bcWIwBSeKNLqhNfFTXE75xjH8="; }; vendorHash = "sha256-iOMIbeNh2+tNSMc5BR2h29a7uAru9ER/tPBI59PeeDY="; diff --git a/pkgs/by-name/go/goawk/package.nix b/pkgs/by-name/go/goawk/package.nix index 3def6aaf3fde..8f29104150bb 100644 --- a/pkgs/by-name/go/goawk/package.nix +++ b/pkgs/by-name/go/goawk/package.nix @@ -8,13 +8,13 @@ buildGoModule rec { pname = "goawk"; - version = "1.30.0"; + version = "1.30.1"; src = fetchFromGitHub { owner = "benhoyt"; repo = "goawk"; rev = "v${version}"; - hash = "sha256-wy7rMZ0JyOKWr5u0CTaIaUDuu/SlUR8oVNf4gXWsMWY="; + hash = "sha256-143KcCeZOwn3FkAtpPkfbyTupYCWw2R+tD7R3ldla6I="; }; vendorHash = null; diff --git a/pkgs/by-name/go/gogup/package.nix b/pkgs/by-name/go/gogup/package.nix index 91f18fb8f08d..aaf667871d58 100644 --- a/pkgs/by-name/go/gogup/package.nix +++ b/pkgs/by-name/go/gogup/package.nix @@ -6,16 +6,16 @@ buildGoModule rec { pname = "gogup"; - version = "0.28.0"; + version = "0.28.1"; src = fetchFromGitHub { owner = "nao1215"; repo = "gup"; rev = "v${version}"; - hash = "sha256-VhkmBTU+Zov7w6t/StgQFM9iB36e114pR3Zo4QO3v7k="; + hash = "sha256-n8bYmQcVtiuc55a+/LfS44PbVHCUZ7WUAWOmcodcy9Y="; }; - vendorHash = "sha256-jFeP/0cwAWECuuqLwvMas4Nr7gjyB3BPPfD825yglwE="; + vendorHash = "sha256-ldsGHIKiuVP48taK4kMqtF/xELl+JqAJUCGFKYZdJGU="; doCheck = false; ldflags = [ diff --git a/pkgs/by-name/hi/hidviz/package.nix b/pkgs/by-name/hi/hidviz/package.nix index 93a5d909e20d..906660f7dfd9 100644 --- a/pkgs/by-name/hi/hidviz/package.nix +++ b/pkgs/by-name/hi/hidviz/package.nix @@ -11,18 +11,20 @@ asio, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "hidviz"; version = "0.2.1"; src = fetchFromGitHub { owner = "hidviz"; repo = "hidviz"; - rev = "v${version}"; + rev = "v${finalAttrs.version}"; hash = "sha256-ThDDQ3FN+cLCbdQCrC5zhL4dgg2zAbRWvtei7+qmQg8="; }; - preConfigure = '' + postPatch = '' + substituteInPlace {hidviz,libhidx{,/libhidx{,_server{,_daemon}}}}/CMakeLists.txt \ + --replace-fail 'cmake_minimum_required(VERSION 3.2)' 'cmake_minimum_required(VERSION 3.10)' substituteInPlace libhidx/cmake_modules/Findasio.cmake --replace-fail '/usr/include/asio' '${lib.getDev asio}/include/asio' substituteInPlace libhidx/libhidx/src/Connector.cc --replace-fail '/usr/local/libexec' "$out/libexec" ''; @@ -47,4 +49,4 @@ stdenv.mkDerivation rec { platforms = platforms.linux; maintainers = [ ]; }; -} +}) diff --git a/pkgs/by-name/hy/hyprls/package.nix b/pkgs/by-name/hy/hyprls/package.nix index ba7051ca4974..79c7309d0654 100644 --- a/pkgs/by-name/hy/hyprls/package.nix +++ b/pkgs/by-name/hy/hyprls/package.nix @@ -6,13 +6,13 @@ }: buildGoModule rec { pname = "hyprls"; - version = "0.9.1"; + version = "0.10.0"; src = fetchFromGitHub { owner = "hyprland-community"; repo = "hyprls"; rev = "v${version}"; - hash = "sha256-7bexF3j8xf68V8sWmf1uJrHhAn7+efZX8W6AWfUb/mE="; + hash = "sha256-N6A6j4uhBt64KTIcdhvicAhrLo2EuxwyGbCm5pijCCs="; }; vendorHash = "sha256-QJyG3Kz/lSuuHpGLGDW8fjdhLZK6Pt7PtSPA8EY0ATM="; diff --git a/pkgs/by-name/ka/kazumi/gitHashes.json b/pkgs/by-name/ka/kazumi/gitHashes.json index 88ecda4e668b..b608afe42195 100644 --- a/pkgs/by-name/ka/kazumi/gitHashes.json +++ b/pkgs/by-name/ka/kazumi/gitHashes.json @@ -1,12 +1,12 @@ { "desktop_webview_window": "sha256-l5n57iKLgsH4TaBYRaTDEPznzljI0jfOGcvxyYcIW6M=", - "media_kit": "sha256-nzbpzzc/39qvnjkX5d3tfOE/dG0C7Wgr93Ru3cA2CmY=", - "media_kit_libs_android_video": "sha256-nzbpzzc/39qvnjkX5d3tfOE/dG0C7Wgr93Ru3cA2CmY=", - "media_kit_libs_ios_video": "sha256-nzbpzzc/39qvnjkX5d3tfOE/dG0C7Wgr93Ru3cA2CmY=", - "media_kit_libs_linux": "sha256-nzbpzzc/39qvnjkX5d3tfOE/dG0C7Wgr93Ru3cA2CmY=", - "media_kit_libs_macos_video": "sha256-nzbpzzc/39qvnjkX5d3tfOE/dG0C7Wgr93Ru3cA2CmY=", - "media_kit_libs_video": "sha256-nzbpzzc/39qvnjkX5d3tfOE/dG0C7Wgr93Ru3cA2CmY=", - "media_kit_libs_windows_video": "sha256-nzbpzzc/39qvnjkX5d3tfOE/dG0C7Wgr93Ru3cA2CmY=", - "media_kit_video": "sha256-nzbpzzc/39qvnjkX5d3tfOE/dG0C7Wgr93Ru3cA2CmY=", + "media_kit": "sha256-DW0dvyO6liA17ji3ZMJHhwWD3B6JDTHOMfx8iuBArVw=", + "media_kit_libs_android_video": "sha256-DW0dvyO6liA17ji3ZMJHhwWD3B6JDTHOMfx8iuBArVw=", + "media_kit_libs_ios_video": "sha256-DW0dvyO6liA17ji3ZMJHhwWD3B6JDTHOMfx8iuBArVw=", + "media_kit_libs_linux": "sha256-DW0dvyO6liA17ji3ZMJHhwWD3B6JDTHOMfx8iuBArVw=", + "media_kit_libs_macos_video": "sha256-DW0dvyO6liA17ji3ZMJHhwWD3B6JDTHOMfx8iuBArVw=", + "media_kit_libs_video": "sha256-DW0dvyO6liA17ji3ZMJHhwWD3B6JDTHOMfx8iuBArVw=", + "media_kit_libs_windows_video": "sha256-DW0dvyO6liA17ji3ZMJHhwWD3B6JDTHOMfx8iuBArVw=", + "media_kit_video": "sha256-DW0dvyO6liA17ji3ZMJHhwWD3B6JDTHOMfx8iuBArVw=", "webview_windows": "sha256-6Uk4H2SYhjrs1+/27FmlWopDyM09Mc7SqFJ4syg3dDU=" } diff --git a/pkgs/by-name/ka/kazumi/package.nix b/pkgs/by-name/ka/kazumi/package.nix index 633649f389cc..c045cecb9ecd 100644 --- a/pkgs/by-name/ka/kazumi/package.nix +++ b/pkgs/by-name/ka/kazumi/package.nix @@ -1,7 +1,7 @@ { lib, stdenv, - flutter335, + flutter338, fetchFromGitHub, autoPatchelfHook, alsa-lib, @@ -17,16 +17,16 @@ }: let - version = "1.8.7"; + version = "1.8.8"; src = fetchFromGitHub { owner = "Predidit"; repo = "Kazumi"; tag = version; - hash = "sha256-pt5mM6dCI0v+WExs7oExSGhDKj8yJ9Dpjk5NfCvr20I="; + hash = "sha256-1Avocrqi5HkYQg+rusQJTiBhcfwnjt7uy+BSzGocc3s="; }; in -flutter335.buildFlutterApplication { +flutter338.buildFlutterApplication { pname = "kazumi"; inherit version src; diff --git a/pkgs/by-name/ka/kazumi/pubspec.lock.json b/pkgs/by-name/ka/kazumi/pubspec.lock.json index 8ef0d9c140e2..dd3f55f4136e 100644 --- a/pkgs/by-name/ka/kazumi/pubspec.lock.json +++ b/pkgs/by-name/ka/kazumi/pubspec.lock.json @@ -969,8 +969,8 @@ "dependency": "direct main", "description": { "path": "media_kit", - "ref": "8c4b795d373243d1d64fea932ba497696fd89925", - "resolved-ref": "8c4b795d373243d1d64fea932ba497696fd89925", + "ref": "263aae1413fc5afad9cc5198a0d3e172cc24e418", + "resolved-ref": "263aae1413fc5afad9cc5198a0d3e172cc24e418", "url": "https://github.com/Predidit/media-kit.git" }, "source": "git", @@ -980,8 +980,8 @@ "dependency": "direct overridden", "description": { "path": "libs/android/media_kit_libs_android_video", - "ref": "8c4b795d373243d1d64fea932ba497696fd89925", - "resolved-ref": "8c4b795d373243d1d64fea932ba497696fd89925", + "ref": "263aae1413fc5afad9cc5198a0d3e172cc24e418", + "resolved-ref": "263aae1413fc5afad9cc5198a0d3e172cc24e418", "url": "https://github.com/Predidit/media-kit.git" }, "source": "git", @@ -991,8 +991,8 @@ "dependency": "direct overridden", "description": { "path": "libs/ios/media_kit_libs_ios_video", - "ref": "8c4b795d373243d1d64fea932ba497696fd89925", - "resolved-ref": "8c4b795d373243d1d64fea932ba497696fd89925", + "ref": "263aae1413fc5afad9cc5198a0d3e172cc24e418", + "resolved-ref": "263aae1413fc5afad9cc5198a0d3e172cc24e418", "url": "https://github.com/Predidit/media-kit.git" }, "source": "git", @@ -1002,8 +1002,8 @@ "dependency": "direct overridden", "description": { "path": "libs/linux/media_kit_libs_linux", - "ref": "8c4b795d373243d1d64fea932ba497696fd89925", - "resolved-ref": "8c4b795d373243d1d64fea932ba497696fd89925", + "ref": "263aae1413fc5afad9cc5198a0d3e172cc24e418", + "resolved-ref": "263aae1413fc5afad9cc5198a0d3e172cc24e418", "url": "https://github.com/Predidit/media-kit.git" }, "source": "git", @@ -1013,8 +1013,8 @@ "dependency": "direct overridden", "description": { "path": "libs/macos/media_kit_libs_macos_video", - "ref": "8c4b795d373243d1d64fea932ba497696fd89925", - "resolved-ref": "8c4b795d373243d1d64fea932ba497696fd89925", + "ref": "263aae1413fc5afad9cc5198a0d3e172cc24e418", + "resolved-ref": "263aae1413fc5afad9cc5198a0d3e172cc24e418", "url": "https://github.com/Predidit/media-kit.git" }, "source": "git", @@ -1024,8 +1024,8 @@ "dependency": "direct main", "description": { "path": "libs/universal/media_kit_libs_video", - "ref": "8c4b795d373243d1d64fea932ba497696fd89925", - "resolved-ref": "8c4b795d373243d1d64fea932ba497696fd89925", + "ref": "263aae1413fc5afad9cc5198a0d3e172cc24e418", + "resolved-ref": "263aae1413fc5afad9cc5198a0d3e172cc24e418", "url": "https://github.com/Predidit/media-kit.git" }, "source": "git", @@ -1035,8 +1035,8 @@ "dependency": "direct overridden", "description": { "path": "libs/windows/media_kit_libs_windows_video", - "ref": "8c4b795d373243d1d64fea932ba497696fd89925", - "resolved-ref": "8c4b795d373243d1d64fea932ba497696fd89925", + "ref": "263aae1413fc5afad9cc5198a0d3e172cc24e418", + "resolved-ref": "263aae1413fc5afad9cc5198a0d3e172cc24e418", "url": "https://github.com/Predidit/media-kit.git" }, "source": "git", @@ -1046,8 +1046,8 @@ "dependency": "direct main", "description": { "path": "media_kit_video", - "ref": "8c4b795d373243d1d64fea932ba497696fd89925", - "resolved-ref": "8c4b795d373243d1d64fea932ba497696fd89925", + "ref": "263aae1413fc5afad9cc5198a0d3e172cc24e418", + "resolved-ref": "263aae1413fc5afad9cc5198a0d3e172cc24e418", "url": "https://github.com/Predidit/media-kit.git" }, "source": "git", @@ -1067,11 +1067,11 @@ "dependency": "transitive", "description": { "name": "meta", - "sha256": "e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c", + "sha256": "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394", "url": "https://pub.dev" }, "source": "hosted", - "version": "1.16.0" + "version": "1.17.0" }, "mime": { "dependency": "transitive", @@ -1117,11 +1117,11 @@ "dependency": "direct dev", "description": { "name": "msix", - "sha256": "bbb9b3ff4a9f8e7e7507b2a22dc0517fd1fe3db44e72de7ab052cb6b362406ee", + "sha256": "f88033fcb9e0dd8de5b18897cbebbd28ea30596810f4a7c86b12b0c03ace87e5", "url": "https://pub.dev" }, "source": "hosted", - "version": "3.16.10" + "version": "3.16.12" }, "nested": { "dependency": "transitive", @@ -1414,7 +1414,7 @@ "version": "4.0.1" }, "screen_brightness_android": { - "dependency": "transitive", + "dependency": "direct main", "description": { "name": "screen_brightness_android", "sha256": "d34f5321abd03bc3474f4c381f53d189117eba0b039eac1916aa92cca5fd0a96", @@ -1424,7 +1424,7 @@ "version": "2.1.3" }, "screen_brightness_ios": { - "dependency": "transitive", + "dependency": "direct main", "description": { "name": "screen_brightness_ios", "sha256": "2493953340ecfe8f4f13f61db50ce72533a55b0bbd58ba1402893feecf3727f5", @@ -1783,11 +1783,11 @@ "dependency": "transitive", "description": { "name": "test_api", - "sha256": "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00", + "sha256": "ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55", "url": "https://pub.dev" }, "source": "hosted", - "version": "0.7.6" + "version": "0.7.7" }, "timing": { "dependency": "transitive", @@ -2009,16 +2009,6 @@ "source": "hosted", "version": "15.0.0" }, - "volume_controller": { - "dependency": "transitive", - "description": { - "name": "volume_controller", - "sha256": "d75039e69c0d90e7810bfd47e3eedf29ff8543ea7a10392792e81f9bded7edf5", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.4.0" - }, "wakelock_plus": { "dependency": "transitive", "description": { @@ -2223,6 +2213,6 @@ }, "sdks": { "dart": ">=3.8.0 <4.0.0", - "flutter": ">=3.35.7" + "flutter": ">=3.38.1" } } diff --git a/pkgs/by-name/ku/kubectl-tree/package.nix b/pkgs/by-name/ku/kubectl-tree/package.nix index cec2001c70ee..d9970852d8e0 100644 --- a/pkgs/by-name/ku/kubectl-tree/package.nix +++ b/pkgs/by-name/ku/kubectl-tree/package.nix @@ -6,16 +6,16 @@ buildGoModule rec { pname = "kubectl-tree"; - version = "0.4.3"; + version = "0.4.6"; src = fetchFromGitHub { owner = "ahmetb"; repo = "kubectl-tree"; rev = "v${version}"; - sha256 = "sha256-J4/fiTECcTE0N2E+MPrQKE9Msvvm8DLdvLbnDUnUo74="; + sha256 = "sha256-o5LfWVirp6ENYxqiUSvBDenAzeIIeio2WDD9Ll7Khgk="; }; - vendorHash = "sha256-iblEfpYOvTjd3YXQ3Mmj5XckivHoXf4336H+F7NEfBA="; + vendorHash = "sha256-8vfZDegdPUh7U1ApOYl3PgTPba5cIk4lwRo+5jTZU0s="; meta = { description = "kubectl plugin to browse Kubernetes object hierarchies as a tree"; diff --git a/pkgs/by-name/kv/kvazaar/package.nix b/pkgs/by-name/kv/kvazaar/package.nix index b28157fa4245..d10f471adf55 100644 --- a/pkgs/by-name/kv/kvazaar/package.nix +++ b/pkgs/by-name/kv/kvazaar/package.nix @@ -21,10 +21,7 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-Th30XO3m4GVeDvdb/RIwKT6+To9C/YU7y8s8hm7vPi0="; }; - # https://github.com/ultravideo/kvazaar/pull/426 postPatch = '' - substituteInPlace CMakeLists.txt --replace-fail 'NOT LINUX' 'NOT LINUX AND NOT BSD' - substituteInPlace tests/util.sh --replace-fail '../libtool' '${lib.getExe libtool}' substituteInPlace tests/util.sh --replace-fail 'TAppDecoderStatic' '${lib.getExe' hm "TAppDecoder"}' @@ -46,6 +43,8 @@ stdenv.mkDerivation (finalAttrs: { doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform; + env.XFAIL_TESTS = lib.optionalString stdenv.hostPlatform.isDarwin "test_slices.sh"; + passthru = { updateScript = gitUpdater { rev-prefix = "v"; }; tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; diff --git a/pkgs/by-name/li/libamplsolver/package.nix b/pkgs/by-name/li/libamplsolver/package.nix index 3ad35f748471..62fd07444840 100644 --- a/pkgs/by-name/li/libamplsolver/package.nix +++ b/pkgs/by-name/li/libamplsolver/package.nix @@ -25,6 +25,10 @@ stdenv.mkDerivation { }) ]; + # Allow install_name_tool rewrite paths on darwin. + # error: install_name_tool: changing install names or rpaths can't be redone for: /nix/store/...-libamplsolver-.../lib/libamplsolver.dylib (for architecture arm64) because larger updated load commands do not fit (the program must be relinked, and you may need to use -headerpad or -headerpad_max_install_names) + NIX_LDFLAGS = lib.optional stdenv.hostPlatform.isDarwin "-headerpad_max_install_names"; + installPhase = '' runHook preInstall pushd sys.$(uname -m).$(uname -s) diff --git a/pkgs/by-name/li/libdeltachat/package.nix b/pkgs/by-name/li/libdeltachat/package.nix index e51d4f26218d..cda2e2352598 100644 --- a/pkgs/by-name/li/libdeltachat/package.nix +++ b/pkgs/by-name/li/libdeltachat/package.nix @@ -20,13 +20,13 @@ stdenv.mkDerivation rec { pname = "libdeltachat"; - version = "2.26.0"; + version = "2.27.0"; src = fetchFromGitHub { owner = "chatmail"; repo = "core"; tag = "v${version}"; - hash = "sha256-ULOnR1YvNmKr7iEuf8cZ+WgN4JRIG3md9gwyXK81vPQ="; + hash = "sha256-kYVT3frpY/OrEhLqIEUFljqT8RW6wV9QiOa48ycCLDc="; }; patches = [ @@ -36,7 +36,7 @@ stdenv.mkDerivation rec { cargoDeps = rustPlatform.fetchCargoVendor { pname = "chatmail-core"; inherit version src; - hash = "sha256-EkYlG32EhtIFFDpVgbKw8TSqHhPHgxd6Kh3wYN4Moq8="; + hash = "sha256-Tz85eTwo+FVjUmwCBnKaRrgLkClsqN4hLE6l5lgMqzk="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/li/libgaminggear/package.nix b/pkgs/by-name/li/libgaminggear/package.nix index 46daaf734fb6..504f9e8483bf 100644 --- a/pkgs/by-name/li/libgaminggear/package.nix +++ b/pkgs/by-name/li/libgaminggear/package.nix @@ -1,6 +1,7 @@ { lib, stdenv, + fetchpatch2, fetchurl, cmake, pkg-config, @@ -23,6 +24,13 @@ stdenv.mkDerivation rec { sha256 = "0jf5i1iv8j842imgiixbhwcr6qcwa93m27lzr6gb01ri5v35kggz"; }; + patches = [ + (fetchpatch2 { + url = "https://aur.archlinux.org/cgit/aur.git/plain/cmake_min_version.patch?h=libgaminggear&id=bfe7db62db76dbcefa8ba47640a35c80183f91d3"; + hash = "sha256-loznfqxlucYlDUSYotMdUBmivKu+DD+OYhRIWpcrSgE="; + }) + ]; + outputs = [ "dev" "out" diff --git a/pkgs/by-name/li/liboqs/package.nix b/pkgs/by-name/li/liboqs/package.nix index c317887a65b9..3ec3eb542d98 100644 --- a/pkgs/by-name/li/liboqs/package.nix +++ b/pkgs/by-name/li/liboqs/package.nix @@ -11,13 +11,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "liboqs"; - version = "0.14.0"; + version = "0.15.0"; src = fetchFromGitHub { owner = "open-quantum-safe"; repo = "liboqs"; rev = finalAttrs.version; - hash = "sha256-BJgsXbKcQjJFk/A7JvkA0NKztv0BAnkgCAXv/TM2/04="; + hash = "sha256-ATnI1QFFljTmMib6oOCiieDQMTwnEe+xIvcAzrz3bbI="; }; patches = [ diff --git a/pkgs/by-name/li/librashader/package.nix b/pkgs/by-name/li/librashader/package.nix index 3c6009b279b1..336db2a24f46 100644 --- a/pkgs/by-name/li/librashader/package.nix +++ b/pkgs/by-name/li/librashader/package.nix @@ -8,20 +8,20 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "librashader"; - version = "0.9.1"; + version = "0.9.2"; src = fetchFromGitHub { owner = "SnowflakePowered"; repo = "librashader"; tag = "librashader-v${finalAttrs.version}"; - hash = "sha256-jrx7TzV9Q7JB8se6J5Wfa1iT1RSJnZbjEn7yTZ64zYU="; + hash = "sha256-Jv7orDUusmI+CHPFXO7ILZ2vH11OwdSMBQfJuMBrlvI="; }; patches = [ ./patches/fix-optional-dep-syntax.patch ]; - cargoHash = "sha256-LFub48GklgOLncqazAIn2Bz+tSsXgS4TTnAdfYw7xHk="; + cargoHash = "sha256-BS4290tih96NWhcpmQeFUjYfM6NKlQP070jCIkyxTuE="; buildPhase = '' runHook preBuild diff --git a/pkgs/by-name/li/likwid/package.nix b/pkgs/by-name/li/likwid/package.nix index ae9e838bd3c3..8c894f42d192 100644 --- a/pkgs/by-name/li/likwid/package.nix +++ b/pkgs/by-name/li/likwid/package.nix @@ -10,11 +10,11 @@ stdenv.mkDerivation rec { pname = "likwid"; - version = "5.4.1"; + version = "5.5.0"; src = fetchurl { url = "https://ftp.fau.de/pub/likwid/likwid-${version}.tar.gz"; - hash = "sha256-V3OFFFXbukieLjc1kx5RVHN3zReWyYKlrIjQ8imcCBE="; + hash = "sha256-aIkk/gE0BwfCwxi3+GfuYPt1G5X0lUvILTofdqOhUFY="; }; nativeBuildInputs = [ perl ]; diff --git a/pkgs/by-name/ll/llama-cpp/package.nix b/pkgs/by-name/ll/llama-cpp/package.nix index 975e361a58eb..1c34821e632b 100644 --- a/pkgs/by-name/ll/llama-cpp/package.nix +++ b/pkgs/by-name/ll/llama-cpp/package.nix @@ -36,7 +36,6 @@ vulkan-headers, vulkan-loader, ninja, - git, }: let @@ -92,7 +91,6 @@ effectiveStdenv.mkDerivation (finalAttrs: { cmake ninja pkg-config - git ] ++ optionals cudaSupport [ cudaPackages.cuda_nvcc diff --git a/pkgs/by-name/lm/lms/package.nix b/pkgs/by-name/lm/lms/package.nix index a72749076183..803de1971544 100644 --- a/pkgs/by-name/lm/lms/package.nix +++ b/pkgs/by-name/lm/lms/package.nix @@ -23,13 +23,13 @@ stdenv.mkDerivation rec { pname = "lms"; - version = "3.71.0"; + version = "3.72.0"; src = fetchFromGitHub { owner = "epoupon"; repo = "lms"; rev = "v${version}"; - hash = "sha256-Bla4GmVbBJl/wjaD/CLnlvR/xMrTRwAlVODyMBkxzhw="; + hash = "sha256-ZKMw2P9UeBVdQ0jKDdkAQ84GyviJ+YW9afCY/geKWnQ="; }; strictDeps = true; diff --git a/pkgs/by-name/lu/lubelogger/deps.json b/pkgs/by-name/lu/lubelogger/deps.json index b27469702b66..db5fe6a1f670 100644 --- a/pkgs/by-name/lu/lubelogger/deps.json +++ b/pkgs/by-name/lu/lubelogger/deps.json @@ -1,13 +1,13 @@ [ { "pname": "BouncyCastle.Cryptography", - "version": "2.4.0", - "hash": "sha256-DoDZNWtYM+0OLIclOEZ+tjcGXymGlXvdvq2ZMPmiAJA=" + "version": "2.6.1", + "hash": "sha256-0NNwK/UZlnIK4Nb7bs4ya0XfoVluKQPUVQvaR88UHKo=" }, { "pname": "CsvHelper", - "version": "30.0.1", - "hash": "sha256-lCfo0ZQUJFXABIi18fy/alC1YGwkwM+lGy2zL47RAWw=" + "version": "33.1.0", + "hash": "sha256-pEfX4o63xupI7uuwe6qa05One0pJ7UbzzJqLh4Shju8=" }, { "pname": "LiteDB", @@ -16,62 +16,67 @@ }, { "pname": "MailKit", - "version": "4.8.0", - "hash": "sha256-ONvrVOwjxyNrIQM8FMzT5mLzlU56Kc8oOwkzegNAiXM=" + "version": "4.14.1", + "hash": "sha256-YSEcfyYVskwJX6xa13wGW4JgHn0VpD04CtUiAGn3et0=" }, { "pname": "Microsoft.Extensions.DependencyInjection.Abstractions", "version": "8.0.0", "hash": "sha256-75KzEGWjbRELczJpCiJub+ltNUMMbz5A/1KQU+5dgP8=" }, + { + "pname": "Microsoft.Extensions.DependencyInjection.Abstractions", + "version": "8.0.2", + "hash": "sha256-UfLfEQAkXxDaVPC7foE/J3FVEXd31Pu6uQIhTic3JgY=" + }, { "pname": "Microsoft.Extensions.Logging.Abstractions", "version": "8.0.0", "hash": "sha256-Jmddjeg8U5S+iBTwRlVAVLeIHxc4yrrNgqVMOB7EjM4=" }, + { + "pname": "Microsoft.Extensions.Logging.Abstractions", + "version": "8.0.2", + "hash": "sha256-cHpe8X2BgYa5DzulZfq24rg8O2K5Lmq2OiLhoyAVgJc=" + }, { "pname": "Microsoft.IdentityModel.Abstractions", - "version": "7.3.1", - "hash": "sha256-lbZKfnulWcM4Mxbz6Hkrp/lM41hsOfCnsHLEb+u2czc=" + "version": "8.14.0", + "hash": "sha256-bkCuz1Wj56N+LHWLvHKLcCtIRqBK+3k5vD2qfB7xXKk=" }, { "pname": "Microsoft.IdentityModel.JsonWebTokens", - "version": "7.3.1", - "hash": "sha256-C7uySnKBB0e5Wf6z8YNtjbtBbhalJMdqx0EWVcYy7Q4=" + "version": "8.14.0", + "hash": "sha256-YBXaSWnLgxIQxv+Lwt2aRC20miFguNZbbuTc2Jjq+Ys=" }, { "pname": "Microsoft.IdentityModel.Logging", - "version": "7.3.1", - "hash": "sha256-6OHGsItAXicCSlW0ghCy5szNi6HwhlCmbykbN1O5yAw=" + "version": "8.14.0", + "hash": "sha256-QvCJplLvTGTXZKGbRMccW2hld6oWUhHkneZd+msn9aE=" }, { "pname": "Microsoft.IdentityModel.Tokens", - "version": "7.3.1", - "hash": "sha256-qfTNU0g9QA8kV42VTAez1pSTmfFRJBbeTbGn/nfGFUU=" + "version": "8.14.0", + "hash": "sha256-ALeMe3AjEy4dazHTBeR1JHMtzm+sqS3RbrjQWoNbuno=" }, { "pname": "MimeKit", - "version": "4.8.0", - "hash": "sha256-4EB54ktBXuq5QRID9i8E7FzU7YZTE4wwH+2yr7ivi/Q=" + "version": "4.14.0", + "hash": "sha256-06dqA6w2V2D+miq387smCuJ/8fk1FVc0rvRjmglAWyM=" }, { "pname": "Npgsql", - "version": "8.0.5", - "hash": "sha256-vGIznPqwfhg8wY9bt5XlinyNWMr5kJ2jJZHDXc73uhI=" + "version": "9.0.4", + "hash": "sha256-YH2QYLe56dH6NNGgSwLIaHefjkKQLh0Sf4vMWoJciyU=" }, { "pname": "System.Formats.Asn1", "version": "8.0.1", "hash": "sha256-may/Wg+esmm1N14kQTG4ESMBi+GQKPp0ZrrBo/o6OXM=" }, - { - "pname": "System.IdentityModel.Tokens.Jwt", - "version": "7.3.1", - "hash": "sha256-Si60aDtJSjvXvY5ZkVQKF3JzxAkmkAKOw5D/q8CwuyQ=" - }, { "pname": "System.Security.Cryptography.Pkcs", - "version": "8.0.0", - "hash": "sha256-yqfIIeZchsII2KdcxJyApZNzxM/VKknjs25gDWlweBI=" + "version": "8.0.1", + "hash": "sha256-KMNIkJ3yQ/5O6WIhPjyAIarsvIMhkp26A6aby5KkneU=" } ] diff --git a/pkgs/by-name/lu/lubelogger/package.nix b/pkgs/by-name/lu/lubelogger/package.nix index c8da3311fa57..01d6c6c99188 100644 --- a/pkgs/by-name/lu/lubelogger/package.nix +++ b/pkgs/by-name/lu/lubelogger/package.nix @@ -7,13 +7,13 @@ buildDotnetModule rec { pname = "lubelogger"; - version = "1.4.5"; + version = "1.5.4"; src = fetchFromGitHub { owner = "hargata"; repo = "lubelog"; rev = "v${version}"; - hash = "sha256-ZlB9lyfC4xrLWAb+Jbo6eI/LuYjvgMEauQeLxGCqy88="; + hash = "sha256-YynkoqifKgEH8yiewcVVmMT0kX+NXaansJ7Z78NfXm4="; }; projectFile = "CarCareTracker.sln"; diff --git a/pkgs/by-name/ma/manga-tui/package.nix b/pkgs/by-name/ma/manga-tui/package.nix index a8e2e4e7c5be..a9bb47a876c9 100644 --- a/pkgs/by-name/ma/manga-tui/package.nix +++ b/pkgs/by-name/ma/manga-tui/package.nix @@ -10,7 +10,7 @@ nix-update-script, }: let - version = "0.9.0"; + version = "0.10.0"; in rustPlatform.buildRustPackage { pname = "manga-tui"; @@ -20,10 +20,10 @@ rustPlatform.buildRustPackage { owner = "josueBarretogit"; repo = "manga-tui"; rev = "v${version}"; - hash = "sha256-Q+zTYdAaCztYYtSgHK1X7oE8Q7oHYpf+hAfGAzU4HoA="; + hash = "sha256-HD/27YFapOq32DE89Y6RNTBGHvpCbh/0fOhUECVe8sM="; }; - cargoHash = "sha256-FW+nrpFsQl38iqmhMyMmSvF/0W0iVy5+/Hyun8bWJP4="; + cargoHash = "sha256-JvN9vG4kxmGd3odR/RnUV0dK7I94EEMITePyr0cP4pg="; nativeBuildInputs = [ pkg-config ]; diff --git a/pkgs/by-name/md/mdfried/package.nix b/pkgs/by-name/md/mdfried/package.nix index 625c4b439577..a2e58165d8b2 100644 --- a/pkgs/by-name/md/mdfried/package.nix +++ b/pkgs/by-name/md/mdfried/package.nix @@ -6,16 +6,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "mdfried"; - version = "0.14.4"; + version = "0.14.5"; src = fetchFromGitHub { owner = "benjajaja"; repo = "mdfried"; tag = "v${finalAttrs.version}"; - hash = "sha256-MvyLJyCfZw4pCJOHwqcxtgKVrUE7dHFzoVyQwwfA69k="; + hash = "sha256-eEjbWSkQcieHLNAPgWTZ1ZJEvoPkHzIaA0dHuqLzzyA="; }; - cargoHash = "sha256-FFKtJI3mBkRQARm6urcgbUNnBEyZA3BI4epsRVb1dwc="; + cargoHash = "sha256-sPAcSr+W4W4I3lHa6Km62Grp2ZdOCMHLZdN2KNrC0qw="; doCheck = true; diff --git a/pkgs/by-name/mi/microcode-intel/package.nix b/pkgs/by-name/mi/microcode-intel/package.nix index 9d2135645bea..5e5f8560592b 100644 --- a/pkgs/by-name/mi/microcode-intel/package.nix +++ b/pkgs/by-name/mi/microcode-intel/package.nix @@ -9,13 +9,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "microcode-intel"; - version = "20250812"; + version = "20251111"; src = fetchFromGitHub { owner = "intel"; repo = "Intel-Linux-Processor-Microcode-Data-Files"; rev = "microcode-${finalAttrs.version}"; - hash = "sha256-FfHSAMu4cvJKOjufr5ZwYHHn8dYa77jR5Br65vGP5Y8="; + hash = "sha256-Gn3VKagfMtYbtkh70TlDmy0OBUUbsRiRxHkJtTGEVrY="; }; nativeBuildInputs = [ libarchive ]; diff --git a/pkgs/by-name/mi/microsoft-edge/package.nix b/pkgs/by-name/mi/microsoft-edge/package.nix index 0c07af51a6d3..9382d97f966d 100644 --- a/pkgs/by-name/mi/microsoft-edge/package.nix +++ b/pkgs/by-name/mi/microsoft-edge/package.nix @@ -162,11 +162,11 @@ let in stdenvNoCC.mkDerivation (finalAttrs: { pname = "microsoft-edge"; - version = "142.0.3595.65"; + version = "142.0.3595.80"; src = fetchurl { url = "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_${finalAttrs.version}-1_amd64.deb"; - hash = "sha256-aqQH4ttBWTjpzAEeWpheEJiu1FUMKMJu9j8Gu2pldbA="; + hash = "sha256-yHOy/9t08GbY4ufsYPMr87NVqsk/CHGc7bu0N/KAOW0="; }; # With strictDeps on, some shebangs were not being patched correctly diff --git a/pkgs/by-name/mk/mkvtoolnix/package.nix b/pkgs/by-name/mk/mkvtoolnix/package.nix index c8235d4421bf..1fd01afbdbf5 100644 --- a/pkgs/by-name/mk/mkvtoolnix/package.nix +++ b/pkgs/by-name/mk/mkvtoolnix/package.nix @@ -52,14 +52,14 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "mkvtoolnix"; - version = "95.0"; + version = "96.0"; src = fetchFromGitea { domain = "codeberg.org"; owner = "mbunkus"; repo = "mkvtoolnix"; tag = "release-${finalAttrs.version}"; - hash = "sha256-FwOVqBHzgDveT8dGRfb2ONIAhCGEKU4UqpM3g7m0klA="; + hash = "sha256-0jypoZK6lTWAQwcuOVH3EWtA9B01bVIay4HNgEDJIRI="; }; passthru = { diff --git a/pkgs/by-name/ms/mslicer/package.nix b/pkgs/by-name/ms/mslicer/package.nix index 1d01ee8c689e..ff428aad600b 100644 --- a/pkgs/by-name/ms/mslicer/package.nix +++ b/pkgs/by-name/ms/mslicer/package.nix @@ -11,16 +11,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "mslicer"; - version = "0.2.2"; + version = "0.3.0"; src = fetchFromGitHub { owner = "connorslade"; repo = "mslicer"; rev = finalAttrs.version; - hash = "sha256-37EOdMM/stMKwTTpQ0LWYZVUw2Y3CkoEGHWNthyQnSA="; + hash = "sha256-k/LoJ+GqtVHZab5BEXQ5k2SJkM9hwbOkPA6c+3i9Ylo="; }; - cargoHash = "sha256-nkNoyoMqcFLCuQ8TqRn4e5L2zbgjw615HIAuLVqg0vQ="; + cargoHash = "sha256-a+nIVDjR+7Bh36GPNtWqKQvQgNo0w3KHWPmYpU7WMkM="; buildInputs = [ libglvnd diff --git a/pkgs/by-name/na/nakama/package.nix b/pkgs/by-name/na/nakama/package.nix index 684d11a43604..3bf2084b10a6 100644 --- a/pkgs/by-name/na/nakama/package.nix +++ b/pkgs/by-name/na/nakama/package.nix @@ -6,13 +6,13 @@ buildGoModule rec { pname = "nakama"; - version = "3.33.1"; + version = "3.34.1"; src = fetchFromGitHub { owner = "heroiclabs"; repo = "nakama"; tag = "v${version}"; - hash = "sha256-e+Z8BmEbBJazSorIYuVIbrwKHATN9SWTBOh60ol/c8g="; + hash = "sha256-fCQM3e1lsy1xHxoUZnVxMsRh+RLvNGGCN86DsEMjQys="; }; vendorHash = null; diff --git a/pkgs/by-name/ne/newsflash/package.nix b/pkgs/by-name/ne/newsflash/package.nix index ec206d87410c..a33d662d400f 100644 --- a/pkgs/by-name/ne/newsflash/package.nix +++ b/pkgs/by-name/ne/newsflash/package.nix @@ -22,23 +22,23 @@ glib-networking, librsvg, gst_all_1, - gitUpdater, + nix-update-script, }: stdenv.mkDerivation (finalAttrs: { pname = "newsflash"; - version = "4.1.4"; + version = "4.2.1"; src = fetchFromGitLab { owner = "news-flash"; repo = "news_flash_gtk"; tag = "v.${finalAttrs.version}"; - hash = "sha256-3RGa1f+V7dIgTxQKOceVSr7RwajUgwq05ypBhg6RjMA="; + hash = "sha256-me9/2sA1Thne10+JrSMvicDRxXuevCnM8Tb+kwXzNDI="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit (finalAttrs) pname version src; - hash = "sha256-CRQH22EP/G6osjsuZJmTWwjq4C06DxiIXlz6zxgbDv4="; + hash = "sha256-cgu1zP85UCb/6gYNcj/khc6u1kSwX0UZ2oIjM2UUBOA="; }; postPatch = '' @@ -65,7 +65,6 @@ stdenv.mkDerivation (finalAttrs: { # Provides setup hook to fix "Unrecognized image file format" gdk-pixbuf - ]; buildInputs = [ @@ -91,17 +90,20 @@ stdenv.mkDerivation (finalAttrs: { gst-plugins-bad ]); - # For https://gitlab.com/news-flash/news_flash_gtk/-/blob/8e5fc4acf5ca6be5b8cd616466a17e7a273f9dda/src/meson.build#L47 + # For https://gitlab.com/news-flash/news_flash_gtk/-/blob/v.4.2.1/src/meson.build#L48 env.CARGO_BUILD_TARGET = stdenv.hostPlatform.rust.rustcTargetSpec; - passthru.updateScript = gitUpdater { - rev-prefix = "v."; - ignoredVersions = "(alpha|beta|rc)"; + passthru.updateScript = nix-update-script { + extraArgs = [ + "--version-regex" + "^v.(\\d+\\.\\d+\\.\\d+)$" + ]; }; meta = { description = "Modern feed reader designed for the GNOME desktop"; homepage = "https://gitlab.com/news-flash/news_flash_gtk"; + changelog = "https://gitlab.com/news-flash/news_flash_gtk/-/raw/${finalAttrs.src.tag}/data/io.gitlab.news_flash.NewsFlash.appdata.xml.in.in#:~:text=%3Crelease%20version=%22${finalAttrs.version}%22,%3C/release%3E"; license = lib.licenses.gpl3Plus; maintainers = with lib.maintainers; [ kira-bruneau diff --git a/pkgs/by-name/ne/nezha-theme-nazhua/package.nix b/pkgs/by-name/ne/nezha-theme-nazhua/package.nix index 8439ab229cc1..307939677eb6 100644 --- a/pkgs/by-name/ne/nezha-theme-nazhua/package.nix +++ b/pkgs/by-name/ne/nezha-theme-nazhua/package.nix @@ -12,13 +12,13 @@ stdenvNoCC.mkDerivation (finalAttrs: { pname = "nezha-theme-nazhua"; - version = "0.7.0"; + version = "0.8.0"; src = fetchFromGitHub { owner = "hi2shark"; repo = "nazhua"; tag = "v${finalAttrs.version}"; - hash = "sha256-zzdfttj6yURNgB0uS1DtwIREWbd88+oIkgiupjw/8oA="; + hash = "sha256-kXiFvVSwOXn/MDwQIBmN+1wp8wO4P9hw1zcYcTBHmXA="; }; yarnOfflineCache = fetchYarnDeps { diff --git a/pkgs/by-name/nv/nvi/macports-patches.nix b/pkgs/by-name/nv/nvi/macports-patches.nix new file mode 100644 index 000000000000..501a74b4e8da --- /dev/null +++ b/pkgs/by-name/nv/nvi/macports-patches.nix @@ -0,0 +1,17 @@ +let + url = "https://github.com/macports/macports-ports/raw/abae7e550897dc13b7a48763a7a022b709d8793f/editors/nvi/files"; + hashes = { + "dynamic_lookup-11.patch" = "sha256-eXLSMUtslSXLYd1HZRD6pfqcYMIA3EtixWL1yvx4ook="; + "patch-common_key.h.diff" = "sha256-AAO/2lHpmFJMYb9fyQrWnGPaJYLdwhrp87tbHu5hr/k="; + "patch-dist_port.h.in.diff" = "sha256-GPKgIm9pDGtN6CNqbX3+hANkZbYFql5K5JyjCr5TIKI="; + "patch-ex_script.c.diff" = "sha256-IUuJ7b6A5O3q6qQCwZsrc9Bt1LpjU3DgxHTwtMp16Qc="; + "patch-includes.diff" = "sha256-j3V4LmcJEFqnTlTHFZFd8NtycEa+GKM+ZIUwZHjq15w="; + }; +in +builtins.attrValues ( + builtins.mapAttrs (n: v: { + url = "${url}/${n}"; + hash = v; + extraPrefix = ""; + }) hashes +) diff --git a/pkgs/by-name/nv/nvi/package.nix b/pkgs/by-name/nv/nvi/package.nix index 645990b7669c..48b381611940 100644 --- a/pkgs/by-name/nv/nvi/package.nix +++ b/pkgs/by-name/nv/nvi/package.nix @@ -5,6 +5,7 @@ fetchpatch, ncurses, db, + libiconv, }: stdenv.mkDerivation rec { @@ -13,31 +14,54 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://deb.debian.org/debian/pool/main/n/nvi/nvi_${version}.orig.tar.gz"; - sha256 = "13cp9iz017bk6ryi05jn7drbv7a5dyr201zqd3r4r8srj644ihwb"; + hash = "sha256-i8NIiJFZo0zyaPgHILJvRZ29cjtWFhB9NnOdAH5Ml40="; }; patches = # Apply patches from debian package - map fetchurl (import ./debian-patches.nix); + (map fetchurl (import ./debian-patches.nix)) + ++ + # Also select patches from macports + # They don't interfere with Linux build + # https://github.com/macports/macports-ports/tree/master/editors/nvi/files + (map fetchpatch (import ./macports-patches.nix)); buildInputs = [ ncurses db - ]; + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ]; preConfigure = '' cd build.unix ''; + configureScript = "../dist/configure"; + configureFlags = [ "vi_cv_path_preserve=/tmp" "--enable-widechar" ]; - meta = with lib; { + env.NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isDarwin "-liconv"; + + meta = { description = "Berkeley Vi Editor"; - license = licenses.free; - platforms = platforms.unix; - broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/nvi.x86_64-darwin + longDescription = '' + nvi ("new vi") is a re-implementation of the + classic Berkeley text editor vi, written by + Keith Bostic at UC Berkeley for 4BSD. Created + to replace Unix-derived code in BSD, it provides + a clean, unencumbered version of the original + editor and is the default vi on all major BSD + systems as well as MINIX. + ''; + license = lib.licenses.bsd3; + platforms = lib.platforms.unix; + mainProgram = "vi"; + maintainers = with lib.maintainers; [ + suominen + aleksana + ]; }; } diff --git a/pkgs/by-name/nz/nzbhydra2/package.nix b/pkgs/by-name/nz/nzbhydra2/package.nix index b2b4a3cc1c7c..7963e3a3a314 100644 --- a/pkgs/by-name/nz/nzbhydra2/package.nix +++ b/pkgs/by-name/nz/nzbhydra2/package.nix @@ -10,11 +10,11 @@ }: stdenv.mkDerivation rec { pname = "nzbhydra2"; - version = "7.19.2"; + version = "8.0.0"; src = fetchzip { url = "https://github.com/theotherp/nzbhydra2/releases/download/v${version}/nzbhydra2-${version}-generic.zip"; - hash = "sha256-QFE8Zr7HGfMioiXWUKp5UvofK5IBb+gLpm1ytAEl3HM="; + hash = "sha256-I/85BhIF7ROktMWijlaVwL3CrHrWtrJr3ETt3gF8yE4="; stripRoot = false; }; diff --git a/pkgs/by-name/om/omnictl/package.nix b/pkgs/by-name/om/omnictl/package.nix index 4fafb273fc0f..57a3e921d994 100644 --- a/pkgs/by-name/om/omnictl/package.nix +++ b/pkgs/by-name/om/omnictl/package.nix @@ -8,16 +8,16 @@ buildGoModule rec { pname = "omnictl"; - version = "1.2.1"; + version = "1.3.1"; src = fetchFromGitHub { owner = "siderolabs"; repo = "omni"; rev = "v${version}"; - hash = "sha256-c3gsbNfYxnF06a3S2fkIEQrfRrj+NAMpEgcthooHdxg="; + hash = "sha256-zeNGS39HD1i7K7SXFWnq30PgDnuvWMKa5vJLuzA0En0="; }; - vendorHash = "sha256-Y6316MB3EYnvcLa+9QnfSY1wOHoEte5viMQx1vscvBs="; + vendorHash = "sha256-/9SfrqoZuzDX/AALn398OxUXWNacnGd7fEmUUL5vayo="; ldflags = [ "-s" diff --git a/pkgs/by-name/on/onlyoffice-documentserver/package.nix b/pkgs/by-name/on/onlyoffice-documentserver/package.nix index 2f36aeebf101..fda9ba6fa8b4 100644 --- a/pkgs/by-name/on/onlyoffice-documentserver/package.nix +++ b/pkgs/by-name/on/onlyoffice-documentserver/package.nix @@ -10,6 +10,7 @@ liberation_ttf_v1, writeScript, xorg, + nixosTests, }: let @@ -72,6 +73,7 @@ let dontStrip = true; passthru = { + tests = nixosTests.onlyoffice; fhs = buildFHSEnv { name = "onlyoffice-wrapper"; diff --git a/pkgs/by-name/op/openapi-down-convert/package.nix b/pkgs/by-name/op/openapi-down-convert/package.nix index 77d0cb66e054..03ef6be0ed82 100644 --- a/pkgs/by-name/op/openapi-down-convert/package.nix +++ b/pkgs/by-name/op/openapi-down-convert/package.nix @@ -9,16 +9,16 @@ buildNpmPackage (finalAttrs: { pname = "openapi-down-convert"; - version = "0.14.1"; + version = "0.14.2"; src = fetchFromGitHub { owner = "apiture"; repo = "openapi-down-convert"; tag = "v${finalAttrs.version}"; - hash = "sha256-8csxj2HfOb9agDmwNmksNaiQhRd+3D1tf0vWU2w+XWw="; + hash = "sha256-auHZ6xfsOhGetzH4sSsZy+EC9eM06GKMww0h9iN8Heo="; }; - npmDepsHash = "sha256-5VgFAiphahDKz3ZhzNEdQOFxvhvDy+S/qOClqBgMzSg="; + npmDepsHash = "sha256-gVRHp28NhremVit34nngq0KvDn16m0xJIyUooiD7MtU="; postInstall = '' find $out/lib -type f \( -name '*.ts' \) -delete diff --git a/pkgs/by-name/os/osm2pgsql/package.nix b/pkgs/by-name/os/osm2pgsql/package.nix index c61a4a842e3e..333037b46906 100644 --- a/pkgs/by-name/os/osm2pgsql/package.nix +++ b/pkgs/by-name/os/osm2pgsql/package.nix @@ -4,7 +4,7 @@ fetchFromGitHub, cmake, expat, - fmt, + fmt_11, proj, bzip2, cli11, @@ -46,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: { bzip2 cli11 expat - fmt + fmt_11 libosmium libpq nlohmann_json diff --git a/pkgs/by-name/pi/pianobar/package.nix b/pkgs/by-name/pi/pianobar/package.nix index 3f4671250595..f80f45aa24df 100644 --- a/pkgs/by-name/pi/pianobar/package.nix +++ b/pkgs/by-name/pi/pianobar/package.nix @@ -32,9 +32,6 @@ stdenv.mkDerivation (finalAttrs: { makeFlags = [ "PREFIX=$(out)" ]; - CC = "gcc"; - CFLAGS = "-std=c99"; - meta = { changelog = "https://github.com/PromyLOPh/pianobar/raw/${finalAttrs.src.rev}/ChangeLog"; description = "Console front-end for Pandora.com"; diff --git a/pkgs/by-name/pl/plattenalbum/package.nix b/pkgs/by-name/pl/plattenalbum/package.nix index 8bc79c470850..a445aa443445 100644 --- a/pkgs/by-name/pl/plattenalbum/package.nix +++ b/pkgs/by-name/pl/plattenalbum/package.nix @@ -13,14 +13,14 @@ python3Packages.buildPythonApplication rec { pname = "plattenalbum"; - version = "2.3.1"; + version = "2.4.0"; pyproject = false; src = fetchFromGitHub { owner = "SoongNoonien"; repo = "plattenalbum"; tag = "v${version}"; - hash = "sha256-8Oa/tFow+rW96AUQEQXaI4ybBFce0QDiRFt2V0X/uuo="; + hash = "sha256-zk0Cs+ZR5JEiuVgjcj2ykVbRBzp0p5VioZmHgcAHq/s="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/pr/pricehist/package.nix b/pkgs/by-name/pr/pricehist/package.nix index 00ed59849993..ef8cd9ca5d7e 100644 --- a/pkgs/by-name/pr/pricehist/package.nix +++ b/pkgs/by-name/pr/pricehist/package.nix @@ -16,6 +16,8 @@ python3Packages.buildPythonApplication rec { hash = "sha256-SBRJxNnA+nOxO6h97WZZHwhxoXeNtb5+rDayn4Hw6so="; }; + pythonRelaxDeps = [ "lxml" ]; + dependencies = with python3Packages; [ requests lxml diff --git a/pkgs/by-name/ro/roccat-tools/package.nix b/pkgs/by-name/ro/roccat-tools/package.nix index 35e2a6003faf..959637eff371 100644 --- a/pkgs/by-name/ro/roccat-tools/package.nix +++ b/pkgs/by-name/ro/roccat-tools/package.nix @@ -37,7 +37,11 @@ stdenv.mkDerivation rec { substituteInPlace udev/90-roccat-kone.rules \ --replace "/bin/sh" "${runtimeShell}" \ --replace "/sbin/modprobe" "${kmod}/bin/modprobe" \ - --replace "/bin/echo" "${coreutils}/bin/echo" + --replace "/bin/echo" "${coreutils}/bin/echo" \ + --replace '$' '$$' # fix bash variables interpreted as udev substitutions + + substituteInPlace CMakeLists.txt \ + --replace-fail "CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12)" "CMAKE_MINIMUM_REQUIRED(VERSION 3.10)" ''; nativeBuildInputs = [ diff --git a/pkgs/by-name/si/simdjson/package.nix b/pkgs/by-name/si/simdjson/package.nix index f8f355c7ecce..14819cfecee4 100644 --- a/pkgs/by-name/si/simdjson/package.nix +++ b/pkgs/by-name/si/simdjson/package.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "simdjson"; - version = "4.2.1"; + version = "4.2.2"; src = fetchFromGitHub { owner = "simdjson"; repo = "simdjson"; tag = "v${finalAttrs.version}"; - hash = "sha256-EuineRyNSwWoMRuev6ZFQNeFgSHjuoHhoGhYD0ls6GQ="; + hash = "sha256-ydMFiBfToJQn74rIHwR7cA/qILP7AoRh3pBvjBbpIIY="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/by-name/sp/spire/package.nix b/pkgs/by-name/sp/spire/package.nix index 503d20a86cf8..8fd5764950df 100644 --- a/pkgs/by-name/sp/spire/package.nix +++ b/pkgs/by-name/sp/spire/package.nix @@ -7,7 +7,7 @@ buildGoModule (finalAttrs: { pname = "spire"; - version = "1.13.2"; + version = "1.13.3"; outputs = [ "out" @@ -20,12 +20,12 @@ buildGoModule (finalAttrs: { owner = "spiffe"; repo = "spire"; tag = "v${finalAttrs.version}"; - sha256 = "sha256-iZMeD5ZwWKjY9mfuXgEgh+QLotmv28T8xBgpKoQTgxw="; + sha256 = "sha256-Qph36DNnhZbO+bn1WnvBkWOWeCSusC0vrvZV1G32kFw="; }; # Needed for github.co/google/go-tpm-tools/simulator which contains non-go files that `go mod vendor` strips proxyVendor = true; - vendorHash = "sha256-nslLp/NjzsN1hSMMga67T6tMGLiqBNYQMt4Kjtwyvoc="; + vendorHash = "sha256-hkUA9L4lTSv7s/HtD1XOf07Hhk7ob2n/GCS+LnOSasI="; buildInputs = [ openssl ]; diff --git a/pkgs/by-name/st/stac-validator/package.nix b/pkgs/by-name/st/stac-validator/package.nix index 621ced71b1d1..c3ed965e8e27 100644 --- a/pkgs/by-name/st/stac-validator/package.nix +++ b/pkgs/by-name/st/stac-validator/package.nix @@ -6,7 +6,7 @@ python3Packages.buildPythonPackage rec { pname = "stac-validator"; - version = "3.10.1"; + version = "3.10.2"; pyproject = true; disabled = python3Packages.pythonOlder "3.8"; @@ -14,7 +14,7 @@ python3Packages.buildPythonPackage rec { owner = "stac-utils"; repo = "stac-validator"; tag = "v${version}"; - hash = "sha256-tqguaptVRo6k6QALOOOL8dysMGDZx07eRJoHG24JirQ="; + hash = "sha256-Csw7+/0VTZuZ7xBmdPAWBk8NMGXtjKfr15F3IkbCFZ8="; }; build-system = [ python3Packages.setuptools ]; diff --git a/pkgs/by-name/st/starship/package.nix b/pkgs/by-name/st/starship/package.nix index 596a22c6d1e7..73acab70a14d 100644 --- a/pkgs/by-name/st/starship/package.nix +++ b/pkgs/by-name/st/starship/package.nix @@ -12,13 +12,13 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "starship"; - version = "1.24.0"; + version = "1.24.1"; src = fetchFromGitHub { owner = "starship"; repo = "starship"; tag = "v${finalAttrs.version}"; - hash = "sha256-kb7LHEhtVXzdoRPWMb4JA2REc/V5n21iX+ussWCaaPA="; + hash = "sha256-yWG06l/Gu2/u4NNAyCYjxlmEKIsDAaxWGp6fmqXvNl8="; }; nativeBuildInputs = [ installShellFiles ]; @@ -44,7 +44,7 @@ rustPlatform.buildRustPackage (finalAttrs: { '' ); - cargoHash = "sha256-xd3rYRJzJspmaQAsTw0lQifHdzB++BtJAjE12GsrLdE="; + cargoHash = "sha256-F7tzrMqF2xY8Ow+bAFbP0mQPomSe/oOHiQWHRHDmHio="; nativeCheckInputs = [ gitMinimal diff --git a/pkgs/by-name/sw/switchfin/package.nix b/pkgs/by-name/sw/switchfin/package.nix index 3bdcf7309b7c..74f522e5d943 100644 --- a/pkgs/by-name/sw/switchfin/package.nix +++ b/pkgs/by-name/sw/switchfin/package.nix @@ -17,13 +17,13 @@ stdenv.mkDerivation rec { pname = "switchfin"; - version = "0.7.6"; + version = "0.7.7"; src = fetchFromGitHub { owner = "dragonflylee"; repo = "switchfin"; rev = version; - hash = "sha256-WEqscGd7K5tTQcK8XXc02EQU2yCbTIdrzw40eXw8lYY="; + hash = "sha256-swNwaZg6W5Ox08poc3gC3MOsIHv08/Q9BOMwD9FNf3g="; fetchSubmodules = true; }; diff --git a/pkgs/by-name/tr/trealla/package.nix b/pkgs/by-name/tr/trealla/package.nix index 382066844a4c..e61c2f93f3b9 100644 --- a/pkgs/by-name/tr/trealla/package.nix +++ b/pkgs/by-name/tr/trealla/package.nix @@ -23,13 +23,13 @@ assert lib.elem lineEditingLibrary [ ]; stdenv.mkDerivation (finalAttrs: { pname = "trealla"; - version = "2.84.16"; + version = "2.84.29"; src = fetchFromGitHub { owner = "trealla-prolog"; repo = "trealla"; rev = "v${finalAttrs.version}"; - hash = "sha256-E2lbKPWy4KfBqAI+BC7pc0F/U4qf63nLGeIKmIfURX4="; + hash = "sha256-RPkokiSlVHsXj98RbjRTOx1TS350epTd3DDVf4ObMMI="; }; postPatch = '' diff --git a/pkgs/by-name/tr/treemd/package.nix b/pkgs/by-name/tr/treemd/package.nix index a97f6ada2a63..568d6400bf60 100644 --- a/pkgs/by-name/tr/treemd/package.nix +++ b/pkgs/by-name/tr/treemd/package.nix @@ -8,16 +8,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "treemd"; - version = "0.1.5"; + version = "0.2.1"; src = fetchFromGitHub { owner = "Epistates"; repo = "treemd"; tag = "v${finalAttrs.version}"; - hash = "sha256-fD+LH7OziXsQdpcIFxh2fi+Dxb5kbJ7+eVVW0NIpeug="; + hash = "sha256-7pgRQ5e1rMufEWXFLD+z1YYGjLX5fSw4ArLwjKUkJ+4="; }; - cargoHash = "sha256-fU0i6a/9oXWJMNdoWCmv04am5qtrFe3ERhQiY25YCCo="; + cargoHash = "sha256-OEZR+uS/ga3e2fcu4ZiaZ6ATwCFIosDUU1FVD/gu1WY="; doInstallCheck = true; nativeInstallCheckInputs = [ versionCheckHook ]; diff --git a/pkgs/by-name/tr/trufflehog/package.nix b/pkgs/by-name/tr/trufflehog/package.nix index 78a2fdd64e37..b3a42ccd952a 100644 --- a/pkgs/by-name/tr/trufflehog/package.nix +++ b/pkgs/by-name/tr/trufflehog/package.nix @@ -8,13 +8,13 @@ buildGoModule rec { pname = "trufflehog"; - version = "3.90.13"; + version = "3.91.0"; src = fetchFromGitHub { owner = "trufflesecurity"; repo = "trufflehog"; tag = "v${version}"; - hash = "sha256-mds8LVRws1r91OoGy4kQXyXdPM0GfTnbkh1Q6ib52x8="; + hash = "sha256-xDZmfgVENGMDpdeuWnPAKEqEr4qbu+Lrn3kMiPoQU+Y="; }; vendorHash = "sha256-zQ67yLN/HCshOndP/FAUOOyiQpOjyOJChkZZmFb06WM="; diff --git a/pkgs/by-name/ts/tsidp/package.nix b/pkgs/by-name/ts/tsidp/package.nix index 8162f533ec07..5861a235bd75 100644 --- a/pkgs/by-name/ts/tsidp/package.nix +++ b/pkgs/by-name/ts/tsidp/package.nix @@ -2,19 +2,22 @@ lib, buildGoModule, fetchFromGitHub, + nix-update-script, }: buildGoModule (finalAttrs: { pname = "tsidp"; - version = "0.0.4"; + version = "0.0.6"; src = fetchFromGitHub { owner = "tailscale"; repo = "tsidp"; tag = "v${finalAttrs.version}"; - hash = "sha256-u6dQORtB4eNEFLlouuFV5oxedSN1fZ31YkZavfU1F0U="; + hash = "sha256-qOZJkCVAgR6xXZryysyFbf/P8zrLhe2iHYWFlIadiBM="; }; - vendorHash = "sha256-obtcJTg7V4ij3fGVmZMD7QQwKJX6K5PPslpM1XKCk9Q="; + vendorHash = "sha256-iBy+osK+2LdkTzXhrkSaB6nWpUCpr8VkxJTtcfVCFuw="; + + passthru.updateScript = nix-update-script { }; meta = { homepage = "https://github.com/tailscale/tsidp"; diff --git a/pkgs/by-name/va/valent/package.nix b/pkgs/by-name/va/valent/package.nix index 951ebb5a6069..7dc5d6207e63 100644 --- a/pkgs/by-name/va/valent/package.nix +++ b/pkgs/by-name/va/valent/package.nix @@ -3,6 +3,7 @@ stdenv, fetchFromGitHub, desktop-file-utils, + gobject-introspection, meson, ninja, pkg-config, @@ -26,18 +27,19 @@ stdenv.mkDerivation (finalAttrs: { pname = "valent"; - version = "1.0.0.alpha.46-unstable-2024-10-26"; + version = "1.0.0.alpha.48"; src = fetchFromGitHub { owner = "andyholmes"; repo = "valent"; - rev = "165a2791d4bf3e7dee69e3dd7885dbe4948265b9"; - hash = "sha256-7klvOvwyAg+Xno6zWo8UByjaS9OkOuCceuZcAIEgdyU="; + tag = "v${finalAttrs.version}"; + hash = "sha256-CB3Jb7N8vcNTLCWXKoDh/wQkPW1CH6WRlwXg4efU3GY="; fetchSubmodules = true; }; nativeBuildInputs = [ desktop-file-utils + gobject-introspection meson ninja pkg-config @@ -94,7 +96,10 @@ stdenv.mkDerivation (finalAttrs: { cc0 cc-by-sa-30 ]; - maintainers = with lib.maintainers; [ aleksana ]; + maintainers = with lib.maintainers; [ + aleksana + baduhai + ]; platforms = lib.platforms.linux; }; }) diff --git a/pkgs/by-name/wa/wapiti/package.nix b/pkgs/by-name/wa/wapiti/package.nix index 54915ee3556b..d3d750f0a16b 100644 --- a/pkgs/by-name/wa/wapiti/package.nix +++ b/pkgs/by-name/wa/wapiti/package.nix @@ -2,22 +2,23 @@ lib, stdenv, fetchFromGitHub, + nix-update-script, + php, python3Packages, versionCheckHook, writableTmpDirAsHomeHook, - nix-update-script, }: python3Packages.buildPythonApplication rec { pname = "wapiti"; - version = "3.2.6"; + version = "3.2.10"; pyproject = true; src = fetchFromGitHub { owner = "wapiti-scanner"; repo = "wapiti"; tag = version; - hash = "sha256-dcPFHy7W6wJ+KpD8e9VfO+AgedwaA2+xeJImxRxq4oE="; + hash = "sha256-/w5t/BcMPewl0Wp6vx9kZamqHArb7+fnfktfEIUDL8Y="; }; pythonRelaxDeps = true; @@ -42,6 +43,7 @@ python3Packages.buildPythonApplication rec { mitmproxy msgpack packaging + playwright pyasn1 sqlalchemy tld @@ -63,6 +65,7 @@ python3Packages.buildPythonApplication rec { pytestCheckHook ] ++ [ + php versionCheckHook writableTmpDirAsHomeHook ]; @@ -170,7 +173,7 @@ python3Packages.buildPythonApplication rec { if a script is vulnerable. ''; homepage = "https://wapiti-scanner.github.io/"; - changelog = "https://github.com/wapiti-scanner/wapiti/blob/${version}/doc/ChangeLog_Wapiti"; + changelog = "https://github.com/wapiti-scanner/wapiti/blob/${src.tag}/doc/ChangeLog_Wapiti"; license = lib.licenses.gpl2Only; maintainers = with lib.maintainers; [ fab ]; mainProgram = "wapiti"; diff --git a/pkgs/by-name/wh/whisper/package.nix b/pkgs/by-name/wh/whisper/package.nix index 9ce1836b25d3..ae12ed7140d3 100644 --- a/pkgs/by-name/wh/whisper/package.nix +++ b/pkgs/by-name/wh/whisper/package.nix @@ -51,6 +51,15 @@ stdenv.mkDerivation rec { broken = stdenv.hostPlatform.isDarwin; description = "Short read sequence mapper"; license = licenses.gpl3; + # vendored libraries acof, aelf, deflate, bzip2, zlib + # https://github.com/refresh-bio/Whisper/issues/18 + knownVulnerabilities = [ + # src/libs/libz.a from 2017 + "CVE-2018-25032" + "CVE-2022-37434" + # src/libs/libbzip2.lib + "CVE-2019-12900" + ]; homepage = "https://github.com/refresh-bio/whisper"; maintainers = with maintainers; [ jbedo ]; platforms = platforms.x86_64; diff --git a/pkgs/by-name/wi/windsurf/info.json b/pkgs/by-name/wi/windsurf/info.json index d3286d55a630..2bebd9479dff 100644 --- a/pkgs/by-name/wi/windsurf/info.json +++ b/pkgs/by-name/wi/windsurf/info.json @@ -1,20 +1,20 @@ { "aarch64-darwin": { - "version": "1.12.28", + "version": "1.12.32", "vscodeVersion": "1.105.0", - "url": "https://windsurf-stable.codeiumdata.com/darwin-arm64/stable/c855b1fa42fce019aedb4b06e6faa69d65ac7fd3/Windsurf-darwin-arm64-1.12.28.zip", - "sha256": "da2f5ad240ba49627c9d5bcdff8aec679c5a691f3195dc4bfb9bccf33a88e309" + "url": "https://windsurf-stable.codeiumdata.com/darwin-arm64/stable/7d21465dc744144f86d675c2ad6a13cacd743c2e/Windsurf-darwin-arm64-1.12.32.zip", + "sha256": "9301004cb22da57736e44dda080abec14a5c3c8f886e8085653d119d4b0236fe" }, "x86_64-darwin": { - "version": "1.12.28", + "version": "1.12.32", "vscodeVersion": "1.105.0", - "url": "https://windsurf-stable.codeiumdata.com/darwin-x64/stable/c855b1fa42fce019aedb4b06e6faa69d65ac7fd3/Windsurf-darwin-x64-1.12.28.zip", - "sha256": "925733e51b22d36fd0ddbadf1e6dc12e47fbcbdc34de4aea325fc3c8c0862292" + "url": "https://windsurf-stable.codeiumdata.com/darwin-x64/stable/7d21465dc744144f86d675c2ad6a13cacd743c2e/Windsurf-darwin-x64-1.12.32.zip", + "sha256": "50bf362305f19486688b7deb2628da10c1b6be591d8bb8c718c490fcf6588042" }, "x86_64-linux": { - "version": "1.12.28", + "version": "1.12.32", "vscodeVersion": "1.105.0", - "url": "https://windsurf-stable.codeiumdata.com/linux-x64/stable/c855b1fa42fce019aedb4b06e6faa69d65ac7fd3/Windsurf-linux-x64-1.12.28.tar.gz", - "sha256": "cc781ce37d096843a16cefd5c692270c84b7b339d09b93ee515d630a1f6ace11" + "url": "https://windsurf-stable.codeiumdata.com/linux-x64/stable/7d21465dc744144f86d675c2ad6a13cacd743c2e/Windsurf-linux-x64-1.12.32.tar.gz", + "sha256": "bde6ed9861be9327b1fdaede1d779fb8b47f9bada4dad84fe81f8ea1a5409a0c" } } diff --git a/pkgs/by-name/x2/x2t/doctrenderer-v8-iterator.patch b/pkgs/by-name/x2/x2t/doctrenderer-v8-iterator.patch new file mode 100644 index 000000000000..25c08ad87f0c --- /dev/null +++ b/pkgs/by-name/x2/x2t/doctrenderer-v8-iterator.patch @@ -0,0 +1,16 @@ +diff --git a/DesktopEditor/doctrenderer/js_internal/v8/v8_base.cpp b/DesktopEditor/doctrenderer/js_internal/v8/v8_base.cpp +index bacd5dedac..4749d8fecb 100644 +--- a/DesktopEditor/doctrenderer/js_internal/v8/v8_base.cpp ++++ b/DesktopEditor/doctrenderer/js_internal/v8/v8_base.cpp +@@ -259,10 +259,7 @@ namespace NSJSBase + m_internal->m_contextPersistent.Reset(); + // destroy native object in the weak handles before isolate disposal + v8::Isolate* isolate = m_internal->m_isolate; +- { +- v8::Isolate::Scope scope(isolate); +- isolate->VisitHandlesWithClassIds(WeakHandleVisitor::getInstance()); +- } ++ std::cerr << "Could not release memory. This is a nix-specific leak, but should be fine as long as it doesn't happen too frequently" << std::endl; + isolate->Dispose(); + m_internal->m_isolate = NULL; + } diff --git a/pkgs/by-name/x2/x2t/doctrenderer-v8-test.patch b/pkgs/by-name/x2/x2t/doctrenderer-v8-test.patch new file mode 100644 index 000000000000..3a0e17fac99a --- /dev/null +++ b/pkgs/by-name/x2/x2t/doctrenderer-v8-test.patch @@ -0,0 +1,76 @@ +diff --git a/DesktopEditor/doctrenderer/test/json/main.cpp b/DesktopEditor/doctrenderer/test/json/main.cpp +index e5c6a0e52d..9b127a9c44 100644 +--- a/DesktopEditor/doctrenderer/test/json/main.cpp ++++ b/DesktopEditor/doctrenderer/test/json/main.cpp +@@ -472,26 +472,26 @@ TEST_F(CJSONTest, image_externalize) + int width = 1080; + int height = 480; + BYTE* bits = CValue::AllocImageBits(width, height); +- CValue img = CValue::CreateImage(bits, width, height, ifBGRA); ++ CValue img = CValue::CreateImage(bits, width, height, ImageFormat::ifBGRA); + + EXPECT_TRUE(img.IsImage()); + EXPECT_EQ(img.GetImageBits(), bits); + EXPECT_EQ(img.GetImageWidth(), width); + EXPECT_EQ(img.GetImageHeight(), height); +- EXPECT_EQ(img.GetImageFormat(), ifBGRA); ++ EXPECT_EQ(img.GetImageFormat(), ImageFormat::ifBGRA); + + CValue::FreeImageBits(bits); + + width = 50; + height = 100; + bits = CValue::AllocImageBits(width, height); +- img = CValue::CreateImage(bits, width, height, ifRGBA); ++ img = CValue::CreateImage(bits, width, height, ImageFormat::ifRGBA); + + EXPECT_TRUE(img.IsImage()); + EXPECT_EQ(img.GetImageBits(), bits); + EXPECT_EQ(img.GetImageWidth(), width); + EXPECT_EQ(img.GetImageHeight(), height); +- EXPECT_EQ(img.GetImageFormat(), ifRGBA); ++ EXPECT_EQ(img.GetImageFormat(), ImageFormat::ifRGBA); + + CValue::FreeImageBits(bits); + } +@@ -501,25 +501,25 @@ TEST_F(CJSONTest, image_not_externalize) + int width = 320; + int height = 480; + BYTE* bits = CValue::AllocImageBits(width, height); +- CValue img = CValue::CreateImage(bits, width, height, ifARGB, false); ++ CValue img = CValue::CreateImage(bits, width, height, ImageFormat::ifARGB, false); + + EXPECT_TRUE(img.IsImage()); + EXPECT_EQ(img.GetImageBits(), bits); + EXPECT_EQ(img.GetImageWidth(), width); + EXPECT_EQ(img.GetImageHeight(), height); +- EXPECT_EQ(img.GetImageFormat(), ifARGB); ++ EXPECT_EQ(img.GetImageFormat(), ImageFormat::ifARGB); + } + + TEST_F(CJSONTest, image_wrong_size) + { + BYTE* bits = CValue::AllocImageBits(100, 100); +- CValue img = CValue::CreateImage(bits, 0, 100, ifARGB, false); ++ CValue img = CValue::CreateImage(bits, 0, 100, ImageFormat::ifARGB, false); + EXPECT_TRUE(img.IsUndefined()); +- img = CValue::CreateImage(bits, -1, 100, ifARGB, false); ++ img = CValue::CreateImage(bits, -1, 100, ImageFormat::ifARGB, false); + EXPECT_TRUE(img.IsUndefined()); +- img = CValue::CreateImage(bits, 0, 0, ifARGB, false); ++ img = CValue::CreateImage(bits, 0, 0, ImageFormat::ifARGB, false); + EXPECT_TRUE(img.IsUndefined()); +- img = CValue::CreateImage(bits, -100, -100, ifARGB, false); ++ img = CValue::CreateImage(bits, -100, -100, ImageFormat::ifARGB, false); + EXPECT_TRUE(img.IsUndefined()); + } + +@@ -593,7 +593,7 @@ TEST_F(CJSONTest, wrong_usage) + EXPECT_EQ(val.GetCount(), 0); + EXPECT_EQ(val.GetData(), nullptr); + EXPECT_EQ(val.GetImageBits(), nullptr); +- EXPECT_EQ(val.GetImageFormat(), ifInvalid); ++ EXPECT_EQ(val.GetImageFormat(), ImageFormat::ifInvalid); + EXPECT_EQ(val.GetImageHeight(), 0); + EXPECT_EQ(val.GetImageWidth(), 0); + #endif diff --git a/pkgs/by-name/x2/x2t/ofdfile-test.patch b/pkgs/by-name/x2/x2t/ofdfile-test.patch new file mode 100644 index 000000000000..5d55bdfc0444 --- /dev/null +++ b/pkgs/by-name/x2/x2t/ofdfile-test.patch @@ -0,0 +1,10 @@ +diff --git a/OFDFile/test/main.cpp b/OFDFile/test/main.cpp +index 92189f10ff..7aff6df96f 100644 +--- a/OFDFile/test/main.cpp ++++ b/OFDFile/test/main.cpp +@@ -1,4 +1,4 @@ +-#include "../OfdFile.h" ++#include "../OFDFile.h" + #include + + #include "../../DesktopEditor/common/Directory.h" diff --git a/pkgs/by-name/x2/x2t/package.nix b/pkgs/by-name/x2/x2t/package.nix index 3fbc08b902e4..4201f07ecbc7 100644 --- a/pkgs/by-name/x2/x2t/package.nix +++ b/pkgs/by-name/x2/x2t/package.nix @@ -7,6 +7,9 @@ fetchFromGitHub, glibc, harfbuzz, + libheif, + x265, + libde265, icu, jdk, lib, @@ -28,7 +31,7 @@ let fixIcu = writeScript "fix-icu.sh" '' substituteInPlace \ $BUILDRT/Common/3dParty/icu/icu.pri \ - --replace-fail "ICU_MAJOR_VER = 58" "ICU_MAJOR_VER = ${lib.versions.major icu.version}" + --replace-fail "ICU_MAJOR_VER = 74" "ICU_MAJOR_VER = ${lib.versions.major icu.version}" mkdir $BUILDRT/Common/3dParty/icu/linux_64 ln -s ${icu}/lib $BUILDRT/Common/3dParty/icu/linux_64/build @@ -46,6 +49,13 @@ let rev = "be6df458d4540eee375c513958dcb862a391cdd1"; hash = "sha256-SYJFLtrg8raGyr3zQIEzZDjHDmMmt+K0po3viipZW5c="; }; + # see core/Common/3dParty/html/fetch.py + gumbo-parser-src = fetchFromGitHub { + owner = "google"; + repo = "gumbo-parser"; + rev = "aa91b27b02c0c80c482e24348a457ed7c3c088e0"; + hash = "sha256-+607iXJxeWKoCwb490pp3mqRZ1fWzxec0tJOEFeHoCs="; + }; # see build_tools scripts/core_common/modules/googletest.py googletest-src = fetchFromGitHub { owner = "google"; @@ -61,12 +71,33 @@ let rev = "73dd2967c8e1e4f6d7334ee9e539a323d6e66cbd"; hash = "sha256-WIHpSkOwHkhMvEKxOlgf6gsPs9T3xkzguD8ONXARf1U="; }; - # see core/Common/3dParty/html/fetch.py - gumbo-parser-src = fetchFromGitHub { - owner = "google"; - repo = "gumbo-parser"; - rev = "aa91b27b02c0c80c482e24348a457ed7c3c088e0"; - hash = "sha256-+607iXJxeWKoCwb490pp3mqRZ1fWzxec0tJOEFeHoCs="; + # core/Common/3dParty/md/fetch.py + md4c-src = fetchFromGitHub { + owner = "mity"; + repo = "md4c"; + rev = "481fbfbdf72daab2912380d62bb5f2187d438408"; + hash = "sha256-zhInM3R0CJUqnzh6wRxMwlUdErovplbZQ5IwXe9XzZ4="; + }; + # core/Common/3dParty/apple/fetch.py + glm-src = fetchFromGitHub { + owner = "g-truc"; + repo = "glm"; + rev = "33b4a621a697a305bc3a7610d290677b96beb181"; + hash = "sha256-wwGI17vlQzL/x1O0ANr5+KgU1ETnATpLw3njpKfjnKQ="; + }; + # core/Common/3dParty/apple/fetch.py + mdds-src = fetchFromGitHub { + owner = "kohei-us"; + repo = "mdds"; + rev = "0783158939c6ce4b0b1b89e345ab983ccb0f0ad0"; + hash = "sha256-HMGMxMRO6SadisUjZ0ZNBGQqksNDFkEh3yaQGet9rc0="; + }; + # core/Common/3dParty/apple/fetch.py + librevenge-src = fetchFromGitHub { + owner = "DistroTech"; + repo = "librevenge"; + rev = "becd044b519ab83893ad6398e3cbb499a7f0aaf4"; + hash = "sha256-2YRxuMYzKvvQHiwXH08VX6GRkdXnY7q05SL05Vbn0Vs="; }; # core/Common/3dParty/apple/fetch.py libodfgen-src = fetchFromGitHub { @@ -75,24 +106,7 @@ let rev = "8ef8c171ebe3c5daebdce80ee422cf7bb96aa3bc"; hash = "sha256-Bv/smZFmZn4PEAcOlXD2Z4k96CK7A7YGDHFDsqZpuiE="; }; - mdds-src = fetchFromGitHub { - owner = "kohei-us"; - repo = "mdds"; - rev = "0783158939c6ce4b0b1b89e345ab983ccb0f0ad0"; - hash = "sha256-HMGMxMRO6SadisUjZ0ZNBGQqksNDFkEh3yaQGet9rc0="; - }; - glm-src = fetchFromGitHub { - owner = "g-truc"; - repo = "glm"; - rev = "33b4a621a697a305bc3a7610d290677b96beb181"; - hash = "sha256-wwGI17vlQzL/x1O0ANr5+KgU1ETnATpLw3njpKfjnKQ="; - }; - librevenge-src = fetchFromGitHub { - owner = "DistroTech"; - repo = "librevenge"; - rev = "becd044b519ab83893ad6398e3cbb499a7f0aaf4"; - hash = "sha256-2YRxuMYzKvvQHiwXH08VX6GRkdXnY7q05SL05Vbn0Vs="; - }; + # core/Common/3dParty/apple/fetch.py libetonyek-src = fetchFromGitHub { owner = "LibreOffice"; repo = "libetonyek"; @@ -102,13 +116,15 @@ let #qmakeFlags = [ "CONFIG+=debug" ]; qmakeFlags = [ ]; dontStrip = false; - core-rev = "d257c68d5fdd71a33776a291914f2c856426c259"; + + # Revisions that correspond to onlyoffice-documentserver 9.1.0 + core-rev = "82e281cf6bf89498e4de6018423b36576706c2b6"; core = fetchFromGitHub { owner = "ONLYOFFICE"; repo = "core"; # rev that the 'core' submodule in documentserver points at rev = core-rev; - hash = "sha256-EXeqG8MJWS1asjFihnuMnDSHeKt2x+Ui+8MYK50AnSY="; + hash = "sha256-LzbO2A29WxM0XTAO2LGTtg9omL0Pvoh+6+q3ux4i7do="; }; web-apps = buildNpmPackage (finalAttrs: { name = "onlyoffice-core-webapps"; @@ -119,8 +135,8 @@ let owner = "ONLYOFFICE"; repo = "web-apps"; # rev that the 'web-apps' submodule in documentserver points at - rev = "5255c27b1af64f6edf08d1aba20a23b8149e338c"; - hash = "sha256-49v2h+ILQ0X/gNHny6LQcj94A6h7nS99liUAnLRNxzw="; + rev = "f63e9674a5d2d2e5a660ab726ec00a359fc3c750"; + hash = "sha256-kKm6+phd6a7kP/kv6/v/FFgh96Kbs6h6jIjpFtRJgps="; }; sourceRoot = "${finalAttrs.src.name}/build"; @@ -159,12 +175,16 @@ let owner = "ONLYOFFICE"; repo = "sdkjs"; # rev that the 'sdkjs' submodule in documentserver points at - rev = "0e50652cb08c7753a9ab72d0558560ada5d43046"; - hash = "sha256-fApr34aT0X8ffPwbsUEWnA3SK8pT5RKNan3YxzhvtAU="; + rev = "d169f841a7e9e46368c36236dd5820e3e10d4a98"; + hash = "sha256-GQwzz3P49sWjCxh41zyuUs5MyMjBQXaMKzxUUTHq0UE="; }; sourceRoot = "${finalAttrs.src.name}/build"; - npmDepsHash = "sha256-Hpf+z3RGqZ1LTdow6xP00hNmWf4xs+KnVBj4NbPW4uM="; + postPatch = '' + cp npm-shrinkwrap.json package-lock.json + ''; + + npmDepsHash = "sha256-C+qp5d4wYmlrEGjIeBsjRhpivy6wKBppJWbcj1z9fbM="; dontNpmBuild = true; @@ -193,8 +213,8 @@ let dictionaries = fetchFromGitHub { owner = "ONLYOFFICE"; repo = "dictionaries"; - tag = "v8.2.0.103"; - hash = "sha256-3BwWAvnw0RCD6fxTCRstJSrF5QgfVNVBe8rN1hHhCoU="; + rev = "d3223bbb777883db66ac3cd249f71c6ebdc992c7"; + hash = "sha256-7hvztNYnYjyOl3ynGP0vqtx9jLPp09XVDNIow1RYuWM="; }; buildCoreComponent = rootdir: attrs: @@ -324,10 +344,22 @@ let buildInputs = [ unicodeConverter kernel + libheif.lib + x265 + libde265 ]; preConfigure = '' ln -s ${katana-parser-src} $BUILDRT/Common/3dParty/html/katana-parser + mkdir -p $BUILDRT/Common/3dParty/heif/libheif/libheif + ln -s ${libheif.dev}/include $BUILDRT/Common/3dParty/heif/libheif/libheif/api + mkdir -p $BUILDRT/Common/3dParty/heif/libheif/build/linux_64/release + ln -s ${libheif.lib}/lib $BUILDRT/Common/3dParty/heif/libheif/build/linux_64/release/libheif + mkdir -p $BUILDRT/Common/3dParty/heif/x265_git/build/linux_64 + ln -s ${x265}/lib $BUILDRT/Common/3dParty/heif/x265_git/build/linux_64/release + mkdir -p $BUILDRT/Common/3dParty/heif/libde265/build/linux_64/release + ln -s ${libde265}/lib $BUILDRT/Common/3dParty/heif/libde265/build/linux_64/release/libde265 + # Common/3dParty/harfbuzz/make.py cat >$BUILDRT/Common/3dParty/harfbuzz/harfbuzz.pri < + #include + #include ++#include + + namespace PdfWriter + { diff --git a/pkgs/by-name/xd/xdummy/package.nix b/pkgs/by-name/xd/xdummy/package.nix index 92d9355fb31f..d9c27616e29b 100644 --- a/pkgs/by-name/xd/xdummy/package.nix +++ b/pkgs/by-name/xd/xdummy/package.nix @@ -31,8 +31,8 @@ let XkbDir "${xkeyboard_config}/share/X11/xkb" FontPath "${xorg.fontadobe75dpi}/share/fonts/X11/75dpi" FontPath "${xorg.fontadobe100dpi}/share/fonts/X11/100dpi" - FontPath "${xorg.fontmiscmisc}/lib/X11/fonts/misc" - FontPath "${xorg.fontcursormisc}/lib/X11/fonts/misc" + FontPath "${xorg.fontmiscmisc}/share/fonts/X11/misc" + FontPath "${xorg.fontcursormisc}/share/fonts/X11/misc" ${lib.optionalString unfreeFonts '' FontPath "${xorg.fontbhlucidatypewriter75dpi}/share/fonts/X11/75dpi" FontPath "${xorg.fontbhlucidatypewriter100dpi}/share/fonts/X11/100dpi" diff --git a/pkgs/by-name/xe/xenia-canary/package.nix b/pkgs/by-name/xe/xenia-canary/package.nix index 379a0dd06ce8..f5965b3d7b5a 100644 --- a/pkgs/by-name/xe/xenia-canary/package.nix +++ b/pkgs/by-name/xe/xenia-canary/package.nix @@ -19,14 +19,14 @@ }: llvmPackages_20.stdenv.mkDerivation { pname = "xenia-canary"; - version = "0-unstable-2025-11-10"; + version = "0-unstable-2025-11-13"; src = fetchFromGitHub { owner = "xenia-canary"; repo = "xenia-canary"; fetchSubmodules = true; - rev = "68b3490c8bdb2a819e80b113457aa16c6634118e"; - hash = "sha256-pUvOUAwF4FdDrQkXKH2zyQmlZ5/lM+7syROWVWhJcX8="; + rev = "09b9e37c4ff63a46bdf04bb006a6923e7334eb0a"; + hash = "sha256-R24LHFqYeLvUuUJaM4uNVvlsieHsFFN7TcgbDtwK7zQ="; }; dontConfigure = true; diff --git a/pkgs/by-name/yt/yt-dlp/package.nix b/pkgs/by-name/yt/yt-dlp/package.nix index 15d8ec8ac8e8..977dd7b10ce5 100644 --- a/pkgs/by-name/yt/yt-dlp/package.nix +++ b/pkgs/by-name/yt/yt-dlp/package.nix @@ -1,14 +1,16 @@ { lib, python3Packages, + atomicparsley, + deno, fetchFromGitHub, ffmpeg-headless, - rtmpdump, - atomicparsley, - pandoc, installShellFiles, + pandoc, + rtmpdump, atomicparsleySupport ? true, ffmpegSupport ? true, + javascriptSupport ? true, rtmpSupport ? true, withAlias ? false, # Provides bin/youtube-dl for backcompat nix-update-script, @@ -19,14 +21,14 @@ python3Packages.buildPythonApplication rec { # The websites yt-dlp deals with are a very moving target. That means that # downloads break constantly. Because of that, updates should always be backported # to the latest stable release. - version = "2025.10.22"; + version = "2025.11.12"; pyproject = true; src = fetchFromGitHub { owner = "yt-dlp"; repo = "yt-dlp"; tag = version; - hash = "sha256-jQaENEflaF9HzY/EiMXIHgUehAJ3nnDT9IbaN6bDcac="; + hash = "sha256-Em8FLcCizSfvucg+KPuJyhFZ5MJ8STTjSpqaTD5xeKI="; }; postPatch = '' @@ -57,6 +59,7 @@ python3Packages.buildPythonApplication rec { requests urllib3 websockets + yt-dlp-ejs # keep pinned version in sync! ]; curl-cffi = [ python3Packages.curl-cffi ]; secretstorage = with python3Packages; [ @@ -84,14 +87,15 @@ python3Packages.buildPythonApplication rec { # Ensure these utilities are available in $PATH: # - ffmpeg: post-processing & transcoding support + # - deno: required for full YouTube support (since 2025.11.12) # - rtmpdump: download files over RTMP # - atomicparsley: embedding thumbnails makeWrapperArgs = let packagesToBinPath = - [ ] - ++ lib.optional atomicparsleySupport atomicparsley + lib.optional atomicparsleySupport atomicparsley ++ lib.optional ffmpegSupport ffmpeg-headless + ++ lib.optional javascriptSupport deno ++ lib.optional rtmpSupport rtmpdump; in lib.optionals (packagesToBinPath != [ ]) [ @@ -121,11 +125,13 @@ python3Packages.buildPythonApplication rec { ln -s "$out/bin/yt-dlp" "$out/bin/youtube-dl" ''; - passthru.updateScript = nix-update-script { }; + passthru = { + updateScript = nix-update-script { }; + }; meta = { changelog = "https://github.com/yt-dlp/yt-dlp/blob/${version}/Changelog.md"; - description = "Command-line tool to download videos from YouTube.com and other sites (youtube-dl fork)"; + description = "Feature-rich command-line audio/video downloader"; homepage = "https://github.com/yt-dlp/yt-dlp/"; license = lib.licenses.unlicense; longDescription = '' diff --git a/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix b/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix index 05128857f41b..74960b5d1533 100644 --- a/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix @@ -21,13 +21,13 @@ stdenv.mkDerivation rec { pname = "elementary-terminal"; - version = "7.1.2"; + version = "7.2.0"; src = fetchFromGitHub { owner = "elementary"; repo = "terminal"; - rev = version; - sha256 = "sha256-aMVZSPCh3aQ9VvPyHGKX4p/XG3KhnJpdiFWD0dIjByw="; + tag = version; + hash = "sha256-fYOX48zGJY/1iIcL0SaHLyt/c6tr9qTeH1i5hTsZvvE="; }; nativeBuildInputs = [ diff --git a/pkgs/development/libraries/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/default.nix index a33b23e18275..366e6d67d461 100644 --- a/pkgs/development/libraries/gstreamer/default.nix +++ b/pkgs/development/libraries/gstreamer/default.nix @@ -1,52 +1,49 @@ { config, lib, - callPackage, - ipu6ep-camera-hal, - ipu6epmtl-camera-hal, + newScope, apple-sdk, }: -let - apple-sdk_gstreamer = apple-sdk; -in -{ - inherit apple-sdk_gstreamer; +lib.makeScope newScope ( + self: + let + inherit (self) callPackage; + in + { + apple-sdk_gstreamer = apple-sdk; - gstreamer = callPackage ./core { }; + gstreamer = callPackage ./core { }; - gstreamermm = callPackage ./gstreamermm { }; + gstreamermm = callPackage ./gstreamermm { }; - gst-plugins-base = callPackage ./base { }; + gst-plugins-base = callPackage ./base { }; - gst-plugins-good = callPackage ./good { }; + gst-plugins-good = callPackage ./good { }; - gst-plugins-bad = callPackage ./bad { }; + gst-plugins-bad = callPackage ./bad { }; - gst-plugins-ugly = callPackage ./ugly { }; + gst-plugins-ugly = callPackage ./ugly { }; - gst-plugins-rs = callPackage ./rs { }; + gst-plugins-rs = callPackage ./rs { }; - gst-rtsp-server = callPackage ./rtsp-server { }; + gst-rtsp-server = callPackage ./rtsp-server { }; - gst-libav = callPackage ./libav { }; + gst-libav = callPackage ./libav { }; - gst-devtools = callPackage ./devtools { }; + gst-devtools = callPackage ./devtools { }; - gst-editing-services = callPackage ./ges { }; + gst-editing-services = callPackage ./ges { }; - gst-vaapi = callPackage ./vaapi { }; + gst-vaapi = callPackage ./vaapi { }; - icamerasrc-ipu6 = callPackage ./icamerasrc { }; - icamerasrc-ipu6ep = callPackage ./icamerasrc { - ipu6-camera-hal = ipu6ep-camera-hal; - }; - icamerasrc-ipu6epmtl = callPackage ./icamerasrc { - ipu6-camera-hal = ipu6epmtl-camera-hal; - }; + icamerasrc-ipu6 = callPackage ./icamerasrc { }; + icamerasrc-ipu6ep = callPackage ./icamerasrc { }; + icamerasrc-ipu6epmtl = callPackage ./icamerasrc { }; - # note: gst-python is in ../../python-modules/gst-python - called under python3Packages -} -// lib.optionalAttrs config.allowAliases { - gst-plugins-viperfx = throw "'gst_all_1.gst-plugins-viperfx' was removed as it is broken and not maintained upstream"; # Added 2024-12-16 -} + # note: gst-python is in ../../python-modules/gst-python - called under python3Packages + } + // lib.optionalAttrs config.allowAliases { + gst-plugins-viperfx = throw "'gst_all_1.gst-plugins-viperfx' was removed as it is broken and not maintained upstream"; # Added 2024-12-16 + } +) diff --git a/pkgs/development/ocaml-modules/pcre2/default.nix b/pkgs/development/ocaml-modules/pcre2/default.nix index ec5277d4bfbe..858ad3a125d1 100644 --- a/pkgs/development/ocaml-modules/pcre2/default.nix +++ b/pkgs/development/ocaml-modules/pcre2/default.nix @@ -4,7 +4,7 @@ buildDunePackage, dune-configurator, pcre2, - version ? "8.0.3", + version ? "8.0.4", }: buildDunePackage { @@ -17,7 +17,7 @@ buildDunePackage { owner = "camlp5"; repo = "pcre2-ocaml"; tag = version; - hash = "sha256-YqzpK4Syh9pP64+bwdSiphdfJdwsWQSaOrpKsoKSWyU="; + hash = "sha256-UCz8l7kx8d6wlRzLwIx4+LmkG7mwzxy9Ca2DwMT2u+E="; }; buildInputs = [ dune-configurator ]; diff --git a/pkgs/development/python-modules/adguardhome/default.nix b/pkgs/development/python-modules/adguardhome/default.nix index af0172724753..8165545c3052 100644 --- a/pkgs/development/python-modules/adguardhome/default.nix +++ b/pkgs/development/python-modules/adguardhome/default.nix @@ -8,22 +8,19 @@ pytest-asyncio, pytest-cov-stub, pytestCheckHook, - pythonOlder, yarl, }: buildPythonPackage rec { pname = "adguardhome"; - version = "0.7.0"; + version = "0.8.1"; pyproject = true; - disabled = pythonOlder "3.11"; - src = fetchFromGitHub { owner = "frenck"; repo = "python-${pname}"; tag = "v${version}"; - hash = "sha256-n55G6ulKcgSSrgPk70D52OO9fp3WURlcRhJQUKrZ1Nk="; + hash = "sha256-pc7UfR/0mQZ98FyomQErz5hePHy6KE2h9UhJ9lFGtFA="; }; postPatch = '' @@ -49,11 +46,11 @@ buildPythonPackage rec { pythonImportsCheck = [ "adguardhome" ]; - meta = with lib; { + meta = { description = "Python client for the AdGuard Home API"; homepage = "https://github.com/frenck/python-adguardhome"; changelog = "https://github.com/frenck/python-adguardhome/releases/tag/v${version}"; - license = licenses.mit; - maintainers = with maintainers; [ jamiemagee ]; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ jamiemagee ]; }; } diff --git a/pkgs/development/python-modules/airtouch5py/default.nix b/pkgs/development/python-modules/airtouch5py/default.nix index 52b85fdefa0e..ab6b3fa3507c 100644 --- a/pkgs/development/python-modules/airtouch5py/default.nix +++ b/pkgs/development/python-modules/airtouch5py/default.nix @@ -1,7 +1,6 @@ { lib, buildPythonPackage, - pythonOlder, fetchFromGitHub, # build-system @@ -17,16 +16,14 @@ buildPythonPackage rec { pname = "airtouch5py"; - version = "0.3.0"; + version = "0.4.0"; pyproject = true; - disabled = pythonOlder "3.10"; - src = fetchFromGitHub { owner = "danzel"; repo = "airtouch5py"; tag = version; - hash = "sha256-St2FjyUXyTmy0shQfUzuB+lUSaadEyjdNJJkQA4aCxQ="; + hash = "sha256-SJ6AVUbdEy0nvpLe39dH/Wc//fDTf0dIvrvVQDUl5eI="; }; build-system = [ poetry-core ]; @@ -46,7 +43,7 @@ buildPythonPackage rec { pythonImportsCheck = [ "airtouch5py" ]; meta = with lib; { - changelog = "https://github.com/danzel/airtouch5py/releases/tag/${version}"; + changelog = "https://github.com/danzel/airtouch5py/releases/tag/${src.tag}"; description = "Python client for the airtouch 5"; homepage = "https://github.com/danzel/airtouch5py"; license = licenses.asl20; diff --git a/pkgs/development/python-modules/arelle/default.nix b/pkgs/development/python-modules/arelle/default.nix index 032d6b02b31e..9654ad7f97c4 100644 --- a/pkgs/development/python-modules/arelle/default.nix +++ b/pkgs/development/python-modules/arelle/default.nix @@ -10,6 +10,7 @@ certifi, filelock, isodate, + jaconv, jsonschema, lxml, numpy, @@ -25,17 +26,17 @@ tkinter, aniso8601, - pycryptodome, + cheroot, + graphviz, + holidays, + matplotlib, pg8000, + pycryptodome, pymysql, pyodbc, - rdflib, - holidays, pytz, + rdflib, tinycss2, - graphviz, - cheroot, - cherrypy, tornado, sphinxHook, @@ -44,20 +45,21 @@ sphinx-copybutton, furo, + writableTmpDirAsHomeHook, pytestCheckHook, boto3, }: buildPythonPackage rec { pname = "arelle${lib.optionalString (!gui) "-headless"}"; - version = "2.37.61"; + version = "2.37.72"; pyproject = true; src = fetchFromGitHub { owner = "Arelle"; repo = "Arelle"; tag = version; - hash = "sha256-xz3sDAgE1Qpml8V+2y+q/tTda6uGZuMnNSEGdIjLlzI="; + hash = "sha256-wytYETzntY1sGHgXua/MOkceiNKjr5qddAGWPMJni98="; }; outputs = [ @@ -71,6 +73,10 @@ buildPythonPackage rec { 'requires = ["setuptools", "wheel", "setuptools_scm[toml]"]' ''; + pythonRelaxDeps = [ + "pillow" # pillow's current version is above what arelle officially supports, but it should be fine + ]; + build-system = [ setuptools setuptools-scm @@ -81,6 +87,7 @@ buildPythonPackage rec { certifi filelock isodate + jaconv jsonschema lxml numpy @@ -103,14 +110,15 @@ buildPythonPackage rec { rdflib ]; efm = [ + aniso8601 holidays + matplotlib pytz ]; esef = [ tinycss2 ]; objectmaker = [ graphviz ]; webserver = [ cheroot - cherrypy tornado ]; xule = [ aniso8601 ]; @@ -131,15 +139,12 @@ buildPythonPackage rec { ''; nativeCheckInputs = [ + writableTmpDirAsHomeHook pytestCheckHook boto3 ] ++ lib.flatten (lib.attrValues optional-dependencies); - preCheck = '' - export HOME=$(mktemp -d) - ''; - disabledTestPaths = [ "tests/integration_tests" ] diff --git a/pkgs/development/python-modules/asdf-astropy/default.nix b/pkgs/development/python-modules/asdf-astropy/default.nix index 630ff8e349d4..92c8ce75b908 100644 --- a/pkgs/development/python-modules/asdf-astropy/default.nix +++ b/pkgs/development/python-modules/asdf-astropy/default.nix @@ -9,12 +9,13 @@ fetchFromGitHub, numpy, packaging, - pytest-astropy, + pytest-astropy-header, + pytest-doctestplus, pytestCheckHook, - pythonOlder, scipy, setuptools-scm, setuptools, + writableTmpDirAsHomeHook, }: buildPythonPackage rec { @@ -22,8 +23,6 @@ buildPythonPackage rec { version = "0.8.0"; pyproject = true; - disabled = pythonOlder "3.10"; - src = fetchFromGitHub { owner = "astropy"; repo = "asdf-astropy"; @@ -47,17 +46,15 @@ buildPythonPackage rec { ]; nativeCheckInputs = [ - pytest-astropy + pytest-astropy-header + pytest-doctestplus pytestCheckHook scipy + writableTmpDirAsHomeHook ]; pythonImportsCheck = [ "asdf_astropy" ]; - preCheck = '' - export HOME=$(mktemp -d) - ''; - meta = with lib; { description = "Extension library for ASDF to provide support for Astropy"; homepage = "https://github.com/astropy/asdf-astropy"; diff --git a/pkgs/development/python-modules/async-upnp-client/default.nix b/pkgs/development/python-modules/async-upnp-client/default.nix index b88e8b942788..77f6c6d32695 100644 --- a/pkgs/development/python-modules/async-upnp-client/default.nix +++ b/pkgs/development/python-modules/async-upnp-client/default.nix @@ -21,25 +21,16 @@ buildPythonPackage rec { pname = "async-upnp-client"; - version = "0.45.0"; + version = "0.46.0"; pyproject = true; src = fetchFromGitHub { owner = "StevenLooman"; repo = "async_upnp_client"; tag = version; - hash = "sha256-bRUEnedPDFBgpJeDPRG6e6fQUJ/R2RaasVKHZX7COp8="; + hash = "sha256-M8ctS8TvYS01fWfAIKkOMMmp3+FzJLB7Eq+weS2EqI4="; }; - pythonRelaxDeps = [ - "defusedxml" - ]; - - pythonRemoveDeps = [ - # https://github.com/StevenLooman/async_upnp_client/pull/278 - "async-timeout" - ]; - build-system = [ setuptools ]; dependencies = [ @@ -56,8 +47,6 @@ buildPythonPackage rec { ]; disabledTests = [ - "test_decode_ssdp_packet" - "test_microsoft_butchers_ssdp" # socket.gaierror: [Errno -2] Name or service not known "test_async_get_local_ip" "test_get_local_ip" diff --git a/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix b/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix index 0eb74f090d02..041a9c86c8c0 100644 --- a/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix +++ b/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix @@ -5,21 +5,18 @@ fetchPypi, msrest, typing-extensions, - pythonOlder, setuptools, }: buildPythonPackage rec { pname = "azure-mgmt-containerservice"; - version = "40.0.0"; + version = "40.1.0"; pyproject = true; - disabled = pythonOlder "3.9"; - src = fetchPypi { pname = "azure_mgmt_containerservice"; inherit version; - hash = "sha256-bFKgzV1VUg7wKOqQtyvY0TKPgNDOaXQ072HFBoYmr28="; + hash = "sha256-iabK9QfTQN9HLcjc/iF8HgmM3Y5xNT24ku/ChDMOL44="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/azure-mgmt-netapp/default.nix b/pkgs/development/python-modules/azure-mgmt-netapp/default.nix index e1a23a86eb5f..4575d6f1ba8a 100644 --- a/pkgs/development/python-modules/azure-mgmt-netapp/default.nix +++ b/pkgs/development/python-modules/azure-mgmt-netapp/default.nix @@ -2,7 +2,6 @@ lib, buildPythonPackage, fetchPypi, - pythonOlder, azure-common, azure-mgmt-core, isodate, @@ -11,15 +10,13 @@ buildPythonPackage rec { pname = "azure-mgmt-netapp"; - version = "13.7.0"; + version = "14.0.0"; pyproject = true; - disabled = pythonOlder "3.8"; - src = fetchPypi { pname = "azure_mgmt_netapp"; inherit version; - hash = "sha256-A5BeDGy81YdWnVhl44U8r91FUGFADIxotgNAewa1zTo="; + hash = "sha256-ykYLisZMhwPUnos5pJzgbxZsqF6R6IcQRAyMSF+96G4="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/blivet/default.nix b/pkgs/development/python-modules/blivet/default.nix index 623b61520354..dd433a46b892 100644 --- a/pkgs/development/python-modules/blivet/default.nix +++ b/pkgs/development/python-modules/blivet/default.nix @@ -51,9 +51,9 @@ buildPythonPackage rec { --replace \ 'gi.require_version("BlockDev",' \ 'import gi.repository - gi.require_version("GIRepository", "2.0") + gi.require_version("GIRepository", "3.0") from gi.repository import GIRepository - GIRepository.Repository.prepend_search_path("${libblockdev}/lib/girepository-1.0") + GIRepository.Repository.dup_default().prepend_search_path("${libblockdev}/lib/girepository-1.0") gi.require_version("BlockDev",' done ''; diff --git a/pkgs/development/python-modules/coverage/default.nix b/pkgs/development/python-modules/coverage/default.nix index 53374790cedd..9d262342d07a 100644 --- a/pkgs/development/python-modules/coverage/default.nix +++ b/pkgs/development/python-modules/coverage/default.nix @@ -15,14 +15,14 @@ buildPythonPackage rec { pname = "coverage"; - version = "7.11.0"; + version = "7.11.3"; pyproject = true; src = fetchFromGitHub { - owner = "nedbat"; + owner = "coveragepy"; repo = "coveragepy"; tag = version; - hash = "sha256-l4JeGgy+WAN6NHz0ZkPYqiNw0k5VxaX32Vcp11sylgU="; + hash = "sha256-NE5lvAy7TjsQwvduYS3+qo96YOymCIyepdPYTyIe3IA="; }; build-system = [ setuptools ]; @@ -69,9 +69,9 @@ buildPythonPackage rec { ]; meta = { - changelog = "https://github.com/nedbat/coveragepy/blob/${src.tag}/CHANGES.rst"; + changelog = "https://github.com/coveragepy/coveragepy/blob/${src.tag}/CHANGES.rst"; description = "Code coverage measurement for Python"; - homepage = "https://github.com/nedbat/coveragepy"; + homepage = "https://github.com/coveragepy/coveragepy"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ dotlambda ]; }; diff --git a/pkgs/development/python-modules/curl-cffi/default.nix b/pkgs/development/python-modules/curl-cffi/default.nix index 310fd84f70ad..5875f4a29b9b 100644 --- a/pkgs/development/python-modules/curl-cffi/default.nix +++ b/pkgs/development/python-modules/curl-cffi/default.nix @@ -104,6 +104,10 @@ buildPythonPackage rec { "tests/unittest/test_websockets.py::test_websocket" # Runs out of memory while testing "tests/unittest/test_websockets.py::test_receive_large_messages_run_forever" + # Fails on high core-count machines (including x86_64) + "tests/unittest/test_websockets.py::on_message" + "tests/unittest/test_websockets.py::test_on_data_callback" + "tests/unittest/test_websockets.py::test_hello_twice_async" ]; disabledTests = [ diff --git a/pkgs/development/python-modules/dbus-fast/default.nix b/pkgs/development/python-modules/dbus-fast/default.nix index 18d2e8943683..c76ae6dd2b32 100644 --- a/pkgs/development/python-modules/dbus-fast/default.nix +++ b/pkgs/development/python-modules/dbus-fast/default.nix @@ -11,27 +11,24 @@ pytest-codspeed, pytest-cov-stub, python, - pythonOlder, setuptools, }: buildPythonPackage rec { pname = "dbus-fast"; - version = "2.44.5"; + version = "2.46.3"; pyproject = true; - disabled = pythonOlder "3.9"; - src = fetchFromGitHub { owner = "Bluetooth-Devices"; repo = "dbus-fast"; tag = "v${version}"; - hash = "sha256-dDUZjV6bwSlWclKmJAROB4OQsCzTUswmYe2LmFiIiz0="; + hash = "sha256-Z/TuYRpmMTU86pJAFDY2J9RG4YfsDcOJsl+71yEVgSI="; }; postPatch = '' substituteInPlace pyproject.toml \ - --replace-fail "Cython>=3,<3.1.0" Cython + --replace-fail "Cython>=3,<3.3.0" Cython ''; # The project can build both an optimized cython version and an unoptimized diff --git a/pkgs/development/python-modules/django-postgres-extra/default.nix b/pkgs/development/python-modules/django-postgres-extra/default.nix index 2dd99612fe02..f3f3fd16ad56 100644 --- a/pkgs/development/python-modules/django-postgres-extra/default.nix +++ b/pkgs/development/python-modules/django-postgres-extra/default.nix @@ -6,21 +6,14 @@ django, python-dateutil, # test dependencies - coverage, dj-database-url, freezegun, postgresql, psycopg2, - pytest, - pytest-benchmark, - pytest-cov, pytest-django, pytest-freezegun, pytest-lazy-fixture, pytestCheckHook, - syrupy, - tox, - types-psycopg2, }: buildPythonPackage rec { pname = "django-postgres-extra"; @@ -42,21 +35,14 @@ buildPythonPackage rec { ]; nativeCheckInputs = [ - coverage dj-database-url freezegun postgresql psycopg2 - pytest - pytest-benchmark - pytest-cov pytest-django pytest-freezegun pytest-lazy-fixture pytestCheckHook - syrupy - tox - types-psycopg2 ]; preCheck = '' diff --git a/pkgs/development/python-modules/doubles/default.nix b/pkgs/development/python-modules/doubles/default.nix index 09f2e2d7533b..fda5a1d54f66 100644 --- a/pkgs/development/python-modules/doubles/default.nix +++ b/pkgs/development/python-modules/doubles/default.nix @@ -3,8 +3,8 @@ buildPythonPackage, fetchFromGitHub, pytest7CheckHook, + pythonOlder, setuptools, - coverage, six, }: @@ -25,7 +25,6 @@ buildPythonPackage rec { ]; dependencies = [ - coverage six ]; @@ -33,12 +32,10 @@ buildPythonPackage rec { pytest7CheckHook ]; - # To avoid a ValueError: Plugin already registered under a different name: - # doubles.pytest_plugin - pytestFlags = [ - "-p" - "no:doubles" - ]; + preCheck = '' + # imports coverage + rm test/conftest.py + ''; disabledTestPaths = [ # nose is deprecated @@ -54,6 +51,13 @@ buildPythonPackage rec { "test/object_double_test.py" ]; + disabledTests = lib.optionals (pythonOlder "3.13") [ + # doubles.exceptions.VerifyingDoubleArgumentError: class_method() missing 1 required positional argument: 'arg' + "test_variable_that_points_to_class_method" + # doubles.exceptions.VerifyingDoubleArgumentError: get_name() missing 1 required positional argument: 'self' + "test_variable_that_points_to_instance_method" + ]; + pythonImportsCheck = [ "doubles" ]; meta = { diff --git a/pkgs/development/python-modules/ds-reporting-lib/default.nix b/pkgs/development/python-modules/ds-reporting-lib/default.nix index 26697a6033ae..45477ea9dd8c 100644 --- a/pkgs/development/python-modules/ds-reporting-lib/default.nix +++ b/pkgs/development/python-modules/ds-reporting-lib/default.nix @@ -7,14 +7,14 @@ buildPythonPackage rec { pname = "ds-reporting-lib"; - version = "6.0.0b3"; + version = "6.0.0b5"; pyproject = true; # pypi because library is embedded into another project's repo src = fetchPypi { inherit version; pname = "ds_reporting_lib"; - hash = "sha256-0C/UgAM7VIWEjuRq1ZCTL5CjJ6OK+0/Yw+AN4j7jj6E="; + hash = "sha256-hxjNRUOorjjbuJkFpscTN3VB5NJywLZ6Ux+dB1Q1FyU="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/ds-xbom-lib/default.nix b/pkgs/development/python-modules/ds-xbom-lib/default.nix index 20464510118e..c903f2e0a20f 100644 --- a/pkgs/development/python-modules/ds-xbom-lib/default.nix +++ b/pkgs/development/python-modules/ds-xbom-lib/default.nix @@ -7,14 +7,14 @@ buildPythonPackage rec { pname = "ds-xbom-lib"; - version = "6.0.0b3"; + version = "6.0.0b5"; pyproject = true; # pypi because library is embedded into another project's repo src = fetchPypi { inherit version; pname = "ds_xbom_lib"; - hash = "sha256-/L0AFAuIDzbyXwpg0bigy2AR4GT0RSdXrjPAEbEO7cI="; + hash = "sha256-IAqKqwetoQu1Fwb2tr4UjA3WztIIq5so/WE++Ov0VTw="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/elkoep-aio-mqtt/default.nix b/pkgs/development/python-modules/elkoep-aio-mqtt/default.nix new file mode 100644 index 000000000000..9e30e92a851b --- /dev/null +++ b/pkgs/development/python-modules/elkoep-aio-mqtt/default.nix @@ -0,0 +1,45 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + attrs, + paho-mqtt, + pytest-asyncio, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "elkoep-aio-mqtt"; + version = "0.1.0.beta.4"; + pyproject = true; + + src = fetchFromGitHub { + owner = "epdevlab"; + repo = "elkoep-aio-mqtt"; + tag = "0.1.0.beta.4"; + hash = "sha256-pQzM0wLLZk6cEizhDqLbVF4pMeyefgSUU0ay3CiGgAE="; + }; + + build-system = [ setuptools ]; + + dependencies = [ + attrs + paho-mqtt + ]; + + nativeCheckInputs = [ + pytest-asyncio + pytestCheckHook + ]; + + pythonImportsCheck = [ "inelsmqtt" ]; + + meta = { + description = "Python library for iNELS mqtt protocol"; + homepage = "https://github.com/epdevlab/elkoep-aio-mqtt"; + changelog = "https://github.com/epdevlab/elkoep-aio-mqtt/releases/tag/${src.tag}"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.jamiemagee ]; + }; +} diff --git a/pkgs/development/python-modules/fastapi-mail/default.nix b/pkgs/development/python-modules/fastapi-mail/default.nix index 4fb8c7b1b621..4311c27f9bdb 100644 --- a/pkgs/development/python-modules/fastapi-mail/default.nix +++ b/pkgs/development/python-modules/fastapi-mail/default.nix @@ -3,6 +3,7 @@ aiosmtplib, blinker, buildPythonPackage, + cryptography, email-validator, fakeredis, fetchFromGitHub, @@ -13,27 +14,27 @@ pydantic, pytest-asyncio, pytestCheckHook, - pythonOlder, redis, + regex, starlette, }: buildPythonPackage rec { pname = "fastapi-mail"; - version = "1.5.0"; + version = "1.5.8"; pyproject = true; - disabled = pythonOlder "3.8"; - src = fetchFromGitHub { owner = "sabuhish"; repo = "fastapi-mail"; tag = version; - hash = "sha256-v8cf4GlYAdl5+iD7hJHW+FuDN/I/VygWaaZLEotDNCU="; + hash = "sha256-xxArFytTJKLTlBjR3T+c1OTpK3vSgIrpRJqQEcFs4J4="; }; pythonRelaxDeps = [ "aiosmtplib" + "cryptography" + "email-validator" "pydantic" ]; @@ -42,11 +43,13 @@ buildPythonPackage rec { dependencies = [ aiosmtplib blinker + cryptography email-validator fakeredis jinja2 pydantic pydantic-settings + regex starlette ]; @@ -72,7 +75,7 @@ buildPythonPackage rec { meta = with lib; { description = "Module for sending emails and attachments"; homepage = "https://github.com/sabuhish/fastapi-mail"; - changelog = "https://github.com/sabuhish/fastapi-mail/releases/tag/${version}"; + changelog = "https://github.com/sabuhish/fastapi-mail/releases/tag/${src.tag}"; license = licenses.mit; maintainers = with maintainers; [ fab ]; }; diff --git a/pkgs/development/python-modules/flask-sqlalchemy-lite/default.nix b/pkgs/development/python-modules/flask-sqlalchemy-lite/default.nix index 7e0f0ba603cb..df55e53a65b6 100644 --- a/pkgs/development/python-modules/flask-sqlalchemy-lite/default.nix +++ b/pkgs/development/python-modules/flask-sqlalchemy-lite/default.nix @@ -2,7 +2,6 @@ aiosqlite, buildPythonPackage, fetchFromGitHub, - fetchpatch2, flask, flit-core, lib, @@ -12,24 +11,16 @@ buildPythonPackage rec { pname = "flask-sqlalchemy-lite"; - version = "0.1.0"; + version = "0.2.0"; pyproject = true; src = fetchFromGitHub { owner = "pallets-eco"; repo = "flask-sqlalchemy-lite"; tag = version; - hash = "sha256-LpdPp5Gp74DSJqD1DJqwNeaMKdN5pEAUkxnKGYZcVis="; + hash = "sha256-c7lTxihlW48bj9+pU2uq2V/dQrZCi5kq2gWdFhipQGE="; }; - patches = [ - # fix python3.13 compat - (fetchpatch2 { - url = "https://github.com/pallets-eco/flask-sqlalchemy-lite/commit/b4117beaa6caa0a5945d6e3451db8b80dc4cc8cf.patch?full_index=1"; - hash = "sha256-zCeUWB3iuKqco030pULaRpRsIOpSRz9+VYxI/RQhIyw="; - }) - ]; - build-system = [ flit-core ]; dependencies = [ @@ -47,7 +38,7 @@ buildPythonPackage rec { ]; meta = { - changelog = "https://github.com/pallets-eco/flask-sqlalchemy-lite/blob/${src.rev}/CHANGES.md"; + changelog = "https://github.com/pallets-eco/flask-sqlalchemy-lite/blob/${src.tag}/CHANGES.md"; description = "Integrate SQLAlchemy with Flask"; homepage = "https://github.com/pallets-eco/flask-sqlalchemy-lite"; license = lib.licenses.mit; diff --git a/pkgs/development/python-modules/garminconnect/default.nix b/pkgs/development/python-modules/garminconnect/default.nix index c8e895092974..381f52cddf1a 100644 --- a/pkgs/development/python-modules/garminconnect/default.nix +++ b/pkgs/development/python-modules/garminconnect/default.nix @@ -4,23 +4,20 @@ fetchFromGitHub, garth, pdm-backend, - pythonOlder, requests, withings-sync, }: buildPythonPackage rec { pname = "garminconnect"; - version = "0.2.33"; + version = "0.2.34"; pyproject = true; - disabled = pythonOlder "3.10"; - src = fetchFromGitHub { owner = "cyberjunky"; repo = "python-garminconnect"; tag = version; - hash = "sha256-tQXrJsvdH2YfIpW8iKMBwHZPj2etQDpRaSGojMQ88J0="; + hash = "sha256-gcqkSWyPSwkzykKSXhTPq363fi89TyP2DPQchSmGg/k="; }; pythonRelaxDeps = [ diff --git a/pkgs/development/python-modules/gftools/default.nix b/pkgs/development/python-modules/gftools/default.nix index e4f4ff83e342..aaff7981fa1c 100644 --- a/pkgs/development/python-modules/gftools/default.nix +++ b/pkgs/development/python-modules/gftools/default.nix @@ -62,14 +62,14 @@ let in buildPythonPackage rec { pname = "gftools"; - version = "0.9.92"; + version = "0.9.95"; pyproject = true; src = fetchFromGitHub { owner = "googlefonts"; repo = "gftools"; tag = "v${version}"; - hash = "sha256-Fm2+OidrGeuWVMg3rn2zBa6hHFBQcxVqXw+cM/tU/QQ="; + hash = "sha256-BbATdzHESpGRqrkpCgCCbQTaodJu26R4aodJJBBzpOc="; }; postPatch = '' diff --git a/pkgs/development/python-modules/google-cloud-dns/default.nix b/pkgs/development/python-modules/google-cloud-dns/default.nix index 5e1eae819e12..b329fd471ca9 100644 --- a/pkgs/development/python-modules/google-cloud-dns/default.nix +++ b/pkgs/development/python-modules/google-cloud-dns/default.nix @@ -6,21 +6,18 @@ google-cloud-core, mock, pytestCheckHook, - pythonOlder, setuptools, }: buildPythonPackage rec { pname = "google-cloud-dns"; - version = "0.35.1"; + version = "0.36.0"; pyproject = true; - disabled = pythonOlder "3.7"; - src = fetchPypi { pname = "google_cloud_dns"; inherit version; - hash = "sha256-lU9EYV16tv/NBjJOL552D5awffH83bAkuaEJ0LMwqR8="; + hash = "sha256-SwpOx2wnOQHUixtzEyw/3NMYdIUMpkJM115tYxrjcR4="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/google-re2/default.nix b/pkgs/development/python-modules/google-re2/default.nix index da3a9ab52a23..f6de94b80552 100644 --- a/pkgs/development/python-modules/google-re2/default.nix +++ b/pkgs/development/python-modules/google-re2/default.nix @@ -10,7 +10,7 @@ buildPythonPackage rec { pname = "google-re2"; - version = "1.1.20250722"; + version = "1.1.20250805"; pyproject = true; disabled = pythonOlder "3.8"; @@ -18,7 +18,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "google_re2"; inherit version; - hash = "sha256-XipGTfddvO+f4Nrxinj3PD8KUbgc24ZUYKBXmyJvLvM="; + hash = "sha256-xV2ffJKoFOtTkYp7OOW6XqocmVSDIay4JtqVMnga9bU="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/griffe/default.nix b/pkgs/development/python-modules/griffe/default.nix index bede5d9b0f33..f3167d44da1c 100644 --- a/pkgs/development/python-modules/griffe/default.nix +++ b/pkgs/development/python-modules/griffe/default.nix @@ -7,19 +7,20 @@ git, jsonschema, pdm-backend, + pytest-gitconfig, pytestCheckHook, }: buildPythonPackage rec { pname = "griffe"; - version = "1.14.0"; + version = "1.15.0"; pyproject = true; src = fetchFromGitHub { owner = "mkdocstrings"; repo = "griffe"; tag = version; - hash = "sha256-0koTrA1b3S1NO6w24S8eghWpYDkGEo61giRveQ7MZhM="; + hash = "sha256-AMMTAqsJfj2MltTgAxfvjUTVzi+ZFmx+J9pzhMp28Z4="; }; build-system = [ pdm-backend ]; @@ -29,6 +30,7 @@ buildPythonPackage rec { nativeCheckInputs = [ git jsonschema + pytest-gitconfig pytestCheckHook ]; diff --git a/pkgs/development/python-modules/iamdata/default.nix b/pkgs/development/python-modules/iamdata/default.nix index a91065aee502..87450865bcc8 100644 --- a/pkgs/development/python-modules/iamdata/default.nix +++ b/pkgs/development/python-modules/iamdata/default.nix @@ -8,14 +8,14 @@ buildPythonPackage rec { pname = "iamdata"; - version = "0.1.202511141"; + version = "0.1.202511161"; pyproject = true; src = fetchFromGitHub { owner = "cloud-copilot"; repo = "iam-data-python"; tag = "v${version}"; - hash = "sha256-nADDcbP3tL6ggr4C6TwzCbyP/ZVd6lamkvDesKeQ3ds="; + hash = "sha256-50RiHTnMAZyd2Adl0s2vAr+qgcObKJiIbm8u1Bjzeh8="; }; __darwinAllowLocalNetworking = true; diff --git a/pkgs/development/python-modules/nicegui-highcharts/default.nix b/pkgs/development/python-modules/nicegui-highcharts/default.nix index b0bc71fceada..592a43d467c9 100644 --- a/pkgs/development/python-modules/nicegui-highcharts/default.nix +++ b/pkgs/development/python-modules/nicegui-highcharts/default.nix @@ -14,14 +14,14 @@ buildPythonPackage rec { pname = "nicegui-highcharts"; - version = "3.0.0"; + version = "3.1.0"; pyproject = true; src = fetchFromGitHub { owner = "zauberzeug"; repo = "nicegui-highcharts"; tag = "v${version}"; - hash = "sha256-HFLlT2TOS7actGxSBQ9ivWS2fVQwt1UWiK/JZlj8Zo8="; + hash = "sha256-xfZtEAwHIbSI55V9GR9E1c2bbC+RQFiBW9zZ1f3e+vk="; }; postPatch = '' diff --git a/pkgs/development/python-modules/nose2/default.nix b/pkgs/development/python-modules/nose2/default.nix index 68e3032cd3e6..3ca80388a236 100644 --- a/pkgs/development/python-modules/nose2/default.nix +++ b/pkgs/development/python-modules/nose2/default.nix @@ -2,7 +2,6 @@ lib, buildPythonPackage, fetchPypi, - pythonOlder, # build-system setuptools, @@ -19,17 +18,15 @@ buildPythonPackage rec { version = "0.15.1"; pyproject = true; - disabled = pythonOlder "3.8"; - src = fetchPypi { inherit pname version; hash = "sha256-NncPUZ31vs08v+C+5Ku/v5ufa0604DNh0oK378/E8N8="; }; - nativeBuildInputs = [ setuptools ]; + build-system = [ setuptools ]; optional-dependencies = { - coverage = [ coverage ]; + coverage_plugin = [ coverage ]; }; pythonImportsCheck = [ "nose2" ]; @@ -38,15 +35,14 @@ buildPythonPackage rec { nativeCheckInputs = [ unittestCheckHook - ] - ++ lib.flatten (lib.attrValues optional-dependencies); + ]; - meta = with lib; { + meta = { changelog = "https://github.com/nose-devs/nose2/blob/${version}/docs/changelog.rst"; description = "Test runner for Python"; mainProgram = "nose2"; homepage = "https://github.com/nose-devs/nose2"; - license = licenses.bsd0; + license = lib.licenses.bsd0; maintainers = [ ]; }; } diff --git a/pkgs/development/python-modules/onnx/default.nix b/pkgs/development/python-modules/onnx/default.nix index 31875a10ca97..45cc91854ec7 100644 --- a/pkgs/development/python-modules/onnx/default.nix +++ b/pkgs/development/python-modules/onnx/default.nix @@ -19,12 +19,9 @@ typing-extensions, # tests - google-re2, - nbval, parameterized, pillow, pytestCheckHook, - tabulate, writableTmpDirAsHomeHook, }: @@ -63,13 +60,9 @@ buildPythonPackage rec { ]; nativeCheckInputs = [ - google-re2 - ml-dtypes - nbval parameterized pillow pytestCheckHook - tabulate writableTmpDirAsHomeHook ]; diff --git a/pkgs/development/python-modules/ppdeep/default.nix b/pkgs/development/python-modules/ppdeep/default.nix index a29e4e2d498c..23e5d184daaa 100644 --- a/pkgs/development/python-modules/ppdeep/default.nix +++ b/pkgs/development/python-modules/ppdeep/default.nix @@ -7,12 +7,12 @@ buildPythonPackage rec { pname = "ppdeep"; - version = "20250625"; + version = "20251115"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-t9pQ5U7ZvXkyY4K28vUfNxgW8ElaUjPe4jqUafh6Kng="; + hash = "sha256-xv21EXsO6/vpGhF7PIn03l0WGnoMGi0wI6BlpnZye3w="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/publicsuffixlist/default.nix b/pkgs/development/python-modules/publicsuffixlist/default.nix index ecba429f2053..c38d89b81cec 100644 --- a/pkgs/development/python-modules/publicsuffixlist/default.nix +++ b/pkgs/development/python-modules/publicsuffixlist/default.nix @@ -10,12 +10,12 @@ buildPythonPackage rec { pname = "publicsuffixlist"; - version = "1.0.2.20251113"; + version = "1.0.2.20251115"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-2bv9R6B0Jyet1rzpfJrjXqhs1naUEeBoJSsxWk/Kaak="; + hash = "sha256-A9g5jpYdTZ3h4rXcw/OxxaXsraNcNdImQtEhJ54D0qc="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/pyais/default.nix b/pkgs/development/python-modules/pyais/default.nix index 30c43abcfe81..ebe911982a8c 100644 --- a/pkgs/development/python-modules/pyais/default.nix +++ b/pkgs/development/python-modules/pyais/default.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "pyais"; - version = "2.13.2"; + version = "2.13.3"; pyproject = true; disabled = pythonOlder "3.8"; @@ -21,7 +21,7 @@ buildPythonPackage rec { owner = "M0r13n"; repo = "pyais"; tag = "v${version}"; - hash = "sha256-CLsUVARpyxOshvrHY+NoVi0HSvn1R02jDnMqn0sRGgM="; + hash = "sha256-GtM4jUtGZ49NlfZZ8Ji6fErtuFBlnOKXvN8OIshUOBM="; }; __darwinAllowLocalNetworking = true; diff --git a/pkgs/development/python-modules/pydal/default.nix b/pkgs/development/python-modules/pydal/default.nix index fe850650f330..3a628c151449 100644 --- a/pkgs/development/python-modules/pydal/default.nix +++ b/pkgs/development/python-modules/pydal/default.nix @@ -4,21 +4,18 @@ buildPythonPackage, fetchPypi, pytestCheckHook, - pythonOlder, setuptools, legacy-cgi, }: buildPythonPackage rec { pname = "pydal"; - version = "20251018.1"; + version = "20251115.1"; pyproject = true; - disabled = pythonOlder "3.7"; - src = fetchPypi { inherit pname version; - hash = "sha256-WGMcxDY2SA9LYgqSUEf6rsBTBnXpYgqTuRGYBpA/hgk="; + hash = "sha256-04G7DksOLeYaNNvw6+y8lbgXVCPzqOpksV0DZy4GcIA="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/pyghmi/default.nix b/pkgs/development/python-modules/pyghmi/default.nix index 7b50d4d495a2..d8953c00f499 100644 --- a/pkgs/development/python-modules/pyghmi/default.nix +++ b/pkgs/development/python-modules/pyghmi/default.nix @@ -14,12 +14,12 @@ buildPythonPackage rec { pname = "pyghmi"; - version = "1.6.6"; + version = "1.6.7"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-JTVBce+B/6N/opmUBqXUAADCwr5hE+4T8dNG/xAbtuo="; + hash = "sha256-UtFTvWt/VX5bKZgAsnM+fzcG5ovh8TR6EKIn58Ohu7g="; }; build-system = [ diff --git a/pkgs/development/python-modules/pygitguardian/default.nix b/pkgs/development/python-modules/pygitguardian/default.nix index ec4cd9420f14..13064a6f9958 100644 --- a/pkgs/development/python-modules/pygitguardian/default.nix +++ b/pkgs/development/python-modules/pygitguardian/default.nix @@ -6,7 +6,6 @@ marshmallow, pdm-backend, pytestCheckHook, - pythonOlder, requests, responses, setuptools, @@ -16,16 +15,14 @@ buildPythonPackage rec { pname = "pygitguardian"; - version = "1.26.0"; + version = "1.27.0"; pyproject = true; - disabled = pythonOlder "3.8"; - src = fetchFromGitHub { owner = "GitGuardian"; repo = "py-gitguardian"; tag = "v${version}"; - hash = "sha256-CwGmNyY4U1vt7CHuO4nS1TuUJWm6Ok8vIE3kRG/qles="; + hash = "sha256-Jn8wy5UmuzqEputujGJQtAe8AoGCLYpSwZWHpDGlSWg="; }; pythonRelaxDeps = [ diff --git a/pkgs/development/python-modules/pyobjc-framework-Quartz/default.nix b/pkgs/development/python-modules/pyobjc-framework-Quartz/default.nix new file mode 100644 index 000000000000..0c238cbb69d0 --- /dev/null +++ b/pkgs/development/python-modules/pyobjc-framework-Quartz/default.nix @@ -0,0 +1,65 @@ +{ + buildPythonPackage, + fetchFromGitHub, + setuptools, + darwin, + pyobjc-core, + pyobjc-framework-Cocoa, + lib, +}: + +buildPythonPackage rec { + pname = "pyobjc-framework-Quartz"; + version = "11.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "ronaldoussoren"; + repo = "pyobjc"; + tag = "v${version}"; + hash = "sha256-2qPGJ/1hXf3k8AqVLr02fVIM9ziVG9NMrm3hN1de1Us="; + }; + + sourceRoot = "${src.name}/pyobjc-framework-Quartz"; + + build-system = [ setuptools ]; + + buildInputs = [ darwin.libffi ]; + + nativeBuildInputs = [ + darwin.DarwinTools # sw_vers + ]; + + # See https://github.com/ronaldoussoren/pyobjc/pull/641. Unfortunately, we + # cannot just pull that diff with fetchpatch due to https://discourse.nixos.org/t/how-to-apply-patches-with-sourceroot/59727. + postPatch = '' + substituteInPlace pyobjc_setup.py \ + --replace-fail "-buildversion" "-buildVersion" \ + --replace-fail "-productversion" "-productVersion" \ + --replace-fail "/usr/bin/sw_vers" "sw_vers" \ + --replace-fail "/usr/bin/xcrun" "xcrun" + ''; + + dependencies = [ + pyobjc-core + pyobjc-framework-Cocoa + ]; + + env.NIX_CFLAGS_COMPILE = toString [ + "-I${darwin.libffi.dev}/include" + "-Wno-error=unused-command-line-argument" + ]; + + pythonImportsCheck = [ + "Quartz" + "PyObjCTools" + ]; + + meta = { + description = "PyObjC wrappers for the Quartz frameworks on macOS"; + homepage = "https://github.com/ronaldoussoren/pyobjc"; + license = lib.licenses.mit; + platforms = lib.platforms.darwin; + maintainers = with lib.maintainers; [ xyenon ]; + }; +} diff --git a/pkgs/development/python-modules/pyobjc-framework-Security/default.nix b/pkgs/development/python-modules/pyobjc-framework-Security/default.nix new file mode 100644 index 000000000000..8209ff78bd8d --- /dev/null +++ b/pkgs/development/python-modules/pyobjc-framework-Security/default.nix @@ -0,0 +1,65 @@ +{ + buildPythonPackage, + fetchFromGitHub, + setuptools, + darwin, + pyobjc-core, + pyobjc-framework-Cocoa, + lib, +}: + +buildPythonPackage rec { + pname = "pyobjc-framework-Security"; + version = "11.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "ronaldoussoren"; + repo = "pyobjc"; + tag = "v${version}"; + hash = "sha256-2qPGJ/1hXf3k8AqVLr02fVIM9ziVG9NMrm3hN1de1Us="; + }; + + sourceRoot = "${src.name}/pyobjc-framework-Security"; + + build-system = [ setuptools ]; + + buildInputs = [ darwin.libffi ]; + + nativeBuildInputs = [ + darwin.DarwinTools # sw_vers + ]; + + # See https://github.com/ronaldoussoren/pyobjc/pull/641. Unfortunately, we + # cannot just pull that diff with fetchpatch due to https://discourse.nixos.org/t/how-to-apply-patches-with-sourceroot/59727. + postPatch = '' + substituteInPlace pyobjc_setup.py \ + --replace-fail "-buildversion" "-buildVersion" \ + --replace-fail "-productversion" "-productVersion" \ + --replace-fail "/usr/bin/sw_vers" "sw_vers" \ + --replace-fail "/usr/bin/xcrun" "xcrun" + ''; + + dependencies = [ + pyobjc-core + pyobjc-framework-Cocoa + ]; + + env.NIX_CFLAGS_COMPILE = toString [ + "-I${darwin.libffi.dev}/include" + "-Wno-error=unused-command-line-argument" + ]; + + pythonImportsCheck = [ + "Security" + "PyObjCTools" + ]; + + meta = { + description = "PyObjC wrappers for the Security frameworks on macOS"; + homepage = "https://github.com/ronaldoussoren/pyobjc"; + license = lib.licenses.mit; + platforms = lib.platforms.darwin; + maintainers = with lib.maintainers; [ xyenon ]; + }; +} diff --git a/pkgs/development/python-modules/pyobjc-framework-WebKit/default.nix b/pkgs/development/python-modules/pyobjc-framework-WebKit/default.nix new file mode 100644 index 000000000000..9e466395e469 --- /dev/null +++ b/pkgs/development/python-modules/pyobjc-framework-WebKit/default.nix @@ -0,0 +1,66 @@ +{ + buildPythonPackage, + fetchFromGitHub, + setuptools, + darwin, + pyobjc-core, + pyobjc-framework-Cocoa, + lib, +}: + +buildPythonPackage rec { + pname = "pyobjc-framework-WebKit"; + version = "11.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "ronaldoussoren"; + repo = "pyobjc"; + tag = "v${version}"; + hash = "sha256-2qPGJ/1hXf3k8AqVLr02fVIM9ziVG9NMrm3hN1de1Us="; + }; + + sourceRoot = "${src.name}/pyobjc-framework-WebKit"; + + build-system = [ setuptools ]; + + buildInputs = [ darwin.libffi ]; + + nativeBuildInputs = [ + darwin.DarwinTools # sw_vers + ]; + + # See https://github.com/ronaldoussoren/pyobjc/pull/641. Unfortunately, we + # cannot just pull that diff with fetchpatch due to https://discourse.nixos.org/t/how-to-apply-patches-with-sourceroot/59727. + postPatch = '' + substituteInPlace pyobjc_setup.py \ + --replace-fail "-buildversion" "-buildVersion" \ + --replace-fail "-productversion" "-productVersion" \ + --replace-fail "/usr/bin/sw_vers" "sw_vers" \ + --replace-fail "/usr/bin/xcrun" "xcrun" + ''; + + dependencies = [ + pyobjc-core + pyobjc-framework-Cocoa + ]; + + env.NIX_CFLAGS_COMPILE = toString [ + "-I${darwin.libffi.dev}/include" + "-Wno-error=unused-command-line-argument" + ]; + + pythonImportsCheck = [ + "WebKit" + "JavaScriptCore" + "PyObjCTools" + ]; + + meta = { + description = "PyObjC wrappers for the WebKit frameworks on macOS"; + homepage = "https://github.com/ronaldoussoren/pyobjc"; + license = lib.licenses.mit; + platforms = lib.platforms.darwin; + maintainers = with lib.maintainers; [ xyenon ]; + }; +} diff --git a/pkgs/development/python-modules/pyoprf/default.nix b/pkgs/development/python-modules/pyoprf/default.nix index f7f525034e79..ca3e61692cee 100644 --- a/pkgs/development/python-modules/pyoprf/default.nix +++ b/pkgs/development/python-modules/pyoprf/default.nix @@ -29,6 +29,9 @@ buildPythonPackage rec { '' substituteInPlace ./pyoprf/__init__.py --replace-fail \ "ctypes.util.find_library('oprf') or ctypes.util.find_library('liboprf')" "'${lib.getLib liboprf}/lib/liboprf${soext}'" + substituteInPlace pyoprf/noisexk.py \ + --replace-fail "ctypes.util.find_library('oprf-noiseXK')" "'${lib.getLib liboprf}/lib/liboprf-noiseXK${soext}'" \ + --replace-fail "or ctypes.util.find_library('liboprf-noiseXK')" "" ''; sourceRoot = "${src.name}/python"; @@ -51,9 +54,9 @@ buildPythonPackage rec { pytestFlagsArray = [ "tests/test.py" ]; meta = { + homepage = "https://github.com/stef/liboprf/tree/master/python"; inherit (liboprf.meta) description - homepage changelog license teams diff --git a/pkgs/development/python-modules/pysmlight/default.nix b/pkgs/development/python-modules/pysmlight/default.nix index dc14892d80c7..154043d4f7ef 100644 --- a/pkgs/development/python-modules/pysmlight/default.nix +++ b/pkgs/development/python-modules/pysmlight/default.nix @@ -14,14 +14,14 @@ buildPythonPackage rec { pname = "pysmlight"; - version = "0.2.8"; + version = "0.2.9"; pyproject = true; src = fetchFromGitHub { owner = "smlight-tech"; repo = "pysmlight"; tag = "v${version}"; - hash = "sha256-PPJotxlY1eSx0PNCDzsgaFvm4oPvG4LL4vb8G8ewMiw="; + hash = "sha256-KNEGRmMq88AMGrBB0hfNa5bJpLx5gLZLH7H7zLkiQ2c="; }; build-system = [ poetry-core ]; diff --git a/pkgs/development/python-modules/pystray/default.nix b/pkgs/development/python-modules/pystray/default.nix index 632356001c59..20843a88ef18 100644 --- a/pkgs/development/python-modules/pystray/default.nix +++ b/pkgs/development/python-modules/pystray/default.nix @@ -3,15 +3,17 @@ buildPythonPackage, fetchFromGitHub, fetchpatch, - pillow, - xlib, - six, - xvfb-run, - setuptools, gobject-introspection, + setuptools, + pillow, + six, pygobject3, gtk3, + stdenv, + xlib, libayatana-appindicator, + pyobjc-framework-Quartz, + xvfb-run, pytest, }: @@ -48,22 +50,22 @@ buildPythonPackage rec { propagatedBuildInputs = [ pillow - xlib six pygobject3 gtk3 + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ + xlib libayatana-appindicator - ]; + ] + ++ lib.optionals stdenv.isDarwin [ pyobjc-framework-Quartz ]; - nativeCheckInputs = [ - pytest - xvfb-run - ]; + nativeCheckInputs = [ pytest ] ++ lib.optionals stdenv.hostPlatform.isLinux [ xvfb-run ]; checkPhase = '' runHook preCheck - xvfb-run -s '-screen 0 800x600x24' pytest tests/menu_descriptor_tests.py + ${lib.optionalString stdenv.hostPlatform.isLinux "xvfb-run -s '-screen 0 800x600x24' "}pytest tests/menu_descriptor_tests.py runHook postCheck ''; @@ -75,7 +77,7 @@ buildPythonPackage rec { gpl3Plus lgpl3Plus ]; - platforms = platforms.linux; + platforms = platforms.all; maintainers = with maintainers; [ jojosch ]; }; } diff --git a/pkgs/development/python-modules/pytest-gitconfig/default.nix b/pkgs/development/python-modules/pytest-gitconfig/default.nix new file mode 100644 index 000000000000..b1f5e4206e50 --- /dev/null +++ b/pkgs/development/python-modules/pytest-gitconfig/default.nix @@ -0,0 +1,41 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pdm-backend, + pkgs, + pytest, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "pytest-gitconfig"; + version = "0.8.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "noirbizarre"; + repo = "pytest-gitconfig"; + tag = version; + hash = "sha256-5DfG74mEvsWHH2xPyG1mNcWp9/DgpveLbaSEOoRzD+g="; + }; + + build-system = [ pdm-backend ]; + + buildInput = [ pytest ]; + + nativeCheckInputs = [ + pkgs.gitMinimal + pytestCheckHook + ]; + + pythonImportsCheck = [ "pytest_gitconfig" ]; + + meta = { + description = "Pytest gitconfig sandbox"; + homepage = "https://github.com/noirbizarre/pytest-gitconfig"; + changelog = "https://github.com/noirbizarre/pytest-gitconfig/blob/${src.rev}/CHANGELOG.md"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/pytibber/default.nix b/pkgs/development/python-modules/pytibber/default.nix index 9b36237895fd..721d73368ec6 100644 --- a/pkgs/development/python-modules/pytibber/default.nix +++ b/pkgs/development/python-modules/pytibber/default.nix @@ -13,7 +13,7 @@ buildPythonPackage rec { pname = "pytibber"; - version = "0.32.2"; + version = "0.33.1"; pyproject = true; disabled = pythonOlder "3.11"; @@ -22,7 +22,7 @@ buildPythonPackage rec { owner = "Danielhiversen"; repo = "pyTibber"; tag = version; - hash = "sha256-gMXbDpkb+LVIxVkYliskEeHOrkJxAuJdYxUEC4wp3r8="; + hash = "sha256-UzPS7EukcnBWfsAANgpmOmWWI9Nv8eKocceVrmlISJg="; }; build-system = [ setuptools ]; @@ -38,8 +38,10 @@ buildPythonPackage rec { pytestCheckHook ]; - # Tests access network - doCheck = false; + disabledTestPaths = [ + # Tests access network + "test/test_tibber.py" + ]; pythonImportsCheck = [ "tibber" ]; diff --git a/pkgs/development/python-modules/pywebview/default.nix b/pkgs/development/python-modules/pywebview/default.nix index ff19b1a035ed..e222b552addb 100644 --- a/pkgs/development/python-modules/pywebview/default.nix +++ b/pkgs/development/python-modules/pywebview/default.nix @@ -9,6 +9,12 @@ qtpy, six, typing-extensions, + stdenv, + pyobjc-core, + pyobjc-framework-Cocoa, + pyobjc-framework-Quartz, + pyobjc-framework-Security, + pyobjc-framework-WebKit, }: buildPythonPackage rec { @@ -32,6 +38,13 @@ buildPythonPackage rec { qtpy six typing-extensions + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + pyobjc-core + pyobjc-framework-Cocoa + pyobjc-framework-Quartz + pyobjc-framework-Security + pyobjc-framework-WebKit ]; pythonImportsCheck = [ "webview" ]; diff --git a/pkgs/development/python-modules/simsimd/default.nix b/pkgs/development/python-modules/simsimd/default.nix index 87e0ba56d192..0fea0cf7ef4a 100644 --- a/pkgs/development/python-modules/simsimd/default.nix +++ b/pkgs/development/python-modules/simsimd/default.nix @@ -11,14 +11,14 @@ buildPythonPackage rec { pname = "simsimd"; - version = "6.5.4"; + version = "6.5.5"; pyproject = true; src = fetchFromGitHub { owner = "ashvardanian"; repo = "SimSIMD"; tag = "v${version}"; - hash = "sha256-q+URgLfsc40OgZkqYj8yiBzpB33aksWsn4K0f5V0HSg="; + hash = "sha256-r7PEg/A7UXjr7xq2mAk3i1MqdsWITpoV8ZbefoC1+kw="; }; build-system = [ diff --git a/pkgs/development/python-modules/subarulink/default.nix b/pkgs/development/python-modules/subarulink/default.nix index 5e717b742eac..de81112e882a 100644 --- a/pkgs/development/python-modules/subarulink/default.nix +++ b/pkgs/development/python-modules/subarulink/default.nix @@ -15,7 +15,7 @@ buildPythonPackage rec { pname = "subarulink"; - version = "0.7.16"; + version = "0.7.17"; pyproject = true; disabled = pythonOlder "3.12"; @@ -24,7 +24,7 @@ buildPythonPackage rec { owner = "G-Two"; repo = "subarulink"; tag = "v${version}"; - hash = "sha256-IrQlqvYZwQ9o7eBgmjOTA9leETgvC2Ek6ccsul2CTX0="; + hash = "sha256-vmMvKDZV8jChLehgdSGWQdxWVylnKU2BWXSiG9zI/to="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/types-html5lib/default.nix b/pkgs/development/python-modules/types-html5lib/default.nix index fe97669f03fd..d8fae7e6ae16 100644 --- a/pkgs/development/python-modules/types-html5lib/default.nix +++ b/pkgs/development/python-modules/types-html5lib/default.nix @@ -3,20 +3,23 @@ buildPythonPackage, fetchPypi, setuptools, + types-webencodings, }: buildPythonPackage rec { pname = "types-html5lib"; - version = "1.1.11.20251014"; + version = "1.1.11.20251115"; pyproject = true; src = fetchPypi { pname = "types_html5lib"; inherit version; - hash = "sha256-zGKNYm4BEaJCamT18GHs/RE5WLaf9rPcDqrtI0e6lFU="; + hash = "sha256-pLZmoG5JbXsqlInckgbwmiSfq3xihlrGAkzsJGKLFdM="; }; - nativeBuildInputs = [ setuptools ]; + build-system = [ setuptools ]; + + dependencies = [ types-webencodings ]; # Module has no tests doCheck = false; diff --git a/pkgs/development/python-modules/types-webencodings/default.nix b/pkgs/development/python-modules/types-webencodings/default.nix new file mode 100644 index 000000000000..976a306d7518 --- /dev/null +++ b/pkgs/development/python-modules/types-webencodings/default.nix @@ -0,0 +1,29 @@ +{ + lib, + buildPythonPackage, + fetchPypi, + setuptools, +}: + +buildPythonPackage rec { + pname = "types-webencodings"; + version = "0.5.0.20251108"; + pyproject = true; + + src = fetchPypi { + pname = "types_webencodings"; + inherit version; + hash = "sha256-I3jizszO09QbteITh1hue1MF4RUZ/GsGWcYp8jsuXeQ="; + }; + + build-system = [ setuptools ]; + + pythonImportsCheck = [ "webencodings-stubs" ]; + + meta = { + description = "Typing stubs for webencodings"; + homepage = "https://pypi.org/project/types-webencodings/"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/yt-dlp-ejs/default.nix b/pkgs/development/python-modules/yt-dlp-ejs/default.nix new file mode 100644 index 000000000000..f4887473fec6 --- /dev/null +++ b/pkgs/development/python-modules/yt-dlp-ejs/default.nix @@ -0,0 +1,62 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + fetchNpmDeps, + hatch-vcs, + hatchling, + nodejs, + npmHooks, +}: + +buildPythonPackage rec { + pname = "yt-dlp-ejs"; + version = "0.3.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "yt-dlp"; + repo = "ejs"; + tag = version; + hash = "sha256-PoZ7qmrf8en254im2D7fWy9jYiaJwFpq6ZXZP9ouOOQ="; + }; + + postPatch = '' + # remove when upstream has a lock file we support https://github.com/yt-dlp/ejs/issues/29 + cp ${./package-lock.json} package-lock.json + + # we already ran npm install + substituteInPlace hatch_build.py \ + --replace-fail 'subprocess.run(["npm", "install"], check=True, shell=requires_shell)' "" + ''; + + npmDeps = fetchNpmDeps { + inherit src postPatch; + hash = "sha256-2Xzetr2pb8J2w+ghfoTVP6oZTeVbHV7EcovwxElnUbA="; + }; + + build-system = [ + hatch-vcs + hatchling + ]; + + nativeBuildInputs = [ + nodejs + npmHooks.npmConfigHook + ]; + + meta = { + changelog = "https://github.com/yt-dlp/ejs/releases/tag/${version}"; + description = "External JavaScript for yt-dlp supporting many runtimes"; + homepage = "https://github.com/yt-dlp/ejs/"; + license = with lib.licenses; [ + unlicense + mit + isc + ]; + maintainers = with lib.maintainers; [ + SuperSandro2000 + FlameFlag + ]; + }; +} diff --git a/pkgs/development/python-modules/yt-dlp-ejs/package-lock.json b/pkgs/development/python-modules/yt-dlp-ejs/package-lock.json new file mode 100644 index 000000000000..4b3822caf439 --- /dev/null +++ b/pkgs/development/python-modules/yt-dlp-ejs/package-lock.json @@ -0,0 +1,3186 @@ +{ + "name": "ejs", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "ejs", + "dependencies": { + "astring": "1.9.0", + "meriyah": "6.1.4" + }, + "devDependencies": { + "@eslint/js": "9.38.0", + "@rollup/plugin-node-resolve": "16.0.3", + "@rollup/plugin-sucrase": "5.0.2", + "@rollup/plugin-terser": "0.4.4", + "@types/bun": "1.3.0", + "@types/deno": "2.5.0", + "@types/node": "24.8.1", + "eslint": "9.38.0", + "globals": "16.4.0", + "prettier": "3.6.2", + "rollup": "4.52.5", + "rollup-plugin-license": "3.6.0", + "typescript-eslint": "8.46.2" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", + "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", + "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers/node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.16.0.tgz", + "integrity": "sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.38.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.38.0.tgz", + "integrity": "sha512-UZ1VpFvXf9J06YG9xQBdnzU+kthors6KjhMAl6f4gH4usHyh31rUf2DLGInT8RFYIReYXNSydgPY0V2LuWgl7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.3.tgz", + "integrity": "sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-sucrase": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-sucrase/-/plugin-sucrase-5.0.2.tgz", + "integrity": "sha512-4MhIVH9Dy2Hwose1/x5QMs0XF7yn9jDd/yozHqzdIrMWIolgFpGnrnVhQkqTaK1RALY/fpyrEKmwH/04vr1THA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "sucrase": "^3.27.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.53.1||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-terser": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", + "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "serialize-javascript": "^6.0.1", + "smob": "^1.0.0", + "terser": "^5.17.4" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.5.tgz", + "integrity": "sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.5.tgz", + "integrity": "sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.5.tgz", + "integrity": "sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.5.tgz", + "integrity": "sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.5.tgz", + "integrity": "sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.5.tgz", + "integrity": "sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.5.tgz", + "integrity": "sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.5.tgz", + "integrity": "sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.5.tgz", + "integrity": "sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.5.tgz", + "integrity": "sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.5.tgz", + "integrity": "sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.5.tgz", + "integrity": "sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.5.tgz", + "integrity": "sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.5.tgz", + "integrity": "sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.5.tgz", + "integrity": "sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.5.tgz", + "integrity": "sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.5.tgz", + "integrity": "sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.5.tgz", + "integrity": "sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.5.tgz", + "integrity": "sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.5.tgz", + "integrity": "sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.5.tgz", + "integrity": "sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.5.tgz", + "integrity": "sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/bun": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@types/bun/-/bun-1.3.0.tgz", + "integrity": "sha512-+lAGCYjXjip2qY375xX/scJeVRmZ5cY0wyHYyCYxNcdEXrQ4AOe3gACgd4iQ8ksOslJtW4VNxBJ8llUwc3a6AA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bun-types": "1.3.0" + } + }, + "node_modules/@types/deno": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@types/deno/-/deno-2.5.0.tgz", + "integrity": "sha512-g8JS38vmc0S87jKsFzre+0ZyMOUDHPVokEJymSCRlL57h6f/FdKPWBXgdFh3Z8Ees9sz11qt9VWELU9Y9ZkiVw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "24.8.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.8.1.tgz", + "integrity": "sha512-alv65KGRadQVfVcG69MuB4IzdYVpRwMG/mq8KWOaoOdyY617P5ivaDiMCGOFDWD2sAn5Q0mR3mRtUOgm99hL9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.14.0" + } + }, + "node_modules/@types/react": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.3.tgz", + "integrity": "sha512-k5dJVszUiNr1DSe8Cs+knKR6IrqhqdhpUwzqhkS8ecQTSf3THNtbfIp/umqHMpX2bv+9dkx3fwDv/86LcSfvSg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.2.tgz", + "integrity": "sha512-ZGBMToy857/NIPaaCucIUQgqueOiq7HeAKkhlvqVV4lm089zUFW6ikRySx2v+cAhKeUCPuWVHeimyk6Dw1iY3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.46.2", + "@typescript-eslint/type-utils": "8.46.2", + "@typescript-eslint/utils": "8.46.2", + "@typescript-eslint/visitor-keys": "8.46.2", + "graphemer": "^1.4.0", + "ignore": "^7.0.0", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.46.2", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.2.tgz", + "integrity": "sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@typescript-eslint/scope-manager": "8.46.2", + "@typescript-eslint/types": "8.46.2", + "@typescript-eslint/typescript-estree": "8.46.2", + "@typescript-eslint/visitor-keys": "8.46.2", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.2.tgz", + "integrity": "sha512-PULOLZ9iqwI7hXcmL4fVfIsBi6AN9YxRc0frbvmg8f+4hQAjQ5GYNKK0DIArNo+rOKmR/iBYwkpBmnIwin4wBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.46.2", + "@typescript-eslint/types": "^8.46.2", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.2.tgz", + "integrity": "sha512-LF4b/NmGvdWEHD2H4MsHD8ny6JpiVNDzrSZr3CsckEgCbAGZbYM4Cqxvi9L+WqDMT+51Ozy7lt2M+d0JLEuBqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.46.2", + "@typescript-eslint/visitor-keys": "8.46.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.2.tgz", + "integrity": "sha512-a7QH6fw4S57+F5y2FIxxSDyi5M4UfGF+Jl1bCGd7+L4KsaUY80GsiF/t0UoRFDHAguKlBaACWJRmdrc6Xfkkag==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.46.2.tgz", + "integrity": "sha512-HbPM4LbaAAt/DjxXaG9yiS9brOOz6fabal4uvUmaUYe6l3K1phQDMQKBRUrr06BQkxkvIZVVHttqiybM9nJsLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.46.2", + "@typescript-eslint/typescript-estree": "8.46.2", + "@typescript-eslint/utils": "8.46.2", + "debug": "^4.3.4", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.2.tgz", + "integrity": "sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.2.tgz", + "integrity": "sha512-f7rW7LJ2b7Uh2EiQ+7sza6RDZnajbNbemn54Ob6fRwQbgcIn+GWfyuHDHRYgRoZu1P4AayVScrRW+YfbTvPQoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.46.2", + "@typescript-eslint/tsconfig-utils": "8.46.2", + "@typescript-eslint/types": "8.46.2", + "@typescript-eslint/visitor-keys": "8.46.2", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.2.tgz", + "integrity": "sha512-sExxzucx0Tud5tE0XqR0lT0psBQvEpnpiul9XbGUB1QwpWJJAps1O/Z7hJxLGiZLBKMCutjTzDgmd1muEhBnVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.46.2", + "@typescript-eslint/types": "8.46.2", + "@typescript-eslint/typescript-estree": "8.46.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.2.tgz", + "integrity": "sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.46.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/astring": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", + "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", + "license": "MIT", + "bin": { + "astring": "bin/astring" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/bun-types": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bun-types/-/bun-types-1.3.0.tgz", + "integrity": "sha512-u8X0thhx+yJ0KmkxuEo9HAtdfgCBaM/aI9K90VQcQioAmkVp3SG3FkwWGibUFz3WdXAdcsqOcbU40lK7tbHdkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + }, + "peerDependencies": { + "@types/react": "^19" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/commenting": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/commenting/-/commenting-1.1.0.tgz", + "integrity": "sha512-YeNK4tavZwtH7jEgK1ZINXzLKm6DZdEMfsaaieOsCAN0S8vsY7UeuO3Q7d/M018EFgE+IeUAuBOKkFccBZsUZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.38.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.38.0.tgz", + "integrity": "sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.1", + "@eslint/config-helpers": "^0.4.1", + "@eslint/core": "^0.16.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.38.0", + "@eslint/plugin-kit": "^0.4.0", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz", + "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/meriyah": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/meriyah/-/meriyah-6.1.4.tgz", + "integrity": "sha512-Sz8FzjzI0kN13GK/6MVEsVzMZEPvOhnmmI1lU5+/1cGOiK3QUahntrNNtdVeihrO7t9JpoH75iMNXg6R6uWflQ==", + "license": "ISC", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/package-name-regex": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/package-name-regex/-/package-name-regex-2.0.6.tgz", + "integrity": "sha512-gFL35q7kbE/zBaPA3UKhp2vSzcPYx2ecbYuwv1ucE9Il6IIgBDweBlH8D68UFGZic2MkllKa2KHCfC1IQBQUYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/dword-design" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.5.tgz", + "integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.52.5", + "@rollup/rollup-android-arm64": "4.52.5", + "@rollup/rollup-darwin-arm64": "4.52.5", + "@rollup/rollup-darwin-x64": "4.52.5", + "@rollup/rollup-freebsd-arm64": "4.52.5", + "@rollup/rollup-freebsd-x64": "4.52.5", + "@rollup/rollup-linux-arm-gnueabihf": "4.52.5", + "@rollup/rollup-linux-arm-musleabihf": "4.52.5", + "@rollup/rollup-linux-arm64-gnu": "4.52.5", + "@rollup/rollup-linux-arm64-musl": "4.52.5", + "@rollup/rollup-linux-loong64-gnu": "4.52.5", + "@rollup/rollup-linux-ppc64-gnu": "4.52.5", + "@rollup/rollup-linux-riscv64-gnu": "4.52.5", + "@rollup/rollup-linux-riscv64-musl": "4.52.5", + "@rollup/rollup-linux-s390x-gnu": "4.52.5", + "@rollup/rollup-linux-x64-gnu": "4.52.5", + "@rollup/rollup-linux-x64-musl": "4.52.5", + "@rollup/rollup-openharmony-arm64": "4.52.5", + "@rollup/rollup-win32-arm64-msvc": "4.52.5", + "@rollup/rollup-win32-ia32-msvc": "4.52.5", + "@rollup/rollup-win32-x64-gnu": "4.52.5", + "@rollup/rollup-win32-x64-msvc": "4.52.5", + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-license": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-3.6.0.tgz", + "integrity": "sha512-1ieLxTCaigI5xokIfszVDRoy6c/Wmlot1fDEnea7Q/WXSR8AqOjYljHDLObAx7nFxHC2mbxT3QnTSPhaic2IYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "commenting": "~1.1.0", + "fdir": "^6.4.3", + "lodash": "~4.17.21", + "magic-string": "~0.30.0", + "moment": "~2.30.1", + "package-name-regex": "~2.0.6", + "spdx-expression-validate": "~2.0.0", + "spdx-satisfies": "~5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/smob": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/smob/-/smob-1.5.0.tgz", + "integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==", + "dev": true, + "license": "MIT" + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdx-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/spdx-compare/-/spdx-compare-1.0.0.tgz", + "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-find-index": "^1.0.2", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-expression-validate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-validate/-/spdx-expression-validate-2.0.0.tgz", + "integrity": "sha512-b3wydZLM+Tc6CFvaRDBOF9d76oGIHNCLYFeHbftFXUWjnfZWganmDmvtM5sm1cRwJc/VDBMLyGGrsLFd1vOxbg==", + "dev": true, + "license": "(MIT AND CC-BY-3.0)", + "dependencies": { + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.22", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz", + "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/spdx-ranges": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/spdx-ranges/-/spdx-ranges-2.1.1.tgz", + "integrity": "sha512-mcdpQFV7UDAgLpXEE/jOMqvK4LBoO0uTQg0uvXUewmEFhpiZx5yJSZITHB8w1ZahKdhfZqP5GPEOKLyEq5p8XA==", + "dev": true, + "license": "(MIT AND CC-BY-3.0)" + }, + "node_modules/spdx-satisfies": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/spdx-satisfies/-/spdx-satisfies-5.0.1.tgz", + "integrity": "sha512-Nwor6W6gzFp8XX4neaKQ7ChV4wmpSh2sSDemMFSzHxpTw460jxFYeOn+jq4ybnSSw/5sc3pjka9MQPouksQNpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-compare": "^1.0.0", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/terser": { + "version": "5.44.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz", + "integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.46.2.tgz", + "integrity": "sha512-vbw8bOmiuYNdzzV3lsiWv6sRwjyuKJMQqWulBOU7M0RrxedXledX8G8kBbQeiOYDnTfiXz0Y4081E1QMNB6iQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.46.2", + "@typescript-eslint/parser": "8.46.2", + "@typescript-eslint/typescript-estree": "8.46.2", + "@typescript-eslint/utils": "8.46.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/undici-types": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.14.0.tgz", + "integrity": "sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==", + "dev": true, + "license": "MIT" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/pkgs/development/tools/ocaml/melange/default.nix b/pkgs/development/tools/ocaml/melange/default.nix index b399fbe6f6d6..8352e41011f1 100644 --- a/pkgs/development/tools/ocaml/melange/default.nix +++ b/pkgs/development/tools/ocaml/melange/default.nix @@ -4,7 +4,6 @@ cppo, dune-build-info, fetchurl, - fetchpatch, jq, lib, makeWrapper, @@ -22,10 +21,15 @@ let pname = "melange"; versionHash = - if lib.versionAtLeast ocaml.version "5.3" then + if lib.versionAtLeast ocaml.version "5.4" then { - version = "5.1.0-53"; - hash = "sha256-96rDDzul/v+Dc+IWTNtbOKWUV8rf7HS1ZMK2LQNcpKk="; + version = "6.0.0-54"; + hash = "sha256-689OK37ObYhopfcaJ3AmkScGC4lCu3ZOTEM6N+Npvzs="; + } + else if lib.versionAtLeast ocaml.version "5.3" then + { + version = "6.0.0-53"; + hash = "sha256-jPTQvV095BPB4EDepwGJTZ9sB/60VTO4YJTj2wI39jc="; } else if lib.versionAtLeast ocaml.version "5.2" then { @@ -55,14 +59,6 @@ buildDunePackage { url = "https://github.com/melange-re/${pname}/releases/download/${version}/${pname}-${version}.tbz"; inherit hash; }; - patches = lib.optional (lib.versionAtLeast ppxlib.version "0.36") (fetchpatch { - url = "https://patch-diff.githubusercontent.com/raw/melange-re/melange/pull/1352.patch"; - hash = "sha256-PMf66nB743nzW4/xblHjNZFv1BS8xC9maD+eCDDUWAY="; - excludes = [ - "*.opam" - "*.template" - ]; - }); nativeBuildInputs = [ cppo makeWrapper diff --git a/pkgs/development/tools/qtcreator/default.nix b/pkgs/development/tools/qtcreator/default.nix index 98ab72525ac1..57a19c5a2e9e 100644 --- a/pkgs/development/tools/qtcreator/default.nix +++ b/pkgs/development/tools/qtcreator/default.nix @@ -2,10 +2,10 @@ stdenv, lib, fetchurl, - fetchpatch, cmake, pkg-config, ninja, + go, python3, qtbase, qt5compat, @@ -29,24 +29,30 @@ elfutils, perf, callPackage, + buildGoModule, }: - -stdenv.mkDerivation (finalAttrs: { +let pname = "qtcreator"; - version = "17.0.2"; - + version = "18.0.0"; src = fetchurl { - url = "mirror://qt/official_releases/${finalAttrs.pname}/${lib.versions.majorMinor finalAttrs.version}/${finalAttrs.version}/qt-creator-opensource-src-${finalAttrs.version}.tar.xz"; - hash = "sha256-sOEY+fuJvnF2KLP5JRwpX6bfQfqLfYEhbi6tg1XlWhM="; + url = "mirror://qt/official_releases/${pname}/${lib.versions.majorMinor version}/${version}/qt-creator-opensource-src-${version}.tar.xz"; + hash = "sha256-x3O3QRTR+8pmyBuPt5mJKCfn4VQkke1FmqrSeeAlOXM="; }; - - patches = [ - # QmlDesigner: Compile fixes for Qt 6.10 private API changes - (fetchpatch { - url = "https://github.com/qt-creator/qt-creator/commit/5a4c700ccefc76c7c531c834734e6fefa14b5364.patch"; - hash = "sha256-BnS0HOqP5b7ZsVtuRpCK+TtoJj0yhodDuVtp+C3btIA="; - }) - ]; + goModules = + (buildGoModule { + pname = "gocmdbridge"; + version = "1.0.0"; + inherit src; + vendorHash = "sha256-PUMQdVlf6evLjzs263SAecIA3aMuMbjIr1xEztiwmro="; + setSourceRoot = '' + sourceRoot=$(echo */src/libs/gocmdbridge/server) + ''; + }).goModules; +in +stdenv.mkDerivation { + inherit pname; + inherit version; + inherit src; nativeBuildInputs = [ cmake @@ -55,6 +61,7 @@ stdenv.mkDerivation (finalAttrs: { wrapQtAppsHook python3 ninja + go ]; buildInputs = [ @@ -96,8 +103,15 @@ stdenv.mkDerivation (finalAttrs: { (lib.cmakeBool "BUILD_QBS" false) (lib.cmakeBool "QTC_CLANG_BUILDMODE_MATCH" true) (lib.cmakeBool "CLANGTOOLING_LINK_CLANG_DYLIB" true) + (lib.cmakeBool "CMDBRIDGE_BUILD_VENDOR_MODE" true) ]; + preConfigure = '' + export GOCACHE=$TMPDIR/go-cache + export GOPATH="$TMPDIR/go" + cp -r --reflink=auto ${goModules} src/libs/gocmdbridge/server/vendor + ''; + qtWrapperArgs = [ "--set-default PERFPROFILER_PARSER_FILEPATH ${lib.getBin perf}/bin" ]; @@ -134,4 +148,4 @@ stdenv.mkDerivation (finalAttrs: { platforms = lib.platforms.linux; mainProgram = "qtcreator"; }; -}) +} diff --git a/pkgs/os-specific/linux/scx/scx_rustscheds.nix b/pkgs/os-specific/linux/scx/scx_rustscheds.nix index 87665e5a1c78..ef6e4badf064 100644 --- a/pkgs/os-specific/linux/scx/scx_rustscheds.nix +++ b/pkgs/os-specific/linux/scx/scx_rustscheds.nix @@ -14,16 +14,16 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "scx_rustscheds"; - version = "1.0.17"; + version = "1.0.18"; src = fetchFromGitHub { owner = "sched-ext"; repo = "scx"; tag = "v${finalAttrs.version}"; - hash = "sha256-UhFHT8cSrdjhSqjj4qFzn5UvfPOLPwrBh1ytL2gFhzU="; + hash = "sha256-RkTY7gDcKbkNUKl7NJDX3Ac/I+dRG1Gj8rRHynbbxUU="; }; - cargoHash = "sha256-yQM2zx1IzGjegwLK4epsluWl8m5RSP3jB00Lpd8+TLE="; + cargoHash = "sha256-tuZhqDT1xMP+Pufwz6SBt44qNzHuGzcU9QmVNIg2zS0="; nativeBuildInputs = [ pkg-config diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index 0b0986eb2f1b..8869697e9cde 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -2729,8 +2729,9 @@ "inels" = ps: with ps; [ aiohasupervisor + elkoep-aio-mqtt paho-mqtt - ]; # missing inputs: elkoep-aio-mqtt + ]; "influxdb" = ps: with ps; [ influxdb @@ -7425,6 +7426,7 @@ "immich" "improv_ble" "incomfort" + "inels" "influxdb" "inkbird" "input_boolean" diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index adea8b1a0751..e13ae67adf8f 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -500,6 +500,7 @@ python.pkgs.buildPythonApplication rec { "tests/test_bootstrap.py::test_setup_hass_takes_longer_than_log_slow_startup" "tests/test_test_fixtures.py::test_evict_faked_translations" "tests/helpers/test_backup.py::test_async_get_manager" + "tests/helpers/test_trigger.py::test_platform_multiple_triggers[sync_action]" ]; preCheck = '' diff --git a/pkgs/servers/home-assistant/update-component-packages.py b/pkgs/servers/home-assistant/update-component-packages.py index ab29b720baad..3667f70331bd 100755 --- a/pkgs/servers/home-assistant/update-component-packages.py +++ b/pkgs/servers/home-assistant/update-component-packages.py @@ -39,6 +39,7 @@ PKG_SET = "home-assistant.python.pkgs" # If some requirements are matched by multiple or no Python packages, the # following can be used to choose the correct one PKG_PREFERENCES = { + "av": "av", "fiblary3": "fiblary3-fork", # https://github.com/home-assistant/core/issues/66466 "HAP-python": "hap-python", "ha-av": "av", diff --git a/pkgs/servers/monitoring/prometheus/sabnzbd-exporter.nix b/pkgs/servers/monitoring/prometheus/sabnzbd-exporter.nix index 05034b4b3327..1185891b60e6 100644 --- a/pkgs/servers/monitoring/prometheus/sabnzbd-exporter.nix +++ b/pkgs/servers/monitoring/prometheus/sabnzbd-exporter.nix @@ -7,7 +7,7 @@ python3Packages.buildPythonApplication rec { pname = "sabnzbd_exporter"; - version = "0.1.78"; + version = "0.1.80"; format = "other"; @@ -15,7 +15,7 @@ python3Packages.buildPythonApplication rec { owner = "msroest"; repo = pname; rev = "refs/tags/${version}"; - hash = "sha256-BLqG2I7D/bqRj6+/LUKOimmTRTH/kRdukkGdOJT3+PA="; + hash = "sha256-9oL9Zbzzbr0hZjOdkaH86Tho6gaR+/6uAMreLwYzB8o="; }; propagatedBuildInputs = with python3Packages; [ diff --git a/pkgs/servers/sql/postgresql/ext/pgx_ulid.nix b/pkgs/servers/sql/postgresql/ext/pgx_ulid.nix index 866d8c719911..5a70f595397b 100644 --- a/pkgs/servers/sql/postgresql/ext/pgx_ulid.nix +++ b/pkgs/servers/sql/postgresql/ext/pgx_ulid.nix @@ -1,6 +1,6 @@ { buildPgrxExtension, - cargo-pgrx_0_16_0, + cargo-pgrx_0_16_1, fetchFromGitHub, lib, nix-update-script, @@ -9,25 +9,23 @@ }: buildPgrxExtension (finalAttrs: { inherit postgresql; - cargo-pgrx = cargo-pgrx_0_16_0; + cargo-pgrx = cargo-pgrx_0_16_1; pname = "pgx_ulid"; - version = "0.2.1"; + version = "0.2.2"; src = fetchFromGitHub { owner = "pksunkara"; repo = "pgx_ulid"; tag = "v${finalAttrs.version}"; - hash = "sha256-yjPTCJTeT1HQt8huDHBHs0DAHpmseMHeSaQhpPV6qdo="; + hash = "sha256-7zOAjQPdwaDwAz2Es5KX3HstTwY6wKNuB9b+xnnXNP0="; }; - cargoHash = "sha256-LRfn/TO/bBEvvzY9m6C8Lb0qdUStQD3oAzjDovS6H1s="; + cargoHash = "sha256-4YuTOCE142BDDteB9ZQdxzI8EUXN+jRZfy1eq64qHtg="; postInstall = '' - # Upstream renames the extension when packaging - # https://github.com/pksunkara/pgx_ulid/blob/084778c3e2af08d16ec5ec3ef4e8f345ba0daa33/.github/workflows/release.yml#L81 - # Upgrade scripts should be added later, so we also rename them with wildcard - # https://github.com/pksunkara/pgx_ulid/issues/49 + # Upstream renames the extension when packaging as well as upgrade scripts + # https://github.com/pksunkara/pgx_ulid/blob/master/.github/workflows/release.yml#L80 ${util-linux}/bin/rename pgx_ulid ulid $out/share/postgresql/extension/pgx_ulid* ''; diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix index 61db87acd555..46a49e3f7d54 100644 --- a/pkgs/servers/x11/xorg/default.nix +++ b/pkgs/servers/x11/xorg/default.nix @@ -9,6 +9,7 @@ font-adobe-utopia-75dpi, font-adobe-utopia-type1, font-alias, + font-arabic-misc, font-bh-100dpi, font-bh-75dpi, font-bh-lucidatypewriter-100dpi, @@ -19,11 +20,18 @@ font-bitstream-75dpi, font-bitstream-type1, font-cronyx-cyrillic, + font-cursor-misc, + font-daewoo-misc, + font-dec-misc, font-encodings, + font-ibm-type1, font-isas-misc, + font-jis-misc, font-micro-misc, font-misc-cyrillic, font-misc-ethiopic, + font-misc-meltho, + font-misc-misc, font-mutt-misc, font-schumacher-misc, font-screen-cyrillic, @@ -213,6 +221,7 @@ self: with self; { fontadobeutopia75dpi = font-adobe-utopia-75dpi; fontadobeutopiatype1 = font-adobe-utopia-type1; fontalias = font-alias; + fontarabicmisc = font-arabic-misc; fontbh100dpi = font-bh-100dpi; fontbh75dpi = font-bh-75dpi; fontbhlucidatypewriter100dpi = font-bh-lucidatypewriter-100dpi; @@ -223,10 +232,17 @@ self: with self; { fontbitstream75dpi = font-bitstream-75dpi; fontbitstreamtype1 = font-bitstream-type1; fontcronyxcyrillic = font-cronyx-cyrillic; + fontcursormisc = font-cursor-misc; + fontdaewoomisc = font-daewoo-misc; + fontdecmisc = font-dec-misc; + fontibmtype1 = font-ibm-type1; fontisasmisc = font-isas-misc; + fontjismisc = font-jis-misc; fontmicromisc = font-micro-misc; fontmisccyrillic = font-misc-cyrillic; fontmiscethiopic = font-misc-ethiopic; + fontmiscmeltho = font-misc-meltho; + fontmiscmisc = font-misc-misc; fontmuttmisc = font-mutt-misc; fontschumachermisc = font-schumacher-misc; fontscreencyrillic = font-screen-cyrillic; @@ -382,323 +398,6 @@ self: with self; { }) ) { }; - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontarabicmisc = callPackage ( - { - stdenv, - pkg-config, - fetchurl, - fontutil, - bdftopcf, - mkfontscale, - testers, - }: - stdenv.mkDerivation (finalAttrs: { - pname = "font-arabic-misc"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-arabic-misc-1.0.4.tar.xz"; - sha256 = "0rrlcqbyx9y7hnhbkjir8rs6jkfqyalj1zvhr8niv2n7a8dydzs6"; - }; - hardeningDisable = [ - "bindnow" - "relro" - ]; - strictDeps = true; - nativeBuildInputs = [ - pkg-config - bdftopcf - mkfontscale - ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - }) - ) { }; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontcursormisc = callPackage ( - { - stdenv, - pkg-config, - fetchurl, - fontutil, - bdftopcf, - mkfontscale, - testers, - }: - stdenv.mkDerivation (finalAttrs: { - pname = "font-cursor-misc"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-cursor-misc-1.0.4.tar.xz"; - sha256 = "10prshcmmm5ccczyq7yaadz92k23ls9rjl10hjh8rjqka1cwkn95"; - }; - hardeningDisable = [ - "bindnow" - "relro" - ]; - strictDeps = true; - nativeBuildInputs = [ - pkg-config - bdftopcf - mkfontscale - ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - }) - ) { }; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontdaewoomisc = callPackage ( - { - stdenv, - pkg-config, - fetchurl, - fontutil, - bdftopcf, - mkfontscale, - testers, - }: - stdenv.mkDerivation (finalAttrs: { - pname = "font-daewoo-misc"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-daewoo-misc-1.0.4.tar.xz"; - sha256 = "0cagg963v94paq1l9l7g5kyv7df8q31b4zcbhv5rh07kr0yqng7n"; - }; - hardeningDisable = [ - "bindnow" - "relro" - ]; - strictDeps = true; - nativeBuildInputs = [ - pkg-config - bdftopcf - mkfontscale - ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - }) - ) { }; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontdecmisc = callPackage ( - { - stdenv, - pkg-config, - fetchurl, - fontutil, - bdftopcf, - mkfontscale, - testers, - }: - stdenv.mkDerivation (finalAttrs: { - pname = "font-dec-misc"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-dec-misc-1.0.4.tar.xz"; - sha256 = "1xqs2qg21h5xg519810hw4bvykjdpf0xgk0xwp0bxy4g3lh6inc2"; - }; - hardeningDisable = [ - "bindnow" - "relro" - ]; - strictDeps = true; - nativeBuildInputs = [ - pkg-config - bdftopcf - mkfontscale - ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - }) - ) { }; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontibmtype1 = callPackage ( - { - stdenv, - pkg-config, - fetchurl, - fontutil, - mkfontscale, - testers, - }: - stdenv.mkDerivation (finalAttrs: { - pname = "font-ibm-type1"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-ibm-type1-1.0.4.tar.xz"; - sha256 = "0zyfc0mxkzlrbpdn16rj25abf2hcqb592zkks550rm26paamwff4"; - }; - hardeningDisable = [ - "bindnow" - "relro" - ]; - strictDeps = true; - nativeBuildInputs = [ - pkg-config - mkfontscale - ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - }) - ) { }; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontjismisc = callPackage ( - { - stdenv, - pkg-config, - fetchurl, - fontutil, - bdftopcf, - mkfontscale, - testers, - }: - stdenv.mkDerivation (finalAttrs: { - pname = "font-jis-misc"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-jis-misc-1.0.4.tar.xz"; - sha256 = "1l7spyq93rhydsdnsh46alcfbn2irz664vd209lamxviqkvfzlbq"; - }; - hardeningDisable = [ - "bindnow" - "relro" - ]; - strictDeps = true; - nativeBuildInputs = [ - pkg-config - bdftopcf - mkfontscale - ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - }) - ) { }; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontmiscmeltho = callPackage ( - { - stdenv, - pkg-config, - fetchurl, - fontutil, - mkfontscale, - testers, - }: - stdenv.mkDerivation (finalAttrs: { - pname = "font-misc-meltho"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-misc-meltho-1.0.4.tar.xz"; - sha256 = "06ajsqjd20zsk9a44bl5i1mv1r9snil6l2947hk8z2bqf30mxgk3"; - }; - hardeningDisable = [ - "bindnow" - "relro" - ]; - strictDeps = true; - nativeBuildInputs = [ - pkg-config - mkfontscale - ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - }) - ) { }; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontmiscmisc = callPackage ( - { - stdenv, - pkg-config, - fetchurl, - fontutil, - bdftopcf, - mkfontscale, - testers, - }: - stdenv.mkDerivation (finalAttrs: { - pname = "font-misc-misc"; - version = "1.1.3"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-misc-misc-1.1.3.tar.xz"; - sha256 = "1vcgc6lbc53fqaz8alhxcb6f231hhvj9hn2nkzg1mclbymhy7avr"; - }; - hardeningDisable = [ - "bindnow" - "relro" - ]; - strictDeps = true; - nativeBuildInputs = [ - pkg-config - bdftopcf - fontutil - mkfontscale - ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - }) - ) { }; - # THIS IS A GENERATED FILE. DO NOT EDIT! fonttosfnt = callPackage ( { diff --git a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl index d87b1ad6879d..5e7eb1243b5b 100755 --- a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl +++ b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl @@ -340,6 +340,7 @@ print OUT <