User:Allan/Pacman OptDepends

From ArchWiki
< User:Allan
Revision as of 12:01, 9 September 2011 by Moben (Talk | contribs)

Jump to: navigation, search

The Idea

Currently optdepends in pacman serve no purpose other than informational. It would be good to "improve" this somewhat.

Current Situation

example package with optdepends

> pacman -S python
Optional dependencies for python
    tk: for IDLE, pynche and modulator
> pacman -Qi python
Optional Deps : tk: for IDLE, pynche and modulator

How to improve?

Everything marked with [done] is implemented in the optdep branch of this repo, but probably won't land in pacman before 4.1.


pacman recognises installed optdepends [done]

> pacman -S --asdep tk
> pacman -Qi python
Optional Deps : tk: for IDLE, pynche and modulator [installed]
> pacman -Qi tk
Required By: python (optional)

information about optdepends is not output if an optdepends package is installed [done]

> pacman -S tk
> pacman -S python
(no optional dependencies notification output)

optdepends are not orphans unless a flag is specified [done]

> pacman -Qtd
> pacman -Qtd --optdep
tk 8.5.6-1 (optdepend for python)

optdepends can be removed with -Rs [done]

> pacman -Rs python
Remove (2): python-2.6.1-1  tk-8.5.6-1

packages which are only optrequired get a nonfatal warning

> pacman -R tk
checking dependencies...
:: python: optionally requires tk: for IDLE, pynche and modulator

Remove (1): tk-8.5.10-1

optdeps are not recursively removed if there is still a package needing them [done]

Suppose tk, python and git are installed. python and git optdepend on tk.

> pacman -Rs git
checking dependencies...

Remove (1): git-1.7.6-1

> pacman -Rs git python
checking dependencies...

Remove (3): git-1.7.6-1 python-3.2.1-1 tk-8.5.10-1

Note that this only affects automatic recursion, optdepends can still manually be removed (see above)

cascading only affects optrequires if a flag is given

> pacman -Rc tk
checking dependencies...

Remove (1): tk-8.5.10-1

> pacman -Rc --optdepends tk
checking dependencies...

Remove (2): tk-8.5.10-1 python-3.2.1-1

Other Ideas

  • A flag/configuration option to install a packages optdepends by default
  • Add option to tell pacman if you want it to ask you about installing each single optdepend
  • Add option to tell pacman to list optdepends even when installed and indicate install status of each [done]