[Spice-devel] Spice on OS/X

Cliff Sharp csharp at vbridges.com
Wed Apr 27 10:51:43 PDT 2011


Yes - I was having the same problem as Kai.
Kai's recommendation did get me past this issue for now.

On Apr 27, 2011, at 12:44 PM, Kai Mosebach wrote:

> Cliff ran into the same problem. I assume it must be somewhere else.
> 
> ATM both of us have to uncomment the #ifdef query for the GLIB version
> 
> My version of glib2 is 2.28.5 (latest from the ports I guess)
> 
> From: Cliff Sharp <csharp at vbridges.com>
> Date: Wed, 27 Apr 2011 11:49:19 -0500
> To: Kai Mosebach <spice at komadev.de>
> Subject: Re: [Spice-devel] Spice on OS/X
> 
> I will be happy to file a patch as soon as I get this building correctly.
> 
> Now I am getting this:
> 
>   CCLD   libspice-client-glib-2.0.la
> Undefined symbols for architecture x86_64:
>   "_g_get_monotonic_clock", referenced from:
>       _spice_session_set_mm_time in spice-session.o
>       _spice_session_get_mm_time in spice-session.o
> ld: symbol(s) not found for architecture x86_64
> collect2: ld returned 1 exit status
> make[3]: *** [libspice-client-glib-2.0.la] Error 1
> make[2]: *** [all] Error 2
> make[1]: *** [all-recursive] Error 1
> make: *** [all] Error 2
> 
> Thanks
> 
> On Apr 27, 2011, at 11:41 AM, Kai Mosebach wrote:
> 
>> Me too actually :) - at least to spice porting … That piece of SW is just too good to not support it :)
>> 
>> From: Cliff Sharp <csharp at vbridges.com>
>> Date: Wed, 27 Apr 2011 11:38:06 -0500
>> To: Kai Mosebach <spice at komadev.de>
>> Subject: Re: [Spice-devel] Spice on OS/X
>> 
>> Thank you very much for your time.
>> I am fairly new to spice development and really appreciate your help.
>> 
>> On Apr 27, 2011, at 11:32 AM, Kai Mosebach wrote:
>> 
>>> Ahh the last pieces :)
>>> 
>>> that’s the (reverse?) patch2 from Christophe - set the
>>> 
>>> VERSION_LDFLAGS =
>>> 
>>> In gtk/Makefile.am
>>> 
>>> And also find and fix VERSION_LDFLAGS
>>> 
>>> In gtk/Makefile.in
>>> 
>>> Then do an make clean;configure;make again
>>> 
>>> If possible, can you file a patch out of this and send it to the list (im short on time atm)?
>>> 
>>> Good luck :)
>>> 
>>> From: Cliff Sharp <csharp at vbridges.com>
>>> Date: Wed, 27 Apr 2011 11:24:40 -0500
>>> To: Kai Mosebach <kai at freshx.de>
>>> Subject: Re: [Spice-devel] Spice on OS/X
>>> 
>>> Thanks very much.
>>> 
>>> What about :
>>>   CCLD   libspice-client-glib-2.0.la
>>> libtool: link: symbol file `./sym-file' does not exist
>>> make[3]: *** [libspice-client-glib-2.0.la] Error 1
>>> make[2]: *** [all] Error 2
>>> make[1]: *** [all-recursive] Error 1
>>> make: *** [all] Error 2
>>> 
>>> I have glib2 installed....
>>> 
>>> Thanks
>>> 
>>> On Apr 27, 2011, at 11:00 AM, Kai Mosebach(FX) wrote:
>>> 
>>>> port install gst-plugins-base
>>>> 
>>>> From: Cliff Sharp <csharp at vbridges.com>
>>>> Date: Wed, 27 Apr 2011 10:58:29 -0500
>>>> To: Kai Mosebach <spice at komadev.de>
>>>> Subject: Re: [Spice-devel] Spice on OS/X
>>>> 
>>>> I am getting the following error that I could your help debugging:
>>>> 
>>>>   CC     spice-gstaudio.lo
>>>> spice-gstaudio.c:23:31: error: gst/app/gstappsrc.h: No such file or directory
>>>> spice-gstaudio.c:24:34: error: gst/app/gstappbuffer.h: No such file or directory
>>>> spice-gstaudio.c:25:32: error: gst/app/gstappsink.h: No such file or directory
>>>> spice-gstaudio.c:124: error: expected ')' before '*' token
>>>> spice-gstaudio.c: In function 'record_bus_cb':
>>>> spice-gstaudio.c:157: warning: implicit declaration of function 'gst_app_sink_pull_buffer'
>>>> spice-gstaudio.c:157: warning: implicit declaration of function 'GST_APP_SINK'
>>>> spice-gstaudio.c:157: warning: assignment makes pointer from integer without a cast
>>>> spice-gstaudio.c:159: warning: implicit declaration of function 'gst_app_sink_is_eos'
>>>> spice-gstaudio.c: In function 'record_start':
>>>> spice-gstaudio.c:219: warning: implicit declaration of function 'gst_app_sink_set_emit_signals'
>>>> spice-gstaudio.c:220: error: 'record_new_buffer' undeclared (first use in this function)
>>>> spice-gstaudio.c:220: error: (Each undeclared identifier is reported only once
>>>> spice-gstaudio.c:220: error: for each function it appears in.)
>>>> spice-gstaudio.c: In function 'playback_data':
>>>> spice-gstaudio.c:323: warning: implicit declaration of function 'gst_app_buffer_new'
>>>> spice-gstaudio.c:323: warning: assignment makes pointer from integer without a cast
>>>> spice-gstaudio.c:324: warning: implicit declaration of function 'gst_app_src_push_buffer'
>>>> spice-gstaudio.c:324: warning: implicit declaration of function 'GST_APP_SRC'
>>>> make[3]: *** [spice-gstaudio.lo] Error 1
>>>> make[2]: *** [all] Error 2
>>>> make[1]: *** [all-recursive] Error 1
>>>> make: *** [all] Error 2
>>>> 
>>>> Thanks
>>>> 
>>>> On Apr 27, 2011, at 10:45 AM, Kai Mosebach wrote:
>>>> 
>>>>> I remember installing py-parsing by hand (see one of my first mails). These pkgs I had to install manually (not through the ports)
>>>>> 
>>>>> 3.) Install pyparsing from http://sourceforge.net/projects/pyparsing/
>>>>> 4.) Install Text-CSV from http://search.cpan.org/~makamaka/Text-CSV-1.21/lib/Text/CSV.pm
>>>>> 
>>>>> Good luck ;-)
>>>>> 
>>>>> From: Cliff Sharp <csharp at vbridges.com>
>>>>> Date: Wed, 27 Apr 2011 10:30:13 -0500
>>>>> To: Kai Mosebach <kai.mosebach at bsse.ethz.ch>
>>>>> Subject: Re: [Spice-devel] Spice on OS/X
>>>>> 
>>>>> Question. I have applied your patches mentioned in this email by hand. I hope I did them correctly.
>>>>> I have also built spice-gtk as per your suggestion in this email.
>>>>> 
>>>>> I have executed MacPorts for the following:
>>>>> py-parsing                     @1.5.1          python/py-parsing
>>>>> py25-parsing                   @1.5.1          python/py25-parsing
>>>>> py26-parsing                   @1.5.2          python/py26-parsing
>>>>> py27-parsing                   @1.5.5          python/py27-parsing
>>>>> 
>>>>> But I still get the following error:
>>>>> 
>>>>> make  all-recursive
>>>>> Making all in common
>>>>> Making all in win
>>>>> Making all in my_getopt-1.5
>>>>> make[4]: Nothing to be done for `all'.
>>>>> make[4]: Nothing to be done for `all-am'.
>>>>> make[3]: Nothing to be done for `all-am'.
>>>>> Making all in gtk
>>>>>   GEN    spice-marshal.c
>>>>>   GEN    spice-marshal.h
>>>>>   GEN    generated_demarshallers.c
>>>>> Traceback (most recent call last):
>>>>>   File "../spice_codegen.py", line 7, in <module>
>>>>>     from python_modules import spice_parser
>>>>>   File "/Users/csharp/src/spice-gtk/spice-gtk-0.5/python_modules/spice_parser.py", line 1, in <module>
>>>>>     from pyparsing import Literal, CaselessLiteral, Word, OneOrMore, ZeroOrMore, \
>>>>> ImportError: No module named pyparsing
>>>>> make[2]: *** [generated_demarshallers.c] Error 1
>>>>> make[1]: *** [all-recursive] Error 1
>>>>> make: *** [all] Error 2
>>>>> 
>>>>> So my question is what is the name of the correct MacPort to satisfy this missing Python module for this error "ImportError: No module named pyparsing" ?
>>>>> 
>>>>> Thanks
>>>>> 
>>>>> On Apr 27, 2011, at 3:59 AM, Mosebach Kai wrote:
>>>>> 
>>>>>> I finally build it on OSX 10.6.6 successfully :-)
>>>>>> 
>>>>>> From the patches below I only used :
>>>>>> 
>>>>>> common/lines.c
>>>>>> gtk/Makefile.am
>>>>>> 
>>>>>> 
>>>>>> Then a 
>>>>>> 
>>>>>> ./configure --with-audio=gstreamer --without-python
>>>>>> --with-coroutine=gthread
>>>>>> 
>>>>>> did the trick, I think --with-coroutine=gthread avoid the _XOPEN_SOURCE
>>>>>> patches.
>>>>>> 
>>>>>> Best Kai
>>>>>> 
>>>>>> 
>>>>>> On 4/27/11 10:47 AM, "Christophe Fergeau" <cfergeau at redhat.com> wrote:
>>>>>> 
>>>>>>> On Tue, Apr 26, 2011 at 08:39:13PM +0200, Attila Sukosd wrote:
>>>>>>>> Also I've attached the patch which fixes a few things here and there...
>>>>>>>> With
>>>>>>>> this it builds fine.
>>>>>>> 
>>>>>>> Ah, so you've already built spice-gtk on macosx? How well did it work?
>>>>>>> 
>>>>>>> I had some questions about your patch, it would be really helpful if you
>>>>>>> remembered why you had to change these things :)
>>>>>>> 
>>>>>>> Thanks for the patch,
>>>>>>> 
>>>>>>> Christophe
>>>>>>> 
>>>>>>> diff --git a/common/lines.c b/common/lines.c
>>>>>>> index 1a14c18..59d0689 100644
>>>>>>> --- a/common/lines.c
>>>>>>> +++ b/common/lines.c
>>>>>>> @@ -2985,7 +2985,7 @@ miWideDashSegment (GCPtr pGC,
>>>>>>>    double L, l;
>>>>>>>    double k;
>>>>>>>    PolyVertexRec vertices[4];
>>>>>>> -    PolyVertexRec saveRight = { 0 }, saveBottom;
>>>>>>> +    PolyVertexRec saveRight = { 0 }, saveBottom = { 0 };
>>>>>>>    PolySlopeRec slopes[4];
>>>>>>>    PolyEdgeRec left[2], right[2];
>>>>>>>    LineFaceRec lcapFace, rcapFace;
>>>>>>> 
>>>>>>> I assume this bit is to avoid a "saveBottom can be used without being
>>>>>>> initialized" gcc warning?
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> diff --git a/gtk/Makefile.am b/gtk/Makefile.am
>>>>>>> index 7ce8a65..e5f3c1c 100644
>>>>>>> --- a/gtk/Makefile.am
>>>>>>> +++ b/gtk/Makefile.am
>>>>>>> @@ -27,6 +27,7 @@ if HAVE_LD_VERSION_SCRIPT
>>>>>>> VERSION_LDFLAGS = -Wl,--version-script=${srcdir}/map-file
>>>>>>> else
>>>>>>> VERSION_LDFLAGS = -export-symbols ${srcdir}/sym-file
>>>>>>> +#VERSION_LDFLAGS =
>>>>>>> endif
>>>>>>> 
>>>>>>> KEYMAP_GEN = $(srcdir)/keymap-gen.pl
>>>>>>> 
>>>>>>> 
>>>>>>> macosx ld indeed doesn't have any of --version-script nor -export-symbols,
>>>>>>> but it does have --exported_symbols_list which seems to be equivalent to
>>>>>>> what we are trying to do here. This means m4/ld-version.m4 could be
>>>>>>> improved to deal with this.
>>>>>>> 
>>>>>>> 
>>>>>>> @@ -420,7 +421,6 @@ INTROSPECTION_GIRS =
>>>>>>> INTROSPECTION_SCANNER_ARGS = --add-include-path=$(builddir)
>>>>>>> $(PREFIX_ARGS)
>>>>>>> INTROSPECTION_COMPILER_ARGS = --includedir=$(builddir)
>>>>>>> 
>>>>>>> -if HAVE_INTROSPECTION
>>>>>>> glib_introspection_files = $(libspice_client_glibinclude_HEADERS)
>>>>>>> gtk_introspection_files = $(libspice_client_gtkinclude_HEADERS)
>>>>>>> 
>>>>>>> @@ -453,7 +453,6 @@ typelibsdir = $(libdir)/girepository-1.0
>>>>>>> typelibs_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
>>>>>>> 
>>>>>>> CLEANFILES += $(gir_DATA) $(typelibs_DATA)
>>>>>>> -endif
>>>>>>> 
>>>>>>> I'm not sure why you needed this change.
>>>>>>> My first guess was that this change is needed to prevent autoconf from
>>>>>>> complaining that HAVE_INTROSPECTION is not present in an AM_CONDITIONAL
>>>>>>> when gobject-introspection (and introspection.m4) are not installed.
>>>>>>> However, this would mean that unconditionally building the introspection
>>>>>>> stuff would fail, and moreover, when I tested just this change without
>>>>>>> introspection, configure didn't succeed. Can you tell more about why this
>>>>>>> change was needed?
>>>>>>> 
>>>>>>> 
>>>>>>> diff --git a/gtk/continuation.c b/gtk/continuation.c
>>>>>>> index 4f5b027..3aefa54 100644
>>>>>>> --- a/gtk/continuation.c
>>>>>>> +++ b/gtk/continuation.c
>>>>>>> @@ -21,7 +21,10 @@
>>>>>>> #include <config.h>
>>>>>>> 
>>>>>>> #include "continuation.h"
>>>>>>> -
>>>>>>> +#ifdef __MACH__
>>>>>>> +#define _XOPEN_SOURCE
>>>>>>> +#include <ucontext.h>
>>>>>>> +#endif
>>>>>>> 
>>>>>>> continuation.h already has the #include <ucontext.h>, including it again
>>>>>>> shouldn't do much. Does something like
>>>>>>> --- a/gtk/continuation.c
>>>>>>> +++ b/gtk/continuation.c
>>>>>>> @@ -21,7 +21,10 @@
>>>>>>> #include <config.h>
>>>>>>> 
>>>>>>> +#define _XOPEN_SOURCE
>>>>>>> #include "continuation.h"
>>>>>>> 
>>>>>>> help with the issue you were having?
>>>>>>> 
>>>>>>> 
>>>>>>> diff --git a/gtk/continuation.h b/gtk/continuation.h
>>>>>>> index 585788e..6822757 100644
>>>>>>> --- a/gtk/continuation.h
>>>>>>> +++ b/gtk/continuation.h
>>>>>>> @@ -21,7 +21,8 @@
>>>>>>> #ifndef _CONTINUATION_H_
>>>>>>> #define _CONTINUATION_H_
>>>>>>> 
>>>>>>> -#include <ucontext.h>
>>>>>>> +#include <string.h>
>>>>>>> +#include <sys/ucontext.h>
>>>>>>> 
>>>>>>> Ah, this explains the #include <ucontext.h> you added in the previous
>>>>>>> hunk.
>>>>>>> I suspect dropping both hunks and only adding the #define _XOPEN_SOURCE
>>>>>>> here would fix your issues. Though nothing in ucontext.h nor in
>>>>>>> sys/ucontext.h on a macosx box depends on _XOPEN_SOURCE, so I'm not sure
>>>>>>> what issues you were seeing here?
>>>>>>> 
>>>>>>> 
>>>>>>> diff --git a/gtk/coroutine_ucontext.c b/gtk/coroutine_ucontext.c
>>>>>>> index 91059ad..ee48249 100644
>>>>>>> --- a/gtk/coroutine_ucontext.c
>>>>>>> +++ b/gtk/coroutine_ucontext.c
>>>>>>> @@ -25,6 +25,9 @@
>>>>>>> #include <stdio.h>
>>>>>>> #include <stdlib.h>
>>>>>>> #include "coroutine.h"
>>>>>>> +#ifndef MAP_ANONYMOUS
>>>>>>> +# define MAP_ANONYMOUS MAP_ANON
>>>>>>> +#endif
>>>>>>> 
>>>>>>> Yep, macosx has MAP_ANON but no MAP_ANONYMOUS
>>>>>>> 
>>>>>>> 
>>>>>>> diff --git a/gtk/spice-client-gtk.override b/gtk/spice-client-gtk.override
>>>>>>> index 7b3543a..e634f78 100644
>>>>>>> --- a/gtk/spice-client-gtk.override
>>>>>>> +++ b/gtk/spice-client-gtk.override
>>>>>>> @@ -1,6 +1,7 @@
>>>>>>> %%
>>>>>>> headers
>>>>>>> #include <Python.h>
>>>>>>> +#define NO_IMPORT_PYGOBJECT
>>>>>>> 
>>>>>>> This one seems to be here for the same kind of issues as what led to
>>>>>>> https://gitorious.org/rb-lastfm/rb-lastfm/commit/ab102ef5a954eb87354c3467d
>>>>>>> 1a35c8fa596242b
>>>>>>> but I must say I don't understand very well the issue/what's going on. Do
>>>>>>> you happen to have the compile error handy (just for my knowledge). I'm
>>>>>>> happy to take this one as is whatsoever.
>>>>>>> 
>>>>>>> Thanks again for the patch,
>>>>>>> 
>>>>>>> Christophe
>>>>>> 
>>>>> 
>>>>> 
>>>>> ____
>>>>> 
>>>>> Cliff Sharp | csharp at vbridges.com
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> ____
>>>> 
>>>> Cliff Sharp | csharp at vbridges.com
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>> 
>>> 
>>> ____
>>> 
>>> Cliff Sharp | csharp at vbridges.com
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>> 
>> 
>> ____
>> 
>> Cliff Sharp | csharp at vbridges.com
>> 
>> 
>> 
>> 
>> 
>> 
>> 
> 
> 
> ____
> 
> Cliff Sharp | csharp at vbridges.com
> 
> 
> 
> 
> 
> 
> 


____

Cliff Sharp | csharp at vbridges.com







-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/spice-devel/attachments/20110427/757469f8/attachment-0001.htm>


More information about the Spice-devel mailing list