vaeth / eix

eix can access Gentoo portage ebuild information and description very quickly (using a local cache). It can also be used to access information on installed packages, local settings, and local and external overlays, and informs about changes in the tree
GNU General Public License v2.0
163 stars 12 forks source link

eix improperly displays keywords for cross-*-w64-mingw32/gdb live package #74

Closed iDarkTemplar closed 3 years ago

iDarkTemplar commented 3 years ago

How to reproduce:

  1. ACCEPT_KEYWORDS='~*' emerge -1 crossdev
  2. crossdev --stable --target i686-w64-mingw32
  3. crossdev --stable --target x86_64-w64-mingw32
  4. eix-update
  5. eix */gdb

Result:

$ LC_ALL=C eix */gdb
* cross-i686-w64-mingw32/gdb [1]
     Available versions:  9.1^t 9.2^t (~)9999^t {+client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash}
     Homepage:            https://sourceware.org/gdb/
     Description:         GNU debugger

* cross-x86_64-w64-mingw32/gdb [1]
     Available versions:  9.1^t 9.2^t (~)9999^t {+client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash}
     Homepage:            https://sourceware.org/gdb/
     Description:         GNU debugger

[I] sys-devel/gdb
     Available versions:  9.1^t 9.2^t **9999*l^t {+client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash PYTHON_SINGLE_TARGET="python3_6 python3_7 python3_8"}
     Installed versions:  9.2^t(20:11:48 07/30/20)(client lzma nls python server -multitarget -source-highlight -test -vanilla -xml -xxhash PYTHON_SINGLE_TARGET="python3_7 -python3_6 -python3_8")
     Homepage:            https://sourceware.org/gdb/
     Description:         GNU debugger

[1] "dt-overlay-crossdev" /var/db/repos/dt-overlay-crossdev

Found 3 matches

While main gdb package's 9999 version is properly displayed as unkeyworded, cross gdb packages' versions 9999 are displayed as testing and testing-keyworded, but it's not true:

$ LC_ALL=C emerge -pv cross-i686-w64-mingw32/gdb cross-x86_64-w64-mingw32/gdb sys-devel/gdb

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

Calculating dependencies... done!
[ebuild  N     ] cross-i686-w64-mingw32/gdb-9.2::dt-overlay-crossdev  USE="client lzma nls server -multitarget -python -source-highlight -test -vanilla -xml -xxhash" PYTHON_SINGLE_TARGET="python3_7 -python3_6 -python3_8" 0 KiB
[ebuild  N     ] cross-x86_64-w64-mingw32/gdb-9.2::dt-overlay-crossdev  USE="client lzma nls server -multitarget -python -source-highlight -test -vanilla -xml -xxhash" PYTHON_SINGLE_TARGET="python3_7 -python3_6 -python3_8" 0 KiB
[ebuild   R    ] sys-devel/gdb-9.2::gentoo  USE="client lzma nls python server -multitarget -source-highlight -test -vanilla -xml -xxhash" PYTHON_SINGLE_TARGET="python3_7 -python3_6 -python3_8" 0 KiB

Total: 3 packages (2 new, 1 reinstall), Size of downloads: 0 KiB
$ grep -R gdb /etc/portage/ 
/etc/portage/package.accept_keywords/cross-x86_64-w64-mingw32:cross-x86_64-w64-mingw32/gdb amd64 ~amd64
/etc/portage/package.accept_keywords/cross-i686-w64-mingw32:cross-i686-w64-mingw32/gdb x86 ~x86 -amd64 -~amd64
/etc/portage/env/debug:CFLAGS="${CFLAGS} -g -ggdb"
/etc/portage/env/debug:CXXFLAGS="${CXXFLAGS} -g -ggdb"
/etc/portage/profile/package.use.force/cross-x86_64-w64-mingw32:cross-x86_64-w64-mingw32/gdb -multilib
/etc/portage/profile/package.use.force/cross-i686-w64-mingw32:cross-i686-w64-mingw32/gdb -multilib
/etc/portage/package.env/cross-x86_64-w64-mingw32:cross-x86_64-w64-mingw32/gdb cross-x86_64-w64-mingw32/gdb.conf
/etc/portage/package.env/cross-i686-w64-mingw32:cross-i686-w64-mingw32/gdb cross-i686-w64-mingw32/gdb.conf
/etc/portage/package.use/package.use:sys-devel/gdb python

