Forum Linux.debian/ubuntu Compilation d'un plugin pour Evolution : import PST

Posté par  (site web personnel) .
Étiquettes :
0
21
juil.
2008
Bonjour,

J'ai récemment découvert un plugin pour Evolution nommé evolution-pst-import-plugin. Le nom est explicite, le soft n'est disponible que sous OpenSuse et je veut l'utiliser sous Debian.
Je récupère donc les sources de la dernière version disponible ici[0].

J'ai installé evolution-dev qui a lui aussi installer un paquet de dépendance (tout devrait être ok). Lorsque je lance le ./configure comme suit :

export PKG_CONFIG=/usr/bin/pkg-config && ./configure --with-plugin-install-dir=/usr/lib/evolution/2.22/plugins/ --prefix=/usr --with-evolution-version=2.22 --includedir=/usr/include/evolution-data-server-2.22/


Ben j'ai droit à un beau message :

checking Evolution e-error installation directory... configure: error: Unable to find error file directory


Et là j'y comprend rien et google non plus visiblement.
De toute manière, si je fait le barbare en supprimant la vérification du configure, l'exécution de make est bien pire. Quand j'exécute make, il se plaint de ne pas trouver un paquet de headers, comme par exemple :
- des trucs gtk qui se trouvent dans gtk-2.0/gtk/
- des trucs mail qui se trouvent dans evolution-2.22/mail/
- des trucs camel qui se trouvent dans evolution-data-server-2.22/camel/
etc...

Alors je me doute bien que j'ai du manquer une étape, mais je ne sais pas trop ce que je doit faire, à la fois pour l'exécution du configure et pour les headers.


