residuum/PuRestJson

liboauth not being linked correctly

Closed this issue · 13 comments

liboauth not being linked correctly osx 10.9. the following error occurs in pd console

oauth
... couldn't create
/Users/megrimm/Library/Pd/purest_json/oauth.pd_darwin: dlopen(/Users/megrimm/Library/Pd/purest_json/oauth.pd_darwin, 10): Symbol not found: _oauth_sign_url2
Referenced from: /Users/megrimm/Library/Pd/purest_json/oauth.pd_darwin
Expected in: dynamic lookup

I have not found anything matching your error.

Have you rebuilt the depending libraries with fink? Then you may have to rebuild liboauth as well, as liboauth depends on libcurl.

Have you updated your OS version? Then again try rebuilding liboauth.

hey thomas,

i just built a new dev environment over the new year. im on os 10.9. I will
rebuild depends and let you know what i get in the next couple days. if you
dont mind ill fork your git repo and work off a new branch so if i run in
to trouble and can fix I will...

btw what osx are you trying on? i have been running into problem with some
code because 10.9 switched from gcc to clang....

m

On Sat, Jan 4, 2014 at 5:45 AM, Thomas Mayer notifications@github.comwrote:

I have not found anything matching your error.

Have you rebuilt the depending libraries with fink? Then you may have to
rebuild liboauth as well, as liboauth depends on libcurl.

Have you updated your OS version? Then again try rebuilding liboauth.


Reply to this email directly or view it on GitHubhttps://github.com//issues/26#issuecomment-31575864
.


m.e.grimm | m.f.a | ed.m.
megrimm@gmail.com


Hi,

On 04.01.2014 16:02, megrimm wrote:

hey thomas,

i just built a new dev environment over the new year. im on os 10.9. I will
rebuild depends and let you know what i get in the next couple days. if you
dont mind ill fork your git repo and work off a new branch so if i run in
to trouble and can fix I will...

No, not at all. This is encouraged, and if you find a solution, I am
happy to merge your changes back into my repository.

btw what osx are you trying on? i have been running into problem with some
code because 10.9 switched from gcc to clang....

I do not have a Mac, but the switch from gcc to Clang may be the problem.

Thanks,
Thomas

Have you tried building the tests for liboauth (running make check after make), see http://liboauth.sourceforge.net/

...haven't had the chance to look at it in the last few days. make/make
install for libauth works fine (this is manual from the website NOT through
fink).

I'm back to same errors i think i was having before but I have not had
chance to investigate further. i am assuming its clang related:

clang: warning: argument unused during compilation: '-ftree-vectorizer-verbose=2'
clang: warning: argument unused during compilation: '-fast'
In file included from rest.c:5:
In file included from ./rest.h:29:
In file included from /sw/include/curl/curl.h:35:
*/sw/include/curl/curlrules.h:143:6: **error: **'__curl_rule_01__' declared as an*
*      array with a negative size*
    [CurlchkszEQ(long, CURL_SIZEOF_LONG)];
*     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
*/sw/include/curl/curlrules.h:132:27: note: *expanded from macro 'CurlchkszEQ'
#define CurlchkszEQ(t, s) sizeof(t) == s ? 1 : -1
*                          ^~~~~~~~~~~~~~~~~~~~~~~*
*/sw/include/curl/curlrules.h:153:6: **error: **'__curl_rule_02__' declared as an*
*      array with a negative size*
    [CurlchkszEQ(curl_off_t, CURL_SIZEOF_CURL_OFF_T)];
*     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
*/sw/include/curl/curlrules.h:132:27: note: *expanded from macro 'CurlchkszEQ'
#define CurlchkszEQ(t, s) sizeof(t) == s ? 1 : -1
*                          ^~~~~~~~~~~~~~~~~~~~~~~*
2 errors generated.
make: *** [rest.o] Error 1

On Thu, Jan 9, 2014 at 5:02 AM, Thomas Mayer notifications@github.comwrote:

Have you tried building the tests for liboauth (running make check after
make), see http://liboauth.sourceforge.net/


Reply to this email directly or view it on GitHubhttps://github.com//issues/26#issuecomment-31916820
.


m.e.grimm | m.f.a | ed.m.
megrimm@gmail.com


There seems to be a problem with 32bit (universal binary on Mac OS X?) compiles on 64bit OS. A similar problem occurs in Ubuntu. Could you try the manual fix for it?

