[Bug 2100266] Re: Versioned cargo wrapper script points to default cargo

Launchpad Bug Tracker 2100266 at bugs.launchpad.net
Tue Jan 13 17:05:51 UTC 2026


** Merge proposal linked:
   https://code.launchpad.net/~maxgmr/ubuntu/+source/rustc-1.85/+git/rustc-1.85/+merge/498510

** Merge proposal linked:
   https://code.launchpad.net/~maxgmr/ubuntu/+source/rustc-1.85/+git/rustc-1.85/+merge/498512

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to rustc-1.76 in Ubuntu.
https://bugs.launchpad.net/bugs/2100266

Title:
  Versioned cargo wrapper script points to default cargo

Status in rustc-1.76 package in Ubuntu:
  Invalid
Status in rustc-1.77 package in Ubuntu:
  Invalid
Status in rustc-1.78 package in Ubuntu:
  Invalid
Status in rustc-1.79 package in Ubuntu:
  Invalid
Status in rustc-1.80 package in Ubuntu:
  Invalid
Status in rustc-1.81 package in Ubuntu:
  In Progress
Status in rustc-1.82 package in Ubuntu:
  In Progress
Status in rustc-1.83 package in Ubuntu:
  In Progress
Status in rustc-1.84 package in Ubuntu:
  In Progress
Status in rustc-1.85 package in Ubuntu:
  In Progress
Status in rustc-1.88 package in Ubuntu:
  In Progress
Status in rustc-1.76 source package in Focal:
  New
Status in rustc-1.77 source package in Focal:
  New
Status in rustc-1.78 source package in Focal:
  New
Status in rustc-1.79 source package in Focal:
  New
Status in rustc-1.80 source package in Focal:
  New
Status in rustc-1.76 source package in Jammy:
  New
Status in rustc-1.77 source package in Jammy:
  New
Status in rustc-1.78 source package in Jammy:
  New
Status in rustc-1.79 source package in Jammy:
  New
Status in rustc-1.80 source package in Jammy:
  New
Status in rustc-1.76 source package in Noble:
  New
Status in rustc-1.77 source package in Noble:
  New
Status in rustc-1.78 source package in Noble:
  New
Status in rustc-1.79 source package in Noble:
  New
Status in rustc-1.80 source package in Noble:
  New
Status in rustc-1.81 source package in Noble:
  New
Status in rustc-1.82 source package in Noble:
  New
Status in rustc-1.83 source package in Noble:
  New
Status in rustc-1.84 source package in Noble:
  New
Status in rustc-1.85 source package in Noble:
  New
Status in rustc-1.80 source package in Oracular:
  Won't Fix
Status in rustc-1.81 source package in Oracular:
  Won't Fix
Status in rustc-1.81 source package in Plucky:
  New
Status in rustc-1.82 source package in Plucky:
  New
Status in rustc-1.83 source package in Plucky:
  New
Status in rustc-1.84 source package in Plucky:
  Triaged
Status in rustc-1.85 source package in Questing:
  New
Status in rustc-1.88 source package in Questing:
  New
Status in rustc-1.88 source package in Resolute:
  In Progress

Bug description:
  [ Impact ]

   * If you use the Cargo wrapper script provided by a versioned
     cargo package, e.g. /usr/lib/rust-1.85/share/cargo/bin/cargo,
     it will invoke /usr/bin/cargo rather than
     /usr/lib/rust-1.85/bin/cargo.

   * 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-cargo-wrapper" autopkgtest
     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/rust-1.85/share/cargo/bin/cargo --version
       - This should produce a FileNotFoundError.
     - # apt install -y cargo
     - $ /usr/lib/rust-1.85/share/cargo/bin/cargo --version
       - This should (incorrectly) show cargo 1.75.0.

   * To test the fix on Noble, do the following:
     - # add-apt-repository -y ppa:maxgmr/rustc-lp2100266
     - # apt update && apt upgrade -y
     - # apt remove -y cargo
     - $ /usr/lib/rust-1.85/share/cargo/bin/cargo --version
       - This should now show cargo 1.85.1 (instead of FileNotFound)
     - # apt install -y cargo
     - $ /usr/lib/rust-1.85/share/cargo/bin/cargo --version
       - This should also show cargo 1.85.1 (instead of 1.75.0)

   * Additionally, the new "versioned-cargo-wrapper" autopkgtest
     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.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/rustc-1.76/+bug/2100266/+subscriptions




More information about the foundations-bugs mailing list