Opened 12 years ago

Closed 4 years ago

#34823 closed defect (fixed)

cdrtools: missing isoinfo, mkhybrid, and mkisofs

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 2.1.1
Keywords: Cc: smogus@…, mparchet@…, jsd_macports@…, andersm (Anders Montonen), daryll.strauss@…, myk@…, gelderode
Port: cdrtools

Description

Gill Bates and Michael Parchet reported on the mailing list that the cdrtools port does not install mkisofs. Gill's report implies that cdrtools fails to build, but Michael's report says cdrtools successfully built and installed, but that isoinfo, mkhybrid and mkisofs did not end up getting installed. I'll attach the log file Michael emailed me, which shows the build complaining about missing libintl and libiconv symbols when making these programs:

:info:build 	==> LINKING "OBJ/i386-darwin-cc/mkisofs"
:info:build Undefined symbols for architecture x86_64:
:info:build   "_libintl_setlocale", referenced from:
:info:build       _main in mkisofs.o
:info:build   "_libiconv", referenced from:
:info:build       _conv_charset in joliet.o
:info:build       _convert_to_unicode in joliet.o
:info:build       _joliet_strlen in joliet.o
:info:build   "_libiconv_open", referenced from:
:info:build       _sic_open in libsiconv.a(sic_nls.o)
:info:build       _create_iconv_sic in libsiconv.a(sic_nls.o)
:info:build   "_libiconv_close", referenced from:
:info:build       _sic_open in libsiconv.a(sic_nls.o)
:info:build       _sic_close in libsiconv.a(sic_nls.o)
:info:build       _create_iconv_sic in libsiconv.a(sic_nls.o)
:info:build   "_libintl_gettext", referenced from:
:info:build       __nexttoken in libfind.a(find.o)
:info:build       _find_expr in libfind.a(find.o)
:info:build       _doexec in libfind.a(find.o)
:info:build       _find_usage in libfind.a(find.o)
:info:build       _parseprim in libfind.a(find.o)
:info:build       _nextarg in libfind.a(find.o)
:info:build       _walkgethome in libfind.a(walk.o)
:info:build       ...
:info:build ld: symbol(s) not found for architecture x86_64
:info:build clang: error: linker command failed with exit code 1 (use -v to see invocation)

Those are the same errors Gill showed. Gill was using Xcode 4.3.2; Michael did not specify an Xcode version but the log shows the port being built using clang. The problem seems to be that the argument "-L/opt/local/lib" is never being passed to the compiler, so it doesn't know where to find libintl and libiconv. gcc, llvm-gcc-4.2 (?) and clang versions newer than 3.1 (?) obey the LIBRARY_PATH environment variable MacPorts sets and thus are able to find the libraries even without the -L argument. However the versions of clang available in Xcode versions up to at least 4.3.2 seem not to obey that variable and thus we will need to patch the build process to insert the -L argument. Also we should fix the port so that if files don't get built, it should not proceed to install.

Attachments (4)

main.log.bz2 (21.5 KB) - added by ryandesign (Ryan Carsten Schmidt) 12 years ago.
Michael's log
main.log (232.7 KB) - added by mparchet@… 12 years ago.
cdrtools Erroroutput.txt (802 bytes) - added by mparchet@… 12 years ago.
Portfile (2.8 KB) - added by jsd_macports@… 12 years ago.
Portfile with override to force -L/opt/local/lib on compiler command line

Download all attachments as: .zip

Change History (20)

Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Attachment: main.log.bz2 added

Michael's log

comment:1 Changed 12 years ago by mparchet@…

Hello,

My Xcode version is Version 4.3.2 (4E2002)

Best regards

mparchet

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

Replying to ryandesign@…:

we should fix the port so that if files don't get built, it should not proceed to install.

r94199

Changed 12 years ago by mparchet@…

Attachment: main.log added

Changed 12 years ago by mparchet@…

Attachment: cdrtools Erroroutput.txt added

comment:3 Changed 12 years ago by mparchet@…

Hello,

I have tried to update all ports and then rebuild cdrtools but itisn't works

Can you help me please ?

Best regards

mparchet

comment:4 in reply to:  3 ; Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to mparchet@…:

I have tried to update all ports and then rebuild cdrtools but itisn't works

We haven't fixed the problem yet. When we do, this ticket will be marked as fixed.

If anyone knows how to fix the problem (how to insert "-L/opt/local/lib" into the build process, or another solution for the problem), please mention it here.

comment:5 in reply to:  4 Changed 12 years ago by jsd_macports@…

Replying to ryandesign@…:

I have tried to update all ports and then rebuild cdrtools but itisn't works

If anyone knows how to fix the problem (how to insert "-L/opt/local/lib" into the build process, or another solution for the problem), please mention it here.

I had the same problem. Adding this line to the Portfile

build.args-append  LDPATH=-L/opt/local/lib

after the build.args line worked for me.

comment:6 Changed 12 years ago by mparchet@…

Hello,

Can you attache your treated post file to this ticket ?

Tanks by advanced

Best regards

mparchet

Changed 12 years ago by jsd_macports@…

Attachment: Portfile added

Portfile with override to force -L/opt/local/lib on compiler command line

comment:7 Changed 12 years ago by jsd_macports@…

Cc: jsd_macports@… added

Cc Me!

comment:8 Changed 12 years ago by andersm (Anders Montonen)

Cc: Anders.Montonen@… added

Cc Me!

comment:9 Changed 12 years ago by daryll.strauss@…

Cc: daryll.strauss@… added

Cc Me!

comment:10 in reply to:  6 ; Changed 12 years ago by myk@…

Replying to mparchet@…:

Hello,

Can you attache your treated post file to this ticket ?

Tanks by advanced

Best regards

mparchet

I tried jsd_macports' Portfile but it didn't seem to work. Is there a way to echo something to the log so I can be sure port is picking up the correct Portfile?

myk

comment:11 in reply to:  10 Changed 12 years ago by jsd_macports@…

Replying to myk@…:

Is there a way to echo something to the log so I can be sure port is picking up the correct Portfile?

port file cdrtools

shows the full path of the port file that will be used for the cdrtools port. If that's the file you edited/replaced, and it's still failing, then it must be failing for another reason.

comment:12 in reply to:  10 ; Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: myk@… added

Replying to myk@…:

I tried jsd_macports' Portfile but it didn't seem to work. Is there a way to echo something to the log so I can be sure port is picking up the correct Portfile?

Are you on Mountain Lion? jsd_macports' portfile does not include a Mountain Lion-specific fix that was subsequently made to the port.

comment:13 in reply to:  12 Changed 12 years ago by myk@…

Replying to ryandesign@…:

Replying to myk@…:

I tried jsd_macports' Portfile but it didn't seem to work. Is there a way to echo something to the log so I can be sure port is picking up the correct Portfile?

Are you on Mountain Lion? jsd_macports' portfile does not include a Mountain Lion-specific fix that was subsequently made to the port.

No, I have two machines on Lion, both have the same problem.

myk

comment:14 Changed 10 years ago by mf2k (Frank Schima)

Owner: changed from bytestorm@… to macports-tickets@…

This port no longer has a maintainer. See #45212.

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

Cc: gelderode added

Has duplicate #55284.

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

Resolution: fixed
Status: newclosed

In e39f07997a38d04422fceba50be9c239b3f0e764/macports-ports (master):

cdrtools: Use MacPorts flags and backport a bugfix

Closes: #34823
Closes: #43632

Note: See TracTickets for help on using tickets.