diff --git a/third_party/rust-reproducibility.patch b/third_party/rust-reproducibility.patch
index 3b42085..d21c77a 100644
--- a/third_party/rust-reproducibility.patch
+++ b/third_party/rust-reproducibility.patch
@@ -1,3 +1,8 @@
+From d20698e4802b801807d0474f1d1d003b13c78277 Mon Sep 17 00:00:00 2001
+From: Tim Windelschmidt <tim@monogon.tech>
+Date: Fri, 12 Jan 2024 15:44:41 +0100
+Subject: [PATCH] Improve reproducibility
+
 Fixes a few issues with rules_rust/rustc reproducibility when the same code is
 being built in slightly different BuildConfigurations.
 
@@ -18,12 +23,20 @@
     codegen, too.
  2. We add a remap path option to rustc that replaces bazel-out/<dir>/bin/ with
     bin/.
+---
+ proto/prost/private/prost.bzl | 4 +++-
+ proto/protobuf/proto.bzl      | 2 +-
+ rust/private/clippy.bzl       | 2 +-
+ rust/private/rust.bzl         | 6 +++---
+ rust/private/rustc.bzl        | 4 ++++
+ rust/private/utils.bzl        | 7 +++++--
+ 6 files changed, 17 insertions(+), 8 deletions(-)
 
 diff --git a/proto/prost/private/prost.bzl b/proto/prost/private/prost.bzl
-index 6cd3d522..56d897b5 100644
+index e3e5e382..b91123f3 100644
 --- a/proto/prost/private/prost.bzl
 +++ b/proto/prost/private/prost.bzl
