Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: GentooForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

09.02.2010, 12:35

Benötige wxWidgets mit zusätzlicher 2.4-Kompatibilität

Hallo

für ein binary-Programm benötige ich wx Widgets mit einer zusätzlichen 2.4-Kompatibilität:

Quellcode

1
2
3
Fatal Error: Mismatch between the program and library build versions detected.
The library used 2.8 (no debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.6),
and your program used 2.8 (no debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.4,compatible with 2.6).


Ich habe gesehen, dass es für wxGTK Compilerflags gibt.
http://docs.wxwidgets.org/stable/wx_back…patibility.html

Sind diese iwie auch im emerge-Prozess zu erreichen?

Ich vermute mal, das gibt Probleme wenn ich das so einfach global in mein ebuild schreibe, da es dann für die anderen Builds nicht mehr passt :-(
Also wäre wol ein paralleler Slot mit eigenem Ebuild und zusätzlichem Kompatibilitätsmodus die einzige Lösung um die anderen Programme nicht zu zerlegen...
Allerdings habe ich dakeine Ahnung, wie mein spezielles Programm die eine wxGTK Version benutzt, und der Rest die vom System bereitgestellte.


Kann mir jemand helfen?
Ganz zur Not könnte ich mir wohl eine spezielle Version der Binary anfertigen lassen...aber das kostet, und beim nächsten größeren wxGTK-update komm ich wieder zur selben Fehlermeldung und muss wieder zahlen :(
Iwie keine befriedigende Lösung, und das ganze unter Windows zu nutzen nervt gerade scho genug, lange halt ich das nicht mehr aus :S

Hoffe es weiß jemand Rat...

MfG
niethitwo

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »niethitwo« (10.02.2010, 20:00)


2

09.02.2010, 13:26

Hi

Eventuell hat noch die 2.6 er Version 2.4-Kompatibilität ?!
Du könntest dir die x11-libs/wxGTK:2.6 zusätzlich im zweiten Slot installieren

Quellcode

1
# emerge -av x11-libs/wxGTK:2.6

und dann via

Quellcode

1
# eselect wxwidgets list
bzw "set" umschalten.
(ungetestet)

3

09.02.2010, 17:53

das wäre natürlich die einfachste Lösung gewesen, leider hat es nicht funktioniert.
die bin benötigt auch wxGTK 2.8, aber mit 2.4 support :-(
leider schein selbst das eselect nicht mal die bin beeinflusst zu haben, er hat einfach die 2.8er libs wieder bemängelt..also gleiche fehlermeldung wie oben; und die 2.6er ignoriert.



Ich habe jetzt die Datensätze aus dem portage in einen lokalen overlay kopiert und in die ebuild datei den Zusatz

Quellcode

1
--enable-compat24

unter src-configure, myconf="..." eingefügt. Dort war auch schon die --enable-compat26 drin...
Danach hab ich ebuild wxGTK-28...ebuild digest ausgeführt.

Leider kommt jetzt folgende Fehlermeldungen, wenn ich aus dem overlay kompilieren möchte:

Quellcode

1
2
3
4
5
6
7
Installing (1 of 1) x11-libs/wxGTK-2.8.10.1-r1

!!! Warning: Your currently selected wxWidgets profile: ( gtk2-unicode-release-2.8 )
!!! Warning: is no longer available.
!!! Warning:
!!! Warning: The closest matching profile:  	( none )
!!! Warning: will be activated in its place.


was hab ich nicht beachtet?

4

09.02.2010, 22:01

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  Which GUI toolkit should wxWidgets use?                 GTK+ 2 with support for gnomeprint
  Should wxWidgets be compiled into single library?       no
  Should wxWidgets be compiled in debug mode?             no
  Should wxWidgets be linked as a shared library?         yes
  Should wxWidgets be compiled in Unicode mode?           yes
  What level of wxWidgets compatibility should be enabled?
                                       wxWidgets 2.4      yes
                                       wxWidgets 2.6      yes
  Which libraries should wxWidgets use?
                                       jpeg               sys
                                       png                sys
                                       regex              builtin
                                       tiff               sys
                                       zlib               sys
                                       odbc               no
                                       expat              sys
                                       libmspack          no
                                       sdl                yes


Mmmmh, sollte eigentlich gehen wie du siehst! Habe auch nichts mit eselect eingestellt.
Intel Core2 Quad CPU @ 2.40GHz mit Gentoo/Gnome3

5

09.02.2010, 23:58

ok, mein Problem ist jetzt, das neue ebuild richtig installiert zu bekommen.

Ich habe im Moment keinen unterschied zwischen den ebuilds aus dem lokalen und dem systemeigenen Portage.
Beide enthalten die zusätzliche Zeile "--enable-compat24".

Beim lokalen Repo macht er folgendes:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
emerge wxGTK
Calculating dependencies... done!

>>> Verifying ebuild manifests

>>> Emerging (1 of 1) x11-libs/wxGTK-2.8.10.1-r1 from unknown repo
 * wxPython-src-2.8.10.1.tar.bz2 RMD160 SHA1 SHA256 size ;-) ...                   	[ ok ]
 * checking ebuild checksums ;-) ...                                               	[ ok ]
 * checking auxfile checksums ;-) ...                                              	[ ok ]
 * checking miscfile checksums ;-) ...                                             	[ ok ]
 * CPV:  x11-libs/wxGTK-2.8.10.1-r1
 * REPO:
 * USE:  X elibc_glibc gnome kernel_linux opengl userland_GNU x86
