Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 943145 - dev-lang/rust-1.79.0-r100[system-bootstrap]: cannot rebuild if eselected rust is newer version
Summary: dev-lang/rust-1.79.0-r100[system-bootstrap]: cannot rebuild if eselected rust...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Randy Barlow
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-11-09 14:23 UTC by i.Dark_Templar
Modified: 2024-11-11 14:38 UTC (History)
7 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log (build.log,2.12 KB, text/x-log)
2024-11-09 14:30 UTC, i.Dark_Templar
Details

Note You need to log in before you can comment on or make changes to this bug.
Description i.Dark_Templar 2024-11-09 14:23:43 UTC
Rust doesn't rebuild with system-bootstrap USE-flag even when required rust version is present in system.

Reproducible: Always

Steps to Reproduce:
1. unmask system-bootstrap USE-flag for dev-lang/rust
2. USE="-system-bootstrap" emerge -1v =dev-lang/rust-1.79.0-r100 =dev-lang/rust-1.81.0-r100
3. eselect rust set rust-1.81.0
4. USE="system-bootstrap" emerge -1v =dev-lang/rust-1.79.0-r100
Actual Results:  
Last emerge fails with error message:
 * Rust <1.80 is required
 * please run 'eselect rust' and set correct rust version

Expected Results:  
Last emerge must succeed: required rust version is present in system

