Versioned cargo wrapper script points to default cargo
| Affects | Status | Importance | Assigned to | Milestone | ||
|---|---|---|---|---|---|---|
| rustc-1.76 (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | |||
| Focal |
New
|
Undecided
|
Unassigned | |||
| Jammy |
New
|
Undecided
|
Unassigned | |||
| Noble |
New
|
Undecided
|
Unassigned | |||
| rustc-1.77 (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | |||
| Focal |
New
|
Undecided
|
Unassigned | |||
| Jammy |
New
|
Undecided
|
Unassigned | |||
| Noble |
New
|
Undecided
|
Unassigned | |||
| rustc-1.78 (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | |||
| Focal |
New
|
Undecided
|
Unassigned | |||
| Jammy |
New
|
Undecided
|
Unassigned | |||
| Noble |
New
|
Undecided
|
Unassigned | |||
| rustc-1.79 (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | |||
| Focal |
New
|
Undecided
|
Unassigned | |||
| Jammy |
New
|
Undecided
|
Unassigned | |||
| Noble |
New
|
Undecided
|
Unassigned | |||
| rustc-1.80 (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | |||
| Focal |
New
|
Undecided
|
Unassigned | |||
| Jammy |
New
|
Undecided
|
Unassigned | |||
| Noble |
New
|
Undecided
|
Unassigned | |||
| Oracular |
Won't Fix
|
Undecided
|
Unassigned | |||
| rustc-1.81 (Ubuntu) |
In Progress
|
Undecided
|
Max Gilmour | |||
| Noble |
New
|
Undecided
|
Unassigned | |||
| Oracular |
Won't Fix
|
Undecided
|
Unassigned | |||
| Plucky |
New
|
Undecided
|
Unassigned | |||
| rustc-1.82 (Ubuntu) |
In Progress
|
Undecided
|
Max Gilmour | |||
| Noble |
New
|
Undecided
|
Unassigned | |||
| Plucky |
New
|
Undecided
|
Unassigned | |||
| rustc-1.83 (Ubuntu) |
In Progress
|
Undecided
|
Max Gilmour | |||
| Noble |
New
|
Undecided
|
Unassigned | |||
| Plucky |
New
|
Undecided
|
Unassigned | |||
| rustc-1.84 (Ubuntu) |
In Progress
|
High
|
Max Gilmour | |||
| Noble |
New
|
Undecided
|
Unassigned | |||
| Plucky |
Triaged
|
High
|
Unassigned | |||
| rustc-1.85 (Ubuntu) |
In Progress
|
Undecided
|
Max Gilmour | |||
| Noble |
New
|
Undecided
|
Unassigned | |||
| Questing |
New
|
Undecided
|
Unassigned | |||
| rustc-1.88 (Ubuntu) | Status tracked in Resolute | |||||
| Questing |
New
|
Undecided
|
Unassigned | |||
| Resolute |
In Progress
|
Undecided
|
Max Gilmour | |||
Bug Description
[ Impact ]
* If you use the Cargo wrapper script provided by a versioned
cargo package, e.g. /usr/lib/
it will invoke /usr/bin/cargo rather than
/usr/
* This means that users expecting a particular Cargo version are
actually invoking the rust-defaults Cargo version behind the
scenes.
* Additionally, if the rust-defaults Cargo version isn't
installed, the versioned Cargo wrapper script doesn't work at
all (because it's trying to invoke the nonexistent default).
* As stated in the comments of this bug report, this is blocking
the update of authd's Rust dependencies.
* This upload fixes the bug by making the Cargo wrapper script
invoke the versioned Cargo instead.
* In addition, it adds a new "versioned-
which verifies that the Cargo version invoked by the wrapper
script matches the version of the package itself.
[ Test Plan ]
* To reproduce on Noble, do the following:
- # apt install -y cargo-1.85
- $ /usr/lib/
- This should produce a FileNotFoundError.
- # apt install -y cargo
- $ /usr/lib/
- This should (incorrectly) show cargo 1.75.0.
* To test the fix on Noble, do the following:
- # add-apt-repository -y ppa:maxgmr/
- # apt update && apt upgrade -y
- # apt remove -y cargo
- $ /usr/lib/
- This should now show cargo 1.85.1 (instead of FileNotFound)
- # apt install -y cargo
- $ /usr/lib/
- This should also show cargo 1.85.1 (instead of 1.75.0)
* Additionally, the new "versioned-
should pass.
[ Where problems could occur ]
* This upload changes the toolchain version which is invoked by the
versioned Cargo wrapper. As a result, applying this SRU means that
packages will be built with a different Rust version.
* This means that, for example, on Noble, packages built with
cargo-1.85 were being built with 1.75 the whole time. When the
SRU is applied, all these packages will be (correctly) built with
1.85 as intended, but this could potentially cause builds to fail.
* This change does not affect the vast majority of Rust packages, as
they are all built with the default Rust version.
[ Other Info ]
* In d/rules, my exclusion of 'librustc_driver' from the dh_dwz step
is not related to this bug, but the build failed otherwise, so I
needed to include this fix as well.
Related branches
- Vladimir Petko (community): Approve
-
Diff: 116 lines (+42/-5)5 files modifieddebian/bin/cargo.in (+1/-1)
debian/changelog (+12/-0)
debian/rules (+5/-4)
debian/tests/control (+3/-0)
debian/tests/versioned-cargo-wrapper (+21/-0)
- Ubuntu Sponsors: Pending requested
- git-ubuntu import: Pending requested
-
Diff: 161 lines (+42/-42)6 files modifieddebian/bin/cargo.in (+1/-1)
debian/changelog (+13/-0)
debian/patches/upstream/u-hurd-tests.patch (+0/-38)
debian/rules (+4/-3)
debian/tests/control (+3/-0)
debian/tests/versioned-cargo-wrapper (+21/-0)
- Ubuntu Sponsors: Pending requested
- git-ubuntu import: Pending requested
-
Diff: 116 lines (+42/-5)5 files modifieddebian/bin/cargo.in (+1/-1)
debian/changelog (+12/-0)
debian/rules (+5/-4)
debian/tests/control (+3/-0)
debian/tests/versioned-cargo-wrapper (+21/-0)
- Simon Chopin (community): Needs Fixing
-
Diff: 66 lines (+15/-4)3 files modifieddebian/bin/cargo.in (+1/-1)
debian/changelog (+10/-0)
debian/rules (+4/-3)
| Changed in rustc-1.76 (Ubuntu Oracular): | |
| status: | New → Invalid |
| Changed in rustc-1.76 (Ubuntu Plucky): | |
| status: | New → Invalid |
| Changed in rustc-1.77 (Ubuntu Plucky): | |
| status: | New → Invalid |
| Changed in rustc-1.77 (Ubuntu Oracular): | |
| status: | New → Invalid |
| no longer affects: | rustc-1.78 (Ubuntu Oracular) |
| no longer affects: | rustc-1.77 (Ubuntu Oracular) |
| no longer affects: | rustc-1.84 (Ubuntu Focal) |
| no longer affects: | rustc-1.84 (Ubuntu Jammy) |
| no longer affects: | rustc-1.84 (Ubuntu Noble) |
| no longer affects: | rustc-1.84 (Ubuntu Oracular) |
| no longer affects: | rustc-1.83 (Ubuntu Focal) |
| no longer affects: | rustc-1.83 (Ubuntu Jammy) |
| no longer affects: | rustc-1.83 (Ubuntu Noble) |
| no longer affects: | rustc-1.83 (Ubuntu Oracular) |
| no longer affects: | rustc-1.82 (Ubuntu Focal) |
| no longer affects: | rustc-1.82 (Ubuntu Jammy) |
| no longer affects: | rustc-1.82 (Ubuntu Noble) |
| no longer affects: | rustc-1.82 (Ubuntu Oracular) |
| no longer affects: | rustc-1.81 (Ubuntu Focal) |
| no longer affects: | rustc-1.81 (Ubuntu Jammy) |
| no longer affects: | rustc-1.81 (Ubuntu Noble) |
| no longer affects: | rustc-1.76 (Ubuntu Oracular) |
| no longer affects: | rustc-1.77 (Ubuntu Plucky) |
| no longer affects: | rustc-1.76 (Ubuntu Plucky) |
| no longer affects: | rustc-1.78 (Ubuntu Plucky) |
| no longer affects: | rustc-1.79 (Ubuntu Oracular) |
| no longer affects: | rustc-1.79 (Ubuntu Plucky) |
| no longer affects: | rustc-1.80 (Ubuntu Plucky) |
| Changed in rustc-1.78 (Ubuntu): | |
| status: | New → Invalid |
| Changed in rustc-1.79 (Ubuntu): | |
| status: | New → Invalid |
| Changed in rustc-1.80 (Ubuntu): | |
| status: | New → Invalid |
| tags: | added: rls-nn-incoming |
| tags: |
added: foundations-todo removed: rls-nn-incoming |
| no longer affects: | rustc-1.84 (Ubuntu Questing) |
| no longer affects: | rustc-1.83 (Ubuntu Questing) |
| no longer affects: | rustc-1.76 (Ubuntu Questing) |
| no longer affects: | rustc-1.77 (Ubuntu Questing) |
| no longer affects: | rustc-1.78 (Ubuntu Questing) |
| no longer affects: | rustc-1.79 (Ubuntu Questing) |
| no longer affects: | rustc-1.80 (Ubuntu Questing) |
| no longer affects: | rustc-1.81 (Ubuntu Questing) |
| no longer affects: | rustc-1.82 (Ubuntu Questing) |
| Changed in rustc-1.81 (Ubuntu): | |
| assignee: | nobody → Max Gilmour (maxgmr) |
| status: | New → In Progress |
| Changed in rustc-1.82 (Ubuntu): | |
| assignee: | nobody → Max Gilmour (maxgmr) |
| status: | New → In Progress |
| Changed in rustc-1.83 (Ubuntu): | |
| assignee: | nobody → Max Gilmour (maxgmr) |
| status: | New → In Progress |
| Changed in rustc-1.84 (Ubuntu): | |
| assignee: | nobody → Max Gilmour (maxgmr) |
| status: | Triaged → In Progress |
| Changed in rustc-1.85 (Ubuntu): | |
| assignee: | nobody → Max Gilmour (maxgmr) |
| status: | New → In Progress |
| Changed in rustc-1.88 (Ubuntu): | |
| assignee: | nobody → Max Gilmour (maxgmr) |
| status: | New → In Progress |
| no longer affects: | rustc-1.85 (Ubuntu Questing) |
| no longer affects: | rustc-1.82 (Ubuntu Questing) |
| no longer affects: | rustc-1.82 (Ubuntu Resolute) |
| no longer affects: | rustc-1.83 (Ubuntu Questing) |
| no longer affects: | rustc-1.83 (Ubuntu Resolute) |
| no longer affects: | rustc-1.84 (Ubuntu Questing) |
| no longer affects: | rustc-1.84 (Ubuntu Resolute) |
| no longer affects: | rustc-1.85 (Ubuntu Resolute) |
| no longer affects: | rustc-1.76 (Ubuntu Questing) |
| no longer affects: | rustc-1.76 (Ubuntu Resolute) |
| no longer affects: | rustc-1.78 (Ubuntu Questing) |
| no longer affects: | rustc-1.78 (Ubuntu Resolute) |
| no longer affects: | rustc-1.79 (Ubuntu Questing) |
| no longer affects: | rustc-1.79 (Ubuntu Resolute) |
| no longer affects: | rustc-1.80 (Ubuntu Questing) |
| no longer affects: | rustc-1.80 (Ubuntu Resolute) |
| no longer affects: | rustc-1.81 (Ubuntu Questing) |
| no longer affects: | rustc-1.81 (Ubuntu Resolute) |
| no longer affects: | rustc-1.77 (Ubuntu Questing) |
| no longer affects: | rustc-1.77 (Ubuntu Resolute) |
| no longer affects: | rustc-1.80 (Ubuntu Noble) |
| no longer affects: | rustc-1.79 (Ubuntu Noble) |
| no longer affects: | rustc-1.78 (Ubuntu Noble) |
| no longer affects: | rustc-1.77 (Ubuntu Noble) |
| no longer affects: | rustc-1.76 (Ubuntu Noble) |
| no longer affects: | rustc-1.88 (Ubuntu Noble) |

Ubuntu 24.10 (Oracular Oriole) has reached end of life, so this bug will not be fixed for that specific release.