Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Downgrade package with a ton of dependencies (Gnome)
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Installing Gentoo
View previous topic :: View next topic  
Author Message
hubertnnn
n00b
n00b


Joined: 26 Oct 2013
Posts: 28

PostPosted: Fri Jul 18, 2014 9:02 pm    Post subject: Downgrade package with a ton of dependencies (Gnome) Reply with quote

Today I decided to do a whole system update (portage --sync && portage -avuD @world). After that I found that new gnome 3.12 looks extremely ugly and some apps are hard to use with new look&feel, and I want 3.10 back.
My first idea was to mask ">=gnome-base/gnome-3.12" but that did nothing else than downgrading a single package, so I decided to grab it form the other side, and masked ">=x11-libs/gtk+-3.12" and did "emerge -av1uD =x11-libs/gtk+-3.10.8", this time I got error:
Code:

!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:

x11-libs/gtk+:3

  (x11-libs/gtk+-3.10.8:3/3::gentoo, ebuild scheduled for merge) pulled in by
    =x11-libs/gtk+-3.10.8 (Argument)

  (x11-libs/gtk+-3.12.2:3/3::gentoo, installed) pulled in by
    >=x11-libs/gtk+-3.12.0:3[cups?] required by (gnome-base/gnome-core-libs-3.12.0:3.0/3.0::gentoo, installed)
    ^^              ^^^^^^^^                                                                                                                                                           
    (and 14 more with the same problem)


The thing is thats exacly what I want, I want to break the dependency so everything will downgrade back to 3.10.
What is the correct way of doing this? Do I need to mask every single package gnome is using?
Back to top
View user's profile Send private message
Chiitoo
Administrator
Administrator


Joined: 28 Feb 2010
Posts: 2575
Location: Here and Away Again

PostPosted: Sat Jul 19, 2014 12:39 am    Post subject: ><)))°€ Reply with quote

Teegrins, hubertnnn!


I haven't had Gnome installed for 4 years (I forget if I ever actually installed it fully, heh), but generally, I'd probably start by un-merging things (although this will of course render things unusable pretty quick-like!).

Masking the base gnome-package is probably a good idea, since that's probably(?) something that decides the dependencies... or so I might guess. It might be a chore to downgrade the other packages, still, which is why the first thing that I'd probably do is remove them all...

It is possible to do something like this:

Code:
File: /etc/portage/package.mask/package.mask (or /etc/portage/package.mask)