>>> Unpacking source...
>>> Unpacking wxPython-src-2.8.10.1.tar.bz2 to /var/tmp/portage/x11-libs/wxGTK-2.8.10.1-r1/work
>>> Source unpacked in /var/tmp/portage/x11-libs/wxGTK-2.8.10.1-r1/work
>>> Preparing source in /var/tmp/portage/x11-libs/wxGTK-2.8.10.1-r1/work ...
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/x11-libs/wxGTK-2.8.10.1-r1/work ...
>>> Source configured.
>>> Compiling source in /var/tmp/portage/x11-libs/wxGTK-2.8.10.1-r1/work ...
>>> Source compiled.
>>> Test phase [not enabled]: x11-libs/wxGTK-2.8.10.1-r1

>>> Install wxGTK-2.8.10.1-r1 into /var/tmp/portage/x11-libs/wxGTK-2.8.10.1-r1/image/ category x11-libs
>>> Completed installing wxGTK-2.8.10.1-r1 into /var/tmp/portage/x11-libs/wxGTK-2.8.10.1-r1/image/


die darauffolgende Fehlermeldung beim Versuch die bin auszuführen:

Quellcode

1
./FrontPanel: error while loading shared libraries: libwx_gtk2u_aui-2.8.so.0: cannot open shared object file: No such file or directory


kein wunder,d ie warnung von vorhin:

Quellcode

1
2
3
4
5
6
7
 !!! Warning: Your currently selected wxWidgets profile: ( gtk2-unicode-release-2.8 )
!!! Warning: is no longer available.
!!! Warning:
!!! Warning: The closest matching profile:  	( none )
!!! Warning: will be activated in its place.

Setting wxWidgets profile to none


und

Quellcode

1
2
 eselect wxwidgets list
  (none found)



Jetzt entferne ich das lokale Overlay aus der make.conf (wieso fragt er beim emerge nicht, welches ebuild er nehmen soll? ?( ):

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
emerge wxGTK
Calculating dependencies... done!

>>> Verifying ebuild manifests

>>> Emerging (1 of 1) x11-libs/wxGTK-2.8.10.1-r1 from unknown repo
 * wxPython-src-2.8.10.1.tar.bz2 RMD160 SHA1 SHA256 size ;-) ...                   	[ ok ]
 * checking ebuild checksums ;-) ...                                               	[ ok ]
 * checking auxfile checksums ;-) ...                                              	[ ok ]
 * checking miscfile checksums ;-) ...                                             	[ ok ]
 * CPV:  x11-libs/wxGTK-2.8.10.1-r1
 * REPO:
 * U
 


den Rest kann ich euch nicht zeigen, er verschwindet trotz unendlicher Konsolenhistorie im Nirvana...aber er führt patches aus, compiliert auch richtig (ich seh output, nciht wie oben!!)....und es geht dann erst weiter mit:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
 make[1]: Leaving directory `/var/tmp/portage/x11-libs/wxGTK-2.8.10.1-r1/work/wxPython-src-2.8.
10.1/wxgtk_build/contrib/src/stc'
make[1]: Entering directory `/var/tmp/portage/x11-libs/wxGTK-2.8.10.1-r1/work/wxPython-src-2.8
.10.1/wxgtk_build/contrib/src/svg'
/usr/bin/install -c -d /var/tmp/portage/x11-libs/wxGTK-2.8.10.1-r1/image//usr/lib
/usr/bin/install -c -m 644 /var/tmp/portage/x11-libs/wxGTK-2.8.10.1-r1/work/wxPython-src-2.8.1
0.1/wxgtk_build/lib/libwx_gtk2u_svg-2.8.so /var/tmp/portage/x11-libs/wxGTK-2.8.10.1-r1/image//
usr/lib
/usr/bin/install -c /var/tmp/portage/x11-libs/wxGTK-2.8.10.1-r1/work/wxPython-src-2.8.10.1/wxg
tk_build/lib/libwx_gtk2u_svg-2.8.so.0.6.0 /var/tmp/portage/x11-libs/wxGTK-2.8.10.1-r1/image//u
sr/lib
(cd /var/tmp/portage/x11-libs/wxGTK-2.8.10.1-r1/image//usr/lib ; rm -f libwx_gtk2u_svg-2.8.so
libwx_gtk2u_svg-2.8.so.0; ln -s libwx_gtk2u_svg-2.8.so.0.6.0 libwx_gtk2u_svg-2.8.so.0; ln -s l
ibwx_gtk2u_svg-2.8.so.0 libwx_gtk2u_svg-2.8.so)
/usr/bin/install -c -d /var/tmp/portage/x11-libs/wxGTK-2.8.10.1-r1/image//usr/include/wx-2.8
for f in wx/svg/dcsvg.h; do \
    	if test ! -d /var/tmp/portage/x11-libs/wxGTK-2.8.10.1-r1/image//usr/include/wx-2.8/`di
