Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Why does portage want to upgrade everything?
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
Punchcutter
Guru
Guru


Joined: 11 Feb 2007
Posts: 354

PostPosted: Sat Aug 23, 2014 11:38 pm    Post subject: Why does portage want to upgrade everything? Reply with quote

Pardon me if this is a well-known thing,... I looked on the sticky threads and didn't see anything relevant.

I'm often frustrated recently because portage wants to build a lot more than I'm asking it for. Right now I'm trying to upgrade Firefox, and portage wants to upgrade a ton of other unrelated stuff at the same time, including Chromium and Libreoffice.

How do I stop this behavior? It seems this is "the new way of things". But occasionally I'll really wanna emerge just one thing and have only its actual dependencies upgraded along with it, not my kitchen sink.

Is there any way I can force portage to back off? Thanks.
Back to top
View user's profile Send private message
asturm
Developer
Developer


Joined: 05 Apr 2007
Posts: 8935

PostPosted: Sat Aug 23, 2014 11:59 pm    Post subject: Reply with quote

Could you show us what you are actually doing, and portage's output?
Back to top
View user's profile Send private message
Punchcutter
Guru
Guru


Joined: 11 Feb 2007
Posts: 354

PostPosted: Sun Aug 24, 2014 12:09 am    Post subject: Reply with quote

Thanks, genstorm. I'm a little mystified that you don't seem to think this is the New Normal.... :? Apparently when dependencies are upgraded, other apps that depend on those are being rebuilt as well (and recursively onward??) I guess I understand the logic behind it, but I still don't want it to happen. I'd rather just be warned.
Code:
# emerge -av firefox

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

Calculating dependencies... done!
[ebuild     U  ] sys-libs/ncurses-5.9-r3:5 [5.9-r2:5] USE="cxx unicode -ada -debug -doc -gpm* -minimal -prof
[ebuild  N     ] dev-libs/libatomic_ops-7.2d  1,234 kB
[ebuild     U  ] sys-libs/readline-6.2_p5-r1 [6.2_p1] USE="-static-libs%" 9 kB
[ebuild     U  ] app-text/libwpg-0.2.2:0.2 [0.2.1:0.2] USE="-doc -static-libs" 294 kB
[ebuild  N     ] media-libs/libfreehand-0.0.0  USE="-doc -static-libs" 263 kB
[ebuild     U  ] app-office/libreoffice-l10n-4.2.5.2 [4.1.4.2] USE="-offlinehelp" LINGUAS="-af -am -ar -as - -dgo -dz -el -en -en_GB -en_ZA -eo -es -et -eu -fa -fi -fr -ga -gd -gl -gu -he -hi -hr -hu -id -is -it -ja -mni -mr -my -nb -ne -nl -nn -nr -nso -oc -om -or -pa_IN -pl -pt -pt_BR -ro -ru -rw -sa_IN -sat -sd -si -sids -tt -ug -uk -uz -ve -vi -xh -zh_CN -zh_TW -zu (-ca_XV%) (-ku%) (-sh%)" 0 kB
[ebuild  r  U  ] dev-libs/icu-52.1:0/52 [51.2-r1:0/51.2] USE="-debug -doc -examples -static-libs" 23,316 kB
[ebuild     U  ] dev-libs/nspr-4.10.6-r1 [4.10.4] USE="-debug" 1,105 kB
[ebuild  r  U  ] dev-libs/libgcrypt-1.5.3:0/11 [1.5.0-r2:0/0] USE="static-libs" 1,474 kB
[ebuild     U  ] dev-db/sqlite-3.8.4.3:3 [3.7.16.2:3] USE="icu readline secure-delete -debug -doc -static-li
[ebuild     U  ] dev-libs/nss-3.16.3 [3.16] USE="cacert nss-pem -utils" 6,277 kB
[ebuild  rR    ] app-text/libmspub-0.0.6  USE="-doc -static-libs" 0 kB
[ebuild     U  ] dev-libs/libxml2-2.9.1-r4:2 [2.9.0-r2:2] USE="icu python readline -debug -examples -ipv6 -l2% (-python3_4) (-python2_5%) (-python2_6%)" 5,052 kB
[ebuild  r  U  ] dev-libs/libxslt-1.1.28-r3 [1.1.28-r1] USE="crypt -debug -python -static-libs" PYTHON_TARGE
[ebuild  N     ] app-text/libetonyek-0.0.3  USE="-doc -static-libs {-test}" 334 kB
[ebuild  NS    ] dev-cpp/libcmis-0.4.1:0.4 [0.2.3-r1:0.2, 0.3.1:0.3] USE="-man -static-libs {-test}" 623 kB
[ebuild  N     ] app-text/libebook-0.0.2  USE="-doc {-test}" 401 kB
[ebuild  N     ] app-text/libabw-0.0.2  USE="-doc -static-libs" 301 kB
[ebuild     U  ] app-text/libmwaw-0.2.0 [0.1.10] USE="-doc -static-libs" 790 kB
[ebuild     U  ] app-text/libodfgen-0.0.4 [0.0.2] 290 kB
[ebuild  N     ] media-libs/libexif-0.6.21-r1  USE="nls -doc -static-libs" 1,337 kB
[ebuild  N     ] net-nds/openldap-2.4.38-r2  USE="berkdb crypt gnutls icu ssl syslog tcpd -cxx -debug -experl (-selinux) -slp -smbkrb5passwd" 5,390 kB
[ebuild     U  ] www-client/firefox-24.7.0 [24.6.0] USE="alsa dbus gstreamer jit minimal wifi -bindist -custinux) -startup-notification -system-cairo -system-icu -system-jpeg -system-sqlite {-test}" LINGUAS="-af -ak en_GB -en_ZA -eo -es_AR -es_CL -es_ES -es_MX -et -eu -fa -fi -fr -fy_NL -ga_IE -gd -gl -gu_IN -he -hi_IN -hr-mr -nb_NO -nl -nn_NO -nso -or -pa_IN -pl -pt_BR -pt_PT -rm -ro -ru -si -sk -sl -son -sq -sr -sv_SE -ta -ta_
[ebuild  r  U  ] www-client/chromium-36.0.1985.125 [35.0.1916.86] USE="cups tcmalloc -bindist -custom-cflagsLINGUAS="am ar bg bn ca cs da de el en_GB es es_LA et fa fi fil fr gu he hi hr hu id it ja kn ko lt lv ml mrTW" 200,647 kB
[ebuild  rR    ] app-crypt/gnupg-2.0.25  USE="bzip2 nls readline -adns -doc -ldap -mta (-selinux) -smartcard
[ebuild  r  U  ] app-office/libreoffice-bin-4.2.5.2 [4.1.4.2] USE="(-aqua) -gnome -java -kde" PYTHON_SINGLE_on3_3 (-python3_4)" 69,882 kB