eix version:

$ LC_ALL=C eix -I eix
[I] app-portage/eix
     Available versions:  0.33.9-r1 0.33.11 ~0.34.1 ~0.34.2 ~0.34.4 {debug doc nls sqlite}
     Installed versions:  0.33.11(14:40:59 05/04/20)(doc nls -debug -sqlite)
     Homepage:            https://github.com/vaeth/eix/
     Description:         Search and query ebuilds

I'm not observing such behaviour for cross binutils or gcc packages, only gdb is affected in current case:

$ LC_ALL=C eix cross-*/*
[I] cross-i686-w64-mingw32/binutils [1]
     Available versions:  
     (2.32) 2.32-r1^t ~2.32-r2^t
     (2.33) 2.33.1-r1^t
     (2.34) ~2.34-r1^t ~2.34-r2^t
     (2.35) **2.35^t
     (9999) **9999*l^t
       {+cxx default-gold doc +gold multitarget +nls +plugins static-libs test vanilla}
     Installed versions:  2.33.1-r1(2.33)^t(08:38:33 07/21/20)(gold nls plugins -default-gold -doc -multitarget -static-libs -test)
     Homepage:            https://sourceware.org/binutils/
     Description:         Tools necessary to build programs

[I] cross-i686-w64-mingw32/gcc [1]
     Available versions:  
     (4.9.4) ~4.9.4-r1^t
     (5.5.0) ~5.5.0^t
     (6.5.0) 6.5.0-r1^t 6.5.0-r2^t ~6.5.0-r3^t
     (7.5.0) 7.5.0^t 7.5.0-r1^t
     (8.4.0) 8.4.0^t 8.4.0-r1^t
     (9.2.0) 9.2.0-r2^t ~9.2.0-r4^t
     (9.3.0) 9.3.0^t 9.3.0-r1^t
     (10)   ~10.1.0-r2^t ~10.2.0^t **10.2.1_pre9999*l^t
     (11)   **11.0.0_pre9999*l^t
       {ada altivec awt cilk +cxx d debug doc fixed-point +fortran gcj go graphite hardened jit libssp lto mpx multilib +nls nopie nossp +nptl objc objc++ objc-gc +openmp +pch pgo +pie +sanitize +ssp systemtap test valgrind vanilla +vtv zstd}
     Installed versions:  9.3.0-r1(9.3.0)^t(10:12:26 07/21/20)(cxx libssp nls nptl openmp pch ssp -ada -altivec -d -debug -doc -fixed-point -fortran -go -graphite -hardened -jit -lto -multilib -objc -objc++ -objc-gc -pgo -pie -sanitize -systemtap -test -vanilla -vtv)
     Homepage:            https://gcc.gnu.org/
     Description:         The GNU Compiler Collection

* cross-i686-w64-mingw32/gdb [1]
     Available versions:  9.1^t 9.2^t (~)9999^t {+client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash}
     Homepage:            https://sourceware.org/gdb/
     Description:         GNU debugger

[I] cross-i686-w64-mingw32/mingw64-runtime [1]
     Available versions:  (~)6.0.0-r3^s (~)7.0.0^s (~)7.0.0-r1^s {headers-only idl libraries +secure-api tools}
     Installed versions:  7.0.0-r1^s(10:02:30 07/21/20)(libraries -headers-only -idl -tools)
     Homepage:            http://mingw-w64.sourceforge.net/
     Description:         Free Win64 runtime and import library definitions

[I] cross-x86_64-w64-mingw32/binutils [1]
     Available versions:  
     (2.32) 2.32-r1^t ~2.32-r2^t
     (2.33) 2.33.1-r1^t
     (2.34) ~2.34-r1^t ~2.34-r2^t
     (2.35) **2.35^t
     (9999) **9999*l^t
       {+cxx default-gold doc +gold multitarget +nls +plugins static-libs test vanilla}
     Installed versions:  2.33.1-r1(2.33)^t(08:57:52 07/21/20)(gold nls plugins -default-gold -doc -multitarget -static-libs -test)
     Homepage:            https://sourceware.org/binutils/
     Description:         Tools necessary to build programs

[I] cross-x86_64-w64-mingw32/gcc [1]
     Available versions:  
     (4.9.4) ~4.9.4-r1^t
     (5.5.0) ~5.5.0^t
     (6.5.0) 6.5.0-r1^t 6.5.0-r2^t ~6.5.0-r3^t
     (7.5.0) 7.5.0^t 7.5.0-r1^t
     (8.4.0) 8.4.0^t 8.4.0-r1^t
     (9.2.0) 9.2.0-r2^t ~9.2.0-r4^t
     (9.3.0) 9.3.0^t 9.3.0-r1^t
     (10)   ~10.1.0-r2^t ~10.2.0^t **10.2.1_pre9999*l^t
     (11)   **11.0.0_pre9999*l^t
       {ada altivec awt cilk +cxx d debug doc fixed-point +fortran gcj go graphite hardened jit libssp lto mpx multilib +nls nopie nossp +nptl objc objc++ objc-gc +openmp +pch pgo +pie +sanitize +ssp systemtap test valgrind vanilla +vtv zstd}
     Installed versions:  9.3.0-r1(9.3.0)^t(10:20:24 07/21/20)(cxx libssp nls nptl openmp pch ssp -ada -altivec -d -debug -doc -fixed-point -fortran -go -graphite -hardened -jit -lto -multilib -objc -objc++ -objc-gc -pgo -pie -sanitize -systemtap -test -vanilla -vtv)
     Homepage:            https://gcc.gnu.org/
     Description:         The GNU Compiler Collection

* cross-x86_64-w64-mingw32/gdb [1]
     Available versions:  9.1^t 9.2^t (~)9999^t {+client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash}
     Homepage:            https://sourceware.org/gdb/
     Description:         GNU debugger

[I] cross-x86_64-w64-mingw32/mingw64-runtime [1]
     Available versions:  (~)6.0.0-r3^s (~)7.0.0^s (~)7.0.0-r1^s {headers-only idl libraries +secure-api tools}
     Installed versions:  7.0.0-r1^s(10:04:42 07/21/20)(libraries -headers-only -idl -tools)
     Homepage:            http://mingw-w64.sourceforge.net/
     Description:         Free Win64 runtime and import library definitions

[1] "dt-overlay-crossdev" /var/db/repos/dt-overlay-crossdev

Found 8 matches
vaeth commented 3 years ago
  1. Retry after eix-update
  2. Which keywords does eix -l list?
  3. What is the output of eix --print ARCH?
  4. Does /var/db/repos/dt-overlay-crossdev/profiles contain something which does "strange" things (set ARCH etc)?
iDarkTemplar commented 3 years ago
  1. Didn't help. Without eix-update in first place new repository and it's contents wouldn't be detected.
  2. Host system is 'amd64', stable keywords only for all packages, with testing keywords for specific packages in package.accept_keywords directory. In addition to that, as I already wrote in starting comment, cross gdb packages have following keywords:
    /etc/portage/package.accept_keywords/cross-x86_64-w64-mingw32:cross-x86_64-w64-mingw32/gdb amd64 ~amd64
    /etc/portage/package.accept_keywords/cross-i686-w64-mingw32:cross-i686-w64-mingw32/gdb x86 ~x86 -amd64 -~amd64
  3. $ eix --print ARCH
    amd64
  4. $ ls /var/db/repos/dt-overlay-crossdev/profiles
    categories  repo_name
    $ for i in /var/db/repos/dt-overlay-crossdev/profiles/* ; do echo file $i ; cat $i ; done
    file /var/db/repos/dt-overlay-crossdev/profiles/categories
    cross-i686-w64-mingw32
    cross-x86_64-w64-mingw32
    file /var/db/repos/dt-overlay-crossdev/profiles/repo_name
    dt-overlay-crossdev

Btw, if you didn't try reproduce steps yet, crossdev just makes a symlink from ${CROSSDEV_OVERLAY}/${CROSS_TARGET}/${PACKAGE_NAME} to ${PORTAGE_REPO}/${PACKAGE_GROUP}/${PACKAGE_NAME}, i.e. in my case it created following structure (/usr/portage is location of gentoo repo):

$ LC_ALL=C ls -la /var/db/repos/dt-overlay-crossdev/cross-*
/var/db/repos/dt-overlay-crossdev/cross-i686-w64-mingw32:
total 8
drwxr-xr-x 2 root root 4096 Jul 21 09:17 .
drwxr-xr-x 7 root root 4096 Jul 21 09:17 ..
lrwxrwxrwx 1 root root   31 Jul 21 09:17 binutils -> /usr/portage/sys-devel/binutils
lrwxrwxrwx 1 root root   26 Jul 21 09:17 gcc -> /usr/portage/sys-devel/gcc
lrwxrwxrwx 1 root root   26 Jul 21 09:17 gdb -> /usr/portage/sys-devel/gdb
lrwxrwxrwx 1 root root   37 Jul 21 09:17 mingw64-runtime -> /usr/portage/dev-util/mingw64-runtime

/var/db/repos/dt-overlay-crossdev/cross-x86_64-w64-mingw32:
total 8
drwxr-xr-x 2 root root 4096 Jul 21 09:17 .
drwxr-xr-x 7 root root 4096 Jul 21 09:17 ..
lrwxrwxrwx 1 root root   31 Jul 21 09:17 binutils -> /usr/portage/sys-devel/binutils
lrwxrwxrwx 1 root root   26 Jul 21 09:17 gcc -> /usr/portage/sys-devel/gcc
lrwxrwxrwx 1 root root   26 Jul 21 09:17 gdb -> /usr/portage/sys-devel/gdb
lrwxrwxrwx 1 root root   37 Jul 21 09:17 mingw64-runtime -> /usr/portage/dev-util/mingw64-runtime

Thus, gdb ebuilds are identical to those currently in gentoo tree.

vaeth commented 3 years ago

There is a misunderstanding for 2: I mean the keywords listed by eix -l ...

But I think I already know what is going on: It will list you for gdb

~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"

My analysis: You have presumably the default OVERLAY_CACHE_METHOD="parse|ebuild*" and do not have configured something else for this overlay. This means that the ebuild in the overlay is first parsed by some quick heuristic whcih gets the worng KEYWORDS - since it does get some keywords, there is no reason to conjecture something went bad, and therefore the much slower "ebuild*" cache method is not attempted.

Solution: You must either use cache method ebuild (or at least ebuild*) for the overlay or - better - use egencache and setup the overlay to only use metadata-md5.

For details, see the manpage of eix for cache method "parse" and the "SPEEDUP" section.

iDarkTemplar commented 3 years ago

Yep, regarding 2 there probably is a misunerstanding. For me eix -l */gdb provides following output:

