# webkit-gtk 2.4.9 und 2.4.9-r200 brauche ich wirklich beide?

## ChrisJumper

Dieses Paket braucht ja noch länger zum Compilieren als Libreoffice, muss ich das dann WIRKLICH mehrmals installiert haben oder kann ich, wenn ich die 2.4.9-r200 Version habe, einfach die 2.4.9 entfernen?

Weiß da jemand genaueres?

```
eix webkit-gtk

  [I] net-libs/webkit-gtk

     Available versions:  

     (3)    2.4.8(3/25) 2.4.9(3/25)

     (2)    2.4.8-r200 2.4.9-r200

     (4)    2.6.5(4/37) 2.6.6(4/37) (~)2.8.3(4/37)

       {(+)X aqua coverage debug doc +egl +geoloc gles2 +gstreamer +introspection +jit libsecret +opengl spell test wayland +webgl}

     Installed versions:  2.4.9(3)(23:35:06 23.07.2015)(X egl geoloc gstreamer introspection jit opengl spell webgl -aqua -coverage -debug -gles2 -libsecret -test -wayland) 2.4.9-r200(2)(22:38:42 23.07.2015)(X egl geoloc gstreamer introspection jit opengl spell webgl -aqua -coverage -debug -gles2 -libsecret -test) 2.8.3(4)(21:52:22 23.07.2015)(X egl geoloc gstreamer introspection jit opengl spell webgl -coverage -doc -gles2 -libsecret -test -wayland)

     Homepage:            http://www.webkitgtk.org/

     Description:         Open source web browser engine
```

Ich fürchte das ich es einmal explizit installierte, dann kam es nun mal in den Slot und jetzt habe ich nach einem ICU-Update immer so lange Compiler-Sitzungen.Last edited by ChrisJumper on Thu Jul 30, 2015 7:46 pm; edited 1 time in total

----------

## Fijoldar

Beachte bitte den Slot. Die r200er Version ist für GTK+2 und die ohne für GTK+3. Da es noch recht viele GTK+2 Programme gibt, die wohl auch webkit-gtk benötigen, wirst du wohl auch beide Versionen benötigen.

Du kannst es dir ja mal mit 

```
equery d webkit-gtk-2.4.9-r200
```

bzw.

```
equery d webkit-gtk-2.4.9
```

anzeigen lassen, welche Pakete das nachziehen.

----------

## ChrisJumper

Das ist ja das lustig, die Anzeige von equery d, ist im Nachhinein genau identisch.

Ich vermute ja das das bei mir so ist weil ich portage vielleicht mal mit emerge =net-libs/webkit-gtk-2.4.9 vielleicht mal explizit angewiesen habe die Version zu installieren und jetzt habe ich die überflüssigerweise doppelt. Zum Beispiel um einen Block zu umgehen, oder weil sich eine Version nicht compilieren ließ. Hast du die auch beide installiert?

----------

## Fijoldar

Bei mir ist webkit-gtk sogar aus allen 3 Slots installiert  :Wink: .

(2) wird u.a. von gimp und geany-plugins benötigt

(3) von Evolution, ...

(4) Epiphany, ...

Sehe aber gerade, dass mein Tipp mit equery d nicht ganz korrekt war. Die Ausgabe ist in allen Fällen wirklich identisch. Man muss bei der Ausgabe genau auf den Slot schauen, um die Abhängigkeiten zu entdecken. Meine Ausgabe sieht z.B. so aus:

