Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
eix showing question mark in package status [SOLVED]
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
Lu Tze
n00b
n00b


Joined: 21 Nov 2005
Posts: 22
Location: Tugadogalong

PostPosted: Tue Oct 11, 2016 3:13 am    Post subject: eix showing question mark in package status [SOLVED] Reply with quote

I have a problem with eix which started a while ago but I didn't pay attention to it until it became a nuisance. Eix shows a question mark for the status of many packages, both in portage and in overlays:

Code:

$ ~> eix qt-creator
[?] dev-qt/qt-creator
     Available versions:  3.6.1 ~4.0.3 **9999 {android autotools baremetal bazaar clang clangcodemodel clangstaticanalyzer clearcase cmake cvs doc git glsl ios mercurial perforce python qbs qnx subversion systemd test valgrind webengine webkit winrt LINGUAS="cs de fr ja pl ru sl uk zh_CN zh_TW"}
     Installed versions:  4.0.3(13:21:07 12/07/16)(android autotools baremetal clangcodemodel clangstaticanalyzer cmake doc git glsl ios python valgrind webkit -bazaar -clearcase -cvs -mercurial -perforce -qbs -qnx -subversion -systemd -test -webengine -winrt LINGUAS="-cs -de -fr -ja -pl -ru -sl -uk -zh_CN -zh_TW")
     Homepage:            http://doc.qt.io/qtcreator/
     Description:         Lightweight IDE for C++/QML development centering around Qt

$ ~>


Code:

$ ~> eix virtual/blas
[?] virtual/blas
     Available versions:  1.0 ~2.1-r5[1] ~3.6 {doc int64 ABI_X86="32 64"}
     Installed versions:  2.1-r5[1](11:10:55 06/10/16)(int64 -doc ABI_X86="32 64")
     Description:         Virtual for FORTRAN 77 BLAS implementation

[1] "science" /var/lib/layman/science


