diff --git a/.github/workflows/codeowners.yml b/.github/workflows/codeowners.yml index 164b5a1136f2..56588d45c9cd 100644 --- a/.github/workflows/codeowners.yml +++ b/.github/workflows/codeowners.yml @@ -25,6 +25,13 @@ jobs: steps: - uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30 + - uses: cachix/cachix-action@ad2ddac53f961de1989924296a1f236fcfbaa4fc # v15 + if: github.repository_owner == 'NixOS' + with: + # This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere. + name: nixpkgs-ci + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + # Important: Because we use pull_request_target, this checks out the base branch of the PR, not the PR itself. # We later build and run code from the base branch with access to secrets, # so it's important this is not the PRs code. diff --git a/.github/workflows/nixpkgs-vet.yml b/.github/workflows/nixpkgs-vet.yml index 7bfe973a8c36..f08af86822ca 100644 --- a/.github/workflows/nixpkgs-vet.yml +++ b/.github/workflows/nixpkgs-vet.yml @@ -26,52 +26,22 @@ jobs: # This should take 1 minute at most, but let's be generous. The default of 6 hours is definitely too long. timeout-minutes: 10 steps: - # This step has to be in this file, because it's needed to determine which revision of the repository to fetch, and we can only use other files from the repository once it's fetched. + # This checks out the base branch because of pull_request_target + - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 + with: + path: base + sparse-checkout: ci - name: Resolving the merge commit env: GH_TOKEN: ${{ github.token }} run: | - # This checks for mergeability of a pull request as recommended in - # https://docs.github.com/en/rest/guides/using-the-rest-api-to-interact-with-your-git-database?apiVersion=2022-11-28#checking-mergeability-of-pull-requests - - # Retry the API query this many times - retryCount=5 - # Start with 5 seconds, but double every retry - retryInterval=5 - while true; do - echo "Checking whether the pull request can be merged" - prInfo=$(gh api \ - -H "Accept: application/vnd.github+json" \ - -H "X-GitHub-Api-Version: 2022-11-28" \ - /repos/"$GITHUB_REPOSITORY"/pulls/${{ github.event.pull_request.number }}) - mergeable=$(jq -r .mergeable <<< "$prInfo") - mergedSha=$(jq -r .merge_commit_sha <<< "$prInfo") - - if [[ "$mergeable" == "null" ]]; then - if (( retryCount == 0 )); then - echo "Not retrying anymore. It's likely that GitHub is having internal issues: check https://www.githubstatus.com/" - exit 1 - else - (( retryCount -= 1 )) || true - - # null indicates that GitHub is still computing whether it's mergeable - # Wait a couple seconds before trying again - echo "GitHub is still computing whether this PR can be merged, waiting $retryInterval seconds before trying again ($retryCount retries left)" - sleep "$retryInterval" - - (( retryInterval *= 2 )) || true - fi - else - break - fi - done - - if [[ "$mergeable" == "true" ]]; then - echo "The PR can be merged, checking the merge commit $mergedSha" + if mergedSha=$(base/ci/get-merge-commit.sh ${{ github.repository }} ${{ github.event.number }}); then + echo "Checking the merge commit $mergedSha" echo "mergedSha=$mergedSha" >> "$GITHUB_ENV" else - echo "The PR cannot be merged, it has a merge conflict, skipping the rest.." + echo "Skipping the rest..." fi + rm -rf base - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 if: env.mergedSha with: diff --git a/ci/README.md b/ci/README.md index 40c3d0ed344b..11b53c6095e6 100644 --- a/ci/README.md +++ b/ci/README.md @@ -41,3 +41,58 @@ Why not just build the tooling right from the PRs Nixpkgs version? - Because it improves security, since we don't have to build potentially untrusted code from PRs. The tool only needs a very minimal Nix evaluation at runtime, which can work with [readonly-mode](https://nixos.org/manual/nix/stable/command-ref/opt-common.html#opt-readonly-mode) and [restrict-eval](https://nixos.org/manual/nix/stable/command-ref/conf-file.html#conf-restrict-eval). +## `get-merge-commit.sh GITHUB_REPO PR_NUMBER` + +Check whether a PR is mergeable and return the test merge commit as +[computed by GitHub](https://docs.github.com/en/rest/guides/using-the-rest-api-to-interact-with-your-git-database?apiVersion=2022-11-28#checking-mergeability-of-pull-requests). + +Arguments: +- `GITHUB_REPO`: The repository of the PR, e.g. `NixOS/nixpkgs` +- `PR_NUMBER`: The PR number, e.g. `1234` + +Exit codes: +- 0: The PR can be merged, the test merge commit hash is returned on stdout +- 1: The PR cannot be merged because it's not open anymore +- 2: The PR cannot be merged because it has a merge conflict +- 3: The merge commit isn't being computed, GitHub is likely having internal issues, unknown if the PR is mergeable + +### Usage + +This script can be used in GitHub Actions workflows as follows: + +```yaml +on: pull_request_target + +# We need a token to query the API, but it doesn't need any special permissions +permissions: {} + +jobs: + build: + name: Build + runs-on: ubuntu-latest + steps: + # Important: Because of `pull_request_target`, this doesn't check out the PR, + # but rather the base branch of the PR, which is needed so we don't run untrusted code + - uses: actions/checkout@ + with: + path: base + sparse-checkout: ci + - name: Resolving the merge commit + env: + GH_TOKEN: ${{ github.token }} + run: | + if mergedSha=$(base/ci/get-merge-commit.sh ${{ github.repository }} ${{ github.event.number }}); then + echo "Checking the merge commit $mergedSha" + echo "mergedSha=$mergedSha" >> "$GITHUB_ENV" + else + # Skipping so that no notifications are sent + echo "Skipping the rest..." + fi + rm -rf base + - uses: actions/checkout@ + # Add this to _all_ subsequent steps to skip them + if: env.mergedSha + with: + ref: ${{ env.mergedSha }} + - ... +``` diff --git a/ci/get-merge-commit.sh b/ci/get-merge-commit.sh new file mode 100755 index 000000000000..c62bb56dd993 --- /dev/null +++ b/ci/get-merge-commit.sh @@ -0,0 +1,62 @@ +#!/usr/bin/env bash +# See ./README.md for docs + +set -euo pipefail + +log() { + echo "$@" >&2 +} + +if (( $# < 2 )); then + log "Usage: $0 GITHUB_REPO PR_NUMBER" + exit 99 +fi +repo=$1 +prNumber=$2 + +# Retry the API query this many times +retryCount=5 +# Start with 5 seconds, but double every retry +retryInterval=5 + +while true; do + log "Checking whether the pull request can be merged" + prInfo=$(gh api \ + -H "Accept: application/vnd.github+json" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + "/repos/$repo/pulls/$prNumber") + + # Non-open PRs won't have their mergeability computed no matter what + state=$(jq -r .state <<< "$prInfo") + if [[ "$state" != open ]]; then + log "PR is not open anymore" + exit 1 + fi + + mergeable=$(jq -r .mergeable <<< "$prInfo") + if [[ "$mergeable" == "null" ]]; then + if (( retryCount == 0 )); then + log "Not retrying anymore. It's likely that GitHub is having internal issues: check https://www.githubstatus.com/" + exit 3 + else + (( retryCount -= 1 )) || true + + # null indicates that GitHub is still computing whether it's mergeable + # Wait a couple seconds before trying again + log "GitHub is still computing whether this PR can be merged, waiting $retryInterval seconds before trying again ($retryCount retries left)" + sleep "$retryInterval" + + (( retryInterval *= 2 )) || true + fi + else + break + fi +done + +if [[ "$mergeable" == "true" ]]; then + log "The PR can be merged" + jq -r .merge_commit_sha <<< "$prInfo" +else + log "The PR has a merge conflict" + exit 2 +fi diff --git a/nixos/modules/hardware/video/webcam/ipu6.nix b/nixos/modules/hardware/video/webcam/ipu6.nix index ae54e24ee2da..803902530dd9 100644 --- a/nixos/modules/hardware/video/webcam/ipu6.nix +++ b/nixos/modules/hardware/video/webcam/ipu6.nix @@ -26,9 +26,9 @@ in config = mkIf cfg.enable { - # Module is upstream as of 6.10 - boot.extraModulePackages = with config.boot.kernelPackages; - optional (kernelOlder "6.10") ipu6-drivers; + # Module is upstream as of 6.10, + # but still needs various out-of-tree i2c and the `intel-ipu6-psys` kernel driver + boot.extraModulePackages = with config.boot.kernelPackages; [ ipu6-drivers ]; hardware.firmware = with pkgs; [ ipu6-camera-bins diff --git a/nixos/modules/services/desktop-managers/lomiri.nix b/nixos/modules/services/desktop-managers/lomiri.nix index 310657179fea..75834eab0cd8 100644 --- a/nixos/modules/services/desktop-managers/lomiri.nix +++ b/nixos/modules/services/desktop-managers/lomiri.nix @@ -16,7 +16,6 @@ in { libayatana-common ubports-click ]) ++ (with pkgs.lomiri; [ - content-hub hfd-service history-service libusermetrics @@ -24,6 +23,7 @@ in { lomiri-calculator-app lomiri-camera-app lomiri-clock-app + lomiri-content-hub lomiri-docviewer-app lomiri-download-manager lomiri-filemanager-app @@ -129,7 +129,7 @@ in { environment.pathsToLink = [ # Configs for inter-app data exchange system - "/share/content-hub/peers" + "/share/lomiri-content-hub/peers" # Configs for inter-app URL requests "/share/lomiri-url-dispatcher/urls" # Splash screens & other images for desktop apps launched via lomiri-app-launch @@ -194,10 +194,6 @@ in { }; users.groups.usermetrics = { }; - - # TODO content-hub cannot pass files between applications without asking AA for permissions. And alot of the Lomiri stack is designed with AA availability in mind. This might be a requirement to be closer to upstream? - # But content-hub currently fails to pass files between applications even with AA enabled, and we can get away without AA in many places. Let's see how this develops before requiring this for good. - # security.apparmor.enable = true; }; meta.maintainers = lib.teams.lomiri.members; diff --git a/nixos/modules/services/web-apps/mastodon.nix b/nixos/modules/services/web-apps/mastodon.nix index 5c383e9f16ab..a3a2bbd1eca6 100644 --- a/nixos/modules/services/web-apps/mastodon.nix +++ b/nixos/modules/services/web-apps/mastodon.nix @@ -12,9 +12,12 @@ let RAILS_ENV = "production"; NODE_ENV = "production"; + BOOTSNAP_CACHE_DIR="/var/cache/mastodon/precompile"; LD_PRELOAD = "${pkgs.jemalloc}/lib/libjemalloc.so"; - # mastodon-web concurrency. + MASTODON_USE_LIBVIPS = "true"; + + # Concurrency mastodon-web WEB_CONCURRENCY = toString cfg.webProcesses; MAX_THREADS = toString cfg.webThreads; @@ -24,7 +27,7 @@ let DB_NAME = cfg.database.name; LOCAL_DOMAIN = cfg.localDomain; SMTP_SERVER = cfg.smtp.host; - SMTP_PORT = toString(cfg.smtp.port); + SMTP_PORT = toString cfg.smtp.port; SMTP_FROM_ADDRESS = cfg.smtp.fromAddress; PAPERCLIP_ROOT_PATH = "/var/lib/mastodon/public-system"; PAPERCLIP_ROOT_URL = "/system"; @@ -33,12 +36,12 @@ let TRUSTED_PROXY_IP = cfg.trustedProxy; } // lib.optionalAttrs (cfg.redis.host != null) { REDIS_HOST = cfg.redis.host; } - // lib.optionalAttrs (cfg.redis.port != null) { REDIS_PORT = toString(cfg.redis.port); } + // lib.optionalAttrs (cfg.redis.port != null) { REDIS_PORT = toString cfg.redis.port; } // lib.optionalAttrs (cfg.redis.createLocally && cfg.redis.enableUnixSocket) { REDIS_URL = "unix://${config.services.redis.servers.mastodon.unixSocket}"; } // lib.optionalAttrs (cfg.database.host != "/run/postgresql" && cfg.database.port != null) { DB_PORT = toString cfg.database.port; } // lib.optionalAttrs cfg.smtp.authenticate { SMTP_LOGIN = cfg.smtp.user; } // lib.optionalAttrs (cfg.elasticsearch.host != null) { ES_HOST = cfg.elasticsearch.host; } - // lib.optionalAttrs (cfg.elasticsearch.host != null) { ES_PORT = toString(cfg.elasticsearch.port); } + // lib.optionalAttrs (cfg.elasticsearch.host != null) { ES_PORT = toString cfg.elasticsearch.port; } // lib.optionalAttrs (cfg.elasticsearch.host != null) { ES_PRESET = cfg.elasticsearch.preset; } // lib.optionalAttrs (cfg.elasticsearch.user != null) { ES_USER = cfg.elasticsearch.user; } // cfg.extraConfig; @@ -51,6 +54,9 @@ let Group = cfg.group; # Working directory WorkingDirectory = cfg.package; + # Cache directory and mode + CacheDirectory = "mastodon"; + CacheDirectoryMode = "0750"; # State directory and mode StateDirectory = "mastodon"; StateDirectoryMode = "0750"; @@ -127,7 +133,7 @@ let description = "Mastodon sidekiq${jobClassLabel}"; wantedBy = [ "mastodon.target" ]; environment = env // { - PORT = toString(cfg.sidekiqPort); + PORT = toString cfg.sidekiqPort; DB_POOL = threads; }; serviceConfig = { @@ -309,7 +315,7 @@ in { Voluntary Application Server Identification. A new keypair can be generated by running: - `nix build -f '' mastodon; cd result; bin/rake webpush:generate_keys` + `nix build -f '' mastodon; cd result; RAILS_ENV=production bin/rake webpush:generate_keys` If {option}`mastodon.vapidPrivateKeyFile`does not exist, it and this file will be created with a new keypair. @@ -324,12 +330,57 @@ in { type = lib.types.str; }; + activeRecordEncryptionDeterministicKeyFile = lib.mkOption { + description = '' + This key must be set to enable the Active Record Encryption feature within + Rails that Mastodon uses to encrypt and decrypt some database attributes. + A new Active Record keys can be generated by running: + + `nix build -f '' mastodon; cd result; RAILS_ENV=production ./bin/rails db:encryption:init` + + If this file does not exist, it will be created with a new Active Record + keys. + ''; + default = "/var/lib/mastodon/secrets/active-record-encryption-deterministic-key"; + type = lib.types.str; + }; + + activeRecordEncryptionKeyDerivationSaltFile = lib.mkOption { + description = '' + This key must be set to enable the Active Record Encryption feature within + Rails that Mastodon uses to encrypt and decrypt some database attributes. + A new Active Record keys can be generated by running: + + `nix build -f '' mastodon; cd result; RAILS_ENV=production ./bin/rails db:encryption:init` + + If this file does not exist, it will be created with a new Active Record + keys. + ''; + default = "/var/lib/mastodon/secrets/active-record-encryption-key-derivation-salt"; + type = lib.types.str; + }; + + activeRecordEncryptionPrimaryKeyFile = lib.mkOption { + description = '' + This key must be set to enable the Active Record Encryption feature within + Rails that Mastodon uses to encrypt and decrypt some database attributes. + A new Active Record keys can be generated by running: + + `nix build -f '' mastodon; cd result; RAILS_ENV=production ./bin/rails db:encryption:init` + + If this file does not exist, it will be created with a new Active Record + keys. + ''; + default = "/var/lib/mastodon/secrets/active-record-encryption-primary-key"; + type = lib.types.str; + }; + secretKeyBaseFile = lib.mkOption { description = '' Path to file containing the secret key base. A new secret key base can be generated by running: - `nix build -f '' mastodon; cd result; bin/rake secret` + `nix build -f '' mastodon; cd result; bin/bundle exec rails secret` If this file does not exist, it will be created with a new secret key base. ''; @@ -342,7 +393,7 @@ in { Path to file containing the OTP secret. A new OTP secret can be generated by running: - `nix build -f '' mastodon; cd result; bin/rake secret` + `nix build -f '' mastodon; cd result; bin/bundle exec rails secret` If this file does not exist, it will be created with a new OTP secret. ''; @@ -708,13 +759,28 @@ in { script = '' umask 077 + if ! test -d /var/cache/mastodon/precompile; then + ${cfg.package}/bin/bundle exec bootsnap precompile --gemfile ${cfg.package}/app ${cfg.package}/lib + fi + if ! test -f ${cfg.activeRecordEncryptionDeterministicKeyFile}; then + mkdir -p $(dirname ${cfg.activeRecordEncryptionDeterministicKeyFile}) + bin/rails db:encryption:init | grep --only-matching "ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=[^ ]\+" | sed 's/^ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=//' > ${cfg.activeRecordEncryptionDeterministicKeyFile} + fi + if ! test -f ${cfg.activeRecordEncryptionKeyDerivationSaltFile}; then + mkdir -p $(dirname ${cfg.activeRecordEncryptionKeyDerivationSaltFile}) + bin/rails db:encryption:init | grep --only-matching "ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=[^ ]\+" | sed 's/^ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=//' > ${cfg.activeRecordEncryptionKeyDerivationSaltFile} + fi + if ! test -f ${cfg.activeRecordEncryptionPrimaryKeyFile}; then + mkdir -p $(dirname ${cfg.activeRecordEncryptionPrimaryKeyFile}) + bin/rails db:encryption:init | grep --only-matching "ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY=[^ ]\+" | sed 's/^ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY=//' > ${cfg.activeRecordEncryptionPrimaryKeyFile} + fi if ! test -f ${cfg.secretKeyBaseFile}; then mkdir -p $(dirname ${cfg.secretKeyBaseFile}) - bin/rake secret > ${cfg.secretKeyBaseFile} + bin/bundle exec rails secret > ${cfg.secretKeyBaseFile} fi if ! test -f ${cfg.otpSecretFile}; then mkdir -p $(dirname ${cfg.otpSecretFile}) - bin/rake secret > ${cfg.otpSecretFile} + bin/bundle exec rails secret > ${cfg.otpSecretFile} fi if ! test -f ${cfg.vapidPrivateKeyFile}; then mkdir -p $(dirname ${cfg.vapidPrivateKeyFile}) $(dirname ${cfg.vapidPublicKeyFile}) @@ -724,6 +790,9 @@ in { fi cat > /var/lib/mastodon/.secrets_env < 3.0.4 - (fetchpatch { - name = "0001-lomiri-docviewer-app-Set-gettext-domain.patch"; - url = "https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/commit/8dc2c911817c45451ff341e4ae4b841bcc134945.patch"; - hash = "sha256-vP6MYl7qhJzkgtnVelMMIbc0ZkHxC1s3abUXJ2zVi4w="; - }) - (fetchpatch { - name = "0002-lomiri-docviewer-app-Install-splash-file.patch"; - url = "https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/commit/ef20bbdd5e80040bf11273a5fc2964400086fdc9.patch"; - hash = "sha256-ylPFn53PJRyyzhN1SxtmNFMFeDsV9UxyQhAqULA5PJM="; - }) - - # Remove when https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/merge_requests/72 merged & in release - (fetchpatch { - name = "1001-lomiri-docviewer-app-Stop-using-qt5_use_modules.patch"; - url = "https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/commit/120c81dd71356f2e06ef5c44d114b665236a7382.patch"; - hash = "sha256-4VCw90qYnQ/o67ndp9o8h+wUl2IUpmVGb9xyY55AMIQ="; - }) - (fetchpatch { - name = "1002-lomiri-docviewer-app-Move-Qt-find_package-to-top-level.patch"; - url = "https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/commit/43ee96a3a33b7a8f04e95f434982bcc60ba4b257.patch"; - hash = "sha256-3LggdNo4Yak4SVAD/4/mMCl8PjZy1dIx9i5hKHM5fJU="; - }) - - # Remove when https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/merge_requests/73 merged & in release - (fetchpatch { - name = "1011-lomiri-docviewer-app-Call-i18n-bindtextdomain.patch"; - url = "https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/commit/67599a841917304f76ffa1167a217718542a8b46.patch"; - hash = "sha256-nbi3qX14kWtFcXrxAD41IeybDIRTNfUdRgSP1vDI/Hs="; - }) - - # Remove when https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/merge_requests/74 merged & in release - (fetchpatch { - name = "1021-lomiri-docviewer-app-Use-GNUInstallDirs-more-better.patch"; - url = "https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/commit/40a860a118077c05692002db694be77ea62dc5b3.patch"; - hash = "sha256-/zhpIdqZ7WsU4tx4/AZs5w8kEopjH2boiHdHaJk5RXk="; - }) - - # Remove when https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/merge_requests/75 merged & in release - (fetchpatch { - name = "1031-lomiri-docviewer-app-Use-BUILD_TESTING.patch"; - url = "https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/commit/6f1eb739a3e0bf0ba847f94f8ea8411e0a385c2d.patch"; - hash = "sha256-yVuYG+1JGo/I4TVRZ3UQeO/TJ8GiFO5BJ9Bs7glK7hg="; - }) - # Remove when https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/merge_requests/76 merged & in release # fetchpatch2 because there's a file rename (fetchpatch2 { @@ -84,11 +39,11 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-KdHyKXM0hMMIFkuDn5JZJOEuitWAXT2QQOuR+1AolP0="; }) - # Remove when https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/merge_requests/77 merged & in release + # Remove when https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/merge_requests/81 merged & in release (fetchpatch { - name = "1051-lomiri-docviewer-app-Install-content-hub-lomiri-url-dispatcher-files.patch"; - url = "https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/commit/98f5ab9d51ba05e8c3ed1991c0b67d3922b5ba90.patch"; - hash = "sha256-JA26ga1CNOdbis87lSzqbUbs94Oc1vlxraXZxx3dsu8="; + name = "1051-lomiri-docviewer-app-XDGify-icon.patch"; + url = "https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/commit/a319e648ba15a7868d9ceb3a77ea15ad196e515b.patch"; + hash = "sha256-JMSnN8EyWPHhqHzaJxy3JIhNaOvPLYkVDnNCrPGbO4E="; }) ]; @@ -98,7 +53,6 @@ stdenv.mkDerivation (finalAttrs: { # We don't want absolute paths in desktop files substituteInPlace data/CMakeLists.txt \ - --replace-fail 'ICON "''${DATA_DIR}/''${ICON_FILE}"' 'ICON lomiri-docviewer-app' \ --replace-fail 'SPLASH "''${DATA_DIR}/''${SPLASH_FILE}"' 'SPLASH "lomiri-app-launch/splash/lomiri-docviewer-app.svg"' ''; @@ -118,7 +72,7 @@ stdenv.mkDerivation (finalAttrs: { qtdeclarative # QML - content-hub + lomiri-content-hub lomiri-ui-toolkit qtsystems ]; @@ -133,9 +87,8 @@ stdenv.mkDerivation (finalAttrs: { doCheck = false; postInstall = '' - mkdir -p $out/share/{icons/hicolor/scalable/apps,lomiri-app-launch/splash} + mkdir -p $out/share/lomiri-app-launch/splash - ln -s $out/share/{lomiri-docviewer-app/docviewer-app.svg,icons/hicolor/scalable/apps/lomiri-docviewer-app.svg} ln -s $out/share/{lomiri-docviewer-app/docviewer-app-splash.svg,lomiri-app-launch/splash/lomiri-docviewer-app.svg} ''; diff --git a/pkgs/desktops/lomiri/applications/lomiri-filemanager-app/default.nix b/pkgs/desktops/lomiri/applications/lomiri-filemanager-app/default.nix index fa91e1531bf2..9ad6cee361f9 100644 --- a/pkgs/desktops/lomiri/applications/lomiri-filemanager-app/default.nix +++ b/pkgs/desktops/lomiri/applications/lomiri-filemanager-app/default.nix @@ -2,13 +2,12 @@ stdenv, lib, fetchFromGitLab, - fetchpatch, gitUpdater, nixosTests, biometryd, cmake, - content-hub, gettext, + lomiri-content-hub, lomiri-thumbnailer, lomiri-ui-extras, lomiri-ui-toolkit, @@ -22,65 +21,22 @@ stdenv.mkDerivation (finalAttrs: { pname = "lomiri-filemanager-app"; - version = "1.0.4"; + version = "1.1.2"; src = fetchFromGitLab { owner = "ubports"; repo = "development/apps/lomiri-filemanager-app"; rev = "v${finalAttrs.version}"; - hash = "sha256-vjGCTfXoqul1S7KUJXG6JwgZOc2etXWsdKbyQ/V3abA="; + hash = "sha256-XA1Gdb0Kpc3BEifmgHhQ38moKkCkYbhpr8wptnddZlk="; }; - patches = [ - # This sets the *wrong* domain, but at least it sets *some* domain. - # Remove when version > 1.0.4 - (fetchpatch { - name = "0001-lomiri-filemanager-app-Set-a-gettext-domain.patch"; - url = "https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/commit/b310434d2c25a3b446d3d975f3755eb473a833e8.patch"; - hash = "sha256-gzFFzZCIxedMGW4fp6sonnHj/HmwqdqU5fvGhXUsSOI="; - }) - - # Set the *correct* domain. - # Remove when version > 1.0.4 - (fetchpatch { - name = "0002-lomiri-filemanager-app-Fix-gettext-domain.patch"; - url = "https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/commit/2bb19aeef2baba8d12df1e4976becc08d7cf341d.patch"; - hash = "sha256-wreOMMvBjf316N/XJv3VfI5f5N/VFiEraeadtgRStjA="; - }) - - # Bind domain to locale dir - # Remove when https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/merge_requests/112 merged & in release - (fetchpatch { - name = "0003-lomiri-filemanager-app-Call-i18n.bindtextdomain.patch"; - url = "https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/commit/ac0ab681c52c691d464cf94707b013b39675ad2d.patch"; - hash = "sha256-mwpcHwMT2FcNC6KIZNuSWU/bA8XP8rEQKHn7t5m6npM="; - }) - - # Stop using deprecated qt5_use_modules - # Remove when https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/merge_requests/113 merged & in release - (fetchpatch { - name = "0004-lomiri-filemanager-app-Stop-using-qt5_use_modules.patch"; - url = "https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/commit/c2bfe927b16e660bf4730371b1e61e442e034780.patch"; - hash = "sha256-wPOZP2FOaacEGj4SMS5Q/TO+/L11Qz7NTux4kA86Bcs="; - }) - - # Use pkg-config for smbclient flags - # Remove when https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/merge_requests/115 merged & in release - (fetchpatch { - name = "0005-lomiri-filemanager-app-Get-smbclient-flags-via-pkg-config.patch"; - url = "https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/commit/aa791da5999719724e0b0592765e8fa2962305c6.patch"; - hash = "sha256-fFAYKBR28ym/n7fhP9O6VE2owarLxK8cN9QeExHFbtU="; - }) - ]; - postPatch = '' # Use correct QML install path, don't pull in autopilot test code (we can't run that system) # Remove absolute paths from desktop file, https://github.com/NixOS/nixpkgs/issues/308324 substituteInPlace CMakeLists.txt \ --replace-fail 'qmake -query QT_INSTALL_QML' 'echo ${placeholder "out"}/${qtbase.qtQmlPrefix}' \ --replace-fail 'add_subdirectory(tests)' '#add_subdirectory(tests)' \ - --replace-fail 'ICON ''${CMAKE_INSTALL_PREFIX}/''${DATA_DIR}/''${ICON_FILE}' 'ICON lomiri-filemanager-app' \ - --replace-fail 'SPLASH ''${CMAKE_INSTALL_PREFIX}/''${DATA_DIR}/''${SPLASH_FILE}' 'SPLASH lomiri-app-launch/splash/lomiri-filemanager-app.svg' + --replace-fail 'SPLASH ''${DATA_DIR}/''${SPLASH_FILE}' 'SPLASH lomiri-app-launch/splash/lomiri-filemanager-app.svg' # In case this ever gets run, at least point it to a correct-ish path substituteInPlace tests/autopilot/CMakeLists.txt \ @@ -103,7 +59,7 @@ stdenv.mkDerivation (finalAttrs: { # QML biometryd - content-hub + lomiri-content-hub lomiri-thumbnailer lomiri-ui-extras lomiri-ui-toolkit @@ -117,14 +73,6 @@ stdenv.mkDerivation (finalAttrs: { # No tests we can actually run (just autopilot) doCheck = false; - postInstall = '' - # Some misc files don't get installed to the correct paths for us - mkdir -p $out/share/{content-hub/peers,icons/hicolor/scalable/apps,lomiri-app-launch/splash} - ln -s $out/share/lomiri-filemanager-app/content-hub.json $out/share/content-hub/peers/lomiri-filemanager-app - ln -s $out/share/lomiri-filemanager-app/filemanager.svg $out/share/icons/hicolor/scalable/apps/lomiri-filemanager-app.svg - ln -s $out/share/lomiri-filemanager-app/splash.svg $out/share/lomiri-app-launch/splash/lomiri-filemanager-app.svg - ''; - passthru = { tests.vm = nixosTests.lomiri-filemanager-app; updateScript = gitUpdater { rev-prefix = "v"; }; diff --git a/pkgs/desktops/lomiri/applications/lomiri-gallery-app/default.nix b/pkgs/desktops/lomiri/applications/lomiri-gallery-app/default.nix index deed853358b4..817ce9b69bfc 100644 --- a/pkgs/desktops/lomiri/applications/lomiri-gallery-app/default.nix +++ b/pkgs/desktops/lomiri/applications/lomiri-gallery-app/default.nix @@ -6,11 +6,11 @@ gitUpdater, nixosTests, cmake, - content-hub, exiv2, imagemagick, libglvnd, libmediainfo, + lomiri-content-hub, lomiri-thumbnailer, lomiri-ui-extras, lomiri-ui-toolkit, @@ -25,79 +25,30 @@ stdenv.mkDerivation (finalAttrs: { pname = "lomiri-gallery-app"; - version = "3.0.2"; + version = "3.1.0"; src = fetchFromGitLab { owner = "ubports"; repo = "development/apps/lomiri-gallery-app"; rev = "v${finalAttrs.version}"; - hash = "sha256-nX9dTL4W0WxrwvszGd4AUIx4yUrghMM7ZMtGZLhZE/8="; + hash = "sha256-uKGPic9XYUj0rLA05i6GjLM+n17MYgiFJMWnLXHKmIU="; }; patches = [ - # Remove when version > 3.0.2 - (fetchpatch { - name = "0001-lomiri-gallery-app-Newer-Evix2-compat.patch"; - url = "https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/commit/afa019b5e9071fbafaa9afb3b4effdae6e0774c5.patch"; - hash = "sha256-gBc++6EQ7t3VcBZTknkIpC0bJ/P15oI+G0YoQWtjnSY="; - }) - - # Remove when https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/merge_requests/147 merged & in release - (fetchpatch { - name = "0002-lomiri-gallery-app-Stop-using-qt5_use_modules.patch"; - url = "https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/commit/0149c8d422c3e0889d7d523789dc65776a52c4f9.patch"; - hash = "sha256-jS81F7KNbAn5J8sDDXzhXARNYAu6dEKcbNHpHp/3MaI="; - }) - - # Remove when https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/merge_requests/148 merged & in release - (fetchpatch { - name = "0003-lomiri-gallery-app-Fix-GNUInstallDirs.patch"; - url = "https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/commit/805121b362a9b486094e570053884b9ffa92b152.patch"; - hash = "sha256-fyAqKjZ0g7Sw7fWP1IW4SpZ+g0xi/pH6RJie1K3doP0="; - }) - - # Remove when https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/merge_requests/149 merged & in release - (fetchpatch { - name = "0004-lomiri-gallery-app-Fix-icons.patch"; - url = "https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/commit/906966536363e80fe9906dee935d991955e8f842.patch"; - hash = "sha256-LJ+ILhokceXFUvP/G1BEBE/J1/XUAmNBxu551x0Q6nk="; - }) - - # Remove when https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/merge_requests/150 merged & in release - (fetchpatch { - name = "0005-lomiri-gallery-app-Add-ENABLE_WERROR.patch"; - url = "https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/commit/fe32a3453b88cc3563e53ab124f669ce307e9688.patch"; - hash = "sha256-nFCtY3857D5e66rIME+lj6x4exEfx9D2XGEgyWhemgI="; - }) - - # Remove when https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/merge_requests/151 merged & in release - (fetchpatch { - name = "0006-lomiri-gallery-app-BUILD_TESTING.patch"; - url = "https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/commit/51f3d5e643db5576b051da63c58ba3492c851e44.patch"; - hash = "sha256-5aGx2xfCDgq/khgkzGsvUOmTIYALjyfn6W7IR5dldr8="; - }) - (fetchpatch { - name = "0007-lomiri-gallery-app-Top-level-Qt5Test.patch"; - url = "https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/commit/c308c689c2841d71554ff6397a110d1a12016b70.patch"; - hash = "sha256-fXVOKjnj4EPeby9iEp3mZRqx9MLqdF8SUVEouCkyDRc="; - }) - # Remove when https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/merge_requests/152 merged & in release (fetchpatch { - name = "0008-lomiri-gallery-app-bindtextdomain.patch"; - url = "https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/commit/90a79972741ee0c5dc734dba6c42afeb3ee6a699.patch"; - hash = "sha256-YAmH0he5/rZYKWFyPzUFAKJuHhUTxB3q8zbLL7Spz/c="; + name = "0001-lomiri-gallery-app-bindtextdomain.patch"; + url = "https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/commit/592eff118cb5056886b73e6698f8941c7a16f2e0.patch"; + hash = "sha256-aR/Lnzvq4RuRLI75mMd4xTGMAcijm1adSAGVFZZ++No="; + }) + (fetchpatch { + name = "0002-lomiri-gallery-app-C++ify-i18n.patch"; + url = "https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/commit/a7582abbe0acef4d49c77a4395bc22dbd1707ef3.patch"; + hash = "sha256-qzqTXqIYX+enoOwwV9d9fxe7tVYLuh1WkL8Ij/Qx0H0="; }) ]; postPatch = '' - # 0003-lomiri-gallery-app-Fix-icons.patch cannot be fully applied via patches due to binary diffs - # Remove when https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/merge_requests/149 merged & in release - for size in 64x64 128x128 256x256; do - rm desktop/icons/hicolor/"$size"/apps/gallery-app.png - magick desktop/lomiri-gallery-app.svg -resize "$size" desktop/icons/hicolor/"$size"/apps/lomiri-gallery-app.png - done - # Make splash path in desktop file relative substituteInPlace desktop/lomiri-gallery-app.desktop.in.in \ --replace-fail 'X-Lomiri-Splash-Image=@SPLASH@' 'X-Lomiri-Splash-Image=lomiri-app-launch/splash/lomiri-gallery-app.svg' @@ -130,7 +81,7 @@ stdenv.mkDerivation (finalAttrs: { qtsvg # QML - content-hub + lomiri-content-hub lomiri-thumbnailer lomiri-ui-extras lomiri-ui-toolkit @@ -164,9 +115,6 @@ stdenv.mkDerivation (finalAttrs: { # Link splash to splash dir mkdir -p $out/share/lomiri-app-launch/splash ln -s $out/share/{lomiri-gallery-app/lomiri-gallery-app-splash.svg,lomiri-app-launch/splash/lomiri-gallery-app.svg} - - # Old name - mv $out/share/content-hub/peers/{,lomiri-}gallery-app ''; passthru = { diff --git a/pkgs/desktops/lomiri/applications/lomiri-system-settings/default.nix b/pkgs/desktops/lomiri/applications/lomiri-system-settings/default.nix index 115d1d01abfc..6085f4d1b5fb 100644 --- a/pkgs/desktops/lomiri/applications/lomiri-system-settings/default.nix +++ b/pkgs/desktops/lomiri/applications/lomiri-system-settings/default.nix @@ -9,7 +9,6 @@ biometryd, cmake, cmake-extras, - content-hub, dbus, deviceinfo, geonames, @@ -24,6 +23,7 @@ libqofono, libqtdbustest, libqtdbusmock, + lomiri-content-hub, lomiri-indicator-network, lomiri-schemas, lomiri-settings-components, @@ -122,8 +122,8 @@ stdenv.mkDerivation (finalAttrs: { propagatedBuildInputs = [ ayatana-indicator-datetime biometryd - content-hub libqofono + lomiri-content-hub lomiri-indicator-network lomiri-schemas lomiri-settings-components diff --git a/pkgs/desktops/lomiri/applications/lomiri-terminal-app/default.nix b/pkgs/desktops/lomiri/applications/lomiri-terminal-app/default.nix index 0b2b6f6e5798..a6bf2877ef58 100644 --- a/pkgs/desktops/lomiri/applications/lomiri-terminal-app/default.nix +++ b/pkgs/desktops/lomiri/applications/lomiri-terminal-app/default.nix @@ -1,7 +1,6 @@ { stdenv , lib , fetchFromGitLab -, fetchpatch , gitUpdater , nixosTests , cmake @@ -18,41 +17,15 @@ stdenv.mkDerivation (finalAttrs: { pname = "lomiri-terminal-app"; - version = "2.0.2"; + version = "2.0.3"; src = fetchFromGitLab { owner = "ubports"; repo = "development/apps/lomiri-terminal-app"; rev = "v${finalAttrs.version}"; - hash = "sha256-mXbPmVcl5dL78QUp+w3o4im5ohUQCPTKWLSVqlNO0yo="; + hash = "sha256-374ATxF+XhoALzYv6DEyj6IYgb82Ch4zcmqK0RXmlzI="; }; - patches = [ - # Stop usage of private qt5_use_modules function, seemingly unavailable in this package - # Remove when https://gitlab.com/ubports/development/apps/lomiri-terminal-app/-/merge_requests/103 merged & in release - (fetchpatch { - name = "0001-lomiri-terminal-app-Stop-using-qt5_use_modules.patch"; - url = "https://gitlab.com/ubports/development/apps/lomiri-terminal-app/-/commit/db210c74e771a427066aebdc3a99cab6e782d326.patch"; - hash = "sha256-op4+/eo8rBRMcW6MZ0rOEFReM7JBCck1B+AsgAPyqAI="; - }) - - # Explicitly bind textdomain, don't rely on hacky workaround in LUITK - # Remove when https://gitlab.com/ubports/development/apps/lomiri-terminal-app/-/merge_requests/104 merged & in release - (fetchpatch { - name = "0002-lomiri-terminal-app-Call-i18n.bindtextdomain.patch"; - url = "https://gitlab.com/ubports/development/apps/lomiri-terminal-app/-/commit/7f9d419e29043f0d0922d2ac1dce5673e2723a01.patch"; - hash = "sha256-HfIvGVbIdTasoHAfHysnzFLufQQ4lskym5HTekH+mjk="; - }) - - # Add more & correct existing usage of GNUInstallDirs variables - # Remove when https://gitlab.com/ubports/development/apps/lomiri-terminal-app/-/merge_requests/105 merged & in release - (fetchpatch { - name = "0003-lomiri-terminal-app-GNUInstallDirs-usage.patch"; - url = "https://gitlab.com/ubports/development/apps/lomiri-terminal-app/-/commit/fcde1f05bb442c74b1dff95917fd7594f26e97a7.patch"; - hash = "sha256-umxCMGNjyz0TVmwH0Gl0MpgjLQtkW9cHkUfpNJcoasE="; - }) - ]; - postPatch = '' substituteInPlace CMakeLists.txt \ --replace "\''${CMAKE_INSTALL_LIBDIR}/qt5/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}" diff --git a/pkgs/desktops/lomiri/applications/morph-browser/default.nix b/pkgs/desktops/lomiri/applications/morph-browser/default.nix index 12c71a4f90b8..ff636197d738 100644 --- a/pkgs/desktops/lomiri/applications/morph-browser/default.nix +++ b/pkgs/desktops/lomiri/applications/morph-browser/default.nix @@ -5,10 +5,10 @@ , gitUpdater , nixosTests , cmake -, content-hub , gettext , libapparmor , lomiri-action-api +, lomiri-content-hub , lomiri-ui-extras , lomiri-ui-toolkit , pkg-config @@ -27,23 +27,16 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "morph-browser"; - version = "1.1.0"; + version = "1.1.1"; src = fetchFromGitLab { owner = "ubports"; repo = "development/core/morph-browser"; rev = finalAttrs.version; - hash = "sha256-C5iXv8VS8Mm1ryxK7Vi5tVmiM01OSIFiTyH0vP9B/xA="; + hash = "sha256-VxSADFTlaxQUDc81TzGkx54mjAUgY2L+suQC9zYGKo0="; }; patches = [ - # Remove when https://gitlab.com/ubports/development/core/morph-browser/-/merge_requests/575 merged & in release - (fetchpatch { - name = "0001-morph-browser-tst_SessionUtilsTests-Set-permissions-on-temporary-xdg-runtime-directory.patch"; - url = "https://gitlab.com/ubports/development/core/morph-browser/-/commit/e90206105b8b287fbd6e45ac37ca1cd259981928.patch"; - hash = "sha256-5htFn+OGVVBn3mJQaZcF5yt0mT+2QRlKyKFesEhklfA="; - }) - # Remove when https://gitlab.com/ubports/development/core/morph-browser/-/merge_requests/576 merged & in release (fetchpatch { name = "0002-morph-browser-Call-i18n-bindtextdomain-with-buildtime-determined-locale-path.patch"; @@ -84,8 +77,8 @@ stdenv.mkDerivation (finalAttrs: { qtwebengine # QML - content-hub lomiri-action-api + lomiri-content-hub lomiri-ui-extras lomiri-ui-toolkit qqc2-suru-style @@ -132,7 +125,8 @@ stdenv.mkDerivation (finalAttrs: { standalone = nixosTests.morph-browser; # Lomiri-specific issues with the desktop file may break the entire session, make sure it still works - lomiri = nixosTests.lomiri; + lomiri-basics = nixosTests.lomiri.desktop-basics; + lomiri-appinteractions = nixosTests.lomiri.desktop-appinteractions; }; }; diff --git a/pkgs/desktops/lomiri/applications/teleports/default.nix b/pkgs/desktops/lomiri/applications/teleports/default.nix index f5fceb5bd40a..8a9d318f4b2c 100644 --- a/pkgs/desktops/lomiri/applications/teleports/default.nix +++ b/pkgs/desktops/lomiri/applications/teleports/default.nix @@ -7,8 +7,8 @@ gitUpdater, nixosTests, cmake, - content-hub, intltool, + lomiri-content-hub, lomiri-indicator-network, lomiri-push-qml, lomiri-thumbnailer, @@ -84,7 +84,7 @@ stdenv.mkDerivation (finalAttrs: { ]; buildInputs = [ - content-hub + lomiri-content-hub lomiri-indicator-network lomiri-push-qml lomiri-thumbnailer @@ -102,10 +102,10 @@ stdenv.mkDerivation (finalAttrs: { ]; postInstall = '' - mkdir -p $out/share/{applications,content-hub/peers,icons/hicolor/scalable/apps,lomiri-app-launch/splash,lomiri-url-dispatcher/urls} + mkdir -p $out/share/{applications,lomiri-content-hub/peers,icons/hicolor/scalable/apps,lomiri-app-launch/splash,lomiri-url-dispatcher/urls} ln -s $out/share/teleports/teleports.desktop $out/share/applications/teleports.desktop - ln -s $out/share/teleports/teleports.content-hub $out/share/content-hub/peers/teleports + ln -s $out/share/teleports/teleports.content-hub $out/share/lomiri-content-hub/peers/teleports ln -s $out/share/teleports/assets/icon.svg $out/share/icons/hicolor/scalable/apps/teleports.svg ln -s $out/share/teleports/assets/splash.svg $out/share/lomiri-app-launch/splash/teleports.svg ln -s $out/share/teleports/teleports.url-dispatcher $out/share/lomiri-url-dispatcher/urls/teleports.url-dispatcher diff --git a/pkgs/desktops/lomiri/default.nix b/pkgs/desktops/lomiri/default.nix index 8e5dbd2ff9ef..c4794109b862 100644 --- a/pkgs/desktops/lomiri/default.nix +++ b/pkgs/desktops/lomiri/default.nix @@ -56,7 +56,7 @@ let #### Services biometryd = callPackage ./services/biometryd { }; - content-hub = callPackage ./services/content-hub { }; + lomiri-content-hub = callPackage ./services/lomiri-content-hub { }; hfd-service = callPackage ./services/hfd-service { }; history-service = callPackage ./services/history-service { }; lomiri-download-manager = callPackage ./services/lomiri-download-manager { }; @@ -70,5 +70,6 @@ let in lib.makeScope libsForQt5.newScope packages // lib.optionalAttrs config.allowAliases { + content-hub = lib.warn "`content-hub` was renamed to `lomiri-content-hub`." pkgs.lomiri.lomiri-content-hub; # Added on 2024-09-11 lomiri-system-settings-security-privacy = lib.warn "`lomiri-system-settings-security-privacy` upstream was merged into `lomiri-system-settings`. Please use `pkgs.lomiri.lomiri-system-settings-unwrapped` if you need to directly access the plugins that belonged to this project." pkgs.lomiri.lomiri-system-settings-unwrapped; # Added on 2024-08-08 } diff --git a/pkgs/desktops/lomiri/development/u1db-qt/default.nix b/pkgs/desktops/lomiri/development/u1db-qt/default.nix index 8eeffa84ce35..9bba0d914c7a 100644 --- a/pkgs/desktops/lomiri/development/u1db-qt/default.nix +++ b/pkgs/desktops/lomiri/development/u1db-qt/default.nix @@ -1,25 +1,26 @@ -{ stdenv -, lib -, fetchFromGitLab -, fetchpatch -, gitUpdater -, testers -, cmake -, dbus-test-runner -, pkg-config -, qtbase -, qtdeclarative +{ + stdenv, + lib, + fetchFromGitLab, + fetchpatch, + gitUpdater, + testers, + cmake, + dbus-test-runner, + pkg-config, + qtbase, + qtdeclarative, }: stdenv.mkDerivation (finalAttrs: { pname = "u1db-qt"; - version = "0.1.7"; + version = "0.1.8"; src = fetchFromGitLab { owner = "ubports"; repo = "development/core/u1db-qt"; rev = finalAttrs.version; - hash = "sha256-qlWkxpiVEUbpsKhzR0s7SKaEFCLM2RH+v9XmJ3qLoGY="; + hash = "sha256-KmAEgnWHY0cDKJqRhZpY0fzVjNlEU67e559XEbAPpJI="; }; outputs = [ @@ -29,12 +30,11 @@ stdenv.mkDerivation (finalAttrs: { ]; patches = [ - # Fixes some issues with the pkg-config file - # Remove when https://gitlab.com/ubports/development/core/u1db-qt/-/merge_requests/7 merged & in release + # Remove when https://gitlab.com/ubports/development/core/u1db-qt/-/merge_requests/8 merged & in release (fetchpatch { - name = "0001-u1db-qt-Fix-pkg-config-files-includedir-variable.patch"; - url = "https://gitlab.com/ubports/development/core/u1db-qt/-/commit/ddafbfadfad6dfc508a866835354a4701dda1fe1.patch"; - hash = "sha256-entwjU9TiHuSuht7Cdl0k1v0cP7350a04/FXgTVhGmk="; + name = "0001-u1db-qt-Use-BUILD_TESTING.patch"; + url = "https://gitlab.com/ubports/development/core/u1db-qt/-/commit/df5d526df26c056d54bfa532a3a3fa025d655690.patch"; + hash = "sha256-CILMcvqXrTbEL/N2Tic4IsKLnTtmFJ2QbV3r4PsQ5t0="; }) ]; @@ -48,10 +48,6 @@ stdenv.mkDerivation (finalAttrs: { # For our automatic pkg-config output patcher to work, prefix must be used here substituteInPlace libu1db-qt.pc.in \ --replace-fail 'libdir=''${exec_prefix}/lib' 'libdir=''${prefix}/lib' - '' + lib.optionalString (!finalAttrs.finalPackage.doCheck) '' - # Other locations add dependencies to custom check target from tests - substituteInPlace CMakeLists.txt \ - --replace-fail 'add_subdirectory(tests)' 'add_custom_target(check COMMAND "echo check dummy")' ''; strictDeps = true; @@ -67,9 +63,7 @@ stdenv.mkDerivation (finalAttrs: { qtdeclarative ]; - nativeCheckInputs = [ - dbus-test-runner - ]; + nativeCheckInputs = [ dbus-test-runner ]; cmakeFlags = [ # Needs qdoc, see https://github.com/NixOS/nixpkgs/pull/245379 @@ -104,14 +98,12 @@ stdenv.mkDerivation (finalAttrs: { updateScript = gitUpdater { }; }; - meta = with lib; { + meta = { description = "Qt5 binding and QtQuick2 plugin for U1DB"; homepage = "https://gitlab.com/ubports/development/core/u1db-qt"; - license = licenses.lgpl3Only; - maintainers = teams.lomiri.members; - platforms = platforms.linux; - pkgConfigModules = [ - "libu1db-qt5" - ]; + license = lib.licenses.lgpl3Only; + maintainers = lib.teams.lomiri.members; + platforms = lib.platforms.linux; + pkgConfigModules = [ "libu1db-qt5" ]; }; }) diff --git a/pkgs/desktops/lomiri/qml/qqc2-suru-style/default.nix b/pkgs/desktops/lomiri/qml/qqc2-suru-style/default.nix index 5717ae35f113..967485fcf403 100644 --- a/pkgs/desktops/lomiri/qml/qqc2-suru-style/default.nix +++ b/pkgs/desktops/lomiri/qml/qqc2-suru-style/default.nix @@ -1,29 +1,28 @@ -{ stdenv -, lib -, fetchFromGitLab -, gitUpdater -, qmake -, qtdeclarative -, qtquickcontrols2 +{ + stdenv, + lib, + fetchFromGitLab, + gitUpdater, + qmake, + qtdeclarative, + qtquickcontrols2, }: stdenv.mkDerivation (finalAttrs: { pname = "qqc2-suru-style"; - version = "0.20230206"; + version = "0.20230630"; src = fetchFromGitLab { owner = "ubports"; repo = "development/core/qqc2-suru-style"; - rev = finalAttrs.version; - hash = "sha256-ZLPuXnhlR1IDhGnprcdWHLnOeS6ZzVkFhQML0iKMjO8="; + rev = "refs/tags/${finalAttrs.version}"; + hash = "sha256-kAgHsNWwUWxHg26bTMmlq8m9DR4+ob4pl/oUX7516hM="; }; # QMake can't find Qt modules from buildInputs strictDeps = false; - nativeBuildInputs = [ - qmake - ]; + nativeBuildInputs = [ qmake ]; buildInputs = [ qtdeclarative @@ -34,12 +33,16 @@ stdenv.mkDerivation (finalAttrs: { passthru.updateScript = gitUpdater { }; - meta = with lib; { + meta = { description = "Suru Style for QtQuick Controls 2"; homepage = "https://gitlab.com/ubports/development/core/qqc2-suru-style"; changelog = "https://gitlab.com/ubports/development/core/qqc2-suru-style/-/blob/${finalAttrs.version}/ChangeLog"; - license = with licenses; [ gpl2Plus lgpl3Only cc-by-sa-30 ]; - maintainers = teams.lomiri.members; - platforms = platforms.unix; + license = with lib.licenses; [ + gpl2Plus + lgpl3Only + cc-by-sa-30 + ]; + maintainers = lib.teams.lomiri.members; + platforms = lib.platforms.unix; }; }) diff --git a/pkgs/desktops/lomiri/services/content-hub/default.nix b/pkgs/desktops/lomiri/services/lomiri-content-hub/default.nix similarity index 56% rename from pkgs/desktops/lomiri/services/content-hub/default.nix rename to pkgs/desktops/lomiri/services/lomiri-content-hub/default.nix index a1fd99757844..dd2f6d3ab23e 100644 --- a/pkgs/desktops/lomiri/services/content-hub/default.nix +++ b/pkgs/desktops/lomiri/services/lomiri-content-hub/default.nix @@ -1,8 +1,6 @@ { stdenv , lib , fetchFromGitLab -, fetchpatch -, fetchpatch2 , gitUpdater , testers , cmake @@ -30,14 +28,14 @@ }: stdenv.mkDerivation (finalAttrs: { - pname = "content-hub"; - version = "1.1.1"; + pname = "lomiri-content-hub"; + version = "2.0.0"; src = fetchFromGitLab { owner = "ubports"; - repo = "development/core/content-hub"; + repo = "development/core/lomiri-content-hub"; rev = finalAttrs.version; - hash = "sha256-sQeyJV+Wc6PHKGIefl/dfU06XqTdICsn+Xamjx3puiI="; + hash = "sha256-eA5oCoAZB7fWyWm0Sy6wXh0EW+h76bdfJ2dotr7gUC0="; }; outputs = [ @@ -46,44 +44,6 @@ stdenv.mkDerivation (finalAttrs: { "examples" ]; - patches = [ - # Remove when version > 1.1.1 - (fetchpatch { - name = "0001-content-hub-Migrate-to-GetConnectionCredentials.patch"; - url = "https://gitlab.com/ubports/development/core/content-hub/-/commit/9ec9df32f77383eec7994d8e3e6961531bc8464d.patch"; - hash = "sha256-14dZosMTMa1FDGEMuil0r1Hz6vn+L9XC83NMAqC7Ol8="; - }) - - # Remove when https://gitlab.com/ubports/development/core/content-hub/-/merge_requests/34 merged & in release - (fetchpatch { - name = "0002-content-hub-import-Lomiri-Content-CMakeLists-Drop-qt-argument-to-qmlplugindump.patch"; - url = "https://gitlab.com/ubports/development/core/content-hub/-/commit/63a4baf1469de31c4fd50c69ed85d061f5e8e80a.patch"; - hash = "sha256-T+6T9lXne6AhDFv9d7L8JNwdl8f0wjDmvSoNVPkHza4="; - }) - - # Remove when version > 1.1.1 - # fetchpatch2 due to renames, https://github.com/NixOS/nixpkgs/issues/32084 - (fetchpatch2 { - name = "0003-content-hub-Add-more-better-GNUInstallDirs-variables-usage.patch"; - url = "https://gitlab.com/ubports/development/core/content-hub/-/commit/3c5ca4a8ec125e003aca78c14521b70140856c25.patch"; - hash = "sha256-kYN0eLwMyM/9yK+zboyEsoPKZMZ4SCXodVYsvkQr2F8="; - }) - - # Remove when version > 1.1.1 - (fetchpatch { - name = "0004-content-hub-Fix-generation-of-transfer_files-and-moc_test_harness.patch"; - url = "https://gitlab.com/ubports/development/core/content-hub/-/commit/68899c75e77e1f34176b8a550d52794413e5070f.patch"; - hash = "sha256-HAxePnzY/cL2c+o+Aw2N1pdr8rsbHGmRsH2EQkrBcHg="; - }) - - # Remove when https://gitlab.com/ubports/development/core/lomiri-content-hub/-/merge_requests/40 merged & in release - (fetchpatch { - name = "0006-content-hub-Fix-AppArmor-less-transfer.patch"; - url = "https://gitlab.com/ubports/development/core/content-hub/-/commit/b58e5c8babf00ad7c402555c96254ce0165adb9e.patch"; - hash = "sha256-a7x/0NiUBmmFlq96jkHyLCL0f5NIFh5JR/H+FQ/2GqI="; - }) - ]; - postPatch = '' substituteInPlace import/*/Content/CMakeLists.txt \ --replace-fail "\''${CMAKE_INSTALL_LIBDIR}/qt5/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}" @@ -163,7 +123,7 @@ stdenv.mkDerivation (finalAttrs: { moveToOutput share/applications/$exampleExe.desktop $examples done moveToOutput share/icons $examples - moveToOutput share/content-hub/peers $examples + moveToOutput share/lomiri-content-hub/peers $examples ''; postFixup = '' @@ -178,20 +138,20 @@ stdenv.mkDerivation (finalAttrs: { }; meta = { - description = "Content sharing/picking service"; + description = "Content sharing/picking service for the Lomiri desktop"; longDescription = '' - content-hub is a mediation service to let applications share content between them, + lomiri-content-hub is a mediation service to let applications share content between them, even if they are not running at the same time. ''; - homepage = "https://gitlab.com/ubports/development/core/content-hub"; - changelog = "https://gitlab.com/ubports/development/core/content-hub/-/blob/${finalAttrs.version}/ChangeLog"; + homepage = "https://gitlab.com/ubports/development/core/lomiri-content-hub"; + changelog = "https://gitlab.com/ubports/development/core/lomiri-content-hub/-/blob/${finalAttrs.version}/ChangeLog"; license = with lib.licenses; [ gpl3Only lgpl3Only ]; - mainProgram = "content-hub-service"; + mainProgram = "lomiri-content-hub-service"; maintainers = lib.teams.lomiri.members; platforms = lib.platforms.linux; pkgConfigModules = [ - "libcontent-hub" - "libcontent-hub-glib" + "liblomiri-content-hub" + "liblomiri-content-hub-glib" ]; }; }) diff --git a/pkgs/desktops/lomiri/services/mediascanner2/default.nix b/pkgs/desktops/lomiri/services/mediascanner2/default.nix index 28dc57c3d31b..3a1fbe01221a 100644 --- a/pkgs/desktops/lomiri/services/mediascanner2/default.nix +++ b/pkgs/desktops/lomiri/services/mediascanner2/default.nix @@ -1,39 +1,40 @@ -{ stdenv -, lib -, fetchFromGitLab -, gitUpdater -, testers -, boost -, cmake -, cmake-extras -, dbus -, dbus-cpp -, gdk-pixbuf -, glib -, gst_all_1 -, gtest -, libapparmor -, libexif -, pkg-config -, properties-cpp -, qtbase -, qtdeclarative -, shared-mime-info -, sqlite -, taglib -, udisks -, wrapQtAppsHook +{ + stdenv, + lib, + fetchFromGitLab, + gitUpdater, + testers, + boost, + cmake, + cmake-extras, + dbus, + dbus-cpp, + gdk-pixbuf, + glib, + gst_all_1, + gtest, + libapparmor, + libexif, + pkg-config, + properties-cpp, + qtbase, + qtdeclarative, + shared-mime-info, + sqlite, + taglib, + udisks, + wrapQtAppsHook, }: stdenv.mkDerivation (finalAttrs: { pname = "mediascanner2"; - version = "0.116"; + version = "0.117"; src = fetchFromGitLab { owner = "ubports"; repo = "development/core/mediascanner2"; rev = finalAttrs.version; - hash = "sha256-aRNT3DSPxz/vf6gqipf5Qc5zyDGFMHWONevAslwOrCY="; + hash = "sha256-e1vDPnIIfevXj9ODEEKJ2y4TiU0H+08aTf2vU+emdQk="; }; outputs = [ @@ -43,11 +44,7 @@ stdenv.mkDerivation (finalAttrs: { postPatch = '' substituteInPlace src/qml/MediaScanner.*/CMakeLists.txt \ - --replace "\''${CMAKE_INSTALL_LIBDIR}/qt5/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}" - - # Lomiri desktop doesn't identify itself under Canonical's name anymore - substituteInPlace src/daemon/scannerdaemon.cc \ - --replace 'Unity8' 'Lomiri' + --replace-fail "\''${CMAKE_INSTALL_LIBDIR}/qt5/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}" ''; strictDeps = true; @@ -59,35 +56,33 @@ stdenv.mkDerivation (finalAttrs: { wrapQtAppsHook ]; - buildInputs = [ - boost - cmake-extras - dbus - dbus-cpp - gdk-pixbuf - glib - libapparmor - libexif - properties-cpp - qtbase - qtdeclarative - shared-mime-info - sqlite - taglib - udisks - ] ++ (with gst_all_1; [ - gstreamer - gst-plugins-base - gst-plugins-good - ]); + buildInputs = + [ + boost + cmake-extras + dbus + dbus-cpp + gdk-pixbuf + glib + libapparmor + libexif + properties-cpp + qtbase + qtdeclarative + shared-mime-info + sqlite + taglib + udisks + ] + ++ (with gst_all_1; [ + gstreamer + gst-plugins-base + gst-plugins-good + ]); - checkInputs = [ - gtest - ]; + checkInputs = [ gtest ]; - cmakeFlags = [ - "-DENABLE_TESTS=${lib.boolToString finalAttrs.finalPackage.doCheck}" - ]; + cmakeFlags = [ (lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck) ]; doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform; @@ -108,15 +103,13 @@ stdenv.mkDerivation (finalAttrs: { updateScript = gitUpdater { }; }; - meta = with lib; { + meta = { description = "Media scanner service & access library"; homepage = "https://gitlab.com/ubports/development/core/mediascanner2"; - license = licenses.gpl3Only; - maintainers = teams.lomiri.members; + license = lib.licenses.gpl3Only; + maintainers = lib.teams.lomiri.members; mainProgram = "mediascanner-service-2.0"; - platforms = platforms.linux; - pkgConfigModules = [ - "mediascanner-2.0" - ]; + platforms = lib.platforms.linux; + pkgConfigModules = [ "mediascanner-2.0" ]; }; }) diff --git a/pkgs/development/compilers/vlang/default.nix b/pkgs/development/compilers/vlang/default.nix index 267f473274a5..62077a7e4f85 100644 --- a/pkgs/development/compilers/vlang/default.nix +++ b/pkgs/development/compilers/vlang/default.nix @@ -1,7 +1,7 @@ { lib, stdenv, fetchFromGitHub, glfw, freetype, openssl, makeWrapper, upx, boehmgc, xorg, binaryen, darwin }: let - version = "0.4.4"; + version = "0.4.8"; ptraceSubstitution = '' #include #include @@ -10,12 +10,12 @@ let # So we fix its rev to correspond to the V version. vc = stdenv.mkDerivation { pname = "v.c"; - version = "0.4.4"; + version = "0.4.8"; src = fetchFromGitHub { owner = "vlang"; repo = "vc"; - rev = "66eb8eae253d31fa5622e35a69580d9ad8efcccb"; - hash = "sha256-YGlzr0Qq7+NtrnbaFPBuclzjOZBOnTe3BOhsuwdsQ5c="; + rev = "54beb1f416b404a06b894e6883a0e2368d80bc3e"; + hash = "sha256-hofganRnWPRCjjsItwF2BKam4dCqzMCrjgWSjZLSrlo="; }; # patch the ptrace reference for darwin @@ -46,7 +46,7 @@ stdenv.mkDerivation { owner = "vlang"; repo = "v"; rev = version; - hash = "sha256-Aqecw8K+igHx5R34lQiWtdNfeGn+umcjcS4w0vXgpLM="; + hash = "sha256-V4f14TcuKW8unzlo6i/tE6MzSb3HAll478OU2LxiTPQ="; }; propagatedBuildInputs = [ glfw freetype openssl ] diff --git a/pkgs/development/libraries/gstreamer/icamerasrc/default.nix b/pkgs/development/libraries/gstreamer/icamerasrc/default.nix index 68485f7e7454..4bbb20c6e41a 100644 --- a/pkgs/development/libraries/gstreamer/icamerasrc/default.nix +++ b/pkgs/development/libraries/gstreamer/icamerasrc/default.nix @@ -6,17 +6,18 @@ , gst_all_1 , ipu6-camera-hal , libdrm +, libva }: -stdenv.mkDerivation { +stdenv.mkDerivation rec { pname = "icamerasrc-${ipu6-camera-hal.ipuVersion}"; - version = "unstable-2023-10-23"; + version = "unstable-2024-09-29"; src = fetchFromGitHub { owner = "intel"; repo = "icamerasrc"; - rev = "528a6f177732def4d5ebc17927220d8823bc8fdc"; - hash = "sha256-Ezcm5OpF/NKvJf5sFeJyvNc2Uq0166GukC9MuNUV2Fs="; + rev = "refs/tags/20240926_1446"; + hash = "sha256-BpIZxkPmSVKqPntwBJjGmCaMSYFCEZHJa4soaMAJRWE="; }; nativeBuildInputs = [ @@ -34,8 +35,10 @@ stdenv.mkDerivation { buildInputs = [ gst_all_1.gstreamer gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-bad ipu6-camera-hal libdrm + libva ]; NIX_CFLAGS_COMPILE = [ diff --git a/pkgs/development/libraries/ipu6-camera-hal/default.nix b/pkgs/development/libraries/ipu6-camera-hal/default.nix index 9c6cc585f9b3..0bbed96ca3af 100644 --- a/pkgs/development/libraries/ipu6-camera-hal/default.nix +++ b/pkgs/development/libraries/ipu6-camera-hal/default.nix @@ -11,6 +11,7 @@ , ipu6-camera-bins , libtool , gst_all_1 +, libdrm # Pick one of # - ipu6 (Tiger Lake) @@ -27,13 +28,13 @@ let in stdenv.mkDerivation { pname = "${ipuVersion}-camera-hal"; - version = "unstable-2023-09-25"; + version = "unstable-2024-09-29"; src = fetchFromGitHub { owner = "intel"; repo = "ipu6-camera-hal"; - rev = "9fa05a90886d399ad3dda4c2ddc990642b3d20c9"; - hash = "sha256-yS1D7o6dsQ4FQkjfwcisOxcP7Majb+4uQ/iW5anMb5c="; + rev = "f98f72b156563fe8373e4f8d017a9f609676bb33"; + hash = "sha256-zVcgKW7/GHYd1oMvsaI77cPyj3G68dL+OXBJDz5+Td4="; }; nativeBuildInputs = [ @@ -41,12 +42,16 @@ stdenv.mkDerivation { pkg-config ]; - PKG_CONFIG_PATH = "${lib.makeLibraryPath [ ipu6-camera-bins ]}/${ipuTarget}/pkgconfig"; cmakeFlags = [ "-DIPU_VER=${ipuVersion}" + "-DTARGET_SUFFIX=-${ipuVersion}" # missing libiacss "-DUSE_PG_LITE_PIPE=ON" + "-DCMAKE_BUILD_TYPE=Release" + "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}" + "-DCMAKE_INSTALL_SUB_PATH=${ipuTarget}" + "-DCMAKE_INSTALL_LIBDIR=lib" ]; NIX_CFLAGS_COMPILE = [ @@ -61,21 +66,28 @@ stdenv.mkDerivation { libtool gst_all_1.gstreamer gst_all_1.gst-plugins-base + libdrm ]; postPatch = '' substituteInPlace src/platformdata/PlatformData.h \ - --replace '/usr/share/' "${placeholder "out"}/share/" + --replace '/usr/share/' "${placeholder "out"}/share/" \ + --replace '#define CAMERA_DEFAULT_CFG_PATH "/etc/camera/"' '#define CAMERA_DEFAULT_CFG_PATH "${placeholder "out"}/etc/camera/"' + ''; + + postInstall = '' + mkdir -p $out/include/${ipuTarget}/ + cp -r $src/include $out/include/${ipuTarget}/libcamhal ''; postFixup = '' for lib in $out/lib/*.so; do - patchelf --add-rpath "${lib.makeLibraryPath [ ipu6-camera-bins ]}/${ipuTarget}" $lib + patchelf --add-rpath "${ipu6-camera-bins}/lib" $lib done ''; passthru = { - inherit ipuVersion; + inherit ipuVersion ipuTarget; }; meta = with lib; { diff --git a/pkgs/development/python-modules/aiortm/default.nix b/pkgs/development/python-modules/aiortm/default.nix index 1760e816fc05..b02e418a1ddb 100644 --- a/pkgs/development/python-modules/aiortm/default.nix +++ b/pkgs/development/python-modules/aiortm/default.nix @@ -19,7 +19,7 @@ buildPythonPackage rec { pname = "aiortm"; - version = "0.9.11"; + version = "0.9.12"; pyproject = true; disabled = pythonOlder "3.12"; @@ -28,7 +28,7 @@ buildPythonPackage rec { owner = "MartinHjelmare"; repo = "aiortm"; rev = "refs/tags/v${version}"; - hash = "sha256-uP+nQZA6ZdCAy3E4a1jcm+3X1Fe6n+7v/6unX423jfw="; + hash = "sha256-PTg+/Iqjj5V5XJNDAJva/BvaOl6qyjeqrjxy0RLAvEc="; }; pythonRelaxDeps = [ "typer" ]; diff --git a/pkgs/development/python-modules/azure-mgmt-billing/default.nix b/pkgs/development/python-modules/azure-mgmt-billing/default.nix index db243f585759..dfef1554ecc4 100644 --- a/pkgs/development/python-modules/azure-mgmt-billing/default.nix +++ b/pkgs/development/python-modules/azure-mgmt-billing/default.nix @@ -1,45 +1,46 @@ { lib, - buildPythonPackage, - fetchPypi, - msrestazure, azure-common, azure-mgmt-core, - azure-mgmt-nspkg, + buildPythonPackage, + fetchPypi, + isodate, + pythonOlder, + setuptools, + typing-extensions, }: buildPythonPackage rec { pname = "azure-mgmt-billing"; - version = "6.0.0"; # pypi's 0.2.0 doesn't build ootb - format = "setuptools"; + version = "7.0.0"; + pyproject = true; + + disabled = pythonOlder "3.8"; src = fetchPypi { - inherit pname version; - sha256 = "d4f5c5a4188a456fe1eb32b6c45f55ca2069c74be41eb76921840b39f2f5c07f"; - extension = "zip"; + pname = "azure_mgmt_billing"; + inherit version; + hash = "sha256-jgplxlEQtTpCk35b7WrgDvydYgaXLZa/1KdOgMhcLXs="; }; - propagatedBuildInputs = [ - msrestazure + build-system = [ setuptools ]; + + dependencies = [ azure-common azure-mgmt-core - azure-mgmt-nspkg + isodate + typing-extensions ]; - preBuild = '' - rm -rf azure_bdist_wheel.py - substituteInPlace setup.cfg \ - --replace "azure-namespace-package = azure-mgmt-nspkg" "" - ''; - pythonNamespaces = [ "azure.mgmt" ]; - # has no tests + # Module has no tests doCheck = false; meta = with lib; { description = "This is the Microsoft Azure Billing Client Library"; - homepage = "https://github.com/Azure/azure-sdk-for-python"; + homepage = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/billing/azure-mgmt-billing"; + changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-mgmt-billing_${version}/sdk/billing/azure-mgmt-billing/CHANGELOG.md"; license = licenses.mit; maintainers = with maintainers; [ maxwilson ]; }; diff --git a/pkgs/development/python-modules/azure-storage-file-share/default.nix b/pkgs/development/python-modules/azure-storage-file-share/default.nix index 5169b9a73366..04e4ee8bf5a8 100644 --- a/pkgs/development/python-modules/azure-storage-file-share/default.nix +++ b/pkgs/development/python-modules/azure-storage-file-share/default.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "azure-storage-file-share"; - version = "12.18.0"; + version = "12.19.0"; pyproject = true; disabled = pythonOlder "3.8"; @@ -20,7 +20,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "azure_storage_file_share"; inherit version; - hash = "sha256-CoHa7l4TWYrM3jxzsa7Mxu39zsXpV79AFQwGIvuV3HY="; + hash = "sha256-6npBdNxsUvUKyMMPIoFZ/MNnXR+Lp3G40O/LwxB0Ang="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/catboost/default.nix b/pkgs/development/python-modules/catboost/default.nix index 98e4f0869ccb..d0fc77b70038 100644 --- a/pkgs/development/python-modules/catboost/default.nix +++ b/pkgs/development/python-modules/catboost/default.nix @@ -3,15 +3,18 @@ buildPythonPackage, catboost, python, + + # build-system + setuptools, + + # dependencies graphviz, matplotlib, numpy, pandas, plotly, scipy, - setuptools, six, - wheel, }: buildPythonPackage rec { @@ -21,16 +24,15 @@ buildPythonPackage rec { src meta ; - format = "pyproject"; + pyproject = true; sourceRoot = "${src.name}/catboost/python-package"; - nativeBuildInputs = [ + build-system = [ setuptools - wheel ]; - propagatedBuildInputs = [ + dependencies = [ graphviz matplotlib numpy diff --git a/pkgs/development/python-modules/connexion/default.nix b/pkgs/development/python-modules/connexion/default.nix index a43fccb0170e..bd19ae31caa2 100644 --- a/pkgs/development/python-modules/connexion/default.nix +++ b/pkgs/development/python-modules/connexion/default.nix @@ -37,18 +37,18 @@ buildPythonPackage rec { version = "3.1.0"; pyproject = true; - disabled = pythonOlder "3.6"; + disabled = pythonOlder "3.8"; src = fetchFromGitHub { owner = "spec-first"; - repo = pname; + repo = "connexion"; rev = "refs/tags/${version}"; hash = "sha256-rngQDU9kXw/Z+Al0SCVnWN8xnphueTtZ0+xPBR5MbEM="; }; - nativeBuildInputs = [ poetry-core ]; + build-system = [ poetry-core ]; - propagatedBuildInputs = [ + dependencies = [ asgiref httpx inflection @@ -80,6 +80,10 @@ buildPythonPackage rec { pythonImportsCheck = [ "connexion" ]; disabledTests = [ + "test_build_example" + "test_mock_resolver_no_example" + # Tests require network access + "test_remote_api" # AssertionError "test_headers" # waiter.acquire() deadlock @@ -91,9 +95,10 @@ buildPythonPackage rec { meta = with lib; { description = "Swagger/OpenAPI First framework on top of Flask"; - mainProgram = "connexion"; homepage = "https://github.com/spec-first/connexion"; changelog = "https://github.com/spec-first/connexion/releases/tag/${version}"; license = licenses.asl20; + maintainers = [ ]; + mainProgram = "connexion"; }; } diff --git a/pkgs/development/python-modules/debugpy/default.nix b/pkgs/development/python-modules/debugpy/default.nix index 4bf451d834be..cce50d3b7e51 100644 --- a/pkgs/development/python-modules/debugpy/default.nix +++ b/pkgs/development/python-modules/debugpy/default.nix @@ -22,7 +22,7 @@ buildPythonPackage rec { pname = "debugpy"; - version = "1.8.6"; + version = "1.8.7"; format = "setuptools"; disabled = pythonOlder "3.8"; @@ -31,7 +31,7 @@ buildPythonPackage rec { owner = "microsoft"; repo = "debugpy"; rev = "refs/tags/v${version}"; - hash = "sha256-kkFNIJ3QwojwgiRAOmBiWIg5desxOKTmo9YH1Qup6fI="; + hash = "sha256-JFVhEAfdSfl2ACfXLMdoO/1otdif9bHialdQXucTM5A="; }; patches = diff --git a/pkgs/development/python-modules/dissect-target/default.nix b/pkgs/development/python-modules/dissect-target/default.nix index 409f8444c33d..259d2e7d077d 100644 --- a/pkgs/development/python-modules/dissect-target/default.nix +++ b/pkgs/development/python-modules/dissect-target/default.nix @@ -44,7 +44,7 @@ buildPythonPackage rec { pname = "dissect-target"; - version = "3.18"; + version = "3.19"; pyproject = true; disabled = pythonOlder "3.9"; @@ -53,7 +53,7 @@ buildPythonPackage rec { owner = "fox-it"; repo = "dissect.target"; rev = "refs/tags/${version}"; - hash = "sha256-jR+f4t0QXmm007lrGdMyF9vFa3NW35gZxs7pe9sdjfg="; + hash = "sha256-D5YgCAKcnPyBrZTpcSuvKfWfIIcCxKGxn+mj8Jqzmws="; }; postPatch = '' @@ -138,6 +138,8 @@ buildPythonPackage rec { "test_systemd_basic_syntax" "test_target_cli_unicode_argparse" "test_target_query" + "test_target_info" + "test_yara" ] ++ # test is broken on Darwin diff --git a/pkgs/development/python-modules/dissect-volume/default.nix b/pkgs/development/python-modules/dissect-volume/default.nix index 3a094cbd7880..0fb8e92a7cfe 100644 --- a/pkgs/development/python-modules/dissect-volume/default.nix +++ b/pkgs/development/python-modules/dissect-volume/default.nix @@ -12,24 +12,24 @@ buildPythonPackage rec { pname = "dissect-volume"; - version = "3.11"; + version = "3.12"; pyproject = true; - disabled = pythonOlder "3.11"; + disabled = pythonOlder "3.12"; src = fetchFromGitHub { owner = "fox-it"; repo = "dissect.volume"; rev = "refs/tags/${version}"; - hash = "sha256-eHIInoquuyukKuPVvVB6qtovx1NloHHVGKfFBHxVd+o="; + hash = "sha256-IhG2FZdCmYrGxHc2i+ERhphxP/uGgOY67epHEWnQXb0="; }; - nativeBuildInputs = [ + build-system = [ setuptools setuptools-scm ]; - propagatedBuildInputs = [ + dependencies = [ dissect-cstruct dissect-util ]; @@ -44,6 +44,7 @@ buildPythonPackage rec { "test_dm_thin" "test_lvm_mirro" "test_lvm_thin" + "test_lvm" "test_md_raid0_zones" "test_md_read" ]; diff --git a/pkgs/development/python-modules/flow-record/default.nix b/pkgs/development/python-modules/flow-record/default.nix index b92660587549..268c7387502b 100644 --- a/pkgs/development/python-modules/flow-record/default.nix +++ b/pkgs/development/python-modules/flow-record/default.nix @@ -1,30 +1,35 @@ { lib, buildPythonPackage, + duckdb, + elastic-transport, elasticsearch, fastavro, fetchFromGitHub, + httpx, lz4, + maxminddb, msgpack, pytest7CheckHook, pythonOlder, - setuptools, + pytz, setuptools-scm, + setuptools, zstandard, }: buildPythonPackage rec { pname = "flow-record"; - version = "3.15"; + version = "3.17"; pyproject = true; - disabled = pythonOlder "3.8"; + disabled = pythonOlder "3.9"; src = fetchFromGitHub { owner = "fox-it"; repo = "flow.record"; rev = "refs/tags/${version}"; - hash = "sha256-j5N66p7feB9Ae+Fu5RhVzh8XCHiq55jJMg0Fe+C6Jvg="; + hash = "sha256-fFP2bdO4wTR9Y+9no3FabtVmLicTD76Jw5aWDMPOB0w="; }; build-system = [ @@ -39,11 +44,18 @@ buildPythonPackage rec { lz4 zstandard ]; + duckdb = [ + duckdb + pytz + ]; elastic = [ elasticsearch ]; + geoip = [ maxminddb ]; avro = [ fastavro ] ++ fastavro.optional-dependencies.snappy; + splunk = [ httpx ]; }; nativeCheckInputs = [ + elastic-transport pytest7CheckHook ] ++ lib.flatten (builtins.attrValues optional-dependencies); diff --git a/pkgs/development/python-modules/hypothesis-auto/default.nix b/pkgs/development/python-modules/hypothesis-auto/default.nix index eca2ca101457..13457576cdb4 100644 --- a/pkgs/development/python-modules/hypothesis-auto/default.nix +++ b/pkgs/development/python-modules/hypothesis-auto/default.nix @@ -13,7 +13,7 @@ buildPythonPackage rec { pname = "hypothesis-auto"; version = "1.1.5"; - format = "pyproject"; + pyproject = true; disabled = pythonOlder "3.6"; @@ -23,14 +23,22 @@ buildPythonPackage rec { hash = "sha256-U0vcOB9jXmUV5v2IwybVu2arY1FpPnKkP7m2kbD1kRw="; }; - nativeBuildInputs = [ poetry-core ]; - - propagatedBuildInputs = [ - pydantic - hypothesis - pytest + pythonRelaxDeps = [ + "hypothesis" + "pydantic" ]; + build-system = [ poetry-core ]; + + dependencies = [ + hypothesis + pydantic + ]; + + optional-dependencies = { + pytest = [ pytest ]; + }; + pythonImportsCheck = [ "hypothesis_auto" ]; nativeCheckInputs = [ pytestCheckHook ]; @@ -38,6 +46,7 @@ buildPythonPackage rec { meta = with lib; { description = "Enables fully automatic tests for type annotated functions"; homepage = "https://github.com/timothycrosley/hypothesis-auto/"; + changelog = "https://github.com/timothycrosley/hypothesis-auto/blob/master/CHANGELOG.md"; license = licenses.mit; maintainers = [ ]; }; diff --git a/pkgs/development/python-modules/import-expression/default.nix b/pkgs/development/python-modules/import-expression/default.nix index 369495b96e29..6be9824a37a1 100644 --- a/pkgs/development/python-modules/import-expression/default.nix +++ b/pkgs/development/python-modules/import-expression/default.nix @@ -3,38 +3,43 @@ buildPythonPackage, fetchPypi, pytestCheckHook, - astunparse, + pythonOlder, setuptools, + typing-extensions, }: + buildPythonPackage rec { pname = "import-expression"; version = "2.0.0"; pyproject = true; + disabled = pythonOlder "3.9"; + src = fetchPypi { - inherit version; pname = "import_expression"; + inherit version; hash = "sha256-Biw7dIOPKbDcqYJSCyeqC/seREcVihSZuaKNFfgjTew="; }; build-system = [ setuptools ]; - dependencies = [ astunparse ]; + + dependencies = [ typing-extensions ]; + nativeCheckInputs = [ pytestCheckHook ]; + pytestFlagsArray = [ "tests.py" ]; - pythonImportsCheck = [ - "import_expression" - "import_expression._codec" - ]; + pythonImportsCheck = [ "import_expression" ]; meta = { description = "Transpiles a superset of python to allow easy inline imports"; homepage = "https://github.com/ioistired/import-expression-parser"; + changelog = "https://github.com/ioistired/import-expression/releases/tag/v${version}"; license = with lib.licenses; [ mit psfl ]; - mainProgram = "import-expression"; maintainers = with lib.maintainers; [ ]; + mainProgram = "import-expression"; }; } diff --git a/pkgs/development/python-modules/jalali-core/default.nix b/pkgs/development/python-modules/jalali-core/default.nix new file mode 100644 index 000000000000..69c613d0417c --- /dev/null +++ b/pkgs/development/python-modules/jalali-core/default.nix @@ -0,0 +1,35 @@ +{ + lib, + buildPythonPackage, + fetchPypi, + pythonOlder, + setuptools, +}: + +buildPythonPackage rec { + pname = "jalali-core"; + version = "1.0.0"; + pyproject = true; + + disabled = pythonOlder "3.8"; + + src = fetchPypi { + pname = "jalali_core"; + inherit version; + hash = "sha256-9Ch8cMYwMj3PCjqybfkFuk1FHiMKwfZbO7L3d5eJSis="; + }; + + build-system = [ setuptools ]; + + # Module has no tests + doCheck = false; + + pythonImportsCheck = [ "jalali_core" ]; + + meta = { + description = "Module to convert Gregorian to Jalali and inverse dates"; + homepage = "https://pypi.org/project/jalali-core/"; + license = lib.licenses.lgpl2Only; + maintainers = with lib.maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/jdatetime/default.nix b/pkgs/development/python-modules/jdatetime/default.nix index 553500c47be6..acc5dca6a825 100644 --- a/pkgs/development/python-modules/jdatetime/default.nix +++ b/pkgs/development/python-modules/jdatetime/default.nix @@ -2,29 +2,33 @@ lib, buildPythonPackage, fetchPypi, - six, + jalali-core, pythonOlder, + setuptools, }: buildPythonPackage rec { pname = "jdatetime"; version = "5.0.0"; - format = "setuptools"; + pyproject = true; - disabled = pythonOlder "3.7"; + disabled = pythonOlder "3.8"; src = fetchPypi { inherit pname version; hash = "sha256-LMYD2RPA2OMokoRU09KVJhywN+mVAif2fJYpq0cQ/fk="; }; - propagatedBuildInputs = [ six ]; + build-system = [ setuptools ]; + + dependencies = [ jalali-core ]; pythonImportsCheck = [ "jdatetime" ]; meta = with lib; { description = "Jalali datetime binding"; homepage = "https://github.com/slashmili/python-jalali"; + changelog = "https://github.com/slashmili/python-jalali/blob/v${version}/CHANGELOG.md"; license = licenses.psfl; maintainers = [ ]; }; diff --git a/pkgs/development/python-modules/pylint-django/default.nix b/pkgs/development/python-modules/pylint-django/default.nix index 5cf7838dea18..170fb0af1d60 100644 --- a/pkgs/development/python-modules/pylint-django/default.nix +++ b/pkgs/development/python-modules/pylint-django/default.nix @@ -14,21 +14,21 @@ buildPythonPackage rec { pname = "pylint-django"; - version = "2.5.4"; + version = "2.6.0"; pyproject = true; - disabled = pythonOlder "3.7"; + disabled = pythonOlder "3.9"; src = fetchFromGitHub { owner = "PyCQA"; repo = "pylint-django"; rev = "refs/tags/v${version}"; - hash = "sha256-MNgu3LvFoohXA+JzUiHIaYFw0ssEe+H5T8Ea56LcGuI="; + hash = "sha256-Rnty8ryKd5PxFFVYcvB8p9VS3qlHCprxR8+/ySY5qC8="; }; - nativeBuildInputs = [ poetry-core ]; + build-system = [ poetry-core ]; - propagatedBuildInputs = [ pylint-plugin-utils ]; + dependencies = [ pylint-plugin-utils ]; optional-dependencies = { with_django = [ django ]; diff --git a/pkgs/development/python-modules/tableauserverclient/default.nix b/pkgs/development/python-modules/tableauserverclient/default.nix index 032b4e189b70..910fd59d0683 100644 --- a/pkgs/development/python-modules/tableauserverclient/default.nix +++ b/pkgs/development/python-modules/tableauserverclient/default.nix @@ -9,19 +9,20 @@ requests, requests-mock, setuptools, + typing-extensions, versioneer, }: buildPythonPackage rec { pname = "tableauserverclient"; - version = "0.31"; + version = "0.33"; pyproject = true; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-e00/+yVKg7dGGq3Os+oWu/F93j5e9dnwWZxKwm+soqM="; + hash = "sha256-7yj/Ey3mIR2GZ0gtNkrrtoKEmuA5LihZlM9qPhbROQw="; }; postPatch = '' @@ -29,7 +30,10 @@ buildPythonPackage rec { rm versioneer.py ''; - pythonRelaxDeps = [ "urllib3" ]; + pythonRelaxDeps = [ + "defusedxml" + "urllib3" + ]; nativeBuildInputs = [ setuptools @@ -40,6 +44,7 @@ buildPythonPackage rec { defusedxml requests packaging + typing-extensions ]; nativeCheckInputs = [ diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix index 351c5788584a..1983157df1f6 100644 --- a/pkgs/misc/uboot/default.nix +++ b/pkgs/misc/uboot/default.nix @@ -28,10 +28,10 @@ }: let - defaultVersion = "2024.07"; + defaultVersion = "2024.10"; defaultSrc = fetchurl { url = "https://ftp.denx.de/pub/u-boot/u-boot-${defaultVersion}.tar.bz2"; - hash = "sha256-9ZHamrkO89az0XN2bQ3f+QxO1zMGgIl0hhF985DYPI8="; + hash = "sha256-so2vSsF+QxVjYweL9RApdYQTf231D87ZsS3zT2GpL7A="; }; # Dependencies for the tools need to be included as either native or cross, @@ -212,6 +212,14 @@ in { filesToInstall = ["u-boot-with-spl.kwb"]; }; + ubootCM3588NAS = buildUBoot { + defconfig = "cm3588-nas-rk3588_defconfig"; + extraMeta.platforms = [ "aarch64-linux" ]; + BL31 = "${armTrustedFirmwareRK3588}/bl31.elf"; + ROCKCHIP_TPL = rkbin.TPL_RK3588; + filesToInstall = [ "u-boot.itb" "idbloader.img" "u-boot-rockchip.bin" ]; + }; + ubootCubieboard2 = buildUBoot { defconfig = "Cubieboard2_defconfig"; extraMeta.platforms = ["armv7l-linux"]; @@ -442,6 +450,14 @@ in { filesToInstall = ["u-boot-sunxi-with-spl.bin"]; }; + ubootOrangePi3B = buildUBoot { + defconfig = "orangepi-3b-rk3566_defconfig"; + extraMeta.platforms = ["aarch64-linux"]; + ROCKCHIP_TPL = rkbin.TPL_RK3568; + BL31 = rkbin.BL31_RK3568; + filesToInstall = [ "u-boot.itb" "idbloader.img" "u-boot-rockchip.bin" "u-boot-rockchip-spi.bin" ]; + }; + ubootPcduino3Nano = buildUBoot { defconfig = "Linksprite_pcDuino3_Nano_defconfig"; extraMeta.platforms = ["armv7l-linux"]; diff --git a/pkgs/os-specific/linux/firmware/ipu6-camera-bins/default.nix b/pkgs/os-specific/linux/firmware/ipu6-camera-bins/default.nix index 4c3bede4fba2..873e0c971d67 100644 --- a/pkgs/os-specific/linux/firmware/ipu6-camera-bins/default.nix +++ b/pkgs/os-specific/linux/firmware/ipu6-camera-bins/default.nix @@ -6,15 +6,15 @@ , zlib }: -stdenv.mkDerivation (finalAttrs: { +stdenv.mkDerivation (finalAttrs: rec { pname = "ipu6-camera-bins"; - version = "unstable-2023-10-26"; + version = "unstable-2024-09-27"; src = fetchFromGitHub { - owner = "intel"; repo = "ipu6-camera-bins"; - rev = "af5ba0cb4a763569ac7514635013e9d870040bcf"; - hash = "sha256-y0pT5M7AKACbquQWLZPYpTPXRC5hipLNL61nhs+cst4="; + owner = "intel"; + rev = "98ca6f2a54d20f171628055938619972514f7a07"; + hash = "sha256-DAjAzHMqX41mrfQVpDUJLw4Zjb9pz6Uy3TJjTGIkd6o="; }; nativeBuildInputs = [ @@ -33,13 +33,14 @@ stdenv.mkDerivation (finalAttrs: { include \ $out/ - install -m 0644 -D LICENSE $out/share/doc/LICENSE + # There is no LICENSE file in the src + # install -m 0644 -D LICENSE $out/share/doc/LICENSE runHook postInstall ''; postFixup = '' - for pcfile in $out/lib/*/pkgconfig/*.pc; do + for pcfile in $out/lib/pkgconfig/*.pc; do substituteInPlace $pcfile \ --replace 'prefix=/usr' "prefix=$out" done diff --git a/pkgs/os-specific/linux/firmware/ivsc-firmware/default.nix b/pkgs/os-specific/linux/firmware/ivsc-firmware/default.nix index 9674cea2226f..931c85470821 100644 --- a/pkgs/os-specific/linux/firmware/ivsc-firmware/default.nix +++ b/pkgs/os-specific/linux/firmware/ivsc-firmware/default.nix @@ -5,13 +5,13 @@ stdenv.mkDerivation { pname = "ivsc-firmware"; - version = "unstable-2023-08-11"; + version = "unstable-2024-06-14"; src = fetchFromGitHub { owner = "intel"; repo = "ivsc-firmware"; - rev = "10c214fea5560060d387fbd2fb8a1af329cb6232"; - hash = "sha256-kEoA0yeGXuuB+jlMIhNm+SBljH+Ru7zt3PzGb+EPBPw="; + rev = "74a01d1208a352ed85d76f959c68200af4ead918"; + hash = "sha256-kHYfeftMtoOsOtVN6+XoDMDHP7uTEztbvjQLpCnKCh0="; }; dontBuild = true; diff --git a/pkgs/os-specific/linux/ipu6-drivers/default.nix b/pkgs/os-specific/linux/ipu6-drivers/default.nix index 304f27dfb43c..d6aafa53a52f 100644 --- a/pkgs/os-specific/linux/ipu6-drivers/default.nix +++ b/pkgs/os-specific/linux/ipu6-drivers/default.nix @@ -5,17 +5,19 @@ , kernel }: -stdenv.mkDerivation { +stdenv.mkDerivation rec { pname = "ipu6-drivers"; - version = "unstable-2023-11-24"; + version = "unstable-2024-10-10"; src = fetchFromGitHub { owner = "intel"; repo = "ipu6-drivers"; - rev = "07f0612eabfdc31df36f5e316a9eae115807804f"; - hash = "sha256-8JRZG6IKJT0qtoqJHm8641kSQMLc4Z+DRzK6FpL9Euk="; + rev = "118952d49ec598f56add50d93fa7bc3ac4a05643"; + hash = "sha256-xdMwINoKrdRHCPMpdZQn86ATi1dAXncMU39LLXS16mc="; }; + patches = [ "${src}/patches/0001-v6.10-IPU6-headers-used-by-PSYS.patch" ]; + postPatch = '' cp --no-preserve=mode --recursive --verbose \ ${ivsc-driver.src}/backport-include \ @@ -47,7 +49,7 @@ stdenv.mkDerivation { license = lib.licenses.gpl2Only; maintainers = [ ]; platforms = [ "x86_64-linux" ]; - # requires 6.1.7 https://github.com/intel/ipu6-drivers/pull/84 - broken = kernel.kernelOlder "6.1.7"; + # requires 6.10 + broken = kernel.kernelOlder "6.10"; }; } diff --git a/pkgs/os-specific/linux/ivsc-driver/default.nix b/pkgs/os-specific/linux/ivsc-driver/default.nix index 74ad354a984f..d9fa513ede87 100644 --- a/pkgs/os-specific/linux/ivsc-driver/default.nix +++ b/pkgs/os-specific/linux/ivsc-driver/default.nix @@ -6,13 +6,13 @@ stdenv.mkDerivation { pname = "ivsc-driver"; - version = "unstable-2023-11-09"; + version = "unstable-2024-09-18"; src = fetchFromGitHub { owner = "intel"; repo = "ivsc-driver"; - rev = "73a044d9633212fac54ea96cdd882ff5ab40573e"; - hash = "sha256-vE5pOtVqjiWovlUMSEoBKTk/qvs8K8T5oY2r7njh0wQ="; + rev = "10f440febe87419d5c82d8fe48580319ea135b54"; + hash = "sha256-jc+8geVquRtaZeIOtadCjY9F162Rb05ptE7dk8kuof0="; }; nativeBuildInputs = kernel.moduleBuildDependencies; diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix index 523bcb63d1e6..14800b895bd6 100644 --- a/pkgs/os-specific/linux/kernel/common-config.nix +++ b/pkgs/os-specific/linux/kernel/common-config.nix @@ -36,7 +36,11 @@ let # Currently only enabling Rust by default on kernel 6.12+, # which actually has features that use Rust that we want. defaultRust = lib.versionAtLeast version "6.12" && rustAvailable; - withRust = (forceRust || defaultRust) && kernelSupportsRust; + withRust = + assert lib.assertMsg (!(forceRust && !kernelSupportsRust)) '' + Kernels below 6.7 (the kernel being built is ${version}) don't support Rust. + ''; + (forceRust || defaultRust) && kernelSupportsRust; options = { diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix index 5544409a74d6..f69de86fd1a6 100644 --- a/pkgs/os-specific/linux/kernel/manual-config.nix +++ b/pkgs/os-specific/linux/kernel/manual-config.nix @@ -396,6 +396,9 @@ let requiredSystemFeatures = [ "big-parallel" ]; meta = { + # https://github.com/NixOS/nixpkgs/pull/345534#issuecomment-2391238381 + broken = withRust && lib.versionOlder version "6.12"; + description = "The Linux kernel" + (if kernelPatches == [] then "" else diff --git a/pkgs/os-specific/linux/zenmonitor/default.nix b/pkgs/os-specific/linux/zenmonitor/default.nix index bf9ddbc5fec5..837785c4d5a2 100644 --- a/pkgs/os-specific/linux/zenmonitor/default.nix +++ b/pkgs/os-specific/linux/zenmonitor/default.nix @@ -18,9 +18,9 @@ stdenv.mkDerivation rec { makeFlags = [ "PREFIX=${placeholder "out"}" ]; meta = with lib; { + inherit (src.meta) homepage; description = "Monitoring software for AMD Zen-based CPUs"; mainProgram = "zenmonitor"; - homepage = "https://github.com/Ta180m/zenmonitor3"; license = licenses.mit; platforms = [ "i686-linux" "x86_64-linux" ]; maintainers = with maintainers; [ alexbakker artturin ]; diff --git a/pkgs/servers/mastodon/default.nix b/pkgs/servers/mastodon/default.nix index 9bc4dd29d630..979dd74635c2 100644 --- a/pkgs/servers/mastodon/default.nix +++ b/pkgs/servers/mastodon/default.nix @@ -1,7 +1,6 @@ { lib, stdenv, nodejs-slim, bundlerEnv, nixosTests -, yarn, callPackage, ruby, writeShellScript -, fetchYarnDeps, fixup-yarn-lock -, brotli +, yarn-berry, callPackage, ruby, writeShellScript +, brotli, python3 # Allow building a fork or custom version of Mastodon: , pname ? "mastodon" @@ -28,12 +27,12 @@ stdenv.mkDerivation rec { pname = "${pname}-modules"; inherit src version; - yarnOfflineCache = fetchYarnDeps { - yarnLock = "${src}/yarn.lock"; + yarnOfflineCache = callPackage ./yarn.nix { + inherit version src; hash = yarnHash; }; - nativeBuildInputs = [ fixup-yarn-lock nodejs-slim yarn mastodonGems mastodonGems.wrappedRuby brotli ]; + nativeBuildInputs = [ nodejs-slim yarn-berry mastodonGems mastodonGems.wrappedRuby brotli python3 ]; RAILS_ENV = "production"; NODE_ENV = "production"; @@ -42,29 +41,33 @@ stdenv.mkDerivation rec { runHook preBuild export HOME=$PWD - fixup-yarn-lock ~/yarn.lock - yarn config --offline set yarn-offline-mirror $yarnOfflineCache - yarn install --offline --frozen-lockfile --ignore-engines --ignore-scripts --no-progress + export YARN_ENABLE_TELEMETRY=0 + export npm_config_nodedir=${nodejs-slim} + export SECRET_KEY_BASE_DUMMY=1 + + mkdir -p ~/.yarn/berry + ln -s $yarnOfflineCache ~/.yarn/berry/cache + + yarn install --immutable --immutable-cache patchShebangs ~/bin patchShebangs ~/node_modules - # skip running yarn install - rm -rf ~/bin/yarn + bundle exec rails assets:precompile - OTP_SECRET=precompile_placeholder SECRET_KEY_BASE=precompile_placeholder \ - rails assets:precompile - yarn cache clean --offline + yarn cache clean --all rm -rf ~/node_modules/.cache + # Remove execute permissions + find ~/public/assets -type f ! -perm 0555 \ + -exec chmod 0444 {} ';' + # Create missing static gzip and brotli files - gzip --best --keep ~/public/assets/500.html - gzip --best --keep ~/public/packs/report.html - find ~/public/assets -maxdepth 1 -type f -name '.*.json' \ - -exec gzip --best --keep --force {} ';' - brotli --best --keep ~/public/packs/report.html - find ~/public/assets -type f -regextype posix-extended -iregex '.*\.(css|js|json|html)' \ + find ~/public/assets -type f -regextype posix-extended -iregex '.*\.(css|html|js|json|svg)' \ + -exec gzip --best --keep --force {} ';' \ -exec brotli --best --keep {} ';' + gzip --best --keep ~/public/packs/report.html + brotli --best --keep ~/public/packs/report.html runHook postBuild ''; @@ -101,13 +104,14 @@ stdenv.mkDerivation rec { done # Remove execute permissions - chmod 0444 public/emoji/*.svg + find public/emoji -type f ! -perm 0555 \ + -exec chmod 0444 {} ';' # Create missing static gzip and brotli files - find public -maxdepth 1 -type f -regextype posix-extended -iregex '.*\.(css|js|svg|txt|xml)' \ + find public -maxdepth 1 -type f -regextype posix-extended -iregex '.*\.(js|txt)' \ -exec gzip --best --keep --force {} ';' \ -exec brotli --best --keep {} ';' - find public/emoji -type f -name '.*.svg' \ + find public/emoji -type f -name '*.svg' \ -exec gzip --best --keep --force {} ';' \ -exec brotli --best --keep {} ';' ln -s assets/500.html.gz public/500.html.gz @@ -133,7 +137,8 @@ stdenv.mkDerivation rec { runHook preInstall mkdir -p $out - cp -r * $out/ + mv .{env*,ruby*} $out/ + mv * $out/ ln -s ${run-streaming} $out/run-streaming.sh runHook postInstall diff --git a/pkgs/servers/mastodon/gemset.nix b/pkgs/servers/mastodon/gemset.nix index 20be6e58e3d8..429393553e26 100644 --- a/pkgs/servers/mastodon/gemset.nix +++ b/pkgs/servers/mastodon/gemset.nix @@ -1,14 +1,14 @@ { actioncable = { - dependencies = ["actionpack" "activesupport" "nio4r" "websocket-driver"]; + dependencies = ["actionpack" "activesupport" "nio4r" "websocket-driver" "zeitwerk"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1c46q4ykf8cqcpzad7zhkrxjhvf92sil0185zvxwzhj95p1zp5vr"; + sha256 = "1g4g7r68h30iw7spypc7hvvd7w1vx05mysmijdy6vkr947hxyhw4"; type = "gem"; }; - version = "7.0.8.4"; + version = "7.1.4"; }; actionmailbox = { dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail" "net-imap" "net-pop" "net-smtp"]; @@ -16,10 +16,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0x100vq4rf2c5ndz8ai00hb5gsb9ax2xqc89dsfzzhxbpa9gs9ik"; + sha256 = "0vzkwsc7k43v5irpydrzrh4v9dmwikj9xcdafz21kvwh8903pgih"; type = "gem"; }; - version = "7.0.8.4"; + version = "7.1.4"; }; actionmailer = { dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "net-imap" "net-pop" "net-smtp" "rails-dom-testing"]; @@ -27,21 +27,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1hds7b6n7vsa64fmma7wl7x9mxscr89myfb13vxni5fcns1agwzr"; + sha256 = "09abzaywpzwnbkpdn8g340pi584k8lpcqzi63m7wahyyyairdqza"; type = "gem"; }; - version = "7.0.8.4"; + version = "7.1.4"; }; actionpack = { - dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"]; + dependencies = ["actionview" "activesupport" "nokogiri" "racc" "rack" "rack-session" "rack-test" "rails-dom-testing" "rails-html-sanitizer"]; groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "18k05a55i0xgyv60lx0m1psnyncn935j76ivbp9hssqpij00jj1f"; + sha256 = "0c72nzrs3jjag7xbawy8hzzxggmpfp4r23y6viril2xzxffqgy7m"; type = "gem"; }; - version = "7.0.8.4"; + version = "7.1.4"; }; actiontext = { dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "globalid" "nokogiri"]; @@ -49,10 +49,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1g54g1kjyrwv9g592gxfz7z6ksmj916l1cgkxk54zhywxf6gpn0y"; + sha256 = "14lvvaq994hihwb63jvdxbq03i5wgfk6llkibzsq1v0csphby1sx"; type = "gem"; }; - version = "7.0.8.4"; + version = "7.1.4"; }; actionview = { dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"]; @@ -60,10 +60,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "03rfynhj40270dqhkm4cyaphzb37b4fdiaqh9grvcfq760vx7ha5"; + sha256 = "0lrrb4r6p2wrdbjphkkd482h10hri77d1aj1ddhz3ynvbrkg0ay0"; type = "gem"; }; - version = "7.0.8.4"; + version = "7.1.4"; }; active_model_serializers = { dependencies = ["actionpack" "activemodel" "case_transform" "jsonapi-renderer"]; @@ -71,10 +71,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0xdp7cpj3yj3wl4vj0nqq44kzjavlxi1wq3cf9zp0whkir0ym0gy"; + sha256 = "13n1ipn0dg3k852xhfzdvkr1ljq76xvfnm79qzdix2ishiy1gphl"; type = "gem"; }; - version = "0.10.13"; + version = "0.10.14"; }; activejob = { dependencies = ["activesupport" "globalid"]; @@ -82,10 +82,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1b54didwsg5p8wn30qjwspzh97w7g07hrsdzr7wdrdly4zii7sr1"; + sha256 = "1xhb7hy7dxx5qy8hahdf2gpr65n0xisxrfapzd2g8czb59ammxk5"; type = "gem"; }; - version = "7.0.8.4"; + version = "7.1.4"; }; activemodel = { dependencies = ["activesupport"]; @@ -93,43 +93,43 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1mi5cppdmkzgr2z135ibs0bq71qndbnip0vfflz1n4j4hqnhjkpg"; + sha256 = "1dhhsiv2hk1jfqdxx9qqlmzhvshqjs9kqh13gl1jyzfhzmd0b38q"; type = "gem"; }; - version = "7.0.8.4"; + version = "7.1.4"; }; activerecord = { - dependencies = ["activemodel" "activesupport"]; + dependencies = ["activemodel" "activesupport" "timeout"]; groups = ["default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1pkv0jvvjc3grr0rvxni9b3j3hb22jaj0h70g476h9w54p0aljcb"; + sha256 = "1p9cch94h3wj71mldyk85657r4cpr9p3z55bwxqvpiby2fn6svc3"; type = "gem"; }; - version = "7.0.8.4"; + version = "7.1.4"; }; activestorage = { - dependencies = ["actionpack" "activejob" "activerecord" "activesupport" "marcel" "mini_mime"]; + dependencies = ["actionpack" "activejob" "activerecord" "activesupport" "marcel"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1qdqx20dqkg7iwzb8q5148x5sl9mr2063hxzy4i7i94af2d2vz6b"; + sha256 = "0ihbywjdp57mcnbx2150rpsx79f3pfv313d1zwsz0qwmzdcvpsr3"; type = "gem"; }; - version = "7.0.8.4"; + version = "7.1.4"; }; activesupport = { - dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"]; + dependencies = ["base64" "bigdecimal" "concurrent-ruby" "connection_pool" "drb" "i18n" "minitest" "mutex_m" "tzinfo"]; groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "15z11983ws5svibg6rky9k2mgd4d4chnvddyxfpgn81b81q70139"; + sha256 = "0cm2v3zkr58ljr1fswf67lkm8zwxr100qfdaxzzv46jlwmy1m3is"; type = "gem"; }; - version = "7.0.8.4"; + version = "7.1.4"; }; addressable = { dependencies = ["public_suffix"]; @@ -137,10 +137,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "05r1fwy487klqkya7vzia8hnklcxy4vr92m9dmni3prfwk6zpw33"; + sha256 = "0cl2qpvwiffym62z991ynks7imsm87qmgxf0yfsmlwzkgi9qcaa6"; type = "gem"; }; - version = "2.8.5"; + version = "2.8.7"; }; aes_key_wrap = { groups = ["default"]; @@ -152,17 +152,6 @@ }; version = "1.1.0"; }; - airbrussh = { - dependencies = ["sshkit"]; - groups = ["default" "development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0x55y3ynkda76pwnsvrrjlvxfcc7yn1irad8radll9c9cif41jqv"; - type = "gem"; - }; - version = "1.4.1"; - }; android_key_attestation = { groups = ["default"]; platforms = []; @@ -194,26 +183,15 @@ }; version = "2.4.2"; }; - attr_encrypted = { - dependencies = ["encryptor"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "034x6mbrv9apd83v99v9pm8vl3d17w5bbwws26gr4wv95fylmgnc"; - type = "gem"; - }; - version = "4.0.0"; - }; attr_required = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1g22axmi2rhhy7w8c3x6gppsawxqavbrnxpnmphh22fk7cwi0kh2"; + sha256 = "16fbwr6nmsn97n0a6k1nwbpyz08zpinhd6g7196lz1syndbgrszh"; type = "gem"; }; - version = "1.0.1"; + version = "1.0.2"; }; awrence = { groups = ["default"]; @@ -230,20 +208,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1pyis1nvnbjxk12a43xvgj2gv0mvp4cnkc1gzw0v1018r61399gz"; + sha256 = "0gvdg4yx4p9av2glmp7vsxhs0n8fj1ga9kq2xdb8f95j7b04qhzi"; type = "gem"; }; - version = "1.2.0"; + version = "1.3.0"; }; aws-partitions = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0m2kha6ip4ynhvl1l8z4vg0j96ngq4f2v6jl4j2y27m2kzmgcxz5"; + sha256 = "1pm4dxz3w1f5ksiid7bxdaxhz0rklci3zfyb4v1f6j9psa11cwh1"; type = "gem"; }; - version = "1.809.0"; + version = "1.978.0"; }; aws-sdk-core = { dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"]; @@ -251,10 +229,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0xjw9cf6ldbw50xi5ric8d63r8kybpsvaqxh2v6n7374hfady73i"; + sha256 = "0hm87r5ph1mi7n6b5y17hc54x38insbkgbflr7viqigbwy2slw3v"; type = "gem"; }; - version = "3.181.0"; + version = "3.209.0"; }; aws-sdk-kms = { dependencies = ["aws-sdk-core" "aws-sigv4"]; @@ -262,10 +240,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1zr5w2cjd895abyn7y5gifhq37bxcinssvdx2l1qmlkllbdxbwq0"; + sha256 = "1acx3bhqkhni3kbl7xnjdgy8raq5y7p0zyniq61bsihzkwcj7imh"; type = "gem"; }; - version = "1.71.0"; + version = "1.94.0"; }; aws-sdk-s3 = { dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"]; @@ -273,10 +251,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0yymj15nwnvam95lw5fxwxx7b6xm4hkj8z7byzvjmx9aji1x245m"; + sha256 = "0zpww3lxpjg8smmznz2nbx5hrpnkzflbasllxjwprkqr56rrrjap"; type = "gem"; }; - version = "1.133.0"; + version = "1.166.0"; }; aws-sigv4 = { dependencies = ["aws-eventstream"]; @@ -284,10 +262,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0z889c4c1w7wsjm3szg64ay5j51kjl4pdf94nlr1yks2rlanm7na"; + sha256 = "176zh13m1vhwgys0drlqiw79ljmmx84vva036shsb7rzr4yi36qm"; type = "gem"; }; - version = "1.6.0"; + version = "1.10.0"; }; azure-storage-blob = { dependencies = ["azure-storage-common" "nokogiri"]; @@ -312,14 +290,14 @@ version = "2.0.4"; }; base64 = { - groups = ["default" "development"]; + groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0cydk9p2cv25qysm0sn2pb97fcpz1isa7n3c8xm1gd99li8x6x8c"; + sha256 = "01qml0yilb9basf7is2614skjp8384h2pycfx86cr8023arfj98g"; type = "gem"; }; - version = "0.1.1"; + version = "0.2.0"; }; bcp47_spec = { groups = ["default"]; @@ -336,10 +314,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "048z3fvcknqx7ikkhrcrykxlqmf9bzc7l0y5h1cnvrc9n2qf0k8m"; + sha256 = "16a0g2q40biv93i1hch3gw8rbmhp77qnnifj1k0a6m7dng3zh444"; type = "gem"; }; - version = "3.1.18"; + version = "3.1.20"; }; better_errors = { dependencies = ["erubi" "rack" "rouge"]; @@ -352,26 +330,25 @@ }; version = "2.10.1"; }; - better_html = { - dependencies = ["actionview" "activesupport" "ast" "erubi" "parser" "smart_properties"]; - groups = ["default" "development"]; + bigdecimal = { + groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1y090dmgjxr3yzxi3pg5jgirkmyfdrmjhabmzmhg5i8ssiqr2gdz"; + sha256 = "1gi7zqgmqwi5lizggs1jhc3zlwaqayy9rx2ah80sxy24bbnng558"; type = "gem"; }; - version = "2.0.1"; + version = "3.1.8"; }; bindata = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "04y4zgh4bbcb8wmkxwfqg4saky1d1f3xw8z6yk543q13h8ky8rz5"; + sha256 = "08r67nglsqnxrbn803szf5bdnqhchhq8kf2by94f37fcl65wpp19"; type = "gem"; }; - version = "2.4.15"; + version = "2.5.0"; }; binding_of_caller = { dependencies = ["debug_inspector"]; @@ -379,20 +356,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "078n2dkpgsivcf0pr50981w95nfc2bsrp3wpf9wnxz1qsp8jbb9s"; + sha256 = "16mjj15ks5ws53v2y31hxcmf46d0qjdvdaadpk7xsij2zymh4a9b"; type = "gem"; }; - version = "1.0.0"; + version = "1.0.1"; }; blurhash = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "057afgqy73n8vm7k3cr4pbwm1hhqnm58lp4x7bgm5wzbs39m7xf8"; + sha256 = "1wni86h2mlb7sj51nq3iwsvkrzlaggls9xlf4p9dzr1ns79dphca"; type = "gem"; }; - version = "0.1.7"; + version = "0.1.8"; }; bootsnap = { dependencies = ["msgpack"]; @@ -400,20 +377,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1vcg52gwl64xhhal6kwk1pc01y1klzdlnv1awyk89kb91z010x7q"; + sha256 = "0mdgj9yw1hmx3xh2qxyjc31y8igmxzd9h0c245ay2zkz76pl4k5c"; type = "gem"; }; - version = "1.16.0"; + version = "1.18.4"; }; brakeman = { + dependencies = ["racc"]; groups = ["development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1gliwnyma9f1mpr928c79i36q51yl68dwjd3jgwvsyr4piiiqr1r"; + sha256 = "078syvjnnkbair5ffyvchxj9yd2c8215c1271kfh1gqsmaf70bl6"; type = "gem"; }; - version = "6.0.1"; + version = "6.2.1"; }; browser = { groups = ["default"]; @@ -441,10 +419,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr"; + sha256 = "0pw3r2lyagsxkm71bf44v5b74f7l9r7di22brbyji9fwz791hya9"; type = "gem"; }; - version = "3.2.4"; + version = "3.3.0"; }; bundler-audit = { dependencies = ["thor"]; @@ -452,65 +430,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0gdx0019vj04n1512shhdx7hwphzqmdpw4vva2k551nd47y1dixx"; + sha256 = "0j0h5cgnzk0ms17ssjkzfzwz65ggrs3lsp53a1j46p4616m1s1bk"; type = "gem"; }; - version = "0.9.1"; - }; - capistrano = { - dependencies = ["airbrussh" "i18n" "rake" "sshkit"]; - groups = ["development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "14pflh85rrs2l8k0m286j4vaab5vad2sfqq9dncqb31z05vy29mn"; - type = "gem"; - }; - version = "3.17.3"; - }; - capistrano-bundler = { - dependencies = ["capistrano"]; - groups = ["default" "development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "09rndb1fa9r7mhb2sc6p3k0pcarhg8mv0kfmvd1zdb0ciwwp7514"; - type = "gem"; - }; - version = "2.1.0"; - }; - capistrano-rails = { - dependencies = ["capistrano" "capistrano-bundler"]; - groups = ["development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "05lk7y4qyzadzzshjyhgfgx00ggqliq7n561wkx8m331wljv7kx7"; - type = "gem"; - }; - version = "1.6.3"; - }; - capistrano-rbenv = { - dependencies = ["capistrano" "sshkit"]; - groups = ["development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1x9m1i5zd0wx122zw3m40zprlmxk9d47bd6w61k81wr4qsvkk3rw"; - type = "gem"; - }; - version = "2.2.0"; - }; - capistrano-yarn = { - dependencies = ["capistrano"]; - groups = ["development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1zdg2s061vl5b8114n909mrjb2hc1qx0i4wqx9nacsrcjgyp07l9"; - type = "gem"; - }; - version = "2.0.2"; + version = "0.9.2"; }; capybara = { dependencies = ["addressable" "matrix" "mini_mime" "nokogiri" "rack" "rack-test" "regexp_parser" "xpath"]; @@ -518,10 +441,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "114qm5f5vhwaaw9rj1h2lcamh46zl13v1m18jiw68zl961gwmw6n"; + sha256 = "1vxfah83j6zpw3v5hic0j70h519nvmix2hbszmjwm8cfawhagns2"; type = "gem"; }; - version = "3.39.2"; + version = "3.40.0"; }; case_transform = { dependencies = ["activesupport"]; @@ -549,10 +472,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0cym7a0mrgf8wr27x07ka7fsjz3l7l9qiiyqra34f5k5ghira0c0"; + sha256 = "1c1dws56r7p8y363dhyikg7205z59a3bn4amnv2y488rrq8qm7ml"; type = "gem"; }; - version = "0.7.8"; + version = "0.7.9"; }; chewy = { dependencies = ["activesupport" "elasticsearch" "elasticsearch-dsl"]; @@ -560,10 +483,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0zca6v8i66jkxfdfjnn9xwg21pk95qn4ic8vzfvrx49d6sb8319y"; + sha256 = "0kgqj7hcs09ln7i1rds1xify08rzjk02ryzvjdvnllg1fkh3vm2b"; type = "gem"; }; - version = "7.3.4"; + version = "7.6.0"; + }; + childprocess = { + dependencies = ["logger"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1v5nalaarxnfdm6rxb7q6fmc6nx097jd630ax6h9ch7xw95li3cs"; + type = "gem"; + }; + version = "5.1.0"; }; chunky_png = { groups = ["default"]; @@ -580,10 +514,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0q11v0iabvr6rif0d025xh078ili5frrihlj0m04zfg7lgvagxji"; + sha256 = "198aswdyqlvcw9jkd95b7b8dp3fg0wx89kd1dx9wia1z36b1icin"; type = "gem"; }; - version = "0.2.0"; + version = "1.2.0"; }; cocoon = { groups = ["default"]; @@ -631,21 +565,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "00c6x4ha7qiaaf88qdbyf240mk146zz78rbm4qwyaxmwlmk7q933"; + sha256 = "1rbdzl9n8ppyp38y75hw06s17kp922ybj6jfvhz52p83dg6xpm6m"; type = "gem"; }; - version = "1.3.0"; + version = "1.3.1"; }; crack = { - dependencies = ["rexml"]; + dependencies = ["bigdecimal" "rexml"]; groups = ["default" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1cr1kfpw3vkhysvkk3wg7c54m75kd68mbm9rs5azdjdq57xid13r"; + sha256 = "0jaa7is4fw1cxigm8vlyhg05bw4nqy4f91zjqxk7pp4c8bdyyfn8"; type = "gem"; }; - version = "0.4.5"; + version = "1.0.0"; }; crass = { groups = ["default" "development" "pam_authentication" "production" "test"]; @@ -663,10 +597,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "04q1vin8slr3k8mp76qz0wqgap6f9kdsbryvgfq9fljhrm463kpj"; + sha256 = "0xs3d0ihwg1z4h28d51hb07k926d1rlwy6c2c9ygbicg76srk0qa"; type = "gem"; }; - version = "1.14.0"; + version = "1.19.0"; + }; + csv = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zfn40dvgjk1xv1z8l11hr9jfg3jncwsc9yhzsz4l4rivkpivg8b"; + type = "gem"; + }; + version = "3.3.0"; }; database_cleaner-active_record = { dependencies = ["activerecord" "database_cleaner-core"]; @@ -674,10 +618,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "12hdsqnws9gyc9sxiyc8pjiwr0xa7136m1qbhmd1pk3vsrrvk13k"; + sha256 = "1iz1hv2b1z7509dxvxdwzay1hhs24glxls5ldbyh688zxkcdca1j"; type = "gem"; }; - version = "2.1.0"; + version = "2.2.0"; }; database_cleaner-core = { groups = ["default" "test"]; @@ -699,15 +643,26 @@ }; version = "3.3.4"; }; + debug = { + dependencies = ["irb" "reline"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1z77qyzcmvz3ciny6cb24s79a243jqkybqk30b310yichp02dq28"; + type = "gem"; + }; + version = "1.9.2"; + }; debug_inspector = { groups = ["default" "development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "01l678ng12rby6660pmwagmyg8nccvjfgs3487xna7ay378a59ga"; + sha256 = "18k8x9viqlkh7dbmjzh8crbjy8w480arpa766cw1dnn3xcpa1pwv"; type = "gem"; }; - version = "1.1.0"; + version = "1.2.0"; }; devise = { dependencies = ["bcrypt" "orm_adapter" "railties" "responders" "warden"]; @@ -715,21 +670,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0vpd7d61d4pfmyb2plnnv82wmczzlhw4k4gjhd2fv4r6vq8ilqqi"; + sha256 = "1y57fpcvy1kjd4nb7zk7mvzq62wqcpfynrgblj558k3hbvz4404j"; type = "gem"; }; - version = "4.9.2"; + version = "4.9.4"; }; devise-two-factor = { - dependencies = ["activesupport" "attr_encrypted" "devise" "railties" "rotp"]; + dependencies = ["activesupport" "devise" "railties" "rotp"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1nk43p339zyp4y5vab3w3s0zbjd4xfs8qn0ymxdnz6d961dbbdm8"; + sha256 = "1yx6ym8a9szwnq9yziljidqjn6gf99blvz1yib9qdd0qcg5x5hp8"; type = "gem"; }; - version = "4.1.0"; + version = "6.0.0"; }; devise_pam_authenticatable2 = { dependencies = ["devise" "rpam2"]; @@ -747,10 +702,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0rwvjahnp7cpmracd8x732rjgnilqv2sx7d1gfrysslc3h039fa9"; + sha256 = "1znxccz83m4xgpd239nyqxlifdb7m8rlfayk6s259186nkgj6ci7"; type = "gem"; }; - version = "1.5.0"; + version = "1.5.1"; }; discard = { dependencies = ["activerecord"]; @@ -758,31 +713,30 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1xavjhccyyzn9z6fz3034vgvzprc983mbrq6n9sc0drfw7m3vrip"; + sha256 = "0rysimck60hkj1japwb2np75kaf4jq8jvfzijh2izhadrabqj8am"; type = "gem"; }; - version = "1.2.1"; + version = "1.3.0"; }; docile = { groups = ["default" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1lxqxgq71rqwj1lpl9q1mbhhhhhhdkkj7my341f2889pwayk85sz"; + sha256 = "07pj4z3h8wk4fgdn6s62vw1lwvhj0ac0x10vfbdkr9xzk7krn5cn"; type = "gem"; }; - version = "1.4.0"; + version = "1.4.1"; }; domain_name = { - dependencies = ["unf"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0lcqjsmixjp52bnlgzh4lg9ppsk52x9hpwdjd53k8jnbah2602h0"; + sha256 = "0cyr2xm576gqhqicsyqnhanni47408w2pgvrfi8pd13h2li3nsaz"; type = "gem"; }; - version = "0.5.20190701"; + version = "0.6.20240107"; }; doorkeeper = { dependencies = ["railties"]; @@ -790,41 +744,30 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1q2pywgyn6cbnm0fh3dln5z1qgd1g8hvb4x8rppjc1bpfxnfhi13"; + sha256 = "0a6nbc12nfz355am2vwm1ql2p8zck7mr941glghmnl32djaga24b"; type = "gem"; }; - version = "5.6.6"; + version = "5.7.1"; }; dotenv = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1n0pi8x8ql5h1mijvm8lgn6bhq4xjb5a500p5r1krq4s6j9lg565"; + sha256 = "0aanng90ad6vg9sm3qlq1223k456qw2xli9kcx13a3ga33kh5ibd"; type = "gem"; }; - version = "2.8.1"; + version = "3.1.4"; }; - dotenv-rails = { - dependencies = ["dotenv" "railties"]; - groups = ["default"]; + drb = { + groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0v0gcbxzypcvy6fqq4gp80jb310xvdwj5n8qw9ci67g5yjvq2nxh"; + sha256 = "0h5kbj9hvg5hb3c7l425zpds0vb42phvln2knab8nmazg2zp5m79"; type = "gem"; }; - version = "2.8.1"; - }; - ed25519 = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0zb2dr2ihb1qiknn5iaj1ha1w9p7lj9yq5waasndlfadz225ajji"; - type = "gem"; - }; - version = "1.3.0"; + version = "2.2.1"; }; elasticsearch = { dependencies = ["elasticsearch-api" "elasticsearch-transport"]; @@ -832,10 +775,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0havyxmvl157a653prspnbhgdchlx44xqxl170v1im5ggxwavcaq"; + sha256 = "11pw5x7kg6f6m8rqy2kpbzdlnvijjpmbqkj2gz8237wkbl40y27d"; type = "gem"; }; - version = "7.13.3"; + version = "7.17.11"; }; elasticsearch-api = { dependencies = ["multi_json"]; @@ -843,10 +786,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0bmssarkk7lqkjdn8c9j7jvxcnn4hg1zcmhsky8bfvc99k33b3w8"; + sha256 = "01wi43a3zylrq2vca08vir5va142g5m3jcsak3rprjck8jvggn7y"; type = "gem"; }; - version = "7.13.3"; + version = "7.17.11"; }; elasticsearch-dsl = { groups = ["default"]; @@ -859,35 +802,36 @@ version = "0.1.10"; }; elasticsearch-transport = { - dependencies = ["faraday" "multi_json"]; + dependencies = ["base64" "faraday" "multi_json"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0blfii8qvj0m6bg9sbfynxc40in7zfmw2wpi4clv7d9gclk053db"; + sha256 = "00qgyyvjyyv7z22qjd408pby1h7902gdwkh8h3z3jk2y57amg06i"; type = "gem"; }; - version = "7.13.3"; + version = "7.17.11"; }; - encryptor = { - groups = ["default"]; + email_spec = { + dependencies = ["htmlentities" "launchy" "mail"]; + groups = ["test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0s8rvfl0vn8w7k1sgkc234060jh468s3zd45xa64p1jdmfa3zwmb"; + sha256 = "049dhlyy2hcksp1wj9mx2fngk5limkm3afxysnizg1hi2dxbw8yz"; type = "gem"; }; - version = "3.0.0"; + version = "2.3.0"; }; erubi = { groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "08s75vs9cxlc4r1q2bjg4br8g9wc5lc5x5vl0vv4zq5ivxsdpgi7"; + sha256 = "0qnd6ff4az22ysnmni3730c41b979xinilahzg86bn7gv93ip9pw"; type = "gem"; }; - version = "1.12.0"; + version = "1.13.0"; }; et-orbi = { dependencies = ["tzinfo"]; @@ -905,31 +849,31 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "08r6qgbpkxxsihjmlspk3l1sr69q5hx35p1l4wp7rmkbzys89867"; + sha256 = "0ala6123d3cv965ss48iyi0q4hcbzrznfwv2f1mr91sy98cigq4h"; type = "gem"; }; - version = "0.100.0"; + version = "0.111.0"; }; fabrication = { - groups = ["test"]; + groups = ["development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0bxssmjp49whzq2zv7w751gr4nkdaiwcxd1vda0byigwyrnj6f5q"; + sha256 = "1al5iv3as21l5clci0b5cg27z136pan7gkj7plp4l0w83c6z2y9c"; type = "gem"; }; - version = "2.30.0"; + version = "2.31.0"; }; faker = { dependencies = ["i18n"]; - groups = ["test"]; + groups = ["development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0ysiqlvyy1351bzx7h92r93a35s32l8giyf9bac6sgr142sh3cnn"; + sha256 = "1xj0xx2snnxzjipxpxwiki7053441jkdg10h0rmjiri040s5lssi"; type = "gem"; }; - version = "3.2.1"; + version = "3.4.2"; }; faraday = { dependencies = ["faraday-em_http" "faraday-em_synchrony" "faraday-excon" "faraday-httpclient" "faraday-multipart" "faraday-net_http" "faraday-net_http_persistent" "faraday-patron" "faraday-rack" "faraday-retry" "ruby2_keywords"]; @@ -998,10 +942,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j"; + sha256 = "10n6wikd442mfm15hd6gzm0qb527161w1wwch4h5m4iclkz2x6b3"; type = "gem"; }; - version = "1.0.1"; + version = "1.0.2"; }; faraday-net_http_persistent = { groups = ["default"]; @@ -1079,10 +1023,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1862ydmclzy1a0cjbvm8dz7847d9rch495ib0zb64y84d3xd4bkg"; + sha256 = "1yvii03hcgqj30maavddqamqy50h7y6xcn2wcyq72wn823zl4ckd"; type = "gem"; }; - version = "1.15.5"; + version = "1.16.3"; }; ffi-compiler = { dependencies = ["ffi" "rake"]; @@ -1090,10 +1034,32 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0c2caqm9wqnbidcb8dj4wd3s902z15qmgxplwyfyqbwa0ydki7q1"; + sha256 = "1844j58cdg2q6g0rqfwg4rrambnhf059h4yg9rfmrbrcs60kskx9"; type = "gem"; }; - version = "1.0.1"; + version = "1.3.2"; + }; + flatware = { + dependencies = ["drb" "thor"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13wcwdpdx1asjxvqpyxwlcazzsjisls28jjn28d9cqw9zwszcm1p"; + type = "gem"; + }; + version = "2.3.3"; + }; + flatware-rspec = { + dependencies = ["flatware" "rspec"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0dgl20mi9a5iwcy6v9jq148ljy9rrvyjhp1rpd1sgadfw6kxzbhc"; + type = "gem"; + }; + version = "2.3.3"; }; fog-core = { dependencies = ["builder" "excon" "formatador" "mime-types"]; @@ -1101,10 +1067,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1agd6xgzk0rxrsjdpn94v4hy89s0nm2cs4zg2p880w2dan9xgrak"; + sha256 = "1vf21i2qpl1hagapds0qjlfl6gsyrbssifn2br2ifn3fg9j80yxl"; type = "gem"; }; - version = "2.1.0"; + version = "2.5.0"; }; fog-json = { dependencies = ["fog-core" "multi_json"]; @@ -1118,25 +1084,25 @@ version = "1.2.0"; }; fog-openstack = { - dependencies = ["fog-core" "fog-json" "ipaddress"]; + dependencies = ["fog-core" "fog-json"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "11j18h61d3p0pcp9k5346lbj1lahab1dqybkrx9338932lmjn7ap"; + sha256 = "1z7k3al9bb5ypzkrvi5szpfyi8sksggq68fwxrxywq6rky5lvhdq"; type = "gem"; }; - version = "0.3.10"; + version = "1.1.3"; }; formatador = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0mprf1dwznz5ld0q1jpbyl59fwnwk6azspnd0am7zz7kfg3pxhv5"; + sha256 = "1l06bv4avphbdmr1y4g0rqlczr38k6r65b3zghrbj2ynyhm3xqjl"; type = "gem"; }; - version = "0.3.0"; + version = "1.1.0"; }; fugit = { dependencies = ["et-orbi" "raabro"]; @@ -1149,27 +1115,37 @@ }; version = "1.11.1"; }; - fuubar = { - dependencies = ["rspec-core" "ruby-progressbar"]; - groups = ["test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1028vn7j3kc5qqwswrf3has3qm4j9xva70xmzb3n29i89f0afwmj"; - type = "gem"; - }; - version = "2.5.1"; - }; globalid = { dependencies = ["activesupport"]; groups = ["default" "development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0kqm5ndzaybpnpxqiqkc41k4ksyxl41ln8qqr6kb130cdxsf2dxk"; + sha256 = "1sbw6b66r7cwdx3jhs46s4lr991969hvigkjpbdl7y3i31qpdgvh"; type = "gem"; }; - version = "1.1.0"; + version = "1.2.1"; + }; + google-protobuf = { + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fanhdf3vzghma51w1hqpp8s585mwzxgqkwvxj5is4q9j0pgwcs3"; + type = "gem"; + }; + version = "3.25.5"; + }; + googleapis-common-protos-types = { + dependencies = ["google-protobuf"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0sqmmfdxjp3fy7hzvl35bnd0yb0ds9030np5jqh338qz4w661cap"; + type = "gem"; + }; + version = "1.15.0"; }; haml = { dependencies = ["temple" "thor" "tilt"]; @@ -1177,10 +1153,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "154svzqlkdq7gslv3p8mfih28gbw4gsj4pd8wr1wpwz6nyzmhh8m"; + sha256 = "15yxph91zswbnfy7szpdcfbdfqqn595ff290hm4f6fcnhryvhvlf"; type = "gem"; }; - version = "6.1.2"; + version = "6.3.0"; }; haml-rails = { dependencies = ["actionpack" "activesupport" "haml" "railties"]; @@ -1199,20 +1175,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1qics7sll6yw7fm499q4b1frfr5f3gav94ach0fwy49zprl9yk33"; + sha256 = "1mf24djxk6968n0ypwbib790nzijcf03m4kw0dnks8csfxj6hy9g"; type = "gem"; }; - version = "0.50.0"; + version = "0.58.0"; }; hashdiff = { groups = ["default" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1nynpl0xbj0nphqx1qlmyggq58ms1phf5i03hk64wcc0a17x1m1c"; + sha256 = "0slky0n6n12gjgimzdbdigpwyg5wgq8fysjwkzzfw33ff8b675n7"; type = "gem"; }; - version = "1.0.1"; + version = "1.1.1"; }; hashie = { groups = ["default"]; @@ -1236,14 +1212,15 @@ version = "7.1.0"; }; highline = { + dependencies = ["reline"]; groups = ["default" "development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1f8cr014j7mdqpdb9q17fp5vb5b8n1pswqaif91s3ylg5x3pygfn"; + sha256 = "1q0f7izfi542sp93gl276spm0xyws1kpqxm0alrwwmz06mz4i0ks"; type = "gem"; }; - version = "2.1.0"; + version = "3.1.1"; }; hiredis = { groups = ["default"]; @@ -1276,15 +1253,15 @@ version = "4.3.4"; }; http = { - dependencies = ["addressable" "http-cookie" "http-form_data" "llhttp-ffi"]; + dependencies = ["addressable" "base64" "http-cookie" "http-form_data" "llhttp-ffi"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1bzb8p31kzv6q5p4z5xq88mnqk414rrw0y5rkhpnvpl29x5c3bpw"; + sha256 = "05b1khh7wxga9jviy9yi8z1nckxbm3svlzv40y0zvq3nag3d77mr"; type = "gem"; }; - version = "5.1.1"; + version = "5.2.0"; }; http-cookie = { dependencies = ["domain_name"]; @@ -1333,10 +1310,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0zjsgrlvwpqsnrza4ijlxjld4550c661sgbqp2j2wp638nlnls1a"; + sha256 = "098n4dfmiydbm9if52h17kxglbli9gihjgzhcghv274ni2c9ab49"; type = "gem"; }; - version = "1.6.2"; + version = "1.7.0"; }; i18n = { dependencies = ["concurrent-ruby"]; @@ -1344,21 +1321,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1ffix518y7976qih9k1lgnc17i3v6yrlh0a3mckpxdb4wc2vrp16"; + sha256 = "0k31wcgnvcvd14snz0pfqj976zv6drfsnq6x8acz10fiyms9l8nw"; type = "gem"; }; - version = "1.14.5"; + version = "1.14.6"; }; i18n-tasks = { - dependencies = ["activesupport" "ast" "better_html" "erubi" "highline" "i18n" "parser" "rails-i18n" "rainbow" "terminal-table"]; + dependencies = ["activesupport" "ast" "erubi" "highline" "i18n" "parser" "rails-i18n" "rainbow" "terminal-table"]; groups = ["development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "19zkcsqwzc3i6vizj26mxxww6m5grv9zmp6yxyswbqq9kyzb081z"; + sha256 = "1v03380ffwwa84xzsc6dhkc57cs156qx5aij4bfdcs1j5bpxmn1s"; type = "gem"; }; - version = "1.0.12"; + version = "1.0.14"; }; idn-ruby = { groups = ["default"]; @@ -1370,15 +1347,37 @@ }; version = "0.1.5"; }; - ipaddress = { + inline_svg = { + dependencies = ["activesupport" "nokogiri"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1x86s0s11w202j6ka40jbmywkrx8fhq8xiy8mwvnkhllj57hqr45"; + sha256 = "03x1z55sh7cpb63g46cbd6135jmp13idcgqzqsnzinbg4cs2jrav"; type = "gem"; }; - version = "0.8.3"; + version = "1.10.0"; + }; + io-console = { + groups = ["default" "development" "pam_authentication" "production" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08d2lx42pa8jjav0lcjbzfzmw61b8imxr9041pva8xzqabrczp7h"; + type = "gem"; + }; + version = "0.7.2"; + }; + irb = { + dependencies = ["rdoc" "reline"]; + groups = ["default" "development" "pam_authentication" "production" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1y40dv3caswr81dlsyln6vnmmpzf5jcal2rqjbsglvnkb0xh0xar"; + type = "gem"; + }; + version = "1.14.1"; }; jmespath = { groups = ["default"]; @@ -1395,10 +1394,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0nalhin1gda4v8ybk6lq8f407cgfrj6qzn234yra4ipkmlbfmal6"; + sha256 = "0b4qsi8gay7ncmigr0pnbxyb17y3h8kavdyhsh7nrlqwr35vb60q"; type = "gem"; }; - version = "2.6.3"; + version = "2.7.2"; }; json-canonicalization = { groups = ["default"]; @@ -1422,15 +1421,15 @@ version = "1.15.3.1"; }; json-ld = { - dependencies = ["htmlentities" "json-canonicalization" "link_header" "multi_json" "rack" "rdf"]; + dependencies = ["htmlentities" "json-canonicalization" "link_header" "multi_json" "rack" "rdf" "rexml"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1carfj87p6cpd0xnysg5sj653rqmmwnnacsmjk42xdy40j15gp88"; + sha256 = "09xbw6kc95qgmqcfjp0jjw8dnfm28lw9b5lf8bdh3p2vpy9ihlxr"; type = "gem"; }; - version = "3.3.1"; + version = "3.3.2"; }; json-ld-preloaded = { dependencies = ["json-ld" "rdf"]; @@ -1438,10 +1437,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "004s52m37b2kbw8dv4rdfm2d90h1023z1mw9zfcs0x87v8aq7zyn"; + sha256 = "1f28ipp845xmqkgd0c22lw5fpv4fiama4ms3z1z5p0kbvi22f2c1"; type = "gem"; }; - version = "3.2.2"; + version = "3.3.0"; }; json-schema = { dependencies = ["addressable"]; @@ -1449,10 +1448,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "155rygs093i8i04i38a97hs5icmqk2jkkhx76w31yxyr3bxfbgx3"; + sha256 = "0yn0k02pdb7ds1fszwadxqdsjbkm7xjkfhwpzy7iqij47g0kwv7g"; type = "gem"; }; - version = "4.0.0"; + version = "5.0.0"; }; jsonapi-renderer = { groups = ["default"]; @@ -1523,10 +1522,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "14gnkcp924v8sbay7q6vz4kn37jylbnvrhi4y5c5jcffd51fbwid"; + sha256 = "1j8z0757rb4kly4ghdzd6ihch6x5i0d53r543x2y9xa8cyrj7c4m"; type = "gem"; }; - version = "7.2.1"; + version = "7.2.2"; }; language_server-protocol = { groups = ["default" "development"]; @@ -1539,15 +1538,15 @@ version = "3.17.0.3"; }; launchy = { - dependencies = ["addressable"]; - groups = ["default" "development"]; + dependencies = ["addressable" "childprocess"]; + groups = ["default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "06r43899384das2bkbrpsdxsafyyqa94il7111053idfalb4984a"; + sha256 = "0b3zi9ydbibyyrrkr6l8mcs6l7yam18a4wg22ivgaz0rl2yn1ymp"; type = "gem"; }; - version = "2.5.2"; + version = "3.0.1"; }; letter_opener = { dependencies = ["launchy"]; @@ -1555,10 +1554,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1y5d4ip4l12v58bgazadl45iv3a5j7jp2gwg96b6jy378zn42a1d"; + sha256 = "1cnv3ggnzyagl50vzs1693aacv08bhwlprcvjp8jcg2w7cp3zwrg"; type = "gem"; }; - version = "1.8.1"; + version = "1.10.0"; }; letter_opener_web = { dependencies = ["actionmailer" "letter_opener" "railties" "rexml"]; @@ -1566,10 +1565,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0vvvaz2ngaxv0s6sj25gdvp73vd8pfl8q3jharadg18p3va0m1ik"; + sha256 = "0q4qfi5wnn5bv93zjf10agmzap3sn7gkfmdbryz296wb1vz1wf9z"; type = "gem"; }; - version = "2.0.0"; + version = "3.0.0"; }; link_header = { groups = ["default"]; @@ -1587,10 +1586,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "00dh6zmqdj59rhcya0l4b9aaxq6n8xizfbil93k0g06gndyk5xz5"; + sha256 = "1yph78m8w8l6i9833fc7shy5krk4mnqjc7ys0bg9kgxw8jnl0vs9"; type = "gem"; }; - version = "0.4.0"; + version = "0.5.0"; + }; + logger = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lwncq2rf8gm79g2rcnnyzs26ma1f4wnfjm6gs4zf2wlsdz5in9s"; + type = "gem"; + }; + version = "1.6.1"; }; lograge = { dependencies = ["actionpack" "activesupport" "railties" "request_store"]; @@ -1598,10 +1607,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "01kdw5dbzimb89rq4zf44zf8990czb5qxvib0hzja1l4hrha8cki"; + sha256 = "1qcsvh9k4c0cp6agqm9a8m4x2gg7vifryqr7yxkg2x9ph9silds2"; type = "gem"; }; - version = "0.13.0"; + version = "0.14.0"; }; loofah = { dependencies = ["crass" "nokogiri"]; @@ -1609,10 +1618,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0d5p9vg2qkqfy60i93mpd3b25kw4bdxfai034y5a94pxp5fws61c"; + sha256 = "1zkjqf37v2d7s11176cb35cl83wls5gm3adnfkn2zcc61h3nxmqh"; type = "gem"; }; - version = "2.21.4"; + version = "2.22.0"; }; mail = { dependencies = ["mini_mime" "net-imap" "net-pop" "net-smtp"]; @@ -1672,20 +1681,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1c81d68r4wx0ckbmqxlfqc2qpd94jwcmqdm0xgr0s46r48pv9k9q"; + sha256 = "1y58ba08n4lx123c0hjcc752fc4x802mjy39qj1hq50ak3vpv8br"; type = "gem"; }; - version = "1.0.1"; - }; - method_source = { - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1pnyh44qycnf9mzi1j6fywd5fkskv3x7nmsqrrws0rjn5dd4ayfp"; - type = "gem"; - }; - version = "1.0.0"; + version = "1.1.0"; }; mime-types = { dependencies = ["mime-types-data"]; @@ -1693,20 +1692,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0q8d881k1b3rbsfcdi3fx0b5vpdr5wcrhn88r2d9j7zjdkxp5mw5"; + sha256 = "1r64z0m5zrn4k37wabfnv43wa6yivgdfk6cf2rpmmirlz889yaf1"; type = "gem"; }; - version = "3.5.1"; + version = "3.5.2"; }; mime-types-data = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "17zdim7kzrh5j8c97vjqp4xp78wbyz7smdp4hi5iyzk0s9imdn5a"; + sha256 = "1vdgz66z8kgw9xrwvrzrcjb5dary9k9hwm0pkk5fq6f5h6i73zds"; type = "gem"; }; - version = "3.2023.0808"; + version = "3.2024.0820"; }; mini_mime = { groups = ["default" "development" "test"]; @@ -1733,20 +1732,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0jnpsbb2dbcs95p4is4431l2pw1l5pn7dfg3vkgb4ga464j0c5l6"; + sha256 = "1n1akmc6bibkbxkzm1p1wmfb4n9vv397knkgz0ffykb3h1d7kdix"; type = "gem"; }; - version = "5.19.0"; + version = "5.25.1"; }; msgpack = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "06n7556vxr3awh92xy1k5bli98bvq4pjm08mnl68ay4fzln7lcsg"; + sha256 = "1a5adcb7bwan09mqhj3wi9ib52hmdzmqg7q08pggn3adibyn5asr"; type = "gem"; }; - version = "1.7.1"; + version = "1.7.2"; }; multi_json = { groups = ["default"]; @@ -1763,10 +1762,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0lgyysrpl50wgcb9ahg29i4p01z0irb3p9lirygma0kkfr5dgk9x"; + sha256 = "1a5lrlvmg2kb2dhw3lxcsv6x276bwgsxpnka1752082miqxd0wlq"; type = "gem"; }; - version = "2.3.0"; + version = "2.4.1"; + }; + mutex_m = { + groups = ["default" "development" "pam_authentication" "production" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ma093ayps1m92q845hmpk0dmadicvifkbf05rpq9pifhin0rvxn"; + type = "gem"; + }; + version = "0.2.0"; }; net-http = { dependencies = ["uri"]; @@ -1774,10 +1783,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0y55ib1v2b8prqfi9ij7hca60b1j94s2bzr6vskwi3i5735472wq"; + sha256 = "10n2n9aq00ih8v881af88l1zyrqgs5cl3njdw8argjwbl5ggqvm9"; type = "gem"; }; - version = "0.3.2"; + version = "0.4.1"; }; net-http-persistent = { dependencies = ["connection_pool"]; @@ -1792,24 +1801,24 @@ }; net-imap = { dependencies = ["date" "net-protocol"]; - groups = ["default" "development"]; + groups = ["default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0lf7wqg7czhaj51qsnmn28j7jmcxhkh3m28rl1cjrqsgjxhwj7r3"; + sha256 = "0gdmhc6nh8cdq2hdlqyrmnl2pdmvab9j7s6fpfvq5kyga0fi4s74"; type = "gem"; }; - version = "0.3.7"; + version = "0.4.15"; }; net-ldap = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0xqcffn3c1564c4fizp10dzw2v5g2pabdzrcn25hq05bqhsckbar"; + sha256 = "0g9gz39bs2iy4ky4fhjphimqd9m9wdsaz50anxgwg3yjrff3famy"; type = "gem"; }; - version = "0.18.0"; + version = "0.19.0"; }; net-pop = { dependencies = ["net-protocol"]; @@ -1833,37 +1842,16 @@ }; version = "0.2.2"; }; - net-scp = { - dependencies = ["net-ssh"]; - groups = ["default" "development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1si2nq9l6jy5n2zw1q59a5gaji7v9vhy8qx08h4fg368906ysbdk"; - type = "gem"; - }; - version = "4.0.0"; - }; net-smtp = { dependencies = ["net-protocol"]; - groups = ["default" "development"]; + groups = ["default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0hwiqplhi29kfjl8jm0rhl51qv6wmxfynl4qap1dhv9xdwc4bm1x"; + sha256 = "0amlhz8fhnjfmsiqcjajip57ici2xhw089x7zqyhpk51drg43h2z"; type = "gem"; }; - version = "0.3.4"; - }; - net-ssh = { - groups = ["default" "development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0yx0pb5fmziz92bw8qzbh8vf20lr56nd3s6q8h0gsgr307lki687"; - type = "gem"; - }; - version = "7.1.0"; + version = "0.5.0"; }; nio4r = { groups = ["default"]; @@ -1886,26 +1874,16 @@ }; version = "1.16.7"; }; - nsa = { - dependencies = ["activesupport" "concurrent-ruby" "sidekiq" "statsd-ruby"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1narh0bj0c9pg8cb2jhpydfa9mnm3dclckzk5s6xrwa2gm99hnk4"; - type = "gem"; - }; - version = "0.3.0"; - }; oj = { + dependencies = ["bigdecimal" "ostruct"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0m4vsd6i093kmyz9gckvzpnws997laldaiaf86hg5lza1ir82x7n"; + sha256 = "1k2skb0n7mf2azznnbsa6irwghdxlmnhdxv9qs6jqg3gd0k2n4zx"; type = "gem"; }; - version = "3.16.1"; + version = "3.16.6"; }; omniauth = { dependencies = ["hashie" "rack" "rack-protection"]; @@ -1923,13 +1901,11 @@ groups = ["default"]; platforms = []; source = { - fetchSubmodules = false; - rev = "4211e6d05941b4a981f9a36b49ec166cecd0e271"; - sha256 = "1zs0xp062f6wk7xxy8w81838qr855kp7idbgpbrhpl319xzc1xkc"; - type = "git"; - url = "https://github.com/stanhu/omniauth-cas.git"; + remotes = ["https://rubygems.org"]; + sha256 = "13z686dmkdssm4d5b0k45ydavhjrzcaqzyqxvvmaqn3a0vc6klbs"; + type = "gem"; }; - version = "2.0.0"; + version = "3.0.0"; }; omniauth-rails_csrf_protection = { dependencies = ["actionpack" "omniauth"]; @@ -1937,10 +1913,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1kwswnkyl8ym6i4wv65qh3qchqbf2n0c6lbhfgbvkds3gpmnlm7w"; + sha256 = "1q2zvkw34vk1vyhn5kp30783w1wzam9i9g5ygsdjn2gz59kzsw0i"; type = "gem"; }; - version = "1.0.1"; + version = "1.0.2"; }; omniauth-saml = { dependencies = ["omniauth" "ruby-saml"]; @@ -1948,10 +1924,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "05idjrc01nmmqz4g7kv16xd9yfzzvyibxzfrxk8rcwd1p0zgsxnb"; + sha256 = "00nn24s74miy7p65y8lwpjfwgcn7fwld61f9ghngal4asgw6pfwa"; type = "gem"; }; - version = "2.1.2"; + version = "2.2.1"; }; omniauth_openid_connect = { dependencies = ["omniauth" "openid_connect"]; @@ -1980,10 +1956,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0c649921vg2l939z5cc3jwd8p1v49099pdhxfk7sb9qqx5wi5873"; + sha256 = "054d6ybgjdzxw567m7rbnd46yp6gkdbc5ihr536vxd3p15vbhjrw"; type = "gem"; }; - version = "3.1.0"; + version = "3.2.0"; }; openssl-signature_algorithm = { dependencies = ["openssl"]; @@ -1996,6 +1972,291 @@ }; version = "1.3.0"; }; + opentelemetry-api = { + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0dj0cqxz0fl2934pmq4pvnb4wpapjfcsjnzb8vll08bcspjdwcx7"; + type = "gem"; + }; + version = "1.4.0"; + }; + opentelemetry-common = { + dependencies = ["opentelemetry-api"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "160ws06d8mzx3hwjss2i954h8r86dp3sw95k2wrbq81sb121m2gy"; + type = "gem"; + }; + version = "0.21.0"; + }; + opentelemetry-exporter-otlp = { + dependencies = ["google-protobuf" "googleapis-common-protos-types" "opentelemetry-api" "opentelemetry-common" "opentelemetry-sdk" "opentelemetry-semantic_conventions"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1yl10v1vvb9krvvks0si5nbjpknz8lcbbcryqkf2g0db3kha072d"; + type = "gem"; + }; + version = "0.29.0"; + }; + opentelemetry-helpers-sql-obfuscation = { + dependencies = ["opentelemetry-common"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0v44n3lgkclnfjg9iz5jaay7fkcqvb35jrkm2b68fr2cyy778mnz"; + type = "gem"; + }; + version = "0.2.0"; + }; + opentelemetry-instrumentation-action_mailer = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-active_support" "opentelemetry-instrumentation-base"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1afibmwprdiqnkin7lb6zdxng36rqa7qbl5fl9wx0lchpc039zjj"; + type = "gem"; + }; + version = "0.1.0"; + }; + opentelemetry-instrumentation-action_pack = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base" "opentelemetry-instrumentation-rack"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16nbkayp8jb2zkqj2rmqd4d1mz4wdf0zg6jx8b0vzkf9mxr89py5"; + type = "gem"; + }; + version = "0.9.0"; + }; + opentelemetry-instrumentation-action_view = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-active_support" "opentelemetry-instrumentation-base"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17qild0js6rgv95rphhs19jhd6ixspv1qvpijchqxmxg8waxmwih"; + type = "gem"; + }; + version = "0.7.2"; + }; + opentelemetry-instrumentation-active_job = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a5afx39bf0pzi0w75ic8zs8447i96993h056ww4vr23zl585f2x"; + type = "gem"; + }; + version = "0.7.7"; + }; + opentelemetry-instrumentation-active_model_serializers = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yw98f8z6k4c8ns7p8ik2dc68p4vbi12xnavzw0vqhlnny4nx0n7"; + type = "gem"; + }; + version = "0.20.2"; + }; + opentelemetry-instrumentation-active_record = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vr690556iaycwdipr962k3pfv97a2sgv4b6f6jwm9hg3mqfqcpg"; + type = "gem"; + }; + version = "0.7.3"; + }; + opentelemetry-instrumentation-active_support = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q07nn9ipq2yd7xjj24hh00cbvlda269k1l0xfkc8d8iw8mixrsg"; + type = "gem"; + }; + version = "0.6.0"; + }; + opentelemetry-instrumentation-base = { + dependencies = ["opentelemetry-api" "opentelemetry-common" "opentelemetry-registry"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0psjpqigi7k0fky1kd54jzf9r779vh2c86ngjppn7ifmnh4n3r9y"; + type = "gem"; + }; + version = "0.22.6"; + }; + opentelemetry-instrumentation-concurrent_ruby = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1khlhzwb37mqnzr1vr49ljhi4bplmq9w8ndm0k8xbfsr8h8wivq4"; + type = "gem"; + }; + version = "0.21.4"; + }; + opentelemetry-instrumentation-excon = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14g6dvk31kz9v9qbr2w6ggxk96v3kaadm8wvnw3qsrsc4pd9ycns"; + type = "gem"; + }; + version = "0.22.4"; + }; + opentelemetry-instrumentation-faraday = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0np6wnckn12df6mwcr695fvjy3x2s6541ywr7ahw8a8dszs0qjsh"; + type = "gem"; + }; + version = "0.24.6"; + }; + opentelemetry-instrumentation-http = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05mrlg8msp59bagpc18ycr9333760kqp780gw8fgqn1798dl02qr"; + type = "gem"; + }; + version = "0.23.4"; + }; + opentelemetry-instrumentation-http_client = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0g6f5zv0bq585ppgzhm6acrpkz32j1h7zyrcy1r8n3ha41daip1z"; + type = "gem"; + }; + version = "0.22.7"; + }; + opentelemetry-instrumentation-net_http = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1l26f8sqsjjcc72a5xr9as3gibm4sgj8n004y15i5vbvdgzjfx60"; + type = "gem"; + }; + version = "0.22.7"; + }; + opentelemetry-instrumentation-pg = { + dependencies = ["opentelemetry-api" "opentelemetry-helpers-sql-obfuscation" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lgkjp0h0hf51n6afgafqaswvm06ybsvj3yf7dxxkzjpnzgxvjvg"; + type = "gem"; + }; + version = "0.29.0"; + }; + opentelemetry-instrumentation-rack = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1dmfxcc2xz2qa4zp0sks5zrqcfr4fbpbc9xdgvcv8ys0ipf7pwn0"; + type = "gem"; + }; + version = "0.24.6"; + }; + opentelemetry-instrumentation-rails = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-action_mailer" "opentelemetry-instrumentation-action_pack" "opentelemetry-instrumentation-action_view" "opentelemetry-instrumentation-active_job" "opentelemetry-instrumentation-active_record" "opentelemetry-instrumentation-active_support" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12k4s1k9wa257bqfny33byscb4ai86jw4q6ygrzsj3iv2bij07w9"; + type = "gem"; + }; + version = "0.31.2"; + }; + opentelemetry-instrumentation-redis = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1qrgnk2x64sks9gqb7fycfa6sass6ddqzh5dms4hdbz1bzag581f"; + type = "gem"; + }; + version = "0.25.7"; + }; + opentelemetry-instrumentation-sidekiq = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cfzw1avv52idxvq02y95g3byxsswccck78zch5hmnnzvp5f59nn"; + type = "gem"; + }; + version = "0.25.7"; + }; + opentelemetry-registry = { + dependencies = ["opentelemetry-api"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pw87n9vpv40hf7f6gyl2vvbl11hzdkv4psbbv3x23jvccs8593k"; + type = "gem"; + }; + version = "0.3.1"; + }; + opentelemetry-sdk = { + dependencies = ["opentelemetry-api" "opentelemetry-common" "opentelemetry-registry" "opentelemetry-semantic_conventions"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0div7n5wac7x1l9fwdpb3bllw18cns93c7xccy27r4gmvv02f46s"; + type = "gem"; + }; + version = "1.5.0"; + }; + opentelemetry-semantic_conventions = { + dependencies = ["opentelemetry-api"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10anxw736pg85nw8vb11xnr5faq7qj8a1d8c62qbpjs6m0izi77y"; + type = "gem"; + }; + version = "1.10.1"; + }; orm_adapter = { groups = ["default" "pam_authentication"]; platforms = []; @@ -2006,25 +2267,35 @@ }; version = "0.5.0"; }; + ostruct = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11dsv71gfbhy92yzj3xkckjzdai2bsz5a4fydgimv62dkz4kc5rv"; + type = "gem"; + }; + version = "0.6.0"; + }; ox = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1yq0h1niimm8z6z8p1yxb104kxqw69bvbrax84598zfjxifcxhxz"; + sha256 = "0w9gavjrvciip497hpdjpcs2c18vf6cgmlj696ynpaqv96804glr"; type = "gem"; }; - version = "2.14.17"; + version = "2.14.18"; }; parallel = { groups = ["default" "development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0jcc512l38c0c163ni3jgskvq1vc3mr8ly5pvjijzwvfml9lf597"; + sha256 = "1vy7sjs2pgz4i96v5yk9b7aafbffnvq7nn419fgvw55qlavsnsyq"; type = "gem"; }; - version = "1.23.0"; + version = "1.26.3"; }; parser = { dependencies = ["ast" "racc"]; @@ -2032,10 +2303,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1swigds85jddb5gshll1g8lkmbcgbcp9bi1d4nigwvxki8smys0h"; + sha256 = "1cqs31cyg2zp8yx2zzm3zkih0j93q870wasbviy2w343nxqvn3pk"; type = "gem"; }; - version = "3.2.2.3"; + version = "3.3.5.0"; }; parslet = { groups = ["default"]; @@ -2063,10 +2334,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0s4vskbydg5k0z86v2g5drf03lslkr4b1l421vz29531jlrsljvy"; + sha256 = "0dsgcmzc55w7i9cpghfkzhmiskzndvp1vijd8c5ryv8xvlwikmzg"; type = "gem"; }; - version = "1.5.5"; + version = "1.5.8"; }; pghero = { dependencies = ["activerecord"]; @@ -2074,10 +2345,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0gzbgq392b0z7ma1jrdnzzfppdlgjdl9akc4iajq4g46raqd4899"; + sha256 = "028icy2wr33a5wbh2szar1mf0syh42p3szd4bfxl1zwrby3cpnfa"; type = "gem"; }; - version = "3.3.4"; + version = "3.6.0"; }; premailer = { dependencies = ["addressable" "css_parser" "htmlentities"]; @@ -2085,10 +2356,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "10rzwdz43yy20lwzsr2as6aivhvwjvqh4nd48sa0ga57sizf1fb4"; + sha256 = "1ryivdnij1990hcqqmq4s0x1vjvfl0awjc9b91f8af17v2639qhg"; type = "gem"; }; - version = "1.21.0"; + version = "1.27.0"; }; premailer-rails = { dependencies = ["actionmailer" "net-smtp" "premailer"]; @@ -2101,25 +2372,37 @@ }; version = "1.12.0"; }; - private_address_check = { + propshaft = { + dependencies = ["actionpack" "activesupport" "rack" "railties"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "05phz0vscfh9chv90yc9091pifw3cpwkh76flnhrmvja1q3na4cy"; + sha256 = "0sqg0xf46xd47zdpm8d12kfnwl0y5jb2hj10imzb3bk6mwgkd2fk"; type = "gem"; }; - version = "0.5.0"; + version = "1.1.0"; + }; + psych = { + dependencies = ["stringio"]; + groups = ["default" "development" "pam_authentication" "production" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0s5383m6004q76xm3lb732bp4sjzb6mxb6rbgn129gy2izsj4wrk"; + type = "gem"; + }; + version = "5.1.2"; }; public_suffix = { groups = ["default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0n9j7mczl15r3kwqrah09cxj8hxdfawiqxa60kga2bmxl9flfz9k"; + sha256 = "0vqcw3iwby3yc6avs1vb3gfd0vcp2v7q310665dvxfswmcf4xm31"; type = "gem"; }; - version = "5.0.3"; + version = "6.0.1"; }; puma = { dependencies = ["nio4r"]; @@ -2138,10 +2421,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1wb03yzy1j41822rbfh9nn77im3zh1f5v8di05cd8rsrdpws542b"; + sha256 = "0wkm850z17gy5gph5lbmaz62wx7nvkj9r690017w10phkmxd5rj3"; type = "gem"; }; - version = "2.3.0"; + version = "2.4.0"; }; raabro = { groups = ["default"]; @@ -2207,15 +2490,15 @@ version = "1.21.3"; }; rack-protection = { - dependencies = ["rack"]; + dependencies = ["base64" "rack"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1kpm67az1wxlg76h620in2r7agfyhv177ps268j5ggsanzddzih8"; + sha256 = "1zzvivmdb4dkscc58i3gmcyrnypynsjwp6xgc4ylarlhqmzvlx1w"; type = "gem"; }; - version = "3.0.6"; + version = "3.2.0"; }; rack-proxy = { dependencies = ["rack"]; @@ -2223,10 +2506,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1a62439xwn5v6hsl9s11hdk4wj58czhcbg7lminv23mnkc0ca147"; + sha256 = "12jw7401j543fj8cc83lmw72d8k6bxvkp9rvbifi88hh01blnsj4"; type = "gem"; }; - version = "0.7.6"; + version = "0.7.7"; + }; + rack-session = { + dependencies = ["rack"]; + groups = ["default" "development" "pam_authentication" "production" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xhxhlsz6shh8nm44jsmd9276zcnyzii364vhcvf0k8b8bjia8d0"; + type = "gem"; + }; + version = "1.0.2"; }; rack-test = { dependencies = ["rack"]; @@ -2239,16 +2533,27 @@ }; version = "2.1.0"; }; + rackup = { + dependencies = ["rack" "webrick"]; + groups = ["default" "development" "pam_authentication" "production" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1wbr03334ba9ilcq25wh9913xciwj0j117zs60vsqm0zgwdkwpp9"; + type = "gem"; + }; + version = "1.0.0"; + }; rails = { dependencies = ["actioncable" "actionmailbox" "actionmailer" "actionpack" "actiontext" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1sv5jzd3varqzcqm8zxllwiqzgbgcymszw12ci3f9zbzlliq8hby"; + sha256 = "07n5ijqxlp4jkd29s9v9b7p9rnspi7pffn4rp4h07dvds9w9xkyz"; type = "gem"; }; - version = "7.0.8.4"; + version = "7.1.4"; }; rails-controller-testing = { dependencies = ["actionpack" "actionview" "activesupport"]; @@ -2267,10 +2572,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "17g05y7q7934z0ib4aph8h71c2qwjmlakkm7nb2ab45q0aqkfgjd"; + sha256 = "0fx9dx1ag0s1lr6lfr34lbx5i1bvn3bhyf3w3mx6h7yz90p725g5"; type = "gem"; }; - version = "2.1.1"; + version = "2.2.0"; }; rails-html-sanitizer = { dependencies = ["loofah" "nokogiri"]; @@ -2289,34 +2594,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1bbh5gsw46djmrgddwaq3wsjmj9rsh5dk13wkclwxf1rg9jpkn3g"; + sha256 = "0s8kvic2ia34ngssz6h15wqj0k3wwblhyh0f9v0j3gy7ly0dp161"; type = "gem"; }; - version = "7.0.7"; - }; - rails-settings-cached = { - dependencies = ["rails"]; - groups = ["default"]; - platforms = []; - source = { - fetchSubmodules = false; - rev = "86328ef0bd04ce21cc0504ff5e334591e8c2ccab"; - sha256 = "06r637gimh5miq2i6ywxn9gp7nqk8n8555yw8239mykalbzda69h"; - type = "git"; - url = "https://github.com/mastodon/rails-settings-cached.git"; - }; - version = "0.6.6"; + version = "7.0.9"; }; railties = { - dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor" "zeitwerk"]; + dependencies = ["actionpack" "activesupport" "irb" "rackup" "rake" "thor" "zeitwerk"]; groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "02z7lqx0y60bzpkd4v67i9sbdh7djs0mm89h343kidx0gmq0kbh0"; + sha256 = "0njacgg01934sd942byyjkcyy3iwidysdbhp8kjrjrinackmyfal"; type = "gem"; }; - version = "7.0.8.4"; + version = "7.1.4"; }; rainbow = { groups = ["default" "development"]; @@ -2333,21 +2625,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w"; + sha256 = "17850wcwkgi30p7yqh60960ypn7yibacjjha0av78zaxwvd3ijs6"; type = "gem"; }; - version = "13.0.6"; + version = "13.2.1"; }; rdf = { - dependencies = ["bcp47_spec" "link_header"]; + dependencies = ["bcp47_spec" "bigdecimal" "link_header"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0l515w395kbyz4n7lx102x1nv9yl6l72gvk67p35z4cqa74s59nx"; + sha256 = "1mlalmbj1wkwvjha92f7v91v0pbjar9gdb2ddxdyqd24zcifn3ln"; type = "gem"; }; - version = "3.3.1"; + version = "3.3.2"; }; rdf-normalize = { dependencies = ["rdf"]; @@ -2355,10 +2647,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "12slrdq6xch5rqj1m79k1wv09264pmhs76nm300j1jsjpcfmdg0r"; + sha256 = "1glyhg7lmzbq1w7bvvf84g7kvqxcn0mw3gsh1f8w4qfvvnbl8dwj"; type = "gem"; }; - version = "0.6.1"; + version = "0.7.0"; + }; + rdoc = { + dependencies = ["psych"]; + groups = ["default" "development" "pam_authentication" "production" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ygk2zk0ky3d88v3ll7qh6xqvbvw5jin0hqdi1xkv1dhaw7myzdi"; + type = "gem"; + }; + version = "6.7.0"; }; redcarpet = { groups = ["default"]; @@ -2407,10 +2710,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "136br91alxdwh1s85z912dwz23qlhm212vy6i3wkinz3z8mkxxl3"; + sha256 = "0ik40vcv7mqigsfpqpca36hpmnx0536xa825ai5qlkv3mmkyf9ss"; type = "gem"; }; - version = "2.8.1"; + version = "2.9.2"; + }; + reline = { + dependencies = ["io-console"]; + groups = ["default" "development" "pam_authentication" "production" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rl1jmxs7pay58l7lkxkrn6nkdpk52k8rvnfwqsd1swjlxlwjq0n"; + type = "gem"; + }; + version = "0.5.10"; }; request_store = { dependencies = ["rack"]; @@ -2418,10 +2732,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "13ppgmsbrqah08j06bybd3cddv6dml79yzyjn7r8j1src78h98h7"; + sha256 = "0kd4w7aa0sbk59b19s39pwhd636r7fjamrqalixsw5d53hs4sb1d"; type = "gem"; }; - version = "1.5.1"; + version = "1.6.0"; }; responders = { dependencies = ["actionpack" "railties"]; @@ -2429,20 +2743,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0m9s0mkkprrz02gxhq0ijlwjy0nx1j5yrjf8ssjnhyagnx03lyrx"; + sha256 = "06ilkbbwvc8d0vppf8ywn1f79ypyymlb9krrhqv4g0q215zaiwlj"; type = "gem"; }; - version = "3.1.0"; + version = "3.1.1"; }; rexml = { groups = ["default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "09shc1dvg88c4yx83d4c9wf26z838nlapa3cmlq8iqdci39a98v2"; + sha256 = "0rr145mvjgc4n28lfy0gw87aw3ab680h83bdi5i102ik8mixk3zn"; type = "gem"; }; - version = "3.3.7"; + version = "3.3.8"; }; rotp = { groups = ["default"]; @@ -2459,10 +2773,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0pym2zjwl6dwdfvbn7rbvmds32r70jx9qddhvvi6pqy6987ack1v"; + sha256 = "072qvvrcqj0yfr3b0j932mlhvn41i38bq37z7z07i3ikagndkqwy"; type = "gem"; }; - version = "4.1.2"; + version = "4.3.0"; }; rpam2 = { groups = ["default" "pam_authentication"]; @@ -2495,16 +2809,27 @@ }; version = "1.2.0"; }; + rspec = { + dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14xrp8vq6i9zx37vh0yp4h9m0anx9paw200l1r5ad9fmq559346l"; + type = "gem"; + }; + version = "3.13.0"; + }; rspec-core = { dependencies = ["rspec-support"]; groups = ["default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0l95bnjxdabrn79hwdhn2q1n7mn26pj7y1w5660v5qi81x458nqm"; + sha256 = "0s688wfw77fjldzayvczg8bgwcgh6bh552dw7qcj1rhjk3r4zalx"; type = "gem"; }; - version = "3.12.2"; + version = "3.13.1"; }; rspec-expectations = { dependencies = ["diff-lcs" "rspec-support"]; @@ -2512,10 +2837,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "05j44jfqlv7j2rpxb5vqzf9hfv7w8ba46wwgxwcwd8p0wzi1hg89"; + sha256 = "0nm4qx9bgfzwfc1q0l3sj50vf88q1mbwkkqndbzc08wrnd5bjpsn"; type = "gem"; }; - version = "3.12.3"; + version = "3.13.2"; + }; + rspec-github = { + dependencies = ["rspec-core"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kqjmd85v2fpb06d0rx43dc51f0igc1gmm8y3nz0wvmy7zg02njm"; + type = "gem"; + }; + version = "2.4.0"; }; rspec-mocks = { dependencies = ["diff-lcs" "rspec-support"]; @@ -2523,10 +2859,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1hfm17xakfvwya236graj6c2arr4sb9zasp35q5fykhyz8mhs0w2"; + sha256 = "0f3vgp43hajw716vmgjv6f4ar6f97zf50snny6y3fy9kkj4qjw88"; type = "gem"; }; - version = "3.12.5"; + version = "3.13.1"; }; rspec-rails = { dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"]; @@ -2534,10 +2870,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "086qdyz7c4s5dslm6j06mq7j4jmj958whc3yinhabnqqmz7i463d"; + sha256 = "1ycjggcmzbgrfjk04v26b43c3fj5jq2qic911qk7585wvav2qaxd"; type = "gem"; }; - version = "6.0.3"; + version = "7.0.1"; }; rspec-sidekiq = { dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks" "sidekiq"]; @@ -2545,41 +2881,31 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0dijmcwjn8k6lrld3yqbqfrqb5g73l57yx98y5frx54p5qxjzbzy"; + sha256 = "08sbi3cdh6pxj0mj34vzr7675rb4n2r2q5yxlgs0w9xnm5c0jpdx"; type = "gem"; }; - version = "4.0.1"; + version = "5.0.0"; }; rspec-support = { groups = ["default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1ky86j3ksi26ng9ybd7j0qsdf1lpr8mzrmn98yy9gzv801fvhsgr"; + sha256 = "03z7gpqz5xkw9rf53835pa8a9vgj4lic54rnix9vfwmp2m7pv1s8"; type = "gem"; }; - version = "3.12.1"; - }; - rspec_chunked = { - groups = ["test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0h4bsj3m7vb47qnx5bry4v0xscrb3lhg1f1vyxl524znb3i2qqzv"; - type = "gem"; - }; - version = "0.6"; + version = "3.13.1"; }; rubocop = { - dependencies = ["base64" "json" "language_server-protocol" "parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"]; + dependencies = ["json" "language_server-protocol" "parallel" "parser" "rainbow" "regexp_parser" "rubocop-ast" "ruby-progressbar" "unicode-display_width"]; groups = ["development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1i3571gchdj3c28znr5kisj0fkppy57208g9j1kv23rhk3p5q5p2"; + sha256 = "1rsyxrl647bz49gpa4flh8igg6wy7qxyh2jrp01x0kqnn5iw4y86"; type = "gem"; }; - version = "1.56.3"; + version = "1.66.1"; }; rubocop-ast = { dependencies = ["parser"]; @@ -2587,10 +2913,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "188bs225kkhrb17dsf3likdahs2p1i1sqn0pr3pvlx50g6r2mnni"; + sha256 = "03zywfpm4540q6hw8srhi8pzp0gg51w65ir8jkaw58vk3j31w820"; type = "gem"; }; - version = "1.29.0"; + version = "1.32.3"; }; rubocop-capybara = { dependencies = ["rubocop"]; @@ -2598,21 +2924,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "01fn05a87g009ch1sh00abdmgjab87i995msap26vxq1a5smdck6"; + sha256 = "1aw0n8jwhsr39r9q2k90xjmcz8ai2k7xx2a87ld0iixnv3ylw9jx"; type = "gem"; }; - version = "2.18.0"; - }; - rubocop-factory_bot = { - dependencies = ["rubocop"]; - groups = ["default" "development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0kqchl8f67k2g56sq2h1sm2wb6br5gi47s877hlz94g5086f77n1"; - type = "gem"; - }; - version = "2.23.1"; + version = "2.21.0"; }; rubocop-performance = { dependencies = ["rubocop" "rubocop-ast"]; @@ -2620,42 +2935,53 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1v3a2g3wk3aqa0k0zzla10qkxlc625zkj3yf4zcsybs86r5bm4xn"; + sha256 = "0yd616imfjvlpwsk7lw5kq9h4iz6qkmf10xlaib6b47fy5x77ncy"; type = "gem"; }; - version = "1.19.0"; + version = "1.22.1"; }; rubocop-rails = { - dependencies = ["activesupport" "rack" "rubocop"]; + dependencies = ["activesupport" "rack" "rubocop" "rubocop-ast"]; groups = ["development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "05r46ds0dm44fb4p67hbz721zck8mdwblzssz2y25yh075hvs36j"; + sha256 = "1bc4xpyx0gldjdmbl9aaqav5bjiqfc2zdw7k2r1zblmgsq4ilmpm"; type = "gem"; }; - version = "2.20.2"; + version = "2.26.2"; }; rubocop-rspec = { - dependencies = ["rubocop" "rubocop-capybara" "rubocop-factory_bot"]; + dependencies = ["rubocop"]; groups = ["development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0ylwy4afnxhbrvlaf8an9nrizj78axnzggiyfcp8v531cv8six5f"; + sha256 = "03vyjxs5rzrsn5graljffgzy1fgbyn99w5fz69y243dhn6gy5a66"; type = "gem"; }; - version = "2.23.2"; + version = "3.0.5"; + }; + rubocop-rspec_rails = { + dependencies = ["rubocop" "rubocop-rspec"]; + groups = ["development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ijc1kw81884k0wjq1sgwaxa854n1fdddscp4fnzfzlx7zl150c8"; + type = "gem"; + }; + version = "2.30.0"; }; ruby-prof = { groups = ["development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "13fsfw43zx9pcix1fzxb95g09yadqjvc8971k74krrjz81vbyh51"; + sha256 = "0hnalxnvli6248g34n0bj8p3v35vpabak34qjg778bbaavbqg5h5"; type = "gem"; }; - version = "1.6.3"; + version = "1.7.0"; }; ruby-progressbar = { groups = ["default" "development" "test"]; @@ -2678,6 +3004,17 @@ }; version = "1.17.0"; }; + ruby-vips = { + dependencies = ["ffi" "logger"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nyxwib3y2fc1lciaac0s03y3i915kyfq1kn9m19hyl5yblyhnxg"; + type = "gem"; + }; + version = "2.2.2"; + }; ruby2_keywords = { groups = ["default"]; platforms = []; @@ -2726,10 +3063,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1kymrjdpbmn4yaml3aaqyj1dzj8gqmm9h030dc2rj5mvja7fpi28"; + sha256 = "0lj1jjxn1znxmaf6jnngfrz26rw85smxb69m4jl6a9yq6gwyab54"; type = "gem"; }; - version = "6.0.2"; + version = "6.1.3"; }; scenic = { dependencies = ["activerecord" "railties"]; @@ -2737,21 +3074,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "04sd4jmgnwpilr3k061x87yyryya2mj15a8602fip49lfxza5548"; + sha256 = "0w0dafg0gz3snm30247wwai0cy3j235ynwx2karyh05ayfqhm4ii"; type = "gem"; }; - version = "1.7.0"; + version = "1.8.0"; }; selenium-webdriver = { - dependencies = ["rexml" "rubyzip" "websocket"]; + dependencies = ["base64" "logger" "rexml" "rubyzip" "websocket"]; groups = ["test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0ws0mh230l1pvyxcrlcr48w01alfhprjs1jbd8yrn463drsr2yac"; + sha256 = "1md0sixm8dq8a7riv50x4q1z273q47b5jvcbv5hxympxn3ran4by"; type = "gem"; }; - version = "4.11.0"; + version = "4.25.0"; }; semantic_range = { groups = ["default"]; @@ -2763,6 +3100,17 @@ }; version = "3.0.0"; }; + shoulda-matchers = { + dependencies = ["activesupport"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1c082vpfdf3865xq6xayxw2hwqswhnc9g030p1gi4hmk9dzvnmch"; + type = "gem"; + }; + version = "6.4.0"; + }; sidekiq = { dependencies = ["connection_pool" "rack" "redis"]; groups = ["default" "test"]; @@ -2791,10 +3139,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0p5jjs3x2pa2fy494xs39xbq642pri13809dcr1l3hjsm56qvp1h"; + sha256 = "1gnm98hdw1ndw0sryjimp4a0805yhwhjxg6njhz8xmdh5ycgljda"; type = "gem"; }; - version = "5.0.3"; + version = "5.0.6"; }; sidekiq-unique-jobs = { dependencies = ["brpoplpush-redis_script" "concurrent-ruby" "redis" "sidekiq" "thor"]; @@ -2824,10 +3172,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0z4df65w9qpri315lpvzazdxa9xb7yj0j3d77q06wf0jnpvw4mzs"; + sha256 = "0q3lwin7pk5rsxy2a663x6lph5arax9lqqk12fgwdy57i5ma749q"; type = "gem"; }; - version = "5.2.0"; + version = "5.3.1"; }; simplecov = { dependencies = ["docile" "simplecov-html" "simplecov_json_formatter"]; @@ -2850,6 +3198,16 @@ }; version = "0.12.3"; }; + simplecov-lcov = { + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1h8kswnshgb9zidvc88f4zjy4gflgz3854sx9wrw8ppgnwfg6581"; + type = "gem"; + }; + version = "0.8.0"; + }; simplecov_json_formatter = { groups = ["default" "test"]; platforms = []; @@ -2860,68 +3218,15 @@ }; version = "0.1.4"; }; - smart_properties = { - groups = ["default" "development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0jrqssk9qhwrpq41arm712226vpcr458xv6xaqbk8cp94a0kycpr"; - type = "gem"; - }; - version = "1.17.0"; - }; - sprockets = { - dependencies = ["concurrent-ruby" "rack"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay"; - type = "gem"; - }; - version = "3.7.2"; - }; - sprockets-rails = { - dependencies = ["actionpack" "activesupport" "sprockets"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1b9i14qb27zs56hlcc2hf139l0ghbqnjpmfi0054dxycaxvk5min"; - type = "gem"; - }; - version = "3.4.2"; - }; - sshkit = { - dependencies = ["net-scp" "net-ssh"]; - groups = ["default" "development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "14a717mr2cmpgld5fcdd124cvlc5b634f96rhwlnmmc4m8bbkcp9"; - type = "gem"; - }; - version = "1.21.5"; - }; stackprof = { groups = ["development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0bhdgfb0pmw9mav1kw9fn0ka012sa0i3h5ppvqssw5xq48nhxnr8"; + sha256 = "1gdqqwnampxmc54nf6zfy9apkmkpdavzipvfssmjlhnrrjy8qh7f"; type = "gem"; }; - version = "0.2.25"; - }; - statsd-ruby = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "028136c463nbravckxb1qi5c5nnv9r6vh2cyhiry423lac4xz79n"; - type = "gem"; - }; - version = "1.5.0"; + version = "0.2.26"; }; stoplight = { dependencies = ["redlock"]; @@ -2929,10 +3234,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1vhqx7q8qpq3x9ba504n7bp0r9dxcck0r0hd73cac2iqkix6khlv"; + sha256 = "0qq3z6mwbgj1q3b9hpxxi98i63jpqycbv13fqb8362ngk7cv06x8"; type = "gem"; }; - version = "3.0.2"; + version = "4.1.0"; + }; + stringio = { + groups = ["default" "development" "pam_authentication" "production" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07mfqb40b2wh53k33h91zva78f9zwcdnl85jiq74wnaw2wa6wiak"; + type = "gem"; + }; + version = "3.1.1"; }; strong_migrations = { dependencies = ["activerecord"]; @@ -2940,10 +3255,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0wz4zhsp4xia8zcpi98v4sgjlv2prd515l8jz4f7j0wk45dfkjs1"; + sha256 = "07ahzxbmngwa5v2jhybaxm9zb5f15wgr19pdfk38xq838hlhyxc8"; type = "gem"; }; - version = "0.8.0"; + version = "2.0.0"; }; swd = { dependencies = ["activesupport" "attr_required" "httpclient"]; @@ -2971,10 +3286,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "09p32vp94sa1mbr0if0adf02yzc4ns00lsmpwns2xbkncwpzrqm4"; + sha256 = "0fwia5hvc1xz9w7vprzjnsym3v9j5l9ggdvy70jixbvpcpz4acfz"; type = "gem"; }; - version = "0.10.2"; + version = "0.10.3"; }; terminal-table = { dependencies = ["unicode-display_width"]; @@ -2993,40 +3308,40 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0p18f05r0c5s70571gqig3z2ym74wx79s6rd45sprp207bqskzn9"; + sha256 = "0k968xzamd4y92zflrdilvc7wp8cj49n9lz34vnm95rg1j2gbqnx"; type = "gem"; }; - version = "0.6.0"; + version = "1.0.1"; }; test-prof = { groups = ["development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1mhzw33lv7h8d7pyh65lis5svnmm8m6fnszbsfg3j3xk9hcl0an5"; + sha256 = "1mydvmcm4m5501322wyl3pwmc6i5ijvwh4kb242l085j88hiqp4n"; type = "gem"; }; - version = "1.2.3"; + version = "1.4.2"; }; thor = { groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1vq1fjp45az9hfp6fxljhdrkv75cvbab1jfrwcw738pnsiqk8zps"; + sha256 = "1nmymd86a0vb39pzj2cwv57avdrl6pl3lf5bsz58q594kqxjkw7f"; type = "gem"; }; - version = "1.3.1"; + version = "1.3.2"; }; tilt = { groups = ["default" "development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0bmjgbv8158klwp2r3klxjwaj93nh1sbl4xvj9wsha0ic478avz7"; + sha256 = "0kds7wkxmb038cwp6ravnwn8k65ixc68wpm8j5jx5bhx8ndg4x6z"; type = "gem"; }; - version = "2.2.0"; + version = "2.4.0"; }; timeout = { groups = ["default" "development"]; @@ -3044,10 +3359,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0v8y5dibsyskv1ncdgszhxwzq0gzmvb0zl7sgmx0xvsgy86dhcz1"; + sha256 = "18xc7hyasg5ja2i2vb23d9c5pd6rf316kzwqxqx5d8vbs2z1a4rw"; type = "gem"; }; - version = "0.12.0"; + version = "0.12.1"; }; tty-color = { groups = ["default"]; @@ -3096,10 +3411,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "18jr6s1cg8yb26wzkqa6874q0z93rq0y5aw092kdqazk71y6a235"; + sha256 = "0l4vh6g333jxm9lakilkva2gn17j6gb052626r1pdbmy2lhnb460"; type = "gem"; }; - version = "0.8.1"; + version = "0.8.2"; }; twitter-text = { dependencies = ["idn-ruby" "unf"]; @@ -3129,10 +3444,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0m2d0gpsgqnv29j5h2d6g57g0rayvd460b8s2vjr8sn46bqf89m5"; + sha256 = "1cw6xv9a525mcs7202bq9768aic1dwx353prm1bss4fp2nq24a3j"; type = "gem"; }; - version = "1.2023.3"; + version = "1.2024.2"; }; unf = { dependencies = ["unf_ext"]; @@ -3150,30 +3465,30 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1yj2nz2l101vr1x9w2k83a0fag1xgnmjwp8w8rw4ik2rwcz65fch"; + sha256 = "1sf6bxvf6x8gihv6j63iakixmdddgls58cpxpg32chckb2l18qcj"; type = "gem"; }; - version = "0.0.8.2"; + version = "0.0.9.1"; }; unicode-display_width = { groups = ["default" "development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1gi82k102q7bkmfi7ggn9ciypn897ylln1jk9q67kjhr39fj043a"; + sha256 = "1d0azx233nags5jx3fqyr23qa2rhgzbhv8pxp46dgbg1mpf82xky"; type = "gem"; }; - version = "2.4.2"; + version = "2.5.0"; }; uri = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0fa49cdssxllj1j37a56kq27wsibx5lmqxkqdk1rz3452y0bsydy"; + sha256 = "07ndgxyhzd02cg94s6rnfhkb9rwx9z72lzk368sa9j78wc9qnbfz"; type = "gem"; }; - version = "0.12.2"; + version = "0.13.1"; }; validate_email = { dependencies = ["activemodel" "mail"]; @@ -3214,10 +3529,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1ri09bf640kkw4v6k2g90q2nw1mx2hsghhngaqgb7958q8id8xrz"; + sha256 = "1dwh2xrpwhbzyncb1wvgzz8fmln3r15iqz53c48q4swagpqzqig5"; type = "gem"; }; - version = "3.0.0"; + version = "3.1.0"; }; webfinger = { dependencies = ["activesupport" "httpclient"]; @@ -3236,10 +3551,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0vfispr7wd2p1fs9ckn1qnby1yyp4i1dl7qz8n482iw977iyxrza"; + sha256 = "08kixkdp41dw39kqfxf2wp5m4z9b6fxg6yfa6xin0wy7dxzka0dy"; type = "gem"; }; - version = "3.19.1"; + version = "3.24.0"; }; webpacker = { dependencies = ["activesupport" "rack-proxy" "railties" "semantic_range"]; @@ -3265,15 +3580,25 @@ }; version = "0.3.8"; }; + webrick = { + groups = ["default" "development" "pam_authentication" "production" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "089gy5494j560b242vi173wnbj2913hwlwnjkpzld58r96ilc5s3"; + type = "gem"; + }; + version = "1.8.2"; + }; websocket = { groups = ["default" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0dib6p55sl606qb4vpwrvj5wh881kk4aqn2zpfapf8ckx7g14jw8"; + sha256 = "0dr78vh3ag0d1q5gfd8960g1ca9g6arjd2w54mffid8h4i7agrxp"; type = "gem"; }; - version = "1.2.9"; + version = "1.2.11"; }; websocket-driver = { dependencies = ["websocket-extensions"]; @@ -3332,10 +3657,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "08cfb35232p9s1r4jqv8wacv38vxh699mgbr9y03ga89gx9lipqp"; + sha256 = "10cpfdswql21vildiin0q7drg5zfzf2sahnk9hv3nyzzjqwj2bdx"; type = "gem"; }; - version = "2.6.16"; + version = "2.6.18"; }; } diff --git a/pkgs/servers/mastodon/source.nix b/pkgs/servers/mastodon/source.nix index dccf253ea938..9c27b1ee3297 100644 --- a/pkgs/servers/mastodon/source.nix +++ b/pkgs/servers/mastodon/source.nix @@ -1,7 +1,7 @@ # This file was generated by pkgs.mastodon.updateScript. { fetchFromGitHub, applyPatches, patches ? [] }: let - version = "4.2.13"; + version = "4.3.0"; in ( applyPatches { @@ -9,10 +9,10 @@ in owner = "mastodon"; repo = "mastodon"; rev = "v${version}"; - hash = "sha256-+HGu02fjYJ1x6Tk9AdqmFN7JHk3UnlvCdiQ/5yMu69M="; + hash = "sha256-nZtxildQmT/7JMCTx89ZSWxb9I7xMLGHTJv7v4gfdd4="; }; patches = patches ++ []; }) // { inherit version; - yarnHash = "sha256-qoLesubmSvRsXhKwMEWHHXcpcqRszqcdZgHQqnTpNPE="; + yarnHash = "sha256-V/kBkxv6akTyzlFzdR1F53b7RD0NYtap58Xt5yOAbYA="; } diff --git a/pkgs/servers/mastodon/update.sh b/pkgs/servers/mastodon/update.sh index 8e8350431e21..6d6be16e333d 100755 --- a/pkgs/servers/mastodon/update.sh +++ b/pkgs/servers/mastodon/update.sh @@ -106,7 +106,5 @@ echo "Creating gemset.nix" bundix --lockfile="$SOURCE_DIR/Gemfile.lock" --gemfile="$SOURCE_DIR/Gemfile" echo "" >> gemset.nix # Create trailing newline to please EditorConfig checks -echo "Creating yarn-hash.nix" -YARN_HASH="$(prefetch-yarn-deps "$SOURCE_DIR/yarn.lock")" -YARN_HASH="$(nix hash to-sri --type sha256 "$YARN_HASH")" -sed -i "s/sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=/$YARN_HASH/g" source.nix +echo "Required manual update of yarn-hash" +exit 1 diff --git a/pkgs/servers/mastodon/yarn.nix b/pkgs/servers/mastodon/yarn.nix new file mode 100644 index 000000000000..3fb4018906d2 --- /dev/null +++ b/pkgs/servers/mastodon/yarn.nix @@ -0,0 +1,34 @@ +{ + stdenvNoCC, + yarn-berry, + cacert, + version, + src, + hash, +}: +stdenvNoCC.mkDerivation { + pname = "yarn-deps"; + inherit version src; + + nativeBuildInputs = [ + yarn-berry + ]; + + dontInstall = true; + + NODE_EXTRA_CA_CERTS = "${cacert}/etc/ssl/certs/ca-bundle.crt"; + + buildPhase = '' + export HOME=$(mktemp -d) + export YARN_ENABLE_TELEMETRY=0 + + cache="$(yarn config get cacheFolder)" + yarn install --immutable --mode skip-build + + mkdir -p $out + cp -r $cache/* $out/ + ''; + + outputHash = hash; + outputHashMode = "recursive"; +} diff --git a/pkgs/tools/security/mitmproxy2swagger/default.nix b/pkgs/tools/security/mitmproxy2swagger/default.nix index 6731d7c21c53..baf318573ee7 100644 --- a/pkgs/tools/security/mitmproxy2swagger/default.nix +++ b/pkgs/tools/security/mitmproxy2swagger/default.nix @@ -1,29 +1,29 @@ -{ lib -, fetchFromGitHub -, python3 +{ + lib, + fetchFromGitHub, + python3, }: python3.pkgs.buildPythonApplication rec { pname = "mitmproxy2swagger"; version = "0.13.0"; - format = "pyproject"; + pyproject = true; src = fetchFromGitHub { owner = "alufers"; - repo = pname; + repo = "mitmproxy2swagger"; rev = "refs/tags/${version}"; hash = "sha256-VHxqxee5sQWRS13V4SfY4LWaN0oxxWsNVDOEqUyKHfg="; }; - nativeBuildInputs = with python3.pkgs; [ - poetry-core - ]; - pythonRelaxDeps = [ + "mitmproxy" "ruamel.yaml" ]; - propagatedBuildInputs = with python3.pkgs; [ + build-system = with python3.pkgs; [ poetry-core ]; + + dependencies = with python3.pkgs; [ json-stream mitmproxy ruamel-yaml @@ -32,16 +32,14 @@ python3.pkgs.buildPythonApplication rec { # No tests available doCheck = false; - pythonImportsCheck = [ - "mitmproxy2swagger" - ]; + pythonImportsCheck = [ "mitmproxy2swagger" ]; meta = with lib; { description = "Tool to automagically reverse-engineer REST APIs"; - mainProgram = "mitmproxy2swagger"; homepage = "https://github.com/alufers/mitmproxy2swagger"; changelog = "https://github.com/alufers/mitmproxy2swagger/releases/tag/${version}"; license = licenses.mit; maintainers = with maintainers; [ fab ]; + mainProgram = "mitmproxy2swagger"; }; } diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 93cc6462b101..44e8fd7a7982 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -719,6 +719,7 @@ mapAliases { hip-common = throw "'hip-common' has been replaced with 'rocmPackages.hip-common'"; # Added 2023-10-08 hip-nvidia = throw "'hip-nvidia' has been removed in favor of 'rocmPackages.clr'"; # Added 2023-10-08 hll2390dw-cups = throw "The hll2390dw-cups package was dropped since it was unmaintained."; # Added 2024-06-21 + hop-cli = throw "hop-cli has been removed as the service has been shut-down"; # Added 2024-08-13 ht-rust = xh; # Added 2021-02-13 hydra_unstable = hydra; # Added 2024-08-22 hydron = throw "hydron has been removed as the project has been archived upstream since 2022 and is affected by a severe remote code execution vulnerability"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 514724106a30..b15df4f0cfde 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14982,8 +14982,6 @@ with pkgs; hop = callPackage ../development/compilers/hop { }; - hop-cli = throw "hop-cli has been removed as the service has been shut-down"; #Added 2024-08-13 - falcon = callPackage ../development/interpreters/falcon { stdenv = gcc10Stdenv; }; @@ -19057,7 +19055,7 @@ with pkgs; captive-browser = callPackage ../applications/networking/browsers/captive-browser { }; - catboost = callPackage ../development/libraries/catboost { + catboost = callPackage ../by-name/ca/catboost/package.nix { # https://github.com/catboost/catboost/issues/2540 cudaPackages = cudaPackages_11; }; @@ -24487,8 +24485,10 @@ with pkgs; maker-panel = callPackage ../tools/misc/maker-panel { }; mastodon = callPackage ../servers/mastodon { - nodejs-slim = nodejs-slim_20; - ruby = ruby_3_2; + nodejs-slim = nodejs-slim_22; + python3 = python311; + ruby = ruby_3_3; + yarn-berry = yarn-berry.override { nodejs = nodejs-slim_22; }; }; gotosocial = callPackage ../servers/gotosocial { }; @@ -26542,6 +26542,7 @@ with pkgs; ubootBananaPim64 ubootAmx335xEVM ubootClearfog + ubootCM3588NAS ubootCubieboard2 ubootGuruplug ubootJetsonTK1 @@ -26554,6 +26555,7 @@ with pkgs; ubootOlimexA64Olinuxino ubootOlimexA64Teres1 ubootOrangePi3 + ubootOrangePi3B ubootOrangePi5 ubootOrangePi5Plus ubootOrangePiPc diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix index 4255d0c036e8..b1e4cbd2d53f 100644 --- a/pkgs/top-level/linux-kernels.nix +++ b/pkgs/top-level/linux-kernels.nix @@ -367,10 +367,7 @@ in { intel-speed-select = if lib.versionAtLeast kernel.version "5.3" then callPackage ../os-specific/linux/intel-speed-select { } else null; - ipu6-drivers = - if kernelOlder "6.10" - then callPackage ../os-specific/linux/ipu6-drivers {} - else null; + ipu6-drivers = callPackage ../os-specific/linux/ipu6-drivers {}; ivsc-driver = callPackage ../os-specific/linux/ivsc-driver {}; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 39226815b2e2..9012871ff6d2 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6333,6 +6333,8 @@ self: super: with self; { jaeger-client = callPackage ../development/python-modules/jaeger-client { }; + jalali-core = callPackage ../development/python-modules/jalali-core { }; + jamo = callPackage ../development/python-modules/jamo { }; janus = callPackage ../development/python-modules/janus { }; diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index 0f5974d83cb8..bf69d13c98f1 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -31,6 +31,11 @@ , nixpkgsArgs ? { config = { allowUnfree = false; inHydra = true; + # Exceptional unsafe packages that we still build and distribute, + # so users choosing to allow don't have to rebuild them every time. + permittedInsecurePackages = [ + "olm-3.2.16" # see PR #347899 + ]; }; } # This flag, if set to true, will inhibit the use of `mapTestOn`