Opened 2 years ago

Closed 2 years ago

#64940 closed defect (fixed)

usbredir @0.9.0: opportunistic use of glib2

Reported by: barracuda156 Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 2.7.2
Keywords: Cc:
Port: usbredir

Description

+universal fails with this:

ld warning: in /opt/local/lib/libgio-2.0.dylib, file is not of required architecture
ld warning: in /opt/local/lib/libgobject-2.0.dylib, file is not of required architecture
ld warning: in /opt/local/lib/libglib-2.0.dylib, file is not of required architecture
Undefined symbols for architecture ppc:
  "_g_mutex_init", referenced from:
      _usbredir_alloc_lock in usbredirect-usbredirect.o
  "_g_type_check_instance_cast", referenced from:
      _main in usbredirect-usbredirect.o
      _usbredir_write_cb in usbredirect-usbredirect.o
      _usbredir_write_cb in usbredirect-usbredirect.o
      _usbredir_read_cb in usbredirect-usbredirect.o
      _usbredir_read_cb in usbredirect-usbredirect.o
  "_g_inet_socket_address_new", referenced from:
      _main in usbredirect-usbredirect.o
  "_g_socket_connection_get_socket", referenced from:
      _main in usbredirect-usbredirect.o
      _connection_incoming_cb in usbredirect-usbredirect.o
  "_g_object_unref", referenced from:
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
  "_g_signal_connect_data", referenced from:
      _main in usbredirect-usbredirect.o
  "_g_atomic_int_get", referenced from:
      _thread_handle_libusb_events in usbredirect-usbredirect.o
  "_g_pollable_input_stream_get_type", referenced from:
      _usbredir_read_cb in usbredirect-usbredirect.o
  "_g_option_context_new", referenced from:
      _main in usbredirect-usbredirect.o
  "_g_socket_listener_get_type", referenced from:
      _main in usbredirect-usbredirect.o
  "_g_strsplit", referenced from:
      _parse_opt_uri in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
  "_g_object_ref", referenced from:
      _connection_incoming_cb in usbredirect-usbredirect.o
  "_g_malloc0", referenced from:
      _main in usbredirect-usbredirect.o
      _usbredir_alloc_lock in usbredirect-usbredirect.o
  "_g_strrstr", referenced from:
      _main in usbredirect-usbredirect.o
  "_g_socket_client_connect_to_host", referenced from:
      _main in usbredirect-usbredirect.o
  "_g_io_stream_get_input_stream", referenced from:
      _usbredir_read_cb in usbredirect-usbredirect.o
  "_g_thread_try_new", referenced from:
      _main in usbredirect-usbredirect.o
  "_g_strdup", referenced from:
      _parse_opt_uri in usbredirect-usbredirect.o
  "_g_io_add_watch", referenced from:
      _main in usbredirect-usbredirect.o
      _connection_incoming_cb in usbredirect-usbredirect.o
  "_g_option_context_get_help", referenced from:
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
  "_g_strfreev", referenced from:
      _parse_opt_uri in usbredirect-usbredirect.o
      _parse_opt_uri in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
  "_g_free", referenced from:
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
      _usbredir_free_lock in usbredirect-usbredirect.o
  "_g_main_loop_run", referenced from:
      _main in usbredirect-usbredirect.o
  "_g_clear_error", referenced from:
      _main in usbredirect-usbredirect.o
      _usbredir_write_cb in usbredirect-usbredirect.o
      _usbredir_read_cb in usbredirect-usbredirect.o
  "_g_mutex_unlock", referenced from:
      _usbredir_unlock_lock in usbredirect-usbredirect.o
  "_g_pollable_output_stream_write_nonblocking", referenced from:
      _usbredir_write_cb in usbredirect-usbredirect.o
  "_g_io_stream_get_type", referenced from:
      _usbredir_write_cb in usbredirect-usbredirect.o
      _usbredir_read_cb in usbredirect-usbredirect.o
  "_g_unix_signal_add", referenced from:
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
  "_g_main_loop_new", referenced from:
      _main in usbredirect-usbredirect.o
  "_g_option_context_free", referenced from:
      _main in usbredirect-usbredirect.o
  "_g_log_structured_standard", referenced from:
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
      _connection_handle_io_cb in usbredirect-usbredirect.o
      _connection_handle_io_cb in usbredirect-usbredirect.o
      _usbredir_write_flush_cb in usbredirect-usbredirect.o
      _usbredir_write_cb in usbredirect-usbredirect.o
      _usbredir_read_cb in usbredirect-usbredirect.o
      _thread_handle_libusb_events in usbredirect-usbredirect.o
      _thread_handle_libusb_events in usbredirect-usbredirect.o
  "_g_pollable_output_stream_get_type", referenced from:
      _usbredir_write_cb in usbredirect-usbredirect.o
  "_g_option_context_parse", referenced from:
      _main in usbredirect-usbredirect.o
  "_g_log_structured", referenced from:
      _usbredir_log_cb in usbredirect-usbredirect.o
      _debug_libusb_cb in usbredirect-usbredirect.o
  "_g_error_matches", referenced from:
      _usbredir_write_cb in usbredirect-usbredirect.o
      _usbredir_read_cb in usbredirect-usbredirect.o
  "_g_option_context_add_main_entries", referenced from:
      _main in usbredirect-usbredirect.o
  "_g_socket_client_new", referenced from:
      _main in usbredirect-usbredirect.o
  "_g_atomic_int_set", referenced from:
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
  "_g_socket_service_new", referenced from:
      _main in usbredirect-usbredirect.o
  "_g_socket_get_fd", referenced from:
      _main in usbredirect-usbredirect.o
      _connection_incoming_cb in usbredirect-usbredirect.o
  "_g_mutex_clear", referenced from:
      _usbredir_free_lock in usbredirect-usbredirect.o
  "_g_io_error_quark", referenced from:
      _usbredir_write_cb in usbredirect-usbredirect.o
      _usbredir_read_cb in usbredirect-usbredirect.o
  "_g_socket_listener_add_address", referenced from:
      _main in usbredirect-usbredirect.o
  "_g_io_channel_unix_new", referenced from:
      _main in usbredirect-usbredirect.o
      _connection_incoming_cb in usbredirect-usbredirect.o
  "_g_ascii_strtoll", referenced from:
      _parse_opt_uri in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
  "_g_socket_set_keepalive", referenced from:
      _main in usbredirect-usbredirect.o
      _connection_incoming_cb in usbredirect-usbredirect.o
  "_g_main_loop_quit", referenced from:
      _signal_handler in usbredirect-usbredirect.o
      _connection_handle_io_cb in usbredirect-usbredirect.o
      _usbredir_write_flush_cb in usbredirect-usbredirect.o
      _usbredir_write_cb in usbredirect-usbredirect.o
      _usbredir_read_cb in usbredirect-usbredirect.o
  "_g_inet_address_new_loopback", referenced from:
      _main in usbredirect-usbredirect.o
  "_g_error_free", referenced from:
      _main in usbredirect-usbredirect.o
  "_g_warn_message", referenced from:
      _usbredir_log_cb in usbredirect-usbredirect.o
      _debug_libusb_cb in usbredirect-usbredirect.o
  "_g_mutex_lock", referenced from:
      _usbredir_lock_lock in usbredirect-usbredirect.o
  "_g_printerr", referenced from:
      _parse_opt_uri in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
      _main in usbredirect-usbredirect.o
  "_g_thread_join", referenced from:
      _main in usbredirect-usbredirect.o
  "_g_io_stream_get_output_stream", referenced from:
      _usbredir_write_cb in usbredirect-usbredirect.o
  "_g_pollable_input_stream_read_nonblocking", referenced from:
      _usbredir_read_cb in usbredirect-usbredirect.o
