Opened 14 years ago

Closed 14 years ago

#26261 closed defect (fixed)

libproxy tries to use webkit

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: dbevans (David B. Evans)
Priority: Normal Milestone:
Component: ports Version: 1.9.1
Keywords: Cc:
Port: libproxy

Description

libproxy failed to build for me:

cd /opt/local/var/macports/build/_Users_rschmidt_macports_dports_net_libproxy/work/libproxy-0.4.0/libproxy && /opt/local/bin/cmake -E cmake_link_script CMakeFiles/libproxy.dir/link.txt --verbose=1
/usr/bin/g++-4.2  -g -Wall -Werror -fvisibility=hidden -pipe -O2 -arch x86_64 -arch i386  -O3 -DNDEBUG -arch x86_64 -arch i386 -isysroot /Developer/SDKs/MacOSX10.6.sdk -mmacosx-version-min=10.6 -dynamiclib -headerpad_max_install_names -L/opt/local/lib -arch x86_64 -arch i386 -compatibility_version 1.0.0 -current_version 1.0.0 -o libproxy.1.0.0.dylib -install_name /opt/local/lib/libproxy.1.dylib CMakeFiles/libproxy.dir/extension_config.cpp.o CMakeFiles/libproxy.dir/extension_pacrunner.cpp.o CMakeFiles/libproxy.dir/extension_wpad.cpp.o CMakeFiles/libproxy.dir/proxy.cpp.o CMakeFiles/libproxy.dir/url.cpp.o CMakeFiles/libproxy.dir/modules/config_macosx.cpp.o CMakeFiles/libproxy.dir/modules/ignore_domain.cpp.o CMakeFiles/libproxy.dir/modules/ignore_hostname.cpp.o CMakeFiles/libproxy.dir/modules/ignore_ip.cpp.o CMakeFiles/libproxy.dir/modules/pacrunner_webkit.cpp.o CMakeFiles/libproxy.dir/modules/wpad_dns_alias.cpp.o -L/opt/local/lib ../libmodman/libmodman.0.dylib -lm -lpthread -ldl -framework SystemConfiguration -framework CoreFoundation -lwebkit-1.0 -lgtk-x11-2.0 -lsoup-2.4 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lXinerama -lXi -lXrandr -lXcursor -lXcomposite -lXdamage -lpangoft2-1.0 -lXext -lXfixes -lcairo -lpixman-1 -lpng12 -lXrender -lX11 -lXau -lXdmcp -lpango-1.0 -lfontconfig -lexpat -lfreetype -lxml2 -lpthread -lm -lgnutls -ltasn1 -lgio-2.0 -lz -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl -liconv -framework SystemConfiguration -framework CoreFoundation -lwebkit-1.0 -lgtk-x11-2.0 -lsoup-2.4 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lXinerama -lXi -lXrandr -lXcursor -lXcomposite -lXdamage -lpangoft2-1.0 -lXext -lXfixes -lcairo -lpixman-1 -lpng12 -lXrender -lX11 -lXau -lXdmcp -lpango-1.0 -lfontconfig -lexpat -lfreetype -lxml2 -ldl -lgnutls -ltasn1 -lgio-2.0 -lz -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl -liconv 
ld: warning: in /opt/local/lib/libwebkit-1.0.dylib, file was built for unsupported file format which is not the architecture being linked (i386)
Undefined symbols:
  "_JSStringGetUTF8CString", referenced from:
      jstr2str(OpaqueJSString*, bool) in pacrunner_webkit.cpp.o
  "_JSValueIsString", referenced from:
      dnsResolve(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**)in pacrunner_webkit.cpp.o
      webkit_pacrunner::run(libproxy::url const&)  in pacrunner_webkit.cpp.o
  "_JSEvaluateScript", referenced from:
      webkit_pacrunner::webkit_pacrunner(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, libproxy::url const&)in pacrunner_webkit.cpp.o
      webkit_pacrunner::webkit_pacrunner(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, libproxy::url const&)in pacrunner_webkit.cpp.o
      webkit_pacrunner::run(libproxy::url const&)  in pacrunner_webkit.cpp.o
  "_JSGlobalContextRelease", referenced from:
      webkit_pacrunner::~webkit_pacrunner()in pacrunner_webkit.cpp.o
      webkit_pacrunner::~webkit_pacrunner()in pacrunner_webkit.cpp.o
      webkit_pacrunner::webkit_pacrunner(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, libproxy::url const&)in pacrunner_webkit.cpp.o
  "_JSGarbageCollect", referenced from:
      webkit_pacrunner::~webkit_pacrunner()in pacrunner_webkit.cpp.o
      webkit_pacrunner::~webkit_pacrunner()in pacrunner_webkit.cpp.o
      webkit_pacrunner::webkit_pacrunner(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, libproxy::url const&)in pacrunner_webkit.cpp.o
  "_JSCheckScriptSyntax", referenced from:
      webkit_pacrunner::webkit_pacrunner(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, libproxy::url const&)in pacrunner_webkit.cpp.o
      webkit_pacrunner::webkit_pacrunner(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, libproxy::url const&)in pacrunner_webkit.cpp.o
      webkit_pacrunner::run(libproxy::url const&)  in pacrunner_webkit.cpp.o
  "_JSObjectSetProperty", referenced from:
      webkit_pacrunner::webkit_pacrunner(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, libproxy::url const&)in pacrunner_webkit.cpp.o
      webkit_pacrunner::webkit_pacrunner(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, libproxy::url const&)in pacrunner_webkit.cpp.o
  "_JSStringGetMaximumUTF8CStringSize", referenced from:
      jstr2str(OpaqueJSString*, bool) in pacrunner_webkit.cpp.o
      jstr2str(OpaqueJSString*, bool) in pacrunner_webkit.cpp.o
  "_JSGlobalContextCreate", referenced from:
      webkit_pacrunner::webkit_pacrunner(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, libproxy::url const&)in pacrunner_webkit.cpp.o
  "_JSStringCreateWithUTF8CString", referenced from:
      dnsResolve(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**)in pacrunner_webkit.cpp.o
      myIpAddress(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**)in pacrunner_webkit.cpp.o
      webkit_pacrunner::webkit_pacrunner(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, libproxy::url const&)in pacrunner_webkit.cpp.o
      webkit_pacrunner::webkit_pacrunner(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, libproxy::url const&)in pacrunner_webkit.cpp.o
      webkit_pacrunner::webkit_pacrunner(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, libproxy::url const&)in pacrunner_webkit.cpp.o
      webkit_pacrunner::webkit_pacrunner(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, libproxy::url const&)in pacrunner_webkit.cpp.o
      webkit_pacrunner::run(libproxy::url const&)  in pacrunner_webkit.cpp.o
  "_JSStringRelease", referenced from:
      jstr2str(OpaqueJSString*, bool) in pacrunner_webkit.cpp.o
      dnsResolve(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**)in pacrunner_webkit.cpp.o
      myIpAddress(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**)in pacrunner_webkit.cpp.o
      webkit_pacrunner::webkit_pacrunner(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, libproxy::url const&)in pacrunner_webkit.cpp.o
      webkit_pacrunner::webkit_pacrunner(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, libproxy::url const&)in pacrunner_webkit.cpp.o
      webkit_pacrunner::webkit_pacrunner(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, libproxy::url const&)in pacrunner_webkit.cpp.o
      webkit_pacrunner::webkit_pacrunner(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, libproxy::url const&)in pacrunner_webkit.cpp.o
      webkit_pacrunner::webkit_pacrunner(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, libproxy::url const&)in pacrunner_webkit.cpp.o
      webkit_pacrunner::run(libproxy::url const&)  in pacrunner_webkit.cpp.o
      webkit_pacrunner::run(libproxy::url const&)  in pacrunner_webkit.cpp.o
  "_JSValueToStringCopy", referenced from:
      dnsResolve(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**)in pacrunner_webkit.cpp.o
      webkit_pacrunner::run(libproxy::url const&)  in pacrunner_webkit.cpp.o
  "_JSObjectMakeFunctionWithCallback", referenced from:
      webkit_pacrunner::webkit_pacrunner(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, libproxy::url const&)in pacrunner_webkit.cpp.o
      webkit_pacrunner::webkit_pacrunner(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, libproxy::url const&)in pacrunner_webkit.cpp.o
  "_JSValueMakeString", referenced from:
      dnsResolve(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**)in pacrunner_webkit.cpp.o
      myIpAddress(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**)in pacrunner_webkit.cpp.o
  "_JSContextGetGlobalObject", referenced from:
      webkit_pacrunner::webkit_pacrunner(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, libproxy::url const&)in pacrunner_webkit.cpp.o
      webkit_pacrunner::webkit_pacrunner(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, libproxy::url const&)in pacrunner_webkit.cpp.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
