Debian Patches
Status for rustc/1.86.0+dfsg1-1~bpo13+2
Patch | Description | Author | Forwarded | Bugs | Origin | Last update |
---|---|---|---|---|---|---|
cargo/c-2002_disable-net-tests.patch | Disable network tests | Ximin Luo <infinity0@debian.org> | invalid | 2024-06-13 | ||
cargo/c-2003-workaround-qemu-vfork-command-not-found.patch | c-2003-workaround-qemu-vfork-command-not-found =================================================================== |
Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | no | 2024-06-13 | ||
cargo/c-2200-workaround-x32-test.patch | c-2200-workaround-x32-test | Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | yes | upstream | 2024-06-13 | |
cargo/c-disable-fs-specific-test.patch | c-disable-fs-specific-test =================================================================== |
Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | no | 2024-06-13 | ||
cargo/c-0003-tests-add-missing-cross-disabled-checks.patch | [PATCH] tests: add missing cross disabled checks cross_conmpile::alternate states it should only be used in test cases after checking cross_compile::disabled(), which is missing here. these tests fail despite setting CFG_DISABLE_CROSS_TESTS on i386, since both the host and the alternate cross target would be i686 in that case. |
=?utf-8?q?Fabian_Gr=C3=BCnbichler?= <debian@fabian.gruenbichler.email> | no | 2022-11-19 | ||
cargo/d-0012-cargo-always-return-dev-channel.patch | d-0012-cargo-always-return-dev-channel | Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | not-needed | 2023-05-30 | ||
upstream/u-ignore-ppc-hangs.patch | u-ignore-ppc-hangs | Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | yes | upstream | 2022-07-14 | |
upstream/u-rustc-llvm-cross-flags.patch | u-rustc-llvm-cross-flags =================================================================== |
Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | no | 2022-07-14 | ||
upstream/u-hurd-tests.patch | compiletest: add ignore-hurd support and annotate some tests These tests hang or make the box OOM |
Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | no | 2024-06-13 | ||
upstream/d-ignore-test_arc_condvar_poison-ppc.patch | d-ignore-test_arc_condvar_poison-ppc | Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | no | 2024-06-13 | ||
upstream/d-disable-download-tests.patch | d-disable-download-tests | Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | no | 2024-06-13 | ||
prune/d-0000-ignore-removed-submodules.patch | remove upstream parts that are not needed for the Debian build, inorder to both reduce the orig tarball and the vendored crates within. | Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | not-needed | 2021-10-02 | ||
prune/d-0001-pkg-config-no-special-snowflake.patch | always enable cross compilation via pkgconf, and set the right binary name. | Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | not-needed | 2021-10-02 | ||
prune/d-0002-mdbook-strip-embedded-libs.patch | Use https://github.com/infinity0/mdBook/tree/debian to help you rebasethe patch on top of a newer version. . Make sure the paths here match the ones in debian/rust-doc.links |
Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | not-needed | 2021-10-02 | ||
prune/d-0005-no-jemalloc.patch | remove jemalloc-sys | Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | not-needed | 2021-10-02 | ||
prune/d-0006-no-mimalloc.patch | remove mimalloc(-sys) | Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | not-needed | 2025-01-11 | ||
prune/d-0007-no-tzdb.patch | remove jiff-tzdb(-platform) on Debian, we can just use the tzdata information.. |
Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | not-needed | 2025-01-11 | ||
prune/d-0010-cargo-remove-vendored-c-crates.patch | remove all vendoring features of crates normally shipping bundledC libs. that C code is stripped when repacking, so the features can't work anyway. |
Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | not-needed | 2024-05-06 | ||
prune/d-0011-cargo-remove-nghttp2.patch | remove dependency on libnghttp2-sys so it can be pruned. | Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | not-needed | 2023-05-17 | ||
prune/d-0020-remove-windows-dependencies.patch | d-0020-remove-windows-dependencies use something like find src compiler library -iname Cargo.toml -exec grep -H -n -e 'windows-sys' -e 'winapi' -e 'ntapi' -e 'wincon' -e 'winreg' -e 'windows' {} \; to find and eliminate dependencies on windows-only crates when rebasing. windows-bindgen and windows-metadata should not be removed, they are needed for the build and don't pull in windows-sys and friends. =================================================================== |
Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | not-needed | 2024-05-06 | ||
prune/d-0021-vendor-remove-windows-dependencies.patch | d-0021-vendor-remove-windows-dependencies use something like find vendor -iname Cargo.toml -exec grep -H -n -e 'schannel' -e 'windows-sys' -e 'winapi' -e 'ntapi' -e 'wincon' -e 'winreg' -e 'windows' -e 'winsplit' {} \; to find dependencies on windows targets in vendored crates. you will likely need to remove some hunks from this patch after pruning dependencies, since hopefully a few of the crates patched during early rebasing are eliminated. windows-bindgen and windows-metadata should not be removed, they are needed for the build and don't pull in windows-sys and friends. |
=?utf-8?q?Fabian_Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com> | not-needed | 2023-09-06 | ||
vendor/d-0003-cc-psm-rebuild-wasm32.patch | d-0003-cc-psm-rebuild-wasm32 | Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | not-needed | 2021-10-02 | ||
build/d-bootstrap-rustflags.patch | d-bootstrap-rustflags =================================================================== |
Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | not-needed | 2022-07-14 | ||
build/d-bootstrap-install-symlinks.patch | Install symlinks as-is, don't dereference them Our patch to mdbook installs symlinks to systems versions of font-awesome, highlight, etc. Upstream mdbook otherwise doesn't use symlinks, so this doesn't affect anything else that's already generated. |
Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | not-needed | 2022-07-14 | ||
build/d-bootstrap-disable-git.patch | bootstrap: always use commit info file instead of checking .git | Matthijs van Otterdijk <matthijs@wirevirt.net> | not-needed | 2022-07-14 | ||
build/d-bootstrap-no-assume-tools.patch | set tools to those built in Debian =================================================================== |
Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | not-needed | 2022-07-14 | ||
build/d-bootstrap-cargo-doc-paths.patch | Fix links to cargo-doc We package cargo docs in a slightly different location; also tweak linkchecker to not fail these links. |
Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | not-needed | 2022-07-14 | ||
build/d-bootstrap-use-local-css.patch | d-bootstrap-use-local-css =================================================================== |
Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | not-needed | 2022-07-14 | ||
build/d-bootstrap-custom-debuginfo-path.patch | d-bootstrap-custom-debuginfo-path =================================================================== |
Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | not-needed | 2022-07-14 | ||
build/d-bootstrap-permit-symlink-in-docs.patch | partial revert of b9eedea4b0368fd1f00f204db75109ff444fab5b upstream | Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | not-needed | 2024-06-13 | ||
build/d-test-ignore-avx-44056.patch | d-test-ignore-avx-44056 =================================================================== |
Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | not-needed | upstream | 2022-07-14 | |
behaviour/d-rust-gdb-paths.patch | Hardcode GDB python module directory Debian package installs python modules into a fixed directory, so just hardcode path in wrapper script. |
Angus Lees <gus@debian.org> | not-needed | 2022-07-14 | ||
behaviour/d-rust-lldb-paths.patch | Hardcode LLDB python module directory Debian package installs python modules into a fixed directory, so just hardcode path in wrapper script. |
Angus Lees <gus@debian.org> | not-needed | 2022-07-14 | ||
behaviour/d-rustc-add-soname.patch | Set DT_SONAME when building dylibs In Rust, library filenames include a version-specific hash to help the run-time linker find the correct version. Unlike in C/C++, the compiler looks for all libraries matching a glob that ignores the hash and reads embedded metadata to work out versions, etc. The upshot is that there is no need for the usual "libfoo.so -> libfoo-1.2.3.so" symlink common with C/C++ when building with Rust, and no need to communicate an alternate filename to use at run-time vs compile time. If linking to a Rust dylib from C/C++ however, a "libfoo.so -> libfoo-$hash.so" symlink may well be useful and in this case DT_SONAME=libfoo-$hash.so would be required. More mundanely, various tools (eg: dpkg-shlibdeps) complain if they don't find DT_SONAME on shared libraries in public directories. This patch passes -Wl,-soname=$outfile when building dylibs (and using a GNU linker). |
Angus Lees <gus@debian.org> | no | 2022-07-14 | ||
behaviour/d-rustc-windows-ssp.patch | d-rustc-windows-ssp | Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | yes | upstream | 2022-07-14 | |
behaviour/d-rustdoc-disable-embedded-fonts.patch | removed some embedded fonts =================================================================== |
Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | not-needed | 2022-07-14 | ||
ubuntu/ubuntu-disable-ppc64el-asm-tests.patch | ubuntu-disable-ppc64el-asm-tests | Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> | not-needed | 2024-06-13 | ||
ubuntu/ubuntu-ignore-arm-doctest.patch | Disable the doctests for the instruction_set errors The fix is as described in the upstream issue. |
Simon Chopin <simon.chopin@canonical.com> | yes | upstream | 2022-02-23 | |
vendor/onig_sys-use-system-lib.patch | onig_sys: use system lib | =?utf-8?q?Fabian_Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com> | no | 2024-07-31 | ||
vendor/libz-sys-allow-cross-building.patch | libz-sys: allow cross-building | =?utf-8?q?Fabian_Gr=C3=BCnbichler?= <debian@fabian.gruenbichler.email> | no | 2024-10-08 | ||
build/bootstrap-tests-disable-compiler-rt-optimizing.patch | bootstrap tests: disable compiler-rt optimizing it cannot work since there are no bundled LLVM (and thus no bundled compiler-rt) sources available. during the regular build this is handled by our config, but bootstrap tests don't use that.. |
=?utf-8?q?Fabian_Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com> | no | 2024-10-22 | ||
build/ignore-broken-debuginfo-tests.patch | ignore broken debuginfo tests | =?utf-8?q?Fabian_Gr=C3=BCnbichler?= <git@fabian.gruenbichler.email> | invalid | 2024-10-23 | ||
vendor/blake3-skip-embedded-C-code-use-pure-implementation.patch | blake3: skip embedded C code, use pure implementation | =?utf-8?q?Fabian_Gr=C3=BCnbichler?= <git@fabian.gruenbichler.email> | not-needed | 2024-11-30 | ||
build/ci_rustc-disable-test-that-requires-upstream-git-repo.patch | ci_rustc: disable test that requires upstream git repo | =?utf-8?q?Fabian_Gr=C3=BCnbichler?= <git@fabian.gruenbichler.email> | not-needed | 2024-12-04 | ||
build/bootstrap-don-t-attempt-to-download-rustc-in-tests.patch | bootstrap: don't attempt to download rustc in tests the tests use a default config, so we need to manually override this option.. |
=?utf-8?q?Fabian_Gr=C3=BCnbichler?= <debian@fabian.gruenbichler.email> | no | 2025-01-11 | ||
vendor/gitoxide-backport-fix-for-CVE-2025-31130.patch | gitoxide: backport fix for CVE-2025-31130 fix feat!: detect SHA‐1 collision attacks Fix [GHSA-2frx-2596-x5r6]. [GHSA-2frx-2596-x5r6]: https://github.com/GitoxideLabs/gitoxide/security/advisories/GHSA-2frx-2596-x5r6 This uses the `sha1-checked` crate from the RustCrypto project. It’s a pure Rust implementation, with no SIMD or assembly code. The hashing implementation moves to `gix-hash`, as it no longer depends on any feature configuration. I wasn’t sure the ideal crate to put this in, but after checking reverse dependencies on crates.io, it seems like there’s essentially no user of `gix-hash` that wouldn’t be pulling in a hashing implementation anyway, so I think this is a fine and logical place for it to be. A fallible API seems better than killing the process as Git does, since we’re in a library context and it would be bad if you could perform denial‐of‐service attacks on a server by sending it hash collisions. (Although there are probably cheaper ways to mount a denial‐of‐service attack.) The new API also returns an `ObjectId` rather than `[u8; 20]`; the vast majority of `Hasher::digest()` users immediately convert the result to `ObjectId`, so this will help eliminate a lot of cruft across the tree. `ObjectId` also has nicer `Debug` and `Display` instances than `[u8; 20]`, and should theoretically make supporting the hash function transition easier, although I suspect further API changes will be required for that anyway. I wasn’t sure whether this would be a good change, as not every digest identifies an entry in the Git object database, but even many of the existing uses for non‐object digests across the tree used the `ObjectId` API anyway. Perhaps it would be best to have a separate non‐alias `Digest` type that `ObjectId` wraps, but this seems like the pragmatic choice for now that sticks with current practice. The old API remains in this commit, as well as a temporary non‐fallible but `ObjectId`‐returning `Hasher::finalize()`, pending the migration of all in‐tree callers. I named the module `gix_hash::hasher` since `gix_hash::hash` seemed like it would be confusing. This does mean that there is a function and module with the same name, which is permitted but perhaps a little strange. Everything is re‐exported directly other than `gix_features::hash::Write`, which moves along with the I/O convenience functions into a new public submodule and becomes `gix_hash::hasher::io::Write`, as that seems like a clearer name to me, being akin to the `gix_hash::hasher` function but as an `std::io::Write` wrapper. Raw hashing is somewhere around 0.25× to 0.65× the speed of the previous implementation, depending on the feature configuration and whether the CPU supports hardware‐accelerated hashing. (The more portable assembly in `sha1-asm` that doesn’t require the SHA instruction set doesn’t seem to speed things up that much; in fact, `sha1_smol` somehow regularly beats the assembly code used by `sha1` on my i9‐9880H MacBook Pro! Presumably this is why that path was removed in newer versions of the `sha1` crate.) Performance on an end‐to‐end `gix no-repo pack verify` benchmark using pack files from the Linux kernel Git server measures around 0.41× to 0.44× compared to the base commit on an M2 Max and a Ryzen 7 5800X, both of which have hardware instructions for SHA‐1 acceleration that the previous implementation uses but this one does not. On the i9‐9880H, it’s around 0.58× to 0.60× the speed; the slowdown is reduced by the older hardware’s lack of SHA‐1 instructions. The `sha1collisiondetection` crate from the Sequoia PGP project, based on a modified C2Rust translation of the library used by Git, was also considered; although its raw hashing performance seems to measure around 1.12–1.15× the speed of `sha1-checked` on x86, it’s indistinguishable from noise on the end‐to‐end benchmark, and on an M2 Max `sha1-checked` is consistently around 1.03× the speed of `sha1collisiondetection` on that benchmark. The `sha1collisiondetection` crate has also had a soundness issue in the past due to the automatic C translation, whereas `sha1-checked` has only one trivial `unsafe` block. On the other hand, `sha1collisiondetection` is used by both Sequoia itself and the `gitoid` crate, whereas rPGP is the only major user of `sha1-checked`. I don’t think there’s a clear winner here. The performance regression is very unfortunate, but the [SHAttered] attack demonstrated a collision back in 2017, and the 2020 [SHA‐1 is a Shambles] attack demonstrated a practical chosen‐prefix collision that broke the use of SHA‐1 in OpenPGP, costing $75k to perform, with an estimate of $45k to replicate at the time of publication and $11k for a classical collision. [SHAttered]: https://shattered.io/ [SHA‐1 is a Shambles]: https://sha-mbles.github.io/ Given the increase in GPU performance and production since then, that puts the Git object format squarely at risk. Git mitigated this attack in 2017; the algorithm is fairly general and detects all the existing public collisions. My understanding is that an entirely new cryptanalytic approach would be required to develop a collision attack for SHA‐1 that would not be detected with very high probability. I believe that the speed penalty could be mitigated, although not fully eliminated, by implementing a version of the hardened SHA‐1 function that makes use of SIMD. For instance, the assembly code used by `openssl speed sha1` on my i9‐9880H measures around 830 MiB/s, compared to the winning 580 MiB/s of `sha1_smol`; adding collision detection support to that would surely incur a performance penalty, but it is likely that it could be much more competitive with the performance before this commit than the 310 MiB/s I get with `sha1-checked`. I haven’t been able to find any existing work on this; it seems that more or less everyone just uses the original C library that Git does, presumably because nothing except Git and OpenPGP is still relying on SHA‐1 anyway… The performance will never compete with the >2 GiB/s that can be achieved with the x86 SHA instruction set extension, as the `SHA1RNDS4` instruction sadly runs four rounds at a time while the collision detection algorithm requires checks after every round, but I believe SIMD would still offer a significant improvement, and the AArch64 extension seems like it may be more flexible. I know that these days the Git codebase has an additional faster unsafe API without these checks that it tries to carefully use only for operations that do not depend on hashing results for correctness or safety. I personally believe that’s not a terribly good idea, as it seems easy to misuse in a case where correctness actually does matter, but maybe that’s just my Rust safety bias talking. I think it would be better to focus on improving the performance of the safer algorithm, as I think that many of the operations where the performance penalty is the most painful are dealing with untrusted input anyway. The `Hasher` struct gets a lot bigger; I don’t know if this is an issue or not, but if it is, it could potentially be boxed. Backported from upstream, paths and context adapted and non-applicabable parts removed. |
Emily <hello@emily.moe> | no | 2025-04-01 | ||
upstream/RUSTSEC-2025-0024-sync-mpsc-prevent-double-free-on-Drop.patch | RUSTSEC-2025-0024: sync::mpsc: prevent double free on `Drop` This PR is fixing a regression introduced by #121646 that can lead to a double free when dropping the channel. The details of the bug can be found in the corresponding crossbeam PR https://github.com/crossbeam-rs/crossbeam/pull/1187 |
Petros Angelatos <petrosagg@gmail.com> | no | 2025-04-08 | ||
vendor/mdbook-Fix-issue-with-None-source_path.patch | mdbook: Fix issue with None source_path This fixes an issue where mdbook would panic if a non-draft chapter has a None source_path when generating the search index. The code was assuming that only draft chapters would have that behavior. However, API users can inject synthetic chapters that have no path on disk. This updates it to fall back to the path, or skip if neither is set. see https://github.com/rust-lang/mdBook/commit/5777a0edc4af9cd4617ab795c82298913ae685bd https://github.com/rust-lang/rust/pull/137191 and https://github.com/rust-lang/mdBook/blob/master/CHANGELOG.md#mdbook-0445 |
Eric Huss <eric@huss.org> | no | 2025-02-17 | ||
upstream/test-convert-version_check-ui-test-to-run-make.patch | test: convert version_check ui test to run-make else it breaks with `rpath=false`. (cherry picked from commit dd148a06961e4e19a8d1788ed8c759e0394d48c9) |
=?utf-8?q?Fabian_Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com> | no | 2025-05-27 | ||
upstream/tests-fix-autovectorization-bswaps-test.patch | tests: fix autovectorization bswaps test Debian's s390x baseline is too low for this test to work reliably, but we do want it to run on x86_64 and aarch64. (cherry picked from commit 59069986e7446123556630a32adce7f101eeaf8d) (cherry picked from commit 6b0deb2161b730be16c1ec13c1ab47455c054f37) with some additional changes on top |
=?utf-8?q?Fabian_Gr=C3=BCnbichler?= <git@fabian.gruenbichler.email> | no | 2025-07-22 | ||
upstream/fix-bootstrapping-on-x32.patch | fix bootstrapping on x32 | John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> | yes | 2025-07-22 | ||
vendor/cargo-do-not-force-liblzma-sys-static-linking.patch | cargo: do not force liblzma-sys static linking | =?utf-8?q?Fabian_Gr=C3=BCnbichler?= <git@fabian.gruenbichler.email> | not-needed | 2025-07-23 | ||
behaviour/ppc64-downgrade-baseline-to-Power4.patch | ppc64: downgrade baseline to Power4+ | =?utf-8?q?Fabian_Gr=C3=BCnbichler?= <git@fabian.gruenbichler.email> | no | 2025-08-04 |
All known versions for source package 'rustc'
- 1.87.0+dfsg1-1 (sid)
- 1.87.0+dfsg1-1~exp1 (experimental)
- 1.86.0+dfsg1-1 (forky)
- 1.86.0+dfsg1-1~bpo13+2 (trixie-backports)
- 1.85.0+dfsg3-1 (trixie)
- 1.63.0+dfsg1-2 (bookworm)