Mailing List Archive

Can I safely switch (no)multilib profile???
When I installed Gentoo on my desktop PC, I could've sworn that I
selected...

[15] default/linux/amd64/17.1/no-multilib (stable)

...as the profile. ***THINGS HAVE BEEN WORKING FINE FOR A COUPLE OF
YEARS.***

While updating tonight, glibc dies with a build error...

.[.31;01m*.[.0m ERROR: sys-libs/glibc-2.36-r7::gentoo failed (unpack phase):
.[.31;01m*.[.0m CONFIG_IA32_EMULATION must be enabled in the kernel to compile
a multilib glibc.

...Digging deeper, I ran "eselect profile list" and got...

[1] default/linux/amd64/17.1 (stable) *

WTF?!? Can I safely eselect profile [15] and emerge update to get
back to normal? Also what could possibly change my profile in the first
place?

--
I've seen things, you people wouldn't believe; Gopher, Netscape with
frames, the first Browser Wars. Searching for pages with AltaVista,
pop-up windows self-replicating, trying to uninstall RealPlayer. All
those moments, will be lost in time like tears in rain... time to die.
Re: Can I safely switch (no)multilib profile??? [ In reply to ]
On Sun, Apr 16, 2023 at 01:29:46AM -0400, Walter Dnes wrote
> When I installed Gentoo on my desktop PC, I could've sworn that I
> selected...
>
> [15] default/linux/amd64/17.1/no-multilib (stable)
>
> ...as the profile. ***THINGS HAVE BEEN WORKING FINE FOR A COUPLE OF
> YEARS.***

Things get curiouser and curiouser. Start with a pretend emerge

=====================================================================
emerge -pv --changed-use --deep --update @world

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

Calculating dependencies... done!
Dependency resolution took 11.19 s.

[ebuild U ] sys-libs/glibc-2.36-r7:2.2::gentoo [2.36-r5:2.2::gentoo] USE="multiarch (multilib) ssp stack-realign (static-libs) -audit -caps (-cet) -compile-locales (-crypt) (-custom-cflags) -doc -gd -hash-sysv-compat -headers-only -multilib-bootstrap -nscd -perl% -profile (-selinux) -suid -systemd -systemtap -test (-vanilla)" 0 KiB

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

This says that my current glibc is 2.36-r5 which would be replaced
with 2.36-r7. Now let's try asking for my current glibc version to be
built...

=====================================================================
emerge -pv =sys-libs/glibc-2.36-r5

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

Calculating dependencies... done!
Dependency resolution took 1.43 s.

[ebuild R ] sys-libs/glibc-2.36-r5:2.2::gentoo USE="multiarch (multilib) ssp stack-realign (static-libs) -audit -caps (-cet) -compile-locales (-crypt) (-custom-cflags) -doc -gd -hash-sysv-compat -headers-only -multilib-bootstrap -nscd -profile (-selinux) -suid -systemd -systemtap -test (-vanilla)" 0 KiB
=====================================================================

Note the "(multilib)" in USE. If I remove the "-pv" it too dies early
with...

=====================================================================
>>> Failed to emerge sys-libs/glibc-2.36-r5, Log file:

>>> '/var/tmp/portage/sys-libs/glibc-2.36-r5/temp/build.log'

* Messages for package sys-libs/glibc-2.36-r5:

* ERROR: sys-libs/glibc-2.36-r5::gentoo failed (unpack phase):
* CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc.
=====================================================================

***I CAN'T EVEN BUILD THE CURRENT GLIBC ON MY MACHINE***. It looks
more and more like somewhere somehow my profile selection got changed
after my previous glibc update.

I regularly back up incrementally to two large standalone backup
drives. Every so often, I tarball my $HOME dir and push the copy over
to my "hot backup" machine. I intend to do that tonight, followed by
selecting profile...

[15] default/linux/amd64/17.1/no-multilib (stable)

...and then running...

emerge --changed-use --deep --update @world

--
I've seen things, you people wouldn't believe; Gopher, Netscape with
frames, the first Browser Wars. Searching for pages with AltaVista,
pop-up windows self-replicating, trying to uninstall RealPlayer. All
those moments, will be lost in time like tears in rain... time to die.
Re: Can I safely switch (no)multilib profile??? [ In reply to ]
Greetings,

On Sunday, 2023-04-16 18:56:35 -0400, Walter Dnes wrote:

> On Sun, Apr 16, 2023 at 01:29:46AM -0400, Walter Dnes wrote
> > When I installed Gentoo on my desktop PC, I could've sworn that I
> > selected...
> >
> > [15] default/linux/amd64/17.1/no-multilib (stable)
> >
> > ...as the profile. ***THINGS HAVE BEEN WORKING FINE FOR A COUPLE OF
> > YEARS.***

Walter's problems triggered me to check what profile was selected on my
own rig:

# eselect profile show
Current /etc/portage/make.profile symlink:
default/linux/amd64/17.1/desktop
# eselect profile list
!!! Error: Failed to get a list of valid profiles
exiting
#

Anybody having an explanation? What to check?

Any pointers welcome ...

Sincerely,
Rainer
Re: Can I safely switch (no)multilib profile??? [ In reply to ]
Le 17/04/23 à 12:06, Dr Rainer Woitok a tapoté :
> Walter's problems triggered me to check what profile was selected on
> my own rig:
>
> # eselect profile show
> Current /etc/portage/make.profile symlink:
> default/linux/amd64/17.1/desktop
> # eselect profile list
> !!! Error: Failed to get a list of valid profiles
> exiting
> #
>
> Anybody having an explanation? What to check?
>

Is the following file readable ?

> $ ls -l $(portageq get_repo_path / gentoo)/profiles/profiles.desc
Re: Can I safely switch (no)multilib profile??? [ In reply to ]
On Sun, Apr 16, 2023 at 06:56:35PM -0400, Walter Dnes wrote
>
> ***I CAN'T EVEN BUILD THE CURRENT GLIBC ON MY MACHINE***. It looks
> more and more like somewhere somehow my profile selection got changed
> after my previous glibc update.
>
> I regularly back up incrementally to two large standalone backup
> drives. Every so often, I tarball my $HOME dir and push the copy over
> to my "hot backup" machine. I intend to do that tonight, followed by
> selecting profile...
>
> [15] default/linux/amd64/17.1/no-multilib (stable)
>
> ...and then running...
>
> emerge --changed-use --deep --update @world

Having backed up, I selected the no-multilib (stable) profile. I
checked out how glibc would build...

====================================================================
[x8940][root][~] emerge -pv1 glibc

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

Calculating dependencies... done!
Dependency resolution took 3.33 s.

[ebuild U ] sys-libs/glibc-2.36-r7:2.2::gentoo [2.36-r5:2.2::gentoo] USE="multiarch ssp (static-libs) -audit -caps (-cet) -compile-locales (-crypt) (-custom-cflags) -doc -gd -hash-sysv-compat -headers-only (-multilib*) -multilib-bootstrap -nscd -perl% -profile (-selinux) (-stack-realign*) -suid -systemd -systemtap -test (-vanilla)" 0 KiB
====================================================================

The forced (multilib) flag has changed to forced (-multilib). The
other USE flag change is (-stack-realign).

emerge -pv --changed-use --deep --update @world

calls for glibc to to be updated (-multilib*) and (-stack-realign*)

In addition, the profile change appears to cause 5 rebuilds...
sys-libs/ncurses (-stack-realign*)
sys-apps/sandbox (-32*)
virtual/libcrypt (-32*)
sys-libs/libxcrypt (-32*)
sys-devel/gcc (-multilib*)

The update is running. I'll check the emerge results after I get back
from some shopping and fish-n-chips.

--
I've seen things, you people wouldn't believe; Gopher, Netscape with
frames, the first Browser Wars. Searching for pages with AltaVista,
pop-up windows self-replicating, trying to uninstall RealPlayer. All
those moments, will be lost in time like tears in rain... time to die.
Re: Can I safely switch (no)multilib profile??? [ In reply to ]
Netfab,

On Monday, 2023-04-17 13:49:57 +0200, you wrote:

> ...
> Is the following file readable ?
>
> > $ ls -l $(portageq get_repo_path / gentoo)/profiles/profiles.desc

Yes:

$ ls -l $(portageq get_repo_path / gentoo)/profiles/profiles.desc
-rw-r--r-- 1 root root 20443 2023-03-24 15:05 /var/db/repos/gentoo/profiles/profiles.desc
$ grep default/linux/amd64 $(portageq get_repo_path / gentoo)/profiles/profiles.desc
amd64 default/linux/amd64/17.1 stable
amd64 default/linux/amd64/17.1/selinux stable
amd64 default/linux/amd64/17.1/hardened stable
amd64 default/linux/amd64/17.1/hardened/selinux stable
amd64 default/linux/amd64/17.1/desktop stable
amd64 default/linux/amd64/17.1/desktop/gnome stable
amd64 default/linux/amd64/17.1/desktop/gnome/systemd stable
amd64 default/linux/amd64/17.1/desktop/gnome/systemd/merged-usr stable
amd64 default/linux/amd64/17.1/desktop/plasma stable
amd64 default/linux/amd64/17.1/desktop/plasma/systemd stable
amd64 default/linux/amd64/17.1/desktop/plasma/systemd/merged-usr stable
amd64 default/linux/amd64/17.1/desktop/systemd stable
amd64 default/linux/amd64/17.1/desktop/systemd/merged-usr stable
amd64 default/linux/amd64/17.1/developer exp
amd64 default/linux/amd64/17.1/no-multilib stable
amd64 default/linux/amd64/17.1/no-multilib/hardened stable
amd64 default/linux/amd64/17.1/no-multilib/hardened/selinux stable
amd64 default/linux/amd64/17.1/no-multilib/systemd dev
amd64 default/linux/amd64/17.1/no-multilib/systemd/merged-usr dev
amd64 default/linux/amd64/17.1/no-multilib/systemd/selinux exp
amd64 default/linux/amd64/17.1/no-multilib/systemd/selinux/merged-usr exp
amd64 default/linux/amd64/17.1/systemd stable
amd64 default/linux/amd64/17.1/systemd/merged-usr stable
amd64 default/linux/amd64/17.1/systemd/selinux exp
amd64 default/linux/amd64/17.1/systemd/selinux/merged-usr exp
amd64 default/linux/amd64/17.1/clang exp
amd64 default/linux/amd64/17.1/systemd/clang exp
amd64 default/linux/amd64/17.1/systemd/clang/merged-usr exp
amd64 default/linux/amd64/17.0/x32 dev
amd64 default/linux/amd64/17.0/x32/systemd exp
amd64 default/linux/amd64/17.0/x32/systemd/merged-usr exp
amd64 default/linux/amd64/17.0/musl dev
amd64 default/linux/amd64/17.0/musl/clang exp
amd64 default/linux/amd64/17.0/musl/hardened exp
amd64 default/linux/amd64/17.0/musl/hardened/selinux exp
amd64-linux default/linux/amd64/17.0/no-multilib/prefix/kernel-3.2+ exp
amd64-linux default/linux/amd64/17.0/no-multilib/prefix/kernel-2.6.32+ exp
amd64-linux default/linux/amd64/17.0/no-multilib/prefix/kernel-2.6.16+ exp
amd64-linux default/linux/amd64/17.1/no-multilib/prefix/kernel-3.2+ exp
amd64-linux default/linux/amd64/17.1/no-multilib/prefix/kernel-2.6.32+ exp
amd64-linux default/linux/amd64/17.1/no-multilib/prefix/kernel-2.6.16+ exp
$

Sincerely,
Rainer
Re: Can I safely switch (no)multilib profile??? [ In reply to ]
Le 18/04/23 à 17:25, Dr Rainer Woitok a tapoté :
> On Monday, 2023-04-17 13:49:57 +0200, you wrote:
>
> > ...
> > Is the following file readable ?
> >
> > > $ ls -l $(portageq get_repo_path / gentoo)/profiles/profiles.desc
>
> Yes:
>
> [...]

Please post your emerge --info.
Re: Can I safely switch (no)multilib profile??? [ In reply to ]
Netfab,

On Tuesday, 2023-04-18 19:23:08 +0200, you wrote:

> ...
> Please post your emerge --info.

$ emerge --info
Portage 3.0.44 (python 3.10.10-final-0, default/linux/amd64/17.1/desktop, gcc-12, glibc-2.36-r7, 6.1.19-gentoo x86_64)
=================================================================
System uname: Linux-6.1.19-gentoo-x86_64-Intel-R-_Core-TM-_i3-6100H_CPU_@_2.70GHz-with-glibc2.36
KiB Mem: 16275880 total, 12626132 free
KiB Swap: 16777212 total, 16777212 free
Timestamp of repository gentoo: Tue, 18 Apr 2023 16:02:07 +0000
Head commit of repository gentoo: 680055829bf8a22bce902578a081df426bfbf1b1

sh bash 5.1_p16-r2
ld GNU ld (Gentoo 2.39 p5) 2.39.0
app-misc/pax-utils: 1.3.5::gentoo
app-shells/bash: 5.1_p16-r2::gentoo
dev-java/java-config: 2.3.1::gentoo
dev-lang/perl: 5.36.0-r2::gentoo
dev-lang/python: 3.10.10_p3::gentoo, 3.11.2_p2::gentoo
dev-lang/rust-bin: 1.66.1-r1::gentoo
dev-util/cmake: 3.25.3::gentoo
dev-util/meson: 1.0.1::gentoo
sys-apps/baselayout: 2.13-r1::gentoo
sys-apps/openrc: 0.46::gentoo
sys-apps/sandbox: 2.29::gentoo
sys-devel/autoconf: 2.71-r5::gentoo
sys-devel/automake: 1.16.5::gentoo
sys-devel/binutils: 2.39-r4::gentoo
sys-devel/binutils-config: 5.5::gentoo
sys-devel/gcc: 12.2.1_p20230121-r1::gentoo
sys-devel/gcc-config: 2.10::gentoo
sys-devel/libtool: 2.4.7-r1::gentoo
sys-devel/make: 4.3::gentoo
sys-kernel/linux-headers: 6.1::gentoo (virtual/os-headers)
sys-libs/glibc: 2.36-r7::gentoo
Repositories:

gentoo
location: /var/db/repos/gentoo
sync-type: git
sync-uri: https://github.com/gentoo-mirror/gentoo
priority: -1000
volatile: True
sync-git-verify-commit-signature: yes

gnu-elpa
location: /var/lib/layman/gnu-elpa
sync-type: laymansync
sync-uri: gs-elpa gnu-elpa
masters: gentoo
priority: 50
volatile: True

melpa
location: /var/lib/layman/melpa
sync-type: laymansync
sync-uri: gs-elpa melpa
masters: gnu-elpa gentoo
priority: 50
volatile: True

melpa-stable
location: /var/lib/layman/melpa-stable
sync-type: laymansync
sync-uri: gs-elpa melpa-stable
masters: gnu-elpa gentoo
priority: 50
volatile: True

local
location: /var/lib/Local-Overlay
masters: gentoo
priority: 1000
volatile: True

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="@FREE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-fno-diagnostics-color -march=native -O2 -pipe"
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="-fno-diagnostics-color -march=native -O2 -pipe"
DISTDIR="/var/cache/distfiles"
EMERGE_DEFAULT_OPTS="--ask --ask-enter-invalid --autounmask=n --color=n --nospinner --quiet --quiet-build --quiet-fail --verbose-conflicts"
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_DIRS XDG_CONFIG_HOME XDG_CURRENT_DESKTOP XDG_DATA_DIRS XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME XFILESEARCHPATH XSESSION XUSERFILESEARCHPATH"
FCFLAGS="-fno-diagnostics-color -march=native -O2 -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs buildpkg-live config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-fno-diagnostics-color -march=native -O2 -pipe"
GENTOO_MIRRORS="https://ftp.fau.de/gentoo"
LANG="en_GB.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LEX="flex"
MAKEOPTS="-j5 -l4.8"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
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="/usr/bin/sh"
USE="X a52 aac acl acpi alsa amd64 bluetooth branding bzip2 cairo cdda cdr cli crypt cups dbus djvu dri dts dvd dvdr elogind encode exif fftw flac fortran gdbm gif gnutls gpm gtk gui iconv icu ipv6 jbig jpeg jpeg2k lcms libglvnd libnotify libtirpc lzma mad mng modemmanager mp3 mp4 mpeg mtp multilib ncurses networkmanager nptl ogg openexr opengl openmp pam pango pcre pdf png policykit postscript ppds pulseaudio qt5 readline sdl seccomp sound spell split-usr ssl startup-notification svg test-rust tiff truetype udev udisks unicode upower usb vorbis wxwidgets x264 x86_64 xattr xcb xface xft xml xv xvid zlib" ABI_X86="64" ADA_TARGET="gnat_2021" ALSA_CARDS="hda-intel" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache 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 rdrand sse sse2 sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="efi-64" INPUT_DEVICES="libinput" KERNEL="linux" L10N="en-GB" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-4 php8-0" POSTGRES_TARGETS="postgres12 postgres13" PYTHON_SINGLE_TARGET="python3_10" PYTHON_TARGETS="python3_10" RUBY_TARGETS="ruby30" SANE_BACKENDS="pixma" USERLAND="GNU" VIDEO_CARDS="intel i965" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq proto steal rawnat 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, INSTALL_MASK, LC_ALL, LD, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS

$

Sincerely,
Rainer
Re: Can I safely switch (no)multilib profile??? [ In reply to ]
Le 20/04/23 à 17:41, Dr Rainer Woitok a tapoté :
> Netfab,
>
> On Tuesday, 2023-04-18 19:23:08 +0200, you wrote:
>
> > ...
> > Please post your emerge --info.
>
> $ emerge --info

I do not see anything particular in your emerge --info.
What is your eselect version ?
> $ eselect --version

You can get bash debug output by running the following :
> $ bash -x /usr/bin/eselect profile list 2> /tmp/debug.log

Hopefully this will show what's going on into /tmp/debug.log.
Re: Can I safely switch (no)multilib profile??? [ In reply to ]
Netfab,

On Friday, 2023-04-21 14:43:32 +0200, you wrote:

> ...
> I do not see anything particular in your emerge --info.
> What is your eselect version ?
> > $ eselect --version

$ eselect --version
eselect 1.4.20

Copyright (c) 2005-2020 Gentoo Authors.
Distributed under the terms of the GNU GPL version 2 or later.
$

> You can get bash debug output by running the following :
> > $ bash -x /usr/bin/eselect profile list 2> /tmp/debug.log

Oops, I didn't know or expect "eselect" to be a Bash script. Otherwise
I would have done this already :-)

I've appended the trace output at the end. This sure revealed the pro-
blem: skimming upward from the call to "die" in line ">196:" one can see
the script trying in line ">>>129:" to extract lines matching "^x86_64"
from "/var/db/repos/gentoo/profiles/profiles.desc". However, there are
none. Skimming farther upward reveals the string "x86_64" being derived
in line ">>>>33:" from environment variable "ARCH" which is defined in
my shell initialization scripts:

export ARCH=$({ arch || uname -m || echo unknown ; } 2> /dev/null)

But the only architectures supported by my "profiles.desc" file are:

$ gawk '! /^#|^$/ { print $1 }
' /var/db/repos/gentoo/profiles/profiles.desc | sort -u
alpha
amd64
amd64-linux
arm
arm-linux
arm64
arm64-linux
arm64-macos
hppa
ia64
loong
m68k
mips
ppc
ppc-macos
ppc64
ppc64-linux
riscv
riscv-linux
s390
sparc
sparc-solaris
sparc64-solaris
x64-cygwin
x64-macos
x64-solaris
x64-winnt
x86
x86-linux
x86-solaris
x86-winnt
$

So what is causing this? Why is environment variable "ARCH" expected to
have a value different from "$(arch)"? In fact, running

$ ARCH= eselect profile list
[1] default/linux/amd64/17.1 (stable)
...
[35] default/linux/amd64/17.0/musl/hardened/selinux (exp)
$

succeeds, which is slightly puzzling, at least for me :-/

But if that's the way it has to be, I can live with it by just setting my
"eselect" alias to "eselect='ARCH= eselect --color=no'", which works.

In any case thanks for your time and effort :-)

Sincerely,
Rainer

And here's the complete trace output:

$ PS4='>$LINENO: ' bash -x /usr/bin/eselect profile list
>20: ESELECT_DATA_PATH=/usr/share/eselect
>23: ESELECT_DEFAULT_MODULES_PATH=/usr/share/eselect/modules
>28: ESELECT_MODULES_PATH=("${HOME}/.eselect/modules" "${ESELECT_DEFAULT_MODULES_PATH}")
>31: ESELECT_CORE_PATH=/usr/share/eselect/libs
>34: ESELECT_DEFAULT_ACTIONS=/usr/share/eselect/libs/default.eselect
>37: ESELECT_PROGRAM_NAME=eselect
>38: ESELECT_VERSION=1.4.20
>41: ESELECT_BINARY_NAME=/usr/bin/eselect
>42: ESELECT_KILL_TARGET=22018
>45: EPREFIX=
>46: EROOT=
>50: unalias -a
>51: unset -f rm
>52: unset CDPATH GLOBIGNORE
>53: IFS='
'
>55: shopt -s extglob
>56: shopt -s expand_aliases
>58: umask +rx
>61: (( BASH_VERSINFO[0] == 4 && BASH_VERSINFO[1] >= 1 || BASH_VERSINFO[0] > 4 ))
>63: exec
>67: source /usr/share/eselect/libs/core.bash
>69: inherit manip output path-manipulation tests
>113: local x
>114: for x in "$@"
>115: [[ -e /usr/share/eselect/libs/manip.bash ]]
>117: source /usr/share/eselect/libs/manip.bash
>114: for x in "$@"
>115: [[ -e /usr/share/eselect/libs/output.bash ]]
>117: source /usr/share/eselect/libs/output.bash
>114: for x in "$@"
>115: [[ -e /usr/share/eselect/libs/path-manipulation.bash ]]
>117: source /usr/share/eselect/libs/path-manipulation.bash
>114: for x in "$@"
>115: [[ -e /usr/share/eselect/libs/tests.bash ]]
>117: source /usr/share/eselect/libs/tests.bash
>73: trap 'echo "exiting" >&2; exit 250' 15
>111: action=
>112: for suffix in config update{,r} tool manager reader
>113: [[ /usr/bin/eselect != \/\u\s\r\/\b\i\n\/\e\s\e\l\e\c\t ]]
>112: for suffix in config update{,r} tool manager reader
>113: [[ /usr/bin/eselect != \/\u\s\r\/\b\i\n\/\e\s\e\l\e\c\t ]]
>112: for suffix in config update{,r} tool manager reader
>113: [[ /usr/bin/eselect != \/\u\s\r\/\b\i\n\/\e\s\e\l\e\c\t ]]
>112: for suffix in config update{,r} tool manager reader
>113: [[ /usr/bin/eselect != \/\u\s\r\/\b\i\n\/\e\s\e\l\e\c\t ]]
>112: for suffix in config update{,r} tool manager reader
>113: [[ /usr/bin/eselect != \/\u\s\r\/\b\i\n\/\e\s\e\l\e\c\t ]]
>112: for suffix in config update{,r} tool manager reader
>113: [[ /usr/bin/eselect != \/\u\s\r\/\b\i\n\/\e\s\e\l\e\c\t ]]
>119: unset suffix
>121: [[ -z '' ]]
>>122: basename /usr/bin/eselect
>>22: local path=/usr/bin/eselect suf=
>>24: [[ -z /usr/bin/eselect ]]
>>30: path=/usr/bin/eselect
>>33: path=eselect
>>36: [[ '' != \e\s\e\l\e\c\t ]]
>>36: path=eselect
>>39: echo eselect
>122: binname=eselect
>123: for prefix in config update{,r} manage 'read'
>124: [[ eselect != eselect ]]
>123: for prefix in config update{,r} manage 'read'
>124: [[ eselect != eselect ]]
>123: for prefix in config update{,r} manage 'read'
>124: [[ eselect != eselect ]]
>123: for prefix in config update{,r} manage 'read'
>124: [[ eselect != eselect ]]
>123: for prefix in config update{,r} manage 'read'
>124: [[ eselect != eselect ]]
>130: unset binname prefix
>134: [[ profile != \p\r\o\f\i\l\e ]]
>170: [[ -z '' ]]
>170: [[ 2 -gt 0 ]]
>171: action=profile
>172: shift
>176: [[ -t 1 ]]
>177: colours yes
>19: [[ yes != n* ]]
>>20: tput sgr0
>20: COLOUR_NORMAL=''
>>21: tput bold
>21: COLOUR_BOLD=''
>>22: tput setaf 4
>22: COLOUR_HI=''
>>23: tput setaf 3
>23: COLOUR_WARN=''
>>24: tput setaf 1
>24: COLOUR_ERROR=''
>>25: tput setaf 2
>25: COLOUR_LIST_HEADER='[.38;5;2m[.1m'
>26: COLOUR_LIST_LEFT=''
>27: COLOUR_LIST_RIGHT=''
>178: init_columns
>54: [[ -n '' ]]
>>54: tput cols
>54: COLUMNS=80
>182: unset colour
>184: [[ -n profile ]]
>185: is_function es_do_profile
>>32: type -t es_do_profile
>32: [[ '' == \f\u\n\c\t\i\o\n ]]
>189: do_action profile list
>84: local action=profile modfile= subaction=list
>85: [[ -z profile ]]
>86: shift
>86: shift
>88: ESELECT_MODULE_NAME=profile
>89: ESELECT_COMMAND='eselect profile'
>91: [[ eselect != \e\s\e\l\e\c\t ]]
>>94: find_module profile
>>71: local modname=profile modpath
>>72: for modpath in "${ESELECT_MODULES_PATH[@]}"
>>73: [[ -f /home/rainer/.eselect/modules/profile.eselect ]]
>>72: for modpath in "${ESELECT_MODULES_PATH[@]}"
>>73: [[ -f /usr/share/eselect/modules/profile.eselect ]]
>>74: echo /usr/share/eselect/modules/profile.eselect
>>75: return
>94: modfile=/usr/share/eselect/modules/profile.eselect
>96: source /usr/share/eselect/libs/default.eselect
>98: source /usr/share/eselect/modules/profile.eselect
>100: [[ -z list ]]
>103: is_function do_list
>>32: type -t do_list
>32: [[ function == \f\u\n\c\t\i\o\n ]]
>105: check_do do_list
>21: local function=do_list
>22: shift
>23: is_function do_list
>>32: type -t do_list
>32: [[ function == \f\u\n\c\t\i\o\n ]]
>24: do_list
>192: local targets active i target repo repopath status disp
>194: targets=($(find_targets))
>>194: find_targets
>>47: local arch desc repos repo_paths i p
>>>49: arch
>>>>45: envvar sys-devel/gcc ARCH
>>>>149: [[ 2 -eq 2 ]]
>>>>150: case $(package_manager) in
>>>>>150: package_manager
>>>>>21: local pm
>>>>>22: case ${PACKAGE_MANAGER} in
>>>>>27: echo portage
>>>>152: portageq envvar ARCH
>>>>33: command portageq envvar ARCH
>>>45: local ret=x86_64
>>>47: [[ -n '' ]]
>>>62: [[ -z x86_64 ]]
>>>142: echo x86_64
>>49: arch=x86_64
>>50: [[ -z x86_64 ]]
>>52: repos=($(get_repos))
>>>52: get_repos
>>>33: portageq get_repos /
>>>33: command portageq get_repos /
>>>34: sed 's/[[:space:]]\+/\n/g;s/^gentoo$/ &/gm'
>>>129: command sed 's/[[:space:]]\+/\n/g;s/^gentoo$/ &/gm'
>>>35: LC_ALL=C
>>>35: sort
>>>36: [[ 0 0 0 = \0\ \0\ \0 ]]
>>53: repo_paths=($(get_repo_path "${repos[@]}"))
>>>53: get_repo_path gentoo gnu-elpa local melpa melpa-stable
>>>41: portageq get_repo_path / gentoo gnu-elpa local melpa melpa-stable
>>>33: command portageq get_repo_path / gentoo gnu-elpa local melpa melpa-stable
>>55: [[ 5 -eq 0 ]]
>>55: [[ 5 -ne 5 ]]
>>58: (( i = 0 ))
>>58: (( i < 5 ))
>>59: desc=/var/db/repos/gentoo/profiles/profiles.desc
>>60: [[ -r /var/db/repos/gentoo/profiles/profiles.desc ]]
>>>62: sed -n -e 's|^x86_64[[:space:]]\+\([^[:space:]]\+\)[[:space:]]\+\([^[:space:]]\+\).*$|\1::\2|p' /var/db/repos/gentoo/profiles/profiles.desc
>>>129: command sed -n -e 's|^x86_64[[:space:]]\+\([^[:space:]]\+\)[[:space:]]\+\([^[:space:]]\+\).*$|\1::\2|p' /var/db/repos/gentoo/profiles/profiles.desc
>>58: (( i++ ))
>>58: (( i < 5 ))
>>59: desc=/var/lib/layman/gnu-elpa/profiles/profiles.desc
>>60: [[ -r /var/lib/layman/gnu-elpa/profiles/profiles.desc ]]
>>60: continue
>>58: (( i++ ))
>>58: (( i < 5 ))
>>59: desc=/var/lib/Local-Overlay/profiles/profiles.desc
>>60: [[ -r /var/lib/Local-Overlay/profiles/profiles.desc ]]
>>60: continue
>>58: (( i++ ))
>>58: (( i < 5 ))
>>59: desc=/var/lib/layman/melpa/profiles/profiles.desc
>>60: [[ -r /var/lib/layman/melpa/profiles/profiles.desc ]]
>>60: continue
>>58: (( i++ ))
>>58: (( i < 5 ))
>>59: desc=/var/lib/layman/melpa-stable/profiles/profiles.desc
>>60: [[ -r /var/lib/layman/melpa-stable/profiles/profiles.desc ]]
>>60: continue
>>58: (( i++ ))
>>58: (( i < 5 ))
>195: [[ 0 -eq 0 ]]
>196: die -q 'Failed to get a list of valid profiles'
>33: local item funcname= sourcefile= lineno= n e s=yes
>36: [[ -n 10 ]]
>36: exec
>39: is_function write_error_msg
>>32: type -t write_error_msg
>32: [[ function == \f\u\n\c\t\i\o\n ]]
>40: e=write_error_msg
>46: [[ -q == \-\q ]]
>47: s=
>48: shift
>51: write_error_msg 'Failed to get a list of valid profiles'
>60: echo -e '[.38;5;1m[.1m!!! Error: Failed to get a list of valid profiles'
[.38;5;1m[.1m!!! Error: Failed to get a list of valid profiles
>53: [[ -n '' ]]
>64: kill 22018
>65: exit 249
>>1: echo exiting
exiting
>>1: exit 250
Re: Can I safely switch (no)multilib profile??? [ In reply to ]
Le 21/04/23 à 18:26, Dr Rainer Woitok a tapoté :
> Skimming farther upward reveals the string "x86_64" being derived
> in line ">>>>33:" from environment variable "ARCH" which is defined
> in my shell initialization scripts:
>
> export ARCH=$({ arch || uname -m || echo unknown ; } 2> /dev/null)

You should open a bug to explain that ARCH variable is already defined
in your shell environment. As a consequence the results on the following
commands are different :

> $ ARCH=x86_64 portageq envvar ARCH
> x86_64

> $ portageq envvar ARCH
> amd64

An this finally leads to eselect failure in some cases :

> $ ARCH=x86_64 eselect profile list
> !!! Error: Failed to get a list of valid profiles
> exiting
Re: Can I safely switch (no)multilib profile??? [ In reply to ]
Netfab,

On Friday, 2023-04-21 19:41:54 +0200, you wrote:

> ...
> You should open a bug to explain that ARCH variable is already defined
> in your shell environment. As a consequence the results on the following
> commands are different :

Hm, I'm not at all sure this would qualify as a bug. A while after hav-
ing traced this problem down, I faintly remembered that in ma early Gen-
too days I had a similar problem with "eix". In both cases the depen-
dance on environment variable "ARCH" is not documented in the respec-
tive manual pages, and therefore it is in particular not pointed out
that Portage is using a different convention from the "arch" command for
naming hardware architectures.

So it's probably not a bug in the code, but rather "just" missing pre-
cision in the documentation -- and my personal experience is that such
things will hardly ever be corrected, because the REAL bugs in the code
just have higher priority :-/

Sincerely,
Rainer