Summary: | >= sys-apps/portage-2.2.0_alpha186 continues to attempt to emerge masked upgraded packages | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Guy <defuebr> |
Component: | Core | Assignee: | Portage team <dev-portage> |
Status: | RESOLVED INVALID | ||
Severity: | normal | ||
Priority: | Normal | ||
Version: | 2.2 | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Guy
2013-07-09 01:30:08 UTC
(In reply to Guy from comment #0) > [ebuild U #] dev-util/boost-build-1.53.0 [1.52.0-r1] USE="python > -examples {-test}" 0 kB > [ebuild N ] dev-libs/boost-1.53.0:0/1.53 USE="icu mpi nls python This shows that boost-1.53 is not masked. If you want to avoid boost-build-1.53.0 then you also need to mask boost-1.53. This should solve it: echo ">=dev-libs/boost-1.53" >> /etc/portage/package.mask (In reply to Zac Medico from comment #1) > > echo ">=dev-libs/boost-1.53" >> /etc/portage/package.mask The above worked for boost as did: "=dev-libs/boost-1.53" Thank you. As an enduser, I do have some commentary/questions I'm wondering about. I know that masking specific ebuilds{atoms} at least used to work. I usually rely on this when I want to mask updated versions of packages which have depencies which conflict with the same but older required depencies for other installed packages. Or sometimes mask newer versions of depencies which not all of the packages I have installed are ready for. I as an enduser interpret the situation such that if a package has an explicit slot/version, then I have to mask at the slot/version level and not at the ebuild version. i.e.: # eix dev-libs/boost [I] dev-libs/boost Available versions: 1.49.0-r2 (~)1.52.0-r6(0/1.52){tbz2} [m](~)1.53.0(0/1.53) {debug doc icu mpi +nls python static-libs +threads tools PYTHON_TARGETS="python2_5 python2_6 python2_7 python3_1 python3_2 python3_3"} where the slot/version I want to mask is indicated with the '(0/1.53)' notation. I get this and can deal with it. On the other hand, seamonkey doesn't have an explicit slot/version notation: # eix seamonkey [U] www-client/seamonkey Available versions: 2.17 (~)2.17.1 (~)2.18_beta4 {+alsa +chatzilla +crypt custom-cflags custom-optimization +dbus debug gstreamer +ipc +jit libnotify +roaming startup-notification system-cairo system-jpeg system-sqlite wifi LINGUAS="be ca cs de en_GB es_AR es_ES fi fr gl hu it ja lt nb_NO nl pl pt_PT ru sk sv_SE tr uk zh_CN zh_TW"} In addition to masking the explicit atom syntax "=www-client/seamonkey-2.18_beta4" I've also tried: ">=www-client/seamonkey-2.17.9" ">=www-client/seamonkey-2.18_beta*" "=www-client/seamonkey-2.18_beta*" In each atom syntax I've tried, I've gotten: [ebuild U #] www-client/seamonkey-2.18_beta4 [2.17.1] USE="alsa chatzilla crypt dbus gstreamer ipc jit libnotify roaming startup-notification -custom-cflags -custom-optimization -debug -system-cairo% -system-jpeg -system-sqlite -wifi" LINGUAS="ja -be -ca -cs -de -en_GB -es_AR -es_ES -fi -fr -gl -hu -it -lt -nb_NO -nl -pl -pt_PT -ru -sk -sv_SE -tr -uk -zh_CN -zh_TW" 0 kB If I'm doing something totally wrong, I'd really appreciate knowing! One of the things I thought I knew was that all possible atom syntaxes were valid in the /etc/portage/package.* files. Since my understanding appears to be incorrect, I'd appreciate being pointed to the correct place to find out more. Again, thank you You can use any kind of atom you want for masking. There are no restrictions. One thing that you are struggling with is that --autounmask is enabled by default. This means that emerge will try to undo your masks when necessary to satisfy dependencies. In order to avoid this problem, you typically need the mask another package that pulled in the masked package. For example, you needed to mask boost-1.53.0 in order to avoid having emerge try to undo your boost-build-1.0.53 mask. For the seamonkey mask, it looks like you may have a package.unmask entry that is undoing your package.mask entry. You can easily spot an issue like that by looking at the output of this command: grep -r seamonkey /etc/portage You might also try using --autounmask=n to see if it gives you more understandable clues. Invalid package.use {boost} and package.unmask {seamonkey} entries. /etc/portage/package.use/package.use:=dev-libs/boost-1.52.0-r6 -mpi s/b: >=dev-libs/boost-1.52.0-r6 -mpi /etc/portage/package.unmask/package.unmask:>=www-client/seamonkey-2.0 s/b: removed. Thank you for all your patience and help. |