Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 930704 - Portage wrong behaviour
Summary: Portage wrong behaviour
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: Normal major (vote)
Assignee: Gentoo Linux bug wranglers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-04-26 13:55 UTC by Roman Gruber
Modified: 2024-04-26 15:32 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Roman Gruber 2024-04-26 13:55:51 UTC
Sienna_Cichlid /home/roman # emerge -av --backtrack=50001234567 =dev-lang/rust-1.77.1:stable/1.77::gentoo

These are the packages that would be merged, in order:

Calculating dependencies... done!
Dependency resolution took 12.38 s (backtrack: 3/50001234567).

[ebuild     U  ] dev-lang/rust-1.77.1:stable/1.77::gentoo [1.76.0-r1:stable/1.76::gentoo] USE="system-llvm (-big-endian) -clippy -debug -dist -doc (-llvm-libunwind) -lto (-miri) -nightly (-parallel-compiler) -profiler -rust-analyzer -rust-src -rustfmt -system-bootstrap -test -verify-sig -wasm" ABI_X86="32 (64) (-x32)" CPU_FLAGS_X86="sse2" LLVM_TARGETS="AMDGPU (X86) -AArch64 -ARC -ARM -AVR -BPF -CSKY -DirectX -Hexagon -Lanai -LoongArch -M68k -MSP430 -Mips -NVPTX -PowerPC -RISCV -SPIRV -Sparc -SystemZ -VE -WebAssembly -XCore -Xtensa" 0 KiB

Total: 1 package (1 upgrade), Size of downloads: 0 KiB

!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:

dev-lang/rust:stable

  (dev-lang/rust-1.77.1:stable/1.77::gentoo, ebuild scheduled for merge) USE="system-llvm (-big-endian) -clippy -debug -dist -doc (-llvm-libunwind) -lto (-miri) -nightly (-parallel-compiler) -profiler -rust-analyzer -rust-src -rustfmt -system-bootstrap -test -verify-sig -wasm" ABI_X86="32 (64) (-x32)" CPU_FLAGS_X86="sse2" LLVM_TARGETS="AMDGPU (X86) -AArch64 -ARC -ARM -AVR -BPF -CSKY -DirectX -Hexagon -Lanai -LoongArch -M68k -MSP430 -Mips -NVPTX -PowerPC -RISCV -SPIRV -Sparc -SystemZ -VE -WebAssembly -XCore -Xtensa" pulled in by
    =dev-lang/rust-1.77.1:stable/1.77::gentoo (Argument)

  (dev-lang/rust-1.76.0-r1:stable/1.76::gentoo, installed) USE="system-llvm (-big-endian) -clippy -debug -dist -doc (-llvm-libunwind) -lto (-miri) -nightly (-parallel-compiler) -profiler -rust-analyzer -rust-src -rustfmt -system-bootstrap -test -verify-sig -wasm" ABI_X86="32 (64) (-x32)" CPU_FLAGS_X86="sse2" LLVM_TARGETS="AMDGPU (X86) -AArch64 -ARC -ARM -AVR -BPF -CSKY -DirectX -Hexagon -Lanai -LoongArch -M68k -MSP430 -Mips -NVPTX -PowerPC -RISCV -SPIRV -Sparc -SystemZ -VE -WebAssembly -XCore -Xtensa" pulled in by
    ~dev-lang/rust-1.76.0[profiler?,rustfmt?,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?] required by (virtual/rust-1.76.0:0/llvm-17::gentoo, installed) USE="-profiler -rustfmt" ABI_X86="32 (64) (-x32)"
    ^              ^^^^^^                                                                                                                                                                                                                                                                                                                                                                                                                            


It may be possible to solve this problem by using package.mask to
prevent one of those packages from being selected. However, it is also
possible that conflicting dependencies exist such that they are
impossible to satisfy simultaneously.  If such a conflict exists in
the dependencies of two different packages, then those packages can
not be installed simultaneously.

For more information, see MASKED PACKAGES section in the emerge man
page or refer to the Gentoo Handbook.

Sienna_Cichlid /home/roman # eshowkw dev-lang/rust
Keywords for dev-lang/rust:
             |                               |   u             |  
             | a   a     p s     l r   a     |   n             |  
             | m   r h   p p   i o i s l m m | e u s           | r
             | d a m p p c a x a o s 3 p 6 i | a s l           | e
             | 6 r 6 p p 6 r 8 6 n c 9 h 8 p | p e o           | p
             | 4 m 4 a c 4 c 6 4 g v 0 a k s | i d t           | o
-------------+-------------------------------+-----------------+-------
   1.71.0    | ~ ~ ~ o ~ ~ ~ ~ o o ~ o o o ~ | 8 # stable/1.71 | gentoo
   1.71.1    | + + + o + + + + o ~ ~ o o o ~ | 8 o             | gentoo
