Opened 15 years ago

Closed 14 years ago

#19691 closed defect (fixed)

Mediatomb failing to build universal when dependencies aren't

Reported by: peter.davis8@… Owned by: yattenator@…
Priority: Normal Milestone:
Component: ports Version: 1.7.1
Keywords: universal Cc: ryandesign (Ryan Carsten Schmidt)
Port: mediatomb

Description

Apologies in advance, new to all of this.

I have been trying to get mediatomb to work for a few days, and irrespective of what options I choose for it, I get the same error. I have got a similar error on one or two other ports, but have not recorded these.

Fetching mediatomb
Verifying checksum(s) for mediatomb
Extracting mediatomb
Applying patches to mediatomb
Configuring mediatomb
Building mediatomb
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_net_mediatomb/work/mediatomb-0.11.0" && make all " returned error 2
Command output: ranlib: file: libmediatomb.a(libmediatomb_a-sopcast_service.o) has no symbols
ranlib: file: libmediatomb.a(libmediatomb_a-mysql_storage.o) has no symbols
ranlib: file: libmediatomb.a(libmediatomb_a-upnp_mrreg_actions.o) has no symbols
ranlib: file: libmediatomb.a(libm
ediatomb_a-upnp_mrreg.o) has no symbols
ranlib: file: libmediatomb.a(libmediatomb_a-upnp_mrreg_subscriptions.o) has no symbols
ranlib: file: libmediatomb.a(libmediatomb_a-youtube_content_handler.o) has no symbols
ranlib: file: libmediatomb.a(libmediatomb_a-youtube_service.o) has no symbols
ranlib: file: libmediatomb.a(libmediatomb_a-youtube_video_url.o) has no symbols
/usr/bin/g++-4.0 -DHAVE_CONFIG_H -I. -I.. -I../tombupnp/upnp/inc   -I/opt/local/include -I../src -I../tombupnp/ixml/inc -I../tombupnp/threa
dutil/inc -I../tombupnp/upnp/inc -I..    -I/opt/local/include/js -I/opt/local/include/taglib       -D_THREAD_SAFE    -I/opt/local/include  -O2 -MT mediatomb-main.o -MD -MP -MF .deps/mediatomb-main.Tpo -c -o mediatomb-main.o `test -f '../src/main.cc' || echo './'`../src/main.cc
mv -f .deps/mediatomb-main.Tpo .deps/mediatomb-main.Po
/usr/bin/g++-4.0 -I../src -I../tombupnp/ixml/inc -I../tombupnp/threadutil/inc -I../tombupnp/upnp/inc -I..    -I/opt/local/include/js -I/opt/local/include/taglib       -D_THREAD_
SAFE    -I/opt/local/include  -O2  -L/opt/local/lib -o mediatomb mediatomb-main.o libmediatomb.a ../tombupnp/build/libtombupnp.a -L/opt/local/lib -liconv    -L/opt/local/lib -ltag   -ljs -lmagic     -D_THREAD_SAFE   -lavformat -lavutil -L/opt/local/lib -lcurl -L/opt/local/lib -Wl,-syslibroot,/Developer/SDKs/MacOSX10.5.sdk -arch ppc -arch i386 -mmacosx-version-min=10.5 -L/opt/local/lib -lz  -lcurl -ltag -lsqlite3 -lz   -lavformat -lavutil -lexif  -lexpat 
ld warning: in mediatomb-main.o, file is not of req
uired architecture
ld warning: in libmediatomb.a, file is not of required architecture
ld warning: in ../tombupnp/build/libtombupnp.a, file is not of required architecture
ld warning: in /opt/local/lib/libtag.dylib, file is not of required architecture
ld warning: in /opt/local/lib/libjs.dylib, file is not of required architecture
ld warning: in /opt/local/lib/libmagic.dylib, file is not of required architecture
ld warning: in /opt/local/lib/libavformat.dylib, file is not of required architecture
ld warni
ng: in /opt/local/lib/libavutil.dylib, file is not of required architecture
ld warning: in /opt/local/lib/libsqlite3.dylib, file is not of required architecture
ld warning: in /opt/local/lib/libexif.dylib, file is not of required architecture
Undefined symbols for architecture i386:
  "_main", referenced from:
      start in crt1.10.5.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status