http://ubuntuforums.org/archive/index.php/t-1680426.html

hmmmm... im not quite sure what I did but the error is gone. followed the
stack exchange advice and edited include/curlbuild.h with no luck. then i
read something about 32/64 bit probs so i removed i386 references in the
makefile and error went away...

I'm back to this though:

cc -I"/Applications/Pd-extended.app/Contents/Resources/include/pd"
-std=c99 -DPD -DVERSION='"1.0.0"' -arch x86_64
-mmacosx-version-min=10.5 -fPIC -I/sw/include -Wall -W -g
-ftree-vectorize -ftree-vectorizer-verbose=2 -fast -o "rest.o" -c
"rest.c"

clang: warning: argument unused during compilation:
'-ftree-vectorizer-verbose=2'

clang: warning: argument unused during compilation: '-fast'

cc -arch x86_64 -mmacosx-version-min=10.5
-headerpad_max_install_names -bundle -bundle_loader
/Applications/Pd-extended.app/Contents/Resources/bin/pd -undefined
dynamic_lookup -L/sw/lib -o "rest.pd_darwin" "rest.o" -lcurl
-ljson-c -loauth -lc

ld: library not found for -ljson-c

clang: error: linker command failed with exit code 1 (use -v to see invocation)

make: *** [rest.pd_darwin] Error 1

On Thu, Jan 9, 2014 at 11:52 AM, Thomas Mayer notifications@github.comwrote:

There seems to be a problem with 32bit (universal binary on Mac OS X?)
compiles on 64bit OS. A similar problem occurs in Ubuntu. Could you try the
manual fix for it?

http://ubuntuforums.org/archive/index.php/t-1680426.html


Reply to this email directly or view it on GitHubhttps://github.com//issues/26#issuecomment-31952212
.


m.e.grimm | m.f.a | ed.m.
megrimm@gmail.com


This is the problem with json-c versions smaller than 0.11. Try compiling tag 1.0.0-json-c-0.10 or from branch json-c-0.10

yup. compiled fine. just one makefile edit you can see in my git commit.

This is the problem with json-c versions smaller than 0.11.

no resolution? why is this?

m

On Thu, Jan 9, 2014 at 1:32 PM, Thomas Mayer notifications@github.comwrote:

This is the problem with json-c versions smaller than 0.11. Try compiling
tag 1.0.0-json-c-0.10 or from branch json-c-0.10


Reply to this email directly or view it on GitHubhttps://github.com//issues/26#issuecomment-31961866
.


m.e.grimm | m.f.a | ed.m.
megrimm@gmail.com


json-c have made changes to the library with 0.11:

  • The library used to be linked with -ljson, now its -ljson-c (Makefile)
  • The header file for includes was json/json.h, now it's json-c/json.h (json-decode.h, json-encode.h)
  • if the version of json-c is smaller than 0.10 (0.9 is still in Debian old-stable and still supported), a fix for unicode is needed (json-decode.c lines 75ff). This code path is removed from branch master.

I decided against using preprocessor macros for distinguishing between all the versions of json-c, and using branches for this change in the library.

If fink could be updated to use json-c 0.11 instead of 0.10, then you could compile from master.

Oh, and please create a pull request using your changes, so I can easily integrate your changes into the repository.

Nevermind the pull request, I could do it myself.

If fink could be updated to use json-c 0.11 instead of 0.10, then you
could compile from master.

got it. i think hans maintains it and the latest version is actually 0.9-2
i believe...

Nevermind the pull request, I could do it myself.

cool that works!

m

On Thu, Jan 9, 2014 at 5:42 PM, Thomas Mayer notifications@github.comwrote:

json-c have made changes to the library with 0.11:

  • The library used to be linked with -ljson, now its -ljson-c
    (Makefile)
  • The header file for includes was json/json.h, now it's json-c/json.h
    (json-decode.h, json-encode.h)
  • if the version of json-c is smaller than 0.10 (0.9 is still in
    Debian old-stable and still supported), a fix for unicode is needed
    (json-decode.c lines 75ff). This code path is removed from branch master.

I decided against using preprocessor macros for distinguishing between all
the versions of json-c, and using branches for this change in the library.

If fink could be updated to use json-c 0.11 instead of 0.10, then you
could compile from master.


Reply to this email directly or view it on GitHubhttps://github.com//issues/26#issuecomment-31985054
.


m.e.grimm | m.f.a | ed.m.
megrimm@gmail.com