diff --git a/nixos/pkgs/glitch-soc/README.md b/nixos/pkgs/glitch-soc/README.md index 200319ef..daa6e7c2 100644 --- a/nixos/pkgs/glitch-soc/README.md +++ b/nixos/pkgs/glitch-soc/README.md @@ -2,16 +2,10 @@ -Mostly copied from [nixpkgs upstream](https://github.com/NixOS/nixpkgs/tree/master/pkgs/servers/mastodon). +Based on [nixpkgs upstream](https://github.com/NixOS/nixpkgs/tree/master/pkgs/servers/mastodon). -Modifications for the new yarn berry lockfiles in `default.nix`, `yarn.nix` and `yarn-typescript.patch` stolen (with permissions) from [catgirl.cloud](https://git.catgirl.cloud/999eagle/dotfiles-nix/-/tree/main/overlay/mastodon/glitch). +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). -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. -Update: - -``` -./update.sh --owner glitch-soc --repo mastodon --patches "./yarn-typescript.patch" --rev $COMMIT -``` - -The yarn hash isn't updated automatically due to the lockfile thing, run a build and copy the hash from the error message to source.nix by hand. +The package can be updated to the latest glitch-soc commit with `./update.sh`. The yarn hash in `version_data.nix` has to be adjusted manually afterwards from the error message though. diff --git a/nixos/pkgs/glitch-soc/default.nix b/nixos/pkgs/glitch-soc/default.nix index 20beca20..f0fc94aa 100644 --- a/nixos/pkgs/glitch-soc/default.nix +++ b/nixos/pkgs/glitch-soc/default.nix @@ -1,63 +1,81 @@ -/* -Copied from nixpkgs upstream: -https://github.com/NixOS/nixpkgs/blob/nixos-23.11/pkgs/servers/mastodon/default.nix - -Modifications for new yarn lockfiles stolen (with permission) from: -https://git.catgirl.cloud/999eagle/dotfiles-nix/-/blob/main/overlay/mastodon/glitch/yarn.nix -*/ - -{ lib, stdenv, nodejs-slim, bundlerEnv, nixosTests +{ lib, stdenv, stdenvNoCC, nodejs-slim, bundlerEnv , yarn-berry, callPackage, imagemagick, ffmpeg, file, ruby, writeShellScript -, 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 +, brotli, cacert }: -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; + 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 - ''; }; + # fetches JS dependencies via yarn based on the lockfile in the source + mastodonYarnDeps = stdenvNoCC.mkDerivation { + pname = "glitch-soc-yarn-deps"; + inherit version src; + + nativeBuildInputs = [ yarn-berry cacert ]; + + dontInstall = true; + + NODE_EXTRA_CA_CERTS = "${cacert}/etc/ssl/certs/ca-bundle.crt"; + + buildPhase = '' + mkdir -p $out + + export HOME=$(mktemp -d) + echo $HOME + + export YARN_ENABLE_TELEMETRY=0 + export YARN_COMPRESSION_LEVEL=0 + + cache="$(yarn config get cacheFolder)" + yarn install --immutable --mode skip-build + + cp -r $cache/* $out/ + ''; + + outputHashAlgo = "sha256"; + outputHash = versionData.yarnHash; + outputHashMode = "recursive"; + }; + + # 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; - # use the fixed yarn berry offline cache thingy - yarnOfflineCache = callPackage ./yarn.nix { - inherit src; - hash = yarnHash; - }; + yarnOfflineCache = mastodonYarnDeps; - nativeBuildInputs = [ nodejs-slim yarn-berry mastodonGems mastodonGems.wrappedRuby brotli ]; + nativeBuildInputs = [ nodejs-slim yarn-berry 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 @@ -70,7 +88,8 @@ stdenv.mkDerivation rec { mkdir -p ~/.yarn/berry ln -sf $yarnOfflineCache ~/.yarn/berry/cache - yarn install --immutable --immutable-cache + # --inline-builds prints build logs inline so they can be inspected with nix log + yarn install --immutable --immutable-cache --inline-builds patchShebangs ~/bin patchShebangs ~/node_modules @@ -78,8 +97,13 @@ stdenv.mkDerivation rec { # skip running yarn install rm -rf ~/bin/yarn - OTP_SECRET=precompile_placeholder SECRET_KEY_BASE=precompile_placeholder \ + OTP_SECRET=precompile_placeholder \ + SECRET_KEY_BASE=precompile_placeholder \ + ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=precompile_placeholder \ + ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=precompile_placeholder \ + ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY=precompile_placeholder \ rails assets:precompile + yarn cache clean rm -rf ~/node_modules/.cache @@ -107,7 +131,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 = '' @@ -164,17 +196,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 1ca099d7..99467ee0 100644 --- a/nixos/pkgs/glitch-soc/gemset.nix +++ b/nixos/pkgs/glitch-soc/gemset.nix @@ -5,10 +5,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "052k2zx8fvm6g2x0ylfhrlhif98vv98xsxgihhknh9d2w4j6ywqg"; + sha256 = "1kxdc5d7iyh0fjqqxr7x2l37xp48lcdpafkvsqc0p5bc4vd3qcjp"; type = "gem"; }; - version = "7.1.3"; + version = "7.1.3.3"; }; actionmailbox = { dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail" "net-imap" "net-pop" "net-smtp"]; @@ -16,10 +16,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "083p1yd52p60fqrbx29yp5kia42mljhylvbpnmwxkxb65lxmibzw"; + sha256 = "0qx6435q80bzk9h8hvii2vf6hq9nfb50ggm58ps8vy8jci3xh9bm"; type = "gem"; }; - version = "7.1.3"; + version = "7.1.3.3"; }; actionmailer = { dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "net-imap" "net-pop" "net-smtp" "rails-dom-testing"]; @@ -27,10 +27,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1329z1vz01isncgkqzh2xqncf2y7hzz1gw0rqbxama323iwrv7nz"; + sha256 = "05jjaw7m6xc4lpwidpnq9pnzg4rb5ild1ivp82shr7qq7wqlixbb"; type = "gem"; }; - version = "7.1.3"; + version = "7.1.3.3"; }; actionpack = { dependencies = ["actionview" "activesupport" "nokogiri" "racc" "rack" "rack-session" "rack-test" "rails-dom-testing" "rails-html-sanitizer"]; @@ -38,10 +38,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1g8ff6lgaskr6kigni7chdcazh68qgr8dhgslrj7zlzll4xx3sg3"; + sha256 = "193svay7hhjxx5p42lxjwmk22hlp2bbf6b2gjb802108h0gzs29x"; type = "gem"; }; - version = "7.1.3"; + version = "7.1.3.3"; }; actiontext = { dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "globalid" "nokogiri"]; @@ -49,10 +49,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1l9sf6jqfvzh9hy2s3hsdakf6x8r6w9776v9hgih1ac5axqp7sxz"; + sha256 = "1vg85ff59hqndwk61kd9b5y5y7vnvm85cddrbg7la4ibkwfxa87d"; type = "gem"; }; - version = "7.1.3"; + version = "7.1.3.3"; }; actionview = { dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"]; @@ -60,10 +60,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1ldhlwkdlz0h409wwdl3ink0qii54m0lg9b87aji12x53lk3fssv"; + sha256 = "1zfmqqxaj1qnwr2ic6z6axsg332p8msikn9phr1i9vy1lpia31fs"; type = "gem"; }; - version = "7.1.3"; + version = "7.1.3.3"; }; active_model_serializers = { dependencies = ["actionpack" "activemodel" "case_transform" "jsonapi-renderer"]; @@ -82,10 +82,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0bjng98n0h1mlqfy9rkm2xbkalmmbvdlra1b101m0kjzfa9dqyh1"; + sha256 = "0sd2h1l3dfl66sdvwg6xm6f7hx0pyj6wsv1mdavz0gkl104r2qgg"; type = "gem"; }; - version = "7.1.3"; + version = "7.1.3.3"; }; activemodel = { dependencies = ["activesupport"]; @@ -93,10 +93,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "097wj2g8wgc4n5n22nbk35c8s752pb9pxkm8vw0a30q78nbdmngd"; + sha256 = "0klvgx1bvr3f9l1hg5n7cdbsqzkp42dz7if82wgw9l77rhlj1j8h"; type = "gem"; }; - version = "7.1.3"; + version = "7.1.3.3"; }; activerecord = { dependencies = ["activemodel" "activesupport" "timeout"]; @@ -104,10 +104,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0lbmjxn7yr1w65d9xk2khh9rvdn0mk8syngmrq2pdzrshaj46kp0"; + sha256 = "1j9m8m5y035lx2kyx04wzpspsvhadqggf4nyjlwg1xw4kpa37qrx"; type = "gem"; }; - version = "7.1.3"; + version = "7.1.3.3"; }; activestorage = { dependencies = ["actionpack" "activejob" "activerecord" "activesupport" "marcel"]; @@ -115,10 +115,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1na9x5y2y5s1jqip81dyml4cnhmbgdlh2ppa3qziff6hfzc7vcqx"; + sha256 = "0hm10apwx80xp8qgcsfrpx2qmsvg707vpqvdvrr0rax0zq8zs25s"; type = "gem"; }; - version = "7.1.3"; + version = "7.1.3.3"; }; activesupport = { dependencies = ["base64" "bigdecimal" "concurrent-ruby" "connection_pool" "drb" "i18n" "minitest" "mutex_m" "tzinfo"]; @@ -126,10 +126,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "09zrw3sydkk6lwzjhzia38wg1as5aab2lgnysfdr1qxh39zi7z7v"; + sha256 = "0z8kygxmz99krz9pwp947znkzf0jr64sml28df0vf1gzxlg7y57i"; type = "gem"; }; - version = "7.1.3"; + version = "7.1.3.3"; }; addressable = { dependencies = ["public_suffix"]; @@ -183,26 +183,15 @@ }; version = "2.4.2"; }; - attr_encrypted = { - dependencies = ["encryptor"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "034x6mbrv9apd83v99v9pm8vl3d17w5bbwws26gr4wv95fylmgnc"; - type = "gem"; - }; - version = "4.0.0"; - }; attr_required = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1g22axmi2rhhy7w8c3x6gppsawxqavbrnxpnmphh22fk7cwi0kh2"; + sha256 = "16fbwr6nmsn97n0a6k1nwbpyz08zpinhd6g7196lz1syndbgrszh"; type = "gem"; }; - version = "1.0.1"; + version = "1.0.2"; }; awrence = { groups = ["default"]; @@ -229,10 +218,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1h91wsvwryrgrmcxwa31ywx3slxlyy2pgdwrmlplfi8cp371ha26"; + sha256 = "1655dl8bh06kvwnpmvwq3d5nv9357fb1bbh1ipc5rbz6s92n4sbs"; type = "gem"; }; - version = "1.873.0"; + version = "1.929.0"; }; aws-sdk-core = { dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"]; @@ -240,10 +229,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1ansagfl5irx1y6b9xf4xpi9j6q6k5pbd2aw80hn0p4m3ycafamh"; + sha256 = "0f44kp3g9g8v60f7xw769r734b7w6n774jj2njn42444ip3zwsz3"; type = "gem"; }; - version = "3.190.1"; + version = "3.196.1"; }; aws-sdk-kms = { dependencies = ["aws-sdk-core" "aws-sigv4"]; @@ -251,10 +240,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1qzxqfgrhnl5rdc39a1gl2pgrdxgnsj12zycpxnsx8lg6arfmnr1"; + sha256 = "15pllhw43qcvx99wf88a5s8a95qzaw486gaggpr16skm83ld2pdi"; type = "gem"; }; - version = "1.75.0"; + version = "1.81.0"; }; aws-sdk-s3 = { dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"]; @@ -262,10 +251,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1sfpipfdmixpc0madfx1yvpwpv52fdhxfx4bmvrjxzb6ra78ikbr"; + sha256 = "023h9xx65dd91z1sk9znhfwp4wr48imnnhdhvczv64m17r7ych4y"; type = "gem"; }; - version = "1.142.0"; + version = "1.151.0"; }; aws-sigv4 = { dependencies = ["aws-eventstream"]; @@ -341,36 +330,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"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "00db5v09k1z3539g1zrk7vkjrln9967k08adh6qx33ng97a2gg5w"; + sha256 = "1gi7zqgmqwi5lizggs1jhc3zlwaqayy9rx2ah80sxy24bbnng558"; type = "gem"; }; - version = "3.1.6"; + version = "3.1.8"; }; bindata = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "04y4zgh4bbcb8wmkxwfqg4saky1d1f3xw8z6yk543q13h8ky8rz5"; + sha256 = "08r67nglsqnxrbn803szf5bdnqhchhq8kf2by94f37fcl65wpp19"; type = "gem"; }; - version = "2.4.15"; + version = "2.5.0"; }; binding_of_caller = { dependencies = ["debug_inspector"]; @@ -378,10 +356,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "078n2dkpgsivcf0pr50981w95nfc2bsrp3wpf9wnxz1qsp8jbb9s"; + sha256 = "16mjj15ks5ws53v2y31hxcmf46d0qjdvdaadpk7xsij2zymh4a9b"; type = "gem"; }; - version = "1.0.0"; + version = "1.0.1"; }; blurhash = { groups = ["default"]; @@ -484,10 +462,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0511idr8xps9625nh3kxr68sdy6l3xy2kcz7r57g47fxb1v18jj3"; + sha256 = "1dsf9gjc2cj79vrnz2vgq573biqjw7ad4b0idm05xg6rb3y9gq4y"; type = "gem"; }; - version = "0.5.9.6"; + version = "0.5.9.8"; }; charlock_holmes = { groups = ["default"]; @@ -505,10 +483,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1spadkppcgq4gj03sjdywqws1j0pb6whj6d4kyj608jz7lc9vmwc"; + sha256 = "0kgqj7hcs09ln7i1rds1xify08rzjk02ryzvjdvnllg1fkh3vm2b"; type = "gem"; }; - version = "7.5.1"; + version = "7.6.0"; }; chunky_png = { groups = ["default"]; @@ -587,10 +565,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0r48q8csd1ld0yrzsp45wkfnpmkhk09gsldq8rlikarnmc51s9gf"; + sha256 = "0jaa7is4fw1cxigm8vlyhg05bw4nqy4f91zjqxk7pp4c8bdyyfn8"; type = "gem"; }; - version = "0.4.6"; + version = "1.0.0"; }; crass = { groups = ["default" "development" "pam_authentication" "production" "test"]; @@ -608,20 +586,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "04q1vin8slr3k8mp76qz0wqgap6f9kdsbryvgfq9fljhrm463kpj"; + sha256 = "1rhqn05w27w2mjrf0a6ppb4fxpxbfvyhwgdxa8z886jr4qnhywzb"; type = "gem"; }; - version = "1.14.0"; + version = "1.17.1"; }; csv = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1zmrgngggg4yvdbggdx9p3z4wcav4vxfigramxxvjh3hi7l12pig"; + sha256 = "0zfn40dvgjk1xv1z8l11hr9jfg3jncwsc9yhzsz4l4rivkpivg8b"; type = "gem"; }; - version = "3.2.8"; + version = "3.3.0"; }; database_cleaner-active_record = { dependencies = ["activerecord" "database_cleaner-core"]; @@ -660,20 +638,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1npzlgpvvms97gw0ixndapnvwy7ih3zc5r3s3wd4y64rlbaadwc6"; + sha256 = "1z77qyzcmvz3ciny6cb24s79a243jqkybqk30b310yichp02dq28"; type = "gem"; }; - version = "1.9.1"; + version = "1.9.2"; }; debug_inspector = { groups = ["default" "development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "01l678ng12rby6660pmwagmyg8nccvjfgs3487xna7ay378a59ga"; + sha256 = "18k8x9viqlkh7dbmjzh8crbjy8w480arpa766cw1dnn3xcpa1pwv"; type = "gem"; }; - version = "1.1.0"; + version = "1.2.0"; }; devise = { dependencies = ["bcrypt" "orm_adapter" "railties" "responders" "warden"]; @@ -681,21 +659,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 = "1hh0yc85ixnan90hibz3nba6pamhscxfr1zaymxgv3vw5icv50ya"; type = "gem"; }; - version = "4.1.1"; + version = "5.0.0"; }; devise_pam_authenticatable2 = { dependencies = ["devise" "rpam2"]; @@ -713,10 +691,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0rwvjahnp7cpmracd8x732rjgnilqv2sx7d1gfrysslc3h039fa9"; + sha256 = "1znxccz83m4xgpd239nyqxlifdb7m8rlfayk6s259186nkgj6ci7"; type = "gem"; }; - version = "1.5.0"; + version = "1.5.1"; }; discard = { dependencies = ["activerecord"]; @@ -740,15 +718,14 @@ version = "1.4.0"; }; 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"]; @@ -756,42 +733,30 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0hin5718av1wya646b87a9mbnyjdiyb9wx9caprmh1w80n4504xv"; + sha256 = "0w02d1124mrzbagh2xplbzkpy0ykfs52f3rpyaa3zg6div0zvs13"; type = "gem"; }; - version = "5.6.8"; + version = "5.6.9"; }; dotenv = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1n0pi8x8ql5h1mijvm8lgn6bhq4xjb5a500p5r1krq4s6j9lg565"; + sha256 = "0y24jabiz4cf9ni9vi4j8sab8b5phpf2mpw3981r0r94l4m6q0q8"; 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.2"; }; drb = { - dependencies = ["ruby2_keywords"]; groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "03ylflxbp9jrs1hx3d4wvx05yb9hdq4a0r706zz6qc6kvqfazr79"; + sha256 = "0h5kbj9hvg5hb3c7l425zpds0vb42phvln2knab8nmazg2zp5m79"; type = "gem"; }; - version = "2.2.0"; + version = "2.2.1"; }; ed25519 = { groups = ["default"]; @@ -809,10 +774,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0havyxmvl157a653prspnbhgdchlx44xqxl170v1im5ggxwavcaq"; + sha256 = "1g3y2h1fi8bx2ad3n7y6hfwq22691xnbp1h3af440qs8dgripwp3"; type = "gem"; }; - version = "7.13.3"; + version = "7.17.10"; }; elasticsearch-api = { dependencies = ["multi_json"]; @@ -820,10 +785,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0bmssarkk7lqkjdn8c9j7jvxcnn4hg1zcmhsky8bfvc99k33b3w8"; + sha256 = "1k1qnf3y1rc0i2cj182j2qn6bj63z3lw0rw2hbbksbvgv0pmlc1a"; type = "gem"; }; - version = "7.13.3"; + version = "7.17.10"; }; elasticsearch-dsl = { groups = ["default"]; @@ -841,10 +806,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0blfii8qvj0m6bg9sbfynxc40in7zfmw2wpi4clv7d9gclk053db"; + sha256 = "0prvwp083mayfggifcjnwjpnw5arw8v6qw9w8fb56lagsrpwgfhj"; type = "gem"; }; - version = "7.13.3"; + version = "7.17.10"; }; email_spec = { dependencies = ["htmlentities" "launchy" "mail"]; @@ -857,16 +822,6 @@ }; version = "2.2.2"; }; - encryptor = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0s8rvfl0vn8w7k1sgkc234060jh468s3zd45xa64p1jdmfa3zwmb"; - type = "gem"; - }; - version = "3.0.0"; - }; erubi = { groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; @@ -883,23 +838,23 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1d2z4ky2v15dpcz672i2p7lb2nc793dasq3yq3660h2az53kss9v"; + sha256 = "0r6zylqjfv0xhdxvldr0kgmnglm57nm506pcm6085f0xqa68cvnj"; type = "gem"; }; - version = "1.2.7"; + version = "1.2.11"; }; excon = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1kmmwgjzlrnc3nnrdnw1z67c95nbw0hv54a73yj8jw6pcvl9585x"; + sha256 = "1m3gzvp1wqki0yh4b7761qhdy4pyr4phy429b7s9w25nrkhp4lsz"; type = "gem"; }; - version = "0.109.0"; + version = "0.110.0"; }; fabrication = { - groups = ["test"]; + groups = ["development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; @@ -910,14 +865,14 @@ }; faker = { dependencies = ["i18n"]; - groups = ["test"]; + groups = ["development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1rrwh78515yqljh09wjxfsb64siqd8qgp4hv57syajhza5x8vbzz"; + sha256 = "0isxcqv4xkw7hrdf89mga6zsi4alban16xyw84bkqvbsr859nax4"; type = "gem"; }; - version = "3.2.3"; + version = "3.3.1"; }; 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"]; @@ -1057,20 +1012,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "104kn1lj55hifcpiw1x7x9slskvqmfanylcz3nj8acjgmri0av72"; + sha256 = "1sfc7svf7h1ja6zmsq9f3ps6pg0q4hymphh6rk7ipmp7ygqjkii3"; type = "gem"; }; - version = "2.3.0"; + version = "2.3.1"; }; ffi = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1862ydmclzy1a0cjbvm8dz7847d9rch495ib0zb64y84d3xd4bkg"; + sha256 = "1yvii03hcgqj30maavddqamqy50h7y6xcn2wcyq72wn823zl4ckd"; type = "gem"; }; - version = "1.15.5"; + version = "1.16.3"; }; ffi-compiler = { dependencies = ["ffi" "rake"]; @@ -1078,10 +1033,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0c2caqm9wqnbidcb8dj4wd3s902z15qmgxplwyfyqbwa0ydki7q1"; + sha256 = "1844j58cdg2q6g0rqfwg4rrambnhf059h4yg9rfmrbrcs60kskx9"; type = "gem"; }; - version = "1.0.1"; + version = "1.3.2"; }; fog-core = { dependencies = ["builder" "excon" "formatador" "mime-types"]; @@ -1111,10 +1066,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1xh9qs00l1d7rxsr9qjlba8dprh9km8ya06y59qf17vncihl1xa7"; + sha256 = "0k723mwj17jssa1zm0mpi4sapsrllg9yphkm4zjg451g8bqkjjpq"; type = "gem"; }; - version = "1.1.0"; + version = "1.1.1"; }; formatador = { groups = ["default"]; @@ -1132,10 +1087,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1cm2lrvhrpqq19hbdsxf4lq2nkb2qdldbdxh3gvi15l62dlb5zqq"; + sha256 = "10m9b2gvwfvmm61000mq7n8q7pk2xkxmizgfydpis66n2ybrhwh5"; type = "gem"; }; - version = "1.8.1"; + version = "1.10.1"; }; fuubar = { dependencies = ["rspec-core" "ruby-progressbar"]; @@ -1159,6 +1114,27 @@ }; version = "1.2.1"; }; + google-protobuf = { + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mnxzcq8kmyfb9bkzqnp019d1hx1vprip3yzdkkha6b3qz5rgg9r"; + type = "gem"; + }; + version = "3.25.3"; + }; + googleapis-common-protos-types = { + dependencies = ["google-protobuf"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lg51gh8n6c0a38vin94zf0k9qz32hd9y8wqjpqljnkhjfzgpkix"; + type = "gem"; + }; + version = "1.14.0"; + }; haml = { dependencies = ["temple" "thor" "tilt"]; groups = ["default" "development"]; @@ -1187,10 +1163,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1xhrpba4m8qs311jxz1hn5g7srpw9wwg6rymj3n61ykqvk876hqa"; + sha256 = "1mf24djxk6968n0ypwbib790nzijcf03m4kw0dnks8csfxj6hy9g"; type = "gem"; }; - version = "0.56.0"; + version = "0.58.0"; }; hashdiff = { groups = ["default" "test"]; @@ -1228,10 +1204,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1f8cr014j7mdqpdb9q17fp5vb5b8n1pswqaif91s3ylg5x3pygfn"; + sha256 = "02ghhvigqbq4252gsi4w8a9klkdkybmbz29ghfp1y6sqzlcb466a"; type = "gem"; }; - version = "2.1.0"; + version = "3.0.1"; }; hiredis = { groups = ["default"]; @@ -1264,15 +1240,15 @@ version = "4.3.4"; }; http = { - dependencies = ["addressable" "http-cookie" "http-form_data" "llhttp-ffi"]; + dependencies = ["addressable" "base64" "http-cookie" "http-form_data" "llhttp-ffi"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1bzb8p31kzv6q5p4z5xq88mnqk414rrw0y5rkhpnvpl29x5c3bpw"; + sha256 = "05b1khh7wxga9jviy9yi8z1nckxbm3svlzv40y0zvq3nag3d77mr"; type = "gem"; }; - version = "5.1.1"; + version = "5.2.0"; }; http-cookie = { dependencies = ["domain_name"]; @@ -1321,10 +1297,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0zjsgrlvwpqsnrza4ijlxjld4550c661sgbqp2j2wp638nlnls1a"; + sha256 = "1vmcrsvi1x9ppxsp8pg4nwcxmqcqw9gyasx4sbcz3brqr39mr3zs"; type = "gem"; }; - version = "1.6.2"; + version = "1.6.3"; }; i18n = { dependencies = ["concurrent-ruby"]; @@ -1332,21 +1308,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0qaamqsh5f3szhcakkak8ikxlzxqnv49n2p7504hcz2l0f4nj0wx"; + sha256 = "1ffix518y7976qih9k1lgnc17i3v6yrlh0a3mckpxdb4wc2vrp16"; type = "gem"; }; - version = "1.14.1"; + version = "1.14.5"; }; i18n-tasks = { - dependencies = ["activesupport" "ast" "better_html" "erubi" "highline" "i18n" "parser" "rails-i18n" "rainbow" "terminal-table"]; + dependencies = ["activesupport" "ast" "erubi" "highline" "i18n" "parser" "rails-i18n" "rainbow" "terminal-table"]; groups = ["development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1s4kgpv7hmlg99cnpyvajba73vib67pdp1pa3g5rwkl838xgvnji"; + sha256 = "1v03380ffwwa84xzsc6dhkc57cs156qx5aij4bfdcs1j5bpxmn1s"; type = "gem"; }; - version = "1.0.13"; + version = "1.0.14"; }; idn-ruby = { groups = ["default"]; @@ -1358,6 +1334,17 @@ }; version = "0.1.5"; }; + inline_svg = { + dependencies = ["activesupport" "nokogiri"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mimwp5d6j52n4givnsyhmym3173rv4bfirhmlcxc7s05qymwk7l"; + type = "gem"; + }; + version = "1.9.0"; + }; io-console = { groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; @@ -1374,10 +1361,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1f8wms39b7z83x6pflq2sjh3sikpk0xjh680igbpkp1j3pl0fpx0"; + sha256 = "14pji5w708d6v63m3yvyfx1d9gg0mi5x1a2czxf6259zncq2ymda"; type = "gem"; }; - version = "1.11.2"; + version = "1.13.1"; }; jmespath = { groups = ["default"]; @@ -1394,10 +1381,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0r9jmjhg2ly3l736flk7r2al47b5c8cayh0gqkq0yhjqzc9a6zhq"; + sha256 = "0b4qsi8gay7ncmigr0pnbxyb17y3h8kavdyhsh7nrlqwr35vb60q"; type = "gem"; }; - version = "2.7.1"; + version = "2.7.2"; }; json-canonicalization = { groups = ["default"]; @@ -1415,10 +1402,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "04315mf4p9qa97grdfqv922paghzdfrbb982ap0p99rqwla4znv6"; + sha256 = "13xhvkh2fxydcf466az172nwfykzppm3g9ckp8mafsib45w77clj"; type = "gem"; }; - version = "1.15.3"; + version = "1.15.3.1"; }; json-ld = { dependencies = ["htmlentities" "json-canonicalization" "link_header" "multi_json" "rack" "rdf"]; @@ -1448,10 +1435,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0j9dz9sf7swwmfahlngph8n9ibm0cx7mdy9zpv3w44578nbkka49"; + sha256 = "1ljqbpjc5aa8a2cgq8f64iwbx7rr9dqvpk7v8n5jpslyz6mvyddc"; type = "gem"; }; - version = "4.1.1"; + version = "4.3.0"; }; jsonapi-renderer = { groups = ["default"]; @@ -1554,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"]; @@ -1565,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"]; @@ -1586,10 +1573,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "00dh6zmqdj59rhcya0l4b9aaxq6n8xizfbil93k0g06gndyk5xz5"; + sha256 = "1yph78m8w8l6i9833fc7shy5krk4mnqjc7ys0bg9kgxw8jnl0vs9"; type = "gem"; }; - version = "0.4.0"; + version = "0.5.0"; }; lograge = { dependencies = ["actionpack" "activesupport" "railties" "request_store"]; @@ -1629,10 +1616,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"]; @@ -1692,10 +1679,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "08ja4k3yjczzz7n6rp1f3qvz4v45bc6fy04clnvdxbq3kfr7jk4c"; + sha256 = "0kybw1a6f7d1ipyawnpi5cwiy05rkz9qwglgfvhmd1z0l2gcigmm"; type = "gem"; }; - version = "3.2023.1205"; + version = "3.2024.0507"; }; mini_mime = { groups = ["default" "development" "test"]; @@ -1712,20 +1699,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1kl9c3kdchjabrihdqfmcplk3lq4cw1rr9f378y6q22qwy5dndvs"; + sha256 = "149r94xi6b3jbp6bv72f8383b95ndn0p5sxnq11gs1j9jadv0ajf"; type = "gem"; }; - version = "2.8.5"; + version = "2.8.6"; }; minitest = { groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1hmszq7p4zp2ha3qjv1axam602rgnqhlz5zfzil7yk4nvfwcv1bn"; + sha256 = "181rfs9drd34b3akbfbfg0ynz07v74pfkzbb977bxa50nrlqwj2c"; type = "gem"; }; - version = "5.21.2"; + version = "5.23.0"; }; msgpack = { groups = ["default"]; @@ -1752,10 +1739,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0lgyysrpl50wgcb9ahg29i4p01z0irb3p9lirygma0kkfr5dgk9x"; + sha256 = "1033p35166d9p97y4vajbbvr13pmkk9zwn7sylxpmk9jrpk8ri67"; type = "gem"; }; - version = "2.3.0"; + version = "2.4.0"; }; mutex_m = { groups = ["default" "development" "pam_authentication" "production" "test"]; @@ -1795,10 +1782,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0z9f6kfxz9qanar534gs3mk6snyvw8rnx3f6ykjn2jiziv0rv1ig"; + sha256 = "1y0pzapcasfjayk4nydy04hnx11xmsv8jl8myizxhbpkdmrl10dc"; type = "gem"; }; - version = "0.4.9.1"; + version = "0.4.11"; }; net-ldap = { groups = ["default"]; @@ -1838,20 +1825,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0csspzqrg7s2v2wdp6vqqs1rra6w5ilpgnps5h52ig6rp7x2i389"; + sha256 = "0amlhz8fhnjfmsiqcjajip57ici2xhw089x7zqyhpk51drg43h2z"; type = "gem"; }; - version = "0.4.0.1"; + version = "0.5.0"; }; nio4r = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0w9978zwjf1qhy3amkivab0f9syz6a7k0xgydjidaf7xc831d78f"; + sha256 = "017nbw87dpr4wyk81cgj8kxkxqgsgblrkxnmmadc77cg9gflrfal"; type = "gem"; }; - version = "2.5.9"; + version = "2.7.3"; }; nokogiri = { dependencies = ["mini_portile2" "racc"]; @@ -1859,10 +1846,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "173zavvxlwyi48lfskk48wcrdbkvjlhjhvy4jpcrfx72rpjjx4k8"; + sha256 = "1lla2macphrlbzkirk0nwwwhcijrfymyfjjw1als0kwqd0n1cdpc"; type = "gem"; }; - version = "1.16.2"; + version = "1.16.5"; }; nsa = { dependencies = ["activesupport" "concurrent-ruby" "sidekiq" "statsd-ruby"]; @@ -1892,10 +1879,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "15xjsxis357np7dy1lak39x1n8g8wxljb08wplw5i4gxi743zr7j"; + sha256 = "1km0wqx9pj609jidvrqfsvzbzfgdnlpdnv7i7xfqm3wb55vk5w6y"; type = "gem"; }; - version = "2.1.1"; + version = "2.1.2"; }; omniauth-cas = { dependencies = ["addressable" "nokogiri" "omniauth"]; @@ -1903,10 +1890,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0rvq883iydyvw0gkyhx9jbagn6id8kwp0ybpbpk446bpamfgjwsk"; + sha256 = "13z686dmkdssm4d5b0k45ydavhjrzcaqzyqxvvmaqn3a0vc6klbs"; type = "gem"; }; - version = "3.0.0.beta.1"; + version = "3.0.0"; }; omniauth-rails_csrf_protection = { dependencies = ["actionpack" "omniauth"]; @@ -1973,6 +1960,280 @@ }; version = "1.3.0"; }; + opentelemetry-api = { + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1j9c2a4wgw0jaw63qscfasw3lf3kr45q83p4mmlf0bndcq2rlgdb"; + type = "gem"; + }; + version = "1.2.5"; + }; + opentelemetry-common = { + dependencies = ["opentelemetry-api"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pp7i09wp5kp1npp3l8my06p7g06cglb1bi61nw8k3x5sj275kgq"; + type = "gem"; + }; + version = "0.20.1"; + }; + 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 = "16836gysf2cqzwx8zhx5p8vrfzmws622dc43d59y6x2cjakyw7gw"; + type = "gem"; + }; + version = "0.26.3"; + }; + opentelemetry-helpers-sql-obfuscation = { + dependencies = ["opentelemetry-common"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cnlr3gqmd2q9wcaxhvlkxkbjvvvkp4vzcwif1j7kydw7lvz2vmw"; + type = "gem"; + }; + version = "0.1.0"; + }; + opentelemetry-instrumentation-action_pack = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base" "opentelemetry-instrumentation-rack"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16nbkayp8jb2zkqj2rmqd4d1mz4wdf0zg6jx8b0vzkf9mxr89py5"; + type = "gem"; + }; + version = "0.9.0"; + }; + opentelemetry-instrumentation-action_view = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-active_support" "opentelemetry-instrumentation-base"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xfbqgw497k2f56f68k7zsvmrrk5jk69xhl56227dfxlw15p2z5w"; + type = "gem"; + }; + version = "0.7.0"; + }; + opentelemetry-instrumentation-active_job = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12c0qr980zr4si2ps55aj3zj84zycg3zcf16nh6mizljkmn8096s"; + type = "gem"; + }; + version = "0.7.1"; + }; + opentelemetry-instrumentation-active_model_serializers = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1apgldckz3snr7869al0z18rgfplalya3x9pil3lqp4jziczhiwc"; + type = "gem"; + }; + version = "0.20.1"; + }; + opentelemetry-instrumentation-active_record = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wjfd1dmfzcnvss2jsnc2s3g6p0wfq5ay3vfnidkmisgyw7fphfk"; + type = "gem"; + }; + version = "0.7.2"; + }; + opentelemetry-instrumentation-active_support = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rjajgb7sj3mrw5d79xm7q3f4mns1fc3ngasjfw10i18x0kq7283"; + type = "gem"; + }; + version = "0.5.1"; + }; + opentelemetry-instrumentation-base = { + dependencies = ["opentelemetry-api" "opentelemetry-registry"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pv064ksiynin8hzvljkwm5vlkgr8kk6g3qqpiwcik860i7l677n"; + type = "gem"; + }; + version = "0.22.3"; + }; + opentelemetry-instrumentation-concurrent_ruby = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xmx1rxdvf835kvad352rcavwkk3x758q0rznx2npay3mm8bbcbg"; + type = "gem"; + }; + version = "0.21.3"; + }; + opentelemetry-instrumentation-excon = { + dependencies = ["opentelemetry-api" "opentelemetry-common" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13f19fw3ffg13g2w9kh4x84plrnhf9c0yxxm15dl3lycsbji2hvs"; + type = "gem"; + }; + version = "0.22.1"; + }; + opentelemetry-instrumentation-faraday = { + dependencies = ["opentelemetry-api" "opentelemetry-common" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ax6pd5sgrwdcck9pa6vfcz1b971b1s83spyrrfkpxpsz40hl0gk"; + type = "gem"; + }; + version = "0.24.2"; + }; + opentelemetry-instrumentation-http = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1yncpv6i2cagjyq1srdqddf6mh0q9s04kfi9q1rh9qbsxqbp5cff"; + type = "gem"; + }; + version = "0.23.3"; + }; + opentelemetry-instrumentation-http_client = { + dependencies = ["opentelemetry-api" "opentelemetry-common" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lzc5y63qqpryic9nw1wlwdawcyi0b6gzbsxwrpk88ikwanvhxjg"; + type = "gem"; + }; + version = "0.22.4"; + }; + opentelemetry-instrumentation-net_http = { + dependencies = ["opentelemetry-api" "opentelemetry-common" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1klq4rpn803byrz7z1mxsj81qg7kpl67nj5sqqw41msnwkkbay18"; + type = "gem"; + }; + version = "0.22.4"; + }; + opentelemetry-instrumentation-pg = { + dependencies = ["opentelemetry-api" "opentelemetry-helpers-sql-obfuscation" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1k9m9v4i42y53s85b8y7vz4dj4y00v1gg8392rkrswl5f72fk2dn"; + type = "gem"; + }; + version = "0.27.3"; + }; + opentelemetry-instrumentation-rack = { + dependencies = ["opentelemetry-api" "opentelemetry-common" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ayf153y1qfdphz109jlblbw5wx38lwfg0dgn20xzzr3660yd831"; + type = "gem"; + }; + version = "0.24.3"; + }; + opentelemetry-instrumentation-rails = { + dependencies = ["opentelemetry-api" "opentelemetry-instrumentation-action_pack" "opentelemetry-instrumentation-action_view" "opentelemetry-instrumentation-active_job" "opentelemetry-instrumentation-active_record" "opentelemetry-instrumentation-active_support" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hiihby0lndwvny1alba1mvvag48z55vjjrwbjppb700prv0q1kk"; + type = "gem"; + }; + version = "0.30.1"; + }; + opentelemetry-instrumentation-redis = { + dependencies = ["opentelemetry-api" "opentelemetry-common" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pn8f891qy7z6dv2svjnv1f3gqx7mqg3dsp9x5xpd69sr3vbi6jx"; + type = "gem"; + }; + version = "0.25.4"; + }; + opentelemetry-instrumentation-sidekiq = { + dependencies = ["opentelemetry-api" "opentelemetry-common" "opentelemetry-instrumentation-base"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02i2vycgrradpm9nr4rp69a11fvqsngiirayn1s5j745xiy4x5sd"; + type = "gem"; + }; + version = "0.25.3"; + }; + opentelemetry-registry = { + dependencies = ["opentelemetry-api"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pw87n9vpv40hf7f6gyl2vvbl11hzdkv4psbbv3x23jvccs8593k"; + type = "gem"; + }; + version = "0.3.1"; + }; + opentelemetry-sdk = { + dependencies = ["opentelemetry-api" "opentelemetry-common" "opentelemetry-registry" "opentelemetry-semantic_conventions"]; + groups = ["opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ajf9igx63r6r2ds0f3hxd18iragvr88k2k9kzvamp1jkdna6gsi"; + type = "gem"; + }; + version = "1.4.1"; + }; + opentelemetry-semantic_conventions = { + dependencies = ["opentelemetry-api"]; + groups = ["default" "opentelemetry"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xhv5fwwgjj2k8ksprpg1nm5v8k3w6gyw4wiq2k08q3kf484rlhk"; + type = "gem"; + }; + version = "1.10.0"; + }; orm_adapter = { groups = ["default" "pam_authentication"]; platforms = []; @@ -1988,10 +2249,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1yq0h1niimm8z6z8p1yxb104kxqw69bvbrax84598zfjxifcxhxz"; + sha256 = "0w9gavjrvciip497hpdjpcs2c18vf6cgmlj696ynpaqv96804glr"; type = "gem"; }; - version = "2.14.17"; + version = "2.14.18"; }; parallel = { groups = ["default" "development"]; @@ -2009,10 +2270,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "11r6kp8wam0nkfvnwyc1fmvky102r1vcfr84vi2p1a2wa0z32j3p"; + sha256 = "0i0255l4pw6c1bc0ny98wx5qck25irinq062ijg4002mj8mydwvq"; type = "gem"; }; - version = "3.3.0.5"; + version = "3.3.1.0"; }; parslet = { groups = ["default"]; @@ -2040,10 +2301,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0s4vskbydg5k0z86v2g5drf03lslkr4b1l421vz29531jlrsljvy"; + sha256 = "071b55bhsz7mivlnp2kv0a11msnl7xg5awvk8mlflpl270javhsb"; type = "gem"; }; - version = "1.5.5"; + version = "1.5.6"; }; pghero = { dependencies = ["activerecord"]; @@ -2056,26 +2317,16 @@ }; version = "3.4.1"; }; - posix-spawn = { - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0cmb0svalqcxfzlzc5fvrci12b79x7bakasr8gkl3q5rz6di1q52"; - type = "gem"; - }; - version = "0.3.15"; - }; premailer = { dependencies = ["addressable" "css_parser" "htmlentities"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "10rzwdz43yy20lwzsr2as6aivhvwjvqh4nd48sa0ga57sizf1fb4"; + sha256 = "1yvy5lxq287izy7qsz23hry63rc57wkaaalqvxnwjncm56xgdmzh"; type = "gem"; }; - version = "1.21.0"; + version = "1.23.0"; }; premailer-rails = { dependencies = ["actionmailer" "net-smtp" "premailer"]; @@ -2125,10 +2376,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1bni4qjrsh2q49pnmmd6if4iv3ak36bd2cckrs6npl111n769k9m"; + sha256 = "14y4vzjwf5gp0mqgs880kis0k7n2biq8i6ci6q2n315kichl1hvj"; type = "gem"; }; - version = "5.0.4"; + version = "5.0.5"; }; puma = { dependencies = ["nio4r"]; @@ -2147,10 +2398,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "10diasjqi1g7s19ns14sldia4wl4c0z1m4pva66q4y2jqvks4qjw"; + sha256 = "18vz32n5ca5j5h971axnnfa8rjrfqnqv0zkgjv8xmbpb05c9m83w"; type = "gem"; }; - version = "2.3.1"; + version = "2.3.2"; }; raabro = { groups = ["default"]; @@ -2167,20 +2418,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "01b9662zd2x9bp4rdjfid07h09zxj7kvn7f5fghbqhzc625ap1dp"; + sha256 = "021s7maw0c4d9a6s07vbmllrzqsj2sgmrwimlh8ffkvwqdjrld09"; type = "gem"; }; - version = "1.7.3"; + version = "1.8.0"; }; rack = { groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "15rdwbyk71c9nxvd527bvb8jxkcys8r3dj3vqra5b3sa63qs30vv"; + sha256 = "0hj0rkw2z9r1lcg2wlrcld2n3phwrcgqcp7qd1g9a7hwgalh2qzx"; type = "gem"; }; - version = "2.2.8"; + version = "2.2.9"; }; rack-attack = { dependencies = ["rack"]; @@ -2199,10 +2450,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "02lvkg1nb4z3zc2nry545dap7a64bb9h2k8waxfz0jkabkgnpimw"; + sha256 = "06ysmn14pdf2wyr7agm0qvvr9pzcgyf39w4yvk2n05w9k4alwpa1"; type = "gem"; }; - version = "2.0.1"; + version = "2.0.2"; }; rack-oauth2 = { dependencies = ["activesupport" "attr_required" "httpclient" "json-jwt" "rack"]; @@ -2216,15 +2467,15 @@ version = "1.21.3"; }; rack-protection = { - dependencies = ["rack"]; + dependencies = ["base64" "rack"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1a12m1mv8dc0g90fs1myvis8vsgr427k1arg1q4a9qlfw6fqyhis"; + sha256 = "1zzvivmdb4dkscc58i3gmcyrnypynsjwp6xgc4ylarlhqmzvlx1w"; type = "gem"; }; - version = "3.0.5"; + version = "3.2.0"; }; rack-proxy = { dependencies = ["rack"]; @@ -2232,10 +2483,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1a62439xwn5v6hsl9s11hdk4wj58czhcbg7lminv23mnkc0ca147"; + sha256 = "12jw7401j543fj8cc83lmw72d8k6bxvkp9rvbifi88hh01blnsj4"; type = "gem"; }; - version = "0.7.6"; + version = "0.7.7"; }; rack-session = { dependencies = ["rack"]; @@ -2276,10 +2527,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1313wjykqqgvh3023rnmrwksgbl2g45p5h75s682abpj89y2bvaf"; + sha256 = "1pl2jgnbm9p031jvbihpbnpwn005107xb1794ps0ayairb6qhldn"; type = "gem"; }; - version = "7.1.3"; + version = "7.1.3.3"; }; rails-controller-testing = { dependencies = ["actionpack" "actionview" "activesupport"]; @@ -2320,10 +2571,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1k8jvm3l4gafw7hyvpky7yzjjnkr3iy7l59lyam8ah3kqhmzk7zf"; + sha256 = "0s8kvic2ia34ngssz6h15wqj0k3wwblhyh0f9v0j3gy7ly0dp161"; type = "gem"; }; - version = "7.0.8"; + version = "7.0.9"; }; railties = { dependencies = ["actionpack" "activesupport" "irb" "rackup" "rake" "thor" "zeitwerk"]; @@ -2331,10 +2582,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "19jh5gwjz11rrzjfncxcrmyqzza95k2skdcpknd26vr9jffca7bs"; + sha256 = "02xic4iyvqxj4hs5xzywg4zrff8s77c7xb1jchjfmdrzclnz51zx"; type = "gem"; }; - version = "7.1.3"; + version = "7.1.3.3"; }; rainbow = { groups = ["default" "development"]; @@ -2351,10 +2602,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1ilr853hawi09626axx0mps4rkkmxcs54mapz9jnqvpnlwd3wsmy"; + sha256 = "17850wcwkgi30p7yqh60960ypn7yibacjjha0av78zaxwvd3ijs6"; type = "gem"; }; - version = "13.1.0"; + version = "13.2.1"; }; rdf = { dependencies = ["bcp47_spec" "link_header"]; @@ -2384,10 +2635,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "14wnrpd1kl43ynk1wwwgv9avsw84d1lrvlfyrjy3d4h7h7ndnqzp"; + sha256 = "0ib3cnf4yllvw070gr4bz94sbmqx3haqc5f846fsvdcs494vgxrr"; type = "gem"; }; - version = "6.6.2"; + version = "6.6.3.1"; }; redcarpet = { groups = ["default"]; @@ -2436,10 +2687,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1ndxm0xnv27p4gv6xynk6q41irckj76q1jsqpysd9h6f86hhp841"; + sha256 = "0ik40vcv7mqigsfpqpca36hpmnx0536xa825ai5qlkv3mmkyf9ss"; type = "gem"; }; - version = "2.9.0"; + version = "2.9.2"; }; reline = { dependencies = ["io-console"]; @@ -2447,10 +2698,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0fhwdmw89zqb1fdxcd6lr57zabbfi08z8j6kqwngak0xnxi2j10l"; + sha256 = "06rlp3wjcbwbgw3xlawclzzmj6ryn6ap65nh54x5yzgx0c3jlqqz"; type = "gem"; }; - version = "0.4.2"; + version = "0.5.7"; }; request_store = { dependencies = ["rack"]; @@ -2458,10 +2709,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "13ppgmsbrqah08j06bybd3cddv6dml79yzyjn7r8j1src78h98h7"; + sha256 = "0kd4w7aa0sbk59b19s39pwhd636r7fjamrqalixsw5d53hs4sb1d"; type = "gem"; }; - version = "1.5.1"; + version = "1.6.0"; }; responders = { dependencies = ["actionpack" "railties"]; @@ -2475,14 +2726,15 @@ version = "3.1.1"; }; rexml = { + dependencies = ["strscan"]; groups = ["default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0"; + sha256 = "0d8ivcirrrxpkpjc1c835wknc9s2fl54xpw08s177yfrh5ish209"; type = "gem"; }; - version = "3.2.6"; + version = "3.2.8"; }; rotp = { groups = ["default"]; @@ -2499,10 +2751,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0pym2zjwl6dwdfvbn7rbvmds32r70jx9qddhvvi6pqy6987ack1v"; + sha256 = "1zd1pdldi6h8x27dqim7cy8m69xr01aw5c8k1zhkz497n4np6wgk"; type = "gem"; }; - version = "4.1.2"; + version = "4.2.1"; }; rpam2 = { groups = ["default" "pam_authentication"]; @@ -2541,10 +2793,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0l95bnjxdabrn79hwdhn2q1n7mn26pj7y1w5660v5qi81x458nqm"; + sha256 = "0k252n7s80bvjvpskgfm285a3djjjqyjcarlh3aq7a4dx2s94xsm"; type = "gem"; }; - version = "3.12.2"; + version = "3.13.0"; }; rspec-expectations = { dependencies = ["diff-lcs" "rspec-support"]; @@ -2552,10 +2804,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "05j44jfqlv7j2rpxb5vqzf9hfv7w8ba46wwgxwcwd8p0wzi1hg89"; + sha256 = "0bhhjzwdk96vf3gq3rs7mln80q27fhq82hda3r15byb24b34h7b2"; type = "gem"; }; - version = "3.12.3"; + version = "3.13.0"; }; rspec-github = { dependencies = ["rspec-core"]; @@ -2574,10 +2826,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1gq7gviwpck7fhp4y5ibljljvxgjklza18j62qf6zkm2icaa8lfy"; + sha256 = "0f3vgp43hajw716vmgjv6f4ar6f97zf50snny6y3fy9kkj4qjw88"; type = "gem"; }; - version = "3.12.6"; + version = "3.13.1"; }; rspec-rails = { dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"]; @@ -2585,10 +2837,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1clmx6qzdbpm1g8ycg38gjbqsbr8ccqi6hqyx88g8yckz1hrx55x"; + sha256 = "02wr7fl189p1lnpaylz48dlp1n5y763w92gk59s0345hwfr4m1q2"; type = "gem"; }; - version = "6.1.1"; + version = "6.1.2"; }; rspec-sidekiq = { dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks" "sidekiq"]; @@ -2596,20 +2848,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0g7yg1fm339rlr3r7860p9wpbxwjm1n5z9hajk4yzz1l9g37xz6p"; + sha256 = "08sbi3cdh6pxj0mj34vzr7675rb4n2r2q5yxlgs0w9xnm5c0jpdx"; type = "gem"; }; - version = "4.1.0"; + version = "5.0.0"; }; rspec-support = { groups = ["default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1ky86j3ksi26ng9ybd7j0qsdf1lpr8mzrmn98yy9gzv801fvhsgr"; + sha256 = "03z7gpqz5xkw9rf53835pa8a9vgj4lic54rnix9vfwmp2m7pv1s8"; type = "gem"; }; - version = "3.12.1"; + version = "3.13.1"; }; rubocop = { dependencies = ["json" "language_server-protocol" "parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"]; @@ -2617,10 +2869,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0v67rgbhzanbf02fy5xasaxgmhxghlqb2cxjvbplinm2zfzs0380"; + sha256 = "0ig2f3lisgq1ybkk3vs640hfgmhxggx6agv2wwy617sc6chhhzf6"; type = "gem"; }; - version = "1.60.2"; + version = "1.64.0"; }; rubocop-ast = { dependencies = ["parser"]; @@ -2628,10 +2880,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1cs9cc5p9q70valk4na3lki4xs88b52486p2v46yx3q1n5969bgs"; + sha256 = "063qgvqbyv354icl2sgx758z22wzq38hd9skc3n96sbpv0cdc1qv"; type = "gem"; }; - version = "1.30.0"; + version = "1.31.3"; }; rubocop-capybara = { dependencies = ["rubocop"]; @@ -2650,10 +2902,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "12aqsbsd8i0d6ygl7xza2plary20mbb28429jhfnnag791nr0kc0"; + sha256 = "0d012phc7z5h1j1d2aisnbkmqlb95sld5jriia5qg2gpgbg1nxb2"; type = "gem"; }; - version = "2.25.0"; + version = "2.25.1"; }; rubocop-performance = { dependencies = ["rubocop" "rubocop-ast"]; @@ -2661,10 +2913,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0cf7fn4dwf45r3nhnda0dhnwn8qghswyqbfxr2ippb3z8a6gmc8v"; + sha256 = "16jayzjaaglhx69s6b83acpdzcxxccfkcn69gfpkimf2j64zlm7c"; type = "gem"; }; - version = "1.20.2"; + version = "1.21.0"; }; rubocop-rails = { dependencies = ["activesupport" "rack" "rubocop" "rubocop-ast"]; @@ -2672,21 +2924,32 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1id396xvixh5w19bjsli477mn4dr48ff8n1243d2z0y4zr1ld52h"; + sha256 = "13d6dmkjln887x4z161r3mnn6sqwbzawb9czk51yhrsd2n0j72pn"; type = "gem"; }; - version = "2.23.1"; + version = "2.25.0"; }; rubocop-rspec = { - dependencies = ["rubocop" "rubocop-capybara" "rubocop-factory_bot"]; + dependencies = ["rubocop" "rubocop-capybara" "rubocop-factory_bot" "rubocop-rspec_rails"]; groups = ["development"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0n24wy34shczlr5fnim7vcbrgvs0hffzw89n06fxziim9iws406s"; + sha256 = "1708bhr7qwic93bsnshaidnjwn3rb7kp8wcjfky5a2s84yqyb97a"; type = "gem"; }; - version = "2.26.1"; + version = "2.29.2"; + }; + rubocop-rspec_rails = { + dependencies = ["rubocop"]; + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0618lfncmvnvkwa1jb0kga1f2yiiw1809flkj4kg52nagh3z4scp"; + type = "gem"; + }; + version = "2.28.3"; }; ruby-prof = { groups = ["development" "test"]; @@ -2714,13 +2977,13 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "18vnbzin5ypxrgcs9lllg7x311b69dyrdw2w1pwz84438hmxm79s"; + sha256 = "0qbhnmz1xn1ylvpywb8fyh00y6d73vjn97cs6a1ivriqpizkmkwx"; type = "gem"; }; - version = "1.15.0"; + version = "1.16.0"; }; ruby2_keywords = { - groups = ["default" "development" "pam_authentication" "production" "test"]; + groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; @@ -2778,10 +3041,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "04sd4jmgnwpilr3k061x87yyryya2mj15a8602fip49lfxza5548"; + sha256 = "0w0dafg0gz3snm30247wwai0cy3j235ynwx2karyh05ayfqhm4ii"; type = "gem"; }; - version = "1.7.0"; + version = "1.8.0"; }; selenium-webdriver = { dependencies = ["base64" "rexml" "rubyzip" "websocket"]; @@ -2789,10 +3052,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0g3l3invk95w1f72mpp0r4hc3vsc3070c1xd1wg76kfg2r182xnq"; + sha256 = "0qrjr30qs01b27km6ipzc2zasdlzhdgri5q7qrb53z1j8l0n82y3"; type = "gem"; }; - version = "4.17.0"; + version = "4.21.1"; }; semantic_range = { groups = ["default"]; @@ -2911,16 +3174,6 @@ }; version = "0.1.4"; }; - smart_properties = { - groups = ["default" "development"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0jrqssk9qhwrpq41arm712226vpcr458xv6xaqbk8cp94a0kycpr"; - type = "gem"; - }; - version = "1.17.0"; - }; stackprof = { groups = ["development" "test"]; platforms = []; @@ -2947,10 +3200,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1vhqx7q8qpq3x9ba504n7bp0r9dxcck0r0hd73cac2iqkix6khlv"; + sha256 = "0qq3z6mwbgj1q3b9hpxxi98i63jpqycbv13fqb8362ngk7cv06x8"; type = "gem"; }; - version = "3.0.2"; + version = "4.1.0"; }; stringio = { groups = ["default" "development" "pam_authentication" "production" "test"]; @@ -2968,10 +3221,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1742r643p4nigjj45gjjmgl3d9i5ja7klda0bhmxp02ay971c3n6"; + sha256 = "0p9g8jqcakpwmbs6f77ydmbiwbgx9c5nr6jgwxh4xx6xpig1bphq"; type = "gem"; }; - version = "1.7.0"; + version = "1.8.0"; + }; + strscan = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mamrl7pxacbc79ny5hzmakc9grbjysm3yy6119ppgsg44fsif01"; + type = "gem"; + }; + version = "3.1.0"; }; swd = { dependencies = ["activesupport" "attr_required" "httpclient"]; @@ -3031,20 +3294,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "08vm33d51zdan4zj4cccw3lx06p6flc1h40kgdfm9rp4x83csdda"; + sha256 = "0rwnq67qm2ngz066sncvg0dv65bsk29qz3xarbv8qan2hi7yw0qg"; type = "gem"; }; - version = "1.3.1"; + version = "1.3.3"; }; thor = { groups = ["default" "development" "pam_authentication" "production" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1hx77jxkrwi66yvs10wfxqa8s25ds25ywgrrf66acm9nbfg7zp0s"; + sha256 = "1vq1fjp45az9hfp6fxljhdrkv75cvbab1jfrwcw738pnsiqk8zps"; type = "gem"; }; - version = "1.3.0"; + version = "1.3.1"; }; tilt = { groups = ["default" "development"]; @@ -3124,10 +3387,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"]; @@ -3178,10 +3441,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1yj2nz2l101vr1x9w2k83a0fag1xgnmjwp8w8rw4ik2rwcz65fch"; + sha256 = "1sf6bxvf6x8gihv6j63iakixmdddgls58cpxpg32chckb2l18qcj"; type = "gem"; }; - version = "0.0.8.2"; + version = "0.0.9.1"; }; unicode-display_width = { groups = ["default" "development"]; @@ -3198,10 +3461,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0fa49cdssxllj1j37a56kq27wsibx5lmqxkqdk1rz3452y0bsydy"; + sha256 = "094gk72ckazf495qc76gk09b5i318d5l9m7bicg2wxlrjcm3qm96"; type = "gem"; }; - version = "0.12.2"; + version = "0.13.0"; }; validate_email = { dependencies = ["activemodel" "mail"]; @@ -3264,10 +3527,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0rc3g9hhxi6v2l1cp9q3kcjd92bhmdbrb517l4v5pyzwq2nflcyc"; + sha256 = "158d2ikjfzw43kgm095klp43ihphk0cv5xjprk44w73xfv03i9qg"; type = "gem"; }; - version = "3.20.0"; + version = "3.23.1"; }; webpacker = { dependencies = ["activesupport" "rack-proxy" "railties" "semantic_range"]; @@ -3370,10 +3633,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1gir0if4nryl1jhwi28669gjwhxb7gzrm1fcc8xzsch3bnbi47jn"; + sha256 = "0ayraiqfhhjzpyr4yxp035002lq78ip1zhr0ix87rn3rqpnsrn3h"; type = "gem"; }; - version = "2.6.12"; + version = "2.6.14"; }; } diff --git a/nixos/pkgs/glitch-soc/source.nix b/nixos/pkgs/glitch-soc/source.nix index 6c0408e1..d8dfa2da 100644 --- a/nixos/pkgs/glitch-soc/source.nix +++ b/nixos/pkgs/glitch-soc/source.nix @@ -1,19 +1,22 @@ -# 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, +}: + let - version = "d7d4770"; - revision = "d7d477047eba7cb88df54dd78f42095ed0fbea76"; -in -( - applyPatches { - src = fetchFromGitHub { - owner = "glitch-soc"; - repo = "mastodon"; - rev = "${revision}"; - hash = "sha256-x1fqDtCOiNS61EhnpObUuxrdTd5n2mhjoGbIYGivbDg="; - }; - patches = patches ++ [./yarn-typescript.patch]; - }) // { - inherit version; - yarnHash = "sha256-CIIz5wwWzvDKc/VbSIT7Z5D9kwOLoErXoO0WQWfV/g4="; + versionData = import ./version_data.nix; +in applyPatches { + src = fetchFromGitHub { + owner = "glitch-soc"; + repo = "mastodon"; + inherit (versionData) rev hash; + }; + patches = []; } diff --git a/nixos/pkgs/glitch-soc/update.sh b/nixos/pkgs/glitch-soc/update.sh index 56664664..ff793b13 100755 --- a/nixos/pkgs/glitch-soc/update.sh +++ b/nixos/pkgs/glitch-soc/update.sh @@ -1,108 +1,42 @@ -#!/usr/bin/env -S nix shell nixpkgs#bundix nixpkgs#coreutils nixpkgs#diffutils nixpkgs#nix-prefetch-git nixpkgs#nix-prefetch-github nixpkgs#gnused nixpkgs#jq nixpkgs#prefetch-yarn-deps -c bash +#!/usr/bin/env -S nix shell nixpkgs#coreutils nixpkgs#bundix nixpkgs#nix-prefetch-github nixpkgs#jq -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 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 source..." +hash="$(nix-prefetch-github glitch-soc mastodon --rev "$rev" | jq -r '.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 - -VERSION="${REVISION:0:7}" - -rm -f gemset.nix source.nix -cd "$(dirname "${BASH_SOURCE[0]}")" || exit 1 - -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"; - revision = "$REVISION"; -in -( - applyPatches { - src = fetchFromGitHub { - owner = "$OWNER"; - repo = "$REPO"; - rev = "\${revision}"; - 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 = ""; } 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 +echo "Building source derivation..." +srcdir="$(nix build --no-link --print-out-paths --no-warn-dirty ../..#glitch-soc-source)" +echo "Source derivation is $srcdir." -# 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 "Generating gemset.nix using built source derivation..." +rm -f gemset.nix +bundix --quiet --lockfile $srcdir/Gemfile.lock --gemfile $srcdir/Gemfile +echo "" >> gemset.nix + +echo +echo "Done." + +echo +echo "You'll have to manually enter the commit hash for the yarn deps from the error message when first trying to build the package." diff --git a/nixos/pkgs/glitch-soc/version_data.nix b/nixos/pkgs/glitch-soc/version_data.nix new file mode 100644 index 00000000..b664b3e2 --- /dev/null +++ b/nixos/pkgs/glitch-soc/version_data.nix @@ -0,0 +1,6 @@ +# This file was generated with update.sh. +{ + rev = "60c2310fd879885755c620b060828e3d6a560e0b"; + hash = "sha256-BiRtSYaBQQK6jgKkJqCaKtf2SaRDN1Sa5H5o0XKj4eQ="; + yarnHash = "sha256-haLT8KnJr1r4VPjeXfR5nm0yUbAbeB+D9reOXrdfwCY="; +} diff --git a/nixos/pkgs/glitch-soc/yarn-typescript.patch b/nixos/pkgs/glitch-soc/yarn-typescript.patch deleted file mode 100644 index e0f90bf6..00000000 --- a/nixos/pkgs/glitch-soc/yarn-typescript.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- a/yarn.lock -+++ b/yarn.lock -@@ -16483,11 +16483,11 @@ - - "typescript@patch:typescript@npm%3A5#optional!builtin, typescript@patch:typescript@npm%3A^5.0.4#optional!builtin": - version: 5.3.3 -- resolution: "typescript@patch:typescript@npm%3A5.3.3#optional!builtin::version=5.3.3&hash=e012d7" -+ resolution: "typescript@patch:typescript@npm%3A5.3.3#optional!builtin::version=5.3.3&hash=29ae49" - bin: - tsc: bin/tsc - tsserver: bin/tsserver -- checksum: 1d0a5f4ce496c42caa9a30e659c467c5686eae15d54b027ee7866744952547f1be1262f2d40de911618c242b510029d51d43ff605dba8fb740ec85ca2d3f9500 -+ checksum: e22df47df9b2b2f2617b8bf511a29aea3d177f9f7a0756818230a76b01cbd7da988bf55f9463aaa1a4c1ff90b80f8dc5676460d4e9dfc010572cbba59b822b0c - languageName: node - linkType: hard diff --git a/nixos/pkgs/glitch-soc/yarn.nix b/nixos/pkgs/glitch-soc/yarn.nix deleted file mode 100644 index c459e77c..00000000 --- a/nixos/pkgs/glitch-soc/yarn.nix +++ /dev/null @@ -1,40 +0,0 @@ -/* -Stolen (with permission) from: -https://git.catgirl.cloud/999eagle/dotfiles-nix/-/blob/main/overlay/mastodon/glitch/yarn.nix -*/ - -{ - stdenvNoCC, - yarn-berry, - cacert, - src, - hash, -}: -stdenvNoCC.mkDerivation { - name = "yarn-deps"; - nativeBuildInputs = [yarn-berry cacert]; - inherit src; - - dontInstall = true; - - NODE_EXTRA_CA_CERTS = "${cacert}/etc/ssl/certs/ca-bundle.crt"; - - buildPhase = '' - mkdir -p $out - - export HOME=$(mktemp -d) - echo $HOME - - export YARN_ENABLE_TELEMETRY=0 - export YARN_COMPRESSION_LEVEL=0 - - cache="$(yarn config get cacheFolder)" - yarn install --immutable --mode skip-build - - cp -r $cache/* $out/ - ''; - - outputHashAlgo = "sha256"; - outputHash = hash; - outputHashMode = "recursive"; -}