``` $ LC_ALL=C eix -l */gdb * cross-i686-w64-mingw32/gdb [1] Available versions: 9.1 ^t [+client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash] ["python? ( ) || ( client server )"] 9.2 ^t [+client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash] ["python? ( ) || ( client server )"] (~) 9999 ^t [+client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash] ["python? ( ) || ( client server )"] Homepage: https://sourceware.org/gdb/ Description: GNU debugger * cross-x86_64-w64-mingw32/gdb [1] Available versions: 9.1 ^t [+client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash] ["python? ( ) || ( client server )"] 9.2 ^t [+client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash] ["python? ( ) || ( client server )"] (~) 9999 ^t [+client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash] ["python? ( ) || ( client server )"] Homepage: https://sourceware.org/gdb/ Description: GNU debugger [I] sys-devel/gdb Available versions: 9.1 ^t [+client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash PYTHON_SINGLE_TARGET="python3_6 python3_7 python3_8"]["python? ( ^^ ( python_single_target_python3_6 python_single_target_python3_7 python_single_target_python3_8 ) ) || ( client server )"] 9.2 ^t [+client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash PYTHON_SINGLE_TARGET="python3_6 python3_7 python3_8"]["python? ( ^^ ( python_single_target_python3_6 python_single_target_python3_7 python_single_target_python3_8 ) ) || ( client server )"] ** 9999 *l^t [+client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash PYTHON_SINGLE_TARGET="python3_6 python3_7 python3_8"]["python? ( ^^ ( python_single_target_python3_6 python_single_target_python3_7 python_single_target_python3_8 ) ) || ( client server )"] Installed versions: 9.2^t(20:11:48 07/30/20)(client lzma nls python server -multitarget -source-highlight -test -vanilla -xml -xxhash PYTHON_SINGLE_TARGET="python3_7 -python3_6 -python3_8") Homepage: https://sourceware.org/gdb/ Description: GNU debugger [1] "dt-overlay-crossdev" /var/db/repos/dt-overlay-crossdev Found 3 matches ```

