You are not logged in.

#1 2015-01-29 03:18:19

Salkay
Member
Registered: 2014-05-22
Posts: 618

[SOLVED] ttf-oxygen isn't then is then isn't a dependency

I installed oxygen today, which had ttf-oxygen as a dependency. I almost immediately uninstalled oxygen with -Rs, but pacman didn't uninstall ttf-oxygen. I checked, and suddenly ttf-oxygen was marked as a dependency of other packages. Regardless, I then uninstalled ttf-oxygen manually. This worked fine (I think pacman normally complains if you attempt to uninstall required dependencies?). What is going on here?

Some lines omitted:

$ sudo pacman -S oxygen
Packages (3) frameworkintegration-5.6.0-1  ttf-oxygen-1:5.2.0-1  oxygen-5.2.0-1
(1/3) installing ttf-oxygen                                                                              
$ sudo pacman -Rs oxygen
Packages (2) frameworkintegration-5.6.0-1  oxygen-5.2.0-1
$ pacman -Qi ttf-oxygen
Required By    : backintime  chromium  kdebase-workspace  mplayer  steam
Install Reason : Installed as a dependency for another package
$ sudo pacman -Rs ttf-oxygen
(1/1) removing ttf-oxygen

Last edited by Salkay (2015-01-29 04:20:18)

Offline

#2 2015-01-29 04:12:54

karol
Archivist
Registered: 2009-05-06
Posts: 25,440

Re: [SOLVED] ttf-oxygen isn't then is then isn't a dependency

ttf-oxygen provides ttf-font. Maybe some other packages optdepend on ttf-font.

Offline

#3 2015-01-29 04:20:01

Salkay
Member
Registered: 2014-05-22
Posts: 618

Re: [SOLVED] ttf-oxygen isn't then is then isn't a dependency

Ahhh… okay, that makes sense. I have other packages providing ttf-font (e.g. ttf-dejavu-ib). Hence, I guess pacman shouldn't automatically remove ttf-oxygen with -Rs, since it doesn't know *why* it was installed, and could conceivably have been installed to provide ttf-font. It's slightly annoying that -Rs can't get me back to the previous state, but I can't think of anything obvious that pacman could do to prevent that.

Thanks for the help.

Offline

#4 2015-01-29 04:39:29

alphaniner
Member
From: Ancapistan
Registered: 2010-07-12
Posts: 2,810

Re: [SOLVED] ttf-oxygen isn't then is then isn't a dependency

Also, ttf-oxygen is required by frameworkintegration not oxygen which may be relevant. I have an alias for removing orphans, so I've never paid attention to how exactly -Rs works, and pacman(8) is (IMO) ambiguous on whether or not dependency checks are actually recursive:

pacman(8) wrote:

-s, --recursive
        Remove each target specified including all of their dependencies, provided that (A) they are not required by other packages;
        and (B) they were not explicitly installed by the user. This operation is recursive and analogous to a backwards --sync
        operation, and helps keep a clean system without orphans.

The first sentence indicates to me that dependency checks aren't recursive, but the second sentence indicates that they are...


But whether the Constitution really be one thing, or another, this much is certain - that it has either authorized such a government as we have had, or has been powerless to prevent it. In either case, it is unfit to exist.
-Lysander Spooner

Offline

#5 2015-01-29 04:45:40

Salkay
Member
Registered: 2014-05-22
Posts: 618

Re: [SOLVED] ttf-oxygen isn't then is then isn't a dependency

alphaniner, after the initial -Rs failed to work as expected, I actually attempted `pacman -Qtd` to list orphans. This didn't list ttf-oxygen, so I presume that -Rs is recursive. (Or at least, lack of recursiveness is not to blame here.)

Offline

#6 2015-01-29 05:01:08

alphaniner
Member
From: Ancapistan
Registered: 2010-07-12
Posts: 2,810

Re: [SOLVED] ttf-oxygen isn't then is then isn't a dependency

Yeah, the more I think about it the more I think you're right. And that karol was right about this being an opt-depend issue.

Due to some change in pacman or some package's opt-depends recently, my orphan removal alias

pacman -Rsn $(pacman -Qqtd)

didn't remove something it always had in the past (related to makedeps of an AUR package). I eventually figured out I had to add an extra -t

pacman -Rsn $(pacman -Qqttd)

to get it to remove one of the packages which was an opt-depend of an otherwise unrelated package I have installed.

Also, the bit of pacman(8) I quoted is probably out of date. hmm It's from archlinux.org, but was last updated in 2013...

Last edited by alphaniner (2015-01-29 05:03:52)


But whether the Constitution really be one thing, or another, this much is certain - that it has either authorized such a government as we have had, or has been powerless to prevent it. In either case, it is unfit to exist.
-Lysander Spooner

Offline

#7 2015-01-29 05:19:44

Salkay
Member
Registered: 2014-05-22
Posts: 618

Re: [SOLVED] ttf-oxygen isn't then is then isn't a dependency

I'm not sure if I'm interpreting it correctly, but I don't think it was anything to do with optional dependencies (although this would have had the same result, probably). In my case, I think it was the fact that backintime, chromium, kdebase-workspace, mplayer, and steam all had a strict dependency on ttf-font. When I had installed these five packages, I already had several packages providing that.

However, when I installed ttf-oxygen, this also provided ttf-font. Hence, pacman couldn't remove it automatically, since it presumed that ttf-oxygen might have been installed for the express purpose of providing ttf-font for one of the five packages above.

I didn't realise that -Qqtt was required for optional dependencies! I can see that in the man page now. I thought that previously plain -Qqt would also list optional dependencies, but perhaps that has changed. Or perhaps I imagined it.

Offline

#8 2015-01-29 20:55:08

karol
Archivist
Registered: 2009-05-06
Posts: 25,440

Re: [SOLVED] ttf-oxygen isn't then is then isn't a dependency

Salkay wrote:

I didn't realise that -Qqtt was required for optional dependencies! I can see that in the man page now. I thought that previously plain -Qqt would also list optional dependencies, but perhaps that has changed. Or perhaps I imagined it.

Do you mean https://projects.archlinux.org/pacman.g … 1d8f94d#n9 ?
Yes, it's new in pacman 4.2.

$ pacman -Qh

...

  -t, --unrequired     list packages not (optionally) required by any
                       package (-tt to ignore optdepends) [filter]

...

Offline

Board footer

Powered by FluxBB