problems with building "unalz"

Ryan Schmidt ryandesign at macports.org
Tue Apr 21 06:51:25 PDT 2009


On Apr 21, 2009, at 08:00, running wrote:

> I wanted to build unalz to decompress one file with this stupid format
> (.alz). The only way to do it is through Unalz program.
>
> But, when trying to install (on intel mac), all I get is this:
>
> --->  Building unalz
> Error: Target org.macports.build returned: shell command " cd
> "/opt/local/var/macports/build/ 
> _opt_local_var_macports_sources_rsync.macports.org_release_ports_archi 
> vers_unalz/work/unalz"
> && make posix-utf8 " returned error 2
> Command output: g++ -c UnAlz.cpp -c UnAlzUtils.cpp -c main.cpp
> -D_UNALZ_ICONV -D_UNALZ_UTF8 -D_LARGEFILE64_SOURCE
> -D_FILE_OFFSET_BITS=64 -O2
> UnAlz.cpp: In member function 'BOOL  
> UNALZ::CUnAlz::ReadLocalFileheader()':
> UnAlz.cpp:462: error: invalid conversion from 'const char**' to  
> 'char**'
> UnAlz.cpp:462: error:   initializing argument 2 of 'size_t
> iconv(void*, char**, size_t*, char**, size_t*)'
> UnAlz.cpp:466: error: 'errno' was not declared in this scope
> UnAlz.cpp:466: error: 'EILSEQ' was not declared in this scope
> UnAlz.cpp:468: error: 'EINVAL' was not declared in this scope
> UnAlz.cpp:470: error: 'E2BIG' was not declared in this scope
> make: *** [posix-utf8] Error 1
>
> Error: Status 1 encountered during processing.
>
>
> I think there is an error somewhere in the c++ file, but I have no
> clue what to do. I have the newest macports installed. Is there
> something I can do?

iconv is a peculiar library which is different on different operating  
systems, and even different on different versions of the same  
operating system. It is different on Leopard and Tiger, for example.  
Software that uses iconv must be robust enough to detect which  
version of iconv is on any given system and adapt accordingly. It  
sounds like unalz is not robust enough.

It looks like the patch in

http://trac.macports.org/ticket/16106

may be designed to correct this very error, although it does not look  
like the patch author realized that iconv differs on different  
versions of Mac OS X, so while the patch will fix the build on  
Leopard, it will break it on Tiger. The maintainer has not responded  
to the ticket in 9 months so someone else should take on this issue  
and commit a fix, or see if the current version, 0.65, already  
incorporates a fix that works everywhere.




More information about the macports-users mailing list