It seems to correctly recognise that packages have been installed from overlays because it is showing [1] after the installed version (so the problem is *not* like the one described here: https://forums.gentoo.org/viewtopic-t-876633-start-0.html. It is more like this one: https://archives.gentoo.org/gentoo-amd64/message/bd1419622b36a97766a165e3acbb59fe. I have layman set up to use repos.conf, but I don't think it's layman's fault (question marks show up next to packages from portage as well). It's almost like eix can't determine whether the package has been installed, even though it seems to know which repo the installed version comes from.

I have run eix-update -a /var/lib/layman/science many times, to no avail. This is the output:

Code:

# ~> eix-update -a /var/lib/layman/science/
Reading Portage settings...
Building database (/var/cache/eix/portage.eix)...
[0] "gentoo" /usr/portage/ (cache: metadata-md5-or-flat)
     Reading category 169|169 (100) Finished             
[1] "science" /var/lib/layman/science (cache: assign)
     Reading category 169|169 (100) Finished                               
Applying masks...
Calculating hash tables...
Writing database file /var/cache/eix/portage.eix...
Database contains 19909 packages in 169 categories.


I would appreciate any ideas as to what the cause for this might be.
_________________
"My brother sent me a postcard the other day with this big satellite photo of the entire Earth on it. On the back it said: "Wish you were here"" - Steven Wright


Last edited by Lu Tze on Wed Oct 19, 2016 11:03 pm; edited 1 time in total
Back to top
View user's profile Send private message
thumper
Guru
Guru


Joined: 06 Dec 2002
Posts: 552
Location: Venice FL

PostPosted: Tue Oct 11, 2016 11:45 pm    Post subject: Reply with quote

I've never seen eix do that, do you use eix-sync?
Code:
layman -S && eix-sync && emerge -pvuD world --with-bdeps=y

I run that when I want to see if there is anything to update, and I've never noticed anything strange with eix except for the one time I ran emerge --sync and then the eix data was not in sync with portage.

YMMV

George
Back to top
View user's profile Send private message
Lu Tze
n00b
n00b


Joined: 21 Nov 2005
Posts: 22
Location: Tugadogalong

PostPosted: Wed Oct 12, 2016 12:28 am    Post subject: Reply with quote

I usually run emerge --sync and eix-update -a /var/lib/layman/science manually because eix-sync doesn't pick up the fact that I have an overlay (this is a separate issue which I have been ignoring). In saying that, I have tried running eix-sync as well, but the result is the same.
_________________
"My brother sent me a postcard the other day with this big satellite photo of the entire Earth on it. On the back it said: "Wish you were here"" - Steven Wright
Back to top
View user's profile Send private message
Lu Tze
n00b
n00b


Joined: 21 Nov 2005
Posts: 22
Location: Tugadogalong

PostPosted: Wed Oct 19, 2016 12:28 pm    Post subject: Reply with quote

It seems that eix is marking testing versions (~) with [?], for example:

Code:

$ ~> eix kde-apps/libkipi
[?] kde-apps/libkipi
     Available versions: 
     (4)    15.08.3-r1(4/15.08)
     (5)    16.04.3(5/31) ~16.08.2(5/31)
       {aqua debug}
     Installed versions:  16.08.2(5)(21:31:49 19/10/16)(-debug)
     Homepage:            https://www.kde.org/
     Description:         A library for image plugins accross KDE applications


The status is [?], but after downgrading to stable version 16.04.3...

Code:

$ ~> eix kde-apps/libkipi
[I] kde-apps/libkipi
     Available versions: 
     (4)    15.08.3-r1(4/15.08)
     (5)    16.04.3(5/31) ~16.08.2(5/31)
       {aqua debug}
     Installed versions:  16.04.3(5)(23:17:35 19/10/16)(-debug)
     Homepage:            https://www.kde.org/
     Description:         A library for image plugins accross KDE applications


...eix shows [I].

Could this be related to my profile? Not sure why eix would have trouble with unstable versions... :?
_________________
"My brother sent me a postcard the other day with this big satellite photo of the entire Earth on it. On the back it said: "Wish you were here"" - Steven Wright
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6747

PostPosted: Wed Oct 19, 2016 10:31 pm    Post subject: Reply with quote

You have probably misconfigured portage: The unstable versions you have installed are not marked unstable in your package.accept_keywords. That's why a fresh emerge of the package would install a lower version. Have you perhaps done a stupid thing like installing with ACCEPT_KEYWORDS='~amd64' being set temporarily?
Similarly, if your /etc/portage/repos.conf is set up correctly (and you do not override it with PORTDIR_OVERLAY), eix will automatically see the overlay; do not use -a.
Back to top
View user's profile Send private message
Lu Tze
n00b
n00b


Joined: 21 Nov 2005
Posts: 22
Location: Tugadogalong

PostPosted: Wed Oct 19, 2016 10:43 pm    Post subject: Reply with quote

Thank you for your reply, mv.

Unstable packages are inserted in package.accept_keywords, e.g., I have dev-qt/qt-creator ~amd64 in /etc/portage/package.accept_keywords/x86. I never install anything with temporary ACCEPT_KEYWORDS='~amd64'.

This is my repos.conf/gentoo.conf:

Code:

[DEFAULT]
main-repo = gentoo

[gentoo]
location = /usr/portage
sync-type = rsync
sync-uri = rsync://rsync.gentoo.org/gentoo-portage
#sync-uri = rsync://rsync3.jp.gentoo.org/gentoo-portage
#sync-uri = rsync://rsync16.de.gentoo.org/gentoo-portage
#sync-uri = rsync://rsync.au.gentoo.org/gentoo-portage
auto-sync = yes


and my repos.conf/layman.conf:

Code:

[science]
priority = 50
location = /var/lib/layman/science
layman-type = git
sync-type = laymansync
sync-uri = https://anongit.gentoo.org/git/proj/sci.git
auto-sync = Yes


The science overlay doesn't get picked up by eix unless I explicitly add it with -a.
_________________
"My brother sent me a postcard the other day with this big satellite photo of the entire Earth on it. On the back it said: "Wish you were here"" - Steven Wright
Back to top
View user's profile Send private message
Lu Tze
n00b
n00b


Joined: 21 Nov 2005
Posts: 22
Location: Tugadogalong

PostPosted: Wed Oct 19, 2016 11:03 pm    Post subject: Reply with quote

Ahem, my own paranoia seems to have played a bad trick on me again.

mv's comment pointed me in the right direction. It turns out that the directories package.accept_keywords and repos.conf (as well as some others in /etc/portage) had permissions set to 700, which is probably the result of creating them manually when I migrated my package.keywords to package.accept_keywords/x86 and from make.conf entries to separate files under repos.conf. The thing is that I have set the default umask for new directories for root to 077, so these directories (and everything under them!) were created with permissions 700. I changed the permissions to 755 and now eix works as expected:

Code:

$ ~> eix qt-creator
[I] dev-qt/qt-creator
     Available versions:  3.6.1 (~)4.0.3 **9999 {android autotools baremetal bazaar clang clangcodemodel clangstaticanalyzer clearcase cmake cvs doc git glsl ios mercurial perforce python qbs qnx subversion systemd test valgrind webengine webkit winrt LINGUAS="cs de fr ja pl ru sl uk zh_CN zh_TW"}
     Installed versions:  4.0.3(13:21:07 12/07/16)(android autotools baremetal clangcodemodel clangstaticanalyzer cmake doc git glsl ios python valgrind webkit -bazaar -clearcase -cvs -mercurial -perforce -qbs -qnx -subversion -systemd -test -webengine -winrt LINGUAS="-cs -de -fr -ja -pl -ru -sl -uk -zh_CN -zh_TW")
     Homepage:            http://doc.qt.io/qtcreator/
     Description:         Lightweight IDE for C++/QML development centering around Qt


and even picks up layman.conf:

Code:

# ~> eix-update
Reading Portage settings...
Building database (/var/cache/eix/portage.eix)...
[0] "gentoo" /usr/portage/ (cache: metadata-md5-or-flat)
     Reading category 169|169 (100) Finished             
[1] "science" /var/lib/layman/science (cache: assign)
     Reading category 169|169 (100) Finished                               
Applying masks...
Calculating hash tables...
Writing database file /var/cache/eix/portage.eix...
Database contains 19927 packages in 169 categories.


Sorry to waste everyone's time. Moral of the story: check your directory permissions! :oops:
_________________
"My brother sent me a postcard the other day with this big satellite photo of the entire Earth on it. On the back it said: "Wish you were here"" - Steven Wright
Back to top
View user's profile Send private message
Tony0945
Watchman
Watchman


Joined: 25 Jul 2006
Posts: 5127
Location: Illinois, USA

PostPosted: Wed Oct 19, 2016 11:22 pm    Post subject: Reply with quote

Lu Tze wrote:
Sorry to waste everyone's time. Moral of the story: check your directory permissions! :oops:

'S,okay! It teaches us all a lesson we may have forgotten.
Back to top
View user's profile Send private message
A.S. Pushkin
Guru
Guru


Joined: 09 Nov 2002
Posts: 418
Location: dx/dt, dy/dt, dz/dt, t

PostPosted: Tue Feb 13, 2018 4:46 pm    Post subject: eix showing question mark in package status Reply with quote

I've run into this [?] and wondered about it, but still do not understand. In fact this has raised more questions.

Do we do an emerge --sync or eix-sync to update portage?

TIA
_________________
ASPushkin

"In a time of universal deceit - telling the truth is a revolutionary act." -- George Orwell
Back to top
View user's profile Send private message
qsmodo
Tux's lil' helper
Tux's lil' helper


Joined: 20 Jun 2021
Posts: 82

PostPosted: Sun Sep 19, 2021 12:40 am    Post subject: Re: eix showing question mark in package status Reply with quote

A.S. Pushkin wrote:
I've run into this [?] and wondered about it, but still do not understand. In fact this has raised more questions.

Do we do an emerge --sync or eix-sync to update portage?


Yes, I also have just run into into it. I thought emaint -a sync (or emerge --sync) sufficed, but eix needs its own update (see the CheatSheet: https://wiki.gentoo.org/wiki/Gentoo_Cheat_Sheet). After eix-sync the question marks are gone.

My hypothesis: Eix looks at the installed packages and what it deems the current version is. If the former is ahead of the latter, it won't arrogantly claim that your package is the wrong version, but instead admit it cannot tell it (because it might not be updated, which in my case was true) by marking it with "?".
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6747

PostPosted: Sun Sep 19, 2021 6:09 am    Post subject: Re: eix showing question mark in package status Reply with quote

qsmodo wrote:
My hypothesis: Eix looks at the installed packages and what it deems the current version is.

Yes, eix uses its own database of "available" packages. That's why it is so fast. The database must be updated with eix-update (or better with eix-postsync if you also want to use eix-diff against the current database). You can put eix-postsync into a portage hook so that this automatically happens when you call emerge --sync, or you can call eix-sync (which origins from a time when those portage hooks were not available and also deals better with eix upgrades involving a major database change - the latter did not happen since years).

However, besides the "available" packages, eix looks also at your current configuration and your installed packages.
Quote:
If the former is ahead of the latter.

That's not the point. The point is whether in your current configuration the installed package version (or a higher one) could be re-installed (according to the information which eix uses, of course).
Back to top
View user's profile Send private message
cboldt
Veteran
Veteran


Joined: 24 Aug 2005
Posts: 1046

PostPosted: Sun Sep 19, 2021 9:09 am    Post subject: Reply with quote

FWIW, my systems connect the `emerge --sync` and `eix-update` steps, but do not use eix-sync to update the portage tree.

The two steps are linked at /etc/portage/repo.postsync.d/egencache

I don't recall where this script originated, most of it isn't mine. It's been changed so as to enable the `eix-diff` function, and to quiet the output during operation of eix-update.

Code:
#!/bin/sh
# Example /etc/portage/repo.postsync.d script. Make it executable (chmod +x) for
# Portage to process it.
#
# With portage-2.2.16 and newer, all repo.postsync.d hooks will be called multiple
# times after syncing each repository.
#
# Older versions of Portage support syncing only one repository.
# In those versions, the postsync.d hooks will be called only once,
# and they will not be passed any parameters.
 
# On a repo.postsync.d hook call, positional parameters contain
# information about the just-synced repository.
 
# Your hook can control it's actions depending on any of the three
# parameters passed in to it.
#
# They are as follows:
#
# The repository name.
repository_name=${1}
# The URI to which the repository was synced.
sync_uri=${2}
# The path to the repository.
repository_path=${3}
 
# Portage assumes that a hook succeeded if it exits with 0 code. If no
# explicit exit is done, the exit code is the exit code of last spawned
# command. Since our script is a bit more complex, we want to control
# the exit code explicitly.
ret=0

if [ -n "${repository_name}" ]; then
        # Repository name was provided, so we're in a post-repository hook.
        printf " ** [/etc/portage/repo.postsync.d/egencache]\n"
        printf " ** In post-repository hook for repository ${repository_name}\n"
        printf " ** synced from remote repository ${sync_uri}\n"
        printf " ** synced into ${repository_path}\n"

        # Gentoo comes with pregenerated cache but the other repositories
        # usually don't. Generate them to improve performance.
        if [ "${repository_name}" != "gentoo" ]; then
                if ! egencache --update --repo="${repository_name}" --jobs=4
                then
                        echo "!!! egencache failed!"
                        ret=1
                fi
        else
                if [ -x /usr/bin/eix-update ] ; then
                  printf " ** Now running eix-update ...\n"
                  cp -a /var/cache/eix/portage.eix /var/cache/eix/previous.eix
                  NOSTATUSLINE=true eix-update -q
                #  eix-update
                  printf " -------\n %(%c)T\n" -1
                fi
        fi
fi

# Return explicit status.
exit "${ret}"
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6747

PostPosted: Sun Sep 19, 2021 9:33 am    Post subject: Reply with quote

cboldt wrote:
The two steps are linked at /etc/portage/repo.postsync.d/egencache

IMHO this is the wrong hook for eix-update, because the main repository (repository name "gentoo") is usually not the last repository for which the hook is called. So the repositories for which egencache has not yet still have outdated information in the generated database. IMHO, it is better to use instead the postsync.d hook like this:
Code:
md /etc/portage/postsync.d
ln -sfn /usr/bin/eux-postsync /etc/portage/postsync.d
Back to top
View user's profile Send private message
cboldt
Veteran
Veteran


Joined: 24 Aug 2005
Posts: 1046

PostPosted: Sun Sep 19, 2021 7:02 pm    Post subject: Reply with quote

Very good point, and I should have been more thoughtful in response.

I agree repos.postsync.d is not the right hook, and that postsync.d is correct.

Either one just happens to work in my circumstance which has no auto update of ANY repo beyond "gentoo." The stage 3 tarball includes the repos.postsync.d directory, and with the parameters being passed, this (incorrect) location has more flexibility in the long run

Funny thing is, last week I had a mix (four machines here, an extra in use as I migrate a LAN of three from x86 to amd64) of executable script, most in postsync.d and one in repos.postsync.d. I decided to make them all common/the same, sticking with the folders in the stage 3 tarball.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Page 1 of 1

 
Jump to:  
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