```
dev-java/swt-4.2-r2 (webkit ? >=net-libs/webkit-gtk-1.2:2)

dev-util/geany-plugins-1.24-r1 (devhelp ? net-libs/webkit-gtk:2)

                               (markdown ? net-libs/webkit-gtk:2)

                               (webkit ? net-libs/webkit-gtk:2)

gnome-extra/sushi-3.16.0 (net-libs/webkit-gtk:4[introspection])

gnome-extra/yelp-3.16.1 (>=net-libs/webkit-gtk-1.3.10:3)

gnome-extra/zenity-3.16.3 (webkit ? >=net-libs/webkit-gtk-2.8.1:4)

mail-client/evolution-3.16.4 (>=net-libs/webkit-gtk-2.2:3)

mail-client/geary-0.10.0 (>=net-libs/webkit-gtk-1.10.0:3[introspection])

media-gfx/gimp-2.8.14 (webkit ? >=net-libs/webkit-gtk-1.6.1:2)

media-gfx/shotwell-0.22.0 (>=net-libs/webkit-gtk-1.4:3)

net-im/empathy-3.12.10 (>=net-libs/webkit-gtk-1.9.1:3)

net-libs/gnome-online-accounts-3.16.3-r1 (>=net-libs/webkit-gtk-2.7.2:4)

net-libs/libproxy-0.4.11-r2 (webkit ? >=net-libs/webkit-gtk-1.6:3)

net-news/liferea-1.11.1 (>=net-libs/webkit-gtk-1.6.1:3)

www-client/epiphany-3.16.3 (>=net-libs/webkit-gtk-2.7.4:4[jit?])
```

----------

## ChrisJumper

Ahh jetzt wird mir einiges klarer, vielen Dank! Diese nummern vor dem eix, welcher die Slot-Versionen abgibt:

 *Quote:*   

> [I] net-libs/webkit-gtk
> 
>      Available versions:  
> 
> (3)    2.4.8(3/25) 2.4.9(3/25)
> ...

 

sind quasi diese Ziffern:

 *Quote:*   

>  equery d =net-libs/webkit-gtk-2.4.9
> 
> ...
> 
> mail-client/evolution-3.16.4 (>=net-libs/webkit-gtk-2.2:3)
> ...

 

Seufz, dann brauche ich wohl doch beide. Schade dann wird das wohl nix mit dem Compiler-Zeit sparen. Vielen Dank für die Aufklärung. Bei Python, ist es ja so das die Nummer dort direkt übereinstimmt mit der Versions-Nummer. Weil die aber ähnlich waren bei WebGtK hatte ich das nicht direkt damit in Verbindung gebracht, aber steht ja auch noch mal direkt drüber!

 *Quote:*   

> dev-lang/python
> 
>      Available versions:  
> 
>      (2.6)  **2.6.9
> ...

 

Wofür steht denn eigetnlich bei Web-GTK dieses

 *Quote:*   

> 2.4.8(3/25)

 

drei von fünfundzwanzig dahinter? Ist das ein besonders Patchset?

Wie war das noch mal mit den Slots, denn ich glaube ich hatte zuvor ja auch Versionen und Slots verwechselt. Verschiedene Versionen sind automatisch verschiedene Slots? Oder sind verschiedene Slots eher auch die selben Versionen unterschiedlich gepatched/unterschiedliche Useflags? Ah ich lese am besten noch mal im Wiki nach.

Vielen dank jedenfalls und noch ein schönes beinahe-Wochenende :)

----------

## Fijoldar

Ganz genau  :Smile: 

Wenn hinter dem eigentlichen Slot noch ein "/" mit einer weiteren Zahl folgt, ist das ein sog. Subslot. Das ist dann nötig, wenn sich innerhalb eines Slots, die Bibliotheken bzw. APIs so stark ändern, dass sie nicht parallel installiert werden können und ein Rebuild der Pakete, die darauf aufbauen nötig wird. Oder auch wenn dadurch Inkompatibilitäten auftreten. Ein bekanntes Beispiel dafür ist u.a. dev-libs/boost. Das sorgt dann schnell mal für Blocks in Portage.

Siehe auch https://devmanual.gentoo.org/general-concepts/slotting/

----------

## Josef.95

Eine schöne schnelle gut übersichtliche Abfrage ob und von wem ein Paket benötigt wird kann man auch mit portage via "emerge --verbose --depclean paket" abfragen.

Beispiel für webkit-gtk aus den drei Slots 

