This is the first ebuild I see with python_single_target_python3_12. I still need python_single_target_python3_11 because of Bug 909973 !!! The ebuild selected to satisfy "dev-cpp/benchmark" has unmet requirements. - dev-cpp/benchmark-1.9.0::gentoo USE="exceptions tools -doc -libcxx -libpfm -lto -test" ABI_X86="(64) -32 (-x32)" PYTHON_SINGLE_TARGET="-python3_12" The following REQUIRED_USE flag constraints are unsatisfied: python_single_target_python3_12 The above constraints are a subset of the following complete expression: exactly-one-of ( python_single_target_python3_12 ) If I change the ebuild to python3_11 building it works without warnings or errors. Portage 3.0.65-32+ga62faf99d (python 3.12.5-final-0, default/linux/amd64/23.0, gcc-14, glibc-2.40, 6.11.0-rc4 x86_64) ================================================================= System Settings ================================================================= System uname: Linux-6.11.0-rc4-x86_64-AMD_Athlon-tm-_II_X2_240_Processor-with-glibc2.40 KiB Mem: 4026292 total, 1145860 free KiB Swap: 16029688 total, 15652324 free Timestamp of repository kde: Mon, 19 Aug 2024 18:34:09 +0000 Head commit of repository kde: fae57fad94a9eaa3e90276966aebf5cfa59541bf Timestamp of repository poly-c: Mon, 19 Aug 2024 10:39:47 +0000 Timestamp of repository qt: Mon, 19 Aug 2024 18:34:00 +0000 Head commit of repository qt: d7522f320d29c3b8a23df6132ae258eb3d93915c Timestamp of repository gentoo: Tue, 20 Aug 2024 08:34:13 +0000 Head commit of repository gentoo: dd7903b22a6824d1d9571dd1d1d0ab1d8238cda3 Timestamp of repository guru: Mon, 19 Aug 2024 18:34:04 +0000 Head commit of repository guru: 3ebfee35c5abd30547d4e4d7178761d3eee92c17 sh bash 5.2_p32 ld GNU ld (Gentoo 2.43.1 p1) 2.43.1 ccache version 4.10.2 [enabled] app-misc/pax-utils: 1.3.7::gentoo app-shells/bash: 5.2_p32::gentoo dev-build/autoconf: 2.13-r8::gentoo, 2.72-r1::gentoo dev-build/automake: 1.17-r1::gentoo dev-build/cmake: 3.30.2::gentoo dev-build/libtool: 2.4.7-r4::gentoo dev-build/make: 4.4.1-r1::gentoo dev-build/meson: 1.5.1::gentoo dev-java/java-config: 2.3.4::gentoo dev-lang/perl: 5.40.0::gentoo dev-lang/python: 3.11.9_p1::gentoo, 3.12.5::gentoo dev-lang/rust-bin: 1.80.1::gentoo dev-util/ccache: 4.10.2::gentoo sys-apps/baselayout: 2.15::gentoo sys-apps/openrc: 0.54.2::gentoo sys-apps/sandbox: 2.39::gentoo sys-devel/binutils: 2.43.1_pre::poly-c sys-devel/binutils-config: 5.5.2::gentoo sys-devel/clang: 18.1.8::gentoo sys-devel/gcc: 14.2.1_p20240817::gentoo sys-devel/gcc-config: 2.11::gentoo sys-devel/lld: 18.1.8::gentoo sys-devel/llvm: 18.1.8-r4::gentoo sys-kernel/linux-headers: 6.10::gentoo (virtual/os-headers) sys-libs/glibc: 2.40::gentoo Repositories: kde location: /var/db/repos/kde sync-type: git sync-uri: https://github.com/gentoo-mirror/kde.git masters: gentoo priority: -1001 volatile: False overlay_jl location: /var/db/repos/overlay_jl masters: gentoo priority: -1001 volatile: False poly-c location: /var/db/repos/poly-c sync-type: rsync sync-uri: rsync://rsync.gentoofan.org/poly-c masters: gentoo priority: -1001 volatile: False sync-rsync-extra-opts: qt location: /var/db/repos/qt sync-type: git sync-uri: https://github.com/gentoo-mirror/qt.git masters: gentoo priority: -1001 volatile: False gentoo location: /var/db/repos/gentoo sync-type: git sync-uri: https://github.com/gentoo-mirror/gentoo.git priority: -1000 volatile: False guru location: /var/db/repos/guru sync-type: git sync-uri: https://github.com/gentoo-mirror/guru.git masters: gentoo volatile: False ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="*" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=native -mtune=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" CXXFLAGS="-march=native -mtune=native -O2 -pipe" DISTDIR="/var/cache/distfiles" EMERGE_DEFAULT_OPTS="--autounmask=y --autounmask-write=y --keep-going --quiet-build=y --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_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME" FCFLAGS="-march=native -mtune=native -O2 -pipe" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg-live ccache 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="-march=native -mtune=native -O2 -pipe" GENTOO_MIRRORS="http://ftp.halifax.rwth-aachen.de/gentoo/ https://mirrors.dotsrc.org/gentoo/ https://mirror.leaseweb.com/gentoo/" LANG="de_DE.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs" LEX="flex" LINGUAS="de" MAKEOPTS="-j2" 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="/bin/bash" USE="a52 aac aacplus aacs aalib acl acpi activefilter admin adns aften alsa amd64 amdgpu ap apm apng archive arping atahpt atapromise audiofile automount avif bash bazaar bdplus bluray boost btrfs bzip2 cairo ccache cdda cddb cdio cdr cdrom chm chroot cjk cli client colordiff colorpicker compress corefonts cpio cpuload crypt css cue cups curl custom-modes d3d9 dav1d dbus declarative designer dga dhcp dom dri dri3 drm dts duktape dump dvb dvd dvdnav eap eap-sim eap-tls ebook egl elogind encode enscript epub equalizer exif extensions extras faac faad farstream fat fax fbcon fdformat fdk ffmpeg fftw firefox flac flashrom fluidsynth fontconfig foomatic freedoom ft2232-spi ftd2xx ftdi ftp fullscreen fuse gadu gd gdk-pixbuf gegl geoip gif git gpg gphoto2 graphite grub gstreamer gtk gtk4 gui gusb gzip haptic hddtemp hdf hdf5 hid highlight history hpcups hpijs http http2 http3 iconv icu id3tag idn imagemagick initramfs inotify introspection ipc ipod ipv6 iso jack jbootstrap jit jpeg jpeg2k jpegxl kde keyfinder kiosk ladspa lame lcms legacy-systray lensfun libaom libass libcanberra libdrm libei libinput libmpv libnotify libplacebo libproxy librtmp libsamplerate libssh2 libtirpc libv4l libwww linux-mtd linux-spi live lm-sensors logitech logrotate lua lv2 lximage lz4 lzma lzo mad magic man matroska md5sum meanwhile mediatek-i2c-spi mercurial metalink midi mikmod mime minizip mixer mjpeg mmap mms mod modern-top modplug modules-compress mono mount mouse mp3 mp4 mpeg mpeg2 mplayer mstarddc-spi mtp multilib multimedia musepack musicbrainz nano-syntax ncat ncurses network networkmonitor newnet ngspice nls normalize nowlistening nping ntfs ntfsprogs ntp nvidia nvme obex ocr odbc odf offload ogg ogm openal opencl opengl openh264 openmp openssl opus osdmenu otr p2p pam pango panorama parse-clocks pcap pci pcre pcre16 pcre32 pdf pdfimport phonon pipes pipewire pipewire-alsa pkcs11 plasma plugins png policykit postproc postscript powermanagement ppds printsupport privacy projectm pulseaudio pvr python qalculate qdbus qml qrcode qt6 qtkeychain quic quicktime radio rar raw readline realtek-mst-i2c-spi replaygain rtc rtmp rubberband rust rustfmt sbsms scanner screencast screensaver scripttools sdl seccomp secure-delete sensors serial serialport sftp sha512 shorten skins slang smartcard smi sndfile sockets socks socks5 sound sound-server source-highlight speech speex spell spi spirv sql sqlite sqlite3 squashfs ssh ssl staging startup-notification statistics statusnotifier stk stream subtitles sudo svg symlink sync-plugin-portage syslog sysstat system-av1 system-ffmpeg system-harfbuzz system-icu system-jpeg system-libevent system-librnp system-libvpx system-llvm system-png system-protoc system-python-libs system-sqlite system-ssl system-toolchain system-webp system-zlib system-zstd sysv-utils szip taglib test-rust text texteffect tftp themes theora threads thumbnail tiff timidity tracepath translator truetype twolame udev udf udisks unicode upower urlpicpreview usb utils v4l v4l2 vaapi vala vamp vector-icons video videos virtualbox vkd3d vnc vorbis vpx vroot vst vulkan vulkaninfo wad wav wavpack wayland wayland-compositor webp widgets wps wxwidgets x264 x265 xattr xfs xml xvid xwayland yahoo zink zip zlib zstd zvbi" 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="mmx mmxext popcnt sse sse2 sse3 sse4a" CURL_SSL="openssl" 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" GUILE_SINGLE_TARGET="3-0" GUILE_TARGETS="3-0" INPUT_DEVICES="libinput" KERNEL="linux" L10N="de" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LLVM_SLOT="18" LLVM_TARGETS="AMDGPU" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-2" POSTGRES_TARGETS="postgres15" PYTHON_SINGLE_TARGET="python3_11" PYTHON_TARGETS="python3_12 python3_11" RUBY_TARGETS="ruby33" VIDEO_CARDS="radeon 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, INSTALL_MASK, LC_ALL, LD, LFLAGS, LIBTOOL, 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 ================================================================= Package Settings ================================================================= dev-cpp/benchmark-1.9.0::gentoo was built with the following: USE="exceptions tools -doc -libcxx -libpfm -lto -test" ABI_X86="(64) -32 (-x32)" PYTHON_SINGLE_TARGET="python3_11" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg-live ccache config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync 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" dev-lang/python-3.11.9_p1::gentoo was built with the following: USE="ensurepip ncurses readline sqlite ssl -bluetooth -build -debug -examples -gdbm -libedit -pgo -test -tk -valgrind -verify-sig" ABI_X86="(64)" CFLAGS="-march=native -mtune=native -O2 -pipe -fwrapv" CXXFLAGS="-march=native -mtune=native -O2 -pipe -fwrapv" dev-lang/python-3.12.5::gentoo was built with the following: USE="ensurepip ncurses readline sqlite ssl -bluetooth -build -debug -examples -gdbm -libedit -pgo -test -tk -valgrind -verify-sig" ABI_X86="(64)" CFLAGS="-march=native -mtune=native -O2 -pipe -fwrapv" CXXFLAGS="-march=native -mtune=native -O2 -pipe -fwrapv"
wxwidgets has python3.12 support. For clarity PEP517 and python3.12 compat bumps are different bugs. Even so worst case you can enable both python targets in different places (although I admit it gets messy if you have lot). See https://bugs.gentoo.org/929520 for wxwidgets. Still I dont see a clear reason for why python3.11 was omited, I can only speculate the maintainer only whitelisted the version they had tested. Btw you can use PYTHON_COMPAT_OVERRIDE for quick testing as well.
At this point I'd try to override default python with per-package basis, and not try to force an older one to be used system-wide everywhere. But yeah, let's add the old compat back, no big deal.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=87d5b663f1d48f4cc1818555eef6b8b417c56b6b commit 87d5b663f1d48f4cc1818555eef6b8b417c56b6b Author: Joonas Niilola <juippis@gentoo.org> AuthorDate: 2024-08-20 10:47:47 +0000 Commit: Joonas Niilola <juippis@gentoo.org> CommitDate: 2024-08-20 10:47:47 +0000 dev-cpp/benchmark: enable py3.11 Closes: https://bugs.gentoo.org/938237 Signed-off-by: Joonas Niilola <juippis@gentoo.org> dev-cpp/benchmark/benchmark-1.9.0.ebuild | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
The build does not use python when USE=-tools. Maybe make all the python stuff (REQUIRED_USE="${PYTHON_REQUIRED_USE}", ${PYTHON_DEPS}) in the ebuild conditionally to tools.
Doesn't it already? In the original report, USE=tools was used. In the ebuild: RDEPEND=" tools? ( $(python_gen_cond_dep ' dev-python/numpy[${PYTHON_USEDEP}] >=dev-python/scipy-1.10.0[${PYTHON_USEDEP}] ') ${PYTHON_DEPS} ) "
Oh hmm, but also REQUIRED_USE="${PYTHON_REQUIRED_USE}" This seems to be an oversight. e.g. the eclass documentation even calls out: # Example use: # @CODE # REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" # @CODE
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8c7941ef6d72ebd63de340dfa1ec3f57c23b9b8d commit 8c7941ef6d72ebd63de340dfa1ec3f57c23b9b8d Author: Eli Schwartz <eschwartz@gentoo.org> AuthorDate: 2024-08-21 03:48:34 +0000 Commit: Eli Schwartz <eschwartz@gentoo.org> CommitDate: 2024-08-21 03:48:34 +0000 dev-cpp/benchmark: do not require any PYTHON_SINGLE_TARGET without tools We only perform the python-single-r1 dance when `use tools`, and similarly in RDEPEND via USE-conditional dependencies. But REQUIRED_USE was unconditionally done, when it too should have been guarded by the USE flag. Present since the initial implementation of python tool support. Fixes: 6f8ef24af37e572d317fac58ea8eabab64a3f3a8 Bug: https://bugs.gentoo.org/938237 Signed-off-by: Eli Schwartz <eschwartz@gentoo.org> dev-cpp/benchmark/benchmark-1.9.0.ebuild | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
(In reply to Eli Schwartz from comment #5) > Doesn't it already? In the original report, USE=tools was used. > > In the ebuild: > > RDEPEND=" > tools? ( > $(python_gen_cond_dep ' > dev-python/numpy[${PYTHON_USEDEP}] > >=dev-python/scipy-1.10.0[${PYTHON_USEDEP}] > ') > > ${PYTHON_DEPS} > ) > " Yes. I have read the ()brackets wrong. Thank you for fixing the other part. [ebuild R ] dev-cpp/benchmark-1.9.0:0/1::gentoo USE="exceptions -doc -libcxx -libpfm -lto -test -tools" ABI_X86="(64) -32 (-x32)" PYTHON_SINGLE_TARGET="python3_12 -python3_11" Can we guard inherit python-single-r1 also?
(In reply to jospezial from comment #8) > Can we guard inherit python-single-r1 also? I have no real idea what you mean by that. Also I don't understand the summary change (or the fact that the bug has been reopened)?
(In reply to Eli Schwartz from comment #9) > (In reply to jospezial from comment #8) > > Can we guard inherit python-single-r1 also? > > I have no real idea what you mean by that. > > Also I don't understand the summary change (or the fact that the bug has > been reopened)? I suppose jospezial talked about something like `use tools && inherit python-single-r1` which is not possible if I'm not mistaken.
(In reply to Mattéo Rossillol‑‑Laruelle from comment #10) > (In reply to Eli Schwartz from comment #9) > > (In reply to jospezial from comment #8) > > > Can we guard inherit python-single-r1 also? > > > > I have no real idea what you mean by that. > > > > Also I don't understand the summary change (or the fact that the bug has > > been reopened)? > > I suppose jospezial talked about something like `use tools && inherit > python-single-r1` which is not possible if I'm not mistaken. Yes, that is what I meant. I was not sure about the inherit, because in live ebuilds we also have a conditional inherit of git-r3 for example. I was told to not comment on closed bugs some time ago, so took the chance and I reopened. I wanted to edit the summary because now this was about more than one python thing. I had already had another summary in mind. I can live with how the package is for now. Sorry, if I have annoyed someone.
(In reply to jospezial from comment #11) > Yes, that is what I meant. > I was not sure about the inherit, because in live ebuilds we also have a > conditional inherit of git-r3 for example. Metadata invariance does not permit the possibility of conditional logic at global scope. This means you cannot check a USE flag and do different things outside of a function -- instead, certain types of metadata have their own conditional grammar in the form of "useflag? ( ... )". Conditional inherits of git-r3 are different. Those are based on static information (the PV variable comes from the filename) and are used to allow sharing implementation of multiple versions in a single file. Within the context of a single ebuild file, there is nothing conditional since only a filename "benchmark-9999.ebuild" will ever execute the "inherit git-r3" line. This means that use of if [[ ${PV} = *9999 ]]; then # conditional logic goes here fi does not violate any rules, even though basically any other "if" statement would. In particular, "if use tools". (Yes, the use of "if" instead of "&&" is irrelevant here) (In reply to jospezial from comment #11) > I was told to not comment on closed bugs some time ago, so took the chance > and I reopened. > I wanted to edit the summary because now this was about more than one python > thing. I had already had another summary in mind. Commenting on closed bugs with information about the original bug report is fine. Reporting a new, unrelated bug inside of an existing closed bug is probably what people were talking about when they advised that it is best not to comment on closed bugs. I suspect what they actually meant to say is "best not to comment on bugs with information that isn't related to the bug itself". It's fine to comment on this existing closed bug with a comment or question about the commit which references this bug, I suppose. :)