rname $f` ; then \
    	/usr/bin/install -c -d /var/tmp/portage/x11-libs/wxGTK-2.8.10.1-r1/image//usr/include/
wx-2.8/`dirname $f`; \
    	fi; \
    	/usr/bin/install -c -m 644 /var/tmp/portage/x11-libs/wxGTK-2.8.10.1-r1/work/wxPython-s
rc-2.8.10.1/contrib/src/svg/../../include/$f /var/tmp/portage/x11-libs/wxGTK-2.8.10.1-r1/image
//usr/include/wx-2.8/$f; \
    	done
make[1]: Leaving directory `/var/tmp/portage/x11-libs/wxGTK-2.8.10.1-r1/work/wxPython-src-2.8.
10.1/wxgtk_build/contrib/src/svg'
>>> Completed installing wxGTK-2.8.10.1-r1 into /var/tmp/portage/x11-libs/wxGTK-2.8.10.1-r1/im
age/

strip: i686-pc-linux-gnu-strip --strip-unneeded -R .comment
   usr/lib/libwx_baseu-2.8.so.0.6.0
   usr/lib/libwx_baseu_net-2.8.so.0.6.0
   usr/lib/libwx_gtk2u_core-2.8.so.0.6.0
   usr/lib/libwx_gtk2u_adv-2.8.so.0.6.0
   usr/lib/libwx_gtk2u_html-2.8.so.0.6.0
   usr/lib/libwx_gtk2u_qa-2.8.so.0.6.0
   usr/lib/libwx_baseu_xml-2.8.so.0.6.0
   usr/lib/libwx_gtk2u_xrc-2.8.so.0.6.0
   usr/lib/libwx_gtk2u_aui-2.8.so.0.6.0
   usr/lib/libwx_gtk2u_richtext-2.8.so.0.6.0
   usr/lib/libwx_gtk2u_gl-2.8.so.0.6.0
   usr/lib/libwx_gtk2u_fl-2.8.so.0.6.0
   usr/lib/libwx_gtk2u_gizmos-2.8.so.0.6.0
   usr/lib/libwx_gtk2u_gizmos_xrc-2.8.so.0.6.0
   usr/lib/libwx_gtk2u_ogl-2.8.so.0.6.0
   usr/lib/libwx_gtk2u_plot-2.8.so.0.6.0
   usr/lib/libwx_gtk2u_stc-2.8.so.0.6.0
   usr/lib/libwx_gtk2u_svg-2.8.so.0.6.0
   usr/bin/wxrc-2.8

>>> Installing (1 of 1) x11-libs/wxGTK-2.8.10.1-r1
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

 * GNU info directory index is up-to-date. 



ich erhalte:

Quellcode

1
2
3
eselect wxwidgets list
Available wxWidgets profiles:
  [1]   gtk2-unicode-release-2.8


also setze ich es mal...

bin ausführen:

Quellcode

1
2
3
 Fatal Error: Mismatch between the program and library build versions detected.
The library used 2.8 (no debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.6),
and your program used 2.8 (no debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.4,compatible with 2.6).


klar, hier holt er das ebuild aus dem Netz und da fehlt der --enable-compat-2-4 eintrag natürlich. :(

also hängt es zunächst ein Mal am falsch laufenden install über den lokalen Overlay.

aber was tut hier nicht? der Ordner ist 1 zu 1 kopiert von Inet-Overlay...und dann das ebuild angepasst mit meinem zusätzliche CompilerFLAG und der Verifizierung des ebuilds.

Er macht beim installieren IMO gar nichts...er entpackt ewig sourcen...aber führt keine Patches aus.
er macht weder einen src_configure, make o.ä....er schreibt nur das er es gemacht hätte....output gibt es keinen.

Ich steh mit meinem begrenzten Wissen über das Portagesystem und die Funktion von eselect hier völlig auf dem Schlauch, bin aber überzeugt dass ich mit dem compilerflag alles zum laufen bekommen müsste. :)