Total: 26 packages (16 upgrades, 7 new, 1 in new slot, 2 reinstalls), Size of downloads: 320,901 kB

The following packages are causing rebuilds:

  (dev-libs/libgcrypt-1.5.3::gentoo, ebuild scheduled for merge) causes rebuilds for:
    (dev-libs/libxslt-1.1.28-r3::gentoo, ebuild scheduled for merge)
    (app-crypt/gnupg-2.0.25::gentoo, ebuild scheduled for merge)
    (www-client/chromium-36.0.1985.125::gentoo, ebuild scheduled for merge)
  (media-libs/libexif-0.6.21-r1::gentoo, ebuild scheduled for merge) causes rebuilds for:
    (www-client/chromium-36.0.1985.125::gentoo, ebuild scheduled for merge)
  (dev-libs/icu-52.1::gentoo, ebuild scheduled for merge) causes rebuilds for:
    (app-office/libreoffice-bin-4.2.5.2::gentoo, ebuild scheduled for merge)
    (app-text/libmspub-0.0.6::gentoo, ebuild scheduled for merge)
    (www-client/chromium-36.0.1985.125::gentoo, ebuild scheduled for merge)

Would you like to merge these packages? [Yes/No] n

Quitting.

Back to top
View user's profile Send private message
Ant P.
Watchman
Watchman


Joined: 18 Apr 2009
Posts: 6920

PostPosted: Sun Aug 24, 2014 12:38 am    Post subject: Reply with quote

The simple answer is some of those ebuilds no longer exist.
The complex answer is at the bottom of that output.
Back to top
View user's profile Send private message
Punchcutter
Guru
Guru


Joined: 11 Feb 2007
Posts: 354

PostPosted: Sun Aug 24, 2014 2:09 am    Post subject: Reply with quote

Ant P., you seem to be confirming my hunch in my previous post. The fact is, this never used to happen until, I dunno, 9 months to a year ago. Practically speaking, I want to prevent the recursive rebuilding, however recommended it may be (or be given the option to remove certain top-level packages like chromium from the rebuild list). Can I do that? Or am I just stuck? I have older, slower h/w and a not-super-fast Internet link, so this is really troublesome.
Back to top
View user's profile Send private message
miket
Guru
Guru


Joined: 28 Apr 2007
Posts: 488
Location: Gainesville, FL, USA

PostPosted: Sun Aug 24, 2014 5:37 am    Post subject: Reply with quote

I don't remember just when the feature got added, but I looked forward to it with great anticipation before it came. Updates--either updates to specific packages or world updates--often trigger updates to dependencies. These latter updates very often result in removals of sonames that other packages need.

This meant that nearly every time after an update you would need to run revdep-rebuild so that other packages broken by the library upgrade would work again.

