diff --git a/.forgejo/workflows/lint.yml b/.forgejo/workflows/lint.yml deleted file mode 100644 index 85b68639..00000000 --- a/.forgejo/workflows/lint.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Lint - -on: [push] - -jobs: - lint: - runs-on: docker - env: - container: - image: ghcr.io/catthehacker/ubuntu:js-20.04 - steps: - - uses: actions/checkout@v3 - - uses: https://github.com/cachix/install-nix-action@v22 - env: - with: - nix_path: nixpkgs=channel:nixos-unstable - - run: | - sed -i '/^access-tokens/ d' /etc/nix/nix.conf - nix profile install 'nixpkgs#deadnix' 'nixpkgs#statix' 'nixpkgs#yamllint' - statix check . - deadnix -f - yamllint . diff --git a/.forgejo/workflows/nix.yml b/.forgejo/workflows/nix.yml deleted file mode 100644 index a67c4890..00000000 --- a/.forgejo/workflows/nix.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Nix - -# on: [push] - -jobs: - lint: - runs-on: docker - env: - container: - image: ghcr.io/catthehacker/ubuntu:js-20.04 - steps: - - uses: actions/checkout@v3 - - name: Check Nix flake inputs - uses: https://github.com/DeterminateSystems/flake-checker-action@v5 - - uses: https://github.com/cachix/install-nix-action@v22 - env: - with: - nix_path: nixpkgs=channel:nixos-unstable - - name: Run `nix flake check` - run: | - sed -i '/^access-tokens/ d' /etc/nix/nix.conf - nix run '.#' -- -V diff --git a/.forgejo/workflows/plex_update.yml b/.forgejo/workflows/plex_update.yml index 2d5a2393..c73ba489 100644 --- a/.forgejo/workflows/plex_update.yml +++ b/.forgejo/workflows/plex_update.yml @@ -21,6 +21,7 @@ jobs: - env: VAULT_ADDR: ${{ secrets.VAULT_ADDR }} VAULT_TOKEN: ${{ secrets.VAULT_TOKEN }} + NIXPKGS_ALLOW_UNFREE: 1 run: | git config user.name "Forgejo Actions Bot" git config user.email "<>" diff --git a/flake.lock b/flake.lock index 27801f6a..8bcecbf9 100644 --- a/flake.lock +++ b/flake.lock @@ -41,28 +41,6 @@ "type": "github" } }, - "attic": { - "inputs": { - "crane": "crane", - "flake-compat": "flake-compat", - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs", - "nixpkgs-stable": "nixpkgs-stable" - }, - "locked": { - "lastModified": 1702969472, - "narHash": "sha256-IJP9sC+/gLUdWhm6TsnWpw6A1zQWUfn53ym63KeLXvU=", - "owner": "zhaofengli", - "repo": "attic", - "rev": "bdafd64910bb2b861cf90fa15f1fc93318b6fbf6", - "type": "github" - }, - "original": { - "owner": "zhaofengli", - "repo": "attic", - "type": "github" - } - }, "blobs": { "flake": false, "locked": { @@ -81,17 +59,18 @@ }, "colmena": { "inputs": { - "flake-compat": "flake-compat_2", - "flake-utils": "flake-utils_2", - "nixpkgs": "nixpkgs_2", + "flake-compat": "flake-compat", + "flake-utils": "flake-utils", + "nix-github-actions": "nix-github-actions", + "nixpkgs": "nixpkgs", "stable": "stable" }, "locked": { - "lastModified": 1699171528, - "narHash": "sha256-ZsN6y+tgN5w84oAqRQpMhIvQM39ZNSZoZvn2AK0QYr4=", + "lastModified": 1746816769, + "narHash": "sha256-ymQzXrfHVT8/RJiGbfrNjEeuzXQan46lUJdxEhgivdM=", "owner": "zhaofengli", "repo": "colmena", - "rev": "665603956a1c3040d756987bc7a810ffe86a3b15", + "rev": "df694ee23be7ed7b2d8b42c245a640f0724eb06c", "type": "github" }, "original": { @@ -102,17 +81,17 @@ }, "comma": { "inputs": { - "flake-compat": "flake-compat_3", + "flake-compat": "flake-compat_2", "naersk": "naersk", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_2", "utils": "utils" }, "locked": { - "lastModified": 1703707084, - "narHash": "sha256-27UMbdvgVu1A1zHnte+7RrNYyhtaQWy1yPm5WqLvX8A=", + "lastModified": 1742411560, + "narHash": "sha256-a793QMuHjVB8YB8q595rlnXqlOHbuiI7ybbrB6kuJbw=", "owner": "nix-community", "repo": "comma", - "rev": "cbcec3d8288ade32c39b76cf5087417e5c517397", + "rev": "650c41b59b4ab16327ad0cdb995c3857b9583987", "type": "github" }, "original": { @@ -122,18 +101,12 @@ } }, "crane": { - "inputs": { - "nixpkgs": [ - "attic", - "nixpkgs" - ] - }, "locked": { - "lastModified": 1702918879, - "narHash": "sha256-tWJqzajIvYcaRWxn+cLUB9L9Pv4dQ3Bfit/YjU5ze3g=", + "lastModified": 1746291859, + "narHash": "sha256-DdWJLA+D5tcmrRSg5Y7tp/qWaD05ATI4Z7h22gd1h7Q=", "owner": "ipetkov", "repo": "crane", - "rev": "7195c00c272fdd92fc74e7d5a0a2844b9fadb2fb", + "rev": "dfd9a8dfd09db9aad544c4d3b6c47b12562544a5", "type": "github" }, "original": { @@ -143,27 +116,6 @@ } }, "crane_2": { - "inputs": { - "nixpkgs": [ - "lanzaboote", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1699218802, - "narHash": "sha256-5l0W4Q7z7A4BCstaF5JuBqXOVrZ3Vqst5+hUnP7EdUc=", - "owner": "ipetkov", - "repo": "crane", - "rev": "2d6c2aaff5a05e443eb15efddc21f9c73720340c", - "type": "github" - }, - "original": { - "owner": "ipetkov", - "repo": "crane", - "type": "github" - } - }, - "crane_3": { "flake": false, "locked": { "lastModified": 1670284777, @@ -181,16 +133,16 @@ }, "deploy": { "inputs": { - "flake-compat": "flake-compat_4", - "nixpkgs": "nixpkgs_4", + "flake-compat": "flake-compat_3", + "nixpkgs": "nixpkgs_3", "utils": "utils_2" }, "locked": { - "lastModified": 1703087360, - "narHash": "sha256-0VUbWBW8VyiDRuimMuLsEO4elGuUw/nc2WDeuO1eN1M=", + "lastModified": 1727447169, + "narHash": "sha256-3KyjMPUKHkiWhwR91J1YchF6zb6gvckCAY1jOE+ne0U=", "owner": "serokell", "repo": "deploy-rs", - "rev": "b709d63debafce9f5645a5ba550c9e0983b3d1f7", + "rev": "aa07eb05537d4cd025e2310397a6adcedfe72c76", "type": "github" }, "original": { @@ -219,9 +171,9 @@ "inputs": { "alejandra": "alejandra", "all-cabal-json": "all-cabal-json", - "crane": "crane_3", + "crane": "crane_2", "devshell": "devshell", - "flake-parts": "flake-parts_2", + "flake-parts": "flake-parts_4", "flake-utils-pre-commit": "flake-utils-pre-commit", "ghc-utils": "ghc-utils", "gomod2nix": "gomod2nix", @@ -232,7 +184,7 @@ "nixpkgs" ], "poetry2nix": "poetry2nix", - "pre-commit-hooks": "pre-commit-hooks_2" + "pre-commit-hooks": "pre-commit-hooks" }, "locked": { "lastModified": 1670715183, @@ -250,15 +202,15 @@ }, "essentials": { "inputs": { - "flake-utils": "flake-utils_3", - "nixpkgs": "nixpkgs_5" + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1704204809, - "narHash": "sha256-O76nB41RyfedpCfcO4GU5i2Ng7ZUMbZnF+Ceq0e8LIs=", + "lastModified": 1704366612, + "narHash": "sha256-ZJDeq0JL13TvkqTDoVwC3yTN87YMC0X8Ee5xrgyRsGk=", "owner": "jdonszelmann", "repo": "essentials", - "rev": "8209683dc3c5edd747efccd187f512771d8f3a0c", + "rev": "42d23d82bce3f9da85269f7f8aacdb95c0c0be72", "type": "github" }, "original": { @@ -316,11 +268,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "lastModified": 1650374568, + "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", "owner": "edolstra", "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "rev": "b4a34015c698c7793d592d66adbab377907a2be8", "type": "github" }, "original": { @@ -332,11 +284,11 @@ "flake-compat_2": { "flake": false, "locked": { - "lastModified": 1650374568, - "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "owner": "edolstra", "repo": "flake-compat", - "rev": "b4a34015c698c7793d592d66adbab377907a2be8", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "type": "github" }, "original": { @@ -364,11 +316,11 @@ "flake-compat_4": { "flake": false, "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", "owner": "edolstra", "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", "type": "github" }, "original": { @@ -380,11 +332,11 @@ "flake-compat_5": { "flake": false, "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "owner": "edolstra", "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "type": "github" }, "original": { @@ -396,43 +348,11 @@ "flake-compat_6": { "flake": false, "locked": { - "lastModified": 1668681692, - "narHash": "sha256-Ht91NGdewz8IQLtWZ9LCeNXMSXHUss+9COoqu6JLmXU=", + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "owner": "edolstra", "repo": "flake-compat", - "rev": "009399224d5e398d03b22badca40a37ac85412a1", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_7": { - "flake": false, - "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_8": { - "flake": false, - "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "type": "github" }, "original": { @@ -449,11 +369,11 @@ ] }, "locked": { - "lastModified": 1698882062, - "narHash": "sha256-HkhafUayIqxXyHH1X8d9RDl1M2CkFgZLjKD3MzabiEo=", + "lastModified": 1743550720, + "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "8c9fa2545007b49a5db5f650ae91f227672c3877", + "rev": "c621e8422220273271f52058f618c94e405bb0f5", "type": "github" }, "original": { @@ -463,6 +383,48 @@ } }, "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1743550720, + "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "c621e8422220273271f52058f618c94e405bb0f5", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_3": { + "inputs": { + "nixpkgs-lib": [ + "nur", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_4": { "inputs": { "nixpkgs-lib": "nixpkgs-lib" }, @@ -482,11 +444,11 @@ }, "flake-utils": { "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", "owner": "numtide", "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", "type": "github" }, "original": { @@ -510,40 +472,7 @@ "type": "github" } }, - "flake-utils_10": { - "inputs": { - "systems": "systems_10" - }, - "locked": { - "lastModified": 1681202837, - "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "cfacdce06f30d2b68473a46042957675eebb3401", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, "flake-utils_2": { - "locked": { - "lastModified": 1659877975, - "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_3": { "inputs": { "systems": "systems_3" }, @@ -561,16 +490,34 @@ "type": "github" } }, - "flake-utils_4": { + "flake-utils_3": { "inputs": { "systems": "systems_4" }, "locked": { - "lastModified": 1701680307, - "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_4": { + "inputs": { + "systems": "systems_5" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { @@ -581,14 +528,14 @@ }, "flake-utils_5": { "inputs": { - "systems": "systems_5" + "systems": "systems_6" }, "locked": { - "lastModified": 1694529238, - "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { @@ -598,51 +545,15 @@ } }, "flake-utils_6": { - "inputs": { - "systems": "systems_6" - }, - "locked": { - "lastModified": 1701680307, - "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_7": { - "inputs": { - "systems": "systems_7" - }, - "locked": { - "lastModified": 1701680307, - "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_8": { "inputs": { "systems": "systems_8" }, "locked": { - "lastModified": 1685518550, - "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", + "lastModified": 1681202837, + "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", "owner": "numtide", "repo": "flake-utils", - "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", + "rev": "cfacdce06f30d2b68473a46042957675eebb3401", "type": "github" }, "original": { @@ -651,20 +562,6 @@ "type": "github" } }, - "flake-utils_9": { - "locked": { - "lastModified": 1678901627, - "narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6", - "type": "github" - }, - "original": { - "id": "flake-utils", - "type": "indirect" - } - }, "flakeCompat": { "flake": false, "locked": { @@ -697,6 +594,32 @@ "url": "https://gitlab.haskell.org/bgamari/ghc-utils" } }, + "git-hooks": { + "inputs": { + "flake-compat": [ + "mailserver", + "flake-compat" + ], + "gitignore": "gitignore_2", + "nixpkgs": [ + "mailserver", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1742649964, + "narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, "gitignore": { "inputs": { "nixpkgs": [ @@ -706,11 +629,11 @@ ] }, "locked": { - "lastModified": 1660459072, - "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", "owner": "hercules-ci", "repo": "gitignore.nix", - "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", "type": "github" }, "original": { @@ -722,17 +645,17 @@ "gitignore_2": { "inputs": { "nixpkgs": [ - "nixvim", - "pre-commit-hooks", + "mailserver", + "git-hooks", "nixpkgs" ] }, "locked": { - "lastModified": 1660459072, - "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", "owner": "hercules-ci", "repo": "gitignore.nix", - "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", "type": "github" }, "original": { @@ -743,15 +666,15 @@ }, "gnome-autounlock-keyring": { "inputs": { - "flake-utils": "flake-utils_4", - "nixpkgs": "nixpkgs_6" + "flake-utils": "flake-utils_3", + "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1702994344, - "narHash": "sha256-aJPjexHm6bLo+ky1Rw9nDStgXBYuxuWPmo5DSdjj23s=", + "lastModified": 1734975080, + "narHash": "sha256-MkI4Ow73kPlPyYA0SZ1izaxhtGAiaVtRy8Yv1H7n9hI=", "ref": "refs/heads/main", - "rev": "db96c4a4ebc05c8e4f1b427074fc5fe61c026998", - "revCount": 8, + "rev": "e0d291465b5993a9da6e22b96defd34621f99b0d", + "revCount": 11, "type": "git", "url": "https://git.0x76.dev/v/gnome-autounlock-keyring.git" }, @@ -783,11 +706,11 @@ ] }, "locked": { - "lastModified": 1703838268, - "narHash": "sha256-SRg5nXcdPnrsQR2MTAp7en0NyJnQ2wB1ivmsgEbvN+o=", + "lastModified": 1747978958, + "narHash": "sha256-pQQnbxWpY3IiZqgelXHIe/OAE/Yv4NSQq7fch7M6nXQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "2aff324cf65f5f98f89d878c056b779466b17db8", + "rev": "7419250703fd5eb50e99bdfb07a86671939103ea", "type": "github" }, "original": { @@ -796,12 +719,39 @@ "type": "github" } }, + "ixx": { + "inputs": { + "flake-utils": [ + "nixvim", + "nuschtosSearch", + "flake-utils" + ], + "nixpkgs": [ + "nixvim", + "nuschtosSearch", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1737371634, + "narHash": "sha256-fTVAWzT1UMm1lT+YxHuVPtH+DATrhYfea3B0MxG/cGw=", + "owner": "NuschtOS", + "repo": "ixx", + "rev": "a1176e2a10ce745ff8f63e4af124ece8fe0b1648", + "type": "github" + }, + "original": { + "owner": "NuschtOS", + "ref": "v0.0.7", + "repo": "ixx", + "type": "github" + } + }, "lanzaboote": { "inputs": { - "crane": "crane_2", - "flake-compat": "flake-compat_5", + "crane": "crane", + "flake-compat": "flake-compat_4", "flake-parts": "flake-parts", - "flake-utils": "flake-utils_5", "nixpkgs": [ "nixpkgs" ], @@ -809,11 +759,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1703712542, - "narHash": "sha256-317EoHaQ5OwRLEjwjQUY57FpLDl75kEBbrohH7zbfRQ=", + "lastModified": 1747056319, + "narHash": "sha256-qSKcBaISBozadtPq6BomnD+wIYTZIkiua3UuHLaD52c=", "owner": "nix-community", "repo": "lanzaboote", - "rev": "7229dd85f98341520b02fd46662f38d0af511d6d", + "rev": "2e425f3da6ce7f5b34fa6eaf7a2a7f78dbabcc85", "type": "github" }, "original": { @@ -822,22 +772,6 @@ "type": "github" } }, - "lowdown-src": { - "flake": false, - "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", - "type": "github" - }, - "original": { - "owner": "kristapsdz", - "repo": "lowdown", - "type": "github" - } - }, "mach-nix": { "flake": false, "locked": { @@ -856,20 +790,19 @@ "mailserver": { "inputs": { "blobs": "blobs", - "flake-compat": "flake-compat_6", + "flake-compat": "flake-compat_5", + "git-hooks": "git-hooks", "nixpkgs": [ "nixpkgs" ], - "nixpkgs-22_11": "nixpkgs-22_11", - "nixpkgs-23_05": "nixpkgs-23_05", - "utils": "utils_3" + "nixpkgs-25_05": "nixpkgs-25_05" }, "locked": { - "lastModified": 1703666786, - "narHash": "sha256-SLPNpM/rI8XPyVJAxMYAe+n6NiYSpuXvdwPILHP4yZI=", + "lastModified": 1747965231, + "narHash": "sha256-BW3ktviEhfCN/z3+kEyzpDKAI8qFTwO7+S0NVA0C90o=", "owner": "simple-nixos-mailserver", "repo": "nixos-mailserver", - "rev": "b5023b36a1f6628865cb42b4353bd2ddde0ea9f4", + "rev": "53007af63fade28853408370c4c600a63dd97f41", "type": "gitlab" }, "original": { @@ -880,16 +813,16 @@ }, "microvm": { "inputs": { - "flake-utils": "flake-utils_6", - "nixpkgs": "nixpkgs_7", + "flake-utils": "flake-utils_4", + "nixpkgs": "nixpkgs_6", "spectrum": "spectrum" }, "locked": { - "lastModified": 1703769051, - "narHash": "sha256-izOj8XRoHUXkWHpxznOaYHpj30J8/f3ynr7H6oYcNho=", + "lastModified": 1747859546, + "narHash": "sha256-tDu6JFzM86y5L2eLAkkw5Aklzz0DwfohtcxRXw+fCHA=", "owner": "astro", "repo": "microvm.nix", - "rev": "c39a472523d3c99ddfa88df62223a21b19793490", + "rev": "91ba136db1a3dd73168639c185fa802eb1157ec1", "type": "github" }, "original": { @@ -906,11 +839,11 @@ ] }, "locked": { - "lastModified": 1697664192, - "narHash": "sha256-nRTG3rYEGFV2+putRiC96+kNXDyKaPJgT6K/1FWN7yo=", + "lastModified": 1721727458, + "narHash": "sha256-r/xppY958gmZ4oTfLiHN0ZGuQ+RSTijDblVgVLFi1mw=", "owner": "nix-community", "repo": "naersk", - "rev": "636a9b5dd7f2ad7d7c3af929ecf95e4d4fab9e97", + "rev": "3fb418eaf352498f6b6c30592e3beb63df42ef11", "type": "github" }, "original": { @@ -941,23 +874,25 @@ "type": "github" } }, - "nix": { + "nix-github-actions": { "inputs": { - "lowdown-src": "lowdown-src", - "nixpkgs": "nixpkgs_11", - "nixpkgs-regression": "nixpkgs-regression" + "nixpkgs": [ + "colmena", + "nixpkgs" + ] }, "locked": { - "lastModified": 1654239108, - "narHash": "sha256-0JzuElxLe5DxM+R4tvBYfvQnMGCERZy4KMRf0JYxxS4=", - "owner": "nixos", - "repo": "nix", - "rev": "1dd7253133c4dfd2e7a16ad6fe505442cef38a5b", + "lastModified": 1729742964, + "narHash": "sha256-B4mzTcQ0FZHdpeWcpDYPERtyjJd/NIuaQ9+BV1h+MpA=", + "owner": "nix-community", + "repo": "nix-github-actions", + "rev": "e04df33f62cdcf93d73e9a04142464753a16db67", "type": "github" }, "original": { - "id": "nix", - "type": "indirect" + "owner": "nix-community", + "repo": "nix-github-actions", + "type": "github" } }, "nix-pypi-fetcher": { @@ -978,11 +913,11 @@ }, "nixlib": { "locked": { - "lastModified": 1693701915, - "narHash": "sha256-waHPLdDYUOHSEtMKKabcKIMhlUOHPOOPQ9UyFeEoovs=", + "lastModified": 1736643958, + "narHash": "sha256-tmpqTSWVRJVhpvfSN9KXBvKEXplrwKnSZNAoNPf/S/s=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "f5af57d3ef9947a70ac86e42695231ac1ad00c25", + "rev": "1418bc28a52126761c02dd3d89b2d8ca0f521181", "type": "github" }, "original": { @@ -999,11 +934,11 @@ ] }, "locked": { - "lastModified": 1701689616, - "narHash": "sha256-ewnfgvRy73HoP5KnYmy1Rcr4m4yShvsb6TCCaKoW8pc=", + "lastModified": 1747663185, + "narHash": "sha256-Obh50J+O9jhUM/FgXtI3he/QRNiV9+J53+l+RlKSaAk=", "owner": "nix-community", "repo": "nixos-generators", - "rev": "246219bc21b943c6f6812bb7744218ba0df08600", + "rev": "ee07ba0d36c38e9915c55d2ac5a8fb0f05f2afcc", "type": "github" }, "original": { @@ -1014,11 +949,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1703879120, - "narHash": "sha256-oMJ5xtDswlBWxs0DT/aYKEUIhjEpGZJ9GbIxOclYP8I=", + "lastModified": 1747900541, + "narHash": "sha256-dn64Pg9xLETjblwZs9Euu/SsjW80pd6lr5qSiyLY1pg=", "owner": "nixos", "repo": "nixos-hardware", - "rev": "22ae59fec26591ef72ce4ccb5538c42c5f090fe3", + "rev": "11f2d9ea49c3e964315215d6baa73a8d42672f06", "type": "github" }, "original": { @@ -1029,48 +964,34 @@ }, "nixpkgs": { "locked": { - "lastModified": 1702539185, - "narHash": "sha256-KnIRG5NMdLIpEkZTnN5zovNYc0hhXjAgv6pfd5Z4c7U=", + "lastModified": 1746461020, + "narHash": "sha256-7+pG1I9jvxNlmln4YgnlW4o+w0TZX24k688mibiFDUE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "aa9d4729cbc99dabacb50e3994dcefb3ea0f7447", + "rev": "3730d8a308f94996a9ba7c7138ede69c1b9ac4ae", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-unstable", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-22_11": { + "nixpkgs-25_05": { "locked": { - "lastModified": 1669558522, - "narHash": "sha256-yqxn+wOiPqe6cxzOo4leeJOp1bXE/fjPEi/3F/bBHv8=", + "lastModified": 1747610100, + "narHash": "sha256-rpR5ZPMkWzcnCcYYo3lScqfuzEw5Uyfh+R0EKZfroAc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ce5fe99df1f15a09a91a86be9738d68fadfbad82", + "rev": "ca49c4304acf0973078db0a9d200fd2bae75676d", "type": "github" }, "original": { - "id": "nixpkgs", - "ref": "nixos-22.11", - "type": "indirect" - } - }, - "nixpkgs-23_05": { - "locked": { - "lastModified": 1684782344, - "narHash": "sha256-SHN8hPYYSX0thDrMLMWPWYulK3YFgASOrCsIL3AJ78g=", "owner": "NixOS", + "ref": "nixos-25.05", "repo": "nixpkgs", - "rev": "8966c43feba2c701ed624302b6a935f97bcbdf88", "type": "github" - }, - "original": { - "id": "nixpkgs", - "ref": "nixos-23.05", - "type": "indirect" } }, "nixpkgs-lib": { @@ -1091,70 +1012,6 @@ "type": "github" } }, - "nixpkgs-regression": { - "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "github" - } - }, - "nixpkgs-stable": { - "locked": { - "lastModified": 1702780907, - "narHash": "sha256-blbrBBXjjZt6OKTcYX1jpe9SRof2P9ZYWPzq22tzXAA=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "1e2e384c5b7c50dbf8e9c441a9e58d85f408b01f", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-23.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-stable_2": { - "locked": { - "lastModified": 1685801374, - "narHash": "sha256-otaSUoFEMM+LjBI1XL/xGB5ao6IwnZOXc47qhIgJe8U=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "c37ca420157f4abc31e26f436c1145f8951ff373", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-stable_3": { - "locked": { - "lastModified": 1685801374, - "narHash": "sha256-otaSUoFEMM+LjBI1XL/xGB5ao6IwnZOXc47qhIgJe8U=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "c37ca420157f4abc31e26f436c1145f8951ff373", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs_10": { "locked": { "lastModified": 1686736559, @@ -1173,27 +1030,11 @@ }, "nixpkgs_11": { "locked": { - "lastModified": 1645296114, - "narHash": "sha256-y53N7TyIkXsjMpOG7RhvqJFGDacLs9HlyHeSTBioqYU=", + "lastModified": 1714656196, + "narHash": "sha256-kjQkA98lMcsom6Gbhw8SYzmwrSo+2nruiTcTZp5jK7o=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "530a53dcbc9437363471167a5e4762c5fcfa34a1", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-21.05-small", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_12": { - "locked": { - "lastModified": 1696165369, - "narHash": "sha256-pd1cjFHCoEf9q5f9B0HhlOwwpBI9RP3HbUE6xjI7wAI=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "d7186d62bb68fac3c90f1d95515e613ef299e992", + "rev": "94035b482d181af0a0f8f77823a790b256b7c3cc", "type": "github" }, "original": { @@ -1203,7 +1044,7 @@ "type": "github" } }, - "nixpkgs_13": { + "nixpkgs_12": { "locked": { "lastModified": 1682526928, "narHash": "sha256-2cKh4O6t1rQ8Ok+v16URynmb0rV7oZPEbXkU0owNLQs=", @@ -1219,7 +1060,7 @@ "type": "github" } }, - "nixpkgs_14": { + "nixpkgs_13": { "locked": { "lastModified": 1670507980, "narHash": "sha256-riNZa0xzM1it3pzxciwALeMs+0CsBMWIW2FqulzK8vM=", @@ -1237,27 +1078,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1696019113, - "narHash": "sha256-X3+DKYWJm93DRSdC5M6K5hLqzSya9BjibtBsuARoPco=", + "lastModified": 1725194671, + "narHash": "sha256-tLGCFEFTB5TaOKkpfw3iYT9dnk4awTP/q4w+ROpMfuw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f5892ddac112a1e9b3612c39af1b72987ee5783a", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1697915759, - "narHash": "sha256-WyMj5jGcecD+KC8gEs+wFth1J1wjisZf8kVZH13f1Zo=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "51d906d2341c9e866e48c2efcaac0f2d70bfd43e", + "rev": "b833ff01a0d694b910daca6e2ff4a3f26dee478c", "type": "github" }, "original": { @@ -1267,7 +1092,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_3": { "locked": { "lastModified": 1702272962, "narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=", @@ -1283,7 +1108,7 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_4": { "locked": { "lastModified": 1703438236, "narHash": "sha256-aqVBq1u09yFhL7bj1/xyUeJjzr92fXVvQSSEx6AdB1M=", @@ -1299,13 +1124,13 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_5": { "locked": { - "lastModified": 1702933230, - "narHash": "sha256-xi8AZ3noIXrgmKLR+ij+CeYFoUTKiQuTLL+aA7FRdRQ=", + "lastModified": 1734973338, + "narHash": "sha256-E9JOCwppN3WX9oh6kV9w4nkN+6UPGNdzljscdJy5kTs=", "owner": "nixos", "repo": "nixpkgs", - "rev": "4e2c5373180ecd17e41e879420be69dc642a6349", + "rev": "2b37ecedbb948e7607307c56e35aea5155eb65a7", "type": "github" }, "original": { @@ -1314,13 +1139,13 @@ "type": "github" } }, - "nixpkgs_7": { + "nixpkgs_6": { "locked": { - "lastModified": 1702312524, - "narHash": "sha256-gkZJRDBUCpTPBvQk25G0B7vfbpEYM5s5OZqghkjZsnE=", + "lastModified": 1746904237, + "narHash": "sha256-3e+AVBczosP5dCLQmMoMEogM57gmZ2qrVSrmq9aResQ=", "owner": "nixos", "repo": "nixpkgs", - "rev": "a9bf124c46ef298113270b1f84a164865987a91c", + "rev": "d89fc19e405cb2d55ce7cc114356846a0ee5e956", "type": "github" }, "original": { @@ -1330,13 +1155,13 @@ "type": "github" } }, - "nixpkgs_8": { + "nixpkgs_7": { "locked": { - "lastModified": 1703637592, - "narHash": "sha256-8MXjxU0RfFfzl57Zy3OfXCITS0qWDNLzlBAdwxGZwfY=", + "lastModified": 1747744144, + "narHash": "sha256-W7lqHp0qZiENCDwUZ5EX/lNhxjMdNapFnbErcbnP11Q=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cfc3698c31b1fb9cdcf10f36c9643460264d0ca8", + "rev": "2795c506fe8fb7b03c36ccb51f75b6df0ab2553f", "type": "github" }, "original": { @@ -1345,17 +1170,33 @@ "type": "indirect" } }, - "nixpkgs_9": { + "nixpkgs_8": { "locked": { - "lastModified": 1703013332, - "narHash": "sha256-+tFNwMvlXLbJZXiMHqYq77z/RfmpfpiI3yjL6o/Zo9M=", + "lastModified": 1747920628, + "narHash": "sha256-IlAuXnIi+ZmyS89tt1YOFDCv7FKs9bNBHd3MXMp8PxE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "54aac082a4d9bb5bbc5c4e899603abfb76a3f6d6", + "rev": "e314d5c6d3b3a0f40ec5bcbc007b0cbe412f48ae", "type": "github" }, "original": { "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_9": { + "locked": { + "lastModified": 1747744144, + "narHash": "sha256-W7lqHp0qZiENCDwUZ5EX/lNhxjMdNapFnbErcbnP11Q=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "2795c506fe8fb7b03c36ccb51f75b6df0ab2553f", + "type": "github" + }, + "original": { + "owner": "nixos", "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" @@ -1363,11 +1204,11 @@ }, "nixpkgs_stable": { "locked": { - "lastModified": 1703351344, - "narHash": "sha256-9FEelzftkE9UaJ5nqxidaJJPEhe9TPhbypLHmc2Mysc=", + "lastModified": 1704290814, + "narHash": "sha256-LWvKHp7kGxk/GEtlrGYV68qIvPHkU9iToomNFGagixU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7790e078f8979a9fcd543f9a47427eeaba38f268", + "rev": "70bdadeb94ffc8806c0570eb5c2695ad29f0e421", "type": "github" }, "original": { @@ -1378,16 +1219,17 @@ }, "nixvim": { "inputs": { - "flake-utils": "flake-utils_7", - "nixpkgs": "nixpkgs_9", - "pre-commit-hooks": "pre-commit-hooks" + "flake-parts": "flake-parts_2", + "nixpkgs": "nixpkgs_8", + "nuschtosSearch": "nuschtosSearch", + "systems": "systems_7" }, "locked": { - "lastModified": 1703859882, - "narHash": "sha256-wRXgap0eEuswF9xXUKDiWBh0tKuJ9vtmlJZ4iAX3K/E=", + "lastModified": 1748075723, + "narHash": "sha256-FiTU+0BpDvro+VPpoLs3KjebLe5qyGMWQG1xNB/oeCQ=", "owner": "pta2002", "repo": "nixvim", - "rev": "1d8e7906c9606c956c6b40d8d088c8d2110dc0c0", + "rev": "764a9b8ddafcff877be16908447b7bd84204cca6", "type": "github" }, "original": { @@ -1397,12 +1239,17 @@ } }, "nur": { + "inputs": { + "flake-parts": "flake-parts_3", + "nixpkgs": "nixpkgs_9", + "treefmt-nix": "treefmt-nix" + }, "locked": { - "lastModified": 1703938048, - "narHash": "sha256-df8Lwe4k6QiyucOyZV0s6eoy6y7m2g4+/dOpEyYrZGU=", + "lastModified": 1748082384, + "narHash": "sha256-9xz59HYSe3p72s/mImv41sfE9AmXh7FzlqX8sfYSqZ4=", "owner": "nix-community", "repo": "NUR", - "rev": "ae6fb319f88d5a995cb8dc4502c2d81c5fc1e578", + "rev": "c34543746275e849c494be5b222ad093e32b65f2", "type": "github" }, "original": { @@ -1411,6 +1258,29 @@ "type": "github" } }, + "nuschtosSearch": { + "inputs": { + "flake-utils": "flake-utils_5", + "ixx": "ixx", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1745046075, + "narHash": "sha256-8v4y6k16Ra/fiecb4DxhsoOGtzLKgKlS+9/XJ9z0T2I=", + "owner": "NuschtOS", + "repo": "search", + "rev": "066afe8643274470f4a294442aadd988356a478f", + "type": "github" + }, + "original": { + "owner": "NuschtOS", + "repo": "search", + "type": "github" + } + }, "poetry2nix": { "flake": false, "locked": { @@ -1429,62 +1299,6 @@ } }, "pre-commit-hooks": { - "inputs": { - "flake-compat": "flake-compat_7", - "flake-utils": "flake-utils_8", - "gitignore": "gitignore_2", - "nixpkgs": [ - "nixvim", - "nixpkgs" - ], - "nixpkgs-stable": "nixpkgs-stable_3" - }, - "locked": { - "lastModified": 1702456155, - "narHash": "sha256-I2XhXGAecdGlqi6hPWYT83AQtMgL+aa3ulA85RAEgOk=", - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "rev": "007a45d064c1c32d04e1b8a0de5ef00984c419bc", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "type": "github" - } - }, - "pre-commit-hooks-nix": { - "inputs": { - "flake-compat": [ - "lanzaboote", - "flake-compat" - ], - "flake-utils": [ - "lanzaboote", - "flake-utils" - ], - "gitignore": "gitignore", - "nixpkgs": [ - "lanzaboote", - "nixpkgs" - ], - "nixpkgs-stable": "nixpkgs-stable_2" - }, - "locked": { - "lastModified": 1699271226, - "narHash": "sha256-8Jt1KW3xTjolD6c6OjJm9USx/jmL+VVmbooADCkdDfU=", - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "rev": "ea758da1a6dcde6dc36db348ed690d09b9864128", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "type": "github" - } - }, - "pre-commit-hooks_2": { "inputs": { "flake-utils": [ "webcord", @@ -1511,6 +1325,32 @@ "type": "github" } }, + "pre-commit-hooks-nix": { + "inputs": { + "flake-compat": [ + "lanzaboote", + "flake-compat" + ], + "gitignore": "gitignore", + "nixpkgs": [ + "lanzaboote", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1746537231, + "narHash": "sha256-Wb2xeSyOsCoTCTj7LOoD6cdKLEROyFAArnYoS+noCWo=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "fa466640195d38ec97cf0493d6d6882bc4d14969", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, "riff": { "inputs": { "fenix": "fenix", @@ -1533,7 +1373,6 @@ }, "root": { "inputs": { - "attic": "attic", "colmena": "colmena", "comma": "comma", "deploy": "deploy", @@ -1545,7 +1384,7 @@ "microvm": "microvm", "nixos-generators": "nixos-generators", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs_8", + "nixpkgs": "nixpkgs_7", "nixpkgs_stable": "nixpkgs_stable", "nixvim": "nixvim", "nur": "nur", @@ -1591,21 +1430,17 @@ }, "rust-overlay": { "inputs": { - "flake-utils": [ - "lanzaboote", - "flake-utils" - ], "nixpkgs": [ "lanzaboote", "nixpkgs" ] }, "locked": { - "lastModified": 1699409596, - "narHash": "sha256-L3g1smIol3dGTxkUQOlNShJtZLvjLzvtbaeTRizwZBU=", + "lastModified": 1747017456, + "narHash": "sha256-C/U12fcO+HEF071b5mK65lt4XtAIZyJSSJAg9hdlvTk=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "58240e1ac627cef3ea30c7732fedfb4f51afd8e7", + "rev": "5b07506ae89b025b14de91f697eba23b48654c52", "type": "github" }, "original": { @@ -1617,11 +1452,11 @@ "spectrum": { "flake": false, "locked": { - "lastModified": 1703273931, - "narHash": "sha256-CJ1Crdi5fXHkCiemovsp20/RC4vpDaZl1R6V273FecI=", + "lastModified": 1746869549, + "narHash": "sha256-BKZ/yZO/qeLKh9YqVkKB6wJiDQJAZNN5rk5NsMImsWs=", "ref": "refs/heads/main", - "rev": "97e2f3429ee61dc37664b4d096b2fec48a57b691", - "revCount": 597, + "rev": "d927e78530892ec8ed389e8fae5f38abee00ad87", + "revCount": 862, "type": "git", "url": "https://spectrum-os.org/git/spectrum" }, @@ -1632,16 +1467,16 @@ }, "stable": { "locked": { - "lastModified": 1696039360, - "narHash": "sha256-g7nIUV4uq1TOVeVIDEZLb005suTWCUjSY0zYOlSBsyE=", + "lastModified": 1746557022, + "narHash": "sha256-QkNoyEf6TbaTW5UZYX0OkwIJ/ZMeKSSoOMnSDPQuol0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "32dcb45f66c0487e92db8303a798ebc548cadedc", + "rev": "1d3aeb5a193b9ff13f63f4d9cc169fb88129f860", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-23.05", + "ref": "nixos-24.11", "repo": "nixpkgs", "type": "github" } @@ -1661,21 +1496,6 @@ "type": "github" } }, - "systems_10": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, "systems_2": { "locked": { "lastModified": 1681028828, @@ -1781,18 +1601,24 @@ "type": "github" } }, - "systems_9": { + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "nur", + "nixpkgs" + ] + }, "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "lastModified": 1733222881, + "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "49717b5af6f80172275d47a418c9719a31a78b53", "type": "github" }, "original": { - "owner": "nix-systems", - "repo": "default", + "owner": "numtide", + "repo": "treefmt-nix", "type": "github" } }, @@ -1801,11 +1627,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1694529238, - "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { @@ -1832,53 +1658,17 @@ "type": "github" } }, - "utils_3": { - "locked": { - "lastModified": 1605370193, - "narHash": "sha256-YyMTf3URDL/otKdKgtoMChu4vfVL3vCMkRqpGifhUn0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "5021eac20303a61fafe17224c087f5519baed54d", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "utils_4": { - "inputs": { - "systems": "systems_9" - }, - "locked": { - "lastModified": 1694529238, - "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, "vault-secrets": { "inputs": { - "flake-compat": "flake-compat_8", - "flake-utils": "flake-utils_9", - "nix": "nix", - "nixpkgs": "nixpkgs_12", - "utils": "utils_4" + "flake-compat": "flake-compat_6", + "nixpkgs": "nixpkgs_11" }, "locked": { - "lastModified": 1702898724, - "narHash": "sha256-ypRLpx5VCTyE3mPKNRSOLMfqaOkyLXNU7opn0+dI/Jg=", + "lastModified": 1714988039, + "narHash": "sha256-ZYPX1Skhy9ZEfeRkAzdqO+MvjBdF4a7blrXcTJ3q/Yw=", "owner": "serokell", "repo": "vault-secrets", - "rev": "9139484e388fe98e3facc097b66c018049d5e123", + "rev": "44ef2078d9149aa3b23fe132e8c8d8bbd624c06c", "type": "github" }, "original": { @@ -1889,15 +1679,15 @@ }, "vault-unseal": { "inputs": { - "flake-utils": "flake-utils_10", - "nixpkgs": "nixpkgs_13" + "flake-utils": "flake-utils_6", + "nixpkgs": "nixpkgs_12" }, "locked": { - "lastModified": 1683013874, - "narHash": "sha256-B8bQb9IMkrDvtqFUoF/PuBma8Qa2jU7Xv7cFSchg9V8=", + "lastModified": 1729410873, + "narHash": "sha256-gWcGwGxRSsHtVXGEaCw1bhmqnJaVIjbxJkt98F9HxLE=", "ref": "refs/heads/main", - "rev": "91e7262e87878609c2d6619210988b241e8f8f62", - "revCount": 11, + "rev": "f05093a8d608892d2e4499e02117428b405f82a1", + "revCount": 12, "type": "git", "url": "https://git.0x76.dev/v/vault-unseal.git" }, @@ -1909,15 +1699,15 @@ "webcord": { "inputs": { "dream2nix": "dream2nix", - "nixpkgs": "nixpkgs_14", + "nixpkgs": "nixpkgs_13", "webcord": "webcord_2" }, "locked": { - "lastModified": 1670874335, - "narHash": "sha256-nJ1LUVj3dIHP5B+XkZXUvY39OqaZn/MMHSFwsOSPnwI=", + "lastModified": 1707338607, + "narHash": "sha256-5UNW3kano8D4kbum+oRx18EjmJ1mLeOCwgGR1nWDwtg=", "owner": "fufexan", "repo": "webcord-flake", - "rev": "b462d57c36d664b48f047c96b2f9de091bff6e8b", + "rev": "82ffefda8c5f663d895d24b7500d5f489b5d7d47", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 0667b2b5..669d4e80 100644 --- a/flake.nix +++ b/flake.nix @@ -43,8 +43,6 @@ vault-unseal.url = "git+https://git.0x76.dev/v/vault-unseal.git"; gnome-autounlock-keyring.url = "git+https://git.0x76.dev/v/gnome-autounlock-keyring.git"; - attic.url = "github:zhaofengli/attic"; - # Website(s) essentials.url = "github:jdonszelmann/essentials"; }; @@ -57,7 +55,6 @@ , colmena , nixos-generators , nur - , attic , deploy , ... }@inputs: @@ -72,7 +69,7 @@ pkgs = import nixpkgs { inherit system; config.allowUnfree = true; - overlays = [ (import ./nixos/pkgs) vault-secrets.overlay nur.overlay ]; + overlays = [ (import ./nixos/pkgs) vault-secrets.overlays.default nur.overlay ]; }; pkgs_stable = import nixpkgs_stable { @@ -115,6 +112,7 @@ }; } nixHosts; + colmenaHive = colmena.lib.makeHive self.outputs.colmena; packages.${system} = { inherit apply-local; @@ -141,16 +139,13 @@ devShells.${system}.default = pkgs.mkShell { VAULT_ADDR = "http://vault.olympus:8200/"; buildInputs = with pkgs; [ - attic.packages.${pkgs.system}.attic apply-local colmena.packages.${system}.colmena deploy.packages.${system}.deploy-rs cachix deadnix statix - nixfmt nixpkgs-fmt - nixUnstable nil vault yamllint diff --git a/nixos/common/default.nix b/nixos/common/default.nix index 50e28ef5..a9e55a74 100644 --- a/nixos/common/default.nix +++ b/nixos/common/default.nix @@ -33,7 +33,7 @@ # https://src.fedoraproject.org/rpms/systemd/tree/acb90c49c42276b06375a66c73673ac3510255 systemd.oomd = { enableRootSlice = true; - enableUserServices = true; + enableUserSlices = true; }; # security.polkit.enable = lib.mkDefault true; @@ -43,7 +43,7 @@ nix = { registry.nixpkgs.flake = inputs.nixpkgs; nixPath = [ "nixpkgs=${inputs.nixpkgs}" ]; - package = pkgs.nixUnstable; + # package = pkgs.nixUnstable; settings = { auto-optimise-store = true; trusted-users = [ "root" "vivian" ]; @@ -79,6 +79,11 @@ nixpkgs.config.allowUnfree = true; + nixpkgs.config.permittedInsecurePackages = [ + "dotnet-sdk-6.0.428" + "aspnetcore-runtime-6.0.36" + ]; + # Limit the systemd journal to 100 MB of disk or the # last 7 days of logs, whichever happens first. services.journald.extraConfig = '' diff --git a/nixos/common/desktop/home.nix b/nixos/common/desktop/home.nix index 7032f2d1..a76d17de 100644 --- a/nixos/common/desktop/home.nix +++ b/nixos/common/desktop/home.nix @@ -11,7 +11,6 @@ in { btop calibre celluloid - cinny-desktop element-desktop fusee-launcher fractal-next @@ -21,7 +20,9 @@ in { helix inputs.attic.packages.${pkgs.system}.attic inputs.comma.packages.${pkgs.system}.default - inputs.webcord.packages.${pkgs.system}.default + # inputs.webcord.packages.${pkgs.system}.default + discord + dogdns jetbrains.clion jetbrains.rust-rover kdenlive diff --git a/nixos/common/modules/dns.nix b/nixos/common/modules/dns.nix index 056ea3aa..606d5b50 100644 --- a/nixos/common/modules/dns.nix +++ b/nixos/common/modules/dns.nix @@ -37,7 +37,7 @@ in { }; mode = mkOption { - type = enum [ "server" "laptop" ]; + type = types.enum [ "server" "laptop" ]; default = "laptop"; description = '' Whether to configure the DNS in server mode (listen on all interfaces) or laptop mode (just on localhost) @@ -54,7 +54,6 @@ in { enable = true; inherit (cfg) openFirewall; inherit (config.services.unbound) group; - controlInterface = config.services.unbound.localControlSocketPath; }; services.unbound = { enable = true; diff --git a/nixos/common/modules/flood.nix b/nixos/common/modules/flood.nix index 64c20b33..57b5de70 100644 --- a/nixos/common/modules/flood.nix +++ b/nixos/common/modules/flood.nix @@ -1,8 +1,8 @@ { config, pkgs, lib, ... }: with lib; -let cfg = config.services.flood; +let cfg = config.services.v.flood; in { - options.services.flood = { + options.services.v.flood = { enable = mkEnableOption "flood"; user = mkOption { @@ -94,7 +94,7 @@ in { type = types.bool; default = false; description = '' - Enable SSL. + Enable SSL. key.pem and fullchain.pem needed in runtime directory. ''; }; diff --git a/nixos/common/modules/gnome/default.nix b/nixos/common/modules/gnome/default.nix index 39fb375f..97cb8b17 100644 --- a/nixos/common/modules/gnome/default.nix +++ b/nixos/common/modules/gnome/default.nix @@ -58,7 +58,7 @@ in { atomix # puzzle game epiphany # web browser geary # email reader - gedit # text editor + pkgs.gedit # text editor gnome-calendar gnome-clocks gnome-contacts diff --git a/nixos/hosts/hades/bastion/configuration.nix b/nixos/hosts/hades/bastion/configuration.nix index 4ad48e76..74804fa2 100644 --- a/nixos/hosts/hades/bastion/configuration.nix +++ b/nixos/hosts/hades/bastion/configuration.nix @@ -9,12 +9,5 @@ vault ]; - environment.noXlibs = lib.mkForce false; - system.stateVersion = "22.11"; - - programs.gnupg.agent = { - enable = true; - pinentryFlavor = "curses"; - }; } diff --git a/nixos/hosts/hades/default.nix b/nixos/hosts/hades/default.nix index 82480c64..c2b43d4e 100644 --- a/nixos/hosts/hades/default.nix +++ b/nixos/hosts/hades/default.nix @@ -17,6 +17,7 @@ "unifi" = { ip = "192.168.0.101"; mac = "5a:00:b7:6c:d1:e2"; + nix = false; }; "jellyfin" = { ip = "192.168.0.102"; @@ -44,12 +45,9 @@ }; }; "tautulli" = { + nix = false; ip = "192.168.0.106"; mac = "BE:30:DB:F8:C6:55"; - exposes.tautulli = { - domain = "tautulli.xirion.net"; - port = 8080; - }; }; "dns-1" = { ip = "192.168.0.107"; @@ -83,10 +81,6 @@ mac = "00:50:56:91:0d:69"; type = "vm"; }; - "immich" = { - ip = "192.168.0.116"; - mac = "06:8a:8e:3e:43:45"; - }; "mail" = { ip = "192.168.0.118"; mac = "00:50:56:91:3b:03"; @@ -139,6 +133,7 @@ "attic" = { ip = "192.168.0.128"; mac = "9E:AF:E9:FE:D4:D9"; + nix = false; exposes.attic = { domain = "attic.xirion.net"; port = 8080; @@ -158,16 +153,6 @@ "tudelft" = { ip = "192.168.0.132"; mac = "AE:B3:93:4B:04:76"; - exposes = { - grist = { - domain = "grist.tud.0x76.dev"; - port = 8484; - }; - dex = { - domain = "dex.tud.0x76.dev"; - port = 8000; - }; - }; nix = false; }; "mastodon" = { diff --git a/nixos/hosts/hades/dns/configuration.nix b/nixos/hosts/hades/dns/configuration.nix index f9bc6c18..5c119927 100644 --- a/nixos/hosts/hades/dns/configuration.nix +++ b/nixos/hosts/hades/dns/configuration.nix @@ -34,6 +34,7 @@ "fedi.xirion.net typetransparent" "grist.tud.0x76.dev typetransparent" "dex.tud.0x76.dev typetransparent" + "queer.af typetransparent" ]; local-data = [ @@ -51,6 +52,7 @@ ''"fedi.xirion.net A 192.168.0.122"'' ''"grist.tud.0x76.dev A 192.168.0.122"'' ''"dex.tud.0x76.dev A 192.168.0.122"'' + ''"queer.af A 65.108.48.233"'' ]; }; } diff --git a/nixos/hosts/hades/jellyfin/configuration.nix b/nixos/hosts/hades/jellyfin/configuration.nix index 46cc88d2..b1e4c609 100644 --- a/nixos/hosts/hades/jellyfin/configuration.nix +++ b/nixos/hosts/hades/jellyfin/configuration.nix @@ -51,6 +51,9 @@ WS_CRON_IMPORT = "1"; WS_CRON_EXPORT = "1"; WS_CRON_PROGRESS = "1"; + WS_PUSH_ENABLED = "1"; + WS_SYNC_PROGRESS = "1"; + WS_API_AUTO = "1"; }; ports = [ "8080:8080" ]; volumes = [ "/var/lib/watchstate:/config:rw" ]; diff --git a/nixos/hosts/hades/lucy/configuration.nix b/nixos/hosts/hades/lucy/configuration.nix index 09a364d1..0afd8bf7 100644 --- a/nixos/hosts/hades/lucy/configuration.nix +++ b/nixos/hosts/hades/lucy/configuration.nix @@ -3,28 +3,6 @@ # and in the NixOS manual (accessible by running `nixos-help`). { pkgs, ... }: -# let -# Redefining the package instead of overriding as overriding GoModules seems broken -# see: https://github.com/NixOS/nixpkgs/issues/86349 -# _nuclei-latest = pkgs.buildGoModule rec { -# pname = "nuclei"; -# version = "2.9.2"; -# -# src = pkgs.fetchFromGitHub { -# owner = "projectdiscovery"; -# repo = pname; -# rev = "1f9a065713924b28b203e2108fc76d7a1ec49068"; -# hash = "sha256-QiegMoBy0gZMyQl2MRAwR14zXeh8wvVonyETdAzHbj0="; -# }; -# -# vendorHash = "sha256-0JNwoBqLKH1F/0Tr8o35gCSNT/2plIjIQvZRuzAZ5P8="; -# -# modRoot = "./v2"; -# subPackages = [ "cmd/nuclei/" ]; -# -# doCheck = false; -# }; -# in { { imports = [ ./hardware-configuration.nix ]; @@ -37,9 +15,13 @@ system.stateVersion = "23.05"; # Did you read the comment? # Additional packages - environment.systemPackages = with pkgs; [ jq wget jre8 ]; - boot.loader = { + environment.systemPackages = with pkgs; [ + jq + wget + jdk17 + ]; + boot.loader = { systemd-boot.enable = true; efi.canTouchEfiVariables = true; efi.efiSysMountPoint = "/boot"; @@ -49,28 +31,25 @@ enable = true; allowedTCPPorts = [ 25565 ]; }; + users = { + groups.mc = { }; + groups.users = { }; extraUsers = { - laura.extraGroups = [ "wheel" ]; - vivian.extraGroups = [ "wheel" ]; - - julia = { + vivian.extraGroups = [ + "wheel" + "mc" + ]; + julius = { isNormalUser = true; - shell = pkgs.zsh; - + group = "users"; + extraGroups = [ "wheel" ]; openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKTvqk+CJG4VwN8wg3H1ZdbUVj1JuX7RYKH1ewRKfCPv julia@juliadijkstraarch" - # Below is Evelyn's keys - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDnZSVdqSybDwVooSZ+SGFM0YNu15sO/jgVqCBGDm33wj0fML5T4oviUrY6yABh+eAgy/NAztgM7+6L8Hlze5DBeMwNAvj9gr9QSzUetW0iqCscZJ8dDbW30O9449gw2JY/XZzcFMZAP5QEQGEgG/6QQ3yRwA3DMCsGhQQ37l/aS+RsKYq3ZSN4f1nFJCrm397QB8r+bhaexufXqwumxe8rlefoUNNVnmu54FA8Pc3jSdsWT4s/3mqF6NiRa53w13SBWyS+zopCy1tTSnRszgAkldpE7Vft/QnmpFavAWHzpfArv/uFXQ3fx5Cj5t70zB6VJEtaBxhdKXeQUFBCn7fmwfjV0Un9b8jLW94uDhDD3059trhMvJvqKebuqyZe74MTZH0IC3IobpSb9fHHvxuRwUQOMkkJmjv1p2y2R6v7s2tA1sZlIEBmRDvZcKo4hPBe6q13OePV3O8KAFzCmPBIfE6kQ/nLc+3k9OjFWFTshdDXUYpSVGjNrv/IanCXbEs=" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA0KA0uOoLXUN4LhU7LgtSk0atWyPlEz5LA8dIXs9xTl" - - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIfooZjMWXvXZu1ReOEACDZ0TMb2WJRBSOLlWE8y6fUh victor@aoife" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAJBY9eQlR/JRnjVC2wKWQ+o02wDlGUlSgN/4e3i6ans" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBt9ie9/XBVPnKo6wENKjEd32hhPqjiQFnn+okXZ0LRT" ]; - - extraGroups = [ "mc" "wheel" ]; }; }; - groups.mc = { }; }; } diff --git a/nixos/hosts/hades/mastodon/configuration.nix b/nixos/hosts/hades/mastodon/configuration.nix index 4dde8175..ef981183 100644 --- a/nixos/hosts/hades/mastodon/configuration.nix +++ b/nixos/hosts/hades/mastodon/configuration.nix @@ -8,7 +8,6 @@ in { networking.interfaces.eth0.useDHCP = true; # Better cache hits - environment.noXlibs = lib.mkForce false; services = { elasticsearch = { enable = true; @@ -29,6 +28,11 @@ in { }; mastodon = { + + extraEnvFiles = [ + "${vs.mastodon}/active_record_secrets" + ]; + enable = true; package = pkgs.v.glitch-soc; streamingProcesses = 3; @@ -79,6 +83,8 @@ in { AUTHORIZED_FETCH = "true"; + MAX_TOOT_CHARS = "8192"; + # https://github.com/cybrespace/cybrespace-meta/blob/master/s3.md; # https://shivering-isles.com/Mastodon-and-Amazon-S3 S3_ENABLED = "true"; diff --git a/nixos/hosts/hades/nginx/configuration.nix b/nixos/hosts/hades/nginx/configuration.nix index 713011d2..59b9f3ec 100644 --- a/nixos/hosts/hades/nginx/configuration.nix +++ b/nixos/hosts/hades/nginx/configuration.nix @@ -62,9 +62,6 @@ in { }; }; - "peepeepoopoo.xirion.net" = proxy - "http://tautulli.hades:8080"; # Deprecated but Ricardo has it bookmarked already! - "plex.xirion.net" = { # Since we want a secure connection, we force SSL forceSSL = true; diff --git a/nixos/hosts/hades/overseerr/overseerr.nix b/nixos/hosts/hades/overseerr/overseerr.nix index eee8ac42..d88314e5 100644 --- a/nixos/hosts/hades/overseerr/overseerr.nix +++ b/nixos/hosts/hades/overseerr/overseerr.nix @@ -2,7 +2,7 @@ _: { networking.firewall.allowedTCPPorts = [ 5055 ]; # TODO: Write NixOS package https://github.com/NixOS/nixpkgs/issues/135885 virtualisation.oci-containers.containers.overseerr = { - image = "ghcr.io/sct/overseerr:1.33.2"; + image = "ghcr.io/sct/overseerr:1.34.0"; environment = { TZ = "Europe/Amsterdam"; }; ports = [ "5055:5055" ]; volumes = [ "/var/lib/overseerr/config:/app/config" ]; diff --git a/nixos/hosts/hades/overseerr/prowlarr.nix b/nixos/hosts/hades/overseerr/prowlarr.nix index 0296a78d..1181178e 100644 --- a/nixos/hosts/hades/overseerr/prowlarr.nix +++ b/nixos/hosts/hades/overseerr/prowlarr.nix @@ -5,7 +5,7 @@ _: { }; virtualisation.oci-containers.containers.flaresolverr = { - image = "flaresolverr/flaresolverr:v3.3.10"; + image = "flaresolverr/flaresolverr:v3.3.21"; ports = [ "8191:8191" ]; }; } diff --git a/nixos/hosts/hades/rtorrent/configuration.nix b/nixos/hosts/hades/rtorrent/configuration.nix index 26693094..fc9bf15a 100644 --- a/nixos/hosts/hades/rtorrent/configuration.nix +++ b/nixos/hosts/hades/rtorrent/configuration.nix @@ -47,7 +47,8 @@ in { enable = true; host = "0.0.0.0"; openFirewall = true; - inherit (config.services.rtorrent) downloadDir; + extraArgs = [ ]; + # inherit (config.services.rtorrent) downloadDir; }; vault-secrets.secrets.rtorrent = { services = [ "wg-quick-wg0" ]; }; diff --git a/nixos/hosts/hades/storage/configuration.nix b/nixos/hosts/hades/storage/configuration.nix index e2be5846..6b632346 100644 --- a/nixos/hosts/hades/storage/configuration.nix +++ b/nixos/hosts/hades/storage/configuration.nix @@ -6,9 +6,35 @@ ./fs.nix ]; - boot.loader.systemd-boot.enable = true; services = { + scrutiny = { + enable = true; + openFirewall = true; + influxdb.enable = true; + collector.enable = true; + collector.settings = { + host.id = "storage-vm"; + devices = [ + { + device = "/dev/disk/by-id/ata-QEMU_HARDDISK_QM00013"; + ignore = true; + } + { + device = "/dev/disk/by-id/ata-QEMU_HARDDISK_QM00015"; + ignore = true; + } + { + device = "/dev/disk/by-id/ata-QEMU_HARDDISK_QM00017"; + ignore = true; + } + { + device = "/dev/disk/by-id/ata-QEMU_HARDDISK_QM00019"; + ignore = true; + } + ]; + }; + }; # Enable the OpenSSH daemon. openssh.enable = true; @@ -32,6 +58,7 @@ d5 = "/mnt/disk5"; d6 = "/mnt/disk6"; d7 = "/mnt/disk7"; + # d8 = "/mnt/disk8"; }; contentFiles = [ "/var/lib/snapraid/snapraid.content" @@ -54,6 +81,18 @@ }; }; + users.groups.backup = { + gid = 10000; + members = [ "vivian" "syncthing" ]; + }; + + services.syncthing = { + enable = true; + openDefaultPorts = true; + guiAddress = "0.0.0.0:8384"; + group = "backup"; + }; + # Disable firewall, as NFS makes it annoying networking.firewall.enable = false; diff --git a/nixos/hosts/hades/storage/fs.nix b/nixos/hosts/hades/storage/fs.nix index 6e63cfca..6e4bd75f 100644 --- a/nixos/hosts/hades/storage/fs.nix +++ b/nixos/hosts/hades/storage/fs.nix @@ -9,46 +9,60 @@ "/mnt/disk1" = { fsType = "ext4"; device = "/dev/disk/by-partuuid/abbfc440-fb3d-4b33-92cb-948b2deeac53"; + options = [ "nofail" ]; }; "/mnt/disk2" = { fsType = "ext4"; device = "/dev/disk/by-partuuid/3a57ffa8-8a0f-4839-81df-7f34d99e9dbc"; + options = [ "nofail" ]; }; "/mnt/disk3" = { fsType = "ext4"; device = "/dev/disk/by-partuuid/0f72c5f8-b7db-4151-83f0-47e5f703aeb1"; + options = [ "nofail" ]; }; "/mnt/disk4" = { fsType = "ext4"; device = "/dev/disk/by-partuuid/b9c72b41-1538-436e-a595-49d1faa5ed01"; + options = [ "nofail" ]; }; "/mnt/disk5" = { fsType = "ext4"; device = "/dev/disk/by-partuuid/928d0200-eca1-4a69-b2d6-fbd23a5ee8cd"; + options = [ "nofail" ]; }; "/mnt/disk6" = { fsType = "ext4"; device = "/dev/disk/by-uuid/63381321-fe00-4838-8668-4d1decc94296"; + options = [ "nofail" ]; }; "/mnt/disk7" = { fsType = "ext4"; device = "/dev/disk/by-uuid/6c568887-9d2e-45ce-ab85-4c48cca2226a"; + options = [ "nofail" ]; }; + # "/mnt/disk8" = { + # fsType = "ext4"; + # device = "/dev/disk/by-partuuid/73d8eea4-c648-4c91-99dc-19940832ffe7"; + # }; + "/mnt/parity1" = { fsType = "ext4"; device = "/dev/disk/by-partuuid/7c9b88ed-b8f8-40c9-bbc3-b75d30e04e01"; + options = [ "nofail" ]; }; "/mnt/parity2" = { fsType = "ext4"; device = "/dev/disk/by-partuuid/5d2d7e3e-3730-4d9b-8759-dc14396f3357"; + options = [ "nofail" ]; }; "/mnt/storage" = { diff --git a/nixos/hosts/hades/tautulli/configuration.nix b/nixos/hosts/hades/tautulli/configuration.nix deleted file mode 100644 index 9976ee2a..00000000 --- a/nixos/hosts/hades/tautulli/configuration.nix +++ /dev/null @@ -1,23 +0,0 @@ -# Edit this configuration file to define what should be installed on -# your system. Help is available in the configuration.nix(5) man page -# and in the NixOS manual (accessible by running ‘nixos-help’). - -{ ... }: - -{ - imports = [ ]; - - # This value determines the NixOS release from which the default - # settings for stateful data, like file locations and database versions - # on your system were taken. It‘s perfectly fine and recommended to leave - # this value at the release version of the first install of this system. - # Before changing this value read the documentation for this option - # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). - system.stateVersion = "22.11"; # Did you read the comment? - - services.tautulli = { - enable = true; - port = 8080; - openFirewall = true; - }; -} diff --git a/nixos/hosts/hades/unifi/configuration.nix b/nixos/hosts/hades/unifi/configuration.nix index ef1aaecc..6d128dfb 100644 --- a/nixos/hosts/hades/unifi/configuration.nix +++ b/nixos/hosts/hades/unifi/configuration.nix @@ -11,10 +11,6 @@ openFirewall = true; }; - # Required for Java - # gets forced to true due the lxc profile - environment.noXlibs = lib.mkForce false; - # Unifi Web Port networking.firewall.allowedTCPPorts = [ 8443 ]; } diff --git a/nixos/hosts/olympus/bastion/configuration.nix b/nixos/hosts/olympus/bastion/configuration.nix index 3cb429d7..22014cfe 100644 --- a/nixos/hosts/olympus/bastion/configuration.nix +++ b/nixos/hosts/olympus/bastion/configuration.nix @@ -3,6 +3,22 @@ # and in the NixOS manual (accessible by running ‘nixos-help’). { pkgs, inputs, ... }: { +let + fix-vscode = pkgs.writeScriptBin "fix-vscode" '' + #!${pkgs.stdenv.shell} + # Check if vscode-server dir exists + if [[ -d "$HOME/.vscode-server/bin" ]]; then + # For every bin folder within + for versiondir in "$HOME"/.vscode-server/bin/*; do + # Remove bundled node (dynamic links are borked for nix) + rm "$versiondir/node" + # symlink node form the nixpkg + ln -s "${pkgs.nodejs-slim}/bin/node" "$versiondir/node" + done + fi + ''; +in +{ imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix diff --git a/nixos/hosts/olympus/ci/configuration.nix b/nixos/hosts/olympus/ci/configuration.nix index 0c80aac0..162b3e24 100644 --- a/nixos/hosts/olympus/ci/configuration.nix +++ b/nixos/hosts/olympus/ci/configuration.nix @@ -61,7 +61,7 @@ in { gitMinimal gnused jq - nixUnstable + nix nodejs statix vault diff --git a/nixos/hosts/olympus/default.nix b/nixos/hosts/olympus/default.nix index d8f7cb90..8f345560 100644 --- a/nixos/hosts/olympus/default.nix +++ b/nixos/hosts/olympus/default.nix @@ -19,7 +19,8 @@ ip = "10.42.42.4"; ip6 = "2001:41f0:9639:1:80f0:7cff:fecb:bd6d"; mac = "82:F0:7C:CB:BD:6D"; - type = "vm"; + # type = "vm"; + nix = false; # Now managed in the `new` branch }; "vault" = { ip = "10.42.42.6"; @@ -50,9 +51,7 @@ "kubernetes" = { ip = "10.42.42.10"; mac = "6E:A5:25:99:FE:68"; - exposes = { - flux.domain = "flux.0x76.dev"; - }; + nix = false; }; "dex" = { ip = "10.42.42.11"; @@ -85,13 +84,19 @@ profile = "dns"; ip = "10.42.42.15"; mac = "5E:F6:36:23:16:E3"; - tags = [ "dns" "networking" ]; + tags = [ + "dns" + "networking" + ]; }; "dns-2" = { profile = "dns"; ip = "10.42.42.16"; mac = "B6:04:0B:CD:0F:9F"; - tags = [ "dns" "networking" ]; + tags = [ + "dns" + "networking" + ]; }; "minio" = { ip = "10.42.42.17"; @@ -118,6 +123,7 @@ "unifi" = { ip = "10.42.42.20"; mac = "1A:88:A0:B0:65:B4"; + nix = false; }; "minecraft" = { ip = "10.42.42.21"; @@ -156,19 +162,16 @@ "grist" = { ip = "10.42.42.26"; mac = "B2:AA:AB:5D:2F:22"; - exposes.grist = { - domain = "grist.0x76.dev"; - port = 8484; - }; + nix = false; }; "bookwyrm" = { ip = "10.42.42.27"; mac = "9E:8A:6C:39:27:DE"; nix = false; - exposes.books = { - domain = "books.meowy.tech"; - port = 8001; - }; + # exposes.books = { + # domain = "books.meowy.tech"; + # port = 8001; + # }; }; "synapse" = { ip = "10.42.42.28"; @@ -193,6 +196,7 @@ "ci" = { ip = "10.42.42.33"; mac = "1E:24:DA:DB:4A:1A"; + nix = false; }; "nuc" = { ip = "10.42.42.42"; diff --git a/nixos/hosts/olympus/gitea/configuration.nix b/nixos/hosts/olympus/gitea/configuration.nix index fd471d38..2b90c2ed 100644 --- a/nixos/hosts/olympus/gitea/configuration.nix +++ b/nixos/hosts/olympus/gitea/configuration.nix @@ -21,8 +21,6 @@ in # Additional packages environment.systemPackages = with pkgs; [ ]; - environment.noXlibs = lib.mkForce false; - networking.firewall.allowedTCPPorts = [ port ]; services = { @@ -59,7 +57,7 @@ in "REPO_INDEXER_EXCLUDE" = "node_modules/**"; }; ui = { - "THEMES" = "forgejo-auto,forgejo-light,forgejo-dark,auto,gitea,arc-green,agatheme"; + "THEMES" = "forgejo-auto,forgejo-light,forgejo-dark,auto,gitea,arc-green"; "DEFAULT_THEME" = "forgejo-auto"; "USE_SERVICE_WORKER" = true; }; @@ -96,10 +94,10 @@ in group = "gitea"; }; - system.activationScripts.gitea-theme = - let target_dir = "${config.services.gitea.stateDir}/custom/public/css/"; - in lib.stringAfter [ "var" ] '' - mkdir -p ${target_dir} - ln -sf ${pkgs.v.gitea-agatheme} "${target_dir}/theme-agatheme.css" - ''; + # system.activationScripts.gitea-theme = + # let target_dir = "${config.services.gitea.stateDir}/custom/public/css/"; + # in lib.stringAfter [ "var" ] '' + # mkdir -p ${target_dir} + # ln -sf ${pkgs.v.gitea-agatheme} "${target_dir}/theme-agatheme.css" + # ''; } diff --git a/nixos/hosts/olympus/hedgedoc/configuration.nix b/nixos/hosts/olympus/hedgedoc/configuration.nix index 76defb5e..cb0a2d06 100644 --- a/nixos/hosts/olympus/hedgedoc/configuration.nix +++ b/nixos/hosts/olympus/hedgedoc/configuration.nix @@ -20,8 +20,6 @@ in # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "21.11"; # Did you read the comment? - environment.noXlibs = lib.mkForce false; - networking.firewall.allowedTCPPorts = [ port ]; vault-secrets.secrets.hedgedoc = { }; diff --git a/nixos/hosts/olympus/mailserver/configuration.nix b/nixos/hosts/olympus/mailserver/configuration.nix index c434d166..787ca2d2 100644 --- a/nixos/hosts/olympus/mailserver/configuration.nix +++ b/nixos/hosts/olympus/mailserver/configuration.nix @@ -3,8 +3,10 @@ # and in the NixOS manual (accessible by running ‘nixos-help’). { config, pkgs, ... }: -let vs = config.vault-secrets.secrets; -in { +let + vs = config.vault-secrets.secrets; +in +{ imports = [ ]; # This value determines the NixOS release from which the default @@ -15,19 +17,31 @@ in { # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "22.11"; # Did you read the comment? - networking.firewall.allowedTCPPorts = [ 80 443 ]; + networking.firewall.allowedTCPPorts = [ + 80 + 443 + ]; # needed as the mailserver configures its down DNS resolver networking.extraHosts = '' 10.42.42.6 vault.olympus ''; - vault-secrets.secrets.mailserver = { services = [ "dovecot2" "postfix" ]; }; + vault-secrets.secrets.mailserver = { + services = [ + "dovecot2" + "postfix" + ]; + }; mailserver = { enable = true; fqdn = "mail.0x76.dev"; - domains = [ "0x76.dev" "meowy.tech" "xirion.net" ]; + domains = [ + "0x76.dev" + "meowy.tech" + "xirion.net" + ]; certificateScheme = "acme-nginx"; enableManageSieve = true; @@ -44,15 +58,19 @@ in { # People "v@0x76.dev" = { hashedPasswordFile = "${vs.mailserver}/v@0x76.dev"; - catchAll = [ "xirion.net" "0x76.dev" ]; + catchAll = [ + "xirion.net" + "0x76.dev" + ]; aliases = [ "postmaster@0x76.dev" "abuse@0x76.dev" - - "v@meowy.tech" "abuse@meowy.tech" "postmaster@meowy.tech" + "abuse@xirion.net" + "postmaster@xirion.net" + "@meowy.tech" "@xirion.net" "@0x76.dev" ]; @@ -95,21 +113,34 @@ in { # index new email as they arrive autoIndex = true; # this only applies to plain text attachments, binary attachments are never indexed - indexAttachments = true; + # indexAttachments = true; enforced = "body"; memoryLimit = 2000; autoIndexExclude = [ "\\Junk" ]; }; }; - services = { - postfix.relayHost = "smtp.ziggozakelijk.nl"; - postfix.relayPort = 587; + services = { + postfix = { + + relayHost = "smtp.ziggozakelijk.nl"; + relayPort = 587; + }; + + rspamd = { + overrides."whitelist.conf".text = '' + whitelist_from { + fckn.gay = true; + } + ''; + }; roundcube = { enable = true; - package = pkgs.roundcube.withPlugins - (plugins: [ plugins.persistent_login pkgs.v.roundcube-swipe ]); + package = pkgs.roundcube.withPlugins (plugins: [ + plugins.persistent_login + pkgs.v.roundcube-swipe + ]); plugins = [ "archive" "managesieve" @@ -143,7 +174,9 @@ in { ''; }; - nginx = { enable = true; }; + nginx = { + enable = true; + }; }; security.acme.acceptTerms = true; diff --git a/nixos/hosts/olympus/minecraft/configuration.nix b/nixos/hosts/olympus/minecraft/configuration.nix index d052e3c7..4fd3cc5e 100644 --- a/nixos/hosts/olympus/minecraft/configuration.nix +++ b/nixos/hosts/olympus/minecraft/configuration.nix @@ -16,8 +16,6 @@ # Additional packages environment.systemPackages = with pkgs; [ ]; - environment.noXlibs = lib.mkForce false; - networking.firewall.allowedTCPPorts = [ ]; services.minecraft-server = { diff --git a/nixos/hosts/olympus/mosquitto/configuration.nix b/nixos/hosts/olympus/mosquitto/configuration.nix index 56cb9b65..de79e2c9 100644 --- a/nixos/hosts/olympus/mosquitto/configuration.nix +++ b/nixos/hosts/olympus/mosquitto/configuration.nix @@ -3,8 +3,10 @@ # and in the NixOS manual (accessible by running ‘nixos-help’). { config, pkgs, ... }: -let mosquittoPort = 1883; -in { +let + mosquittoPort = 1883; +in +{ imports = [ ]; # This value determines the NixOS release from which the default @@ -20,15 +22,21 @@ in { services.mosquitto = { enable = true; - listeners = [{ - port = mosquittoPort; - settings.allow_anonymous = true; - acl = [ "topic readwrite #" ]; - users = { - vivian = { acl = [ "readwrite #" ]; }; - zigbee2mqtt = { acl = [ "readwrite #" ]; }; - }; - }]; + listeners = [ + { + port = mosquittoPort; + settings.allow_anonymous = true; + acl = [ "topic readwrite #" ]; + users = { + vivian = { + acl = [ "readwrite #" ]; + }; + zigbee2mqtt = { + acl = [ "readwrite #" ]; + }; + }; + } + ]; }; @@ -39,7 +47,9 @@ in { homeassistant = true; permit_join = false; - serial = { port = "/dev/ttyUSB0"; }; + serial = { + port = "/dev/ttyUSB0"; + }; mqtt = { base_topic = "zigbee2mqtt"; @@ -47,10 +57,14 @@ in { user = "zigbee2mqtt"; }; - frontend = { port = 8080; }; + frontend = { + port = 8080; + }; }; }; - networking.firewall.allowedTCPPorts = - [ mosquittoPort config.services.zigbee2mqtt.settings.frontend.port ]; + networking.firewall.allowedTCPPorts = [ + mosquittoPort + config.services.zigbee2mqtt.settings.frontend.port + ]; } diff --git a/nixos/hosts/olympus/nginx/configuration.nix b/nixos/hosts/olympus/nginx/configuration.nix index b4f68c39..0b494a4f 100644 --- a/nixos/hosts/olympus/nginx/configuration.nix +++ b/nixos/hosts/olympus/nginx/configuration.nix @@ -5,7 +5,6 @@ let base_url = "https://chat.meowy.tech"; server_name = "meowy.tech"; }; - "m.identity_server" = { }; }; serverConfig."m.server" = "chat.meowy.tech:443"; mkWellKnown = data: '' @@ -13,7 +12,13 @@ let add_header Access-Control-Allow-Origin *; return 200 '${builtins.toJSON data}'; ''; -in { + + website = builtins.fetchGit { + url = "https://git.0x76.dev/v/0x76.dev.git"; + rev = "27baf03cdcd41a9ea4bd591071baf826f6950233"; + }; +in +{ # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave @@ -22,7 +27,10 @@ in { # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "21.05"; # Did you read the comment? - networking.firewall.allowedTCPPorts = [ 80 443 ]; + networking.firewall.allowedTCPPorts = [ + 80 + 443 + ]; services = { # Generates vhosts for all hosts that have an `exposes` section @@ -35,7 +43,7 @@ in { recommendedTlsSettings = true; recommendedOptimisation = true; recommendedBrotliSettings = true; - clientMaxBodySize = "500m"; + clientMaxBodySize = "5000M"; package = pkgs.nginxMainline; @@ -70,20 +78,21 @@ in { enableACME = true; forceSSL = true; - locations."/".extraConfig = '' - add_header Content-Type 'text/html; charset=UTF-8'; - return 200 '