lipo: can't open input file: /var/tmp//ccdSdoaW.out (No such file or directory)
make[2]: *** [libproxy/libproxy.1.0.0.dylib] Error 1
make[1]: *** [libproxy/CMakeFiles/libproxy.dir/all] Error 2
make: *** [all] Error 2

Yes, I am trying to build libproxy universal, and yes, libwebkit-1.0.dylib which is provided by webkit-gtk is not universal, but libproxy should not be using libwebkit since it does not declare a dependency on the webkit-gtk port.

Change History (2)

comment:1 Changed 14 years ago by dbevans (David B. Evans)

I ran into the same thing but deactivating the old version of libproxy before installing the new seemed to fix it.

I'm not sure what is going on here. libproxy should not depend on webkit-gtk because it is an indirect dependency of webkit-gtk via libsoup.

I'm open to suggestions if you have any.

comment:2 Changed 14 years ago by dbevans (David B. Evans)

Resolution: fixed
Status: newclosed

problem fixed in r71365 by disabling the webkit pacrunner module to avoid the stealth circular dependency

webkit-gtk -> libsoup -> libproxy -> webkit-gtk

It's possible to build the webkit pacrunner module in libproxy if webkit-gtk is installed first (installing libproxy without the webkit pacrunner enabled) and then reinstall libproxy with the runner enabled. Not sure how to do this in Macports, however, without asking the user to manually install webkit-gtk first if a +webkit variant is enabled rather than declaring a direct dependency on webkit-gtk. Even so, there may be problems lurking on upgrade.

Note: See TracTickets for help on using tickets.