problems with building "unalz"
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
> && 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.cpp:462: error: invalid conversion from 'const char**' to
> 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
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