# gdbus-codegen is blocking glib

## DarkSpir

Hi alle zusammen.

Ich habe heute früh versucht mal die alten Multilib-Pakete aus meinem System rauszuwerfen und gegen die entsprechenden Pakete mit abi_x86_32 Use-Flag zu ersetzen. Als Guide habe ich mich an das hier gehalten: http://wiki.gentoo.org/wiki/Multilib_System_without_emul-linux_Packages

So. Beim letzten Teil des Neubauens aller betroffenen Pakete bin ich dann auf diesen Blocker gestoßen:

[blocks B      ] <dev-util/gdbus-codegen-2.42.1 ("<dev-util/gdbus-codegen-2.42.1" is blocking dev-libs/glib-2.42.1)

Der komplette Output ist ziemlich umfangreich, ich hab das mal auf Pastebin gepackt: http://pastebin.com/6QSSnHEk

An der Stelle sei mal angemerkt, dass ich mir immer sehr schwer tue aus solchen massiven Buchstabenwüsten irgendeine Information zu gewinnen. Am Besten kann man das noch lesen, indem man die Konsole auf einem Full HD-Display auf komplette Bildschirmbreite zieht und das Kommando wiederholt. Aber: Was machen Menschen die grad kein 1920x1080 fahren? Aber das nur nebenbei.

Die Frage ist jetzt: Was tue ich? Ich hab mal in die betroffenen Pakete reingeschaut. gdbus-codegen hat sowas hier in seinem ebuild stehen:

```
# To prevent circular dependencies with glib[test]

PDEPEND=">=dev-libs/glib-${PV}:2"
```

Ich bin da jetzt nicht so fit, aber ich interpretiere das mal als "glib darf nicht in Slot 2 installiert sein" was in der Praxis heisst: "glib-1 darf in Slot 1 installiert sein, glib-2 darf nicht installiert sein"

So, wenn ich mir jetzt die beiden Pakete ansehe, die gdbus-codegen benutzen, dann sehe ich da gleich im udisks-ebuild:

```
COMMON_DEPEND=">=dev-libs/glib-2.32
```

Und das interpretiere ich als "Ich brauch glib-2 installiert". Und damit habe ich aus meiner ungeübten Perspektive eigentlich das Problem schon beschrieben: udisks will gdbus-codegen, udisks will glib-2, gdbus-codegen will kein glib-2.

Die Lösung könnte also sein gdbus-codegen mit allen Paketen zu deinstallieren, die es als Abhängigkeit benötigen. Das wäre udisks (ich hab keine Ahnung was udisks macht und was das wiederum als Abhängigkeit benötigt), aber: Das zweite Paket ist gtk+. Und wenn ich das rausschmeiße, platzen bei mir ganz andere Dinge.

Also. Was tun?

----------

## franzf

Die richtige Stelle wäre das dbus-ebuld gewesen  :Wink:  Da steht:

```
!<dev-util/gdbus-codegen-${PV}
```

Das Entscheidende ist dieser Fetzen:

```
"<dev-util/gdbus-codegen-2.42.1" is blocking dev-libs/glib-2.42.1
```

Achte speziell auf das "<" am Anfang. Ausformuliert:

 *Quote:*   

> gdbus-codegen in Version kleiner als 2.42.1 blockieren glib in Version 2.42.1

 

Lösung:

Sorg dafür, dass portage gdbus-codegen in Version 2.42.1 installieren kann. Also über package.accept_keywords demaskieren.

----------

## DarkSpir

Ich bin mir sicher, es hätte einen noch besseren Weg gegeben diese Information noch komplizierter im emerge-output zu verstecken. Wer bitteschön soll denn da drauf kommen??!?

Aber ja, hat funktioniert, danke. Ich überlege mir noch ob ich mir das noch ein paarmal ansehe in der Hoffnung das System zu begreifen nach dem man aus diesen Informationen herausfiltert was zu tun ist... oder ob ich es bis zum nächsten Mal eh wieder vergessen habe und ich es deshalb einfach ignoriere.  :Smile: 

----------

## Josef.95

 *franzf wrote:*   

> Die richtige Stelle wäre das dbus-ebuld gewesen ;) Da steht:
> 
> ```
> !<dev-util/gdbus-codegen-${PV}
> ```
> ...

 

Ist vermutlich ein Tippfehler - gemeint war wahrscheinlich das glib-2.42.1.ebuild

!? :)

@DarkSpir

sorry, aber ich finde nicht das portage diese Info "versteckt" - im Gegenteil, sie ist recht gut im emerge-Output aufgelistet. Vermutlich wurde nur das "<" (kleiner als) übersehen.

----------