-@@ -128,7 +128,9 @@ def _compile_rust(ctx, attr, crate_name, src, deps, edition):
+@@ -125,7 +125,9 @@ def _compile_rust(ctx, attr, crate_name, src, deps, edition):
        A DepVariantInfo provider.
      """
      toolchain = ctx.toolchains["@rules_rust//rust:toolchain_type"]
@@ -31,16 +44,16 @@
 +    src_path = src.path.replace(ctx.bin_dir.path, 'bin')
 +    print(src.path, src_path)
 +    output_hash = repr(hash(src_path + ".prost"))
- 
+
      lib_name = "{prefix}{name}-{lib_hash}{extension}".format(
          prefix = "lib",
 diff --git a/proto/protobuf/proto.bzl b/proto/protobuf/proto.bzl
-index ca2df8a2..b4bf3335 100644
+index 7b254305..d61a1cbc 100644
 --- a/proto/protobuf/proto.bzl
 +++ b/proto/protobuf/proto.bzl
-@@ -188,7 +188,7 @@ def _rust_proto_compile(protos, descriptor_sets, imports, crate_name, ctx, is_gr
+@@ -187,7 +187,7 @@ def _rust_proto_compile(protos, descriptor_sets, imports, crate_name, ctx, is_gr
      srcs.append(lib_rs)
- 
+
      # And simulate rust_library behavior
 -    output_hash = determine_output_hash(lib_rs, ctx.label)
 +    output_hash = determine_output_hash(ctx.bin_dir, lib_rs, ctx.label)
@@ -48,7 +61,7 @@
          output_dir,
          crate_name,
 diff --git a/rust/private/clippy.bzl b/rust/private/clippy.bzl
-index 071ca29c..968a4ad6 100644
+index 9fd9842c..54a0547c 100644
 --- a/rust/private/clippy.bzl
 +++ b/rust/private/clippy.bzl
 @@ -120,7 +120,7 @@ def _clippy_aspect_impl(target, ctx):
@@ -61,44 +74,44 @@
          out_dir = out_dir,
          build_env_files = build_env_files,
 diff --git a/rust/private/rust.bzl b/rust/private/rust.bzl
-index 014d8d0d..cb783dc9 100644
+index 7727febb..217f1059 100644
 --- a/rust/private/rust.bzl
 +++ b/rust/private/rust.bzl
-@@ -275,7 +275,7 @@ def _rust_library_common(ctx, crate_type):
+@@ -159,7 +159,7 @@ def _rust_library_common(ctx, crate_type):
      if crate_type in ["cdylib", "staticlib"]:
          output_hash = None
      else:
 -        output_hash = determine_output_hash(crate_root, ctx.label)
 +        output_hash = determine_output_hash(ctx.bin_dir, crate_root, ctx.label)
- 
-     crate_name = compute_crate_name(ctx.workspace_name, ctx.label, toolchain, ctx.attr.crate_name)
-     rust_lib_name = _determine_lib_name(
-@@ -390,7 +390,7 @@ def _rust_test_impl(ctx):
+
+     rust_lib_name = determine_lib_name(
+         crate_name,
+@@ -310,7 +310,7 @@ def _rust_test_impl(ctx):
          # Target is building the crate in `test` config
          crate = ctx.attr.crate[rust_common.crate_info] if rust_common.crate_info in ctx.attr.crate else ctx.attr.crate[rust_common.test_crate_info].crate
- 
+
 -        output_hash = determine_output_hash(crate.root, ctx.label)
 +        output_hash = determine_output_hash(ctx.bin_dir, crate.root, ctx.label)
          output = ctx.actions.declare_file(
              "test-%s/%s%s" % (
                  output_hash,
-@@ -441,7 +441,7 @@ def _rust_test_impl(ctx):
+@@ -369,7 +369,7 @@ def _rust_test_impl(ctx):
              crate_root = crate_root_src(ctx.attr.name, ctx.files.srcs, crate_root_type)
-         srcs, crate_root = _transform_sources(ctx, ctx.files.srcs, crate_root)
- 
+         srcs, crate_root = transform_sources(ctx, ctx.files.srcs, crate_root)
+
 -        output_hash = determine_output_hash(crate_root, ctx.label)
 +        output_hash = determine_output_hash(ctx.bin_dir, crate_root, ctx.label)
          output = ctx.actions.declare_file(
              "test-%s/%s%s" % (
                  output_hash,
 diff --git a/rust/private/rustc.bzl b/rust/private/rustc.bzl
-index e76c20bd..cebd5a73 100644
+index ef3479e5..06c94574 100644
 --- a/rust/private/rustc.bzl
 +++ b/rust/private/rustc.bzl
-@@ -952,6 +952,10 @@ def construct_arguments(
+@@ -966,6 +966,10 @@ def construct_arguments(
      if remap_path_prefix != None:
          rustc_flags.add("--remap-path-prefix=${{pwd}}={}".format(remap_path_prefix))
- 
+
 +    # Replace unstable bindir path (based on ST-hash which is in turn based on
 +    # build configuration) with a stable bin/ path.
 +    rustc_flags.add("--remap-path-prefix={}=bin".format(ctx.bin_dir.path))
@@ -107,22 +120,22 @@
          rustc_flags.add_joined(emit_with_paths, format_joined = "--emit=%s", join_with = ",")
      if error_format != "json":
 diff --git a/rust/private/utils.bzl b/rust/private/utils.bzl
-index 879e2b62..08ef530f 100644
+index 4e9b4b79..82317359 100644
 --- a/rust/private/utils.bzl
 +++ b/rust/private/utils.bzl
-@@ -181,7 +181,7 @@ def abs(value):
+@@ -182,7 +182,7 @@ def abs(value):
          return -value
      return value
- 
+
 -def determine_output_hash(crate_root, label):
 +def determine_output_hash(bin_dir, crate_root, label):
      """Generates a hash of the crate root file's path.
- 
+
      Args:
-@@ -192,8 +192,11 @@ def determine_output_hash(crate_root, label):
+@@ -193,8 +193,11 @@ def determine_output_hash(crate_root, label):
          str: A string representation of the hash.
      """
- 
+
 +    # Remove any unstable BuildConfiguration derived dir fragments to unify
 +    # hashes between different configs.
 +    crate_root_path = crate_root.path.replace(bin_dir.path, 'bin')
@@ -130,5 +143,8 @@
 -    h = abs(hash(crate_root.path) + hash(repr(label)))
 +    h = abs(hash(crate_root_path) + hash(repr(label)))
      return repr(h)
- 
+
  def get_preferred_artifact(library_to_link, use_pic):
+--
+2.42.0
+