In your case, when you upgraded Firefox, you triggered upgrades to libgcrypt, libexif, and icu that resulted in new sonames for those libraries. If then you tried to run a program linked to an older version of one of these libraries (as Chromium was, for instance), it would fail to load.

We used to have to go through the dreary task of running revdep-rebuild all the time after an upgrade. Oftentimes when I ran it I found that I didn't really need to do so. Now Portage figures out when programs depending on upgraded libraries would break because of a soname change and schedules them for rebuild.

This means that, yes, you're going through just the same kind of package rebuilding as you did before this Portage change--and you get it without having to run revdep-rebuild. I call it a big win.
Back to top
View user's profile Send private message
asturm
Developer
Developer


Joined: 05 Apr 2007
Posts: 8935

PostPosted: Sun Aug 24, 2014 6:33 am    Post subject: Reply with quote

Punchcutter wrote:
Ant P., you seem to be confirming my hunch in my previous post. The fact is, this never used to happen until, I dunno, 9 months to a year ago. Practically speaking, I want to prevent the recursive rebuilding, however recommended it may be (or be given the option to remove certain top-level packages like chromium from the rebuild list). Can I do that? Or am I just stuck? I have older, slower h/w and a not-super-fast Internet link, so this is really troublesome.

Basically, portage prevents you from a broken state.
Back to top
View user's profile Send private message
Punchcutter
Guru
Guru


Joined: 11 Feb 2007
Posts: 354

PostPosted: Sun Aug 24, 2014 6:45 am    Post subject: Reply with quote

OK, miket, you've convinced me to take the medicine and like it :)

Still, I think it would be good to allow the user to proceed while postponing some of the rebuilds, for cases where they really need to upgrade package X and simply don't have time and resources to finish the whole job at once.
Back to top
View user's profile Send private message
Aquous
l33t
l33t


Joined: 08 Jan 2011
Posts: 700

PostPosted: Sun Aug 24, 2014 8:57 am    Post subject: Reply with quote

Punchcutter wrote:
Ant P., you seem to be confirming my hunch in my previous post. The fact is, this never used to happen until, I dunno, 9 months to a year ago. Practically speaking, I want to prevent the recursive rebuilding, however recommended it may be (or be given the option to remove certain top-level packages like chromium from the rebuild list). Can I do that? Or am I just stuck? I have older, slower h/w and a not-super-fast Internet link, so this is really troublesome.

This is the new EAPI=5 subslot feature. It allows an ebuild to specify that it needs to be rebuilt when a library it depends on becomes ABI-incompatible by an update. This means that (in an ideal world) you will never again need to run revdep-rebuild and that you will never again have a broken system due to library versioning issues.
In this case, llibmspub, and gnupg are being rebuilt because a dependent library will be updated which will break that package. icu, libgcrypt, libxslt, and libreoffice-bin have the same issue but also happen to have a new version available.
You could skip a package you don't want to rebuild now by simply adding --keep-going to your emerge command line and doing something like 'sudo killall make' when the package you want to skip is being built. Afaik that's the only way, and be advised that this will leave your system in a potentially incoherent state, i.e. you MUST run revdep-rebuild.
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6747

PostPosted: Sun Aug 24, 2014 9:51 am    Post subject: Reply with quote

Punchcutter wrote:
Still, I think it would be good to allow the user to proceed while postponing some of the rebuilds

I suppose that you can do this with --exclude. However, you should be aware that after the upgrade the excluded packages might no longer work (and if you exclude some libraries even your "main" package might fail to work due to this).
Back to top
View user's profile Send private message
asturm
Developer
Developer


Joined: 05 Apr 2007
Posts: 8935

PostPosted: Sun Aug 24, 2014 2:18 pm    Post subject: Reply with quote

Using --exclude, portage will complain that required ebuilds are not available.
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6747

PostPosted: Sun Aug 24, 2014 3:45 pm    Post subject: Reply with quote

genstorm wrote:
Using --exclude, portage will complain that required ebuilds are not available.

Even for subslot-dependencies like libreoffice? I am surprised, but I admit that I did not verify it.
Anyway, you can use --ignore-built-slot-operator-deps=n to ignore all these subslot-dependencies, but this is dangerous, of course.
As a last resort, if you know what you are doing, you can explicitly use -O and list all packages you want to upgrade.
Back to top
View user's profile Send private message
asturm
Developer
Developer


Joined: 05 Apr 2007
Posts: 8935

PostPosted: Sun Aug 24, 2014 3:57 pm    Post subject: Reply with quote

mv wrote:
genstorm wrote:
Using --exclude, portage will complain that required ebuilds are not available.

Even for subslot-dependencies like libreoffice? I am surprised, but I admit that I did not verify it.

Out of experience, I would think that should result in a conflict between installed and to-be-merged packages.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming 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