# emerge --info dev-lang/rust
Portage 3.0.66.1 (python 3.12.7-final-0, default/linux/amd64/23.0/split-usr/desktop, gcc-13, glibc-2.40-r5, 6.6.58-gentoo-r1-v67 x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-6.6.58-gentoo-r1-v67-x86_64-12th_Gen_Intel-R-_Core-TM-_i9-12900K-with-glibc2.40
KiB Mem:    65627072 total,  58998396 free
KiB Swap:          0 total,         0 free
Timestamp of repository gentoo: Sat, 09 Nov 2024 09:15:00 +0000
Head commit of repository gentoo: 288f9098a0ee31d432d3efe7212dfaf035607274
Timestamp of repository steam-overlay: Sat, 09 Nov 2024 09:18:48 +0000
Head commit of repository steam-overlay: c98b00e2a69fa89be1c32f1450598fd8ad170347

Head commit of repository dt-overlay-patches: 02014d2906407b85ba5a0d02abe9229e675d5a0a

sh bash 5.2_p37
ld GNU ld (Gentoo 2.42 p6) 2.42.0
app-misc/pax-utils:        1.3.7::gentoo
app-shells/bash:           5.2_p37::gentoo
dev-build/autoconf:        2.13-r8::gentoo, 2.72-r1::gentoo
dev-build/automake:        1.16.5-r2::gentoo
dev-build/cmake:           3.30.5::gentoo
dev-build/libtool:         2.4.7-r4::gentoo
dev-build/make:            4.4.1-r100::gentoo
dev-build/meson:           1.6.0::gentoo
dev-lang/perl:             5.40.0::gentoo
dev-lang/python:           3.12.7_p1::gentoo, 3.13.0::gentoo
dev-lang/rust:             1.79.0-r100::gentoo, 1.81.0-r100::gentoo
sys-apps/baselayout:       2.17::gentoo
sys-apps/openrc:           0.55.1::gentoo
sys-apps/sandbox:          2.39::gentoo
sys-devel/binutils:        2.42-r2::gentoo
sys-devel/binutils-config: 5.5.2::gentoo
sys-devel/clang:           18.1.8-r6::gentoo, 19.1.3::gentoo
sys-devel/gcc:             13.3.1_p20241025::gentoo
sys-devel/gcc-config:      2.11::gentoo
sys-devel/llvm:            18.1.8-r6::gentoo, 19.1.3::gentoo
sys-kernel/linux-headers:  6.6-r1::gentoo (virtual/os-headers)
sys-libs/glibc:            2.40-r5::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync.de.gentoo.org/gentoo-portage/
    priority: -1000
    volatile: True
    sync-rsync-verify-max-age: 24
    sync-rsync-verify-jobs: 1
    sync-rsync-verify-metamanifest: yes
    sync-rsync-extra-opts: --no-progress --no-verbose --no-motd

steam-overlay
    location: /var/db/repos/steam-overlay
    sync-type: git
    sync-uri: https://github.com/gentoo-mirror/steam-overlay.git
    masters: gentoo
    volatile: False

dt-overlay-crossdev
    location: /var/db/repos/dt-overlay-crossdev
    masters: gentoo
    priority: 50
    volatile: False

dt-overlay-patches
    location: /var/db/repos/dt-overlay-patches
    sync-openpgp-key-refresh: no
    sync-type: git
    sync-uri: https://github.com/iDarkTemplar/dt-overlay-patches.git
    masters: gentoo
    priority: 50
    volatile: False
    sync-git-verify-commit-signature: Yes

dt-overlay-private
    location: /var/db/repos/dt-overlay-private
    masters: gentoo
    priority: 50
    volatile: False

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=alderlake -mtune=alderlake -mabm -mno-cldemote -mno-kl -mno-sgx -mno-widekl -mshstk --param=l1-cache-line-size=64 --param=l1-cache-size=32 --param=l2-cache-size=30720 -O2 -pipe -fwrapv"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=alderlake -mtune=alderlake -mabm -mno-cldemote -mno-kl -mno-sgx -mno-widekl -mshstk --param=l1-cache-line-size=64 --param=l1-cache-size=32 --param=l2-cache-size=30720 -O2 -pipe -fwrapv"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--with-bdeps=y --binpkg-respect-use=y --autounmask=n --complete-graph=y --keep-going --quiet-build=y"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME"
FCFLAGS="-O2 -pipe"
FEATURES="binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg-live distlocks ebuild-locks fakeroot fixlafiles ipc-sandbox merge-sync merge-wait multilib-strict network-sandbox news parallel-fetch pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://mirror.leaseweb.com/gentoo/ http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/ https://ftp.fau.de/gentoo http://ftp.fau.de/gentoo http://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/"
LANG="ru_RU.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs"
LEX="flex"
MAKEOPTS="-j24"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="--no-progress --no-verbose --no-motd"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
SHELL="/bin/bash"
USE="X a52 aac acl acpi alsa amd64 amr apm ares bash-completion bidi bluetooth bluray branding bzip2 c++0x cairo caps cdda cdio cdr cet cleartype connman cracklib crypt cue cups cxx dbus designer dga dirac dri dts dvd dvdr egl elogind encode exif faad fbcon ffmpeg filecaps flac fontconfig fontforge freetype fribidi gif gles2 gme gmp gpm grub gtk gtkstyle gui ibus iconv icu idn imlib inotify ipv6 jadetex jpeg kde kf6compat lcms libass libdvdcss libtirpc lzma lzo mad matroska mmap mng mp3 mp4 mpeg multilib ncurses network nfs nls offensive ogg openal opengl openmp opus pam pango pcmcia pcntl pcre pdf pic plasma plymouth png policykit posix postproc ppds private-headers projectm pulseaudio qml qt6 raw readline schroedinger seccomp sftp sndfile sockets sound spell split-usr ssl startup-notification svg system-cairo system-harfbuzz system-icu system-jpeg system-libevent system-libvpx system-sqlite test-rust tga theora threads tiff truetype udev udisks unicode upower usb utils vaapi vdpau vorbis vpx vulkan wavpack wayland wifi wma x264 xattr xcb xcomposite xft xinerama xpm xscreensaver xv xvid zlib zstd" ABI_X86="64 32" ADA_TARGET="gcc_12" ALSA_CARDS="hda-intel" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_anon authn_dbm authn_file authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir env expires ext_filter file_cache filter headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sha sse sse2 sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax navcom oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tsip tripmate tnt ublox" GUILE_SINGLE_TARGET="3-0" GUILE_TARGETS="3-0" INPUT_DEVICES="evdev joystick libinput" KERNEL="linux" L10N="ru en de ja" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LLVM_TARGETS="AMDGPU" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-2" POSTGRES_TARGETS="postgres16" PYTHON_SINGLE_TARGET="python3_12" PYTHON_TARGETS="python3_12" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby32" SANE_BACKENDS="escl" VIDEO_CARDS="vesa vga amdgpu radeonsi" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipp2p iface geoip fuzzy condition tarpit sysrq proto logmark ipmark dhcpmac delude chaos account"
Unset:  ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, LC_ALL, LD, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PYTHONPATH, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS

=================================================================
                        Package Settings
=================================================================

dev-lang/rust-1.79.0-r100::gentoo was built with the following:
USE="clippy rust-src rustfmt (-big-endian) -debug -dist -doc (-llvm-libunwind) -lto (-miri) (-nightly) (-parallel-compiler) -rust-analyzer -system-bootstrap (-system-llvm) -test -verify-sig -wasm" ABI_X86="32 (64) (-x32)" CPU_FLAGS_X86="sse2" LLVM_SLOT="18" LLVM_TARGETS="AMDGPU BPF NVPTX WebAssembly (X86) -AArch64 -ARC -ARM -AVR -CSKY -DirectX -Hexagon -Lanai -LoongArch -M68k -MSP430 -Mips -PowerPC -RISCV -SPIRV -Sparc -SystemZ -VE -XCore -Xtensa"


dev-lang/rust-1.81.0-r100::gentoo was built with the following:
USE="clippy rust-src rustfmt system-bootstrap (-big-endian) -debug -dist -doc (-llvm-libunwind) -lto (-miri) (-nightly) (-parallel-compiler) -rust-analyzer (-system-llvm) -test -verify-sig -wasm" ABI_X86="32 (64) (-x32)" CPU_FLAGS_X86="sse2" LLVM_SLOT="18" LLVM_TARGETS="AMDGPU BPF NVPTX WebAssembly (X86) -AArch64 -ARC -ARM -AVR -CSKY -DirectX -Hexagon -Lanai -LoongArch -M68k -MSP430 -Mips -PowerPC -RISCV -SPIRV -Sparc -SystemZ -VE -XCore -Xtensa"
Comment 1 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-11-09 14:28:10 UTC
Please include the full build.log.
Comment 2 i.Dark_Templar 2024-11-09 14:30:05 UTC
Created attachment 908306 [details]
build.log
Comment 3 i.Dark_Templar 2024-11-09 14:31:01 UTC
# emerge -pqv '=dev-lang/rust-1.79.0-r100::gentoo'
[ebuild   R   ] dev-lang/rust-1.79.0-r100  USE="clippy rust-src rustfmt system-bootstrap* (-big-endian) -debug -dist -doc (-llvm-libunwind) -lto (-miri) (-nightly) (-parallel-compiler) -rust-analyzer (-system-llvm) -test -verify-sig -wasm" ABI_X86="32 (64) (-x32)" CPU_FLAGS_X86="sse2" LLVM_SLOT="18" LLVM_TARGETS="AMDGPU BPF NVPTX WebAssembly (X86) -AArch64 -ARC -ARM -AVR -CSKY -DirectX -Hexagon -Lanai -LoongArch -M68k -MSP430 -Mips -PowerPC -RISCV -SPIRV -Sparc -SystemZ -VE -XCore -Xtensa"
Comment 4 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-11-09 14:32:01 UTC
Kangie and I had discussed this in the abstract -- dev-lang/rust needs to use rust.eclass for the iteration side but it may require some eclass changes to properly express the constraints it needs.

Of course, this has an easy workaround for now (either 'eselect rust set' or USE=-system-bootstrap).
Comment 5 i.Dark_Templar 2024-11-09 14:33:03 UTC
Yep, I can confirm both workarounds working.
Comment 6 Larry the Git Cow gentoo-dev 2024-11-11 14:38:01 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=309a391f9ebb245e1016e3ff49a21398c212614b

commit 309a391f9ebb245e1016e3ff49a21398c212614b
Author:     Matt Jolly <kangie@gentoo.org>
AuthorDate: 2024-11-11 13:28:04 +0000
Commit:     Matt Jolly <kangie@gentoo.org>
CommitDate: 2024-11-11 14:35:48 +0000

    dev-lang/rust: use rust.eclass for USE=system-bootstrap
    
    Take advantage of rust.eclass for dependency generation and appropriate
    bootstrap slot selection. Between the PATH manipulation that the eclass
    performs and the exported `RUSTC` we should see significantly more
    consistent bootstraps.
    
    Without this change `eselect-rust` would determine which `rustc` to run,
    resulting in build failures if an incorrect Rust was selected (which is
    nearly always in the age of slotted Rust).
    
    This is also one step towards removing USE=system-bootstrap entirely;
    now that we can reliably (and trivially) select appropriate slots for
    both dev-lang/rust and dev-lang/rust-bin we'll shortly be able to
    avoid downloading bootstrap bins at all.
    
    Bug: https://bugs.gentoo.org/943144
    Closes: https://bugs.gentoo.org/943145
    Signed-off-by: Matt Jolly <kangie@gentoo.org>

 dev-lang/rust/rust-1.71.1-r100.ebuild | 56 +++++++----------------------------
 dev-lang/rust/rust-1.74.1-r100.ebuild | 53 ++++++---------------------------
 dev-lang/rust/rust-1.75.0-r100.ebuild | 56 +++++++----------------------------
 dev-lang/rust/rust-1.77.1-r100.ebuild | 55 +++++++---------------------------
 dev-lang/rust/rust-1.79.0-r100.ebuild | 53 ++++++---------------------------
 dev-lang/rust/rust-1.80.1-r100.ebuild | 53 ++++++---------------------------
 dev-lang/rust/rust-1.81.0-r100.ebuild | 53 ++++++---------------------------
 dev-lang/rust/rust-1.82.0-r100.ebuild | 53 ++++++---------------------------
 8 files changed, 75 insertions(+), 357 deletions(-)