Under Construction

'; - ''; + root = "${website}"; }; - "blog.xirion.net" = { + "vivian.is.fckn.gay" = { enableACME = true; forceSSL = true; - locations."/".extraConfig = '' - add_header Content-Type 'text/html; charset=UTF-8'; - return 200 '

Under Construction

'; - ''; + root = "${website}"; + }; + + "immich.0x76.dev" = { + enableACME = true; + forceSSL = true; + locations."/".proxyPass = "http://10.42.42.4:2283"; + locations."/".proxyWebsockets = true; }; # Meow @@ -95,10 +104,8 @@ in { add_header Content-Type 'text/html; charset=UTF-8'; return 200 '

meow

'; ''; - "= /.well-known/matrix/client".extraConfig = - mkWellKnown clientConfig; - "= /.well-known/matrix/server".extraConfig = - mkWellKnown serverConfig; + "= /.well-known/matrix/client".extraConfig = mkWellKnown clientConfig; + "= /.well-known/matrix/server".extraConfig = mkWellKnown serverConfig; }; }; "chat.meowy.tech" = { @@ -106,8 +113,9 @@ in { forceSSL = true; locations = { "/".extraConfig = '' - return 307 https://element.chat.meowy.tech; + return 303 https://element.chat.meowy.tech; ''; + "= /.well-known/matrix/client".extraConfig = mkWellKnown clientConfig; "/_matrix".proxyPass = "http://synapse.olympus:8008"; "/_synapse/client".proxyPass = "http://synapse.olympus:8008"; "/_synapse/admin" = { @@ -116,9 +124,7 @@ in { allow 127.0.0.1; allow 10.42.42.0/23; allow 192.168.0.0/23; - allow 80.60.83.220; - allow 83.128.154.23; - allow 62.45.26.248; + allow 62.45.180.183; allow 195.85.167.32/29; deny all; ''; @@ -138,11 +144,6 @@ in { }; }; }; - "es.0x76.dev" = { - enableACME = true; - forceSSL = true; - root = inputs.essentials.packages.${pkgs.system}.default; - }; "cinny.chat.meowy.tech" = { enableACME = true; forceSSL = true; @@ -155,6 +156,7 @@ in { }; }; }; + "admin.chat.meowy.tech" = { enableACME = true; forceSSL = true; diff --git a/nixos/hosts/olympus/synapse/configuration.nix b/nixos/hosts/olympus/synapse/configuration.nix index c2a87081..3116aec6 100644 --- a/nixos/hosts/olympus/synapse/configuration.nix +++ b/nixos/hosts/olympus/synapse/configuration.nix @@ -2,13 +2,17 @@ # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). + { config, pkgs, ... }: + let vs = config.vault-secrets.secrets; port = 8008; + slidingSyncPort = 8009; metricsPort = 9000; in -{ + + { imports = [ ]; # This value determines the NixOS release from which the default @@ -19,7 +23,7 @@ in # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "22.11"; # Did you read the comment? - networking.firewall.allowedTCPPorts = [ port metricsPort ]; + networking.firewall.allowedTCPPorts = [ port metricsPort slidingSyncPort ]; vault-secrets.secrets.synapse = { user = "matrix-synapse"; @@ -109,3 +113,5 @@ in }; }; } + + diff --git a/nixos/hosts/olympus/unifi/configuration.nix b/nixos/hosts/olympus/unifi/configuration.nix index d67b079d..45f417ae 100644 --- a/nixos/hosts/olympus/unifi/configuration.nix +++ b/nixos/hosts/olympus/unifi/configuration.nix @@ -17,8 +17,6 @@ networking.firewall.allowedTCPPorts = [ 8443 ]; - environment.noXlibs = lib.mkForce false; - services.unifi = { enable = true; unifiPackage = pkgs.unifi; diff --git a/nixos/hosts/olympus/victoriametrics/configuration.nix b/nixos/hosts/olympus/victoriametrics/configuration.nix index 93573b84..c612b24e 100644 --- a/nixos/hosts/olympus/victoriametrics/configuration.nix +++ b/nixos/hosts/olympus/victoriametrics/configuration.nix @@ -26,7 +26,7 @@ in { enable = true; listenAddress = ":${toString vmPort}"; # Data Retention period in months - retentionPeriod = 36; + retentionPeriod = "3y"; }; vmagent = { diff --git a/nixos/hosts/olympus/wireguard/configuration.nix b/nixos/hosts/olympus/wireguard/configuration.nix index 3e240290..e6187fd9 100644 --- a/nixos/hosts/olympus/wireguard/configuration.nix +++ b/nixos/hosts/olympus/wireguard/configuration.nix @@ -18,7 +18,6 @@ in { # Additional packages environment.systemPackages = with pkgs; [ wireguard-tools ]; - environment.noXlibs = lib.mkForce false; networking = { firewall.allowedUDPPorts = diff --git a/nixos/hosts/thalassa/default.nix b/nixos/hosts/thalassa/default.nix index 5b1e1db9..75de6e72 100644 --- a/nixos/hosts/thalassa/default.nix +++ b/nixos/hosts/thalassa/default.nix @@ -2,5 +2,6 @@ "aoife" = { type = "local"; mac = "04:7b:cb:b6:2d:88"; + nix = false; }; } diff --git a/nixos/pkgs/default.nix b/nixos/pkgs/default.nix index 5f7180fc..68781322 100644 --- a/nixos/pkgs/default.nix +++ b/nixos/pkgs/default.nix @@ -1,5 +1,5 @@ # nix-build -E 'with import {}; callPackage ./default.nix {}' -_final: prev: { +final: prev: { v = { glitch-soc = prev.callPackage ./glitch-soc { }; diff --git a/nixos/pkgs/glitch-soc/README.md b/nixos/pkgs/glitch-soc/README.md new file mode 100644 index 00000000..c811fa4c --- /dev/null +++ b/nixos/pkgs/glitch-soc/README.md @@ -0,0 +1,21 @@ +# Mastodon Glitch Edition + + + +Based on [nixpkgs upstream](https://github.com/NixOS/nixpkgs/tree/master/pkgs/servers/mastodon). + +Modifications for the new yarn berry lockfiles and some other improvements stolen and adjusted (with permissions) from [catgirl.cloud](https://git.catgirl.cloud/999eagle/dotfiles-nix/-/tree/main/overlay/mastodon/glitch) (see also https://github.com/NixOS/nixpkgs/issues/277697). + +I've also made some further modifications myself to try and simplify the package and better understand it. + +## Updating + +The package can be updated to the latest glitch-soc commit with `update.sh`. + +- the `deps.patch` for the yarn lockfile will probably not work anymore +- in that case, delete it before running `update.sh` +- then try to build the package +- when it fails again with a yarn error, run `nix log` to get the full yarn output +- take the diff from there and adjust `deps.patch` accordingly +- also, the yarn hash in `version_data.nix` has to be adjusted manually +- build the package and paste the hash from the error message into `yarnHash` diff --git a/nixos/pkgs/glitch-soc/default.nix b/nixos/pkgs/glitch-soc/default.nix index ac4083fd..20a84ff2 100644 --- a/nixos/pkgs/glitch-soc/default.nix +++ b/nixos/pkgs/glitch-soc/default.nix @@ -1,84 +1,100 @@ -{ lib, stdenv, nodejs-slim, bundlerEnv, nixosTests -, yarn, callPackage, imagemagick, ffmpeg, file, ruby, writeShellScript -, fetchYarnDeps, prefetch-yarn-deps -, brotli - - # Allow building a fork or custom version of Mastodon: -, pname ? "mastodon" -, version ? srcOverride.version -, patches ? [] - # src is a package -, srcOverride ? callPackage ./source.nix { inherit patches; } -, gemset ? ./. + "/gemset.nix" -, yarnHash ? srcOverride.yarnHash +{ stdenv, nodejs-slim, bundlerEnv, defaultGemConfig +, yarn-berry, callPackage, ruby, writeShellScript +, brotli, openssl }: -stdenv.mkDerivation rec { - inherit pname version; +let - src = srcOverride; + # optimally, updates only need to touch `version_data.nix`, and nothing else should be in there + versionData = import ./version_data.nix; + # use the first 7 characters of the glitch-soc commit hash as version string + version = builtins.substring 0 7 versionData.rev; + + # the patched glitch-soc source + src = callPackage ./source.nix { }; + + # ruby gems, built from `gemset.nix`, which is generated by bundix in `update.sh` from the source Gemfile mastodonGems = bundlerEnv { - name = "${pname}-gems-${version}"; - inherit version gemset ruby; + name = "glitch-soc-gems-${version}"; # bundlerEnv breaks when pname is set instead + inherit version; + ruby = ruby; + gemset = ./gemset.nix; gemdir = src; - # This fix (copied from https://github.com/NixOS/nixpkgs/pull/76765) replaces the gem - # symlinks with directories, resolving this error when running rake: - # /nix/store/451rhxkggw53h7253izpbq55nrhs7iv0-mastodon-gems-3.0.1/lib/ruby/gems/2.6.0/gems/bundler-1.17.3/lib/bundler/settings.rb:6:in `': uninitialized constant Bundler::Settings (NameError) - postBuild = '' - for gem in "$out"/lib/ruby/gems/*/gems/*; do - cp -a "$gem/" "$gem.new" - rm "$gem" - # needed on macOS, otherwise the mv yields permission denied - chmod +w "$gem.new" - mv "$gem.new" "$gem" - done - ''; + /* + See: + - https://wiki.nixos.org/wiki/Packaging/Ruby#Adding_a_global_override_for_a_gem + - https://nixos.org/manual/nixpkgs/stable/#gem-specific-configurations-and-workarounds + */ + gemConfig = defaultGemConfig // { + hiredis-client = attrs: { + buildInputs = [ openssl ]; + }; + }; }; + # fetches JS dependencies via yarn based on the lockfile in the source + mastodonYarnDeps = yarn-berry.fetchYarnBerryDeps { + inherit src; + hash = versionData.yarnHash; + missingHashes = ./missing-hashes.json; + }; + + # builds the node modules for mastodon using the previously fetched yarn deps mastodonModules = stdenv.mkDerivation { - pname = "${pname}-modules"; - inherit src version; + pname = "glitch-soc-modules"; + inherit version src; - yarnOfflineCache = fetchYarnDeps { - yarnLock = "${src}/yarn.lock"; - hash = yarnHash; - }; + yarnOfflineCache = mastodonYarnDeps; + missingHashes = ./missing-hashes.json; - nativeBuildInputs = [ prefetch-yarn-deps nodejs-slim yarn mastodonGems mastodonGems.wrappedRuby brotli ]; + nativeBuildInputs = [ + nodejs-slim + yarn-berry + yarn-berry.yarnBerryConfigHook + brotli + mastodonGems + mastodonGems.wrappedRuby + ]; RAILS_ENV = "production"; NODE_ENV = "production"; + /* + So it seems that somehow a change in Linux 6.9 changed something that broke libuv, an IO lib + used by Node. This undocumented env var disables the broken IO feature in libuv and it works + again. + + - https://lore.kernel.org/lkml/d7003b6e-b8e3-41c4-9e6e-2b9abd0c5572@gmail.com/t/ + - https://github.com/nodejs/node/issues/53051#issuecomment-2124940205 + - https://github.com/nodejs/docker-node/issues/1912#issuecomment-1594233686 + */ + UV_USE_IO_URING = "0"; + buildPhase = '' runHook preBuild - export HOME=$PWD - # This option is needed for openssl-3 compatibility - # Otherwise we encounter this upstream issue: https://github.com/mastodon/mastodon/issues/17924 - export NODE_OPTIONS=--openssl-legacy-provider - 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 SECRET_KEY_BASE_DUMMY=1 - patchShebangs ~/bin - patchShebangs ~/node_modules + patchShebangs bin - # 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 - rm -rf ~/node_modules/.cache + rm -rf node_modules/.cache + + # Remove workspace "package" as it contains broken symlinks + # See https://github.com/NixOS/nixpkgs/issues/380366 + rm -rf node_modules/@mastodon + + # 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)' \ + # see: https://git.catgirl.cloud/999eagle/dotfiles-nix/-/blob/5d0da33c4f6b52b48777b404593c68a13e292721/overlay/mastodon/glitch/default.nix#L30 + # see: https://code.hackerspace.pl/ar/nibylandia/src/commit/7bbb773554204026644fb98c9463fd15726976e9/pkgs/glitch-soc/modules.nix#L52 + find public/assets public/packs -type f -regextype posix-extended -iregex '.*\.(css|html|js|js.map|json|svg)' \ + -exec gzip --best --keep --force {} ';' \ -exec brotli --best --keep {} ';' runHook postBuild @@ -96,7 +112,15 @@ stdenv.mkDerivation rec { ''; }; - propagatedBuildInputs = [ imagemagick ffmpeg file mastodonGems.wrappedRuby ]; +# the actual main glitch-soc package + +in stdenv.mkDerivation { + + pname = "glitch-soc"; + inherit version src mastodonGems mastodonModules; + + propagatedBuildInputs = [ mastodonGems.wrappedRuby ]; + nativeBuildInputs = [ brotli ]; buildInputs = [ mastodonGems nodejs-slim ]; buildPhase = '' @@ -153,17 +177,4 @@ stdenv.mkDerivation rec { runHook postInstall ''; - passthru = { - tests.mastodon = nixosTests.mastodon; - # run with: nix-shell ./maintainers/scripts/update.nix --argstr package mastodon - updateScript = ./update.sh; - }; - - meta = with lib; { - description = "Self-hosted, globally interconnected microblogging software based on ActivityPub"; - homepage = "https://joinmastodon.org"; - license = licenses.agpl3Plus; - platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" ]; - maintainers = with maintainers; [ happy-river erictapen izorkin ghuntley ]; - }; } diff --git a/nixos/pkgs/glitch-soc/gemset.nix b/nixos/pkgs/glitch-soc/gemset.nix index 2f780a38..d15e4189 100644 --- a/nixos/pkgs/glitch-soc/gemset.nix +++ b/nixos/pkgs/glitch-soc/gemset.nix @@ -5,43 +5,43 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0zd3zjpmrx06jiiyrxmsj94mfcxraxr0h3qlk61860slakmn4sg9"; + sha256 = "18496axh89kakw5f82mmmac3w9rwb0b0wq4j6la806p9cbgy5k3v"; type = "gem"; }; - version = "7.1.1"; + version = "8.0.2"; }; actionmailbox = { - dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail" "net-imap" "net-pop" "net-smtp"]; + dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "13n7178paqy2p2svsh21yfvzmpf4anwgmnxx6anyslr90zcyksg1"; + sha256 = "1nyfwa1kj0cm1scqsbv723ypv69bzaxh886hliyjbrhk752v73rx"; type = "gem"; }; - version = "7.1.1"; + version = "8.0.2"; }; actionmailer = { - dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "net-imap" "net-pop" "net-smtp" "rails-dom-testing"]; + dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "rails-dom-testing"]; groups = ["default" "development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1nr7njlr6pccglqp36imc8mhff73agcdky57a9alrkyrbzdnll42"; + sha256 = "1l3pnba14p0p7zsh366c31maxap030c97597vjimdv3nhnrnijdh"; type = "gem"; }; - version = "7.1.1"; + version = "8.0.2"; }; actionpack = { - dependencies = ["actionview" "activesupport" "nokogiri" "rack" "rack-session" "rack-test" "rails-dom-testing" "rails-html-sanitizer"]; + dependencies = ["actionview" "activesupport" "nokogiri" "rack" "rack-session" "rack-test" "rails-dom-testing" "rails-html-sanitizer" "useragent"]; groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0b2r4h30fybd064xicfjr38j3hpyqx622fb4fjl3rk5ya36b9r1d"; + sha256 = "0y2b5ydiqy32jbd9g5bl6v4aw6d7pjn5f3w2rxf2j59q9w307rwk"; type = "gem"; }; - version = "7.1.1"; + version = "8.0.2"; }; actiontext = { dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "globalid" "nokogiri"]; @@ -49,10 +49,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "04wjw7iy43vh8dsavi2mka11nkv85nxs7bx8aw85w2mrc3y69jfz"; + sha256 = "1grs41yr3nzw7zbnz0vkv8f4qd448a632saxkm3vnbzf68hb63d4"; type = "gem"; }; - version = "7.1.1"; + version = "8.0.2"; }; actionview = { dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"]; @@ -60,10 +60,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "02c51f3a2kan3s45m21sx08jjz9xm4l2kvk475ir06vgmgr3girn"; + sha256 = "1fyfyxf2a798lxq6sfpnj94kmnpfp17xlhvjy428zhfzbi0f2f70"; type = "gem"; }; - version = "7.1.1"; + version = "8.0.2"; }; active_model_serializers = { dependencies = ["actionpack" "activemodel" "case_transform" "jsonapi-renderer"]; @@ -71,10 +71,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "13n1ipn0dg3k852xhfzdvkr1ljq76xvfnm79qzdix2ishiy1gphl"; + sha256 = "0k0cig5ic38vfd7iba3rv3h7hs2lmycqp0wx4w286kmbhch5n9q8"; type = "gem"; }; - version = "0.10.14"; + version = "0.10.15"; }; activejob = { dependencies = ["activesupport" "globalid"]; @@ -82,10 +82,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1qhpzjlh8sm8gqi11yng1sxayfn13pw9j2pgjw57bcmifpav6rd5"; + sha256 = "1jjk31di5kvcflc90wmgdd50jzhljhafi166h6hg67kbwd2qn8mh"; type = "gem"; }; - version = "7.1.1"; + version = "8.0.2"; }; activemodel = { dependencies = ["activesupport"]; @@ -93,10 +93,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "16m6szgwhs7xnrkbib7di872k40r2iffx06g4gjiy4bb2g1d6bqz"; + sha256 = "0v35y2jzqlfy1wnrzlzj2cxylhnz09vykaa1l2dnkq7sl5zzpq8a"; type = "gem"; }; - version = "7.1.1"; + version = "8.0.2"; }; activerecord = { dependencies = ["activemodel" "activesupport" "timeout"]; @@ -104,10 +104,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "09b3x4g4b3ihx9mvahz6ysm8dv41l8vkdfhxg0bdcqm4yg007pgq"; + sha256 = "02nrya34qviawdkssyahb3mg08kqdc461b320a6ikr245jwp0d3r"; type = "gem"; }; - version = "7.1.1"; + version = "8.0.2"; }; activestorage = { dependencies = ["actionpack" "activejob" "activerecord" "activesupport" "marcel"]; @@ -115,21 +115,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1400b9fa4zv39qs6ma0lirf840zdn7qp3v86l9vhgwjzzvhmkhhc"; + sha256 = "0xr9cy6h8il61qq6w3rkvl56visms45ljm8f43r3ibh61wg24ggq"; type = "gem"; }; - version = "7.1.1"; + version = "8.0.2"; }; activesupport = { - dependencies = ["base64" "bigdecimal" "concurrent-ruby" "connection_pool" "drb" "i18n" "minitest" "mutex_m" "tzinfo"]; + dependencies = ["base64" "benchmark" "bigdecimal" "concurrent-ruby" "connection_pool" "drb" "i18n" "logger" "minitest" "securerandom" "tzinfo" "uri"]; groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "18jqxsjz9vs89v9jwz4f5vw9yj91cc2l2jwlzfgnxg8wmyjbqw47"; + sha256 = "0pm40y64wfc50a9sj87kxvil2102rmpdcbv82zf0r40vlgdwsrc5"; type = "gem"; }; - version = "7.1.1"; + version = "8.0.2"; }; 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"]; @@ -162,77 +162,56 @@ }; version = "0.3.0"; }; - annotate = { - dependencies = ["activerecord" "rake"]; + annotaterb = { + dependencies = ["activerecord" "activesupport"]; groups = ["development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1lw0fxb5mirsdp3bp20gjyvs7clvi19jbxnrm2ihm20kzfhvlqcs"; + sha256 = "1gdlas9fl9j7p7s6jvyakbidvg2almhbbk7a7px4fp6xma58yczh"; type = "gem"; }; - version = "3.2.0"; + version = "4.17.0"; }; ast = { groups = ["default" "development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y"; + sha256 = "10yknjyn0728gjn6b5syynvrvrwm66bhssbxq8mkhshxghaiailm"; type = "gem"; }; - version = "2.4.2"; - }; - attr_encrypted = { - dependencies = ["encryptor"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "034x6mbrv9apd83v99v9pm8vl3d17w5bbwws26gr4wv95fylmgnc"; - type = "gem"; - }; - version = "4.0.0"; + version = "2.4.3"; }; attr_required = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1g22axmi2rhhy7w8c3x6gppsawxqavbrnxpnmphh22fk7cwi0kh2"; + sha256 = "16fbwr6nmsn97n0a6k1nwbpyz08zpinhd6g7196lz1syndbgrszh"; type = "gem"; }; - version = "1.0.1"; - }; - awrence = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0gj8f8c54r9cabkm41s59sa1ca5wpbipw7gq3sfl87x9296227fx"; - type = "gem"; - }; - version = "1.2.1"; + version = "1.0.2"; }; aws-eventstream = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1pyis1nvnbjxk12a43xvgj2gv0mvp4cnkc1gzw0v1018r61399gz"; + sha256 = "1mvjjn8vh1c3nhibmjj9qcwxagj6m9yy961wblfqdmvhr9aklb3y"; type = "gem"; }; - version = "1.2.0"; + version = "1.3.2"; }; aws-partitions = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0m2kha6ip4ynhvl1l8z4vg0j96ngq4f2v6jl4j2y27m2kzmgcxz5"; + sha256 = "1y34xkflb4fd54k1cbrd9xw6ff2znwn1drbnvy9ywngiyynwff1i"; type = "gem"; }; - version = "1.809.0"; + version = "1.1103.0"; }; aws-sdk-core = { dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"]; @@ -240,10 +219,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0xjw9cf6ldbw50xi5ric8d63r8kybpsvaqxh2v6n7374hfady73i"; + sha256 = "1vmi65a22dq0rhjiydr94zwpn9hx3vib7vp922ccjg0vrih7mlzy"; type = "gem"; }; - version = "3.181.0"; + version = "3.215.1"; }; aws-sdk-kms = { dependencies = ["aws-sdk-core" "aws-sigv4"]; @@ -251,10 +230,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1zr5w2cjd895abyn7y5gifhq37bxcinssvdx2l1qmlkllbdxbwq0"; + sha256 = "0xd3ddd9jiapkgv8im4pl9dcdy2ps7qjsssf2nz3q6sd1ca8x0di"; type = "gem"; }; - version = "1.71.0"; + version = "1.96.0"; }; aws-sdk-s3 = { dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"]; @@ -262,10 +241,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0yymj15nwnvam95lw5fxwxx7b6xm4hkj8z7byzvjmx9aji1x245m"; + sha256 = "10ziy8zslfjs0ihls7wiq6zvsncq89azh36rshmlylry1hhxjbxz"; type = "gem"; }; - version = "1.133.0"; + version = "1.177.0"; }; aws-sigv4 = { dependencies = ["aws-eventstream"]; @@ -273,42 +252,31 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0z889c4c1w7wsjm3szg64ay5j51kjl4pdf94nlr1yks2rlanm7na"; + sha256 = "1nx1il781qg58nwjkkdn9fw741cjjnixfsh389234qm8j5lpka2h"; type = "gem"; }; - version = "1.6.0"; + version = "1.11.0"; }; - azure-storage-blob = { - dependencies = ["azure-storage-common" "nokogiri"]; + azure-blob = { + dependencies = ["rexml"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0qq3knsy7nj7a0r8m19spg2bgzns9b3j5vjbs9mpg49whhc63dv1"; + sha256 = "1zfl00vwx28a8s38spfxinicic1nd7q1phd3cmjxj8mwlfswc3j4"; type = "gem"; }; - version = "2.0.3"; - }; - azure-storage-common = { - dependencies = ["faraday" "faraday_middleware" "net-http-persistent" "nokogiri"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0swmsvvpmy8cdcl305p3dl2pi7m3dqjd7zywfcxmhsz0n2m4v3v0"; - type = "gem"; - }; - version = "2.0.4"; + version = "0.5.8"; }; base64 = { groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0cydk9p2cv25qysm0sn2pb97fcpz1isa7n3c8xm1gd99li8x6x8c"; + sha256 = "0yx9yn47a8lkfcjmigk79fykxvr80r4m1i35q82sxzynpbm7lcr7"; type = "gem"; }; - version = "0.1.1"; + version = "0.3.0"; }; bcp47_spec = { groups = ["default"]; @@ -325,10 +293,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "14crcsmcsyiskr9xzgzcfz2dr74zg1jvavrrxpf5vnn9q75fakz9"; + sha256 = "16a0g2q40biv93i1hch3gw8rbmhp77qnnifj1k0a6m7dng3zh444"; type = "gem"; }; - version = "3.1.19"; + version = "3.1.20"; + }; + benchmark = { + groups = ["default" "development" "pam_authentication" "production" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kicilpma5l0lwayqjb5577bm0hbjndj2gh150xz09xsgc1l1vyl"; + type = "gem"; + }; + version = "0.4.1"; }; better_errors = { dependencies = ["erubi" "rack" "rouge"]; @@ -341,36 +319,25 @@ }; version = "2.10.1"; }; - better_html = { - dependencies = ["actionview" "activesupport" "ast" "erubi" "parser" "smart_properties"]; - groups = ["default" "development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1sk5s5lpwbd53s4a1xzm02nys3kfqdw5mh9i2qfn04hjsk8wk3gc"; - type = "gem"; - }; - version = "2.0.2"; - }; bigdecimal = { - groups = ["default" "development" "pam_authentication" "production" "test"]; + groups = ["default" "development" "opentelemetry" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "07y615s8yldk3k13lmkhpk1k190lcqvmxmnjwgh4bzjan9xrc36y"; + sha256 = "1p2szbr4jdvmwaaj2kxlbv1rp0m6ycbgfyp0kjkkkswmniv5y21r"; type = "gem"; }; - version = "3.1.4"; + version = "3.2.2"; }; bindata = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "04y4zgh4bbcb8wmkxwfqg4saky1d1f3xw8z6yk543q13h8ky8rz5"; + sha256 = "0n4ymlgik3xcg94h52dzmh583ss40rl3sn0kni63v56sq8g6l62k"; type = "gem"; }; - version = "2.4.15"; + version = "2.5.1"; }; binding_of_caller = { dependencies = ["debug_inspector"]; @@ -378,20 +345,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"]; @@ -399,51 +366,41 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1vcg52gwl64xhhal6kwk1pc01y1klzdlnv1awyk89kb91z010x7q"; + sha256 = "003xl226y120cbq1n99805jw6w75gcz1gs941yz3h7li3qy3kqha"; type = "gem"; }; - version = "1.16.0"; + version = "1.18.6"; }; brakeman = { + dependencies = ["racc"]; groups = ["development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1gliwnyma9f1mpr928c79i36q51yl68dwjd3jgwvsyr4piiiqr1r"; + sha256 = "11ip6dgi7147wp8jgwk9g95k07323zh83q699d6wxif6rqdxj0mn"; type = "gem"; }; - version = "6.0.1"; + version = "7.0.2"; }; browser = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0g4bcpax07kqqr9cp7cjc7i0pcij4nqpn1rdsg2wdwhzf00m6x32"; + sha256 = "0bffb8dddrg6zn8c74swhy8mq2mysb195hi7chwwj9c8g2am4798"; type = "gem"; }; - version = "5.3.1"; - }; - brpoplpush-redis_script = { - dependencies = ["concurrent-ruby" "redis"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1nd5zj5yqmhv9lrsqz8s2dqq28v4ywy95qrw7nzhhf89dl4dq49l"; - type = "gem"; - }; - version = "0.1.3"; + version = "6.2.0"; }; builder = { groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr"; + sha256 = "0pw3r2lyagsxkm71bf44v5b74f7l9r7di22brbyji9fwz791hya9"; type = "gem"; }; - version = "3.2.4"; + version = "3.3.0"; }; bundler-audit = { dependencies = ["thor"]; @@ -451,10 +408,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0gdx0019vj04n1512shhdx7hwphzqmdpw4vva2k551nd47y1dixx"; + sha256 = "0j0h5cgnzk0ms17ssjkzfzwz65ggrs3lsp53a1j46p4616m1s1bk"; type = "gem"; }; - version = "0.9.1"; + version = "0.9.2"; }; capybara = { dependencies = ["addressable" "matrix" "mini_mime" "nokogiri" "rack" "rack-test" "regexp_parser" "xpath"]; @@ -462,10 +419,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "114qm5f5vhwaaw9rj1h2lcamh46zl13v1m18jiw68zl961gwmw6n"; + sha256 = "1vxfah83j6zpw3v5hic0j70h519nvmix2hbszmjwm8cfawhagns2"; type = "gem"; }; - version = "3.39.2"; + version = "3.40.0"; + }; + capybara-playwright-driver = { + dependencies = ["addressable" "capybara" "playwright-ruby-client"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09jyhmyngwbw2apc77z80kw4d4kd0wdvn46xxks7vjlzgywilipg"; + type = "gem"; + }; + version = "0.5.6"; }; case_transform = { dependencies = ["activesupport"]; @@ -483,20 +451,30 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0511idr8xps9625nh3kxr68sdy6l3xy2kcz7r57g47fxb1v18jj3"; + sha256 = "1dsf9gjc2cj79vrnz2vgq573biqjw7ad4b0idm05xg6rb3y9gq4y"; type = "gem"; }; - version = "0.5.9.6"; + version = "0.5.9.8"; + }; + cgi = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rj7agrnd1a4282vg13qkpwky0379svdb2z2lc0wl8588q6ikjx3"; + type = "gem"; + }; + version = "0.4.2"; }; charlock_holmes = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0hybw8jw9ryvz5zrki3gc9r88jqy373m6v46ynxsdzv1ysiyr40p"; + sha256 = "1c1dws56r7p8y363dhyikg7205z59a3bn4amnv2y488rrq8qm7ml"; type = "gem"; }; - version = "0.7.7"; + version = "0.7.9"; }; chewy = { dependencies = ["activesupport" "elasticsearch" "elasticsearch-dsl"]; @@ -504,10 +482,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"]; @@ -524,10 +513,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0q11v0iabvr6rif0d025xh078ili5frrihlj0m04zfg7lgvagxji"; + sha256 = "198aswdyqlvcw9jkd95b7b8dp3fg0wx89kd1dx9wia1z36b1icin"; type = "gem"; }; - version = "0.2.0"; + version = "1.2.0"; }; cocoon = { groups = ["default"]; @@ -554,20 +543,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0krcwb6mn0iklajwngwsg850nk8k9b35dhmc2qkbdqvmifdi2y9q"; + sha256 = "1ipbrgvf0pp6zxdk5ascp6i29aybz2bx9wdrlchjmpx6mhvkwfw1"; type = "gem"; }; - version = "1.2.2"; + version = "1.3.5"; }; connection_pool = { groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1x32mcpm2cl5492kd6lbjbaf17qsssmpx9kdyr7z1wcif2cwyh0g"; + sha256 = "0nrhsk7b3sjqbyl1cah6ibf1kvi3v93a7wf4637d355hp614mmyg"; type = "gem"; }; - version = "2.4.1"; + version = "2.5.3"; }; cose = { dependencies = ["cbor" "openssl-signature_algorithm"]; @@ -575,21 +564,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"]; @@ -607,10 +596,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "04q1vin8slr3k8mp76qz0wqgap6f9kdsbryvgfq9fljhrm463kpj"; + sha256 = "1izp5vna86s7xivqzml4nviy01bv76arrd5is8wkncwp1by3zzbc"; type = "gem"; }; - version = "1.14.0"; + version = "1.21.1"; + }; + csv = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gz7r2kazwwwyrwi95hbnhy54kwkfac5swh2gy5p5vw36fn38lbf"; + type = "gem"; + }; + version = "3.3.5"; }; database_cleaner-active_record = { dependencies = ["activerecord" "database_cleaner-core"]; @@ -618,10 +617,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "12hdsqnws9gyc9sxiyc8pjiwr0xa7136m1qbhmd1pk3vsrrvk13k"; + sha256 = "1jxzgg3yccp3gjncl5ih0y13dcappmy0y8pq85wgjj0yx5fh0ixy"; type = "gem"; }; - version = "2.1.0"; + version = "2.2.1"; }; database_cleaner-core = { groups = ["default" "test"]; @@ -634,24 +633,35 @@ version = "2.0.1"; }; date = { - groups = ["default" "development"]; + groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "03skfikihpx37rc27vr3hwrb057gxnmdzxhmzd4bf4jpkl0r55w1"; + sha256 = "0kz6mc4b9m49iaans6cbx031j9y7ldghpi5fzsdh0n3ixwa8w9mz"; type = "gem"; }; - version = "3.3.3"; + version = "3.4.1"; + }; + debug = { + dependencies = ["irb" "reline"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1wmfy5n5v2rzpr5vz698sqfj1gl596bxrqw44sahq4x0rxjdn98l"; + type = "gem"; + }; + version = "1.11.0"; }; 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"]; @@ -659,21 +669,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "121ljaaapil79dcsl5mkh5k613hv58z4z3g2lrnzb5qvqpb3h1j8"; + sha256 = "1y57fpcvy1kjd4nb7zk7mvzq62wqcpfynrgblj558k3hbvz4404j"; type = "gem"; }; - version = "4.9.3"; + 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 = "15cbgb0hyq78myc6aaszzdrd9qll9n3qdhykmrx22qiyac3mnpy9"; + sha256 = "041c6zrwm3za1scr07kdgmnlxj7lnrr1jcb832grkavf1sh9wf4h"; type = "gem"; }; - version = "4.1.1"; + version = "6.1.0"; }; devise_pam_authenticatable2 = { dependencies = ["devise" "rpam2"]; @@ -691,10 +701,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0rwvjahnp7cpmracd8x732rjgnilqv2sx7d1gfrysslc3h039fa9"; + sha256 = "0qlrj2qyysc9avzlr4zs1py3x684hqm61n4czrsk1pyllz5x5q4s"; type = "gem"; }; - version = "1.5.0"; + version = "1.6.2"; }; discard = { dependencies = ["activerecord"]; @@ -702,31 +712,30 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1xavjhccyyzn9z6fz3034vgvzprc983mbrq6n9sc0drfw7m3vrip"; + sha256 = "1l35bpwnxqd6pqqy315a1y6bi2n8y6cd69dqh4gpi5nz7njx5z3f"; type = "gem"; }; - version = "1.2.1"; + version = "1.4.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"]; @@ -734,52 +743,40 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1q2pywgyn6cbnm0fh3dln5z1qgd1g8hvb4x8rppjc1bpfxnfhi13"; + sha256 = "1lsh9lzrglqlwm9icmn0ggrwjc9iy9308f9m59z1w2srmyp0fgd7"; type = "gem"; }; - version = "5.6.6"; + version = "5.8.2"; }; dotenv = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1n0pi8x8ql5h1mijvm8lgn6bhq4xjb5a500p5r1krq4s6j9lg565"; + sha256 = "1hwjsddv666wpp42bip3fqx7c5qq6s8lwf74dj71yn7d1h37c4cy"; type = "gem"; }; - version = "2.8.1"; - }; - dotenv-rails = { - dependencies = ["dotenv" "railties"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0v0gcbxzypcvy6fqq4gp80jb310xvdwj5n8qw9ci67g5yjvq2nxh"; - type = "gem"; - }; - version = "2.8.1"; + version = "3.1.8"; }; drb = { - dependencies = ["ruby2_keywords"]; groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0h9c2qiam82y3caapa2x157j1lkk9954hrjg3p22hxcsk8fli3vb"; + sha256 = "0wrkl7yiix268s2md1h6wh91311w95ikd8fy8m5gx589npyxc00b"; type = "gem"; }; - version = "2.1.1"; + version = "2.2.3"; }; - ed25519 = { + dry-cli = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0zb2dr2ihb1qiknn5iaj1ha1w9p7lj9yq5waasndlfadz225ajji"; + sha256 = "0nyrgj4a0ppk0qfp8cny4wb3hsr2cw55ynh2w973brhf54xxz5wc"; type = "gem"; }; - version = "1.3.0"; + version = "1.2.0"; }; elasticsearch = { dependencies = ["elasticsearch-api" "elasticsearch-transport"]; @@ -787,10 +784,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"]; @@ -798,10 +795,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"]; @@ -814,35 +811,57 @@ 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 = { + email_spec = { + dependencies = ["htmlentities" "launchy" "mail"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "049dhlyy2hcksp1wj9mx2fngk5limkm3afxysnizg1hi2dxbw8yz"; + type = "gem"; + }; + version = "2.3.0"; + }; + email_validator = { + dependencies = ["activemodel"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0s8rvfl0vn8w7k1sgkc234060jh468s3zd45xa64p1jdmfa3zwmb"; + sha256 = "0106y8xakq6frv2xc68zz76q2l2cqvhfjc7ji69yyypcbc4kicjs"; type = "gem"; }; - version = "3.0.0"; + version = "2.2.4"; + }; + erb = { + groups = ["default" "development" "pam_authentication" "production" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08rc8pzri3g7c85c76x84j05hkk12jvalrm2m3n97k1n7f03j13n"; + type = "gem"; + }; + version = "5.0.1"; }; erubi = { groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "08s75vs9cxlc4r1q2bjg4br8g9wc5lc5x5vl0vv4zq5ivxsdpgi7"; + sha256 = "1naaxsqkv5b3vklab5sbb9sdpszrjzlfsbqpy7ncbnw510xi10m0"; type = "gem"; }; - version = "1.12.0"; + version = "1.13.1"; }; et-orbi = { dependencies = ["tzinfo"]; @@ -850,164 +869,86 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1d2z4ky2v15dpcz672i2p7lb2nc793dasq3yq3660h2az53kss9v"; + sha256 = "0r6zylqjfv0xhdxvldr0kgmnglm57nm506pcm6085f0xqa68cvnj"; type = "gem"; }; - version = "1.2.7"; + version = "1.2.11"; }; excon = { + dependencies = ["logger"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "08r6qgbpkxxsihjmlspk3l1sr69q5hx35p1l4wp7rmkbzys89867"; + sha256 = "17asr18vawi08g3wbif0wdi8bnyj01d125saydl9j1f03fv0n16a"; type = "gem"; }; - version = "0.100.0"; + version = "1.2.5"; }; fabrication = { - groups = ["test"]; + groups = ["development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0bxssmjp49whzq2zv7w751gr4nkdaiwcxd1vda0byigwyrnj6f5q"; + sha256 = "1qrv8vvhjx9yi64bji6hrp08if14hmwdy08prg9qld3ij2nvz856"; type = "gem"; }; - version = "2.30.0"; + version = "3.0.0"; }; faker = { dependencies = ["i18n"]; - groups = ["test"]; + groups = ["development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0ysiqlvyy1351bzx7h92r93a35s32l8giyf9bac6sgr142sh3cnn"; + sha256 = "0wy4i4vl3h2v6scffx0zbp74vq1gfgq55m8x3n05kwp3na8h5a7r"; type = "gem"; }; - version = "3.2.1"; + version = "3.5.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"]; + dependencies = ["faraday-net_http" "json" "logger"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1c760q0ks4vj4wmaa7nh1dgvgqiwaw0mjr7v8cymy7i3ffgjxx90"; + sha256 = "0xbv450qj2bx0qz9l2pjrd3kc057y6bglc3na7a78zby8ssiwlyc"; type = "gem"; }; - version = "1.10.3"; + version = "2.13.1"; }; - faraday-em_http = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "12cnqpbak4vhikrh2cdn94assh3yxza8rq2p9w2j34bqg5q4qgbs"; - type = "gem"; - }; - version = "1.0.0"; - }; - faraday-em_synchrony = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1vgrbhkp83sngv6k4mii9f2s9v5lmp693hylfxp2ssfc60fas3a6"; - type = "gem"; - }; - version = "1.0.0"; - }; - faraday-excon = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0h09wkb0k0bhm6dqsd47ac601qiaah8qdzjh8gvxfd376x1chmdh"; - type = "gem"; - }; - version = "1.1.0"; - }; - faraday-httpclient = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0fyk0jd3ks7fdn8nv3spnwjpzx2lmxmg2gh4inz3by1zjzqg33sc"; - type = "gem"; - }; - version = "1.0.1"; - }; - faraday-multipart = { - dependencies = ["multipart-post"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "09871c4hd7s5ws1wl4gs7js1k2wlby6v947m2bbzg43pnld044lh"; - type = "gem"; - }; - version = "1.0.4"; - }; - faraday-net_http = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j"; - type = "gem"; - }; - version = "1.0.1"; - }; - faraday-net_http_persistent = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0dc36ih95qw3rlccffcb0vgxjhmipsvxhn6cw71l7ffs0f7vq30b"; - type = "gem"; - }; - version = "1.2.0"; - }; - faraday-patron = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "19wgsgfq0xkski1g7m96snv39la3zxz6x7nbdgiwhg5v82rxfb6w"; - type = "gem"; - }; - version = "1.0.0"; - }; - faraday-rack = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1h184g4vqql5jv9s9im6igy00jp6mrah2h14py6mpf9bkabfqq7g"; - type = "gem"; - }; - version = "1.0.0"; - }; - faraday-retry = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "153i967yrwnswqgvnnajgwp981k9p50ys1h80yz3q94rygs59ldd"; - type = "gem"; - }; - version = "1.0.3"; - }; - faraday_middleware = { + faraday-follow_redirects = { dependencies = ["faraday"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1bw8mfh4yin2xk7138rg3fhb2p5g2dlmdma88k82psah9mbmvlfy"; + sha256 = "1y87p3yk15bjbk0z9mf01r50lzxvp7agr56lbm9gxiz26mb9fbfr"; type = "gem"; }; - version = "1.2.0"; + version = "0.3.0"; + }; + faraday-httpclient = { + dependencies = ["httpclient"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0z6nv0cxxk9rm69x84861f5zn8jck99prmjpg4apxa75rihbwpyr"; + type = "gem"; + }; + version = "2.0.2"; + }; + faraday-net_http = { + dependencies = ["net-http"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jp5ci6g40d6i50bsywp35l97nc2fpi9a592r2cibwicdb6y9wd1"; + type = "gem"; + }; + version = "3.4.0"; }; fast_blank = { groups = ["default"]; @@ -1024,20 +965,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1pd7pamzhdz2w0fbcvsfn2nyslznvphnwj16zw35g2b28zd2xyzx"; + sha256 = "1s67b9n7ki3iaycypq8sh02377gjkaxadg4dq53bpgfk4xg3gkjz"; type = "gem"; }; - version = "2.2.7"; + version = "2.4.0"; }; ffi = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1862ydmclzy1a0cjbvm8dz7847d9rch495ib0zb64y84d3xd4bkg"; + sha256 = "19kdyjg3kv7x0ad4xsd4swy5izsbb1vl1rpb6qqcqisr5s23awi9"; type = "gem"; }; - version = "1.15.5"; + version = "1.17.2"; }; ffi-compiler = { dependencies = ["ffi" "rake"]; @@ -1045,10 +986,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 = "06yllpzx5ib7cv1ar03279gm2qywnzsqfiz42g5y9fmp7z24yiik"; + type = "gem"; + }; + version = "2.3.4"; + }; + flatware-rspec = { + dependencies = ["flatware" "rspec"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gqkjilaqbd6qq80rx3fbjppjbllndvhd629yyd29943lrp3m9nb"; + type = "gem"; + }; + version = "2.3.4"; }; fog-core = { dependencies = ["builder" "excon" "formatador" "mime-types"]; @@ -1056,10 +1019,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1agd6xgzk0rxrsjdpn94v4hy89s0nm2cs4zg2p880w2dan9xgrak"; + sha256 = "1rjv4iqr64arxv07bh84zzbr1y081h21592b5zjdrk937al8mq1z"; type = "gem"; }; - version = "2.1.0"; + version = "2.6.0"; }; fog-json = { dependencies = ["fog-core" "multi_json"]; @@ -1073,25 +1036,35 @@ 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 = "0imx2c7yrwnd1jk6xzh5903cazymfvs3iq37dl49jss1a2d2lis6"; type = "gem"; }; - version = "0.3.10"; + version = "1.1.5"; }; formatador = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0mprf1dwznz5ld0q1jpbyl59fwnwk6azspnd0am7zz7kfg3pxhv5"; + sha256 = "1l06bv4avphbdmr1y4g0rqlczr38k6r65b3zghrbj2ynyhm3xqjl"; type = "gem"; }; - version = "0.3.0"; + version = "1.1.0"; + }; + forwardable = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1b5g1i3xdvmxxpq4qp0z4v78ivqnazz26w110fh4cvzsdayz8zgi"; + type = "gem"; + }; + version = "1.3.3"; }; fugit = { dependencies = ["et-orbi" "raabro"]; @@ -1099,21 +1072,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1cm2lrvhrpqq19hbdsxf4lq2nkb2qdldbdxh3gvi15l62dlb5zqq"; + sha256 = "0s4qhq3mjl0gak5wl20w9d5jhq069mk1393dkj76s8i2pvkqb578"; type = "gem"; }; - version = "1.8.1"; - }; - fuubar = { - dependencies = ["rspec-core" "ruby-progressbar"]; - groups = ["test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1028vn7j3kc5qqwswrf3has3qm4j9xva70xmzb3n29i89f0afwmj"; - type = "gem"; - }; - version = "2.5.1"; + version = "1.11.1"; }; globalid = { dependencies = ["activesupport"]; @@ -1126,16 +1088,38 @@ }; version = "1.2.1"; }; + google-protobuf = { + dependencies = ["bigdecimal" "rake"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14a8pv6npmv3ppp5097rladsynk8fs4w6chlcylkls6xj9ngxdjd"; + type = "gem"; + }; + version = "4.31.0"; + }; + googleapis-common-protos-types = { + dependencies = ["google-protobuf"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zyh9pxsw4zwv3iissirwqnx98qzkywqf3bwdrai6zpwph34ndsy"; + type = "gem"; + }; + version = "1.20.0"; + }; haml = { dependencies = ["temple" "thor" "tilt"]; groups = ["default" "development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "096yaxlbh89fzdhndrvqg6j3l9gsvys2sp0qvjxqikk7715fbxvi"; + sha256 = "15yxph91zswbnfy7szpdcfbdfqqn595ff290hm4f6fcnhryvhvlf"; type = "gem"; }; - version = "6.2.0"; + version = "6.3.0"; }; haml-rails = { dependencies = ["actionpack" "activesupport" "haml" "railties"]; @@ -1154,20 +1138,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1rx8c71qf45v7r8188vj4hn86vq7qazp2f84y3fhdn6wg6wp6pkc"; + sha256 = "1gvkhb18inkwkf9ja1i774975l259dzlvcvjii3zfyzmzylki5qb"; type = "gem"; }; - version = "0.51.0"; + version = "0.64.0"; }; hashdiff = { groups = ["default" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1nynpl0xbj0nphqx1qlmyggq58ms1phf5i03hk64wcc0a17x1m1c"; + sha256 = "0xqsnx25lm1wwgchvrl5xla5zzk3d6gbkdfj062cwggdsvgfwc1c"; type = "gem"; }; - version = "1.0.1"; + version = "1.1.2"; }; hashie = { groups = ["default"]; @@ -1191,14 +1175,15 @@ version = "7.1.0"; }; highline = { + dependencies = ["reline"]; groups = ["default" "development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1f8cr014j7mdqpdb9q17fp5vb5b8n1pswqaif91s3ylg5x3pygfn"; + sha256 = "0jmvyhjp2v3iq47la7w6psrxbprnbnmzz0hxxski3vzn356x7jv7"; type = "gem"; }; - version = "2.1.0"; + version = "3.1.2"; }; hiredis = { groups = ["default"]; @@ -1210,6 +1195,17 @@ }; version = "0.6.3"; }; + hiredis-client = { + dependencies = ["redis-client"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07sm9gp4l2khw8m259paw1xcy9yd1jabqnyjzsrgl3ndgqgrj6f8"; + type = "gem"; + }; + version = "0.24.0"; + }; hkdf = { groups = ["default"]; platforms = []; @@ -1221,7 +1217,7 @@ version = "0.3.0"; }; htmlentities = { - groups = ["default"]; + groups = ["default" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; @@ -1236,10 +1232,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1bzb8p31kzv6q5p4z5xq88mnqk414rrw0y5rkhpnvpl29x5c3bpw"; + sha256 = "0z8x4c2bcg05x7ffrjy47cwarfqzlg8kcfxchk5jcfdyx7c04265"; type = "gem"; }; - version = "5.1.1"; + version = "5.3.1"; }; http-cookie = { dependencies = ["domain_name"]; @@ -1247,10 +1243,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "13rilvlv8kwbzqfb644qp6hrbsj82cbqmnzcvqip1p6vqx36sxbk"; + sha256 = "19hsskzk5zpv14mnf07pq71hfk1fsjwfjcw616pgjjzjbi2f0kxi"; type = "gem"; }; - version = "1.0.5"; + version = "1.0.8"; }; http-form_data = { groups = ["default"]; @@ -1273,14 +1269,15 @@ version = "2.1.1"; }; httpclient = { + dependencies = ["mutex_m"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99"; + sha256 = "1j4qwj1nv66v3n9s4xqf64x2galvjm630bwa5xngicllwic5jr2b"; type = "gem"; }; - version = "2.8.3"; + version = "2.9.0"; }; httplog = { dependencies = ["rack" "rainbow"]; @@ -1288,10 +1285,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"]; @@ -1299,21 +1296,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0qaamqsh5f3szhcakkak8ikxlzxqnv49n2p7504hcz2l0f4nj0wx"; + sha256 = "03sx3ahz1v5kbqjwxj48msw3maplpp2iyzs22l4jrzrqh4zmgfnf"; type = "gem"; }; - version = "1.14.1"; + version = "1.14.7"; }; 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" "ruby-progressbar" "terminal-table"]; groups = ["development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1s4kgpv7hmlg99cnpyvajba73vib67pdp1pa3g5rwkl838xgvnji"; + sha256 = "0mpvpppwkzxal9k91lifafkwg676kqkg8ng6b1y7apfvwbhfkwvl"; type = "gem"; }; - version = "1.0.13"; + version = "1.0.15"; }; idn-ruby = { groups = ["default"]; @@ -1325,36 +1322,48 @@ }; version = "0.1.5"; }; + inline_svg = { + dependencies = ["activesupport" "nokogiri"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03x1z55sh7cpb63g46cbd6135jmp13idcgqzqsnzinbg4cs2jrav"; + type = "gem"; + }; + version = "1.10.0"; + }; io-console = { groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0dikardh14c72gd9ypwh8dim41wvqmzfzf35mincaj5yals9m7ff"; + sha256 = "18pgvl7lfjpichdfh1g50rpz0zpaqrpr52ybn9liv1v9pjn9ysnd"; type = "gem"; }; - version = "0.6.0"; - }; - ipaddress = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1x86s0s11w202j6ka40jbmywkrx8fhq8xiy8mwvnkhllj57hqr45"; - type = "gem"; - }; - version = "0.8.3"; + version = "0.8.0"; }; irb = { - dependencies = ["rdoc" "reline"]; + dependencies = ["pp" "rdoc" "reline"]; groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "17p6arsklbzh2hvwwr8i4cfrpa7vhk8q88fhickhwmn7m80lxdw7"; + sha256 = "1fpxa2m83rb7xlzs57daqwnzqjmz6j35xr7zb15s73975sak4br2"; type = "gem"; }; - version = "1.8.1"; + version = "1.15.2"; + }; + jd-paperclip-azure = { + dependencies = ["addressable" "azure-blob" "hashie"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gcikrlqv6r9pqvw2kfyvmia3rikp9irhq1c10njz4z7i5za4xk9"; + type = "gem"; + }; + version = "3.0.0"; }; jmespath = { groups = ["default"]; @@ -1371,10 +1380,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0nalhin1gda4v8ybk6lq8f407cgfrj6qzn234yra4ipkmlbfmal6"; + sha256 = "1x5b8ipv6g0z44wgc45039k04smsyf95h2m5m67mqq35sa5a955s"; type = "gem"; }; - version = "2.6.3"; + version = "2.12.2"; }; json-canonicalization = { groups = ["default"]; @@ -1387,26 +1396,26 @@ version = "1.0.0"; }; json-jwt = { - dependencies = ["activesupport" "aes_key_wrap" "bindata" "httpclient"]; + dependencies = ["activesupport" "aes_key_wrap" "base64" "bindata" "faraday" "faraday-follow_redirects"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "04315mf4p9qa97grdfqv922paghzdfrbb982ap0p99rqwla4znv6"; + sha256 = "19bjs404inbydn40nampk5ij7vqkwpmqp3hp4dmjf50sdm6gzayc"; type = "gem"; }; - version = "1.15.3"; + version = "1.16.7"; }; 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"]; @@ -1414,21 +1423,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "004s52m37b2kbw8dv4rdfm2d90h1023z1mw9zfcs0x87v8aq7zyn"; + sha256 = "0l32rjawsxhgi59y7lmjwgmnk32585gih1ylvy08m3vx7cdbzmdg"; type = "gem"; }; - version = "3.2.2"; + version = "3.3.1"; }; json-schema = { - dependencies = ["addressable"]; + dependencies = ["addressable" "bigdecimal"]; groups = ["test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "155rygs093i8i04i38a97hs5icmqk2jkkhx76w31yxyr3bxfbgx3"; + sha256 = "16284slw1xqa2cf0g827hmqd3lb6kgn5z58xcrqpl7kpqj395wqy"; type = "gem"; }; - version = "4.0.0"; + version = "5.2.1"; }; jsonapi-renderer = { groups = ["default"]; @@ -1441,14 +1450,15 @@ version = "0.2.2"; }; jwt = { + dependencies = ["base64"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "16z11alz13vfc4zs5l3fk6n51n2jw9lskvc4h4prnww0y797qd87"; + sha256 = "1i8wmzgb5nfhvkx1f6bhdwfm7v772172imh439v3xxhkv3hllhp6"; type = "gem"; }; - version = "2.7.1"; + version = "2.10.1"; }; kaminari = { dependencies = ["activesupport" "kaminari-actionview" "kaminari-activerecord" "kaminari-core"]; @@ -1499,31 +1509,31 @@ 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"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0gvb1j8xsqxms9mww01rmdl78zkd72zgxaap56bhv8j45z05hp1x"; + sha256 = "1k0311vah76kg5m6zr7wmkwyk5p2f9d9hyckjpn3xgr83ajkj7px"; type = "gem"; }; - version = "3.17.0.3"; + version = "3.17.0.5"; }; launchy = { - dependencies = ["addressable"]; - groups = ["default" "development"]; + dependencies = ["addressable" "childprocess" "logger"]; + groups = ["default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "06r43899384das2bkbrpsdxsafyyqa94il7111053idfalb4984a"; + sha256 = "17h522xhwi5m4n6n9m22kw8z0vy8100sz5f3wbfqj5cnrjslgf3j"; type = "gem"; }; - version = "2.5.2"; + version = "3.1.1"; }; letter_opener = { dependencies = ["launchy"]; @@ -1531,10 +1541,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"]; @@ -1542,10 +1552,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"]; @@ -1557,16 +1567,47 @@ }; version = "0.0.8"; }; + lint_roller = { + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11yc0d84hsnlvx8cpk4cbj6a4dz9pk0r1k29p0n1fz9acddq831c"; + type = "gem"; + }; + version = "1.1.0"; + }; + linzer = { + dependencies = ["cgi" "forwardable" "logger" "net-http" "openssl" "rack" "starry" "stringio" "uri"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09rjxsmmnahxsaw0hc4f0ffw4rcncjxa01xd9v5z4q9radfidr5j"; + type = "gem"; + }; + version = "0.7.7"; + }; llhttp-ffi = { dependencies = ["ffi-compiler" "rake"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "00dh6zmqdj59rhcya0l4b9aaxq6n8xizfbil93k0g06gndyk5xz5"; + sha256 = "1g57iw0l3y7x50132x6a1jyssxa6pw7srh69g0d6j7ri37yaf9cs"; type = "gem"; }; - version = "0.4.0"; + version = "0.5.1"; + }; + logger = { + groups = ["default" "development" "pam_authentication" "production" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00q2zznygpbls8asz5knjvvj2brr3ghmqxgr83xnrdj4rk3xwvhr"; + type = "gem"; + }; + version = "1.7.0"; }; lograge = { dependencies = ["actionpack" "activesupport" "railties" "request_store"]; @@ -1585,14 +1626,14 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0d5p9vg2qkqfy60i93mpd3b25kw4bdxfai034y5a94pxp5fws61c"; + sha256 = "0dx316q03x6rpdbl610rdaj2vfd5s8fanixk21j4gv3h5f230nk5"; type = "gem"; }; - version = "2.21.4"; + version = "2.24.1"; }; mail = { dependencies = ["mini_mime" "net-imap" "net-pop" "net-smtp"]; - groups = ["default" "development"]; + groups = ["default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; @@ -1606,10 +1647,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0kky3yiwagsk8gfbzn3mvl2fxlh3b39v6nawzm4wpjs6xxvvc4x0"; + sha256 = "190n2mk8m1l708kr88fh6mip9sdsh339d2s6sgrik3sbnvz4jmhd"; type = "gem"; }; - version = "1.0.2"; + version = "1.0.4"; }; mario-redis-lock = { dependencies = ["redis"]; @@ -1632,47 +1673,36 @@ }; version = "0.4.2"; }; - md-paperclip-azure = { - dependencies = ["addressable" "azure-storage-blob" "hashie"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1hb1a06x3i8zrhl715jf46ha8r4iy0srcpdhnmp9l14qnnhzn0l5"; - type = "gem"; - }; - version = "2.2.0"; - }; memory_profiler = { groups = ["development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1c81d68r4wx0ckbmqxlfqc2qpd94jwcmqdm0xgr0s46r48pv9k9q"; + sha256 = "1y58ba08n4lx123c0hjcc752fc4x802mjy39qj1hq50ak3vpv8br"; type = "gem"; }; - version = "1.0.1"; + version = "1.1.0"; }; mime-types = { - dependencies = ["mime-types-data"]; - groups = ["default"]; + dependencies = ["logger" "mime-types-data"]; + groups = ["default" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0q8d881k1b3rbsfcdi3fx0b5vpdr5wcrhn88r2d9j7zjdkxp5mw5"; + sha256 = "0mjyxl7c0xzyqdqa8r45hqg7jcw2prp3hkp39mdf223g4hfgdsyw"; type = "gem"; }; - version = "3.5.1"; + version = "3.7.0"; }; mime-types-data = { - groups = ["default"]; + groups = ["default" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "17zdim7kzrh5j8c97vjqp4xp78wbyz7smdp4hi5iyzk0s9imdn5a"; + sha256 = "0lnkfxcayx682rjjxmkjaaxq605akfka90m5rliw897sli6nprcj"; type = "gem"; }; - version = "3.2023.0808"; + version = "3.2025.0514"; }; mini_mime = { groups = ["default" "development" "test"]; @@ -1689,30 +1719,30 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "02mj8mpd6ck5gpcnsimx5brzggw5h5mmmpq2djdypfq16wcw82qq"; + sha256 = "12f2830x7pq3kj0v8nz0zjvaw02sv01bqs1zwdrc04704kwcgmqc"; type = "gem"; }; - version = "2.8.4"; + version = "2.8.9"; }; minitest = { groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0bkmfi9mb49m0fkdhl2g38i3xxa02d411gg0m8x0gvbwfmmg5ym3"; + sha256 = "0mn7q9yzrwinvfvkyjiz548a4rmcwbmz2fn9nyzh4j1snin6q6rr"; type = "gem"; }; - version = "5.20.0"; + version = "5.25.5"; }; msgpack = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "06n7556vxr3awh92xy1k5bli98bvq4pjm08mnl68ay4fzln7lcsg"; + sha256 = "0cnpnbn2yivj9gxkh8mjklbgnpx6nf7b8j2hky01dl0040hy0k76"; type = "gem"; }; - version = "1.7.1"; + version = "1.8.0"; }; multi_json = { groups = ["default"]; @@ -1724,25 +1754,15 @@ }; version = "1.15.0"; }; - multipart-post = { + mutex_m = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0lgyysrpl50wgcb9ahg29i4p01z0irb3p9lirygma0kkfr5dgk9x"; + sha256 = "0l875dw0lk7b2ywa54l0wjcggs94vb7gs8khfw9li75n2sn09jyg"; type = "gem"; }; - version = "2.3.0"; - }; - mutex_m = { - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1pkxnp7p44kvs460bbbgjarr7xy1j8kjjmhwkg1kypj9wgmwb6qa"; - type = "gem"; - }; - version = "0.1.2"; + version = "0.3.0"; }; net-http = { dependencies = ["uri"]; @@ -1750,46 +1770,35 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0y55ib1v2b8prqfi9ij7hca60b1j94s2bzr6vskwi3i5735472wq"; + sha256 = "1ysrwaabhf0sn24jrp0nnp51cdv0jf688mh5i6fsz63q2c6b48cn"; type = "gem"; }; - version = "0.3.2"; - }; - net-http-persistent = { - dependencies = ["connection_pool"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0i1as2lgnw7b4jid0gw5glv5hnxz36nmfsbr9rmxbcap72ijgy03"; - type = "gem"; - }; - version = "4.0.2"; + version = "0.6.0"; }; net-imap = { dependencies = ["date" "net-protocol"]; - groups = ["default" "development"]; + groups = ["default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0d0r31b79appz95dd63wmasly1qjz3hn58ffxw6ix4mqk49jcbq2"; + sha256 = "14zmzjy2sp87ac6iygkk3pz9snjvx4ks681vg4gxz8x8q7gmzajj"; type = "gem"; }; - version = "0.4.1"; + version = "0.5.8"; }; 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"]; - groups = ["default" "development"]; + groups = ["default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; @@ -1800,35 +1809,35 @@ }; net-protocol = { dependencies = ["timeout"]; - groups = ["default" "development"]; + groups = ["default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0dxckrlw4q1lcn3qg4mimmjazmg9bma5gllv72f8js3p36fb3b91"; + sha256 = "1a32l4x73hz200cm587bc29q8q9az278syw3x6fkc9d1lv5y0wxa"; type = "gem"; }; - version = "0.2.1"; + version = "0.2.2"; }; net-smtp = { dependencies = ["net-protocol"]; - groups = ["default" "development"]; + groups = ["default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1rx3758w0bmbr21s2nsc6llflsrnp50fwdnly3ixra4v53gbhzid"; + sha256 = "0dh7nzjp0fiaqq1jz90nv4nxhc2w359d7c199gmzq965cfps15pd"; type = "gem"; }; - version = "0.4.0"; + version = "0.5.1"; }; nio4r = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0w9978zwjf1qhy3amkivab0f9syz6a7k0xgydjidaf7xc831d78f"; + sha256 = "1a9www524fl1ykspznz54i0phfqya4x45hqaz67in9dvw1lfwpfr"; type = "gem"; }; - version = "2.5.9"; + version = "2.7.4"; }; nokogiri = { dependencies = ["mini_portile2" "racc"]; @@ -1836,33 +1845,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0k9w2z0953mnjrsji74cshqqp08q7m1r6zhadw1w0g34xzjh3a74"; + sha256 = "0rb306hbky6cxfyc8vrwpvl40fdapjvhsk62h08gg9wwbn3n8x4c"; type = "gem"; }; - version = "1.15.4"; - }; - nsa = { - dependencies = ["activesupport" "concurrent-ruby" "sidekiq" "statsd-ruby"]; - groups = ["default"]; - platforms = []; - source = { - fetchSubmodules = false; - rev = "e020fcc3a54d993ab45b7194d89ab720296c111b"; - sha256 = "18pbm9qkancy38v0gpb6f5k0xd8r347jl4xvj4jn98ihfhzgwygj"; - type = "git"; - url = "https://github.com/jhawthorn/nsa.git"; - }; - version = "0.2.8"; + version = "1.18.8"; }; oj = { + dependencies = ["bigdecimal" "ostruct"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0m4vsd6i093kmyz9gckvzpnws997laldaiaf86hg5lza1ir82x7n"; + sha256 = "1cajn3ylwhby1x51d9hbchm964qwb5zp63f7sfdm55n85ffn1ara"; type = "gem"; }; - version = "3.16.1"; + version = "3.16.11"; }; omniauth = { dependencies = ["hashie" "rack" "rack-protection"]; @@ -1870,23 +1867,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "15xjsxis357np7dy1lak39x1n8g8wxljb08wplw5i4gxi743zr7j"; + sha256 = "1hjnb5b5m549irs0h1455ipzsv82pikdagx9wjb6r4j1bkjy494d"; type = "gem"; }; - version = "2.1.1"; + version = "2.1.3"; }; omniauth-cas = { dependencies = ["addressable" "nokogiri" "omniauth"]; 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 = "1yynk95xhccvkb1j7rcb834ch80y85n2bhyimq946ib487z8wcx1"; + type = "gem"; }; - version = "2.0.0"; + version = "3.0.1"; }; omniauth-rails_csrf_protection = { dependencies = ["actionpack" "omniauth"]; @@ -1894,10 +1889,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"]; @@ -1905,10 +1900,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "01k9rkg97npcgm8r4x3ja8y20hsg4zy0dcjpzafx148q4yxbg74n"; + sha256 = "1sznc4d2qhqmkw1vhpx2v5i9ndfb4k25cazhz74cbv18wyp4bk2s"; type = "gem"; }; - version = "2.1.0"; + version = "2.2.4"; }; omniauth_openid_connect = { dependencies = ["omniauth" "openid_connect"]; @@ -1916,31 +1911,31 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "08yl0x203k6nrshc70zawfqh79ap1c3fyka9zwwy61cvn7sih4sz"; + sha256 = "099xg7s6450wlfzs77mbdx78g3dp0glx5q6f44i78akf7283hbqz"; type = "gem"; }; - version = "0.6.1"; + version = "0.8.0"; }; openid_connect = { - dependencies = ["activemodel" "attr_required" "json-jwt" "net-smtp" "rack-oauth2" "swd" "tzinfo" "validate_email" "validate_url" "webfinger"]; + dependencies = ["activemodel" "attr_required" "email_validator" "faraday" "faraday-follow_redirects" "json-jwt" "mail" "rack-oauth2" "swd" "tzinfo" "validate_url" "webfinger"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1k9kdivp45v6vhzdrnl5fzhd378gjj2hl4w9bazbqnfm15rsnzc8"; + sha256 = "10i13cn40jiiw8lslkv7bj1isinnwbmzlk6msgiph3gqry08702x"; type = "gem"; }; - version = "1.4.2"; + version = "2.3.1"; }; openssl = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0c649921vg2l939z5cc3jwd8p1v49099pdhxfk7sb9qqx5wi5873"; + sha256 = "0ygfbbs3c61d32ymja2k6sznj5pr540cip9z91lhzcvsr4zmffpz"; type = "gem"; }; - version = "3.1.0"; + version = "3.3.0"; }; openssl-signature_algorithm = { dependencies = ["openssl"]; @@ -1953,6 +1948,313 @@ }; version = "1.3.0"; }; + opentelemetry-api = { + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15x9bq13k53k14r3h5r0pn7cnl3g7pdy0p0662k1s2x7mgkk7k4d"; + type = "gem"; + }; + version = "1.5.0"; + }; + opentelemetry-common = { + dependencies = ["opentelemetry-api"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13c7qnqai6djfd6rjwdwcwbz9f77vcmy0chx1avpxmiqz2h9cpnf"; + type = "gem"; + }; + version = "0.22.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 = "15xssmviwsi7wqmrbx5khm2imvwsrzmxdli7rkvzqbbqpd309jq7"; + type = "gem"; + }; + version = "0.30.0"; + }; + opentelemetry-helpers-sql = { + dependencies = ["opentelemetry-api"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13fvxvia6qxrdz06s5g4bs4fc1hdgkps7yz45s2n26wxqv163s0r"; + type = "gem"; + }; + version = "0.1.1"; + }; + opentelemetry-helpers-sql-obfuscation = { + dependencies = ["opentelemetry-common"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jwyx8jk1faszd20s0qrvgvxs9ddvnfrqixy099pn9lqizandn7m"; + type = "gem"; + }; + version = "0.3.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 = "18p9dvq4mb8s5f1ndabjng07yabv5xgl5d80fcvc1383faarbdg8"; + type = "gem"; + }; + version = "0.4.0"; + }; + opentelemetry-instrumentation-action_pack = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base" "opentelemetry-instrumentation-rack"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1k09hr93fib38i6ajh0abkfvpvng6k2qsvds4jd08znfzyjs17jf"; + type = "gem"; + }; + version = "0.12.1"; + }; + opentelemetry-instrumentation-action_view = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-active_support" "opentelemetry-instrumentation-base"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qf5pklfyxrn2pskhmhd1gnp9i72yaqw114rmc5nrxhbcm24chsb"; + type = "gem"; + }; + version = "0.9.0"; + }; + opentelemetry-instrumentation-active_job = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gb1snnd087nh8r5vvnl8ahg3k3bi2b9rb1m8r2aj7220m78hpcx"; + type = "gem"; + }; + version = "0.8.0"; + }; + opentelemetry-instrumentation-active_model_serializers = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-active_support" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gjbdkamj147vd1hcjyyqir8z4nwmd05a8ac3h94y3n9n6phzzgx"; + type = "gem"; + }; + version = "0.22.0"; + }; + opentelemetry-instrumentation-active_record = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h01lq8xjjdaprprqzj6alq7gw9lwdkkakjjyyxsg3ylpwnvkg4w"; + type = "gem"; + }; + version = "0.9.0"; + }; + opentelemetry-instrumentation-active_storage = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-active_support" "opentelemetry-instrumentation-base"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00x7yjzflxmqiywczlih6vi301b1xm6rwbwlzv0hx87cpdm94m56"; + type = "gem"; + }; + version = "0.1.1"; + }; + opentelemetry-instrumentation-active_support = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16frcxhnb5vjihkff3wl6pnq0m4wkpii7la1d25d03j29qsh5qcv"; + type = "gem"; + }; + version = "0.8.0"; + }; + opentelemetry-instrumentation-base = { + dependencies = ["opentelemetry-api" "opentelemetry-common" "opentelemetry-registry"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0l0w7iya56y458mzws9q246whff2bf597553d5i3xkrcxb707qdk"; + type = "gem"; + }; + version = "0.23.0"; + }; + opentelemetry-instrumentation-concurrent_ruby = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15v8khcyg9wz5v7kysagkbmdv895qahb0b6q7ajk2qznniaix9pv"; + type = "gem"; + }; + version = "0.22.0"; + }; + opentelemetry-instrumentation-excon = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01rzi9d1hi402a8vdr439by4zy8x4rfq3vwnlzz3nzs50mxcbr9s"; + type = "gem"; + }; + version = "0.23.0"; + }; + opentelemetry-instrumentation-faraday = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0r25vvkxawngzm7an652npawjhir6zwics8635k5z7d60hfb2xi3"; + type = "gem"; + }; + version = "0.27.0"; + }; + opentelemetry-instrumentation-http = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gxvhlgk1cvn51bvahyd93axg6zd4pj3r391m3q51y30z894qhkh"; + type = "gem"; + }; + version = "0.25.1"; + }; + opentelemetry-instrumentation-http_client = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p4w5zd2b0ndzwwfc8np1xyp4kzd59k7hpcwpkk0ghlmbnsmbkwh"; + type = "gem"; + }; + version = "0.23.0"; + }; + opentelemetry-instrumentation-net_http = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "100a3kzk8ckifxaw0n6xpg6hxxw0yrqmfwjp47khgy2831r3n4li"; + type = "gem"; + }; + version = "0.23.0"; + }; + opentelemetry-instrumentation-pg = { + dependencies = ["opentelemetry-api" "opentelemetry-helpers-sql" "opentelemetry-helpers-sql-obfuscation" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09sgqwxavzgd7gsgr5w909p794g75602qsn6jvhs5qqj03bkldc5"; + type = "gem"; + }; + version = "0.30.1"; + }; + opentelemetry-instrumentation-rack = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1bbvp2mnbcrldcp3hzm2fv52zdsqf0i9kz4r12msq24f6l5r2mca"; + type = "gem"; + }; + version = "0.26.0"; + }; + 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_storage" "opentelemetry-instrumentation-active_support" "opentelemetry-instrumentation-base" "opentelemetry-instrumentation-concurrent_ruby"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05xpiq4j17vcjnrxxb0zkb67c4y2b7q1g4qvf6ln83b6svx2c7pj"; + type = "gem"; + }; + version = "0.36.0"; + }; + opentelemetry-instrumentation-redis = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "183v8q8a74fc9dnb6ny44dsgq6142smic6x4ivz3v50casjznpii"; + type = "gem"; + }; + version = "0.26.1"; + }; + opentelemetry-instrumentation-sidekiq = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lpkc1ihifbjns2wf17kf9pmhx73j3i1in4fkar469k4i2fylfl5"; + type = "gem"; + }; + version = "0.26.1"; + }; + opentelemetry-registry = { + dependencies = ["opentelemetry-api"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13wns85c08hjy7gqqjxqad9pp5shp0lxskrssz0w3si9mazscgwh"; + type = "gem"; + }; + version = "0.4.0"; + }; + opentelemetry-sdk = { + dependencies = ["opentelemetry-api" "opentelemetry-common" "opentelemetry-registry" "opentelemetry-semantic_conventions"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xqx6zxf6msrryz5hr2s3nwakin0nmxfgz9bkwpmpbf7lss7kngs"; + type = "gem"; + }; + version = "1.8.0"; + }; + opentelemetry-semantic_conventions = { + dependencies = ["opentelemetry-api"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jzx18lmcv27pma1hbrccb9g6daadd6c4192r8w8x2nli3shkwl9"; + type = "gem"; + }; + version = "1.11.0"; + }; orm_adapter = { groups = ["default" "pam_authentication"]; platforms = []; @@ -1963,25 +2265,36 @@ }; version = "0.5.0"; }; - ox = { + ostruct = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1yq0h1niimm8z6z8p1yxb104kxqw69bvbrax84598zfjxifcxhxz"; + sha256 = "05xqijcf80sza5pnlp1c8whdaay8x5dc13214ngh790zrizgp8q9"; type = "gem"; }; - version = "2.14.17"; + version = "0.6.1"; + }; + ox = { + dependencies = ["bigdecimal"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rhv8qdnm3s34yvsvmrii15f2238rk3psa6pq6x5x367sssfv6ja"; + type = "gem"; + }; + version = "2.14.23"; }; parallel = { groups = ["default" "development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0jcc512l38c0c163ni3jgskvq1vc3mr8ly5pvjijzwvfml9lf597"; + sha256 = "0c719bfgcszqvk9z47w2p8j2wkz5y35k48ywwas5yxbbh3hm3haa"; type = "gem"; }; - version = "1.23.0"; + version = "1.27.0"; }; parser = { dependencies = ["ast" "racc"]; @@ -1989,10 +2302,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0r69dbh6h6j4d54isany2ir4ni4gf2ysvk3k44awi6amz18nggpd"; + sha256 = "0i9w8msil4snx5w11ix9b0wf52vjc3r49khy3ddgl1xk890kcxi4"; type = "gem"; }; - version = "3.2.2.4"; + version = "3.3.8.0"; }; parslet = { groups = ["default"]; @@ -2020,10 +2333,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0pfj771p5a29yyyw58qacks464sl86d5m3jxjl5rlqqw2m3v5xq4"; + sha256 = "1p2gqqrm895fzr9vi8d118zhql67bm8ydjvgqbq1crdnfggzn7kn"; type = "gem"; }; - version = "1.5.4"; + version = "1.5.9"; }; pghero = { dependencies = ["activerecord"]; @@ -2031,20 +2344,32 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0gzbgq392b0z7ma1jrdnzzfppdlgjdl9akc4iajq4g46raqd4899"; + sha256 = "08pm154bx5zbpgcqhk7gq78qq1mb149s2l7y0fxniqfvjmq4kn58"; type = "gem"; }; - version = "3.3.4"; + version = "3.7.0"; }; - posix-spawn = { - groups = ["default"]; + playwright-ruby-client = { + dependencies = ["concurrent-ruby" "mime-types"]; + groups = ["default" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0cmb0svalqcxfzlzc5fvrci12b79x7bakasr8gkl3q5rz6di1q52"; + sha256 = "114wkr2hj55c7n4xq30nb4g7kcm9a1mhsy0934jr9mzwfr0kyhaa"; type = "gem"; }; - version = "0.3.15"; + version = "1.52.0"; + }; + pp = { + dependencies = ["prettyprint"]; + groups = ["default" "development" "pam_authentication" "production" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zxnfxjni0r9l2x42fyq0sqpnaf5nakjbap8irgik4kg1h9c6zll"; + type = "gem"; + }; + version = "0.6.2"; }; premailer = { dependencies = ["addressable" "css_parser" "htmlentities"]; @@ -2052,10 +2377,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"]; @@ -2068,36 +2393,68 @@ }; version = "1.12.0"; }; - private_address_check = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "05phz0vscfh9chv90yc9091pifw3cpwkh76flnhrmvja1q3na4cy"; - type = "gem"; - }; - version = "0.5.0"; - }; - psych = { - dependencies = ["stringio"]; + prettyprint = { groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0qvzx3ddswgdx3ck48ak1wa18jai4s6ddv1a0cl59hm0dqrb737i"; + sha256 = "14zicq3plqi217w6xahv7b8f7aj5kpxv1j1w98344ix9h5ay3j9b"; type = "gem"; }; - version = "5.1.1"; + version = "0.2.0"; + }; + prism = { + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gkhpdjib9zi9i27vd9djrxiwjia03cijmd6q8yj2q1ix403w3nw"; + type = "gem"; + }; + version = "1.4.0"; + }; + prometheus_exporter = { + dependencies = ["webrick"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15vl8fw8vjnaj9g129dzrwk9nlrdqgffaj3rys4ba9ns2bqim9rq"; + type = "gem"; + }; + version = "2.2.0"; + }; + propshaft = { + dependencies = ["actionpack" "activesupport" "rack" "railties"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0sqg0xf46xd47zdpm8d12kfnwl0y5jb2hj10imzb3bk6mwgkd2fk"; + type = "gem"; + }; + version = "1.1.0"; + }; + psych = { + dependencies = ["date" "stringio"]; + groups = ["default" "development" "pam_authentication" "production" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vii1xc7x81hicdbp7dlllhmbw5w3jy20shj696n0vfbbnm2hhw1"; + type = "gem"; + }; + version = "5.2.6"; }; public_suffix = { groups = ["default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0n9j7mczl15r3kwqrah09cxj8hxdfawiqxa60kga2bmxl9flfz9k"; + sha256 = "1543ap9w3ydhx39ljcd675cdz9cr948x9mp00ab8qvq6118wv9xz"; type = "gem"; }; - version = "5.0.3"; + version = "6.0.2"; }; puma = { dependencies = ["nio4r"]; @@ -2105,10 +2462,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1y8jcw80zcxvdq0id329lzmp5pzx7hpac227d7sgjkblc89s3pfm"; + sha256 = "11xd3207k5rl6bz0qxhcb3zcr941rhx7ig2f19gxxmdk7s3hcp7j"; type = "gem"; }; - version = "6.4.0"; + version = "6.6.0"; }; pundit = { dependencies = ["activesupport"]; @@ -2116,10 +2473,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1wb03yzy1j41822rbfh9nn77im3zh1f5v8di05cd8rsrdpws542b"; + sha256 = "1nmy0nkgayjifi2j38fn55nb7z1xq3ma2wp19d7c7rmz7ynvidjg"; type = "gem"; }; - version = "2.3.0"; + version = "2.5.0"; }; raabro = { groups = ["default"]; @@ -2136,20 +2493,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "11v3l46mwnlzlc371wr3x6yylpgafgwdf0q7hc7c1lzx6r414r5g"; + sha256 = "0byn0c9nkahsl93y9ln5bysq4j31q8xkf2ws42swighxd4lnjzsa"; type = "gem"; }; - version = "1.7.1"; + version = "1.8.1"; }; rack = { groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "15rdwbyk71c9nxvd527bvb8jxkcys8r3dj3vqra5b3sa63qs30vv"; + sha256 = "0da64fq3w671qhp7ji1zs84m5lyhalq4khqhbfw5dz0y6mn61dgg"; type = "gem"; }; - version = "2.2.8"; + version = "3.1.16"; }; rack-attack = { dependencies = ["rack"]; @@ -2163,37 +2520,37 @@ version = "6.7.0"; }; rack-cors = { - dependencies = ["rack"]; + dependencies = ["logger" "rack"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "02lvkg1nb4z3zc2nry545dap7a64bb9h2k8waxfz0jkabkgnpimw"; + sha256 = "0s1zymxhk7pkzsrgrn5ax862p07s0drbv0qvnq36jq1rvdhvx5bv"; type = "gem"; }; - version = "2.0.1"; + version = "3.0.0"; }; rack-oauth2 = { - dependencies = ["activesupport" "attr_required" "httpclient" "json-jwt" "rack"]; + dependencies = ["activesupport" "attr_required" "faraday" "faraday-follow_redirects" "json-jwt" "rack"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1fknwsxz4429w1hndl6y30cmm2n34wmmaaj2hhp6jrm8ssfsfwjf"; + sha256 = "19fi42hi9l474ki89y6cs8vrpfmc1h8zpd02iwjy4hw0a1yahfn7"; type = "gem"; }; - version = "1.21.3"; + version = "2.2.1"; }; rack-protection = { - dependencies = ["rack"]; + dependencies = ["base64" "logger" "rack"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1a12m1mv8dc0g90fs1myvis8vsgr427k1arg1q4a9qlfw6fqyhis"; + sha256 = "0sniswjyi0yn949l776h7f67rvx5w9f04wh69z5g19vlsnjm98ji"; type = "gem"; }; - version = "3.0.5"; + version = "4.1.1"; }; rack-proxy = { dependencies = ["rack"]; @@ -2201,21 +2558,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"]; + dependencies = ["base64" "rack"]; groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "11w6yd60n8ng1ncs1ajlv42dg08yks09drlsgriydgpcjwz21d40"; + sha256 = "1sg4laz2qmllxh1c5sqlj9n1r7scdn08p3m4b0zmhjvyx9yw0v8b"; type = "gem"; }; - version = "1.0.1"; + version = "2.1.1"; }; rack-test = { dependencies = ["rack"]; @@ -2223,21 +2580,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1ysx29gk9k14a14zsp5a8czys140wacvp91fja8xcja0j1hzqq8c"; + sha256 = "0qy4ylhcfdn65a5mz2hly7g9vl0g13p5a0rmm6sc0sih5ilkcnh0"; type = "gem"; }; - version = "2.1.0"; + version = "2.2.0"; }; rackup = { - dependencies = ["rack" "webrick"]; + dependencies = ["rack"]; groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1wbr03334ba9ilcq25wh9913xciwj0j117zs60vsqm0zgwdkwpp9"; + sha256 = "13brkq5xkj6lcdxj3f0k7v28hgrqhqxjlhd4y2vlicy5slgijdzp"; type = "gem"; }; - version = "1.0.0"; + version = "2.2.1"; }; rails = { dependencies = ["actioncable" "actionmailbox" "actionmailer" "actionpack" "actiontext" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties"]; @@ -2245,21 +2602,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "05yw7n1fpnw2fslbyrsl081fwnki4ih8pz4qnnhmrfniq6n3drv6"; + sha256 = "1ik4y7c545pb9lf70prv0n4drblwjlaxb22fhq18wf607slabypx"; type = "gem"; }; - version = "7.1.1"; - }; - rails-controller-testing = { - dependencies = ["actionpack" "actionview" "activesupport"]; - groups = ["test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "151f303jcvs8s149mhx2g5mn67487x0blrf9dzl76q1nb7dlh53l"; - type = "gem"; - }; - version = "1.0.5"; + version = "8.0.2"; }; rails-dom-testing = { dependencies = ["activesupport" "minitest" "nokogiri"]; @@ -2267,10 +2613,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0fx9dx1ag0s1lr6lfr34lbx5i1bvn3bhyf3w3mx6h7yz90p725g5"; + sha256 = "07awj8bp7jib54d0khqw391ryw8nphvqgw4bb12cl4drlx9pkk4a"; type = "gem"; }; - version = "2.2.0"; + version = "2.3.0"; }; rails-html-sanitizer = { dependencies = ["loofah" "nokogiri"]; @@ -2278,10 +2624,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1pm4z853nyz1bhhqr7fzl44alnx4bjachcr6rh6qjj375sfz3sc6"; + sha256 = "0q55i6mpad20m2x1lg5pkqfpbmmapk0sjsrvr1sqgnj2hb5f5z1m"; type = "gem"; }; - version = "1.6.0"; + version = "1.6.2"; }; rails-i18n = { dependencies = ["i18n" "railties"]; @@ -2289,23 +2635,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1k8jvm3l4gafw7hyvpky7yzjjnkr3iy7l59lyam8ah3kqhmzk7zf"; + sha256 = "03dy8nmq2gxvkg8zqq6c0wwz98mdwp3i9krn0slcknhb8nak2c0m"; type = "gem"; }; - version = "7.0.8"; - }; - 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 = "8.0.1"; }; railties = { dependencies = ["actionpack" "activesupport" "irb" "rackup" "rake" "thor" "zeitwerk"]; @@ -2313,10 +2646,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "19zsl9svr67126r1lm35y7y40i16gpnz1ppapj2h5879cnrliwrw"; + sha256 = "1yaw5sw9vxvvkkc335laxv2k34rs2nxx9hdsy604k9wvqi03yz0d"; type = "gem"; }; - version = "7.1.1"; + version = "8.0.2"; }; rainbow = { groups = ["default" "development"]; @@ -2329,25 +2662,25 @@ version = "3.1.1"; }; rake = { - groups = ["default" "development" "pam_authentication" "production" "test"]; + groups = ["default" "development" "opentelemetry" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w"; + sha256 = "14s4jdcs1a4saam9qmzbsa2bsh85rj9zfxny5z315x3gg0nhkxcn"; type = "gem"; }; - version = "13.0.6"; + version = "13.3.0"; }; 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,34 +2688,34 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "12slrdq6xch5rqj1m79k1wv09264pmhs76nm300j1jsjpcfmdg0r"; + sha256 = "1glyhg7lmzbq1w7bvvf84g7kvqxcn0mw3gsh1f8w4qfvvnbl8dwj"; type = "gem"; }; - version = "0.6.1"; + version = "0.7.0"; }; rdoc = { - dependencies = ["psych"]; + dependencies = ["erb" "psych"]; groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "05r2cxscapr9saqjw8dlp89as7jvc2mlz1h5kssrmkbz105qmfcm"; + sha256 = "0ssi6b33bwr1b1qsssnyjkldwwy087z33yzl58jyz5njdiwzlplh"; type = "gem"; }; - version = "6.5.0"; + version = "6.14.1"; }; redcarpet = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1sg9sbf9pm91l7lac7fs4silabyn0vflxwaa2x3lrzsm0ff8ilca"; + sha256 = "0iglapqs4av4za9yfaac0lna7s16fq2xn36wpk380m55d8792i6l"; type = "gem"; }; - version = "3.6.0"; + version = "3.6.1"; }; redis = { - groups = ["default" "test"]; + groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; @@ -2391,16 +2724,16 @@ }; version = "4.8.1"; }; - redis-namespace = { - dependencies = ["redis"]; - groups = ["default"]; + redis-client = { + dependencies = ["connection_pool"]; + groups = ["default" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0f92i9cwlp6xj6fyn7qn4qsaqvxfw4wqvayll7gbd26qnai1l6p9"; + sha256 = "1fsx10xg4n18w9sr1xa128y4yf0jv5zicrj5ff5n0f1crcwywrgf"; type = "gem"; }; - version = "1.11.0"; + version = "0.24.0"; }; redlock = { dependencies = ["redis"]; @@ -2418,10 +2751,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1d9a5s3qrjdy50ll2s32gg3qmf10ryp3v2nr5k718kvfadp50ray"; + sha256 = "0qccah61pjvzyyg6mrp27w27dlv6vxlbznzipxjcswl7x3fhsvyb"; type = "gem"; }; - version = "2.8.2"; + version = "2.10.0"; }; reline = { dependencies = ["io-console"]; @@ -2429,10 +2762,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0187pj9k7d8kdvzjk6r6mf7z7wy18saxxhn7x7pqc840w6h4s0ja"; + sha256 = "1yvm0svcdk6377ng6l00g39ldkjijbqg4whdg2zcsa8hrgbwkz0s"; type = "gem"; }; - version = "0.3.9"; + version = "0.6.1"; }; request_store = { dependencies = ["rack"]; @@ -2440,10 +2773,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "13ppgmsbrqah08j06bybd3cddv6dml79yzyjn7r8j1src78h98h7"; + sha256 = "1jw89j9s5p5cq2k7ffj5p4av4j4fxwvwjs1a4i9g85d38r9mvdz1"; type = "gem"; }; - version = "1.5.1"; + version = "1.7.0"; }; responders = { dependencies = ["actionpack" "railties"]; @@ -2461,10 +2794,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0"; + sha256 = "1jmbf6lf7pcyacpb939xjjpn1f84c3nw83dy3p1lwjx0l2ljfif7"; type = "gem"; }; - version = "3.2.6"; + version = "3.4.1"; }; rotp = { groups = ["default"]; @@ -2481,10 +2814,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0pym2zjwl6dwdfvbn7rbvmds32r70jx9qddhvvi6pqy6987ack1v"; + sha256 = "18v8if3jix029rr3j8iwisv73facw223353n0h7avl39ibxk6hh3"; type = "gem"; }; - version = "4.1.2"; + version = "4.5.2"; }; rpam2 = { groups = ["default" "pam_authentication"]; @@ -2502,20 +2835,31 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1hggzz8i1l62pkkiybhiqv6ypxw7q844sddrrbbfczjcnj5sivi3"; + sha256 = "1bwqy1iwbyn1091mg203is5ngsnvfparwa1wh89s1sgnfmirkmg2"; type = "gem"; }; - version = "2.2.0"; + version = "3.1.0"; }; rqrcode_core = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "06ld6386hbdhy5h0k09axmgn424kavpc8f27k1vjhknjhbf8jjfg"; + sha256 = "1ayrj7pwbv1g6jg5vvx6rq05lr1kbkfzbzqplj169aapmcivhh0y"; type = "gem"; }; - version = "1.2.0"; + version = "2.0.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"]; @@ -2523,10 +2867,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0l95bnjxdabrn79hwdhn2q1n7mn26pj7y1w5660v5qi81x458nqm"; + sha256 = "0n1rlagplpcgp41s3r68z01539aivwj0cn3v19hq4p3pgdmibnpr"; type = "gem"; }; - version = "3.12.2"; + version = "3.13.4"; }; rspec-expectations = { dependencies = ["diff-lcs" "rspec-support"]; @@ -2534,10 +2878,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "05j44jfqlv7j2rpxb5vqzf9hfv7w8ba46wwgxwcwd8p0wzi1hg89"; + sha256 = "0dl8npj0jfpy31bxi6syc7jymyd861q277sfr6jawq2hv6hx791k"; type = "gem"; }; - version = "3.12.3"; + version = "3.13.5"; }; rspec-github = { dependencies = ["rspec-core"]; @@ -2545,10 +2889,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0kqjmd85v2fpb06d0rx43dc51f0igc1gmm8y3nz0wvmy7zg02njm"; + sha256 = "1bv8b6ld7w3rccjnxqypfdg35i91wyv551sr41647r6krbc3rbs6"; type = "gem"; }; - version = "2.4.0"; + version = "3.0.0"; }; rspec-mocks = { dependencies = ["diff-lcs" "rspec-support"]; @@ -2556,10 +2900,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1hfm17xakfvwya236graj6c2arr4sb9zasp35q5fykhyz8mhs0w2"; + sha256 = "10gajm8iscl7gb8q926hyna83bw3fx2zb4sqdzjrznjs51pqlcz4"; type = "gem"; }; - version = "3.12.5"; + version = "3.13.5"; }; rspec-rails = { dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"]; @@ -2567,10 +2911,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "086qdyz7c4s5dslm6j06mq7j4jmj958whc3yinhabnqqmz7i463d"; + sha256 = "01b5d37i3igh11v5y801gxzb1df2v0il0mfdqi4cdmxn1aqh0dqc"; type = "gem"; }; - version = "6.0.3"; + version = "8.0.1"; }; rspec-sidekiq = { dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks" "sidekiq"]; @@ -2578,120 +2922,122 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0dijmcwjn8k6lrld3yqbqfrqb5g73l57yx98y5frx54p5qxjzbzy"; + sha256 = "0rr8229zd5ylwn78dxr4w43a07k58v4chr5lblws53llm7j1qrzd"; type = "gem"; }; - version = "4.0.1"; + version = "5.1.0"; }; rspec-support = { groups = ["default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1ky86j3ksi26ng9ybd7j0qsdf1lpr8mzrmn98yy9gzv801fvhsgr"; + sha256 = "1xx3f4mgr84jz07fifd3r68hm6giqy91hqyzawmi0s59yqa1hjqq"; 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.4"; }; 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" "lint_roller" "parallel" "parser" "rainbow" "regexp_parser" "rubocop-ast" "ruby-progressbar" "unicode-display_width"]; groups = ["development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1izxvc9g6vfpx081rn68z900bql30bif4lnd038cz2lgj70ljm41"; + sha256 = "1h3b1pl0wawm9w6jad2w333xijjxykvzflc8hzkd6kzb2bwscx4b"; type = "gem"; }; - version = "1.57.1"; + version = "1.78.0"; }; rubocop-ast = { - dependencies = ["parser"]; + dependencies = ["parser" "prism"]; groups = ["default" "development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "188bs225kkhrb17dsf3likdahs2p1i1sqn0pr3pvlx50g6r2mnni"; + sha256 = "0gis8w51k5dsmzzlppvwwznqyfd73fa3zcrpl1xihzy1mm4jw14l"; type = "gem"; }; - version = "1.29.0"; + version = "1.45.1"; }; rubocop-capybara = { - dependencies = ["rubocop"]; + dependencies = ["lint_roller" "rubocop"]; groups = ["development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1jwwi5a05947q9zsk6i599zxn657hdphbmmbbpx17qsv307rwcps"; + sha256 = "030wymq0jrblrdswl1lncj60dhcg5wszz6708qzsbziyyap8rn6f"; type = "gem"; }; - version = "2.19.0"; + version = "2.22.1"; }; - rubocop-factory_bot = { - dependencies = ["rubocop"]; - groups = ["default" "development"]; + rubocop-i18n = { + dependencies = ["lint_roller" "rubocop"]; + groups = ["development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0kqchl8f67k2g56sq2h1sm2wb6br5gi47s877hlz94g5086f77n1"; + sha256 = "1nib58p2kf7lbxz5dvjb80rajr6rmry3v9x3q3kc14i86y7j484n"; type = "gem"; }; - version = "2.23.1"; + version = "3.2.3"; }; rubocop-performance = { - dependencies = ["rubocop" "rubocop-ast"]; + dependencies = ["lint_roller" "rubocop" "rubocop-ast"]; groups = ["development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1pzsrnjmrachdjxzl9jpw47cydicn3408vgdg3a4bss4v5r42rjj"; + sha256 = "1h9flnqk2f3llwf8g0mk0fvzzznfj7hsil3qg88m803pi9b06zbg"; type = "gem"; }; - version = "1.19.1"; + version = "1.25.0"; }; rubocop-rails = { - dependencies = ["activesupport" "rack" "rubocop"]; + dependencies = ["activesupport" "lint_roller" "rack" "rubocop" "rubocop-ast"]; groups = ["development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "05r46ds0dm44fb4p67hbz721zck8mdwblzssz2y25yh075hvs36j"; + sha256 = "1404nfa0gw3p0xzmv4b9zg9v1da0nwc4m7796pl73zi2hwy65k4z"; type = "gem"; }; - version = "2.20.2"; + version = "2.32.0"; }; rubocop-rspec = { - dependencies = ["rubocop" "rubocop-capybara" "rubocop-factory_bot"]; + dependencies = ["lint_roller" "rubocop"]; groups = ["development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0ylwy4afnxhbrvlaf8an9nrizj78axnzggiyfcp8v531cv8six5f"; + sha256 = "0ya4815sp8g13w7a86sm0605fx7xyldck77f9pjjfrvpf5c21r60"; type = "gem"; }; - version = "2.23.2"; + version = "3.6.0"; + }; + rubocop-rspec_rails = { + dependencies = ["lint_roller" "rubocop" "rubocop-rspec"]; + groups = ["development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0i8zvzfj9gpq71zqkbmr05bfh66jg55hbwrfh551i896ibhpalvp"; + type = "gem"; + }; + version = "2.31.0"; }; ruby-prof = { + dependencies = ["base64"]; groups = ["development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "13fsfw43zx9pcix1fzxb95g09yadqjvc8971k74krrjz81vbyh51"; + sha256 = "0h23zjwma8car8jpq7af8gw39qi88rn24mass7r13ripmky28117"; type = "gem"; }; - version = "1.6.3"; + version = "1.7.2"; }; ruby-progressbar = { - groups = ["default" "development" "test"]; + groups = ["default" "development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; @@ -2706,30 +3052,31 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "18vnbzin5ypxrgcs9lllg7x311b69dyrdw2w1pwz84438hmxm79s"; + sha256 = "0vgsvdaglz1spx9gxrr6xh7qqhi4qd8jd06h2ihwxmazj9ajld6y"; type = "gem"; }; - version = "1.15.0"; + version = "1.18.0"; }; - ruby2_keywords = { - groups = ["default" "development" "pam_authentication" "production" "test"]; + ruby-vips = { + dependencies = ["ffi" "logger"]; + groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz"; + sha256 = "0j8wxbkl261nwg7jr6kdz0zlyim4zcnnb72ynky97grqid6d61d3"; type = "gem"; }; - version = "0.0.5"; + version = "2.2.4"; }; rubyzip = { - groups = ["default" "test"]; + groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0grps9197qyxakbpw02pda59v45lfgbgiyw48i0mq9f2bn9y6mrz"; + sha256 = "05an0wz87vkmqwcwyh5rjiaavydfn5f4q1lixcsqkphzvj7chxw5"; type = "gem"; }; - version = "2.3.2"; + version = "2.4.1"; }; rufus-scheduler = { dependencies = ["fugit"]; @@ -2737,10 +3084,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "14lr8c2sswn0sisvrfi4448pmr34za279k3zlxgh581rl1y0gjjz"; + sha256 = "1f932ffh6v6gqpilm61rp9fcx6qcpax1fkw0ikrxfsgzn16rxyjm"; type = "gem"; }; - version = "3.9.1"; + version = "3.9.2"; }; safety_net_attestation = { dependencies = ["jwt"]; @@ -2759,10 +3106,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1kymrjdpbmn4yaml3aaqyj1dzj8gqmm9h030dc2rj5mvja7fpi28"; + sha256 = "111r4xdcf6ihdnrs6wkfc6nqdzrjq0z69x9sf83r7ri6fffip796"; type = "gem"; }; - version = "6.0.2"; + version = "7.0.0"; }; scenic = { dependencies = ["activerecord" "railties"]; @@ -2770,42 +3117,42 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "04sd4jmgnwpilr3k061x87yyryya2mj15a8602fip49lfxza5548"; + sha256 = "1nb3an8af7f08jnhhbn8bxvgfxqb43qc9d5hgrz16ams96h3mv3f"; type = "gem"; }; - version = "1.7.0"; + version = "1.9.0"; }; - selenium-webdriver = { - dependencies = ["rexml" "rubyzip" "websocket"]; + securerandom = { + groups = ["default" "development" "pam_authentication" "production" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1cd0iriqfsf1z91qg271sm88xjnfd92b832z49p1nd542ka96lfc"; + type = "gem"; + }; + version = "0.4.1"; + }; + shoulda-matchers = { + dependencies = ["activesupport"]; groups = ["test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "037v9w6rwkdi9msydiyj31pxdlh4vcr8h8w3g1mzanbsas2m1b1a"; + sha256 = "0i1zkr4rsvf8pz1x38wkb82nsjx28prmyb5blsmw86pd5cmmfszg"; type = "gem"; }; - version = "4.13.1"; - }; - semantic_range = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1dlp97vg95plrsaaqj7x8l7z9vsjbhnqk4rw1l30gy26lmxpfrih"; - type = "gem"; - }; - version = "3.0.0"; + version = "6.5.0"; }; sidekiq = { - dependencies = ["connection_pool" "rack" "redis"]; + dependencies = ["base64" "connection_pool" "logger" "rack" "redis-client"]; groups = ["default" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0zqr9is8y7mg5dfs1q8w5jl9spwvqkhbi9r6np8208n40hi3pydl"; + sha256 = "19xm4s49hq0kpfbmvhnjskzmfjjxw5d5sm7350mh12gg3lp7220i"; type = "gem"; }; - version = "6.5.12"; + version = "7.3.9"; }; sidekiq-bulk = { dependencies = ["sidekiq"]; @@ -2824,21 +3171,21 @@ 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"]; + dependencies = ["concurrent-ruby" "sidekiq" "thor"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "02f91b24hrrn688wqvxb13lwvcgqb7g9k3sxylnydd6v89wr8mcg"; + sha256 = "10g1y6258xsw89c831c16z7m66i37ivhrcbfirpi0pb48fwinik3"; type = "gem"; }; - version = "7.1.29"; + version = "8.0.11"; }; simple-navigation = { dependencies = ["activesupport"]; @@ -2857,10 +3204,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"]; @@ -2878,10 +3225,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0yx01bxa8pbf9ip4hagqkp5m0mqfnwnw2xk8kjraiywz4lrss6jb"; + sha256 = "02zi3rwihp7rlnp9x18c9idnkx7x68w6jmxdhyc0xrhjwrz0pasx"; type = "gem"; }; - version = "0.12.3"; + version = "0.13.1"; + }; + simplecov-lcov = { + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1h8kswnshgb9zidvc88f4zjy4gflgz3854sx9wrw8ppgnwfg6581"; + type = "gem"; + }; + version = "0.8.0"; }; simplecov_json_formatter = { groups = ["default" "test"]; @@ -2893,57 +3250,26 @@ }; 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"; - }; stackprof = { groups = ["development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0bhdgfb0pmw9mav1kw9fn0ka012sa0i3h5ppvqssw5xq48nhxnr8"; + sha256 = "03788mbipmihq2w7rznzvv0ks0s9z1321k1jyr6ffln8as3d5xmg"; type = "gem"; }; - version = "0.2.25"; + version = "0.2.27"; }; - statsd-ruby = { + starry = { + dependencies = ["base64"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "028136c463nbravckxb1qi5c5nnv9r6vh2cyhiry423lac4xz79n"; + sha256 = "1c99sj460hdshiv2jps5d4mxcvz7nrvqznfpgcbnjhk9cnhv15i6"; type = "gem"; }; - version = "1.5.0"; + version = "0.2.0"; }; stoplight = { dependencies = ["redlock"]; @@ -2951,20 +3277,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1vhqx7q8qpq3x9ba504n7bp0r9dxcck0r0hd73cac2iqkix6khlv"; + sha256 = "16j5w162pv45gjm0jah9hhy8q5fjplbka913c0qwxx209lbmsizd"; type = "gem"; }; - version = "3.0.2"; + version = "4.1.1"; }; stringio = { groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0ix96dxbjqlpymdigb4diwrifr0bq7qhsrng95fkkp18av326nqk"; + sha256 = "1yh78pg6lm28c3k0pfd2ipskii1fsraq46m6zjs5yc9a4k5vfy2v"; type = "gem"; }; - version = "3.0.8"; + version = "3.1.7"; }; strong_migrations = { dependencies = ["activerecord"]; @@ -2972,21 +3298,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0wz4zhsp4xia8zcpi98v4sgjlv2prd515l8jz4f7j0wk45dfkjs1"; + sha256 = "0mg8z7ikc7rj53hy3c5n7pqdwd4m4h22k8ig36057nnchqa34d6v"; type = "gem"; }; - version = "0.8.0"; + version = "2.4.0"; }; swd = { - dependencies = ["activesupport" "attr_required" "httpclient"]; + dependencies = ["activesupport" "attr_required" "faraday" "faraday-follow_redirects"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "12b3q2sw42nnilfb51nlqdv07f31vdv2j595kd99asnkw4cjlf5w"; + sha256 = "0m86fzmwgw0vc8p6fwvnsdbldpgbqdz9cbp2zj9z06bc4jjf5nsc"; type = "gem"; }; - version = "1.3.0"; + version = "2.0.3"; }; sysexits = { groups = ["default" "development"]; @@ -3003,10 +3329,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"]; @@ -3014,10 +3340,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "14dfmfjppmng5hwj7c5ka6qdapawm3h6k9lhn8zj001ybypvclgr"; + sha256 = "1lh18gwpksk25sbcjgh94vmfw2rz0lrq61n7lwp1n9gq0cr7j17m"; type = "gem"; }; - version = "3.0.2"; + version = "4.0.0"; }; terrapin = { dependencies = ["climate_control"]; @@ -3025,50 +3351,50 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0p18f05r0c5s70571gqig3z2ym74wx79s6rd45sprp207bqskzn9"; + sha256 = "1mkmbw5z2ma4hkrg3i697bx0j8w7ggpxyj1d7kv7fgya8cdr15lx"; type = "gem"; }; - version = "0.6.0"; + version = "1.1.0"; }; test-prof = { groups = ["development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1mhzw33lv7h8d7pyh65lis5svnmm8m6fnszbsfg3j3xk9hcl0an5"; + sha256 = "1vsk2ca9kfrxhyd2xiiyr28hmxkh9vd8j2vwl5f1yfnkv4z52n8s"; type = "gem"; }; - version = "1.2.3"; + version = "1.4.4"; }; thor = { groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0k7j2wn14h1pl4smibasw0bp66kg626drxb59z7rzflch99cd4rg"; + sha256 = "1nmymd86a0vb39pzj2cwv57avdrl6pl3lf5bsz58q594kqxjkw7f"; type = "gem"; }; - version = "1.2.2"; + version = "1.3.2"; }; tilt = { groups = ["default" "development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0p3l7v619hwfi781l3r7ypyv1l8hivp09r18kmkn6g11c4yr1pc2"; + sha256 = "0szpapi229v3scrvw1pgy0vpjm7z3qlf58m1198kxn70cs278g96"; type = "gem"; }; - version = "2.3.0"; + version = "2.6.0"; }; timeout = { groups = ["default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1d9cvm0f4zdpwa795v3zv4973y5zk59j7s1x3yn90jjrhcz1yvfd"; + sha256 = "03p31w5ghqfsbz5mcjzvwgkw3h9lbvbknqvrdliy8pxmn9wz02cm"; type = "gem"; }; - version = "0.4.0"; + version = "0.4.3"; }; tpm-key_attestation = { dependencies = ["bindata" "openssl" "openssl-signature_algorithm"]; @@ -3076,10 +3402,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0v8y5dibsyskv1ncdgszhxwzq0gzmvb0zl7sgmx0xvsgy86dhcz1"; + sha256 = "0gqr27hrmg35j7kcb6c2cx3xvkqfs42zpp9jcqw0mzbs79jy9m3z"; type = "gem"; }; - version = "0.12.0"; + version = "0.14.1"; }; tty-color = { groups = ["default"]; @@ -3128,10 +3454,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"]; @@ -3161,10 +3487,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0m2d0gpsgqnv29j5h2d6g57g0rayvd460b8s2vjr8sn46bqf89m5"; + sha256 = "0f898y35w60mkx3sd8ld2ryzkj4cld04qlgxi3z3hzdlzfhpa8x9"; type = "gem"; }; - version = "1.2023.3"; + version = "1.2025.2"; }; unf = { dependencies = ["unf_ext"]; @@ -3182,41 +3508,51 @@ 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 = { + dependencies = ["unicode-emoji"]; groups = ["default" "development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1d0azx233nags5jx3fqyr23qa2rhgzbhv8pxp46dgbg1mpf82xky"; + sha256 = "1has87asspm6m9wgqas8ghhhwyf2i1yqrqgrkv47xw7jq3qjmbwc"; type = "gem"; }; - version = "2.5.0"; + version = "3.1.4"; + }; + unicode-emoji = { + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ajk6rngypm3chvl6r0vwv36q1931fjqaqhjjya81rakygvlwb1c"; + type = "gem"; + }; + version = "4.0.4"; }; uri = { - groups = ["default"]; + groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0fa49cdssxllj1j37a56kq27wsibx5lmqxkqdk1rz3452y0bsydy"; + sha256 = "04bhfvc25b07jaiaf62yrach7khhr5jlr5bx6nygg8pf11329wp9"; type = "gem"; }; - version = "0.12.2"; + version = "1.0.3"; }; - validate_email = { - dependencies = ["activemodel" "mail"]; - groups = ["default"]; + useragent = { + groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1r1fz29l699arka177c9xw7409d1a3ff95bf7a6pmc97slb91zlx"; + sha256 = "0i1q2xdjam4d7gwwc35lfnz0wyyzvnca0zslcfxm9fabml9n83kh"; type = "gem"; }; - version = "0.1.6"; + version = "0.16.11"; }; validate_url = { dependencies = ["activemodel" "public_suffix"]; @@ -3229,6 +3565,28 @@ }; version = "1.0.15"; }; + vite_rails = { + dependencies = ["railties" "vite_ruby"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "005mbcprdhjqx27561mb54kssjwxwij157x6wya1yp60gdkl8p0r"; + type = "gem"; + }; + version = "3.0.19"; + }; + vite_ruby = { + dependencies = ["dry-cli" "logger" "mutex_m" "rack-proxy" "zeitwerk"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wj9ia0s7vywn66pf2jn49pfsy5h5rncjjwhaymwq32r3f2pq2p1"; + type = "gem"; + }; + version = "3.9.2"; + }; warden = { dependencies = ["rack"]; groups = ["default" "pam_authentication"]; @@ -3241,26 +3599,26 @@ version = "1.2.9"; }; webauthn = { - dependencies = ["android_key_attestation" "awrence" "bindata" "cbor" "cose" "openssl" "safety_net_attestation" "tpm-key_attestation"]; + dependencies = ["android_key_attestation" "bindata" "cbor" "cose" "openssl" "safety_net_attestation" "tpm-key_attestation"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1ri09bf640kkw4v6k2g90q2nw1mx2hsghhngaqgb7958q8id8xrz"; + sha256 = "1sn399i804pg87b1j30x8lv2602qcndhvg0k0g4xqdfxg28zdipp"; type = "gem"; }; - version = "3.0.0"; + version = "3.4.1"; }; webfinger = { - dependencies = ["activesupport" "httpclient"]; + dependencies = ["activesupport" "faraday" "faraday-follow_redirects"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "18jj50b44a471ig7hw1ax90wxaaz40acmrf6cm7m2iyshlffy53q"; + sha256 = "0p39802sfnm62r4x5hai8vn6d1wqbxsxnmbynsk8rcvzwyym4yjn"; type = "gem"; }; - version = "1.2.0"; + version = "2.1.3"; }; webmock = { dependencies = ["addressable" "crack" "hashdiff"]; @@ -3268,21 +3626,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0vfispr7wd2p1fs9ckn1qnby1yyp4i1dl7qz8n482iw977iyxrza"; + sha256 = "08v374yrqqhjj3xjzmvwnv3yz21r22kn071yr0i67gmwaf9mv7db"; type = "gem"; }; - version = "3.19.1"; - }; - webpacker = { - dependencies = ["activesupport" "rack-proxy" "railties" "semantic_range"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0fh4vijqiq1h7w28llk67y9csc0m4wkdivrsl4fsxg279v6j5z3i"; - type = "gem"; - }; - version = "5.4.4"; + version = "3.25.1"; }; webpush = { dependencies = ["hkdf" "jwt"]; @@ -3290,43 +3637,33 @@ platforms = []; source = { fetchSubmodules = false; - rev = "f14a4d52e201128b1b00245d11b6de80d6cfdcd9"; - sha256 = "1gz34809xwyaqprxmjdyvzsxc63rdnmxn8w44iqkhpi3dzmkacmp"; + rev = "9631ac63045cfabddacc69fc06e919b4c13eb913"; + sha256 = "01vqsj9162j0rzp455sggr8k4w4i9zq0igqb7x7hghp3c53ck1v6"; type = "git"; - url = "https://github.com/ClearlyClaire/webpush.git"; + url = "https://github.com/mastodon/webpush.git"; }; - version = "0.3.8"; + version = "1.1.0"; }; webrick = { - groups = ["default" "development" "pam_authentication" "production" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "13qm7s0gr2pmfcl7dxrmq38asaza4w0i2n9my4yzs499j731wh8r"; - type = "gem"; - }; - version = "1.8.1"; - }; - websocket = { - groups = ["default" "test"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1a4zc8d0d91c3xqwapda3j3zgpfwdbj76hkb69xn6qvfkfks9h9c"; - type = "gem"; - }; - version = "1.2.10"; - }; - websocket-driver = { - dependencies = ["websocket-extensions"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1nyh873w4lvahcl8kzbjfca26656d5c6z3md4sbqg5y1gfz0157n"; + sha256 = "12d9n8hll67j737ym2zw4v23cn4vxyfkb6vyv1rzpwv6y6a3qbdl"; type = "gem"; }; - version = "0.7.6"; + version = "1.9.1"; + }; + websocket-driver = { + dependencies = ["base64" "websocket-extensions"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1d26l4qn55ivzahbc7fwc4k4z3j7wzym05i9n77i4mslrpr9jv85"; + type = "gem"; + }; + version = "0.7.7"; }; websocket-extensions = { groups = ["default"]; @@ -3374,10 +3711,9 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1gir0if4nryl1jhwi28669gjwhxb7gzrm1fcc8xzsch3bnbi47jn"; + sha256 = "119ypabas886gd0n9kiid3q41w76gz60s8qmiak6pljpkd56ps5j"; type = "gem"; }; - version = "2.6.12"; + version = "2.7.3"; }; } - diff --git a/nixos/pkgs/glitch-soc/missing-hashes.json b/nixos/pkgs/glitch-soc/missing-hashes.json new file mode 100644 index 00000000..af1b796f --- /dev/null +++ b/nixos/pkgs/glitch-soc/missing-hashes.json @@ -0,0 +1,75 @@ +{ + "@esbuild/aix-ppc64@npm:0.25.5": "fb872b34a2843293dc60e809968fedf93e0d8f7174b062decffae6ba861eb56aaea0cd0aba87ba99162ceb2a690f0cde4fc29c000b52c035e40c91ec7861d43e", + "@esbuild/android-arm64@npm:0.25.5": "c818e799b19b5587466bf68a27b578ccaaf866c1d144573fbde7659e3fd3f555422ec3e67f5bd186a87648957d1b6e74df4f847edea7219c16979c9916f36e91", + "@esbuild/android-arm@npm:0.25.5": "a5384933f9f2ffcadce2be49da6ff43249fe42f32a04071316434e9f633fc20c8d4029072e9a53555620c3531045786297607b852579eee30b6dbc3bc9d98cd9", + "@esbuild/android-x64@npm:0.25.5": "8ce115dc7e1e6735f23b4aadb2dfca29c0abd8577ce34802ea3d017a64e388928949134fe225dfe190babdc5ec01be5fc7794eca84738cdefc12c5e3789ce43b", + "@esbuild/darwin-arm64@npm:0.25.5": "a009eab62f2bd284a6f2001d5e08217059186ffc16907bbe873e1de40fe9b5ed92c0db2f4c4d0dc41545838850a430c8f2f35d7bdb9cd01a1a04293acd97afca", + "@esbuild/darwin-x64@npm:0.25.5": "cac8021a7a0c549263e076913346b35a5bb81f76ffbc1abfad5e7b67303f013ac0c76f111bf624ea8447b327ec86c18a60c6ff307d743a2269f5d47313f5b2de", + "@esbuild/freebsd-arm64@npm:0.25.5": "d248e7103b7094eb4288db7c9a78b2905a25b4a957f2b945531ca88d3394f45ceca2343a7c84954734534af6159bc741eb3d5c1ed9df990f7395337a1b14192c", + "@esbuild/freebsd-x64@npm:0.25.5": "8a7be0740f07f5dbb3e24bf782ca6ef518a8ce9b53e5d864221722045713586d41774cbd531df97dc868b291b3b303c12e50ca8611c3cb7b5fe09a30b38285eb", + "@esbuild/linux-arm64@npm:0.25.5": "ce3c8fca47cf0a92148fb288eb35a5c4a4dcf7a700730b3a48fdd63c13e17c719eb6b350378203fba773477eb5be637f47a6d52c5d4ce5bdc0075ee917156006", + "@esbuild/linux-arm@npm:0.25.5": "cc81ea76ab86ed2a837c9da329f7c63412d288dc0aa608c8dcdf51705dc93d5b7f966a429be4896babe611074e5898c7e6c8e07ad7f50123a05478975294fbb4", + "@esbuild/linux-ia32@npm:0.25.5": "bfed6750923afd56148f658f6ec8995479f5115116dc212ecb9e4c556064422e22eda855177e7c02cbc945494e4db1167101918c5fa932278115db2c7025a3f6", + "@esbuild/linux-loong64@npm:0.25.5": "e5c20140bbbdba53f0d86dd72961ed73e6255d2ada2d3a626f390b352170605644822ad7592f695b6e520edcefe0c5f6ba19d10694b5d11d725745d9792bde01", + "@esbuild/linux-mips64el@npm:0.25.5": "6b3559517efd0dd1301debc7af7e275b055859c26facdda2e229b1aaab6ebea4c480a1da151c46211ee4035d95bfa7f0cdacf735b57ee99d41b69c77357310b9", + "@esbuild/linux-ppc64@npm:0.25.5": "a1a1af99d758efce928335637924dcd8ddec4201af51014e1f831b012d53a0a673b1e0c31036ec9e8c5a0311439283419ec8abdfc67ecb245fa7f7b653006ed0", + "@esbuild/linux-riscv64@npm:0.25.5": "6cd8dce6723b73e0f89898ab6cd52e0d009afdacdfc0d5529134de7b832c92c2e0421fbb5cbfc0e0c0b2b00a9b1ff2c4cdb9695b2c535ebc174960e986c727a7", + "@esbuild/linux-s390x@npm:0.25.5": "31b86dbc93d19eb362bad3353e65d6da771118346e723582d06c05f1b6ffad1c3765001b5215ef1e8f0c2bb29130d98815359bbc88e5c08304354d5a92e6ea94", + "@esbuild/linux-x64@npm:0.25.5": "f878a3e40edfd8a50de94bf982a9eaf03e636a0332af163a6c905490063aae652384fb392d4765c4338fb6f991034949c92ec768ee65c3b2fceeb494b89fe8b3", + "@esbuild/netbsd-arm64@npm:0.25.5": "941c5e28a63a93f19122271b5490e196db12815702c2266c6d66401b6909a4364ab889611ba81c5359624e3ce61f0505a680a1179ed9a555d1415fa1c485d75d", + "@esbuild/netbsd-x64@npm:0.25.5": "edbefdd88ca24a373497a7c8d1fdab418827ff89c6eee1c574159dbb4d9174552aa87753f35525a894964b77c14b012164ec5582b9f19dd4d6c1f5d45df411c7", + "@esbuild/openbsd-arm64@npm:0.25.5": "d44633a374c109d2fb9c678882016e3ec3d79f0c5f21a6e6fb0114ea709bc539200b037a4e3ec52304eea2f8c5957bf16c6f0a7af5cfde41b652c4bac604bba6", + "@esbuild/openbsd-x64@npm:0.25.5": "efc4641ea653dedc9886f0603c2e7cfc6fbe94c34d4cdaee9b060a8b9d8143d1192c45da93b3e802af2c26f72ab1ad3a3fad0e0cb297d06de55814fe83ccd32c", + "@esbuild/sunos-x64@npm:0.25.5": "29860663381b6098c0fda6f69235407654dfad953e83b3f9f06a270950d5c37da4ca60a4b5915b8e2606d468b560be6179870f64a22d5b046e8a930c31a7b554", + "@esbuild/win32-arm64@npm:0.25.5": "a77d395251c8a62ab0cec07d5230222823fa02fbf3ef008d94b5213a335c9f949872c3f1c2f947abaa28098b669018e429af42f59616e049860a0072f3b006de", + "@esbuild/win32-ia32@npm:0.25.5": "ff1b6cbe835082aef5b93c3e2012d51be431d05c6ae5f90a5bc89687c687e8e2340c262dedddd124b27b511616bbc4088b5a4a949d3147f677084dc6ec572629", + "@esbuild/win32-x64@npm:0.25.5": "266e69e8d37bd4deb77443588e49472e4e9791178cb39e1692eabb67cf65d8e85a932ac468e7ebb2072c8a9ee23ad413c8f0f7d954c474f643cedbbf7aad952a", + "@parcel/watcher-android-arm64@npm:2.5.0": "2d5d66f4e904546cff638d0b27a871d695dda1205e32902f917723dc1b09a5edef4ed8064fc5c85192a4e5e5b531eb4a2d3b349015ff6170c8228e3c098d5376", + "@parcel/watcher-darwin-arm64@npm:2.5.0": "bbdbaeb31ccea5ec172adab2bb2b1a5f4b2e18ed31054d7f6b1db718238f5880e3b8bc8ac1b55c00048c7a1973e75c0c86fa04c02679f99c0bb355145c8b685b", + "@parcel/watcher-darwin-x64@npm:2.5.0": "85089bf1c0f7fb0b4007d54f97e890bf2173d1a11166e9e601b9afe6e260e9cff2eed150ea80f51aae358436376c36af75a70523f53711f16a773987422cf93b", + "@parcel/watcher-freebsd-x64@npm:2.5.0": "1355a42a68beb177f9d15b8e379b63dd2e633494e0f09a7e28a778c6a5eb082206d6690e3776e79da5263ecc8791be047c33943cfd2d09019f8f545800ed583b", + "@parcel/watcher-linux-arm-glibc@npm:2.5.0": "3c78f9ab9e9d52745f3d44200e290a64843a9346bbe6628485cc6d777a1d329fd0345a5c919daad05fb436fda59143ec2f1810789c8e594a51c7f5d8099ac682", + "@parcel/watcher-linux-arm-musl@npm:2.5.0": "80f7f97115e4d98d95735149c6b210ed1902dbf0020d20b245801272a1459f3cef75307c124c1a947450dff9d7d62440ad85e46a98e06523523170fdffab5bf1", + "@parcel/watcher-linux-arm64-glibc@npm:2.5.0": "f82fb66b301754f9bf67c7abfe41b18c987ed47f8de05750395ac7453a2c396104d44090b20450d90d5af3e9de54e06aed1520e8401343b824f3c19747cf0aa1", + "@parcel/watcher-linux-arm64-musl@npm:2.5.0": "914ebc3387884a8948594fa91520726ef9a7dfbbf7663fd00e7c0de13e08a4e7a525c9132b5439b64b9deb9b62fdfb8c5e02148013cd2383d171334ea76641c0", + "@parcel/watcher-linux-x64-glibc@npm:2.5.0": "5db33f6a134d20e8bfd8bed6d13107e7d30947e832a4f677136abee8e1c2855ea19629ccf220e95056dbff753b55fe2b698dd936f31e492b095cc6434451e9d4", + "@parcel/watcher-linux-x64-musl@npm:2.5.0": "dbf3f903c4eb6014660f4c3c0d44dcef0e21ee16908288ad0149d6c1a5c9fd7f0405d8d0e91a2493fbeef83df5784bd43f7d1426a0150e00a415b6c0eab38c98", + "@parcel/watcher-win32-arm64@npm:2.5.0": "cff6516b1dad597ca1ec8c385cf8251f5050b32ab46fc15360f2eff3a40b61b7107eee56df73764007d9bd6b826960d2f3589c8e0ce270bb5b2a292313bd7a1b", + "@parcel/watcher-win32-ia32@npm:2.5.0": "ad9d2c9ae3a7031105fc90418050a910d4b679ead36e5fdcbb1b3e4afbaf56aec6566863e3a374c645c82f57073d8f643183f19c67c8c48b0aa62224c05fdb9d", + "@parcel/watcher-win32-x64@npm:2.5.0": "aa9660bdb2fe70de5163f9f8419e263711fd30612244fb7feb58fce49a653b88ac0e1e29646fb1fc76b86fd8215e62eea5ded0616725987dfca5372041925bd2", + "@rollup/rollup-android-arm-eabi@npm:4.40.2": "cb502d6933de94860f9d49a4b4e849a206d10d9b1a424847cb2545667f8937ac891a37854e2934992b39521dc8b8daa2ec6b683da6bb47ef893ab24f9424c887", + "@rollup/rollup-android-arm64@npm:4.40.2": "42e04ae6605f8a31cc7daf484f9104e6d2174a99e39d829c24d77780cd257a6dab67f5c6a38e84e5a967ad4a64a042f1e6dfbe75444aa03517e83d8436179726", + "@rollup/rollup-darwin-arm64@npm:4.40.2": "8e641fd8a888504c516e76e525a7fcc099d363a82ce8569a1a5bb2fdcf632fa262e1a73b47932a922d132e0c46fab6ba04490053f63e6e4fb30c313a499b139f", + "@rollup/rollup-darwin-x64@npm:4.40.2": "9dca62986fa2afef8c5addcb1eb4ee08afbd3aa03ece3c5372a82a785af67ae441b9782dd542018fa5bb39a6de34ea53f10795d6f6f801a0469ce7979c52c729", + "@rollup/rollup-freebsd-arm64@npm:4.40.2": "f21c73712c4cb74a797998e8adfa83bb7ff0d6cc3e7353eae5b213b4bb3f9f481e025d37dd67aeee7488b9fc9ecd0bc8f85a61469cfa6592ed9292d14ba868d0", + "@rollup/rollup-freebsd-x64@npm:4.40.2": "9f8b6abb5be2527e6cffdaf0dd95a8bbb6f4aa5599be2bfe919e8252f57558f0a06b66748d29cb1e42d0b65e1d2ef0ec2d6a429d3c8a1a85352269d88ffbda17", + "@rollup/rollup-linux-arm-gnueabihf@npm:4.40.2": "fc205b61c54ddaac7bb45768c3b4bbd79632df3f7bbe65532f5453d54e1a31c1d3f1e4508a00323cf0656d6c5a69f0793989d11fd0805dc2621053c8c6fbcaa3", + "@rollup/rollup-linux-arm-musleabihf@npm:4.40.2": "14fde6bac72d734462b9c2fa3594934454069d01422fe12e650ae6fc9e998daac3d43d1726a0aa040cac9d4de43cf75ca34d82932e0a2c3f564f49f0b6fba4af", + "@rollup/rollup-linux-arm64-gnu@npm:4.40.2": "1a7c361022d74025076d322cdeb741923f1d3e0d5e1a12fd4dcc678a7c3dc8a07002f6ec4d537b6f089c75b90273cd700580b9ac1b1d45fa68908eadb524f1c7", + "@rollup/rollup-linux-arm64-musl@npm:4.40.2": "2fbf7f6f28bfe5148b1a82b04569574bc865b65f6e8f874aa8b175ad3c3ee9197a9a22bc3693153f0d55ff2bd78938b15e162cafa4b77756d1933036b0520bf0", + "@rollup/rollup-linux-loongarch64-gnu@npm:4.40.2": "ae77d9e7a797868fbd6887b8b4a8a26bcd96ea632022ddc47c570d90ad6e47b2ac0b3a933885c06a0af5ad57b5f818f4531ff6961b351e9705f5af6dd26b2427", + "@rollup/rollup-linux-powerpc64le-gnu@npm:4.40.2": "867b6bc576e07110181f41c588b1a7ee22a6571bf5a3ceff0527c1e7c4540b5122d34b99f0c56c00d5c33a2e517fbb16c3e269cc4c08110e69dc0f0e4b2fbf26", + "@rollup/rollup-linux-riscv64-gnu@npm:4.40.2": "52f07f3e5e008cd0d277d5290524682c8ec5c03e08659b07a800fddc00b450dbf8df08612921b9fe6e4e16d60d5e282027d9b260ff520c40bf3e7c5e1efabb60", + "@rollup/rollup-linux-riscv64-musl@npm:4.40.2": "6483ab13ac5626c5b94d72aad3ffafe63a3572899824b1d37e59bc071b147f3d498864a0e19942e013a4488aa9262a92817232ca6c38339e3de62c3c4aca87e3", + "@rollup/rollup-linux-s390x-gnu@npm:4.40.2": "842ad92a20ff994091d4ba4c16f87e2f8a57e1eb9e3004c20aaeeb692bc2061619dd43ba4dd246712f8904fe1480e6211b43e9fd2e11a5faebbeebea0c79da63", + "@rollup/rollup-linux-x64-gnu@npm:4.40.2": "c440df4beca32d238b0a0f0b1017fb30da52c0f705946177c01a08d7d214ae190b2070885d93e15ff5fb5741e0964e1370bdd45f8a94e9a4689816f06f18c5a0", + "@rollup/rollup-linux-x64-musl@npm:4.40.2": "9874b4cce42573d460634443ddb730d348360089bf93667309e660301e4e389d8ae80abe7f33fa9a20db5e67984e107e17d1479bdfee278d74bc60dde6ab5f83", + "@rollup/rollup-win32-arm64-msvc@npm:4.40.2": "b61552ab831efde1ca4823cab1982d3d681e1be269d67d60558cd2ac86fe3802f6d569300d9ada084acebae27257b00c68f9d858261a579b5d8686956aa92ba0", + "@rollup/rollup-win32-ia32-msvc@npm:4.40.2": "13ad059483b26bbf12af5108207d66a98ae2aef7599f27a506b998c781921b653dacc63ee0db57bb6f37c920163fd8bc40072e0be0ec6b1e5f52eb3f1455efeb", + "@rollup/rollup-win32-x64-msvc@npm:4.40.2": "98ab8600ecbeab358c53ed563a7b586da0c5cdf26c03456a982a016b2f8eff6e2ec07055d15fe039b982a18a970744390d85a05970c9a8b1533c54702026f8df", + "@unrs/resolver-binding-darwin-arm64@npm:1.3.2": "c8c61120e2bead2e0fec054399107e1ebd39455a2b7d59a5446cafad86cca376e0010e65644c41da0958a065869dcbe0509a29394b52a469a48990d32bf7a6e8", + "@unrs/resolver-binding-darwin-x64@npm:1.3.2": "ee67a4043d2e297cb1362b7aa25be3f5defef9eb13f4e80358c3f22ffdef043ef905ac661fc9e70359383bafed5837a52bd001b49a8ea4f70372051d89ee6eff", + "@unrs/resolver-binding-freebsd-x64@npm:1.3.2": "5f19ef3991435a96e682d427a8d9b28886b4afc9ea5b723e51c4bca51f25bb24add8819ed91c9f228bd39e139d51625cc127ddd35efd6c3f6e1d88106808fad1", + "@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.3.2": "f77b2345c2b572b569089092fa6c08b5a55fdb08d26e1db3cdfa0d195511a0efbe109c558e77bfd78d7aed4ffe47b6542890c9cad032cc00bb0fcd5f373f5090", + "@unrs/resolver-binding-linux-arm-musleabihf@npm:1.3.2": "8b7156d8c641994c39626522ba42e69eef8d868a69b319c9ea5f7584ef0c4ea98bc698c1a4417d209dd3a786630be404d459680cf5b5b2500d3c4b0eb1be894f", + "@unrs/resolver-binding-linux-arm64-gnu@npm:1.3.2": "93b28c2ea0dae2d452659e0afde6099107b70362043e19800e35b7ae86350856dfa0a4d6ba2be566c225965b458b5fba78a10219cf78e6fc0c581373cd2e2a52", + "@unrs/resolver-binding-linux-arm64-musl@npm:1.3.2": "49ed9f24838e876eb1bba9b5f3e283af0716ee23f7d11a799a6376a47fa59a2e28b724431ca165a3874d60b1ed5a6b6c7650fe207f0610a788c88baa7862688f", + "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.3.2": "9fad22ffbf7aadf471a6d054c833a9b4cea74e2c38be40d546e6ba71058a6be10fa4e28947425ef33d42dc77de1c81b631fbff5a96a637c3a7652910f3e27d76", + "@unrs/resolver-binding-linux-s390x-gnu@npm:1.3.2": "dd28e351f19268c4735da984e96301d8433603cf109b2b6880aab9bb8f448242699b7f84c36c536ca4a9443f944153098a3d3e78fce26d0c56fe3406d73d4b55", + "@unrs/resolver-binding-linux-x64-gnu@npm:1.3.2": "e1cc70d8e012bc61bf5af85c2e9905aa1953c06daaab9b3857d780424c62807ccd0c5a20acb919e3accec7152badee426b1514ab9a4256b77945c3e7c8df3496", + "@unrs/resolver-binding-linux-x64-musl@npm:1.3.2": "e97b95e53d029e4ccaf7cf32072e644c495d8e1f097b6fdeb417860db4db4b752d84f5fa6310b9f170a1fbf0562696f0145005dda4a95d658ea0857fac6c51dd", + "@unrs/resolver-binding-wasm32-wasi@npm:1.3.2": "d3f16f36ba5dd714ef3eaf7bc57597e9f9a1fab7c6b5fb5dc5bf688d81a1bd4a574da16bd3e2b383181032a71001583b6534c21e5ffde1ee43fcfa95bc292f3b", + "@unrs/resolver-binding-win32-arm64-msvc@npm:1.3.2": "de65010d133e99a062827f698a7e50c30db15d9f6b9011d351762cc8809497e97c4617b7d6ca3052583ca3f6b8c3cb1f2857fd0c9afd944c7ebb65d5e1da74f6", + "@unrs/resolver-binding-win32-ia32-msvc@npm:1.3.2": "f214a8950e823c60656d2d113584c3cd20c6e92668f43f73c13c3ddfe38a7063615e42537645e2aa52a0652ace9c82e8fd5d9411043a6985ccb49d8dc8bb2595", + "@unrs/resolver-binding-win32-x64-msvc@npm:1.3.2": "38ca5f5912d7cddd3f3e1983ad8e79d084ab3f5990189ce8cdfcfc3b58d97cc0dd7b543cc78ff43eb1769d15a8c235339a5942c688ab680192caa4c97116a511" +} diff --git a/nixos/pkgs/glitch-soc/patches/placeholder.patch b/nixos/pkgs/glitch-soc/patches/placeholder.patch new file mode 100644 index 00000000..e69de29b diff --git a/nixos/pkgs/glitch-soc/source.nix b/nixos/pkgs/glitch-soc/source.nix index 9fc7000d..d13ab2f0 100644 --- a/nixos/pkgs/glitch-soc/source.nix +++ b/nixos/pkgs/glitch-soc/source.nix @@ -1,18 +1,23 @@ -# This file was generated by pkgs.mastodon.updateScript. -{ fetchFromGitHub, applyPatches, patches ? [] }: +/* +This fetches the glitch-soc source from GitHub and patches it. + +This needs to be a separately buildable package so that update.sh can build it during upgrading, +because it needs it for generating `gemset.nix` from the Gemfile in the source. +*/ + +{ + applyPatches, + fetchFromGitHub, + lib, +}: + let - version = "0e562916cce3241d98bd10f04a6aa7419700605"; -in -( - applyPatches { - src = fetchFromGitHub { - owner = "glitch-soc"; - repo = "mastodon"; - rev = "v${version}"; - hash = "sha256-fZH3zPEU5jnYFhLx8OKDNrvsSVT46Peu92L84Fg5YpQ="; - }; - inherit patches; - }) // { - inherit version; - yarnHash = "sha256-P7KswzsCusyiS4MxUFnC1HYMTQ6fLpIwd97AglCukIk="; + versionData = import ./version_data.nix; +in applyPatches { + src = fetchFromGitHub { + owner = "glitch-soc"; + repo = "mastodon"; + inherit (versionData) rev hash; + }; + patches = lib.filesystem.listFilesRecursive ./patches; } diff --git a/nixos/pkgs/glitch-soc/update.sh b/nixos/pkgs/glitch-soc/update.sh index 8e835043..09a79a34 100755 --- a/nixos/pkgs/glitch-soc/update.sh +++ b/nixos/pkgs/glitch-soc/update.sh @@ -1,112 +1,48 @@ -#!/usr/bin/env nix-shell -#! nix-shell -i bash -p bundix coreutils diffutils nix-prefetch-github gnused jq prefetch-yarn-deps +#!/usr/bin/env -S nix shell nixpkgs#coreutils nixpkgs#bundix nixpkgs#nix-prefetch-github nixpkgs#jq nixpkgs-unstable#yarn-berry_4.yarn-berry-fetcher -c bash + set -e -OWNER=mastodon -REPO=mastodon +cd "$(dirname "$0")" # cd to the script's directory -POSITIONAL=() -while [[ $# -gt 0 ]]; do - key="$1" +echo "Retrieving latest glitch-soc/mastodon commit..." +commit="$(curl -SsL 'https://api.github.com/repos/glitch-soc/mastodon/branches/main')" +rev="$(jq -r '.commit.sha' <<<"$commit")" +echo "Latest commit is $rev." - case $key in - --owner) - OWNER="$2" - shift # past argument - shift # past value - ;; - --repo) - REPO="$2" - shift # past argument - shift # past value - ;; - --ver) - VERSION="$2" - shift # past argument - shift # past value - ;; - --rev) - REVISION="$2" - shift # past argument - shift # past value - ;; - --patches) - PATCHES="$2" - shift # past argument - shift # past value - ;; - *) # unknown option - POSITIONAL+=("$1") - shift # past argument - ;; - esac -done +echo +echo "Prefetching glitch-soc/mastodon source..." +hash="$(nix-prefetch-github glitch-soc mastodon --rev $rev | jq -r '.hash')" +echo "Source hash is $hash." -if [[ -n "$POSITIONAL" ]]; then - echo "Usage: update.sh [--owner OWNER] [--repo REPO] [--ver VERSION] [--rev REVISION] [--patches PATCHES]" - echo "OWNER and REPO must be paths on github." - echo "If REVISION is not provided, the latest tag from github.com/mastodon/mastodon is fetched and VERSION is calculated from it." - echo "If OWNER and REPO are not provided, it defaults they default to mastodon and mastodon." - echo "PATCHES, if provided, should be one or more Nix expressions separated by spaces." - exit 1 -fi +echo +echo "Building source derivation..." +srcdir="$(nix build --no-link --print-out-paths --no-warn-dirty ../..#glitch-soc-source)" +echo "Source derivation is $srcdir." -if [[ -z "$REVISION" ]]; then - REVISION="$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} -s "https://api.github.com/repos/$OWNER/$REPO/releases" | jq -r 'map(select(.prerelease == false)) | .[0].tag_name')" -fi +echo +echo "Generating gemset.nix using built source derivation..." +rm -f gemset.nix +bundix --quiet --lockfile $srcdir/Gemfile.lock --gemfile $srcdir/Gemfile -VERSION="$(echo "$REVISION" | cut -c2-)" +echo +echo "Generating missing yarn hashes file..." +rm -f missing-hashes.json +yarn-berry-fetcher missing-hashes $srcdir/yarn.lock 2>/dev/null > missing-hashes.json -rm -f gemset.nix source.nix -cd "$(dirname "${BASH_SOURCE[0]}")" || exit 1 +echo +echo "Prefetching yarn deps..." +yarn_hash="$(yarn-berry-fetcher prefetch "$srcdir/yarn.lock" ./missing-hashes.json 2>/dev/null)" -WORK_DIR=$(mktemp -d) - -# Check that working directory was created. -if [[ -z "$WORK_DIR" || ! -d "$WORK_DIR" ]]; then - echo "Could not create temporary directory" - exit 1 -fi - -# Delete the working directory on exit. -function cleanup { - # Report errors, if any, from nix-prefetch-git - grep "fatal" $WORK_DIR/nix-prefetch-git.out >/dev/stderr || true - rm -rf "$WORK_DIR" -} -trap cleanup EXIT - -echo "Fetching source code $REVISION" -JSON=$(nix-prefetch-github "$OWNER" "$REPO" --rev "$REVISION" 2> $WORK_DIR/nix-prefetch-git.out) -HASH=$(echo "$JSON" | jq -r .hash) - -cat > source.nix << EOF -# This file was generated by pkgs.mastodon.updateScript. -{ fetchFromGitHub, applyPatches, patches ? [] }: -let - version = "$VERSION"; -in -( - applyPatches { - src = fetchFromGitHub { - owner = "$OWNER"; - repo = "$REPO"; - rev = "v\${version}"; - hash = "$HASH"; - }; - patches = patches ++ [$PATCHES]; - }) // { - inherit version; - yarnHash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; +echo +echo "Generating version_data.nix..." +cat > version_data.nix << EOF +# This file was generated with update.sh. +{ + rev = "$rev"; + hash = "$hash"; + yarnHash = "$yarn_hash"; } EOF -SOURCE_DIR="$(nix-build --no-out-link -E '(import {}).callPackage ./source.nix {}')" -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 +echo "Done." diff --git a/nixos/pkgs/glitch-soc/version_data.nix b/nixos/pkgs/glitch-soc/version_data.nix new file mode 100644 index 00000000..720e0ff9 --- /dev/null +++ b/nixos/pkgs/glitch-soc/version_data.nix @@ -0,0 +1,6 @@ +# This file was generated with update.sh. +{ + rev = "e4a22e8068ce7e6b4f252052ef613e15b946ee79"; + hash = "sha256-GxlU0UibtvmfppW0y/FqQU5AgWPTyYvLa+IAt4KiW/0="; + yarnHash = "sha256-uLuNOjqjBJr7jjwEUQVA+jz2lTRVPKj9XDqzq5W9plM="; +} diff --git a/nixos/pkgs/plex-pass/sources.json b/nixos/pkgs/plex-pass/sources.json index 542cae89..a1b8530c 100644 --- a/nixos/pkgs/plex-pass/sources.json +++ b/nixos/pkgs/plex-pass/sources.json @@ -1,14 +1,14 @@ [ { - "version": "1.40.0.7775", + "version": "1.41.9.9961", "platform": "aarch64-linux", - "url": "https://downloads.plex.tv/plex-media-server-new/1.40.0.7775-456fbaf97/debian/plexmediaserver_1.40.0.7775-456fbaf97_arm64.deb", - "hash": "0awannq36c5zgp2hln6g90yc44qf2sm0cq14wp7ck4yvs7wr5rwh" + "url": "https://downloads.plex.tv/plex-media-server-new/1.41.9.9961-46083195d/debian/plexmediaserver_1.41.9.9961-46083195d_arm64.deb", + "hash": "1gxiwzv799w2b18mlq1yx5z3x9k51f88yc9k7mmcn5a224a11kxf" }, { - "version": "1.40.0.7775", + "version": "1.41.9.9961", "platform": "x86_64-linux", - "url": "https://downloads.plex.tv/plex-media-server-new/1.40.0.7775-456fbaf97/debian/plexmediaserver_1.40.0.7775-456fbaf97_amd64.deb", - "hash": "0zkz2w2rjngkdamsdp10j1gxd197kqrlqdm6z0sfvnzf7zvlr7v6" + "url": "https://downloads.plex.tv/plex-media-server-new/1.41.9.9961-46083195d/debian/plexmediaserver_1.41.9.9961-46083195d_amd64.deb", + "hash": "0hnwsh9x48xx9grgv4j30ymbr7v9bdfkl3dnfwjbqr0g3zb22av2" } ] diff --git a/nixos/util.nix b/nixos/util.nix index 79fe2a0f..be8c54ff 100644 --- a/nixos/util.nix +++ b/nixos/util.nix @@ -1,4 +1,4 @@ -{ nixpkgs, home-manager, mailserver, lanzaboote, attic, ... }: +{ nixpkgs, home-manager, mailserver, lanzaboote, ... }: let inherit (builtins) filter attrValues concatMap mapAttrs; inherit (nixpkgs.lib.attrsets) mapAttrsToList; @@ -6,7 +6,6 @@ let ./common home-manager.nixosModules.home-manager mailserver.nixosModules.mailserver - attic.nixosModules.atticd ]; type_import = let