6

10.02.2010, 10:01

Was passiert, wenn du die ganz normale wxGTK-2.8 emergest und dann anschließend die --enable-compat24 option im ebuild setzt
und jetzt direkt via ebuild das Package reinziehst? (alles im normalen portage)

Quellcode

1
2
# EB="/usr/portage/x11-libs/wxGTK/wxGTK-2.8.10.1-r5.ebuild"
# ebuild ${EB} merge


Ändert das was?
http://www.dyle.org
IM-Account (Jabber!) sind auf meiner HP ...
There is no place like /home

http://www.gentooforum.de
http://www.gentoofreunde.org

<div>how to annoy a web developer?</span>

7

10.02.2010, 13:59

Es macht keinen Sinn das komplette /usr/portage in ein lokales Overlay zu kopieren. Damit kopierst Du auch die eclass(es) und profiles. Da könnte sich schon was überschneiden. Bedenke auch, Portage verändert sich täglich, Dein Overlay nicht.
Es reicht, wenn Du nur die Anwendung (und nur die Version) kopierst, die Du ändern willst. Die verwendeten Patches sollten mit kopiert werden. Zusätzlich sollte die Datei "$overlay"/profiles/repo_name existieren, in der Du den Namen des Overlays festlegst.

Hier ein Beispiel:

Quellcode

1
2
3
4
5
6
7
8
9
10
~ $ find /usr/local/overlay/
/usr/local/overlay/
/usr/local/overlay/dev-util
/usr/local/overlay/dev-util/perforce-gui
/usr/local/overlay/dev-util/perforce-gui/perforce-gui-2008.2.ebuild
/usr/local/overlay/dev-util/perforce-gui/Manifest
/usr/local/overlay/profiles
/usr/local/overlay/profiles/repo_name
~ $ cat /usr/local/overlay/profiles/repo_name
lokal
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

8

10.02.2010, 19:59

Was passiert, wenn du die ganz normale wxGTK-2.8 emergest und dann anschließend die --enable-compat24 option im ebuild setzt
und jetzt direkt via ebuild das Package reinziehst? (alles im normalen portage)

Quellcode

1
2
# EB="/usr/portage/x11-libs/wxGTK/wxGTK-2.8.10.1-r5.ebuild"
# ebuild ${EB} merge


Ändert das was?
Vielen Dank, jetzt funktioniert es...muss jetzt halt immer das ebuild anpassen...aber tausendmal besser als "läuft nicht" und Windows :)


@bell: danke für die Infos, ich hab mal eine Datei mit dem Reponamen angelegt.
Das ich dann jedes mal eine neue wxGTK-Version hätte in mein overlay packen müssen, war mir klar, allerdings ist mir bis jetzt nicht klar, was genau daran nciht getan hat und wie man sowas ordentlich macht...naja, ich bin dann mal die Doku lesen ;)

Gentoo ist toll...bei jeder anderen Distribution hätte ich auf Grund der vorkompilierten Pakete keine Chance außer selbstbauen (würg) gehabt...I love Portage :love:

Vielen Dank an euch vier :thumbsup:

jetzt nur noch schnell alle von wxGTK abhängende Pakete neu kompilieren...:)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »niethitwo« (10.02.2010, 20:05)


9

10.02.2010, 22:16

:thumbup:

Doch dann sollte es auch mit einem ebuild in einem lokalen Overlay funktionieren :!:
Uns dyle hatte grad vor ein paar Tagen in Stichpunkten beschrieben wie man sich ein lokales Overlay erstellen kann, schau mal hier Supertux Milestone 2
Du könntest dir dann zb das Verzeichnis /usr/portage/x11-libs/wxGTK ins lokale Overlay kopieren und dort deine Änderungen vornehmen. Das portage Versionen aus Overlays bevorzugt verwendet hattest du ja schon bemerkt...;-)

MfG

10

11.02.2010, 01:37

hi

das lokale overlay war bei mir schon für canon-treiber vorhanden...

reicht es denn, nachher das ebuild-file in den passenden ordner zu packen inkl. evtl. patches?

denn ich habe ja den ganze ordner kopiert, da ich nicht exakt wusste, was ich alles benötige... :whistling:

11

11.02.2010, 11:17

Jo, es sollte reichen in deinem Overlay
/pfad/zum/overlay/x11-libs/wxGTK
anzulegen, also Kategorie/Paket
und dort das "files" Verzeichnis aus /usr/portage/x11-libs/wxGTK/files reinzukopieren (dort sind die patches drin), und natürlich dein modifiziertes ebuild
nun noch

Quellcode

1
# ebuild /pfad/zum/overlay/kategorie/paket/.ebuild manifest
ausführen.
Somit sollte es sich dann via emerge bauen lassen.