mono Installation - gdiplus fehlt und läßt sich nicht nachinstallieren

Dieses Thema im Forum "FreeBSD - Anwendungen und Ports" wurde erstellt von HaraldLangner, 27 April 2012.

  1. HaraldLangner

    HaraldLangner HL1234

    Registriert seit:
    18 November 2004
    Beiträge:
    128
    Ort:
    Frankfurt am Main
    Hallo,
    ich habe ein update auf /usr/ports/lang/mono gemacht. Das ist auch durchgelaufen. Aber dann musste ich feststellen das die Library libgdiplus fehlt.
    Wenn ich den Port nochmal installiere enthält make's output die folgende Meldung:
    Libraries:
    libgdiplus: assumed to be installed
    aber mit
    #locate libgdiplus
    ist keine Installation zu finden. Auch mit
    #pkg_info -a | grep libgdi
    nichts...

    Ich habe dann versucht die Libraray nach zu installieren:
    #cd /usr/ports/x11-toolkits/libgdiplus
    #make install clean
    aber hier gibt es einen Linker-Fehler und ich kann diesen nicht beheben:
    Code:
    ....
    gmake[2]: Leaving directory `/usr/ports/x11-toolkits/libgdiplus/work/libgdiplus-2.10/src'
    Making all in tests
    gmake[2]: Entering directory `/usr/ports/x11-toolkits/libgdiplus/work/libgdiplus-2.10/tests'
    /bin/sh ../libtool --tag=CC   --mode=link cc  -D_THREAD_SAFE -O2 -pipe -fno-strict-aliasing -pthread  -L/usr/local/lib -o testgdi testgdi.o ../src/libgdiplus.la -lfontconfig 
    libtool: link: cc -D_THREAD_SAFE -O2 -pipe -fno-strict-aliasing -pthread -o .libs/testgdi testgdi.o  -L/usr/local/lib ../src/.libs/libgdiplus.so /usr/local/lib/libglib-2.0.so -licui18n /usr/local/lib/libpcre.so /usr/local/lib/libcairo.so /usr/local/lib/libpixman-1.so /usr/local/lib/libxcb-shm.so /usr/local/lib/libxcb-render.so -lGL /usr/local/lib/libXrender.so /usr/local/lib/libX11.so /usr/local/lib/libxcb.so /usr/local/lib/libXau.so /usr/local/lib/libXdmcp.so /usr/local/lib/libpthread-stubs.so -lrpcsvc /usr/local/lib/libtiff.so -llzma -ljbig /usr/local/lib/libjpeg.so /usr/local/lib/libungif.so -lpng /usr/local/lib/libexif.so /usr/local/lib/libintl.so /usr/local/lib/libiconv.so -lm /usr/local/lib/libfontconfig.so /usr/local/lib/libfreetype.so -lz -lbz2 /usr/local/lib/libexpat.so -pthread -Wl,-rpath -Wl,/usr/local/lib
    /usr/bin/ld: warning: libbz2.so.4, needed by /usr/local/lib/libfreetype.so, 
    may conflict with libbz2.so.1
    testgdi.o(.text+0x29): In function `win_draw':
    : undefined reference to `GdipCreateFromXDrawable_linux'
    gmake[2]: *** [testgdi] Fehler 1
    gmake[2]: Leaving directory `/usr/ports/x11-toolkits/libgdiplus/work/libgdiplus-2.10/tests'
    gmake[1]: *** [all-recursive] Fehler 1
    gmake[1]: Leaving directory `/usr/ports/x11-toolkits/libgdiplus/work/libgdiplus-2.10'
    gmake: *** [all] Fehler 2
    *** Error code 1
    
    Ich glaube der Fehler liegt hier "/usr/bin/ld: warning: libbz2.so.4, needed by /usr/local/lib/libfreetype.so, may conflict with libbz2.so.1"

    Aber wie kann man so einen "conflict" lösen? libfreetype hat mehrere Abhängigkeiten.
    Zuletzt bearbeitet: 27 April 2012
  2. HaraldLangner

    HaraldLangner HL1234

    Registriert seit:
    18 November 2004
    Beiträge:
    128
    Ort:
    Frankfurt am Main
    Hi,
    ich habe inzwischen folgendes versucht:
    Code:
    #pkg_libchk [-a]
    misses libraries (30.04.2012):
    -----------------------------
    -misc/compat7x	                       /usr/local/bin/NNNNN misses libXYZ.so.N
    -java/diablo-jdk16		       etc...
    -print/freetype-tools
    -www/libwww
    -security/p5-Crypt-OpenSSL-Bignum
    -security/p5-Crypt-OpenSSL-Random
    -security/p5-Crypt-SSLeay
    
    dann Update auf alle Packages gemacht
    
    #portupgrade -ufvn <package> #Test
    #portupgrade -ufv  <package>
    
    immer wieder
    #pkgdb -L
    
    und
    #pkg_libchk
    
    bis nichts mehr gefunden wurde
    
    und dann noch 
    #portupgrade -uf bzip2
    
    Aber die Fehlermeldung ist immer noch da und der Port installiert nicht:
    Code:
    /usr/ports/x11-toolkits/libgdiplus] => make clean
    /usr/ports/x11-toolkits/libgdiplus] => make
    ===>  Patching for libgdiplus-2.10_1
    ===>   libgdiplus-2.10_1 depends on executable: gmake - found
    ===>   libgdiplus-2.10_1 depends on executable: pkg-config - found
    ===>   libgdiplus-2.10_1 depends on file: /usr/local/libdata/xorg/libraries - found
    ===>   libgdiplus-2.10_1 depends on shared library: tiff.4 - found
    ===>   libgdiplus-2.10_1 depends on shared library: gif.5 - found
    ===>   libgdiplus-2.10_1 depends on shared library: png.6 - found
    ===>   libgdiplus-2.10_1 depends on shared library: glib-2.0.0 - found
    ===>  Configuring for libgdiplus-2.10_1
    ...
    ---
    Configuration summary
    
       * Installation prefix = /usr/local
       * Cairo = 1.10.2 (system)
       * Text = cairo
       * EXIF tags = yes
       * Codecs supported:
    
          - TIFF: yes
          - JPEG: yes
          - GIF: yes
          - PNG: yes
          NOTE: if any of the above say 'no' you may install the
                corresponding development packages for them, rerun
                autogen.sh to include them in the build.
    ---
    ===>  Building for libgdiplus-2.10_1
    gmake  all-recursive
    gmake[1]: Entering directory `/usr/ports/x11-toolkits/libgdiplus/work/libgdiplus-2.10'
    Making all in src......................
    gmake[2]: Leaving directory `/usr/ports/x11-toolkits/libgdiplus/work/libgdiplus-2.10/src'
    
    Making all in tests
    gmake[2]: Entering directory `/usr/ports/x11-toolkits/libgdiplus/work/libgdiplus-2.10/tests'
    cc -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -I../src -I/usr/local/include/glib-2.0   -D_REENTRANT -D_THREAD_SAFE -I/usr/local/include/cairo -I/usr/local/include/glib-2.0 -I/usr/local/include/pixman-1 -I/usr/local/include -I/usr/local/include/freetype2 -I/usr/local/include/libpng -I/usr/local/include/drm    -I/usr/local/include   -I/usr/local/include/freetype2 -I/usr/local/include   -D_THREAD_SAFE -I/usr/local/include   -I/usr/local/include    -I/usr/local/include  -D_THREAD_SAFE -O2 -pipe -fno-strict-aliasing -pthread -MT testgdi.o -MD -MP -MF .deps/testgdi.Tpo -c -o testgdi.o testgdi.c
    mv -f .deps/testgdi.Tpo .deps/testgdi.Po
    /bin/sh ../libtool --tag=CC   --mode=link cc  -D_THREAD_SAFE -O2 -pipe -fno-strict-aliasing -pthread  -L/usr/local/lib -o testgdi testgdi.o ../src/libgdiplus.la -lfontconfig 
    libtool: link: cc -D_THREAD_SAFE -O2 -pipe -fno-strict-aliasing -pthread -o .libs/testgdi testgdi.o  -L/usr/local/lib ../src/.libs/libgdiplus.so /usr/local/lib/libglib-2.0.so -licui18n /usr/local/lib/libpcre.so /usr/local/lib/libcairo.so /usr/local/lib/libpixman-1.so /usr/local/lib/libxcb-shm.so /usr/local/lib/libxcb-render.so -lGL /usr/local/lib/libXrender.so /usr/local/lib/libX11.so /usr/local/lib/libxcb.so /usr/local/lib/libXau.so /usr/local/lib/libXdmcp.so /usr/local/lib/libpthread-stubs.so -lrpcsvc /usr/local/lib/libtiff.so -llzma -ljbig /usr/local/lib/libjpeg.so /usr/local/lib/libungif.so -lpng /usr/local/lib/libexif.so /usr/local/lib/libintl.so /usr/local/lib/libiconv.so -lm /usr/local/lib/libfontconfig.so /usr/local/lib/libfreetype.so -lz -lbz2 /usr/local/lib/libexpat.so -pthread -Wl,-rpath -Wl,/usr/local/lib
    /usr/bin/ld: warning: libbz2.so.4, needed by /usr/local/lib/libfreetype.so, may conflict with libbz2.so.1
    testgdi.o(.text+0x29): In function `win_draw':
    : undefined reference to `GdipCreateFromXDrawable_linux'
    gmake[2]: *** [testgdi] Fehler 1
    gmake[2]: Leaving directory `/usr/ports/x11-toolkits/libgdiplus/work/libgdiplus-2.10/tests'
    gmake[1]: *** [all-recursive] Fehler 1
    gmake[1]: Leaving directory `/usr/ports/x11-toolkits/libgdiplus/work/libgdiplus-2.10'
    gmake: *** [all] Fehler 2
    *** Error code 1
    
    Stop in /usr/ports/x11-toolkits/libgdiplus.
    
    Wie kann man das Problem lösen? Danke!
  3. lme

    lme FreeBSD Committer

    Registriert seit:
    6 Mai 2003
    Beiträge:
    2.048
    Ort:
    Düsseldorf
  4. HaraldLangner

    HaraldLangner HL1234

    Registriert seit:
    18 November 2004
    Beiträge:
    128
    Ort:
    Frankfurt am Main
    Hallo
    hier nochmal die Fehlermeldung, etwas übersichtlicher:
    Code:
    gmake[2]: Entering directory `/usr/ports/x11-toolkits/libgdiplus/work/libgdiplus-2.10/tests'
    cc -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -I../src
                                              -I/usr/local/include/glib-2.0
                                              -D_REENTRANT
                                              -D_THREAD_SAFE
                                              -I/usr/local/include/cairo
                                              -I/usr/local/include/glib-2.0
                                              -I/usr/local/include/pixman-1
                                              -I/usr/local/include
                                              -I/usr/local/include/freetype2
                                              -I/usr/local/include/libpng
                                              -I/usr/local/include/drm
                                              -I/usr/local/include
                                              -I/usr/local/include/freetype2
                                              -I/usr/local/include
                                              -D_THREAD_SAFE
                                              -I/usr/local/include
                                              -I/usr/local/include
                                              -I/usr/local/include
                                              -D_THREAD_SAFE
                                              -O2
                                              -pipe
                                              -fno-strict-aliasing
                                              -pthread -MT testgdi.o
                                              -MD -MP -MF .deps/testgdi.Tpo
                                              -c -o testgdi.o 					testgdi.c
    
    mv -f .deps/testgdi.Tpo .deps/testgdi.Po
    /bin/sh ../libtool --tag=CC
                       --mode=link cc  -D_THREAD_SAFE
                                       -O2
                                       -pipe
                                       -fno-strict-aliasing
                                       -pthread
    								   -L/usr/local/lib
    	   -o testgdi testgdi.o ../src/libgdiplus.la
    	   -lfontconfig
    
    libtool: link: cc -D_THREAD_SAFE
                      -O2
                      -pipe
                      -fno-strict-aliasing
                      -pthread
                      -o .libs/testgdi testgdi.o
                      -L/usr/local/lib ../src/.libs/libgdiplus.so  /usr/local/lib/libglib-2.0.so
                      -licui18n         /usr/local/lib/libpcre.so
                                        /usr/local/lib/libcairo.so
                                        /usr/local/lib/libpixman-1.so
                                        /usr/local/lib/libxcb-shm.so
                                        /usr/local/lib/libxcb-render.so
                                        -lGL /usr/local/lib/libXrender.so
                                             /usr/local/lib/libX11.so
                                             /usr/local/lib/libxcb.so
                                             /usr/local/lib/libXau.so
                                             /usr/local/lib/libXdmcp.so
                                             /usr/local/lib/libpthread-stubs.so
                                        -lrpcsvc /usr/local/lib/libtiff.so
                                        -llzma
                                        -ljbig /usr/local/lib/libjpeg.so
                                               /usr/local/lib/libungif.so
                                        -lpng  /usr/local/lib/libexif.so
                                               /usr/local/lib/libintl.so
                                               /usr/local/lib/libiconv.so
                                        -lm /usr/local/lib/libfontconfig.so
                                            /usr/local/lib/libfreetype.so
                                        -lz
                                        -lbz2 /usr/local/lib/libexpat.so
                                        -pthread
                                        -Wl,
                                        -rpath
                                        -Wl,/usr/local/lib
    
    /usr/bin/ld: warning: libbz2.so.4, needed by /usr/local/lib/libfreetype.so,
                          may conflict with libbz2.so.1
                          testgdi.o(.text+0x29): In function `win_draw':
                                               : undefined reference to `GdipCreateFromXDrawable_linux'
    
    gmake[2]: *** [testgdi] Fehler 1
    gmake[2]: Leaving directory `/usr/ports/x11-toolkits/libgdiplus/work/libgdiplus-2.10/tests'
    
    gmake[1]: *** [all-recursive] Fehler 1
    gmake[1]: Leaving directory `/usr/ports/x11-toolkits/libgdiplus/work/libgdiplus-2.10'
    
    gmake: *** [all] Fehler 2
    *** Error code 1
    
    Ich habe heraus gefunden, dass die library zwar erstellt wird, aber der Test mit 'testgdi' wegen irgendwelchen Linker-Problemen hängen bleibt.

    Folgende Lösung hat vorerst das Problem behoben:
    Code:
    Beispiel library (bereits vorhanden)
    #ll /usr/local/lib/libb*
      -r--r--r-- 1 root wheel 76094 Apr 30 22:05 libbz2.a
      lrwxr-xr-x 1 root wheel    26 Apr 30 22:05 libbz2.so -> /usr/local/lib/libbz2.so.1
      -r--r--r-- 1 root wheel 70219 Apr 30 22:05 libbz2.so.1
    
    Und analog libgdiplus rüber kopieren:
    
    # cp work/libgdiplus-2.10/src/.libs/libgdiplus.a /usr/local/lib/libgdiplus.a
    # cp work/libgdiplus-2.10/src/.libs/libgdiplus.so.0 /usr/local/lib/libgdiplus.so.0
    
    # ll /usr/local/lib/libgdi*
    --> OK
    
    # chmod 444 /usr/local/lib/libgdiplus.a
    # chmod 444 /usr/local/lib/libgdiplus.so.0
    
    # ln -s /usr/local/lib/libgdiplus.so.0 /usr/local/lib/libgdiplus.so
    # ll /usr/local/lib/libgdi*
       -r--r--r-- 1 root wheel 659612 Mai  5 20:06 /usr/local/lib/libgdiplus.a
       lrwxr-xr-x 1 root wheel     30 Mai  5 20:10 /usr/local/lib/libgdiplus.so -
    
    #  /usr/local/lib/libgdiplus.so.0
       -r--r--r-- 1 root wheel 467717 Mai  5 20:06 /usr/local/lib/libgdiplus.so.0
    
    im 'shared library cache' bekannt machen
    # ldconfig -R
    # ldconfig -r | grep libgdi
     --> 398:-lgdiplus.0 => /usr/local/lib/libgdiplus.so.0
    
    Apache neu gestartet und die einfache mono-WebSeite mit MVC2 läuft wieder.
    ----------------------------------
    ich dachte ich poste mal die gefundene Lösung - aber ob das auf Dauer ok ist weis ich noch nicht.
    Zuletzt bearbeitet: 5 Mai 2012