=gnome-base/*-*12*

This, of course, masks not only 3.12.0, but anything with 12 in it. It is not, to my knowledge, possible to do *-3.12* which would be more accurate.

I remember bringing this up around here before, that if it could be improved upon, but I forget if there was any concise answer to it all in the end...


I know it's not much, but I hope this helps!
_________________
Kindest of regardses.
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Sat Jul 19, 2014 7:18 pm    Post subject: Reply with quote

The best way is mask everything.

But the "not best way", but "easiest way" is remove Gnome, than --depclean, now that anything gnome has been removed, all dependencies that can be pull to get your gnome must respect that gnome version.
Back to top
View user's profile Send private message
hubertnnn
n00b
n00b


Joined: 26 Oct 2013
Posts: 28

PostPosted: Wed Jul 23, 2014 7:43 pm    Post subject: Reply with quote

Tried masking with * and it ended up badly- some stuff got masked some not some too much, just big mess.
Unmerging gnome and depclean did nothing, portage still tried to get newest version of every package complaining that gtk+ is masked.
During that I found that gnome is build of 170 packeds and I dont feel like maualy masking every single one of them. Is there an automated way of doing that (a script that will mask everything that depends on >=gtk+-3.12)?
Back to top
View user's profile Send private message
Cyker
Veteran
Veteran


Joined: 15 Jun 2006
Posts: 1746

PostPosted: Wed Jul 23, 2014 9:23 pm    Post subject: Reply with quote

This is going to be of small comfort now, but everyone:

emerge demerge NOW

Then, next time you are going to so something like this, first run
Code:
demerge --record --comment="Imma gonna break mah system nao!"
and then it all goes mammaries skyward, you can just run
Code:
demerge --restore-previous
and it will fix ALL that crap.

Seriously, demerge is the single best portage utility in the tree.
Back to top
View user's profile Send private message
Chiitoo
Administrator
Administrator


Joined: 28 Feb 2010
Posts: 2575
Location: Here and Away Again

PostPosted: Thu Jul 24, 2014 1:24 am    Post subject: Reply with quote

hubertnnn wrote:
Unmerging gnome and depclean did nothing

That certainly should not be. ^^;

If you originally emerged gnome-base/gnome for example, and you then unmerge it, emerge --depclean definitely should remove everything that depended upon it (and nothing else).

That is unless the dependencies have managed to get into your world-file in one way or another.

Looking at gnome-3.10.0.ebuild:

Code:
>=gnome-base/gnome-core-libs-${PV}[cups?]

it depends on 3.10.0 or higher, so indeed, if you have a higher version of some related package still installed, I think there's a high chance for something to depend on a higher version than 3.10.0.

As a first thing, I'd look into the

Code:
/var/lib/portage/world

file, and see if there are related entries (and remove them). If there are none, look into what exactly is pulling what using tools such as equery depends, emerge --depclean --pretend package, and the --tree option while emerging.

Post the output when/if stuck, and we can take gander too. ^^


Good luck!
_________________
Kindest of regardses.
Back to top
View user's profile Send private message
hubertnnn
n00b
n00b


Joined: 26 Oct 2013
Posts: 28

PostPosted: Thu Jul 24, 2014 9:42 pm    Post subject: Reply with quote

I found issue with dependences, I forgot to remove gnome USE flag and libreoffice was pulling some gnomeish stuff, now I have gnome fully removed and successfully(kinda) downgraded gtk to 3.10.
The only package that was using it was gtkmm, so I started playing with it and here is what I found:
[img]http://s27.postimg.org/z2e7xxlrj/Zrzut_ekranu_z_2014_07_24_15_34_34.jpg[/img]
First world upgrade was without masking (third line in package.mask/gnome) gtkmm (it failed), second was with mask (success), there is nothing that depends on gtkmm-3.12.

So it seem like portage is ignoring every package other than newest, even if there is gtkmm-3.10 that fits perfect, it tried gtkmm-3.12, finds missing dependency and stops without trying other versions.
Same problem comes with gnome, if I try to merge gnome-3.10 and it says depends on >=gnome-apps-3.10, it will only try gnome-apps-3.12 and fail to update.
Is that how this should work or am I doing it wrong?

edit:
This is what happens when I am trying to emerge gnome
http://pastebin.com/yr694faM

edt2:
For a single package adding --autounmask-keep-masks solved the issue (portage used gtkmm 3.10 without masking 3.12).
For whole gnome it did not work, "emerge -pv --autounmask-keep-masks --backtrack=10000 gnome" still failed:
Code:

These are the packages that would be merged, in order:

Calculating dependencies... done!

!!! All ebuilds that could satisfy ">=x11-libs/gtk+-3.11.1:3" have been masked.
!!! One of the following masked packages is required to complete your request:
- x11-libs/gtk+-3.12.2::gentoo (masked by: package.mask)

(dependency required by "gnome-base/gnome-control-center-3.12.1-r1" [ebuild])
(dependency required by "gnome-base/gnome-shell-3.12.2" [ebuild])
(dependency required by "gnome-base/gnome-3.10.0" [ebuild])
(dependency required by "gnome" [argument])
For more information, see the MASKED PACKAGES section in the emerge
man page or refer to the Gentoo Handbook.


edit3:
I took some time and masked every package manually, now portage allows the installation, but compiler failed.
http://pastebin.com/9H4zGx0r
What is weird, I tested "#include <new>" on one of my old projects, and it compiles without issues, but when compiling gnome it dies there.
Back to top
View user's profile Send private message
Chiitoo
Administrator
Administrator


Joined: 28 Feb 2010
Posts: 2575
Location: Here and Away Again

PostPosted: Fri Jul 25, 2014 11:18 am    Post subject: Reply with quote

Right, I guess it should pull in the highest acceptable version (and if, like I mentioned before, the gnome meta-package requires >=gnome-base/gnome-core-libs-3.10.0, and 3.12.0 is stable (as it is), that would do, too... I didn't quite think that through before (perhaps I was thinking it was unstable still) my bad).

I'm not sure what to make of that gnome-shell build failure. I've seen it (or something very similar) before, but that's all I remember about it. Since you've built it before, it must be some sort of a dependency thing... or so I maybe guess? Perhaps a dedicated topic for this would be in place.

This is also too late at this point, of course, but it might help in the future: FEATURES="buildpkg" in make.conf, and you'll have binary packages created for all builds (if you don't mind using some space for them, this can be quite useful indeed, especially in situations where you want to go back to the previously built version of a package).
_________________
Kindest of regardses.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Installing Gentoo 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