```
emerge -avc webkit-gtk:2 webkit-gtk:3 webkit-gtk:4
```

 Das greift dann auch gleich bei Paketen die mal versehentlich mit im world gelandet sind, und von keinem anderen Paket (mehr) benötigt werden. Und wenn eines der Pakete doch noch benötigt wird, dann steht auch gleich mit dabei welche Dep das ist :)

 (siehe dann unter pulled in by: )

Hier noch ein aktuelles Beispiel mit firefox 

```
emerge -avc firefox

                                                                                                                                                                                             

Calculating dependencies... done!                                                                                                                                                            

  www-client/firefox-39.0 pulled in by:                                                                                                                                                      

    www-plugins/noscript-2.6.9.31 requires >=www-client/firefox-21

...
```

 Hier kann firefox also nicht deinstalliert werden da noch vom Paket www-plugins/noscript benötigt (welches im world steht).

Wenn man nun meint das Paket noscript brauche ich dann auch nicht mehr, dann nimm es mit hinzu 

```
# emerge -avc firefox noscript                                                                                                                                                 

Calculating dependencies... done!

>>> Calculating removal order...

>>> These are the packages that would be unmerged:

 www-plugins/noscript

    selected: 2.6.9.31 

   protected: none 

     omitted: none 

 www-client/firefox

    selected: 39.0 

   protected: none 

     omitted: none 

All selected packages: =www-client/firefox-39.0 =www-plugins/noscript-2.6.9.31

>>> 'Selected' packages are slated for removal.

>>> 'Protected' and 'omitted' packages will not be removed.

Would you like to unmerge these packages? [Yes/No] 
```

Praktischer geht es kaum :)

----------

## franzf

 *Fijoldar wrote:*   

> Ganz genau 
> 
> Wenn hinter dem eigentlichen Slot noch ein "/" mit einer weiteren Zahl folgt, ist das ein sog. Subslot. Das ist dann nötig, wenn sich innerhalb eines Slots, die Bibliotheken bzw. APIs so stark ändern, dass sie nicht parallel installiert werden können und ein Rebuild der Pakete, die darauf aufbauen nötig wird. Oder auch wenn dadurch Inkompatibilitäten auftreten. Ein bekanntes Beispiel dafür ist u.a. dev-libs/boost. Das sorgt dann schnell mal für Blocks in Portage.
> 
> Siehe auch https://devmanual.gentoo.org/general-concepts/slotting/

 

Es ist fast korrekt wie du das wiedergibst  :Wink: 

Subslots geben an, wenn sich die ABI ändert - das ist die Binär-Schnittstelle. Die API (Programmier-Schnittstelle) ist bei dem selben SLOT (die 2 in 2/25) unverändert. SLOT-Änderungen sind üblicherweise nicht mit einem einfachen rebuild zu lösen, denn das Programm (z.B. evolution) lässt sich auf eine bestimmte API ein - in dem Fall webkit-gtk:3. evolution lässt sich nicht mit webkit-gtk:4 übersetzen. Generell muss sich auch weder die ABI noch die API stark ändern - es reicht eine kleine Änderung und alles fliegt auseinander  :Wink: 

Bei den Subslots geht es auch nicht um die Möglichkeit, sie parallel zu installieren. Es macht keinen Sinn mehrere Versionen von webkit-gtk:3 installiert zu lassen  :Wink:  rebuild und da kaas is gessn...

Hier gibts ein paar Infos über binary compatibility in C++ (wenn es dich interessiert):

https://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C++

----------

## Fijoldar

Danke für die kleine Korrektur  :Wink: .

----------

## ChrisJumper

Sehr schön, vielen Dank für die Hinweise. Dadurch wird mir mein Gentoo gleich viel vertrauter, so langsam habe ich ja den Eindruck ich kann mit dem Tempo der Weiterentwicklung nicht mehr schritt halten. Dennoch ist Gentoo ein unbezahlbares Juwel am Linux-Firmament. Wie viel es letztlich wert ist, merkt man immer wenn man sieht womit sich andere (Windows 10) so herum schlagen müssen. Da weiß man was man an Gentoo und der Community hat.

----------