-------------+-------------------------------+-----------------+-------
   1.73.0    | ~ ~ ~ o ~ ~ ~ ~ o ~ ~ o o o ~ | 8 o stable/1.73 | gentoo
-------------+-------------------------------+-----------------+-------
   1.74.1    | + + + o + + + + o ~ ~ o o o ~ | 8 o stable/1.74 | gentoo
-------------+-------------------------------+-----------------+-------
   1.75.0-r1 | + + + o + + + + o ~ ~ o o o ~ | 8 o stable/1.75 | gentoo
-------------+-------------------------------+-----------------+-------
[I]1.76.0-r1 | ~ ~ ~ o ~ ~ ~ ~ o ~ ~ o o o ~ | 8 o stable/1.76 | gentoo
-------------+-------------------------------+-----------------+-------
   1.77.1    | ~ ~ ~ o ~ ~ ~ ~ o ~ ~ o o o ~ | 8 o stable/1.77 | gentoo


Reproducible: Always

Actual Results:  
A slotted package can not be installed!

Backtrack option does nothing

Sienna_Cichlid /home/roman # emerge -av =dev-lang/rust-1.77.1:stable/1.77::gentoo

These are the packages that would be merged, in order:

Calculating dependencies... done!
Dependency resolution took 8.42 s (backtrack: 3/20).

[ebuild     U  ] dev-lang/rust-1.77.1:stable/1.77::gentoo [1.76.0-r1:stable/1.76::gentoo] USE="system-llvm (-big-endian) -clippy -debug -dist -doc (-llvm-libunwind) -lto (-miri) -nightly (-parallel-compiler) -profiler -rust-analyzer -rust-src -rustfmt -system-bootstrap -test -verify-sig -wasm" ABI_X86="32 (64) (-x32)" CPU_FLAGS_X86="sse2" LLVM_TARGETS="AMDGPU (X86) -AArch64 -ARC -ARM -AVR -BPF -CSKY -DirectX -Hexagon -Lanai -LoongArch -M68k -MSP430 -Mips -NVPTX -PowerPC -RISCV -SPIRV -Sparc -SystemZ -VE -WebAssembly -XCore -Xtensa" 0 KiB

Total: 1 package (1 upgrade), Size of downloads: 0 KiB

!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:

dev-lang/rust:stable

  (dev-lang/rust-1.77.1:stable/1.77::gentoo, ebuild scheduled for merge) USE="system-llvm (-big-endian) -clippy -debug -dist -doc (-llvm-libunwind) -lto (-miri) -nightly (-parallel-compiler) -profiler -rust-analyzer -rust-src -rustfmt -system-bootstrap -test -verify-sig -wasm" ABI_X86="32 (64) (-x32)" CPU_FLAGS_X86="sse2" LLVM_TARGETS="AMDGPU (X86) -AArch64 -ARC -ARM -AVR -BPF -CSKY -DirectX -Hexagon -Lanai -LoongArch -M68k -MSP430 -Mips -NVPTX -PowerPC -RISCV -SPIRV -Sparc -SystemZ -VE -WebAssembly -XCore -Xtensa" pulled in by
    =dev-lang/rust-1.77.1:stable/1.77::gentoo (Argument)

  (dev-lang/rust-1.76.0-r1:stable/1.76::gentoo, installed) USE="system-llvm (-big-endian) -clippy -debug -dist -doc (-llvm-libunwind) -lto (-miri) -nightly (-parallel-compiler) -profiler -rust-analyzer -rust-src -rustfmt -system-bootstrap -test -verify-sig -wasm" ABI_X86="32 (64) (-x32)" CPU_FLAGS_X86="sse2" LLVM_TARGETS="AMDGPU (X86) -AArch64 -ARC -ARM -AVR -BPF -CSKY -DirectX -Hexagon -Lanai -LoongArch -M68k -MSP430 -Mips -NVPTX -PowerPC -RISCV -SPIRV -Sparc -SystemZ -VE -WebAssembly -XCore -Xtensa" pulled in by
    ~dev-lang/rust-1.76.0[profiler?,rustfmt?,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?] required by (virtual/rust-1.76.0:0/llvm-17::gentoo, installed) USE="-profiler -rustfmt" ABI_X86="32 (64) (-x32)"
    ^              ^^^^^^                                                                                                                                                                                                                                                                                                                                                                                                                            


It may be possible to solve this problem by using package.mask to
prevent one of those packages from being selected. However, it is also
possible that conflicting dependencies exist such that they are
impossible to satisfy simultaneously.  If such a conflict exists in
the dependencies of two different packages, then those packages can
not be installed simultaneously. You may want to try a larger value of
the --backtrack option, such as --backtrack=30, in order to see if
that will solve this conflict automatically.