[0] http://software.opensuse.org/search?baseproject=ALL&p=1&q=ev(...)
  • # Vieille version ...

    Posté par  (site web personnel) . Évalué à 2.

    Salut,

    J'ai un peu regarder le zinzin en chargeant comme toi le source.

    Un simple configure sans paramètres suffit en ayant au préalable fait un "sudo ln -sf /usr/lib/pkgconfig/evolution-plugin.pc /usr/lib/pkgconfig/evolution-plugin-2.8.pc".

    Par contre le code de ce plugin semble être intimement lié à la version 2.8 d'évolution.

    La compilation s'arrête avec :

    bigbob@bigbob-laptop:~/tmp/evolution-plugin-readpst-0.3.2$ sudo ln -sf /usr/lib/pkgconfig/evolution-plugin.pc /usr/lib/pkgconfig/evolution-plugin-2.8.pc
    bigbob@bigbob-laptop:~/tmp/evolution-plugin-readpst-0.3.2$ ./configure
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for a thread-safe mkdir -p... /bin/mkdir -p
    checking for gawk... gawk
    checking whether make sets $(MAKE)... yes
    checking whether to enable maintainer-specific portions of Makefiles... no
    checking for style of include used by make... GNU
    checking for gcc... gcc
    checking for C compiler default output file name... a.out
    checking whether the C compiler works... yes
    checking whether we are cross compiling... no
    checking for suffix of executables...
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ISO C89... none needed
    checking dependency style of gcc... gcc3
    checking for intltool >= 0.30... 0.40.0 found
    checking for intltool-update... /usr/bin/intltool-update
    checking for intltool-merge... /usr/bin/intltool-merge
    checking for intltool-extract... /usr/bin/intltool-extract
    checking for xgettext... /usr/bin/xgettext
    checking for msgmerge... /usr/bin/msgmerge
    checking for msgfmt... /usr/bin/msgfmt
    checking for perl... /usr/bin/perl
    checking for XML::Parser... ok
    checking for gcc... (cached) gcc
    checking whether we are using the GNU C compiler... (cached) yes
    checking whether gcc accepts -g... (cached) yes
    checking for gcc option to accept ISO C89... (cached) none needed
    checking dependency style of gcc... (cached) gcc3
    checking for library containing strerror... none required
    checking how to run the C preprocessor... gcc -E
    checking for grep that handles long lines and -e... /bin/grep
    checking for egrep... /bin/grep -E
    checking for ANSI C header files... yes
    checking build system type... i686-pc-linux-gnu
    checking host system type... i686-pc-linux-gnu
    checking for a sed that does not truncate output... /bin/sed
    checking for ld used by gcc... /usr/bin/ld
    checking if the linker (/usr/bin/ld) is GNU ld... yes
    checking for /usr/bin/ld option to reload object files... -r
    checking for BSD-compatible nm... /usr/bin/nm -B
    checking whether ln -s works... yes
    checking how to recognize dependent libraries... pass_all
    checking for sys/types.h... yes
    checking for sys/stat.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for memory.h... yes
    checking for strings.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for unistd.h... yes
    checking dlfcn.h usability... yes
    checking dlfcn.h presence... yes
    checking for dlfcn.h... yes
    checking for g++... g++
    checking whether we are using the GNU C++ compiler... yes
    checking whether g++ accepts -g... yes
    checking dependency style of g++... gcc3
    checking how to run the C++ preprocessor... g++ -E
    checking for g77... no
    checking for xlf... no
    checking for f77... no
    checking for frt... no
    checking for pgf77... no
    checking for cf77... no
    checking for fort77... no
    checking for fl32... no
    checking for af77... no
    checking for xlf90... no
    checking for f90... no
    checking for pgf90... no
    checking for pghpf... no
    checking for epcf90... no
    checking for gfortran... gfortran
    checking whether we are using the GNU Fortran 77 compiler... yes
    checking whether gfortran accepts -g... yes
    checking the maximum length of command line arguments... 98304
    checking command to parse /usr/bin/nm -B output from gcc object... ok
    checking for objdir... .libs
    checking for ar... ar
    checking for ranlib... ranlib
    checking for strip... strip
    checking if gcc supports -fno-rtti -fno-exceptions... no
    checking for gcc option to produce PIC... -fPIC
    checking if gcc PIC flag -fPIC works... yes
    checking if gcc static flag -static works... yes
    checking if gcc supports -c -o file.o... yes
    checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
    checking whether -lc should be explicitly linked in... no
    checking dynamic linker characteristics... GNU/Linux ld.so
    checking how to hardcode library paths into programs... immediate
    checking whether stripping libraries is possible... yes
    checking if libtool supports shared libraries... yes
    checking whether to build shared libraries... yes
    checking whether to build static libraries... no
    configure: creating libtool
    appending configuration tag "CXX" to libtool
    checking for ld used by g++... /usr/bin/ld
    checking if the linker (/usr/bin/ld) is GNU ld... yes
    checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
    checking for g++ option to produce PIC... -fPIC
    checking if g++ PIC flag -fPIC works... yes
    checking if g++ static flag -static works... yes
    checking if g++ supports -c -o file.o... yes
    checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
    checking dynamic linker characteristics... GNU/Linux ld.so
    (cached) (cached) checking how to hardcode library paths into programs... immediate
    appending configuration tag "F77" to libtool
    checking if libtool supports shared libraries... yes
    checking whether to build shared libraries... yes
    checking whether to build static libraries... no
    checking for gfortran option to produce PIC... -fPIC
    checking if gfortran PIC flag -fPIC works... yes
    checking if gfortran static flag -static works... yes
    checking if gfortran supports -c -o file.o... yes
    checking whether the gfortran linker (/usr/bin/ld) supports shared libraries... yes
    checking dynamic linker characteristics... GNU/Linux ld.so
    (cached) (cached) checking how to hardcode library paths into programs... immediate
    checking what warning flags to pass to the C compiler... -Wall -Wmissing-prototypes
    checking what language compliance flags to pass to the C compiler...
    checking for pkg-config... /usr/bin/pkg-config
    checking pkg-config is at least version 0.9.0... yes
    checking for pkg-config... (cached) /usr/bin/pkg-config
    checking pkg-config is at least version 0.9.0... yes
    checking evolution version... 2.8
    checking for EVOLUTION... yes
    checking plugin installation directory... /usr/lib/evolution/2.22/plugins
    checking Evolution e-error installation directory... /usr/share/evolution/2.22/errors
    checking whether NLS is requested... yes
    checking for msgfmt... (cached) /usr/bin/msgfmt
    checking for gmsgfmt... /usr/bin/msgfmt
    checking for xgettext... (cached) /usr/bin/xgettext
    checking for msgmerge... (cached) /usr/bin/msgmerge
    checking for ld used by GCC... /usr/bin/ld
    checking if the linker (/usr/bin/ld) is GNU ld... yes
    checking for shared library run path origin... done
    checking for CFPreferencesCopyAppValue... no
    checking for CFLocaleCopyCurrent... no
    checking for GNU gettext in libc... yes
    checking whether to use NLS... yes
    checking where the gettext function comes from... libc
    checking locale.h usability... yes
    checking locale.h presence... yes
    checking for locale.h... yes
    checking for LC_MESSAGES... yes
    checking libintl.h usability... yes
    checking libintl.h presence... yes
    checking for libintl.h... yes
    checking for ngettext in libc... yes
    checking for dgettext in libc... yes
    checking for bind_textdomain_codeset... yes
    checking for msgfmt... (cached) /usr/bin/msgfmt
    checking for dcgettext... yes
    checking if msgfmt accepts -c... yes
    checking for gmsgfmt... (cached) /usr/bin/msgfmt
    checking for xgettext... (cached) /usr/bin/xgettext
    checking which libpst to use... internal
    checking for struct _pst_item_appointment.all_day... yes
    checking for struct _pst_item_appointment.alarm... yes
    checking for struct _pst_item_appointment.recurrence
    ... yes
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating src/Makefile
    config.status: creating po/Makefile.in
    config.status: creating config.h
    config.status: executing depfiles commands
    config.status: executing po-directories commands
    config.status: creating po/POTFILES
    config.status: creating po/Makefile
    config.status: executing default-1 commands
    config.status: executing po/stamp-it commands

    Selected installation path: /usr/lib/evolution/2.22/plugins

    bigbob@bigbob-laptop:~/tmp/evolution-plugin-readpst-0.3.2$ make
    make all-recursive
    make[1]: entrant dans le répertoire « /home/bigbob/tmp/evolution-plugin-readpst-0.3.2 »
    Making all in po
    make[2]: entrant dans le répertoire « /home/bigbob/tmp/evolution-plugin-readpst-0.3.2/po »
    make[2]: Rien à faire pour « all ».
    make[2]: quittant le répertoire « /home/bigbob/tmp/evolution-plugin-readpst-0.3.2/po »
    Making all in src
    make[2]: entrant dans le répertoire « /home/bigbob/tmp/evolution-plugin-readpst-0.3.2/src »
    /bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I -I.. -DGETTEXT_PACKAGE="\"evolution-plugin-readpst-0.0\"" -DLOCALEDIR="\"/usr/local/share/locale\"" -DORBIT2=1 -pthread -I/usr/include/libgnome-2.0 -I/usr/include/orbit-2.0 -I/usr/include/gconf/2 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libbonobo-2.0 -I/usr/include/bonobo-activation-2.0 -I/usr/include/libgnomeui-2.0 -I/usr/include/libart-2.0 -I/usr/include/gnome-keyring-1 -I/usr/include/libbonoboui-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/gtk-2.0 -I/usr/include/libxml2 -I/usr/include/pango-1.0 -I/usr/include/gail-1.0 -I/usr/include/freetype2 -I/usr/include/atk-1.0 -I/usr/lib/gtk-2.0/include -I/usr/include/cairo -I/usr/include/libpng12 -I/usr/include/pixman-1 -I/usr/include/evolution-2.22 -I/usr/include/evolution-data-server-2.22 -I../libpst -Wall -MT pst-importer.lo -MD -MP -MF .deps/pst-importer.Tpo -c -o pst-importer.lo pst-importer.c
    mkdir .libs
    gcc -DHAVE_CONFIG_H -I. -I.. -I -I.. -DGETTEXT_PACKAGE=\"evolution-plugin-readpst-0.0\" -DLOCALEDIR=\"/usr/local/share/locale\" -DORBIT2=1 -pthread -I/usr/include/libgnome-2.0 -I/usr/include/orbit-2.0 -I/usr/include/gconf/2 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libbonobo-2.0 -I/usr/include/bonobo-activation-2.0 -I/usr/include/libgnomeui-2.0 -I/usr/include/libart-2.0 -I/usr/include/gnome-keyring-1 -I/usr/include/libbonoboui-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/gtk-2.0 -I/usr/include/libxml2 -I/usr/include/pango-1.0 -I/usr/include/gail-1.0 -I/usr/include/freetype2 -I/usr/include/atk-1.0 -I/usr/lib/gtk-2.0/include -I/usr/include/cairo -I/usr/include/libpng12 -I/usr/include/pixman-1 -I/usr/include/evolution-2.22 -I/usr/include/evolution-data-server-2.22 -I../libpst -Wall -MT pst-importer.lo -MD -MP -MF .deps/pst-importer.Tpo -c pst-importer.c -fPIC -DPIC -o .libs/pst-importer.o
    In file included from /usr/include/evolution-data-server-2.22/libecal/e-cal-component.h:28,
    from /usr/include/evolution-data-server-2.22/libecal/e-cal-recur.h:27,
    from /usr/include/evolution-data-server-2.22/libecal/e-cal.h:29,
    from pst-importer.c:52:
    /usr/include/evolution-data-server-2.22/libical/ical.h:30:2: warning: #warning "Please ensure that the memory returned by the functions mentioned at http://bugzilla.gnome.org/show_bug.cgi?id=516408#c1 are free'ed"
    In file included from /usr/include/evolution-data-server-2.22/libecal/e-cal-util.h:25,
    from /usr/include/evolution-data-server-2.22/libecal/e-cal.h:30,
    from pst-importer.c:52:
    /usr/include/evolution-data-server-2.22/libical/ical.h:30:2: warning: #warning "Please ensure that the memory returned by the functions mentioned at http://bugzilla.gnome.org/show_bug.cgi?id=516408#c1 are free'ed"
    pst-importer.c:108: error: field 'msg' has incomplete type
    pst-importer.c: In function 'set_cal_attachments':
    pst-importer.c:1249: warning: 'e_util_mkdir_hier' is deprecated (declared at /usr/include/evolution-data-server-2.22/libedataserver/e-data-server-util.h:37)
    pst-importer.c: At top level:
    pst-importer.c:1593: error: variable 'pst_import_op' has initializer but incomplete type
    pst-importer.c:1594: warning: excess elements in struct initializer
    pst-importer.c:1594: warning: (near initialization for 'pst_import_op')
    pst-importer.c:1595: warning: excess elements in struct initializer
    pst-importer.c:1595: warning: (near initialization for 'pst_import_op')
    pst-importer.c:1596: warning: excess elements in struct initializer
    pst-importer.c:1596: warning: (near initialization for 'pst_import_op')
    pst-importer.c:1597: warning: excess elements in struct initializer
    pst-importer.c:1597: warning: (near initialization for 'pst_import_op')
    pst-importer.c: In function 'pst_import':
    pst-importer.c:1644: warning: passing argument 1 of 'mail_msg_new' from incompatible pointer type
    pst-importer.c:1644: error: too many arguments to function 'mail_msg_new'
    pst-importer.c:1667: error: 'mail_thread_queued' undeclared (first use in this function)
    pst-importer.c:1667: error: (Each undeclared identifier is reported only once
    pst-importer.c:1667: error: for each function it appears in.)
    make[2]: *** [pst-importer.lo] Erreur 1
    make[2]: quittant le répertoire « /home/bigbob/tmp/evolution-plugin-readpst-0.3.2/src »
    make[1]: *** [all-recursive] Erreur 1
    make[1]: quittant le répertoire « /home/bigbob/tmp/evolution-plugin-readpst-0.3.2 »
    make: *** [all] Erreur 2

    real 0m0.604s
    user 0m0.428s
    sys 0m0.152s
    bigbob@bigbob-laptop:~/tmp/evolution-plugin-readpst-0.3.2$

    ensuite :

    bigbob@bigbob-laptop:~/tmp/evolution-plugin-readpst-0.3.2$ grep -r mail_thread_queued /usr/include/*
    bigbob@bigbob-laptop:~/tmp/evolution-plugin-readpst-0.3.2$

    Pas de declaration de 'mail_thread_queued' et étant donné que je trouve pas cette fonction dans '/usr/include', j'en déduit que celle-ci a du être supprimé dans le code plus récent d'évolution (je suis sous hardy avec la version 2.22).

    A++
    • [^] # Re: Vieille version ...

      Posté par  (site web personnel) . Évalué à 2.

      Je ne pense pas que ce plugin soit limité à une vieille version de Evolution.
      Quand tu download le RPM pour x86_64 (dont je ne sais rien faire), tu vois qu'il s'installe dans un répertoire 2.22 donc la dernière version d'Evolution, donc je suppose qu'il y a moyen de le faire marcher.

      Je vais tester demain le lien avant le configure, merci du renseignement.
      • [^] # Re: Vieille version ...

        Posté par  (site web personnel) . Évalué à 1.

        Tu as raison, je continu de chercher depuis mon premier message, et effectivement, j'en arrive à la même conclusion que toi.

        Ça devrais compiler, mais il faudrait qu'on trouve le fichier d'include dans lequel se trouve la définition de la fonction manquante ...

        A++
    • [^] # Re: Vieille version ...

      Posté par  (site web personnel) . Évalué à 2.

      Bizarre,

      Avec ton lien, le ./configure passe très bien, mais à la compilation ça bloque plus tôt, j'ai le même problème de header que ce que j'avais déjà dit dans l'énoncé :


      pst-importer.c:36:28: error: glib/gi18n-lib.h: No such file or directory
      pst-importer.c:37:25: error: glib/gstdio.h: No such file or directory
      pst-importer.c:38:26: error: glib/gprintf.h: No such file or directory
      pst-importer.c:40:27: error: gtk/gtkwidget.h: No such file or directory
      pst-importer.c:41:26: error: gtk/gtkframe.h: No such file or directory
      pst-importer.c:42:25: error: gtk/gtkvbox.h: No such file or directory
      pst-importer.c:43:25: error: gtk/gtkhbox.h: No such file or directory
      pst-importer.c:44:26: error: gtk/gtklabel.h: No such file or directory
      pst-importer.c:45:32: error: gtk/gtkcheckbutton.h: No such file or directory
      pst-importer.c:47:29: error: e-util/e-import.h: No such file or directory
      pst-importer.c:49:32: error: libebook/e-contact.h: No such file or directory
      pst-importer.c:50:29: error: libebook/e-book.h: No such file or directory
      pst-importer.c:52:27: error: libecal/e-cal.h: No such file or directory
      pst-importer.c:53:37: error: libecal/e-cal-component.h: No such file or directory
      pst-importer.c:55:47: error: libedataserver/e-data-server-util.h: No such file or directory
      pst-importer.c:57:55: error: libedataserverui/e-source-selector-dialog.h: No such file or directory
      pst-importer.c:59:32: error: camel/camel-folder.h: No such file or directory
      pst-importer.c:60:31: error: camel/camel-store.h: No such file or directory
      pst-importer.c:61:35: error: camel/camel-exception.h: No such file or directory
      pst-importer.c:62:38: error: camel/camel-mime-message.h: No such file or directory
      pst-importer.c:63:35: error: camel/camel-multipart.h: No such file or directory
      pst-importer.c:64:38: error: camel/camel-data-wrapper.h: No such file or directory
      pst-importer.c:65:36: error: camel/camel-stream-mem.h: No such file or directory
      pst-importer.c:66:35: error: camel/camel-stream-fs.h: No such file or directory
      pst-importer.c:67:36: error: camel/camel-file-utils.h: No such file or directory
      pst-importer.c:69:33: error: mail/mail-component.h: No such file or directory
      pst-importer.c:70:26: error: mail/mail-mt.h: No such file or directory
      pst-importer.c:71:29: error: mail/mail-tools.h: No such file or directory
      pst-importer.c:72:27: error: mail/em-utils.h: No such file or directory
      In file included from pst-importer.c:74:


      J'ai fait un apt-get install evolution-dev ce qui installe tout les headers nécessaires. Ceci dit, si il veut trouver /usr/include/camel/*.h, alors ça n'existe effectivement pas, le répertoire camel se trouve dans /usr/include/evolution-data-server-2.22/, gtk c'est pareil. Par rapport à ça, je suppose que je doit utiliser des variables lors du ./configure pour lui indiquer ou se trouve le répertoire gtk, camel et autres répertoires contenant des headers.
      • [^] # Re: Vieille version ...

        Posté par  (site web personnel) . Évalué à 2.

        Bon, ce problème là est corrigé, il fallait gratter du côté de pkg-config. Maintenant je bloque au même stade que toi, avec les mail_thread_queued mais c'est bizarre, parce-que si il y a une version binaire fournie pour x86_64 avec Evolution 2.22, elle a bien du être compilée.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.