I see no keywords information in the output. Maybe it was added in newer version, one not yet marked stable in Gentoo.

And here's output of eix --print-all-keywords */gdb:

``` $ LC_ALL=C eix --print-all-keywords */gdb ~amd64 ~x86 amd64 x86 ppc ~alpha ~amd64-linux ~x86-linux ~ia64 ~arm ~ppc ppc64 ~mips ~arm64 sparc ~ppc64 arm arm64 hppa ~ppc-macos ~x86-macos ~sparc ~hppa ~x64-macos ~x86-solaris ~sparc-solaris ~x64-solaris s390 ~s390 ~sparc64-solaris ~m68k ~ppc-aix ~riscv ~m68k-mint ~x64-cygwin -arm -* ia64 alpha m68k ~x86-winnt -sparc ~x86-cygwin ~sh -ppc64 ~arm-linux -x86 -ppc -amd64 ~arm64-linux ~ppc64-linux -mips mips -alpha sh -hppa -s390 -ia64 ~x86-fbsd ```

Doesn't seem useful to me either.

You might be right about OVERLAY_CACHE_METHOD. I didn't change any eix settings. And keywords are present in ebuild, and it looks like this:

if [[ ${PV} != 9999* ]] ; then
        KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
fi

Probably it's detected, but condition isn't processed.

