Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 411089 - Incorrect dependency on zsh-completion in all ebuilds for eix in the portage tree.
Summary: Incorrect dependency on zsh-completion in all ebuilds for eix in the portage ...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: Normal minor (vote)
Assignee: Martin Väth
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-04-06 23:33 UTC by Andrew Oleynik
Modified: 2012-05-20 19:58 UTC (History)
1 user (show)

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


Attachments
Simple fix for incorrect dependency (eix.patch,448 bytes, patch)
2012-04-06 23:40 UTC, Andrew Oleynik
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Oleynik 2012-04-06 23:33:46 UTC
All ebuilds in the official portage tree for app-portage/eix share the same RDEPEND section:

RDEPEND="sqlite? ( >=dev-db/sqlite-3 )
        nls? ( virtual/libintl )
        zsh-completion? ( !!<app-shells/zsh-completion-20091203-r1 )"

Although zsh-completion dependency says that app-shells/zsh-completion must not be older that exact version, it does not say that it must be in place (in case of USE="zsh-completion").

So, emerge --depclean tries to remove zsh-completion (and, respectively, zsh itself), if there're no more packages except eix depending on zsh-completion.

Reproducible: Always

Steps to Reproduce:
1. Remove all packages depending on zsh-completion, except eix.
2. Emerge eix with USE="zsh-completion".
3. Run 'emerge --depclean'.
Actual Results:  
Portage pretend to remove app-shells/zsh-completion

Expected Results:  
Portage keeps app-shells/zsh-completion, as long as app-portage/eix depends on it.
Comment 1 Andrew Oleynik 2012-04-06 23:40:15 UTC
Created attachment 308041 [details, diff]
Simple fix for incorrect dependency

Just a simple patch, fixing incorrect dependency in ebuild (I took eix-0.25.3.ebuild as an example).
Comment 2 Martin Väth 2012-04-07 06:27:35 UTC
(In reply to comment #0)Expected Results:  
> Portage keeps app-shells/zsh-completion, as long as app-portage/eix depends
> on it.

No, it doesn't depend on it in any way.
In contrast to bash, zsh has the infrastructure for completion built in
and need not use some other package to have a sane completion.

In particular, app-portage/eix does not depend on app-shells/zsh-completion,
since it provides all files needed for completion of eix commands by its own.

app-shells/zsh-completion only adds completion for some other gentoo
commands (emerge, eselect, layman, ...), completely unrelated with eix.
Older versions of that package also provided completion for eix which
would lead to a file collission if used simultaneously with eix's
completion files.

So the current *DEPEND strings of eix are correct.

Perhaps what should be fixed is the description of
app-shells/zsh-completion, since it has a rather different meaning than
app-shells/bash-completion; this might be confusing to new users and is
not so clear from the description.
Perhaps even moving app-shells/zsh-completion to
app-portage/zsh-completion might be appropriate, since this package
only provides completion for gentoo-only commands.
Comment 3 Andrew Oleynik 2012-04-07 07:59:06 UTC
Okay, but the dependency is still incorrect. Run emerge --depclean and see that as app-shells/zsh-completion as app-shells/zsh will be removed.
Or maybe (*sracasm*) app-portage/eix contains itself the functional of zsh and its autocompletion?
Comment 4 Andrew Oleynik 2012-04-07 08:00:52 UTC
Also, why is there a "zsh-completion" USE flag, then?
Comment 5 Jeroen Roovers (RETIRED) gentoo-dev 2012-04-07 14:51:17 UTC
$ euses -s zsh-completion
zsh-completion - Enable zsh completion support

Maybe it would aid discussion to formalise a USE flag description particular to app-portage/eix?
Comment 6 Martin Väth 2012-04-07 17:38:51 UTC
(In reply to comment #4)
> Also, why is there a "zsh-completion" USE flag, then?

For the same reason as it is for all packages which use zsh-completion:
To instruct the eix build system to decide whether to create and install
the zsh-completion files. (Creation of the files does not take long,
but anyway it is unnecessary if the user does not want these files.) 

(In reply to comment #5)
> Maybe it would aid discussion to formalise a USE flag description particular
> to app-portage/eix?

USE=zsh-completion does the same for all packages:
If it is selected, the completion files for the corresponding package
will get installed. There is nothing special about how eix uses it.

The only special thing is app-shells/zsh-completion, since
(in contrast to USE=zsh-completion for individual packages) it provides a
bulk of completion files for several independent gentoo packages.
(And by accident, it used to do this also for eix which is why the
blocker became necessary.)

(In reply to comment #3)
> Okay, but the dependency is still incorrect. Run emerge --depclean and see
> that as app-shells/zsh-completion as app-shells/zsh will be removed.

This is absolutely correct. It would be rather stupid if eix would
force completion support for completely unrelated commands:
Of course, app-portage/eix[zsh-completion] means only that zsh-completion
for *eix* should be installed.

(In reply to comment #3)
> Or maybe (*sracasm*) app-portage/eix contains itself the functional of zsh
> and its autocompletion?

eix provides everything needed to have completion for eix with zsh.
Of course, if you do not use zsh (or do not have it installed) you will not
profit from this completion, but the completion support is provided
independently of this: If you install and use zsh later on,
you will immediately have the completion support without configuration.
Comment 7 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2012-04-08 02:32:11 UTC
It has been more than 12 months since "zsh-completion? ( !!<app-shells/zsh-completion-20091203-r1 )" was added to the eix ebuild and that version of zsh-completion was removed from the tree. The atom will be dropped from the next eix version bump.
Comment 8 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2012-05-20 19:58:22 UTC
removed in 0.25.5