ld: symbol(s) not found for architecture ppc
collect2: ld returned 1 exit status
fatal error: lipo: can't open input file: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_usbredir/usbredir/work/.tmp/ccTzu18y.out (No such file or directory)
make[2]: *** [usbredirect] Error 1
make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_usbredir/usbredir/work/usbredir-0.9.0/tools'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_usbredir/usbredir/work/usbredir-0.9.0'
make: *** [all] Error 2
make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_usbredir/usbredir/work/usbredir-0.9.0'

Its dependencies do not list glib2 or gobject-introspection:

36-109:~ svacchanda$ port deps usbredir
Full Name: usbredir @0.9.0_0+universal
Extract Dependencies: xz
Build Dependencies:   pkgconfig, autoconf, automake, libtool
Library Dependencies: libusb

But it looks like it does depend on those either for build or otherwise.

And yes, I do not have those two ports as +universal at the moment:

36-109:~ svacchanda$ port -v installed glib2
The following ports are currently installed:
  glib2 @2.62.6_2+x11 requested_variants='-universal' platform='darwin 9' archs='ppc' date='2021-12-22T12:28:22+0800'
  glib2 @2.64.6_0+x11 requested_variants='' platform='darwin 9' archs='ppc' date='2021-12-29T16:07:42+0800'
  glib2 @2.64.6_1+x11 (active) requested_variants='-universal' platform='darwin 9' archs='ppc64' date='2022-03-08T06:30:55+0800'
36-109:~ svacchanda$ port -v installed gobject-introspection
The following ports are currently installed:
  gobject-introspection @1.60.2_8 (active) requested_variants='-universal' platform='darwin 9' archs='ppc' date='2022-02-11T11:53:03+0800'

Attachments (1)

main.log (97.3 KB) - added by barracuda156 2 years ago.

Download all attachments as: .zip

Change History (3)

Changed 2 years ago by barracuda156

Attachment: main.log added

comment:1 Changed 2 years ago by ryandesign (Ryan Carsten Schmidt)

Keywords: powerpc leopard ppc64 removed
Status: assignedaccepted
Summary: usbredir fails for ppc+ppc64 on Leopard: add dependency on glib2 and gobject-introspection?usbredir @0.9.0: opportunistic use of glib2

Agreed, when glib2 is present, the usbredirect binary gets built and links with glib2. When glib2 is absent, the usbredirect binary is silently omitted. OS version and architecture do not play a role.

comment:2 Changed 2 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: acceptedclosed

In a2c6f6ab71fdbbd6402bcc30b6354d8c55993465/macports-ports (master):

usbredir: Link with glib2 so usbredirect is built

Closes: #64940

Note: See TracTickets for help on using tickets.