Anyway, if parse method is considered unreliable and generating and using cache should fix it, I guess this report may be closed. Thank you.

vaeth commented 3 years ago

Keywords with eix -l: My fault. You either have to use eix -vl or set VERSION_KEYWORDS_NORMAL=true. I have the latter in my /etc/portage/eixrc/40-defaults for so many years that I forgot that this behavior is not the default.

iDarkTemplar commented 3 years ago
eix -vl */gdb ``` $ LC_ALL=C eix -vl */gdb * cross-i686-w64-mingw32/gdb [1] Available versions: 9.1 ^t KEYWORDS: ~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris IUSE: +client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash REQUIRED_USE: python? ( ) || ( client server ) DEPEND: ${RDEPEND} RDEPEND: client? ( dev-libs/mpfr:0= >=sys-libs/ncurses-5.2-r2:0= >=sys-libs/readline-7:0= lzma? ( app-arch/xz-utils ) python? ( ) xml? ( dev-libs/expat ) sys-libs/zlib ) source-highlight? ( dev-util/source-highlight ) xxhash? ( dev-libs/xxhash ) BDEPEND: app-arch/xz-utils sys-apps/texinfo client? ( virtual/yacc test? ( dev-util/dejagnu ) nls? ( sys-devel/gettext ) ) SRC_URI: mirror://gnu/gdb/gdb-9.1.tar.xz ftp://sourceware.org/pub/gdb/releases/gdb-9.1.tar.xz ${PATCH_DEV:+https://dev.gentoo.org/~/distfiles/gdb-9.1-patches-.tar.xz} ${PATCH_VER:+mirror://gentoo/gdb-9.1-patches-.tar.xz} EAPI: 7 9.2 ^t KEYWORDS: ~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris IUSE: +client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash REQUIRED_USE: python? ( ) || ( client server ) DEPEND: ${RDEPEND} RDEPEND: client? ( dev-libs/mpfr:0= >=sys-libs/ncurses-5.2-r2:0= >=sys-libs/readline-7:0= lzma? ( app-arch/xz-utils ) python? ( ) xml? ( dev-libs/expat ) sys-libs/zlib ) source-highlight? ( dev-util/source-highlight ) xxhash? ( dev-libs/xxhash ) BDEPEND: app-arch/xz-utils sys-apps/texinfo client? ( virtual/yacc test? ( dev-util/dejagnu ) nls? ( sys-devel/gettext ) ) SRC_URI: mirror://gnu/gdb/gdb-9.2.tar.xz ftp://sourceware.org/pub/gdb/releases/gdb-9.2.tar.xz ${PATCH_DEV:+https://dev.gentoo.org/~/distfiles/gdb-9.2-patches-.tar.xz} ${PATCH_VER:+mirror://gentoo/gdb-9.2-patches-.tar.xz} EAPI: 7 (~) 9999 ^t KEYWORDS: ~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris IUSE: +client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash REQUIRED_USE: python? ( ) || ( client server ) DEPEND: ${RDEPEND} RDEPEND: client? ( dev-libs/mpfr:0= >=sys-libs/ncurses-5.2-r2:0= >=sys-libs/readline-7:0= lzma? ( app-arch/xz-utils ) python? ( ) xml? ( dev-libs/expat ) sys-libs/zlib ) source-highlight? ( dev-util/source-highlight ) xxhash? ( dev-libs/xxhash ) BDEPEND: app-arch/xz-utils sys-apps/texinfo client? ( virtual/yacc test? ( dev-util/dejagnu ) nls? ( sys-devel/gettext ) ) SRC_URI: mirror://gnu/gdb/gdb-9999.tar.xz ftp://sourceware.org/pub/gdb/releases/gdb-9999.tar.xz ${PATCH_DEV:+https://dev.gentoo.org/~/distfiles/gdb-9999-patches-.tar.xz} ${PATCH_VER:+mirror://gentoo/gdb-9999-patches-.tar.xz} EAPI: 7 Best versions/slot: (~)9999^t Homepage: https://sourceware.org/gdb/ Description: GNU debugger License: GPL-2 LGPL-2 * cross-x86_64-w64-mingw32/gdb [1] Available versions: 9.1 ^t KEYWORDS: ~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris IUSE: +client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash REQUIRED_USE: python? ( ) || ( client server ) DEPEND: ${RDEPEND} RDEPEND: client? ( dev-libs/mpfr:0= >=sys-libs/ncurses-5.2-r2:0= >=sys-libs/readline-7:0= lzma? ( app-arch/xz-utils ) python? ( ) xml? ( dev-libs/expat ) sys-libs/zlib ) source-highlight? ( dev-util/source-highlight ) xxhash? ( dev-libs/xxhash ) BDEPEND: app-arch/xz-utils sys-apps/texinfo client? ( virtual/yacc test? ( dev-util/dejagnu ) nls? ( sys-devel/gettext ) ) SRC_URI: mirror://gnu/gdb/gdb-9.1.tar.xz ftp://sourceware.org/pub/gdb/releases/gdb-9.1.tar.xz ${PATCH_DEV:+https://dev.gentoo.org/~/distfiles/gdb-9.1-patches-.tar.xz} ${PATCH_VER:+mirror://gentoo/gdb-9.1-patches-.tar.xz} EAPI: 7 9.2 ^t KEYWORDS: ~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris IUSE: +client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash REQUIRED_USE: python? ( ) || ( client server ) DEPEND: ${RDEPEND} RDEPEND: client? ( dev-libs/mpfr:0= >=sys-libs/ncurses-5.2-r2:0= >=sys-libs/readline-7:0= lzma? ( app-arch/xz-utils ) python? ( ) xml? ( dev-libs/expat ) sys-libs/zlib ) source-highlight? ( dev-util/source-highlight ) xxhash? ( dev-libs/xxhash ) BDEPEND: app-arch/xz-utils sys-apps/texinfo client? ( virtual/yacc test? ( dev-util/dejagnu ) nls? ( sys-devel/gettext ) ) SRC_URI: mirror://gnu/gdb/gdb-9.2.tar.xz ftp://sourceware.org/pub/gdb/releases/gdb-9.2.tar.xz ${PATCH_DEV:+https://dev.gentoo.org/~/distfiles/gdb-9.2-patches-.tar.xz} ${PATCH_VER:+mirror://gentoo/gdb-9.2-patches-.tar.xz} EAPI: 7 (~) 9999 ^t KEYWORDS: ~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris IUSE: +client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash REQUIRED_USE: python? ( ) || ( client server ) DEPEND: ${RDEPEND} RDEPEND: client? ( dev-libs/mpfr:0= >=sys-libs/ncurses-5.2-r2:0= >=sys-libs/readline-7:0= lzma? ( app-arch/xz-utils ) python? ( ) xml? ( dev-libs/expat ) sys-libs/zlib ) source-highlight? ( dev-util/source-highlight ) xxhash? ( dev-libs/xxhash ) BDEPEND: app-arch/xz-utils sys-apps/texinfo client? ( virtual/yacc test? ( dev-util/dejagnu ) nls? ( sys-devel/gettext ) ) SRC_URI: mirror://gnu/gdb/gdb-9999.tar.xz ftp://sourceware.org/pub/gdb/releases/gdb-9999.tar.xz ${PATCH_DEV:+https://dev.gentoo.org/~/distfiles/gdb-9999-patches-.tar.xz} ${PATCH_VER:+mirror://gentoo/gdb-9999-patches-.tar.xz} EAPI: 7 Best versions/slot: (~)9999^t Homepage: https://sourceware.org/gdb/ Description: GNU debugger License: GPL-2 LGPL-2 * sys-devel/gdb Available versions: 9.1 ^t KEYWORDS: ~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris IUSE: +client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash PYTHON_SINGLE_TARGET="python3_6 python3_7 python3_8" REQUIRED_USE: python? ( ^^ ( python_single_target_python3_6 python_single_target_python3_7 python_single_target_python3_8 ) ) || ( client server ) DEPEND: ${RDEPEND} RDEPEND: client? ( dev-libs/mpfr:0= >=sys-libs/ncurses-5.2-r2:0= >=sys-libs/readline-7:0= lzma? ( app-arch/xz-utils ) python? ( python_single_target_python3_6? ( dev-lang/python:3.6 >=dev-lang/python-exec-2:=[python_targets_python3_6] ) python_single_target_python3_7? ( dev-lang/python:3.7 >=dev-lang/python-exec-2:=[python_targets_python3_7] ) python_single_target_python3_8? ( dev-lang/python:3.8 >=dev-lang/python-exec-2:=[python_targets_python3_8] ) ) xml? ( dev-libs/expat ) sys-libs/zlib ) source-highlight? ( dev-util/source-highlight ) xxhash? ( dev-libs/xxhash ) BDEPEND: app-arch/xz-utils sys-apps/texinfo client? ( virtual/yacc test? ( dev-util/dejagnu ) nls? ( sys-devel/gettext ) ) SRC_URI: mirror://gnu/gdb/gdb-9.1.tar.xz ftp://sourceware.org/pub/gdb/releases/gdb-9.1.tar.xz EAPI: 7 9.2 ^t KEYWORDS: ~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris IUSE: +client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash PYTHON_SINGLE_TARGET="python3_6 python3_7 python3_8" REQUIRED_USE: python? ( ^^ ( python_single_target_python3_6 python_single_target_python3_7 python_single_target_python3_8 ) ) || ( client server ) DEPEND: ${RDEPEND} RDEPEND: client? ( dev-libs/mpfr:0= >=sys-libs/ncurses-5.2-r2:0= >=sys-libs/readline-7:0= lzma? ( app-arch/xz-utils ) python? ( python_single_target_python3_6? ( dev-lang/python:3.6 >=dev-lang/python-exec-2:=[python_targets_python3_6] ) python_single_target_python3_7? ( dev-lang/python:3.7 >=dev-lang/python-exec-2:=[python_targets_python3_7] ) python_single_target_python3_8? ( dev-lang/python:3.8 >=dev-lang/python-exec-2:=[python_targets_python3_8] ) ) xml? ( dev-libs/expat ) sys-libs/zlib ) source-highlight? ( dev-util/source-highlight ) xxhash? ( dev-libs/xxhash ) BDEPEND: app-arch/xz-utils sys-apps/texinfo client? ( virtual/yacc test? ( dev-util/dejagnu ) nls? ( sys-devel/gettext ) ) SRC_URI: mirror://gnu/gdb/gdb-9.2.tar.xz ftp://sourceware.org/pub/gdb/releases/gdb-9.2.tar.xz EAPI: 7 ** 9999 *l^t IUSE: +client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash PYTHON_SINGLE_TARGET="python3_6 python3_7 python3_8" REQUIRED_USE: python? ( ^^ ( python_single_target_python3_6 python_single_target_python3_7 python_single_target_python3_8 ) ) || ( client server ) DEPEND: ${RDEPEND} RDEPEND: client? ( dev-libs/mpfr:0= >=sys-libs/ncurses-5.2-r2:0= >=sys-libs/readline-7:0= lzma? ( app-arch/xz-utils ) python? ( python_single_target_python3_6? ( dev-lang/python:3.6 >=dev-lang/python-exec-2:=[python_targets_python3_6] ) python_single_target_python3_7? ( dev-lang/python:3.7 >=dev-lang/python-exec-2:=[python_targets_python3_7] ) python_single_target_python3_8? ( dev-lang/python:3.8 >=dev-lang/python-exec-2:=[python_targets_python3_8] ) ) xml? ( dev-libs/expat ) sys-libs/zlib ) source-highlight? ( dev-util/source-highlight ) xxhash? ( dev-libs/xxhash ) BDEPEND: app-arch/xz-utils sys-apps/texinfo client? ( virtual/yacc test? ( dev-util/dejagnu ) nls? ( sys-devel/gettext ) ) >=dev-vcs/git-1.8.2.1[curl] EAPI: 7 Installed versions: Version: 9.2^t Date: 20:11:48 07/30/20 USE: client lzma nls python server -multitarget -source-highlight -test -vanilla -xml -xxhash PYTHON_SINGLE_TARGET="python3_7 -python3_6 -python3_8" DEPEND: ${RDEPEND} RDEPEND: dev-libs/mpfr:0/6= >=sys-libs/ncurses-5.2-r2:0/6= >=sys-libs/readline-7:0/8= app-arch/xz-utils dev-lang/python:3.7 >=dev-lang/python-exec-2:2/2=[python_targets_python3_7] sys-libs/zlib BDEPEND: app-arch/xz-utils sys-apps/texinfo virtual/yacc sys-devel/gettext SRC_URI: EAPI: 7 Best versions/slot: 9.2^t Package sets: devel-tools Homepage: https://sourceware.org/gdb/ Find open bugs: https://bugs.gentoo.org/buglist.cgi?quicksearch=sys-devel%2Fgdb Description: GNU debugger License: GPL-2 LGPL-2 [1] "dt-overlay-crossdev" /var/db/repos/dt-overlay-crossdev Found 3 matches ```
vaeth commented 3 years ago

Seems like conjectured. So I am closing it as "works as intended" (I am aware that this is not nice, but the only clean solution for the parsing problem is to use egencache). The heuristic parsing is completely trivial: It does not even attempt to interpret things like "if" but just looks for variable assignments and picks the last one it sees...

iDarkTemplar commented 3 years ago

There is a workaround and it sounds good for me. Thank you again.