[Adium-devl] StudiVZ Plugin

derDoc derdoc at googlemail.com
Wed Mar 4 07:59:40 UTC 2009


Fellas,

I just submitted my first beta build of the studiVZ plugin for approval.

Finally, I found out how to relocate the RegexKit.FW into the plugin.
Peter was basically right, but it seemed that XCode did not care about
my setting of @load_path or didn't like it because I was linking against
other libs as well.
After a little unsucesfull venture into using POSIX extended Regexes and
before I was almost ready to statically link against libpcre I decided
to google some more, and the solution is a prog called 'install_name_tool'
For the interested the solution is to add a execute script build phase
with this contents:

PATH=../Frameworks/RegexKit.framework/Versions/A/RegexKit
/usr/bin/install_name_tool -change "@executable_path/${PATH}"
"@loader_path/${PATH}"
"$TARGET_BUILD_DIR/$TARGET_NAME.$WRAPPER_EXTENSION/Contents/MacOS/$TARGET_NAME"


These lines are mostly stolen from the skype plugin ;)

On another note I also ran into the Service Icons bug as noted in #5424.
I used the same solution that is implemented in ESJabberPurpleAccount, I
overrode
- (AIService *)_serviceForUID:(NSString *)contactUID
which seems to work fine most of the time.

As long as XEP-0172 is not working yet, the plugin sets the
formatted-UID to the StudiVZ UID (16 char hex string) and the display
name to the real Nickname.

One last thing that I could not figure out was a crash that happened
when I tried to set the content of 'textField_connectServer' in the
options pane of account prefs to snow.nimbuzz.com and disable it.
I just disabled it in the .nib for now, but even there it does not let
me set a string into it - well it doesn't show up.
Maybe I should just remove that textfield, since the server is hardset
anyway...

-Vitus




Peter Hosey wrote:
> On Feb 25, 2009, at 20:41:02, derDoc wrote:
>>    2009-02-25 19:50:45.857 Adium[54664:10b] Error loading
>> /Users/derDoc/Library/Application Support/Adium
>> 2.0/PlugIns/AdiumTestPlugin.AdiumPlugin/Contents/MacOS/AdiumTestPlugin:
>> dlopen(/Users/derDoc/Library/Application Support/Adium
>> 2.0/PlugIns/AdiumTestPlugin.AdiumPlugin/Contents/MacOS/AdiumTestPlugin,
>> 265): Library not loaded:
>> @executable_path/../Frameworks/RegexKit.framework/Versions/A/RegexKit
>>  Referenced from: /Users/derDoc/Library/Application Support/Adium
>> 2.0/PlugIns/AdiumTestPlugin.AdiumPlugin/Contents/MacOS/AdiumTestPlugin
>>  Reason: image not found
>
> Use @rpath, not @executable_path. If you're building RegexKit from
> source, you can set the install path of the framework in its Xcode
> project; if you're using a pre-built framework, you'll need to use
> rtool (which is on Google Code).
>
> Info on the necessary changes in the Xcode project:
>
> http://lists.apple.com/archives/Unix-porting/2008/Mar/msg00012.html
> http://developer.apple.com/releasenotes/developertools/RN-dyld/index.html
>
>


-- 
Vitus Lorenz-Meyer
M.S. in Computer Science from University of Texas at El Paso, USA
Dipl.-Inform. (C.S.) @ Technical University at Braunschweig, Germany

----
confuzius says:
if one wants to truely pwn, one must pwn in all games !!

www.lorenz-meyer.de		Family Community v0.1 alpha





More information about the devel mailing list