about summary refs log tree commit diff
path: root/pkgs/applications/networking/browsers
diff options
context:
space:
mode:
authoremilylange <git@emilylange.de>2024-01-24 03:00:06 +0100
committeremilylange <git@emilylange.de>2024-01-24 03:00:06 +0100
commit1724fc3271f3447b8c741216af9b8c66151032a8 (patch)
treec65a77d0d1e71ad18ad2e5972576245324b3f078 /pkgs/applications/networking/browsers
parent23f343f1b023c17e7ae5fbd68c9b43d348025c5a (diff)
downloadnixlib-1724fc3271f3447b8c741216af9b8c66151032a8.tar
nixlib-1724fc3271f3447b8c741216af9b8c66151032a8.tar.gz
nixlib-1724fc3271f3447b8c741216af9b8c66151032a8.tar.bz2
nixlib-1724fc3271f3447b8c741216af9b8c66151032a8.tar.lz
nixlib-1724fc3271f3447b8c741216af9b8c66151032a8.tar.xz
nixlib-1724fc3271f3447b8c741216af9b8c66151032a8.tar.zst
nixlib-1724fc3271f3447b8c741216af9b8c66151032a8.zip
chromium: work around rust toolchain requirement in M121+
M121 is the first version to require the new rust toolchain, which we
haven't ready yet.
Specifically, there seems to be an issue where clang looks up library
paths (with `clang_version = 17;` added to `gnFlags` (defaults to 18 and
is part of the lookup path)):

```
ninja: error: '../../../../nix/store/q5f07rqsvsxnzwbw97yi8lacksrmy13x-clang-wrapper-17.0.6/lib/clang/17/lib/x86_64-unknown-linux-gnu/libclang_rt.builtins.a', needed by 'obj/third_party/protobuf/libprotoc_lib.a', missing and no known rule to make it
```

Instead of
```
/nix/store/q5f07rqsvsxnzwbw97yi8lacksrmy13x-clang-wrapper-17.0.6/lib/clang/17/lib/x86_64-unknown-linux-gnu/libclang_rt.builtins.a
/nix/store/q5f07rqsvsxnzwbw97yi8lacksrmy13x-clang-wrapper-17.0.6/lib/clang/18/lib/x86_64-unknown-linux-gnu/libclang_rt.builtins.a
```
it should be something like
```
/nix/store/q5f07rqsvsxnzwbw97yi8lacksrmy13x-clang-wrapper-17.0.6/resource-root/lib/linux/libclang_rt.builtins-x86_64.a
```

So to give us ever so slightly more time to figure out and fix the rust
toolchain, we revert the upstream commit, that requires the rust
toolchain.
The c++ version of the QR code generator will be gone in the next few
version bumps, meaning we can no longer work around this by then.
Again, this is only to buy us ever so slightly more time.

This could have been prepared better and ahead of the stable bump, but
we simply don't have enough chromium maintainers right now :(
Diffstat (limited to 'pkgs/applications/networking/browsers')
-rw-r--r--pkgs/applications/networking/browsers/chromium/common.nix12
1 files changed, 12 insertions, 0 deletions
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index 0798be9372e9..f860edc93a36 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -236,6 +236,18 @@ let
         commit = "b9bef8e9555645fc91fab705bec697214a39dbc1";
         hash = "sha256-CJ1v/qc8+nwaHQR9xsx08EEcuVRbyBfCZCm/G7hRY+4=";
       })
+    ] ++ lib.optionals (chromiumVersionAtLeast "121") [
+      # M121 is the first version to require the new rust toolchain.
+      # But we don't have that ready yet.
+      # So we have to revert the singular commit that requires rust toolchain.
+      # This works, because the code in question, the QR code generator, is present in
+      # two variants: c++ and rust. This workaround will not last.
+      # The c++ variant in question is deemed to be removed in a month (give or take).
+      (githubPatch {
+        revert = true;
+        commit = "bcf739b95713071687ff25010683248de0092f6a";
+        hash = "sha256-1ZPe45cc2bjnErcF3prbLMlYpU7kpuwDVcjewINQr+Q=";
+      })
     ];
 
     postPatch = ''