View previous topic :: View next topic |
Author |
Message |
saski4711 Apprentice
Joined: 24 Jun 2004 Posts: 202
|
Posted: Mon Jun 10, 2024 6:41 am Post subject: [SOLVED] and another python 3.12 upgrade problem |
|
|
Hi Folks,
unfortunately something seems to have gone sideways with my migration to 3.12. I've followed the migration instructions and did my updates. No Errors reported. However python 3.11 won't depclean from my system but I didn't mind. Now it seems that some packages still want 3.11. No custom PYTHON_* is defined anywhere in /etc/portage or ~/.bash_profile.
Code: |
[ebuild U ] dev-python/packaging-24.1 [24.0]
The following USE changes are necessary to proceed:
(see "package.use" in the portage(5) man page for more details)
# required by dev-python/setuptools-70.0.0::gentoo
# required by dev-python/ply-3.11-r2::gentoo
# required by media-libs/mesa-24.1.1::gentoo[video_cards_intel]
# required by @selected
# required by @world (argument)
>=dev-python/packaging-24.1 python_targets_python3_11
|
emerge -av shows:
Code: |
emerge -av packaging
These are the packages that would be merged, in order:
Calculating dependencies... done!
Dependency resolution took 15.02 s (backtrack: 3/20).
[ebuild U ] dev-python/packaging-24.1::gentoo [24.0::gentoo] USE="-test" PYTHON_TARGETS="python3_12 -pypy3 -python3_10 -python3_11* -python3_13" 146 KiB
Total: 1 package (1 upgrade), Size of downloads: 146 KiB
!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:
dev-python/packaging:0
(dev-python/packaging-24.1:0/0::gentoo, ebuild scheduled for merge) USE="-test" ABI_X86="(64)" PYTHON_TARGETS="python3_12 -pypy3 -python3_10 -python3_11 -python3_13" pulled in by
dev-python/packaging (Argument)
(dev-python/packaging-24.0:0/0::gentoo, installed) USE="-test" ABI_X86="(64)" PYTHON_TARGETS="python3_11 python3_12 -pypy3 -python3_10 -python3_13" pulled in by
dev-python/packaging[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?,python_targets_python3_13(-)?] required by (dev-python/wheel-0.43.0:0/0::gentoo, installed) USE="-test" ABI_X86="(64)" PYTHON_TARGETS="python3_11 python3_12 -pypy3 -python3_10 -python3_13"
>=dev-python/packaging-24[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?,python_targets_python3_13(-)?] required by (dev-python/setuptools-70.0.0:0/0::gentoo, installed) USE="-test" ABI_X86="(64)" PYTHON_TARGETS="python3_11 python3_12 -pypy3 -python3_10 -python3_13"
dev-python/packaging[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?,python_targets_python3_13(-)?] required by (dev-python/setuptools-scm-8.1.0:0/0::gentoo, installed) USE="-test" ABI_X86="(64)" PYTHON_TARGETS="python3_11 python3_12 -pypy3 -python3_10 -python3_13"
|
No idea where PYTHON_TARGETS=python3.11... comes from but some packages still want 3.11.
here is my emerge --info:
Code: |
Portage 3.0.65 (python 3.12.4-final-0, default/linux/amd64/23.0/split-usr, gcc-14, glibc-2.39-r7, 6.10.0-rc3+ x86_64)
=================================================================
System uname: Linux-6.10.0-rc3+-x86_64-Intel-R-_Core-TM-_i9-9900T_CPU_@_2.10GHz-with-glibc2.39
KiB Mem: 32725904 total, 25666140 free
KiB Swap: 0 total, 0 free
Timestamp of repository gentoo: Mon, 10 Jun 2024 04:30:01 +0000
Head commit of repository gentoo: bf853113520c180e56b458842eb902b210c3c614
sh bash 5.2_p26-r3
ld GNU ld (Gentoo 2.42 p3) 2.42.0
app-misc/pax-utils: 1.3.7::gentoo
app-shells/bash: 5.2_p26-r3::gentoo
dev-build/autoconf: 2.72-r1::gentoo
dev-build/automake: 1.16.5-r2::gentoo
dev-build/cmake: 3.29.3::gentoo
dev-build/libtool: 2.4.7-r4::gentoo
dev-build/make: 4.4.1-r1::gentoo
dev-build/meson: 1.4.1::gentoo
dev-lang/perl: 5.38.2-r6::gentoo
dev-lang/python: 3.11.9-r1::gentoo, 3.12.4::gentoo
dev-lang/rust-bin: 1.78.0::gentoo
sys-apps/baselayout: 2.15::gentoo
sys-apps/openrc: 0.54::gentoo
sys-apps/sandbox: 2.38::gentoo
sys-devel/binutils: 2.42-r1::gentoo
sys-devel/binutils-config: 5.5::gentoo
sys-devel/clang: 17.0.6::gentoo, 18.1.7::gentoo
sys-devel/gcc: 14.1.1_p20240518::gentoo
sys-devel/gcc-config: 2.11::gentoo
sys-devel/llvm: 17.0.6::gentoo, 18.1.7::gentoo
sys-kernel/linux-headers: 6.9::gentoo (virtual/os-headers)
sys-libs/glibc: 2.39-r7::gentoo
Repositories:
gentoo
location: /var/db/repos/gentoo
sync-type: rsync
sync-uri: rsync://rsync.gentoo.org/gentoo-portage
priority: -1000
volatile: False
sync-rsync-verify-max-age: 3
sync-rsync-extra-opts:
sync-rsync-verify-metamanifest: yes
sync-rsync-verify-jobs: 1
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /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"
CXXFLAGS="-march=native -O2 -pipe"
DISTDIR="/tmp/portage/cache/distfiles"
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="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg-live config-protect-if-modified distlocks ebuild-locks 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://distfiles.gentoo.org"
LANG="C.UTF8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs"
LEX="flex"
MAKEOPTS="-j6"
PKGDIR="/tmp/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="/tmp"
SHELL="/bin/bash"
USE="X acl alsa amd64 bzip2 cairo cet crypt cups dbus dri3 egl elogind gdbm glamor gnome-keyring gtk iconv ipv6 libtirpc multilib ncurses nls opengl openmp openvpn pam pcre policykit readline sdl2 seccomp split-usr ssl test-rust threads truetype udev unicode vaapi wifi x264 x265 xattr xinerama xorg zlib" ABI_X86="64" ADA_TARGET="gcc_12" 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 sse sse2 sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 ntrip navcom oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tsip tripmate tnt ublox" GRUB_PLATFORMS="efi-64" INPUT_DEVICES="libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-2" POSTGRES_TARGETS="postgres15" PYTHON_SINGLE_TARGET="python3_12" PYTHON_TARGETS="python3_12" RUBY_TARGETS="ruby31 ruby32" SANE_BACKENDS="hp" VIDEO_CARDS="intel" 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, EMERGE_DEFAULT_OPTS, 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, PYTHONPATH, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS
|
Any clues how to straighten that out?
Thx a bunch
Last edited by saski4711 on Tue Jun 11, 2024 7:10 am; edited 1 time in total |
|
Back to top |
|
|
logrusx Advocate
Joined: 22 Feb 2018 Posts: 2432
|
Posted: Mon Jun 10, 2024 8:26 am Post subject: |
|
|
Post your world file (/var/lib/portage/world) and sets (/etc/portage/sets) if you have any.
Best Regards,
Georgi |
|
Back to top |
|
|
saski4711 Apprentice
Joined: 24 Jun 2004 Posts: 202
|
Posted: Mon Jun 10, 2024 8:46 am Post subject: |
|
|
logrusx wrote: | Post your world file (/var/lib/portage/world) and sets (/etc/portage/sets) if you have any.
Best Regards,
Georgi |
Hi Georgi,
the world file looks like this:
Code: |
cat /var/lib/portage/world
app-admin/conky
app-admin/sudo
app-arch/deb2targz
app-arch/libarchive
app-arch/lz4
app-arch/p7zip
app-arch/rpm2targz
app-arch/unrar
app-arch/zip
app-crypt/gnupg
app-eselect/eselect-python
app-eselect/eselect-repository
app-misc/mc
app-misc/neofetch
app-misc/pax-utils
app-misc/screen
app-portage/gemato
app-portage/gentoolkit
app-text/asciidoc
app-text/build-docbook-catalog
app-text/docbook-dsssl-stylesheets
app-text/docbook-sgml-dtd
app-text/docbook-xml-dtd
app-text/docbook-xml-dtd:4.1.2
app-text/docbook-xml-dtd:4.4
app-text/docbook-xsl-ns-stylesheets
app-text/docbook-xsl-stylesheets
app-text/ghostscript-gpl
app-text/po4a
app-text/tree
app-text/xmlto
dev-build/autoconf
dev-build/automake-wrapper
dev-build/cmake
dev-build/meson
dev-build/ninja
dev-db/sqlite
dev-debug/gdb
dev-debug/valgrind
dev-lang/lua
dev-lang/lua:5.1
dev-lang/mujs
dev-lang/perl
dev-lang/swig
dev-libs/appstream
dev-libs/atk
dev-libs/boost
dev-libs/dbus-glib
dev-libs/elfutils
dev-libs/fribidi
dev-libs/glib
dev-libs/gobject-introspection
dev-libs/gobject-introspection-common
dev-libs/gumbo
dev-libs/jsoncpp
dev-libs/libevdev
dev-libs/libinput
dev-libs/libtracefs
dev-libs/libxslt
dev-libs/nss
dev-perl/IO-Socket-SSL
dev-perl/TermReadKey
dev-python/cython
dev-python/lxml
dev-python/mako
dev-python/pip
dev-python/pygments
dev-python/pyserial
dev-python/python-dotenv
dev-python/retrying
dev-python/tomli
dev-python/trove-classifiers
dev-python/urllib3
dev-util/gtk-doc
dev-util/pkgconf
dev-vcs/git
gnome-base/gvfs
gnome-base/librsvg
gnome-extra/nm-applet
gui-libs/gtk
gui-libs/gtk:4
gui-libs/libhandy
lxde-base/lxrandr
media-fonts/corefonts
media-fonts/dejavu
media-fonts/font-adobe-100dpi
media-fonts/font-adobe-75dpi
media-fonts/font-alias
media-fonts/font-misc-misc
media-fonts/freefonts
media-fonts/urw-fonts
media-gfx/feh
media-gfx/imagemagick
media-gfx/mypaint-brushes
media-gfx/pngcrush
media-gfx/sane-backends
media-gfx/xsane
media-libs/alsa-lib
media-libs/audiofile
media-libs/babl
media-libs/faad2
media-libs/flac
media-libs/fontconfig
media-libs/freeimage
media-libs/freetype
media-libs/ftgl
media-libs/gegl
media-libs/gexiv2
media-libs/giflib
media-libs/gmmlib
media-libs/graphene
media-libs/harfbuzz
media-libs/libass
media-libs/libepoxy
media-libs/libid3tag
media-libs/libmypaint
media-libs/libplacebo
media-libs/libsamplerate
media-libs/libsdl2
media-libs/libsfml
media-libs/libva
media-libs/libva-intel-media-driver
media-libs/libvpx
media-libs/mesa
media-libs/openal
media-libs/openexr
media-libs/openjpeg
media-libs/opus
media-libs/opusfile
media-libs/portaudio
media-libs/sdl2-net
media-sound/alsa-utils
media-sound/alsa-utils:0.9::gentoo
media-sound/mpg123
media-sound/streamripper
media-video/ffmpeg
media-video/libva-utils
net-analyzer/net-snmp
net-analyzer/netcat
net-analyzer/traceroute
net-dns/avahi
net-firewall/nftables
net-libs/glib-networking
net-libs/gnutls
net-libs/libetpan
net-libs/libnma
net-libs/libnsl
net-libs/libpcap
net-libs/libsoup
net-libs/neon
net-libs/nghttp2
net-libs/rpcsvc-proto
net-misc/curl
net-misc/netifrc
net-misc/networkmanager
net-misc/ntp
net-misc/openssh
net-misc/whois
net-print/cups
net-print/cups-filters
net-print/cups-meta
net-print/hplip
net-vpn/networkmanager-openvpn
net-vpn/openvpn
net-vpn/wireguard-tools
net-wireless/bluez
net-wireless/iw
sys-apps/dmidecode
sys-apps/ethtool
sys-apps/gptfdisk
sys-apps/hdparm
sys-apps/input-utils
sys-apps/lm-sensors
sys-apps/nvme-cli
sys-apps/openrc
sys-apps/pciutils
sys-apps/portage
sys-apps/sandbox
sys-apps/smartmontools
sys-apps/sysvinit
sys-apps/texinfo
sys-apps/usbutils
sys-auth/elogind
sys-block/parted
sys-boot/efibootmgr
sys-boot/grub
sys-devel/flex
sys-devel/gcc
sys-devel/gcc-config
sys-fs/dosfstools
sys-fs/f2fs-tools
sys-fs/fuse
sys-fs/ntfs3g
sys-kernel/dracut
sys-libs/glibc
sys-libs/libnvme
sys-libs/libseccomp
sys-libs/libxcrypt
sys-libs/ncurses
sys-libs/ncurses-compat
sys-libs/zlib-ng
sys-power/acpid
sys-power/cpupower
sys-process/htop
sys-process/lsof
virtual/libcrypt
virtual/resolvconf
www-misc/profile-sync-daemon
x11-apps/setxkbmap
x11-apps/xbacklight
x11-apps/xclock
x11-apps/xdm
x11-apps/xfontsel
x11-apps/xhost
x11-apps/xinput
x11-apps/xsetroot
x11-base/xorg-drivers
x11-base/xorg-server
x11-libs/cairo
x11-libs/gdk-pixbuf
x11-libs/gtk+
x11-libs/gtk+:2
x11-libs/libXScrnSaver
x11-libs/libXfont2
x11-libs/libXinerama
x11-libs/libXpresent
x11-libs/libXrender
x11-libs/libdrm
x11-libs/libxkbcommon
x11-libs/pango
x11-libs/xcb-util
x11-libs/xcb-util-image
x11-misc/arandr
x11-misc/notification-daemon
x11-misc/numlockx
x11-misc/xcalib
x11-terms/xterm
x11-wm/twm
|
I have no /etc/portage/sets
Hope this helps. |
|
Back to top |
|
|
e8root Tux's lil' helper
Joined: 09 Feb 2024 Posts: 94
|
Posted: Mon Jun 10, 2024 8:57 am Post subject: |
|
|
What does emerge -1vUD @world shows?
Try to re-emerge dev-python/wheel , dev-python/setuptools and dev-python/setuptools-scm
Is PYTHON_TARGETS still showing python3_11? _________________ Unix Wars - Episode V: AT&T Strikes Back |
|
Back to top |
|
|
logrusx Advocate
Joined: 22 Feb 2018 Posts: 2432
|
Posted: Mon Jun 10, 2024 9:12 am Post subject: |
|
|
saski4711 wrote: | logrusx wrote: | Post your world file (/var/lib/portage/world) and sets (/etc/portage/sets) if you have any.
Best Regards,
Georgi |
Hi Georgi,
the world file looks like this:
I have no /etc/portage/sets
Hope this helps. |
EDIT: while I was writing the replay I realized I didn't ask you to post the full command you're running. It's better to use wgetpaste -c '<the command here>' to publish the whole command and its output.
Awwww.... there's plenty of world pollution. Most of the *lib* stuff should not be there. You have some versioned entries as well.
There are a few threads discussing how to clean up world, does somebody have a link to one of them to post here please?
In the meantime, I have a script that could be useful, but first backup your old world, because I've taken it from either the forums or IRC and I myself only generally know how it works:
Code: | # cat cleanup_world.sh
for i in `cat /var/lib/portage/world`
do
if emerge -p --depclean $i | grep "These are the packages that would be unmerged:">null
then echo $i >>/var/lib/portage/world-new
else echo "removing:" $i
fi
done
mv /var/lib/portage/world /var/lib/portage/world-previous
mv /var/lib/portage/world-new /var/lib/portage/world
|
The general rule is always add --oneshot (-1 for short) if you're running emerge to fix something and never use it if you run emerge to install something you intend to use like libreoffice, firefox, fonts et.c.
e8root wrote: | What does emerge -1vUD @world shows? |
Using emerge --oneshot @world makes no sense. Or maybe more accurately, --oneshot is redundant. Note you're missing --ask or --pretend. This command will immediately start emerge process if it resolves dependencies without error.
e8root wrote: | Try to re-emerge dev-python/wheel , dev-python/setuptools and dev-python/setuptools-scm |
That's not going to achieve anything except getting them recorded in world if --oneshot is forgotten.
e8root wrote: | Is PYTHON_TARGETS still showing python3_11? |
PYTHON_TARGETS is showing python3_12 as evident from emerge --info.
You should not mix global and per-package meanings. What portage complains is a single package that requires python_target_python3_11. You should not talk about python targets using PYTHON_TARGETS. It's a global variable which overlaps with USE expand syntax in package use where you can declare python target/s for individual package in the form of:
Code: | category/package PYTHON_TARGETS: python3_11 python3_12 |
Which will be expanded to python_targets_python3_11 and python_targets_python3_12 use flags which will be added to that particular package's list of use flags to be emerged with.
And if there weren't any clues something else is going on here, I would have recommended just to add the entry portage suggests to package.use.
Best Regards,
Georgi |
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 5110 Location: Bavaria
|
|
Back to top |
|
|
saski4711 Apprentice
Joined: 24 Jun 2004 Posts: 202
|
Posted: Mon Jun 10, 2024 1:15 pm Post subject: |
|
|
logrusx wrote: | saski4711 wrote: | logrusx wrote: | Post your world file (/var/lib/portage/world) and sets (/etc/portage/sets) if you have any.
Best Regards,
Georgi |
Hi Georgi,
the world file looks like this:
I have no /etc/portage/sets
Hope this helps. |
EDIT: while I was writing the replay I realized I didn't ask you to post the full command you're running. It's better to use wgetpaste -c '<the command here>' to publish the whole command and its output.
Awwww.... there's plenty of world pollution. Most of the *lib* stuff should not be there. You have some versioned entries as well.
There are a few threads discussing how to clean up world, does somebody have a link to one of them to post here please?
In the meantime, I have a script that could be useful, but first backup your old world, because I've taken it from either the forums or IRC and I myself only generally know how it works:
Code: | # cat cleanup_world.sh
for i in `cat /var/lib/portage/world`
do
if emerge -p --depclean $i | grep "These are the packages that would be unmerged:">null
then echo $i >>/var/lib/portage/world-new
else echo "removing:" $i
fi
done
mv /var/lib/portage/world /var/lib/portage/world-previous
mv /var/lib/portage/world-new /var/lib/portage/world
|
The general rule is always add --oneshot (-1 for short) if you're running emerge to fix something and never use it if you run emerge to install something you intend to use like libreoffice, firefox, fonts et.c.
e8root wrote: | What does emerge -1vUD @world shows? |
Using emerge --oneshot @world makes no sense. Or maybe more accurately, --oneshot is redundant. Note you're missing --ask or --pretend. This command will immediately start emerge process if it resolves dependencies without error.
e8root wrote: | Try to re-emerge dev-python/wheel , dev-python/setuptools and dev-python/setuptools-scm |
That's not going to achieve anything except getting them recorded in world if --oneshot is forgotten.
e8root wrote: | Is PYTHON_TARGETS still showing python3_11? |
PYTHON_TARGETS is showing python3_12 as evident from emerge --info.
You should not mix global and per-package meanings. What portage complains is a single package that requires python_target_python3_11. You should not talk about python targets using PYTHON_TARGETS. It's a global variable which overlaps with USE expand syntax in package use where you can declare python target/s for individual package in the form of:
Code: | category/package PYTHON_TARGETS: python3_11 python3_12 |
Which will be expanded to python_targets_python3_11 and python_targets_python3_12 use flags which will be added to that particular package's list of use flags to be emerged with.
And if there weren't any clues something else is going on here, I would have recommended just to add the entry portage suggests to package.use.
Best Regards,
Georgi |
Hi Georgi,
thx for the explanation. Well, I took a shortcut so to speak by using a backup from late april and performing the python migration from there. My system is still busy with the llvm/clang sh*t but the migration to python 3.12 went through without a hitch and I was able to safely unmerge python 3.11 so I guess I'm good now. What makes me nervous is the world pollution you mentioned. I don't understand what that means. Could you please elaborate on what is not supposed to be there and why? My installtion is over 12 years old maybe there is still something left over from the past?
About the cleanup_world.sh I'm a little fuzzy on what it's supposed to do. Is there a Wiki that explains that in more detail?
Anyway thanks a bunch you your help
Cheers
Saski |
|
Back to top |
|
|
logrusx Advocate
Joined: 22 Feb 2018 Posts: 2432
|
Posted: Mon Jun 10, 2024 1:50 pm Post subject: |
|
|
saski4711 wrote: |
Hi Georgi,
thx for the explanation. Well, I took a shortcut so to speak by using a backup from late april and performing the python migration from there. My system is still busy with the llvm/clang sh*t but the migration to python 3.12 went through without a hitch and I was able to safely unmerge python 3.11 so I guess I'm good now. What makes me nervous is the world pollution you mentioned. I don't understand what that means. Could you please elaborate on what is not supposed to be there and why? My installtion is over 12 years old maybe there is still something left over from the past?
About the cleanup_world.sh I'm a little fuzzy on what it's supposed to do. Is there a Wiki that explains that in more detail?
Anyway thanks a bunch you your help :wink:
Cheers
Saski |
I'm glad you were able to find a solution although you could have got away with less compilation.
World pollution is when things that should not be in world are there. World should contain only packages you explicitly emerged to serve some purpose. I think I mentioned above they must be packages you use like firefox, gnome, kde, fonts. Things that will not be pulled in r will be cleaned up but they still serve a purpose if installed. What should not be there is their dependencies, things like libraries. For example I saw glibc there which should be pulled in by gcc and plenty of libs. I also saw versioned entries. Sometimes you desire specific version, for example I have a few versioned entries of kernel sources because I don't want portage to clean them up when a new one is available, a versioned postgresql, because I don't want to bother with migrating to a newer newer version.
What's wrong with the things that should not be there? Well, they hold on on other things that should not be on your system an sooner or later they'll clash with something else that needs a newer version of those things that are held upon by the things that should not be there. This can also lead to unexpected package version resolutions, I suspect like the issue you were having before resorting to backups.
So what you should do is read the thread pietinger posted and either use my script or other script for cleaning up world. It'll just see what things will not be cleaned even when they are removed from world and will give you a world file with only the necessary things, without unmerging anything.
But pay specific attention to lines containing colon. Those are the versioned entries. See if you can remember why they are there. They are usually there for a reason, as I mentioned above. You should be able to remember.
NOTE: world file and world set are two different things. World set is what we refer to with @world. It's the set of all packages emerged on the system including the dependencies what's not. World file is what record what you personally want on your system. We say world for short and it's context dependent whether we mean @world. For example almost everybody knows that full world update pertains to @world.
There are user sets, which are files with package names stored in /etc/portage/sets which you can refer to as @<the name of the file>, just like world. They give you a way to organize your packages. For example my desktop stuff is in @desktop (/etc/portage/sets/desktop file), programming in @programming et.c.
Here's something to read: [url]https://wiki.gentoo.org/wiki/World_set_(Portage)[/url]
Best Regards,
Georgi
Best Regards,
Georgi |
|
Back to top |
|
|
saski4711 Apprentice
Joined: 24 Jun 2004 Posts: 202
|
Posted: Mon Jun 10, 2024 3:03 pm Post subject: |
|
|
logrusx wrote: | saski4711 wrote: |
Hi Georgi,
thx for the explanation. Well, I took a shortcut so to speak by using a backup from late april and performing the python migration from there. My system is still busy with the llvm/clang sh*t but the migration to python 3.12 went through without a hitch and I was able to safely unmerge python 3.11 so I guess I'm good now. What makes me nervous is the world pollution you mentioned. I don't understand what that means. Could you please elaborate on what is not supposed to be there and why? My installtion is over 12 years old maybe there is still something left over from the past?
About the cleanup_world.sh I'm a little fuzzy on what it's supposed to do. Is there a Wiki that explains that in more detail?
Anyway thanks a bunch you your help
Cheers
Saski |
I'm glad you were able to find a solution although you could have got away with less compilation.
World pollution is when things that should not be in world are there. World should contain only packages you explicitly emerged to serve some purpose. I think I mentioned above they must be packages you use like firefox, gnome, kde, fonts. Things that will not be pulled in r will be cleaned up but they still serve a purpose if installed. What should not be there is their dependencies, things like libraries. For example I saw glibc there which should be pulled in by gcc and plenty of libs. I also saw versioned entries. Sometimes you desire specific version, for example I have a few versioned entries of kernel sources because I don't want portage to clean them up when a new one is available, a versioned postgresql, because I don't want to bother with migrating to a newer newer version.
What's wrong with the things that should not be there? Well, they hold on on other things that should not be on your system an sooner or later they'll clash with something else that needs a newer version of those things that are held upon by the things that should not be there. This can also lead to unexpected package version resolutions, I suspect like the issue you were having before resorting to backups.
So what you should do is read the thread pietinger posted and either use my script or other script for cleaning up world. It'll just see what things will not be cleaned even when they are removed from world and will give you a world file with only the necessary things, without unmerging anything.
But pay specific attention to lines containing colon. Those are the versioned entries. See if you can remember why they are there. They are usually there for a reason, as I mentioned above. You should be able to remember.
NOTE: world file and world set are two different things. World set is what we refer to with @world. It's the set of all packages emerged on the system including the dependencies what's not. World file is what record what you personally want on your system. We say world for short and it's context dependent whether we mean @world. For example almost everybody knows that full world update pertains to @world.
There are user sets, which are files with package names stored in /etc/portage/sets which you can refer to as @<the name of the file>, just like world. They give you a way to organize your packages. For example my desktop stuff is in @desktop (/etc/portage/sets/desktop file), programming in @programming et.c.
Here's something to read: [url]https://wiki.gentoo.org/wiki/World_set_(Portage)[/url]
Best Regards,
Georgi
Best Regards,
Georgi |
Hi Georgi,
all right thank you so much for the excellent explanation. That helped me a lot to understand things . One more question though: If I understand your bash script right, emerge will search for installed packages that it will eventually unmerge if told so, right? When it prints "These are the packages that would be unmerged" your script will put the package entry into the "new" world file because this package is actually installed. But this will also copy all those dependencies that are not supposed to be in there (like glibc), right? So the script will only get rid of all package entries that do no longer exist. I'll take a closer look at pietinger's thread maybe this explain it.
Again many thx for your insights.
Cheers,
Saski |
|
Back to top |
|
|
logrusx Advocate
Joined: 22 Feb 2018 Posts: 2432
|
Posted: Mon Jun 10, 2024 3:53 pm Post subject: |
|
|
saski4711 wrote: | But this will also copy all those dependencies that are not supposed to be in there (like glibc), right? So the script will only get rid of all package entries that do no longer exist.
Cheers,
Saski |
No. It runs with --pretend, which meant it won't actually do anything. If after running deplcean on an entry from old world there's nothing to be cleaned, that means that entry is a dependency of something else and can safely be discarded. If it causes portage to output a list of packages to be removed, then it needs to stay. This is the logic. When it identifies all entries that need to stay it'll put them in the new world file. It'll actually backup your old file as world-previous. After it finishes, emerge --depclean --ask should not suggest any package cleanups.
Best Regards,
Georgi |
|
Back to top |
|
|
saski4711 Apprentice
Joined: 24 Jun 2004 Posts: 202
|
Posted: Mon Jun 10, 2024 6:07 pm Post subject: |
|
|
logrusx wrote: | saski4711 wrote: | But this will also copy all those dependencies that are not supposed to be in there (like glibc), right? So the script will only get rid of all package entries that do no longer exist.
Cheers,
Saski |
No. It runs with --pretend, which meant it won't actually do anything. If after running deplcean on an entry from old world there's nothing to be cleaned, that means that entry is a dependency of something else and can safely be discarded. If it causes portage to output a list of packages to be removed, then it needs to stay. This is the logic. When it identifies all entries that need to stay it'll put them in the new world file. It'll actually backup your old file as world-previous. After it finishes, emerge --depclean --ask should not suggest any package cleanups.
Best Regards,
Georgi |
Okay so I ran the script but put the outputfiles into /tmp just for testing. the newly created world looks like this:
Code: |
app-admin/conky
app-admin/sudo
app-arch/deb2targz
app-arch/p7zip
app-arch/rpm2targz
app-arch/unrar
app-arch/zip
app-eselect/eselect-python
app-eselect/eselect-repository
app-misc/neofetch
app-misc/screen
app-portage/gentoolkit
app-text/docbook-sgml-dtd
app-text/tree
dev-debug/gdb
dev-debug/valgrind
dev-lang/lua
dev-lang/lua:5.1
dev-lang/mujs
dev-libs/appstream
dev-libs/atk
dev-libs/dbus-glib
dev-libs/gumbo
dev-libs/libtracefs
dev-python/pip
dev-python/pyserial
dev-python/python-dotenv
dev-python/retrying
dev-python/tomli
dev-util/gtk-doc
gnome-base/gvfs
gnome-extra/nm-applet
gui-libs/libhandy
lxde-base/lxrandr
media-fonts/corefonts
media-fonts/dejavu
media-fonts/font-adobe-100dpi
media-fonts/freefonts
media-gfx/feh
media-gfx/imagemagick
media-gfx/mypaint-brushes
media-gfx/pngcrush
media-libs/audiofile
media-libs/freeimage
media-libs/ftgl
media-libs/gegl
media-libs/gexiv2
media-libs/libass
media-libs/libid3tag
media-libs/libmypaint
media-libs/libplacebo
media-libs/libsamplerate
media-libs/libsfml
media-libs/libva-intel-media-driver
media-libs/libvpx
media-libs/opusfile
media-libs/portaudio
media-libs/sdl2-net
media-sound/alsa-utils
media-sound/mpg123
media-sound/streamripper
media-video/ffmpeg
media-video/libva-utils
net-analyzer/netcat
net-analyzer/traceroute
net-firewall/nftables
net-libs/libetpan
net-libs/libpcap
net-libs/neon
net-libs/rpcsvc-proto
net-misc/ntp
net-misc/whois
net-print/cups-meta
net-print/hplip
net-vpn/networkmanager-openvpn
net-vpn/wireguard-tools
net-wireless/bluez
net-wireless/iw
sys-apps/dmidecode
sys-apps/ethtool
sys-apps/gptfdisk
sys-apps/hdparm
sys-apps/input-utils
sys-apps/lm-sensors
sys-apps/nvme-cli
sys-apps/smartmontools
sys-apps/usbutils
sys-block/parted
sys-boot/grub
sys-fs/dosfstools
sys-fs/f2fs-tools
sys-fs/fuse
sys-fs/ntfs3g
sys-kernel/dracut
sys-libs/ncurses-compat
sys-libs/zlib-ng
sys-power/acpid
sys-power/cpupower
sys-process/htop
sys-process/lsof
www-misc/profile-sync-daemon
x11-apps/setxkbmap
x11-apps/xbacklight
x11-apps/xclock
x11-apps/xdm
x11-apps/xfontsel
x11-apps/xhost
x11-apps/xinput
x11-apps/xsetroot
x11-libs/libXScrnSaver
x11-libs/libXpresent
x11-misc/arandr
x11-misc/notification-daemon
x11-misc/numlockx
x11-misc/xcalib
x11-terms/xterm
x11-wm/twm
|
Does this look good?
So I went ahead and replaced the /var/lib/world and ran emerge --ask --depclean. The result is not quite what I've expected since I definately do not want xorg-server and its components to be removed:
Code: |
>>> Calculating removal order...
>>> These are the packages that would be unmerged:
x11-drivers/xf86-input-libinput
selected: 1.4.0
protected: none
omitted: none
dev-libs/libinput
selected: 1.26.0
protected: none
omitted: none
sys-libs/mtdev
selected: 1.1.7
protected: none
omitted: none
dev-libs/libevdev
selected: 1.13.2
protected: none
omitted: none
x11-base/xorg-server
selected: 9999
protected: none
omitted: none
x11-libs/libxcvt
selected: 0.1.2
protected: none
omitted: none
x11-libs/libXfont2
selected: 2.0.6-r1
protected: none
omitted: none
x11-base/xorg-drivers
selected: 9999
protected: none
omitted: none
x11-apps/xkbcomp
selected: 1.4.7
protected: none
omitted: none
x11-apps/iceauth
selected: 1.0.10
protected: none
omitted: none
gui-libs/display-manager-init
selected: 1.1.2
protected: none
omitted: none
All selected packages: =x11-base/xorg-drivers-9999 =x11-libs/libXfont2-2.0.6-r1 =x11-apps/iceauth-1.0.10 =dev-libs/libevdev-1.13.2 =x11-apps/xkbcomp-1.4.7 =x11-base/xorg-server-9999 =sys-libs/mtdev-1.1.7 =gui-libs/display-manager-init-1.1.2 =x11-libs/libxcvt-0.1.2 =dev-libs/libinput-1.26.0 =x11-drivers/xf86-input-libinput-1.4.0
>>> 'Selected' packages are slated for removal.
>>> 'Protected' and 'omitted' packages will not be removed.
Would you like to unmerge these packages? [Yes/No]
|
Is this because nothing depends on xorg-server? I use an out-of-tree installation for my WM.
Cheers
Saski |
|
Back to top |
|
|
logrusx Advocate
Joined: 22 Feb 2018 Posts: 2432
|
Posted: Mon Jun 10, 2024 8:02 pm Post subject: |
|
|
saski4711 wrote: |
Okay so I ran the script but put the outputfiles into /tmp just for testing. the newly created world looks like this:
Does this look good? |
I'll leave this to be commented by people who feel more comfortable with that.
saski4711 wrote: | So I went ahead and replaced the /var/lib/world and ran emerge --ask --depclean. The result is not quite what I've expected since I definately do not want xorg-server and its components to be removed:
Is this because nothing depends on xorg-server? I use an out-of-tree installation for my WM. |
Yes. Some things you need to explicitly emerge with --noreplace param. This will only record them in world file, will not recompile them.
In the case of xorg, people usually have a desktop environment or something that pulls it in, but sometimes it may be headless server or something that does not explicitly require xorg and yet you want it to be available. For example you might want to connect to a remote system or something.
Best Regards,
Georgi |
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 5110 Location: Bavaria
|
Posted: Mon Jun 10, 2024 10:10 pm Post subject: |
|
|
saski4711,
Yes, because of your out-of-tree installation of a WM portage does not know these dependencies to this WM.
As @logrusx already said, do an "emerge -n xorg-server" and then check again with "emerge -cp". Add also with "-n" other packages until your "emerge -cp" does not want to delete anything ... THEN your world-file is clean _________________ https://wiki.gentoo.org/wiki/User:Pietinger |
|
Back to top |
|
|
saski4711 Apprentice
Joined: 24 Jun 2004 Posts: 202
|
Posted: Tue Jun 11, 2024 7:09 am Post subject: |
|
|
pietinger wrote: | saski4711,
Yes, because of your out-of-tree installation of a WM portage does not know these dependencies to this WM.
As @logrusx already said, do an "emerge -n xorg-server" and then check again with "emerge -cp". Add also with "-n" other packages until your "emerge -cp" does not want to delete anything ... THEN your world-file is clean |
Understood. And again thanks guys for the great support! |
|
Back to top |
|
|
logrusx Advocate
Joined: 22 Feb 2018 Posts: 2432
|
Posted: Tue Jun 11, 2024 7:19 am Post subject: |
|
|
saski4711 wrote: | pietinger wrote: | saski4711,
Yes, because of your out-of-tree installation of a WM portage does not know these dependencies to this WM.
As @logrusx already said, do an "emerge -n xorg-server" and then check again with "emerge -cp". Add also with "-n" other packages until your "emerge -cp" does not want to delete anything ... THEN your world-file is clean ;-) |
Understood. And again thanks guys for the great support! :) |
You're welcome!
Did this whole exercise solve your initial problem?
Best Regards,
Georgi |
|
Back to top |
|
|
saski4711 Apprentice
Joined: 24 Jun 2004 Posts: 202
|
Posted: Tue Jun 11, 2024 8:34 am Post subject: |
|
|
logrusx wrote: | saski4711 wrote: | pietinger wrote: | saski4711,
Yes, because of your out-of-tree installation of a WM portage does not know these dependencies to this WM.
As @logrusx already said, do an "emerge -n xorg-server" and then check again with "emerge -cp". Add also with "-n" other packages until your "emerge -cp" does not want to delete anything ... THEN your world-file is clean |
Understood. And again thanks guys for the great support! |
You're welcome!
Did this whole exercise solve your initial problem?
Best Regards,
Georgi |
Hi Georgi,
yes it did and I've learned quite a lot in the process. Well, actually I don't know the cause of the root-issue but by restoring an older backup and updating from there solved it and with a slick world file I'm confident I won't hit more snags anytime soon.
Cheers,
Saski |
|
Back to top |
|
|
logrusx Advocate
Joined: 22 Feb 2018 Posts: 2432
|
Posted: Tue Jun 11, 2024 9:04 am Post subject: |
|
|
saski4711 wrote: | logrusx wrote: | saski4711 wrote: | pietinger wrote: | saski4711,
Yes, because of your out-of-tree installation of a WM portage does not know these dependencies to this WM.
As @logrusx already said, do an "emerge -n xorg-server" and then check again with "emerge -cp". Add also with "-n" other packages until your "emerge -cp" does not want to delete anything ... THEN your world-file is clean ;-) |
Understood. And again thanks guys for the great support! :) |
You're welcome!
Did this whole exercise solve your initial problem?
Best Regards,
Georgi |
Hi Georgi,
yes it did and I've learned quite a lot in the process. Well, actually I don't know the cause of the root-issue but by restoring an older backup and updating from there solved it and with a slick world file I'm confident I won't hit more snags anytime soon.
Cheers,
Saski |
Well, dependency resolution is like clockwork. You turn one wheel and the whole system gets into completely new state. You had something, say X in your world file that until prior to the issue you hit was completely satisfied by something else, but after the sync that something else, say current version of Y went away and got a version bump which no longer satisfied X. The dependency graph had to be recalculated and it happened so that, my guess is an older version of Y, rather than newer one had to satisfy X and this way pulling back in python 3.11. It's complex and you either need to investigate right away precisely what happened or rely on intuitive, abstract guesses like the one I made above.
BTW, do you remember why you have lua:5.1?
Best Regards,
Georgi |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|