lipo: can't open input file: /var/folders/kP/kPOZMBZ32RqLBE+8ZQTOm++++TI/-Tmp-//ccQtetQB.
out (No such file or directory)
make[2]: *** [mediatomb] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Error: Status 1 encountered during processing.
Executing: /opt/local/bin/port install mediatomb

I have the latest Xcode from Apple, and have run selfupdate a few times in the vain hope it would fix it.

I'm running leopard 10.5.6 on a 1.33GHz Powerbook G4. Not sure what else to include.

Cheers

Change History (2)

comment:1 Changed 15 years ago by jmroot (Joshua Root)

Owner: changed from macports-tickets@… to yattenator@…
Port: mediatomb added; Mediatomb removed

comment:2 in reply to:  description Changed 14 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: ryandesign@… added
Keywords: universal added; mediatomb leopard removed
Resolution: fixed
Status: newclosed
Summary: Mediatomb failing to buildMediatomb failing to build universal when dependencies aren't

Replying to peter.davis8@…:

/usr/bin/g++-4.0 -I../src -I../tombupnp/ixml/inc -I../tombupnp/threadutil/inc -I../tombupnp/upnp/inc -I.. -I/opt/local/include/js -I/opt/local/include/taglib -D_THREAD_SAFE -I/opt/local/include -O2 -L/opt/local/lib -o mediatomb mediatomb-main.o libmediatomb.a ../tombupnp/build/libtombupnp.a -L/opt/local/lib -liconv -L/opt/local/lib -ltag -ljs -lmagic -D_THREAD_SAFE -lavformat -lavutil -L/opt/local/lib -lcurl -L/opt/local/lib -Wl,-syslibroot,/Developer/SDKs/MacOSX10.5.sdk -arch ppc -arch i386 -mmacosx-version-min=10.5 -L/opt/local/lib -lz -lcurl -ltag -lsqlite3 -lz -lavformat -lavutil -lexif -lexpat

"-arch ppc -arch i386" means you have requested a universal build by selecting the universal variant

ld warning: in mediatomb-main.o, file is not of required architecture
ld warning: in libmediatomb.a, file is not of required architecture
ld warning: in ../tombupnp/build/libtombupnp.a, file is not of required architecture

This means the objects mediatomb is compiling are not universal. mediatomb 0.11.0 didn't build universal properly. 0.12.0, to which I just updated the port, does; see #23058.

ld warning: in /opt/local/lib/libtag.dylib, file is not of required architecture
ld warning: in /opt/local/lib/libjs.dylib, file is not of required architecture
ld warning: in /opt/local/lib/libmagic.dylib, file is not of required architecture
ld warning: in /opt/local/lib/libavformat.dylib, file is not of required architecture
ld warning: in /opt/local/lib/libavutil.dylib, file is not of required architecture
ld warning: in /opt/local/lib/libsqlite3.dylib, file is not of required architecture
ld warning: in /opt/local/lib/libexif.dylib, file is not of required architecture
Undefined symbols for architecture i386:

This means those libraries, which are provided by mediatomb's dependencies, are not universal. To build any port universal, you must build its dependencies universal, too. In r65383 I added the archcheck portgroup to mediatomb so that you'll get a more-useful error message in this situation, advising you to upgrade the dependencies to universal, and showing you how to do so.

Note, however, that ffmpeg cannot be built universal at this time, and that by default the mediatomb port requests ffmpeg support. So if you want a universal binary, you have to deselect the ffmpeg variant when building mediatomb (and then you won't have ffmpeg support).

Note: See TracTickets for help on using tickets.