[p4ruby] p4ruby on Mac Snow Leopard

Sven Erik Knop sknop at perforce.com
Thu Mar 25 10:58:12 PDT 2010


That is interesting.

Here is my version

$ ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0]

This version has been built as a universal binary. I wouldn't be 
surprised if the troubles come from the mismatch between the ruby build 
and the API build.

Do you have access to a universal-darwin build of ruby?

Cheers

Sven Erik

On 25/03/2010 17:51, Andy Koch wrote:
> I'm using 1.8.7 REE
>
> [~/src/perforce/09.2/p4ruby-2009.2]
> andy at pdd-andy-mbp->rv
> ruby 1.8.7 (2009-12-24 patchlevel 248) [i686-darwin10.2.0], MBARI 0x6770, Ruby Enterprise Edition 2010.01
>
> tried 09.2 with both darwin80u and macosx104u but still no luck
>
> darwin80u complains of undefined symbols
> macos104u complains of wrong architecture
>
> I'll try some different Rubies as I have RVM and try to find one that works.
>
>
>
> ----- Original Message -----
> From: "Sven Erik Knop"<sknop at perforce.com>
> To: "Andy Koch"<andy.koch at pc-doctor.com>
> Cc: "Tony Smith"<tony at smee.org>, p4ruby at perforce.com
> Sent: Thursday, March 25, 2010 10:17:47 AM GMT -08:00 US/Canada Pacific
> Subject: Re: [p4ruby] p4ruby on Mac Snow Leopard
>
> Hi Andy,
>
> which version of Ruby are you using?
>
> Also, could you try to use P4Ruby 2009.2 with the 9.2 API? This is the
> version that I use on my Snow Leopard Mac, and it compiled without problems.
>
> Cheers
>
> Sven Erik
>
> On 25/03/2010 16:55, Andy Koch wrote:
>    
>> Hi Tony,
>>
>> that sounded promising, but still getting errors and seeing reference to Carbon framework.
>>
>>
>>
>> [~/src/p4ruby-2009.1]
>> andy at pdd-andy-mbp->ruby p4conf.rb --apidir /Users/andy/src/p4api-2009.1.205670/
>>
>> Starting to configure P4/Ruby for building
>>
>> Found 2009.1 Perforce API in /Users/andy/src/p4api-2009.1.205670
>>
>> P4/Ruby Configuration Summary
>> -----------------------------
>>
>> Using Perforce API Version: 2009.1
>> API headers and libs from : /Users/andy/src/p4api-2009.1.205670
>> OS name                   : DARWIN
>> OS version                : 10
>> Platform                  : X86
>> CFLAGS                    : -g -O2  -pipe -fno-common $(cflags) -I/Users/andy/src/p4api-2009.1.205670/include/p4 -DOS_DARWIN -DOS_DARWIN10 -DOS_DARWIN10X86 -DCASE_INSENSITIVE
>> LIBPATH                   : /Users/andy/src/p4api-2009.1.205670/lib
>> libs                      : -lclient -lrpc -lsupp
>>
>> Creating extconf.h
>> creating Makefile
>>
>> [~/src/p4ruby-2009.1]
>> andy at pdd-andy-mbp->make
>> g++ -bundle -o P4.bundle clientuserruby.o p4.o p4clientapi.o p4mapmaker.o p4mergedata.o p4result.o p4specdata.o specmgr.o -L/Users/andy/src/p4api-2009.1.205670/lib -L. -L/Users/andy/.rvm/rubies/ree-1.8.7-2010.01/lib -L.  -framework Carbon    -lclient -lrpc -lsupp  -ldl -lobjc
>> Undefined symbols:
>>     "_rb_hash_aref", referenced from:
>>         SpecDataRuby::GetLine(SpecElem*, int, char const**)in p4specdata.o
>>         SpecDataRuby::SetLine(SpecElem*, int, StrPtr const*, Error*)in p4specdata.o
>>         SpecMgr::InsertItem(unsigned long, StrPtr const*, StrPtr const*)in specmgr.o
>>     "_rb_hash_aset", referenced from:
>>         SpecDataRuby::SetLine(SpecElem*, int, StrPtr const*, Error*)in p4specdata.o
>>         SpecDataRuby::SetLine(SpecElem*, int, StrPtr const*, Error*)in p4specdata.o
>>         SpecMgr::InsertItem(unsigned long, StrPtr const*, StrPtr const*)in specmgr.o
>>         SpecMgr::InsertItem(unsigned long, StrPtr const*, StrPtr const*)in specmgr.o
>>         SpecMgr::InsertItem(unsigned long, StrPtr const*, StrPtr const*)in specmgr.o
>>         SpecMgr::SpecFields(StrPtr*)      in specmgr.o
>>
>>
>>
>>
>>
>> ----- Original Message -----
>> From: "Tony Smith"<tony at smee.org>
>> To: "Andy Koch"<andy.koch at pc-doctor.com>
>> Cc: p4ruby at perforce.com
>> Sent: Thursday, March 25, 2010 2:47:52 AM GMT -08:00 US/Canada Pacific
>> Subject: Re: [p4ruby] p4ruby on Mac Snow Leopard
>>
>> Hi Andy,
>>
>> The macosx version of the API requires the Carbon framework, but the
>> darwin version doesn't (the macosx version is for building GUI clients
>> with, while the darwin build is for non-GUI stuff).  The errors you're
>> getting are to do with architecture support though: ruby wants to link
>> for more than one architecture, but the P4API you're using only supports
>> x86 (not x86_64).
>>
>> I recommend using the 'darwin8u' builds on Mac as they are universal
>> binaries suitable for use on PPC, x86 and x86_64 platforms. Try with
>> this build and see if it works any better:
>>
>> http://www.perforce.com/downloads/perforce/r09.1/bin.darwin80u/p4api.tgz
>>
>> Tony
>>
>> Andy Koch wrote:
>>
>>      
>>> Hi Tony,
>>>
>>> Trying install p4ruby on Mac Snow Leopard (10.6.2) and am having some compilation issues.
>>>
>>> I'm using p4ruby and p4api from the 09.1 dir of perforce.com
>>>
>>> Wondering if this bit "-framework Carbon" is the problem?  Does this need to change to Cocoa?
>>>
>>> please advise&   thank you
>>>
>>>
>>> here is my console output...
>>>
>>>
>>> [~/src/p4ruby-2009.1]
>>> andy at pdd-andy-mbp->ruby p4conf.rb --apidir /Users/andy/src/p4api-2009.1.211694/
>>>
>>> Starting to configure P4/Ruby for building
>>>
>>> Found 2009.1 Perforce API in /Users/andy/src/p4api-2009.1.211694
>>>
>>> P4/Ruby Configuration Summary
>>> -----------------------------
>>>
>>> Using Perforce API Version: 2009.1
>>> API headers and libs from : /Users/andy/src/p4api-2009.1.211694
>>> OS name                   : DARWIN
>>> OS version                : 10
>>> Platform                  : X86
>>> CFLAGS                    : -g -O2  -pipe -fno-common $(cflags) -I/Users/andy/src/p4api-2009.1.211694/include/p4 -DOS_DARWIN -DOS_DARWIN10 -DOS_DARWIN10X86 -DCASE_INSENSITIVE
>>> LIBPATH                   : /Users/andy/src/p4api-2009.1.211694/lib
>>> libs                      : -lclient -lrpc -lsupp
>>>
>>> Creating extconf.h
>>> creating Makefile
>>>
>>> [~/src/p4ruby-2009.1]
>>> andy at pdd-andy-mbp->make
>>> g++ -bundle -o P4.bundle clientuserruby.o p4.o p4clientapi.o p4mapmaker.o p4mergedata.o p4result.o p4specdata.o specmgr.o -L/Users/andy/src/p4api-2009.1.211694/lib -L. -L/Users/andy/.rvm/rubies/ree-1.8.7-2010.01/lib -L.  -framework Carbon    -lclient -lrpc -lsupp  -ldl -lobjc
>>> ld: warning: in /Users/andy/src/p4api-2009.1.211694/lib/libclient.a, missing required architecture x86_64 in file
>>> ld: warning: in /Users/andy/src/p4api-2009.1.211694/lib/librpc.a, missing required architecture x86_64 in file
>>> ld: warning: in /Users/andy/src/p4api-2009.1.211694/lib/libsupp.a, missing required architecture x86_64 in file
>>> Undefined symbols:
>>>     "FileSys::Compare(FileSys*, Error*)", referenced from:
>>>         ClientUserRuby::Diff(FileSys*, FileSys*, int, char*, Error*)in clientuserruby.o
>>>     "Spec::Count()", referenced from:
>>>         SpecMgr::SpecFields(StrPtr*)      in specmgr.o
>>>     "_rb_str_new", referenced from:
>>>
>>> <<   snip - there is 1000+ additional compiler dump>>
>>>
>>>
>>>
>>>
>>>        
>>
>>      
>
> --------------------------------------------------------------------------------
> This email and any files transmitted with it are confidential and intended
> solely for the use of the individual or entity to whom they are addressed. If
> you have received this email in error please notify the system manager. Please
> note that any views or opinions presented in this email are solely those of the
> author and do not necessarily represent those of Perforce Software. Finally,
> the recipient should check this email and any attachments for the presence of
> viruses. Perforce Software accepts no liability for any damage caused by any
> virus transmitted by this email.
>
> Perforce Software UK Ltd is registered in England and Wales as company no.
> 3816019 at the following address: West Forest Gate, Wellington Road, Wokingham,
> RG40 2AQ, UK
> --------------------------------------------------------------------------------
>
>    



More information about the p4ruby mailing list