Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 947161 - strange emerge message: Unsupported binary package format from ''
Summary: strange emerge message: Unsupported binary package format from ''
Status: RESOLVED WORKSFORME
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Binary packages support (show other bugs)
Hardware: AMD64 Linux
: Normal minor
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-12-29 11:12 UTC by fcrvincent
Modified: 2024-12-31 16:51 UTC (History)
2 users (show)

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


Attachments
Output of emerge --info (emerge-info.txt,6.53 KB, text/plain)
2024-12-29 11:12 UTC, fcrvincent
Details

Note You need to log in before you can comment on or make changes to this bug.
Description fcrvincent 2024-12-29 11:12:29 UTC
Created attachment 915433 [details]
Output of emerge --info

Emerge on my system works fine however it systematically displays a strange "Unsupported binary package format from ''" message: 

eg:
emerge --ask --verbose --update --deep --changed-use  @world
leads to: 
Local copy of remote index is up-to-date and will be used.
Unsupported binary package format from ''
...

And emerge in debug mode:
[DEBUG] Using selector: EpollSelector
++ whoami
+ [[ root == \r\o\o\t ]]
+ export GNUPGHOME=/etc/portage/gnupg
+ GNUPGHOME=/etc/portage/gnupg
+ LASTRUNFILE=/etc/portage/gnupg/.getuto.last
+ QUIET=1
+ QUIET_GPG=
+ [[ '' == \-\v ]]
+ [[ -n 1 ]]
+ QUIET_GPG=--quiet
+ [[ -f /lib/gentoo/functions.sh ]]
+ [[ -v TERM ]]
+ [[ -n xterm-256color ]]
+ [[ xterm-256color != dumb ]]
+ source /lib/gentoo/functions.sh
++ RC_GOT_FUNCTIONS=yes
++ EINFO_QUIET=no
++ EINFO_VERBOSE=no
++ RC_NOCOLOR=no
++ RC_ENDCOL=yes
++ RC_INDENTATION=
++ RC_DEFAULT_INDENT=2
++ RC_DOT_PATTERN=
++ '[' '!' -t 1 ']'
++ '[' '!' -t 2 ']'
++ COLS=0
++ '[' 0 -eq 0 ']'
++++ stty size
+++ set -- 24 120
+++ printf '120\n'
++ COLS=120
++ '[' -z 120 ']'
++ '[' 120 -gt 0 ']'
++ yesno yes
++ '[' -z yes ']'
++ case "$1" in
++ return 0
++ hash tput
+++ tput cuu1
+++ tput cuf 112                                                                                                       '
++ yesno no
++ '[' -z no ']'
++ case "$1" in
++ return 1
+++ tput bold
++ genfuncs_bold=''
+++ tput sgr0
++ genfuncs_norm=''
+++ tput setaf 1
++ BAD=''
+++ tput setaf 4
++ BRACKET=''
+++ tput setaf 2
++ GOOD=''
+++ tput setaf 6
++ HILITE=''
++ NORMAL=''
+++ tput setaf 3
++ WARN=''
++ unset -v genfuncs_bold genfuncs_norm
+ gpgconf --kill gpg-agent dirmngr
+ set -e
+ mykeyservers=("hkps://keys.openpgp.org" "hkps://keys.gentoo.org")
+ [[ ! -d /etc/portage/gnupg ]]
+ export LC_ALL=C.UTF8
+ LC_ALL=C.UTF8
+ [[ -n 1 ]]
+ getuto_refresh
+ grep -qv ': no user ID'
+ chmod ugo+r /etc/portage/gnupg/trustdb.gpg
+ gpgconf --kill gpg-agent dirmngr

