[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gentoo-desktop
Subject:    Re: [gentoo-desktop] Evolution and ldap - problem still there [Developer input requested]
From:       "Boyd Stephen Smith Jr." <bss03 () volumehost ! com>
Date:       2005-02-25 0:27:11
Message-ID: 200502241827.11599.bss03 () volumehost ! com
[Download RAW message or body]

On Thursday 24 February 2005 04:10 pm, Damian Kolkowski

<damian@kolkowski.no-ip.org> wrote:
> * Boyd Stephen Smith Jr. <bss03@volumehost.com> [2005-02-24 18:08]:
> > Well, the problem is that the package in question may not be in your
> > world file
>
> Heh, I write all of this below and now I understand you :-)
>
> My world file? I thought that everything is in my "world file" - hmmm..?

Nope.  If you emerge foo-bar/baz and that pulls in foo-bat/gonzo as a
dependency, foo-bat/gonzo is not placed in your world file.  Similarly,
dependencies of foo-bat/gonzo are pulled in but not added to world.

If you want emerge <package> to not add the package to world, you should
use --oneshot (-1).  If you want to add a package to world that is
installed, you can simply place it in there youself.  If you want to add a
package to world that is not installed or you don't want to mess with the
world file manually, just emerge <package>.

BTW, there's no need for quotes around the phrase 'world file'.  Portage
literally maintains a file, named world, in /var/lib/portage that directs
the behavior of emerge world.

[In fact, there's a nice GLEP that will, if implemented, allow (somewhat)
arbitary files structed like world in /var/lib/portage/sets to direct
portage similarly.]

> Fortunately it works good for "ldap" and evolution :-D And there is no
> need in my gentoo case to use -uD :-)

While what you attempted worked in this particular case, you are
misunderstanding how emerge world works, and how --newuse and -D modify
that separately and together.

> > If it's not, --newuse will not pick up on it, unless you add --deep
> > (-D).  --ask (-a) is better than pretend, 'cept that it has to be used
> > interactively.  --verbose (-v) and --tree (-t) make the pretend
> > information a lot more useful.  I suppose --update (-u) was a bit of
> > overkill.
> >
> > I rarely, if ever, go without -avt.  Of course, -uD and --newuse are
> > only added as needed.
>
> I do not agre :-)
>
> If we use "--newuse" because we add USE="ldap", emerge will find
> packages that need to be install [1], so something like -D, -u in that
> case is useles :-)

No, as I said before, if you do emerge --newuse world it will only
(initially) scan world for packages that have new use flags, if none exist
then no package will be recompiled, even if a dependency has had it's use
flags change.  [When a package is slated for recompile, emerge does, then
check it's dependencies.]

This is the same with -u (or a combination of the two).  Only packages in
your world file will be checked for an up/downgrade, as well a dependecies
of any package that does need to be remerged.  If a dependcy has been
updated, but not it's dependent in world, it will not be recompiled.

--deep (-D) changes this behavior so that all dependencies are scanned for
possible remerge, even if the package it depends on is up-to-date w.r.t.
the -u and --newuse options passed on the command-line.

[Can a dev (Ciran?) back me up on this or am I just talking out of my
arse?]

> P.S. I have small wuestion:
>
> Why is this happening?

Read my text above and you should understand the problem.

What is hapening is that kdenetwork is not in your world file AND the item
in your world file that depends on it does not have a wifi option but does
have an ldap option.

When you specify just wifi, emerge never checks the kdenetwork package for
new use flags because what it depends on doesn't need to be remerged.

When you specific both ldap and wifi, emerge notices that the dependent
needs to be recompiled because of the changed ldap flag, then it scans
it's dependencies and notices that kdenetwork needs to be remerged due to
the changes wifi flag.

Also, hopefully you are using 'USE="blah" emerge <stuff>' syntax just as
 an example; you really shouldn't be using that if you want to keep your
 use flags maintainable.

--
Boyd Stephen Smith Jr.
bss03@volumehost.com
ICQ: 514984 YM/AIM: DaTwinkDaddy

[1] But only if that package is in the world file or a there is a direct
dependecy chain of packages that need to be remerged leading to it.  After
a use-flag change, you really want to 'emerge -D --newuse world'.

--
gentoo-desktop@gentoo.org mailing list

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic