tieto / sipe

A third-party Pidgin plugin for Microsoft Lync/OCS - clone of upstream http://repo.or.cz/w/siplcs.git
GNU General Public License v2.0
129 stars 24 forks source link

cannot build tieto/sipe vs tieto/pidgin: PurplePluginProtocolInfo removed? #10

Closed rburcham closed 9 years ago

rburcham commented 9 years ago

In the effort to build and study the mods that enable Lync screen sharing in sipe & pidgin, I have pulled down farstream, libnice, pidgin and sipe from /tieto, and I am trying to build everything on my Gentoo laptop and install to /usr/local/

I have built farstream and libnice and pidgin, and I am now working on building sipe. I've run the autogen.sh and prepared a my-configure.sh script that looks like this:

#!/bin/bash

PURPLE_CFLAGS="-I/usr/local/include/libpurple"
PURPLE_LIBS="-L/usr/local/lib -Wl,rpath -Wl,/usr/local/lib -L/usr/local/lib/purple-3 -Wl,rpath -Wl,/usr/local/lib/purple-3"

NICE_CFLAGS="-I/usr/local/include/nice"
NICE_LIBS="-L/usr/local/lib -Wl,rpath -Wl,/usr/local/lib"

GSTREAMER_CFLAGS="-I/usr/local/include -I/usr/local/include/nice -I/usr/local/include/stun"
GSTREAMER_LIBS="-L/usr/local/lib -Wl,rpath -Wl,/usr/local/lib -L/usr/local/lib/gstreamer-1.0 -Wl,rpath -Wl,/usr/local/lib/gstreamer-1.0 -L/usr/local/lib/gstreamer-0.10 -Wl,rpath -Wl,/usr/local/lib/gstreamer-0.10"

#GPLUGIN_CFLAGS="-I/usr/include/gplugin-1.0 -I/usr/include/gplugin-1.0/gplugin -I/usr/include/gplugin-1.0/gplugin-gtk"
#GPLUGIN_LIBS="-L/usr/lib64 -Wl,rpath -Wl,/usr/li64 -L/usr/lib64/gplugin -Wl,rpath -Wl,/usr/lib64/gplugin"

./configure --prefix=/usr/local

After running this I go to make and it fails with:

libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../.. -Wall -Wextra -Waggregate-return -Wcast-align -Wdeclaration-after-statement -Wdeprecated-declarations -Winit-self -Wmaybe-uninitialized -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wundef -Wunused-but-set-variable -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/gplugin-1.0 -I/usr/include/gplugin-1.0/gplugin -I/usr/include/gplugin-1.0/gplugin-gtk -I/usr/local/include/libpurple -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I./../api -DLOCALEDIR=\"/usr/local/share/locale\" -g -O2 -MT libsipe_la-purple-plugin.lo -MD -MP -MF .deps/libsipe_la-purple-plugin.Tpo -c purple-plugin.c  -fPIC -DPIC -o .libs/libsipe_la-purple-plugin.o
purple-plugin.c:75:1: error: unknown type name 'PurplePluginProtocolInfo'
 static PurplePluginProtocolInfo sipe_prpl_info =
 ^

It looks like the tieto/pidgin package is based off a revision that has removed this struct? From pidgin-launchpad/ChangeLog.API:

Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul

This file intends to list all changes to libpurple, Pidgin, and Finch's public API. We sometimes forget to add changes to this file--sorry.

If your plugin fails to build with a new major version (e.g. 3.0.0) we suggest checking this list first, in case a function was simply renamed. You may still need to consult our API docs or our source code.

If you notice something missing from this list, please let us know and we'll add it.

version 3.0.0 (??/??/????):
        libpurple:
<snip>
                Removed:
<snip>
                * PurplePluginProtocolInfo
<snip>

Clearly I'm missing something fundamental - how can tieto/sipe build against tieto/pidgin?

xhaakon commented 9 years ago

I think you should configure sipe with --enable-purple=3 in order to build against libpurple 3.0 API, which has gotten rid of PurplePluginProtocolInfo. Without that parameter set Sipe expects it's building with libpurple 2.x.

You can see our Debian packaging for how the package is meant to be built.

rburcham commented 9 years ago

I'm not having any luck. It appears --enable-purple wants a yes/no. Is it a --with-PACKAGE directive instead?

It also seems like ./configure is ignoring the PURPLE* and GPLUGIN* environment variables too. The resulting Makefiles are always referencing stock libs instead of the version I specify in the /usr/local path.

rburcham commented 9 years ago

Doing this prior to the configure did the trick:

export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig/