$ virt-manager Traceback (most recent call last): File "/usr/bin/virt-manager", line 6, in <module> from virtManager import virtmanager File "/usr/share/virt-manager/virtManager/virtmanager.py", line 13, in <module> import gi ModuleNotFoundError: No module named 'gi' # emerge app-emulation/virt-manager -pvq [ebuild R ] app-emulation/virt-manager-5.0.0 USE="gui policykit sasl" PYTHON_SINGLE_TARGET="python3_12 -python3_10 -python3_11 -python3_13" # emerge --info =app-emulation/virt-manager-5.0.0 Portage 3.0.66.1 (python 3.13.0-final-0, default/linux/amd64/23.0/desktop/gnome/systemd, gcc-14, glibc-2.40-r5, 6.12.1-gentoo-amd64 x86_64) ================================================================= System Settings ================================================================= System uname: Linux-6.12.1-gentoo-amd64-x86_64-13th_Gen_Intel-R-_Core-TM-_i7-1360P-with-glibc2.40 KiB Mem: 65390776 total, 37040636 free KiB Swap: 8388604 total, 8388604 free Timestamp of repository gentoo: Fri, 29 Nov 2024 10:30:00 +0000 Head commit of repository gentoo: d05810f8decd989287e6f5a25138c966e8161546 Timestamp of repository HomeAssistantRepository: Fri, 22 Nov 2024 20:34:23 +0000 Head commit of repository HomeAssistantRepository: 3504bee2755902d4deca9b69baa069503be30969 Head commit of repository brave-overlay: 1ed453730611099e54d7bbcb964a19b96469f179 Timestamp of repository darkelf: Tue, 08 Oct 2024 15:51:07 +0000 Head commit of repository darkelf: 7acaf61e3b6a9a38f7b99c186cee887aa7dd0210 Timestamp of repository elementary: Fri, 22 Nov 2024 20:33:57 +0000 Head commit of repository elementary: 176f5725bd018088d0cc4c3c676b8c5a111b2717 Timestamp of repository guru: Thu, 28 Nov 2024 22:33:17 +0000 Head commit of repository guru: e1df365d86143ca5e51fe6c4914cc6b189d025b0 Timestamp of repository inode64-overlay: Fri, 29 Nov 2024 09:18:33 +0000 Head commit of repository inode64-overlay: eaa08894c748cf05994840f5743428ea7f8173e9 Timestamp of repository kde: Thu, 28 Nov 2024 22:48:13 +0000 Head commit of repository kde: 40d6012772ddd0bfb1d0dc82e650a5aacc77f427 Head commit of repository kodi-overlay: 336430de12ca63e2e10896e61adbac45074d2688 Timestamp of repository pentoo: Tue, 26 Nov 2024 07:20:38 +0000 Head commit of repository pentoo: f499c6392eb4a01180c57def86f710e32ae3e25b Timestamp of repository torbrowser: Tue, 26 Nov 2024 22:33:21 +0000 Head commit of repository torbrowser: 0e34cfc3557ee3ab8fad2d31f9ca29d7eef15350 sh bash 5.2_p37 ld GNU ld (Gentoo 2.43 p3) 2.43.1 ccache version 4.10.2 [enabled] app-misc/pax-utils: 1.3.8::gentoo app-shells/bash: 5.2_p37::gentoo dev-build/autoconf: 2.13-r8::gentoo, 2.71-r7::gentoo, 2.72-r1::gentoo dev-build/automake: 1.16.5-r2::gentoo, 1.17-r1::gentoo dev-build/cmake: 3.31.1::gentoo dev-build/libtool: 2.5.4::gentoo dev-build/make: 4.4.1-r100::gentoo dev-build/meson: 1.6.0::gentoo dev-java/java-config: 2.3.4::gentoo dev-lang/perl: 5.40.0::gentoo dev-lang/python: 3.10.15_p2::gentoo, 3.11.10_p1::gentoo, 3.12.7_p1::gentoo, 3.13.0::gentoo, 3.13.0-r100::gentoo dev-lang/rust: 1.82.0-r100::gentoo dev-lang/rust-bin: 1.71.1-r100::gentoo, 1.77.1-r100::gentoo, 1.81.0-r100::gentoo, 1.82.0-r100::gentoo dev-util/ccache: 4.10.2-r1::gentoo sys-apps/baselayout: 2.17::gentoo sys-apps/sandbox: 2.40::gentoo sys-apps/systemd: 256.8::gentoo sys-devel/binutils: 2.43-r2::gentoo sys-devel/binutils-config: 5.5.2::gentoo sys-devel/clang: 15.0.7-r3::gentoo, 16.0.6::gentoo, 17.0.6::gentoo, 18.1.8-r6::gentoo, 19.1.4::gentoo sys-devel/gcc: 12.4.1_p20241114::gentoo, 13.3.1_p20241115::gentoo, 14.2.1_p20241116::gentoo sys-devel/gcc-config: 2.11::gentoo sys-devel/lld: 15.0.7::gentoo, 18.1.8::gentoo, 19.1.3::gentoo sys-devel/llvm: 15.0.7-r7::gentoo, 16.0.6-r5::gentoo, 17.0.6-r3::gentoo, 18.1.8-r6::gentoo, 19.1.4::gentoo sys-kernel/linux-headers: 6.11::gentoo (virtual/os-headers) sys-libs/glibc: 2.40-r5::gentoo Repositories: gentoo location: /var/db/repos/gentoo sync-type: rsync sync-uri: rsync://gentoo.kopylovs.net/gentoo-portage priority: -1000 volatile: False sync-rsync-verify-jobs: 1 sync-rsync-verify-metamanifest: yes sync-rsync-extra-opts: sync-rsync-verify-max-age: 3 HomeAssistantRepository location: /var/db/repos/HomeAssistantRepository sync-type: git sync-uri: https://github.com/gentoo-mirror/HomeAssistantRepository.git masters: gentoo volatile: False brave-overlay location: /var/db/repos/brave-overlay sync-type: git sync-uri: https://gitlab.com/jason.oliveira/brave-overlay.git masters: gentoo volatile: False darkelf location: /var/db/repos/darkelf sync-type: git sync-uri: https://github.com/gentoo-mirror/darkelf.git masters: gentoo volatile: False elementary location: /var/db/repos/elementary sync-type: git sync-uri: https://github.com/gentoo-mirror/elementary.git masters: gentoo volatile: False guru location: /var/db/repos/guru sync-type: git sync-uri: https://github.com/gentoo-mirror/guru.git masters: gentoo volatile: False inode64-overlay location: /var/db/repos/inode64-overlay sync-type: git sync-uri: https://github.com/gentoo-mirror/inode64-overlay.git masters: gentoo volatile: False kde location: /var/db/repos/kde sync-type: git sync-uri: https://github.com/gentoo-mirror/kde.git masters: gentoo volatile: False kodi-overlay location: /var/db/repos/kodi-overlay sync-type: git sync-uri: https://github.com/kodi-overlay/kodi-overlay.git masters: gentoo volatile: False pentoo location: /var/db/repos/pentoo sync-type: git sync-uri: https://github.com/gentoo-mirror/pentoo.git masters: gentoo volatile: False torbrowser location: /var/db/repos/torbrowser sync-type: git sync-uri: https://github.com/gentoo-mirror/torbrowser.git masters: gentoo volatile: False Binary Repositories: gentoobinhost priority: 1 sync-uri: https://distfiles.gentoo.org/releases/amd64/binpackages/23.0/x86-64 ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="* -@EULA android AnyDesk-TOS geekbench google-chrome Intel-SDP microsoft-edge Microsoft-vscode NVIDIA-CUDA NVIDIA-SDK OPERA-2018 PUEL-12 RAR TeamViewer Vivaldi" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=native -O2 -pipe -fomit-frame-pointer" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /etc/stunnel/stunnel.conf /opt/sonar/conf /opt/zookeeper-bin/conf /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt /var/bind" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php8.2/ext-active/ /etc/php/apache2-php8.3/ext-active/ /etc/php/cgi-php8.2/ext-active/ /etc/php/cgi-php8.3/ext-active/ /etc/php/cli-php8.2/ext-active/ /etc/php/cli-php8.3/ext-active/ /etc/php/fpm-php8.2/ext-active/ /etc/php/fpm-php8.3/ext-active/ /etc/php/phpdbg-php8.2/ext-active/ /etc/php/phpdbg-php8.3/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-march=native -O2 -pipe -fomit-frame-pointer" DISTDIR="/var/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="-march=native -O2 -pipe -fomit-frame-pointer" 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 strict-keepdir unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync warn-on-large-env xattr" FFLAGS="-march=native -O2 -pipe -fomit-frame-pointer" GENTOO_MIRRORS="http://mirror.isoc.org.il/pub/gentoo/ https://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/" LANG="en_US.utf8" LC_ALL="en_US.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs" LEX="flex" MAKEOPTS="-j10" 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="X a52 aac accessibility acl acpi alsa amd64 audit bash-completion berkdb bidi bluetooth branding brotli btrfs bzip2 cairo cdda cdr cet cli colord crypt cryptsetup cuda cups curl dbus designer device-mapper doc dri drm dts dvd dvdr eds emacs encode evdev evo examples exif experimental ffmpeg flac fortran fuse gamepad gdbm gdk-pixbuf gif git gmp gnome gnome-keyring gnome-online-accounts gnome-shell gnutls go gpg gpm gstreamer gtk gtk-doc gui hscolour html http iconv icu idn introspection iodbc ios ipv6 jack java jemalloc joystick jpeg json kde kerberos keyring kf6compat lcms ldap libnotify libtirpc lm-sensors lua lvm lz4 lzma lzo mad man mbedtls mng mongodb mp3 mp4 mpeg mpi multilib multimedia mysql nas nautilus ncurses netlink network networkmanager nfs nls nss nvenc odbc offensive ogg opencl opengl openmp openssl pam pango pcap pcre pdf perl pkcs11 plasma plugins png policykit postgres ppds pulseaudio python qml qt5 qt6 readline redis samba sasl screencast sdl seccomp semantic-desktop snmp sound source speech spell sqlite ssl startup-notification svg symlink sysprof systemd tcl telemetry test-rust threads tiff tk tools tpm tracker truetype udev udisks unicode upower usb utils v4l vaapi vala vdpau vim-syntax vnc vorbis vulkan wayland webengine webkit webp wifi wxwidgets x264 xattr xcb xft xinerama xml xv xvid yaml zeroconf zip zlib zsh-completion zstd" ABI_X86="64 32" ADA_TARGET="gcc_12" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_core authn_dbd authn_dbm authn_file authn_socache authz_core authz_dbd authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex brotli cache cgi cgid charset_lite dav dav_fs dav_lock dbd deflate dir env expires ext_filter file_cache filter headers http2 ident imagemap include info log_config logio mime mime_magic negotiation ratelimit reqtimeout rewrite session session_cookie session_crypto session_dbd setenvif socache_shmcb speling status substitute tls unique_id unixd userdir usertrack version vhost_alias watchdog xml2enc" APACHE2_MPMS="worker" CALLIGRA_FEATURES="karbon sheets stage words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt rdrand sha sse sse2 sse3 sse4_1 sse4_2 ssse3 vpclmulqdq" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax navcom oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tsip tripmate tnt ublox" GRUB_PLATFORMS="efi-64" GUILE_SINGLE_TARGET="3-0" GUILE_TARGETS="3-0" INPUT_DEVICES="evdev joystick libinput" KERNEL="linux" L10N="en en-US he ru" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LIBREOFFICE_EXTENSIONS="nlpsolver scripting-beanshell scripting-javascript wiki-publisher" LUA_SINGLE_TARGET="lua5-4" LUA_TARGETS="lua5-1 lua5-4" NGINX_MODULES_HTTP="access addition auth_basic auth_ldap auth_pam auth_request autoindex brotli browser charset dav dav_ext echo empty_gif fancyindex fastcgi flv geo geoip geoip2 grpc gunzip gzip image_filter javascript limit_conn limit_req map memc memcached metrics mirror mp4 perl proxy push_stream referer rewrite scgi split_clients ssi stub_status upload_progress upstream_check upstream_hash upstream_ip_hash upstream_keepalive upstream_least_conn upstream_zone userid uwsgi vhost_traffic_status vod xslt" NGINX_MODULES_MAIL="imap pop3 smtp" NGINX_MODULES_STREAM="access geo geoip geoip2" OFFICE_IMPLEMENTATION="libreoffice" PERL_FEATURES="ithreads quadmath" PHP_TARGETS="php8-2 php8-3" POSTGRES_TARGETS="postgres16 postgres17" PYTHON_SINGLE_TARGET="python3_13" PYTHON_TARGETS="python3_12 python3_10 python3_11 python3_13 python3_13t" RUBY_TARGETS="ruby31 ruby32 ruby33" UWSGI_PLUGINS="alarm_curl cache carbon cheaper_busyness clock_monotonic clock_realtime corerouter curl_cron dumbloop echo emperor_amqp emperor_pg emperor_zeromq fastrouter forkptyrouter geoip graylog2 http ldap legion_cache_fetch logcrypto logfile logpipe logsocket mongodblog nagios notfound pam ping rados rawrouter redislog router_access router_basicauth router_cache router_expires router_hash router_http router_memcached router_metrics router_redirect router_redis router_rewrite router_spnego router_static router_uwsgi router_xmldir rpc rrdtool rsyslog signal spooler sqlite ssi sslrouter stats_pusher_statsd symcall syslog systemd_logger transformation_chunked transformation_gzip transformation_offload transformation_tofile transformation_toupper tuntap ugreen webdav xattr xslt zabbix zergpool" VIDEO_CARDS="intel fbdev vesa nvidia" 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, 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 ================================================================= Package Settings ================================================================= app-emulation/virt-manager-5.0.0::gentoo was built with the following: USE="gui policykit sasl" ABI_X86="(64)" PYTHON_SINGLE_TARGET="python3_12 -python3_10 -python3_11 -python3_13"
Ah, I think I know where the problem is: $ head -n1 $(which virt-manager) #!/usr/bin/env python3 Now, unfortunately calling python_fix_shebang in src_prepare() is not gonna cut it because virt-manager "binary" (and others) are generated using the following script [1] which explicitly sets shebang to "#!/usr/bin/env python3" regardless of whats in the corresponding source file. 1: https://github.com/virt-manager/virt-manager/blob/main/scripts/make_bin_wrapper.py I think I know how to fix this. Give me a second.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=83f72c94f1b802a9ac38973d27b2303ac16a0b90 commit 83f72c94f1b802a9ac38973d27b2303ac16a0b90 Author: Michal Privoznik <michal.privoznik@gmail.com> AuthorDate: 2024-12-01 07:59:13 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2024-12-01 10:41:40 +0000 app-emulation/virt-manager: Fix shebang of installed files Previously, app-emulation/virt-manager was installed using distutils which automatically fixed shebang on installed python scripts. Then virt-manager switched to meson, and our ebuilds simply started inheriting meson instead of distutils-r1. But this alone is not enough as shebangs are now broken. Fortunately, there's python_fix_shebang which can be called to fix shebangs and in ideal world this function would be called in src_prepare() but this is not the case. virt-manager and other files are generated at compile time with also too generic shebang [1]. Therefore, let's do that at the end of src_install(). 1: https://github.com/virt-manager/virt-manager/blob/main/scripts/make_bin_wrapper.py Fixes: c5ca13d818262729e691e4d23487cb427b50665d Closes: https://bugs.gentoo.org/945329 Signed-off-by: Michal Privoznik <michal.privoznik@gmail.com> Signed-off-by: Sam James <sam@gentoo.org> app-emulation/virt-manager/virt-manager-5.0.0.ebuild | 6 ++++++ app-emulation/virt-manager/virt-manager-9999.ebuild | 6 ++++++ 2 files changed, 12 insertions(+)