For more information, see MASKED PACKAGES section in the emerge man
page or refer to the Gentoo Handbook.


Expected Results:  
Slotted package is emerged.

Remove Slot or fix portage.

There should be no error when emerging a slot package.

just emerged sync an hour ago or less
Comment 1 Roman Gruber 2024-04-26 13:58:01 UTC
This installatino is from 2006.

Slot Package emerge did work for years!

Please cleanup portage code or improve packages.

The point of slots is, that packages can be installed with several version next to each other on the same box.
Comment 2 Roman Gruber 2024-04-26 14:02:47 UTC
"It may be possible to solve this problem by using package.mask to
prevent one of those packages from being selected. "

Backtrack never worked

Fix that feature or remove it

I expect at least backtrack to fix a slot emerge, when the corresponding slot is not beeing installed

See no 1.77.1 on the box, or 1.77 ... just minimal rust


Sienna_Cichlid /home/roman # qlist -Iv rust
app-eselect/eselect-rust-20210703
dev-lang/rust-1.76.0-r1
virtual/rust-1.76.0
Sienna_Cichlid /home/roman # eshowkw rust
Keywords for dev-lang/rust:
             |                               |   u             |  
             | a   a     p s     l r   a     |   n             |  
             | m   r h   p p   i o i s l m m | e u s           | r
             | d a m p p c a x a o s 3 p 6 i | a s l           | e
             | 6 r 6 p p 6 r 8 6 n c 9 h 8 p | p e o           | p
             | 4 m 4 a c 4 c 6 4 g v 0 a k s | i d t           | o
-------------+-------------------------------+-----------------+-------
   1.71.0    | ~ ~ ~ o ~ ~ ~ ~ o o ~ o o o ~ | 8 # stable/1.71 | gentoo
   1.71.1    | + + + o + + + + o ~ ~ o o o ~ | 8 o             | gentoo
-------------+-------------------------------+-----------------+-------
   1.73.0    | ~ ~ ~ o ~ ~ ~ ~ o ~ ~ o o o ~ | 8 o stable/1.73 | gentoo
-------------+-------------------------------+-----------------+-------
   1.74.1    | + + + o + + + + o ~ ~ o o o ~ | 8 o stable/1.74 | gentoo
-------------+-------------------------------+-----------------+-------
   1.75.0-r1 | + + + o + + + + o ~ ~ o o o ~ | 8 o stable/1.75 | gentoo
-------------+-------------------------------+-----------------+-------
[I]1.76.0-r1 | ~ ~ ~ o ~ ~ ~ ~ o ~ ~ o o o ~ | 8 o stable/1.76 | gentoo
-------------+-------------------------------+-----------------+-------
   1.77.1    | ~ ~ ~ o ~ ~ ~ ~ o ~ ~ o o o ~ | 8 o stable/1.77 | gentoo
Sienna_Cichlid /home/roman # 


I was never a friend of that virtual package madness. As you can see virtual does not really improve package portage feature. It is just an useless mess, as it does not work.

Should be removed
virtual/rust-1.76.0

Should be removed also
app-eselect/eselect-rust-20210703

Sienna_Cichlid /home/roman # eshowkw eselect-rust
Keywords for app-eselect/eselect-rust:
            |                               |   u   |  
            | a   a     p s     l r   a     |   n   |  
            | m   r h   p p   i o i s l m m | e u s | r
            | d a m p p c a x a o s 3 p 6 i | a s l | e
            | 6 r 6 p p 6 r 8 6 n c 9 h 8 p | p e o | p
            | 4 m 4 a c 4 c 6 4 g v 0 a k s | i d t | o
------------+-------------------------------+-------+-------
[I]20210703 | + + + o + + + + o ~ ~ ~ o o ~ | 7 o 0 | gentoo


naming a package for year 2021 makes sense, does it not?
Comment 3 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-04-26 14:10:32 UTC
Please try to be polite and focus on the technical issue.

Upgrading just Rust itself doesn't work because of https://wiki.gentoo.org/wiki/Project:Portage/FAQ#Why_is_there_a_dependency_conflict_when_I_attempt_to_upgrade_a_single_package.3F.

Rust itself isn't slotted (it just has one slot, "stable") right now, although we should properly slot it.
Comment 4 genBTC 2024-04-26 15:32:06 UTC
When I try to do a rust emerge in a command by itself, the virtual has to be added to the command line as well.

Such that "emerge -avu1 dev-lang/rust virtual/rust"
should prevent what you perceive to be a slot conflict
GL!