[Bug 2095397] [NEW] FTBFS with profile pkg.rustc.dlstage0

Sergei Semin 2095397 at bugs.launchpad.net
Tue Jan 21 10:27:00 UTC 2025


Public bug reported:

Hi!

According to file debian/README.source
(https://git.launchpad.net/ubuntu/+source/rustc-1.80/tree/debian/README.source?h=applied/ubuntu/devel#n45),
profile `pkg.rustc.dlstage0` is intended to build rust-1.80 using
"official"stage0 compiler for the version being built from rust-
lang.org. So it is obvious, that system rustc from OS is not necessary
in such scenario. But actually it is impossible to build rustc-1.80 from
sources in Ubuntu using `pkg.rustc.dlstage0`.

Howto reproduce problem.

Run docker container with Ubuntu Plucky:
```
$ docker run --rm -it ubuntu:devel bash
```

Version of image in my case:
```
$ docker images
<...>
ubuntu                                                           devel      aaaffc146c5b   5 weeks ago    82.1MB
<...>
```

And this is version of OS in container:
```
root at 004fd5c54689:~# lsb_release -rd
Description:    Ubuntu Plucky Puffin (development branch)
Release:        25.04
root at 004fd5c54689:~#
```

Update apt cache:
```
root at 004fd5c54689:~# apt update
```

Install vim:
```
root at 004fd5c54689:~# apt install vim
```

Edit /etc/apt/sources.list.d/ubuntu.sources:
```
root at 004fd5c54689:~# vi /etc/apt/sources.list.d/ubuntu.sources
```

Append in vim `deb-src` to all lines starting with `Types: deb`.

Update apt cache again:
```
root at 004fd5c54689:~# apt update

```

Get sources of rustc-1.80:
```
root at 004fd5c54689:~# apt source rustc-1.80
```

Version 1.80.1+dfsg0ubuntu1-0ubuntu2 received. This is expected version
according to https://packages.ubuntu.com/source/plucky/rustc-1.80.

Install dpkg-dev package:
```
root at 004fd5c54689:~# apt install dpkg-dev
```

Extract sources of rustc-1.80:
```
root at 004fd5c54689:~# dpkg-source -x *.dsc
```

Goto into dir with extracted sources.

Let's try to install build deps according to debian/README.source (see "Building from source") with profile `pkg.rustc.dlstage0`:
```
root at 004fd5c54689:~/rustc-1.80-1.80.1+dfsg0ubuntu1# apt-get build-dep -P pkg.rustc.dlstage0 ./ 
Note, using directory './' to get the build dependencies 
Reading package lists... Done 
Building dependency tree... Done 
Reading state information... Done 
Some packages could not be installed. This may mean that you have 
requested an impossible situation or if you are using the unstable 
distribution that some required packages have not yet been created 
or been moved out of Incoming. 
The following information may help to resolve the situation: 

The following packages have unmet dependencies: 
builddeps:./ : Depends: cargo-1.79 but it is not installable 
               Depends: rustc-1.79 but it is not installable 
E: Unable to correct problems, you have held broken packages. 
root at 004fd5c54689:~/rustc-1.80-1.80.1+dfsg0ubuntu1#
```

Binary packages rustc-1.79 and cargo-1.79 are absent in Ubuntu Plucky:
```
root at 004fd5c54689:~# apt install rustc-1.79 cargo-1.79
Error: Unable to locate package rustc-1.79
Error: Couldn't find any package by glob 'rustc-1.79'
Error: Unable to locate package cargo-1.79
Error: Couldn't find any package by glob 'cargo-1.79'
```

We can verify this using page https://packages.ubuntu.com/source/noble-updates/rustc-1.79.
There is no info about plucky on this page.

But why source rustc-1.80 has build deps on absent rustc-1.79?
Why rustc-1.80 need system rustc-1.79 when profile `pkg.rustc.dlstage0` was specified?
This contradicts debian/README.source, "Building from source" with `pkg.rustc.dlstage0`.

The problem is happening because of this line in debian/control (https://git.launchpad.net/ubuntu/+source/rustc-1.80/tree/debian/control?h=applied/ubuntu/devel#n18):
```
Build-Depends:
<...>
 cargo-1.79 | cargo-1.80 <!pkg.rustc.dlstage0>,
 rustc-1.79 | rustc-1.80 <!pkg.rustc.dlstage0>,
<...>
```
We can make expirement and comment these dependencies using vim and try to build package without these deps:
```
root at 004fd5c54689:~/rustc-1.80-1.80.1+dfsg0ubuntu1# apt-get build-dep -P pkg.rustc.dlstage0 ./ 
Note, using directory './' to get the build dependencies 
Reading package lists... Done 
Building dependency tree... Done 
Reading state information... Done 
The following NEW packages will be installed: 
 autoconf automake autopoint autotools-dev bash-completion bsdextrautils ca-certificates cargo cargo-1.80 clang-18 cmake cmake-data comerr-dev curl 
 debhelper debugedit dh-autoreconf dh-cargo dh-cargo-tools dh-strip-nondeterminism dwz file fonts-font-awesome fonts-mathjax fonts-open-sans gdb gettext 
 gettext-base git git-man groff-base intltool-debian krb5-multidev lib32gcc-s1 lib32stdc++6 libarchive-zip-perl libarchive13t64 libbabeltrace1 
 libbrotli-dev libbrotli1 libc6-i386 libclang-common-18-dev libclang-cpp18 libclang-rt-18-dev libclang1-18 libcurl3t64-gnutls libcurl4-gnutls-dev 
 libcurl4t64 libdebhelper-perl libdebuginfod-common libdebuginfod1t64 libdw1t64 libedit2 libelf1t64 liberror-perl libevent-2.1-7t64 libffi-dev 
 libfile-stripnondeterminism-perl libgc1 libgit2-1.8 libgit2-dev libglib2.0-0t64 libgmp-dev libgmpxx4ldbl libgnutls-dane0t64 libgnutls-openssl27t64 
 libgnutls28-dev libgssrpc4t64 libhttp-parser-dev libhttp-parser2.9 libidn2-dev libipt2 libjs-highlight.js libjs-jquery libjs-mathjax libjson-c5 
 libjsoncpp26 libkadm5clnt-mit12 libkadm5srv-mit12 libkdb5-10t64 libkrb5-dev libldap-dev libllvm18 liblzma-dev libmagic-mgc libmagic1t64 libncurses-dev 
 libncurses6 libnghttp2-14 libnghttp2-dev libobjc-14-dev libobjc4 libp11-kit-dev libpcre2-16-0 libpcre2-32-0 libpcre2-dev libpcre2-posix3 libpfm4 
 libpipeline1 libpkgconf3 libpsl-dev libpsl5t64 libpython3-stdlib librhash1 librtmp-dev librtmp1 libsource-highlight-common libsource-highlight4t64 
 libsqlite3-dev libssh2-1-dev libssh2-1t64 libssl-dev libstd-rust-1.80 libstd-rust-1.80-dev libtasn1-6-dev libtool libuchardet0 libunbound8 libuv1t64 
 libxml2 libxml2-dev libyaml-0-2 libz3-4 libz3-dev libzstd-dev llvm-18 llvm-18-dev llvm-18-linker-tools llvm-18-runtime llvm-18-tools m4 man-db nettle-dev 
 openssl pkgconf pkgconf-bin po-debconf python3 python3-minimal python3-pygments python3-yaml python3.12 python3.12-minimal rustc rustc-1.80 ucf 
 zlib1g-dev 
The following packages will be upgraded: 
 libzstd1 
1 upgraded, 147 newly installed, 0 to remove and 10 not upgraded. 
Need to get 281 MB of archives. 
After this operation, 1361 MB of additional disk space will be used. 
Do you want to continue? [Y/n]
```

As you can see, apt wants to install rustc-1.80 and cargo-1.80 even in that case. This contradicts debian/README.source ("Building from source" with `pkg.rustc.dlstage0`) again. Profile `pkg.rustc.dlstage0` is intended to build rustc-1.80 from source using "official"
stage0 compiler for the version being built from rust-lang.org, so rustc-1.80 from OS is not necessary but actually apt tries to install it.

A similar problem exists in previous Ubuntu "24.04.1 LTS (Noble Numbat)" with version 1.80.1+dfsg0ubuntu1-0ubuntu0.24.04 of rustc-1.80. But difference is that in Ubuntu Noble rustc-1.79 and cargo-1.79 are available so build dependencies installation for rustc-1.80 version 1.80.1+dfsg0ubuntu1-0ubuntu0.24.04 in Ubuntu Noble works successfully but question remains: why apt installed system ustc-1.79 and cargo-1.79 when profile `pkg.rustc.dlstage0` was used? It is interesing that if we comment dependencies on rustc and cargo in debian/control of rustc-1.80 in Ubuntu Noble, we can install build-deps without system rustc and cargo:
```
root at 4adefb1b185c:~/rustc-1.80-1.80.1+dfsg0ubuntu1# apt-get build-dep -P pkg.rustc.dlstage0 ./ 
Note, using directory './' to get the build dependencies 
Reading package lists... Done 
Building dependency tree... Done 
Reading state information... Done 
The following NEW packages will be installed: 
 autoconf automake autopoint autotools-dev bash-completion bsdextrautils ca-certificates cargo clang-18 cmake cmake-data curl debhelper debugedit 
 dh-autoreconf dh-cargo dh-cargo-tools dh-strip-nondeterminism dwz file fonts-font-awesome fonts-mathjax fonts-open-sans gdb gettext gettext-base git 
 git-man groff-base icu-devtools intltool-debian lib32gcc-s1 lib32stdc++6 libarchive-zip-perl libarchive13t64 libbabeltrace1 libc6-i386 
 libclang-common-18-dev libclang-cpp18 libclang-rt-18-dev libclang1-18 libcurl3t64-gnutls libcurl4-gnutls-dev libcurl4t64 libdebhelper-perl 
 libdebuginfod-common libdebuginfod1t64 libdw1t64 libedit2 libelf1t64 liberror-perl libffi-dev libfile-stripnondeterminism-perl libgc1 libgit2-1.7 
 libgit2-dev libglib2.0-0t64 libgssapi-krb5-2 libhttp-parser-dev libhttp-parser2.9 libicu-dev libicu74 libipt2 libjs-highlight.js libjs-jquery 
 libjs-mathjax libjsoncpp25 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libllvm17t64 libllvm18 liblzma-dev libmagic-mgc libmagic1t64 
 libncurses-dev libncurses6 libnghttp2-14 libobjc-13-dev libobjc4 libpcre2-16-0 libpcre2-32-0 libpcre2-dev libpcre2-posix3 libpfm4 libpipeline1 
 libpkgconf3 libpsl5t64 libpython3-stdlib librhash0 librtmp1 libsource-highlight-common libsource-highlight4t64 libsqlite3-dev libssh-4 libssh2-1-dev 
 libssh2-1t64 libssl-dev libstd-rust-1.75 libstd-rust-dev libsub-override-perl libtool libuchardet0 libuv1t64 libxml2 libxml2-dev libyaml-0-2 libz3-4 
 libz3-dev llvm-18 llvm-18-dev llvm-18-linker-tools llvm-18-runtime llvm-18-tools m4 man-db openssl pkgconf pkgconf-bin po-debconf python3 python3-minimal 
 python3-pkg-resources python3-pygments python3-yaml python3.12 python3.12-minimal rustc ucf zlib1g-dev 
0 upgraded, 131 newly installed, 0 to remove and 0 not upgraded. 
Need to get 315 MB of archives. 
After this operation, 1532 MB of additional disk space will be used. 
Do you want to continue? [Y/n]
```

But then when we try to build we will get an error:
```
root at 4adefb1b185c:~/rustc-1.80-1.80.1+dfsg0ubuntu1# export DEB_BUILD_OPTIONS="nocheck" 
root at 4adefb1b185c:~/rustc-1.80-1.80.1+dfsg0ubuntu1# export DEB_BUILD_PROFILES="pkg.rustc.dlstage0 nocheck"
root at 4adefb1b185c:~/rustc-1.80-1.80.1+dfsg0ubuntu1# dpkg-buildpackage -b --no-sign 
dpkg-buildpackage: info: source package rustc-1.80 
dpkg-buildpackage: info: source version 1.80.1+dfsg0ubuntu1-0ubuntu0.24.04 
dpkg-buildpackage: info: source distribution noble 
dpkg-buildpackage: info: source changed by Zixing Liu <zixing.liu at canonical.com> 
dpkg-buildpackage: info: host architecture amd64 
 dpkg-source --before-build . 
dpkg-source: info: using options from rustc-1.80-1.80.1+dfsg0ubuntu1/debian/source/options: --include-removal 
 debian/rules clean 
debian/rules:244: *** No suitable Rust toolchain found to bootstrap Rust 1.80.  Stop. 
dpkg-buildpackage: error: debian/rules clean subprocess returned exit status 2
```

This also contradicts debian/README.source (see "Building from source"
with `pkg.rustc.dlstage0`
https://git.launchpad.net/ubuntu/+source/rustc-1.80/tree/debian/README.source?h=applied/ubuntu/noble-
updates#n46).

It's time to summarize. Building rustc-1.80 from sources in at least
Ubuntu Noble, Plucky and Focal (I also checked Focal) does not work as
expected with profile `pkg.rustc.dlstage0`. Can you fix it, please?

** Affects: rustc-1.80 (Ubuntu)
     Importance: Undecided
         Status: New

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

Title:
  FTBFS with profile pkg.rustc.dlstage0

Status in rustc-1.80 package in Ubuntu:
  New

Bug description:
  Hi!

  According to file debian/README.source
  (https://git.launchpad.net/ubuntu/+source/rustc-1.80/tree/debian/README.source?h=applied/ubuntu/devel#n45),
  profile `pkg.rustc.dlstage0` is intended to build rust-1.80 using
  "official"stage0 compiler for the version being built from rust-
  lang.org. So it is obvious, that system rustc from OS is not necessary
  in such scenario. But actually it is impossible to build rustc-1.80
  from sources in Ubuntu using `pkg.rustc.dlstage0`.

  Howto reproduce problem.

  Run docker container with Ubuntu Plucky:
  ```
  $ docker run --rm -it ubuntu:devel bash
  ```

  Version of image in my case:
  ```
  $ docker images
  <...>
  ubuntu                                                           devel      aaaffc146c5b   5 weeks ago    82.1MB
  <...>
  ```

  And this is version of OS in container:
  ```
  root at 004fd5c54689:~# lsb_release -rd
  Description:    Ubuntu Plucky Puffin (development branch)
  Release:        25.04
  root at 004fd5c54689:~#
  ```

  Update apt cache:
  ```
  root at 004fd5c54689:~# apt update
  ```

  Install vim:
  ```
  root at 004fd5c54689:~# apt install vim
  ```

  Edit /etc/apt/sources.list.d/ubuntu.sources:
  ```
  root at 004fd5c54689:~# vi /etc/apt/sources.list.d/ubuntu.sources
  ```

  Append in vim `deb-src` to all lines starting with `Types: deb`.

  Update apt cache again:
  ```
  root at 004fd5c54689:~# apt update

  ```

  Get sources of rustc-1.80:
  ```
  root at 004fd5c54689:~# apt source rustc-1.80
  ```

  Version 1.80.1+dfsg0ubuntu1-0ubuntu2 received. This is expected
  version according to
  https://packages.ubuntu.com/source/plucky/rustc-1.80.

  Install dpkg-dev package:
  ```
  root at 004fd5c54689:~# apt install dpkg-dev
  ```

  Extract sources of rustc-1.80:
  ```
  root at 004fd5c54689:~# dpkg-source -x *.dsc
  ```

  Goto into dir with extracted sources.

  Let's try to install build deps according to debian/README.source (see "Building from source") with profile `pkg.rustc.dlstage0`:
  ```
  root at 004fd5c54689:~/rustc-1.80-1.80.1+dfsg0ubuntu1# apt-get build-dep -P pkg.rustc.dlstage0 ./ 
  Note, using directory './' to get the build dependencies 
  Reading package lists... Done 
  Building dependency tree... Done 
  Reading state information... Done 
  Some packages could not be installed. This may mean that you have 
  requested an impossible situation or if you are using the unstable 
  distribution that some required packages have not yet been created 
  or been moved out of Incoming. 
  The following information may help to resolve the situation: 

  The following packages have unmet dependencies: 
  builddeps:./ : Depends: cargo-1.79 but it is not installable 
                 Depends: rustc-1.79 but it is not installable 
  E: Unable to correct problems, you have held broken packages. 
  root at 004fd5c54689:~/rustc-1.80-1.80.1+dfsg0ubuntu1#
  ```

  Binary packages rustc-1.79 and cargo-1.79 are absent in Ubuntu Plucky:
  ```
  root at 004fd5c54689:~# apt install rustc-1.79 cargo-1.79
  Error: Unable to locate package rustc-1.79
  Error: Couldn't find any package by glob 'rustc-1.79'
  Error: Unable to locate package cargo-1.79
  Error: Couldn't find any package by glob 'cargo-1.79'
  ```

  We can verify this using page https://packages.ubuntu.com/source/noble-updates/rustc-1.79.
  There is no info about plucky on this page.

  But why source rustc-1.80 has build deps on absent rustc-1.79?
  Why rustc-1.80 need system rustc-1.79 when profile `pkg.rustc.dlstage0` was specified?
  This contradicts debian/README.source, "Building from source" with `pkg.rustc.dlstage0`.

  The problem is happening because of this line in debian/control (https://git.launchpad.net/ubuntu/+source/rustc-1.80/tree/debian/control?h=applied/ubuntu/devel#n18):
  ```
  Build-Depends:
  <...>
   cargo-1.79 | cargo-1.80 <!pkg.rustc.dlstage0>,
   rustc-1.79 | rustc-1.80 <!pkg.rustc.dlstage0>,
  <...>
  ```
  We can make expirement and comment these dependencies using vim and try to build package without these deps:
  ```
  root at 004fd5c54689:~/rustc-1.80-1.80.1+dfsg0ubuntu1# apt-get build-dep -P pkg.rustc.dlstage0 ./ 
  Note, using directory './' to get the build dependencies 
  Reading package lists... Done 
  Building dependency tree... Done 
  Reading state information... Done 
  The following NEW packages will be installed: 
   autoconf automake autopoint autotools-dev bash-completion bsdextrautils ca-certificates cargo cargo-1.80 clang-18 cmake cmake-data comerr-dev curl 
   debhelper debugedit dh-autoreconf dh-cargo dh-cargo-tools dh-strip-nondeterminism dwz file fonts-font-awesome fonts-mathjax fonts-open-sans gdb gettext 
   gettext-base git git-man groff-base intltool-debian krb5-multidev lib32gcc-s1 lib32stdc++6 libarchive-zip-perl libarchive13t64 libbabeltrace1 
   libbrotli-dev libbrotli1 libc6-i386 libclang-common-18-dev libclang-cpp18 libclang-rt-18-dev libclang1-18 libcurl3t64-gnutls libcurl4-gnutls-dev 
   libcurl4t64 libdebhelper-perl libdebuginfod-common libdebuginfod1t64 libdw1t64 libedit2 libelf1t64 liberror-perl libevent-2.1-7t64 libffi-dev 
   libfile-stripnondeterminism-perl libgc1 libgit2-1.8 libgit2-dev libglib2.0-0t64 libgmp-dev libgmpxx4ldbl libgnutls-dane0t64 libgnutls-openssl27t64 
   libgnutls28-dev libgssrpc4t64 libhttp-parser-dev libhttp-parser2.9 libidn2-dev libipt2 libjs-highlight.js libjs-jquery libjs-mathjax libjson-c5 
   libjsoncpp26 libkadm5clnt-mit12 libkadm5srv-mit12 libkdb5-10t64 libkrb5-dev libldap-dev libllvm18 liblzma-dev libmagic-mgc libmagic1t64 libncurses-dev 
   libncurses6 libnghttp2-14 libnghttp2-dev libobjc-14-dev libobjc4 libp11-kit-dev libpcre2-16-0 libpcre2-32-0 libpcre2-dev libpcre2-posix3 libpfm4 
   libpipeline1 libpkgconf3 libpsl-dev libpsl5t64 libpython3-stdlib librhash1 librtmp-dev librtmp1 libsource-highlight-common libsource-highlight4t64 
   libsqlite3-dev libssh2-1-dev libssh2-1t64 libssl-dev libstd-rust-1.80 libstd-rust-1.80-dev libtasn1-6-dev libtool libuchardet0 libunbound8 libuv1t64 
   libxml2 libxml2-dev libyaml-0-2 libz3-4 libz3-dev libzstd-dev llvm-18 llvm-18-dev llvm-18-linker-tools llvm-18-runtime llvm-18-tools m4 man-db nettle-dev 
   openssl pkgconf pkgconf-bin po-debconf python3 python3-minimal python3-pygments python3-yaml python3.12 python3.12-minimal rustc rustc-1.80 ucf 
   zlib1g-dev 
  The following packages will be upgraded: 
   libzstd1 
  1 upgraded, 147 newly installed, 0 to remove and 10 not upgraded. 
  Need to get 281 MB of archives. 
  After this operation, 1361 MB of additional disk space will be used. 
  Do you want to continue? [Y/n]
  ```

  As you can see, apt wants to install rustc-1.80 and cargo-1.80 even in that case. This contradicts debian/README.source ("Building from source" with `pkg.rustc.dlstage0`) again. Profile `pkg.rustc.dlstage0` is intended to build rustc-1.80 from source using "official"
  stage0 compiler for the version being built from rust-lang.org, so rustc-1.80 from OS is not necessary but actually apt tries to install it.

  A similar problem exists in previous Ubuntu "24.04.1 LTS (Noble Numbat)" with version 1.80.1+dfsg0ubuntu1-0ubuntu0.24.04 of rustc-1.80. But difference is that in Ubuntu Noble rustc-1.79 and cargo-1.79 are available so build dependencies installation for rustc-1.80 version 1.80.1+dfsg0ubuntu1-0ubuntu0.24.04 in Ubuntu Noble works successfully but question remains: why apt installed system ustc-1.79 and cargo-1.79 when profile `pkg.rustc.dlstage0` was used? It is interesing that if we comment dependencies on rustc and cargo in debian/control of rustc-1.80 in Ubuntu Noble, we can install build-deps without system rustc and cargo:
  ```
  root at 4adefb1b185c:~/rustc-1.80-1.80.1+dfsg0ubuntu1# apt-get build-dep -P pkg.rustc.dlstage0 ./ 
  Note, using directory './' to get the build dependencies 
  Reading package lists... Done 
  Building dependency tree... Done 
  Reading state information... Done 
  The following NEW packages will be installed: 
   autoconf automake autopoint autotools-dev bash-completion bsdextrautils ca-certificates cargo clang-18 cmake cmake-data curl debhelper debugedit 
   dh-autoreconf dh-cargo dh-cargo-tools dh-strip-nondeterminism dwz file fonts-font-awesome fonts-mathjax fonts-open-sans gdb gettext gettext-base git 
   git-man groff-base icu-devtools intltool-debian lib32gcc-s1 lib32stdc++6 libarchive-zip-perl libarchive13t64 libbabeltrace1 libc6-i386 
   libclang-common-18-dev libclang-cpp18 libclang-rt-18-dev libclang1-18 libcurl3t64-gnutls libcurl4-gnutls-dev libcurl4t64 libdebhelper-perl 
   libdebuginfod-common libdebuginfod1t64 libdw1t64 libedit2 libelf1t64 liberror-perl libffi-dev libfile-stripnondeterminism-perl libgc1 libgit2-1.7 
   libgit2-dev libglib2.0-0t64 libgssapi-krb5-2 libhttp-parser-dev libhttp-parser2.9 libicu-dev libicu74 libipt2 libjs-highlight.js libjs-jquery 
   libjs-mathjax libjsoncpp25 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libllvm17t64 libllvm18 liblzma-dev libmagic-mgc libmagic1t64 
   libncurses-dev libncurses6 libnghttp2-14 libobjc-13-dev libobjc4 libpcre2-16-0 libpcre2-32-0 libpcre2-dev libpcre2-posix3 libpfm4 libpipeline1 
   libpkgconf3 libpsl5t64 libpython3-stdlib librhash0 librtmp1 libsource-highlight-common libsource-highlight4t64 libsqlite3-dev libssh-4 libssh2-1-dev 
   libssh2-1t64 libssl-dev libstd-rust-1.75 libstd-rust-dev libsub-override-perl libtool libuchardet0 libuv1t64 libxml2 libxml2-dev libyaml-0-2 libz3-4 
   libz3-dev llvm-18 llvm-18-dev llvm-18-linker-tools llvm-18-runtime llvm-18-tools m4 man-db openssl pkgconf pkgconf-bin po-debconf python3 python3-minimal 
   python3-pkg-resources python3-pygments python3-yaml python3.12 python3.12-minimal rustc ucf zlib1g-dev 
  0 upgraded, 131 newly installed, 0 to remove and 0 not upgraded. 
  Need to get 315 MB of archives. 
  After this operation, 1532 MB of additional disk space will be used. 
  Do you want to continue? [Y/n]
  ```

  But then when we try to build we will get an error:
  ```
  root at 4adefb1b185c:~/rustc-1.80-1.80.1+dfsg0ubuntu1# export DEB_BUILD_OPTIONS="nocheck" 
  root at 4adefb1b185c:~/rustc-1.80-1.80.1+dfsg0ubuntu1# export DEB_BUILD_PROFILES="pkg.rustc.dlstage0 nocheck"
  root at 4adefb1b185c:~/rustc-1.80-1.80.1+dfsg0ubuntu1# dpkg-buildpackage -b --no-sign 
  dpkg-buildpackage: info: source package rustc-1.80 
  dpkg-buildpackage: info: source version 1.80.1+dfsg0ubuntu1-0ubuntu0.24.04 
  dpkg-buildpackage: info: source distribution noble 
  dpkg-buildpackage: info: source changed by Zixing Liu <zixing.liu at canonical.com> 
  dpkg-buildpackage: info: host architecture amd64 
   dpkg-source --before-build . 
  dpkg-source: info: using options from rustc-1.80-1.80.1+dfsg0ubuntu1/debian/source/options: --include-removal 
   debian/rules clean 
  debian/rules:244: *** No suitable Rust toolchain found to bootstrap Rust 1.80.  Stop. 
  dpkg-buildpackage: error: debian/rules clean subprocess returned exit status 2
  ```

  This also contradicts debian/README.source (see "Building from source"
  with `pkg.rustc.dlstage0`
  https://git.launchpad.net/ubuntu/+source/rustc-1.80/tree/debian/README.source?h=applied/ubuntu/noble-
  updates#n46).

  It's time to summarize. Building rustc-1.80 from sources in at least
  Ubuntu Noble, Plucky and Focal (I also checked Focal) does not work as
  expected with profile `pkg.rustc.dlstage0`. Can you fix it, please?

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




More information about the foundations-bugs mailing list