Local copy of remote index is up-to-date and will be used.
Unsupported binary package format from ''
myaction None
myopts {'--debug': True, '--update': True, '--ask': True, '--deep': True, '--reinstall': 'changed-use', '--getbinpkg': True, '--regex-search-auto': 'y', '--verbose': True, '--usepkg': True}
++ whoami
+ [[ root == \r\o\o\t ]]
+ export GNUPGHOME=/etc/portage/gnupg
+ GNUPGHOME=/etc/portage/gnupg
+ LASTRUNFILE=/etc/portage/gnupg/.getuto.last
+ QUIET=1
+ QUIET_GPG=
+ [[ '' == \-\v ]]
+ [[ -n 1 ]]
+ QUIET_GPG=--quiet
+ [[ -f /lib/gentoo/functions.sh ]]
+ [[ -v TERM ]]
+ [[ -n xterm-256color ]]
+ [[ xterm-256color != dumb ]]
+ source /lib/gentoo/functions.sh
++ RC_GOT_FUNCTIONS=yes
++ EINFO_QUIET=no
++ EINFO_VERBOSE=no
++ RC_NOCOLOR=no
++ RC_ENDCOL=yes
++ RC_INDENTATION=
++ RC_DEFAULT_INDENT=2
++ RC_DOT_PATTERN=
++ '[' '!' -t 1 ']'
++ '[' '!' -t 2 ']'
++ COLS=0
++ '[' 0 -eq 0 ']'
++++ stty size
+++ set -- 24 120
+++ printf '120\n'
++ COLS=120
++ '[' -z 120 ']'
++ '[' 120 -gt 0 ']'
++ yesno yes
++ '[' -z yes ']'
++ case "$1" in
++ return 0
++ hash tput
+++ tput cuu1
+++ tput cuf 112                                                                                                       '
++ yesno no
++ '[' -z no ']'
++ case "$1" in
++ return 1
+++ tput bold
++ genfuncs_bold=''
+++ tput sgr0
++ genfuncs_norm=''
+++ tput setaf 1
++ BAD=''
+++ tput setaf 4
++ BRACKET=''
+++ tput setaf 2
++ GOOD=''
+++ tput setaf 6
++ HILITE=''
++ NORMAL=''
+++ tput setaf 3
++ WARN=''
++ unset -v genfuncs_bold genfuncs_norm
+ gpgconf --kill gpg-agent dirmngr
+ set -e
+ mykeyservers=("hkps://keys.openpgp.org" "hkps://keys.gentoo.org")
+ [[ ! -d /etc/portage/gnupg ]]
+ export LC_ALL=C.UTF8
+ LC_ALL=C.UTF8
+ [[ -n 1 ]]
+ getuto_refresh
+ grep -qv ': no user ID'
+ chmod ugo+r /etc/portage/gnupg/trustdb.gpg
+ gpgconf --kill gpg-agent dirmngr

Local copy of remote index is up-to-date and will be used.
Unsupported binary package format from ''


myparams {'recurse': True, 'binpkg_respect_use': 'auto', 'autounmask': True, 'autounmask_keep_use': False, 'autounmask_keep_license': True, 'autounmask_keep_keywords': True, 'autounmask_keep_masks': True, 'ignore_soname_deps': 'y', 'dynamic_deps': True, 'implicit_system_deps': True, 'selective': True, 'deep': True, 'binpkg_changed_deps': 'auto'}


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

Calculating dependencies  ^C
Comment 1 fcrvincent 2024-12-29 22:14:49 UTC
The "Unsupported binary package format from ''" message seems to be related to the exception InvalidBinaryPackageFormat that gets raised in /usr/lib/python3.12/site-packages/portage/binpkg.py

Emerge seems not to recognise the binpkg format of one or mode package(s) however the message does not say which files is/are concerned. 

Is it a corrupted local binanry package? Is it the format detection method not working?

For now it is not blocking; but still concerning.
Comment 2 fcrvincent 2024-12-29 22:54:09 UTC
The error gets raised here in /usr/lib/python3.12/site-packages/portage/binpkg.py:


def get_binpkg_format(binpkg_path, check_file=False, remote=False):
    if binpkg_path.endswith(SUPPORTED_XPAK_EXTENSIONS):
        file_ext_format = "xpak"
    elif binpkg_path.endswith(SUPPORTED_GPKG_EXTENSIONS):
        file_ext_format = "gpkg"
    else:
        file_ext_format = None
            
    if remote:
        if file_ext_format is not None:
            return file_ext_format
        else:
            raise InvalidBinaryPackageFormat(
--->>>        f"Unsupported binary package format from '{binpkg_path}'"
            )
Comment 3 fcrvincent 2024-12-29 22:57:34 UTC
So emerge seems to be checking the binary package format of a remote file that does not even exist as its binpkg_path is ''

Not sure what's going on?
Comment 4 Zac Medico gentoo-dev 2024-12-31 02:08:15 UTC
I checked the code and it looks like this is probably where it's emitted in bintree.py:

                    if gpkg_only:
                        try:
                            binpkg_format = get_binpkg_format(
                                d.get("PATH"), remote=True
                            )
                        except InvalidBinaryPackageFormat as e:
                            writemsg(
                                colorize(
                                    "WARN",
                                    f"{e}\n",
                                ),
                                noiselevel=-1,
                            )
                            continue
Comment 5 Zac Medico gentoo-dev 2024-12-31 02:17:40 UTC
It looks like maybe PATH is missing for a package in the remote binhost Packages file.
Comment 6 fcrvincent 2024-12-31 09:52:33 UTC
Thanks. That could be yes.
Is there anyway to know which package is missing its PATH?
Comment 7 fcrvincent 2024-12-31 10:19:51 UTC
Interestingly, I just did another eix-sync and emerge  --ask  --update --deep --newuse  @world today and the warning did not re-appear. 

The binhost package with no PATH must have been fixed.