[MacPorts] #17602: strigi: invalid conversion from 'const char**' to 'char**'
#17602: strigi: invalid conversion from 'const char**' to 'char**' -------------------------------------+-------------------------------------- Reporter: ryandesign@… | Owner: clubjuggler@… Type: defect | Status: new Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Keywords: | Port: strigi -------------------------------------+-------------------------------------- strigi 0.5.10 doesn't compile on Mac OS X 10.4.11 Intel: {{{ rschmidt@seven strigi $ port install ---> Fetching strigi ---> Attempting to fetch strigi-0.5.10.tar.bz2 from http://internap.dl.sourceforge.net/strigi ---> Verifying checksum(s) for strigi ---> Extracting strigi ---> Applying patches to strigi ---> Configuring strigi ---> Building strigi Error: Target org.macports.build returned: shell command " cd "/mp/var/macports/build/_Users_rschmidt_macports_dports_devel_strigi/work/strigi-0.5.10" && nice -n 10 make all " returned error 2 Command output: [ 10%] Building CXX object src/streams/CMakeFiles/streams.dir/tarinputstream.o [ 11%] Building CXX object src/streams/CMakeFiles/streams.dir/textutils.o [ 11%] Building CXX object src/streams/CMakeFiles/streams.dir/zipinputstream.o [ 12%] Building CXX object src/streams/CMakeFiles/streams.dir/processinputstream.o [ 12%] Building CXX object src/streams/CMakeFiles/streams.dir/strigi/compat.o [ 13%] Building CXX object src/streams/CMakeFiles/streams.dir/strigi/fnmatch.o [ 13%] Building CXX object src/streams/CMakeFiles/streams.dir/strigi/stgdirent.o Linking CXX shared library libstreams.dylib [ 13%] Built target streams Scanning dependencies of target oletest [ 13%] Building CXX object src/streams/CMakeFiles/oletest.dir/oletest.o Linking CXX executable oletest [ 13%] Built target oletest Scanning dependencies of target testpt [ 13%] Building CXX object src/streams/CMakeFiles/testpt.dir/testpt.o [ 14%] Building CXX object src/streams/CMakeFiles/testpt.dir/processinputstream.o Linking CXX executable testpt [ 14%] Built target testpt Scanning dependencies of target pdfstream [ 14%] Building CXX object src/streams/pdf/CMakeFiles/pdfstream.dir/pdfparser.o Linking CXX static library libpdfstream.a [ 14%] Built target pdfstream Scanning dependencies of target streamanalyzer [ 15%] Building CXX object src/streamanalyzer/CMakeFiles/streamanalyzer.dir/analysisresult.o /mp/var/macports/build/_Users_rschmidt_macports_dports_devel_strigi/work/strigi-0.5.10/src/streamanalyzer/analysisresult.cpp: In member function 'int32_t Latin1Converter::_fromLatin1(char*&, const char*, size_t)': /mp/var/macports/build/_Users_rschmidt_macports_dports_devel_strigi/work/strigi-0.5.10/src/streamanalyzer/analysisresult.cpp:91: error: invalid conversion from 'const char**' to 'char**' /mp/var/macports/build/_Users_rschmidt_macports_dports_devel_strigi/work/strigi-0.5.10/src/streamanalyzer/analysisresult.cpp:91: error: initializing argument 2 of 'size_t libiconv(void*, char**, size_t*, char**, size_t*)' make[2]: *** [src/streamanalyzer/CMakeFiles/streamanalyzer.dir/analysisresult.o] Error 1 make[1]: *** [src/streamanalyzer/CMakeFiles/streamanalyzer.dir/all] Error 2 make: *** [all] Error 2 Error: Status 1 encountered during processing. $ }}} 0.5.7 had the same problem. This looks like the age-old differing libiconv implementation error. Different versions of libiconv implement the interface differently (sometimes the same version of libiconv implements the interface differently on different platforms or in different situations). The software needs to detect which implementation is in place on the system at hand, and use that one. -- Ticket URL: <http://trac.macports.org/ticket/17602> MacPorts <http://www.macports.org/> Ports system for Mac OS
#17602: strigi: invalid conversion from 'const char**' to 'char**' -------------------------------------+-------------------------------------- Reporter: ryandesign@… | Owner: clubjuggler@… Type: defect | Status: new Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Keywords: | Port: strigi -------------------------------------+-------------------------------------- Comment(by toby@…): It looks like it has a configure check for it, so I'm not sure why this ends up failing. I guess it could be that the configure script (well, cmake in this case) looks at /usr/include/iconv.h (which I believe is busted on Tiger), but it uses /opt/local/include/iconv.h while building... -- Ticket URL: <http://trac.macports.org/ticket/17602#comment:1> MacPorts <http://www.macports.org/> Ports system for Mac OS
#17602: strigi: invalid conversion from 'const char**' to 'char**' -------------------------------------+-------------------------------------- Reporter: ryandesign@… | Owner: clubjuggler@… Type: defect | Status: new Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Keywords: | Port: strigi -------------------------------------+-------------------------------------- Comment(by ryandesign@…): That's possible. I don't know that /usr/include/iconv.h (which is copyright 2003) is busted on Tiger, but it is a different file than /opt/local/include/iconv.h (which is copyright 2006). -- Ticket URL: <http://trac.macports.org/ticket/17602#comment:2> MacPorts <http://www.macports.org/> Ports system for Mac OS
#17602: strigi: invalid conversion from 'const char**' to 'char**' --------------------------------------+------------------------------------- Reporter: ryandesign@… | Owner: clubjuggler@… Type: defect | Status: closed Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Resolution: fixed | Keywords: Port: strigi | --------------------------------------+------------------------------------- Changes (by jmr@…): * cc: jmr@… (added) * status: new => closed * resolution: => fixed Comment: I think this was due to an undeclared dependency on libxml2, which caused strigi to use the system libxml2 when the port was not installed. Libxml2 uses libiconv, and thus, disaster. I've added this dep and a few others in r45985. -- Ticket URL: <http://trac.macports.org/ticket/17602#comment:3> MacPorts <http://www.macports.org/> Ports system for Mac OS
#17602: strigi: invalid conversion from 'const char**' to 'char**' ------------------------------------+--------------------------------------- Reporter: ryandesign@… | Owner: clubjuggler@… Type: defect | Status: closed Priority: Normal | Component: ports Version: 1.7.0 | Resolution: fixed Keywords: | Port: strigi ------------------------------------+--------------------------------------- Comment(by p.maedel@…): Having exactly the same error again with 0.6.3 Please reopen & fix {{{ /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_strigi/work/strigi-0.6.3/src/streamanalyzer/analysisresult.cpp: In member function 'int32_t Latin1Converter::_fromLatin1(char*&, const char*, size_t)': /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_strigi/work/strigi-0.6.3/src/streamanalyzer/analysisresult.cpp:91: error: invalid conversion from 'const char**' to 'char**' /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_strigi/work/strigi-0.6.3/src/streamanalyzer/analysisresult.cpp:91: error: initializing argument 2 of 'size_t libiconv(void*, char**, size_t*, char**, size_t*)' make[2]: *** [src/streamanalyzer/CMakeFiles/streamanalyzer.dir/analysisresult.cpp.o] Error 1 make[1]: *** [src/streamanalyzer/CMakeFiles/streamanalyzer.dir/all] Error 2 make: *** [all] Error 2 }}} -- Ticket URL: <http://trac.macports.org/ticket/17602#comment:6> MacPorts <http://www.macports.org/> Ports system for Mac OS
#17602: strigi: invalid conversion from 'const char**' to 'char**' --------------------------------------+------------------------------------- Reporter: ryandesign@… | Owner: clubjuggler@… Type: defect | Status: closed Priority: Normal | Milestone: Component: ports | Version: 1.7.0 Resolution: fixed | Keywords: Port: strigi | --------------------------------------+------------------------------------- Comment(by macsforever2000@…): Replying to [comment:6 p.maedel@…]:
Having exactly the same error again with 0.6.3
wfm. Please run the following: {{{ sudo port selfupdate sudo port upgrade outdated sudo port clean strigi sudo port install strigi }}} If it still does not work for you, please supply the version of Mac OS X and Xcode you are running. -- Ticket URL: <http://trac.macports.org/ticket/17602#comment:7> MacPorts <http://www.macports.org/> Ports system for Mac OS
#17602: strigi: invalid conversion from 'const char**' to 'char**' --------------------------------------+------------------------------------- Reporter: ryandesign@… | Owner: clubjuggler@… Type: defect | Status: closed Priority: Normal | Milestone: Component: ports | Version: 1.7.0 Resolution: fixed | Keywords: Port: strigi | --------------------------------------+------------------------------------- Comment(by p.maedel@…): ty, what a fast response! {{{ pmaedel$ sudo port selfupdate MacPorts base version 1.710 installed Downloaded MacPorts base version 1.710 The MacPorts installation is not outdated so it was not updated pmaedel$ sudo port upgrade outdated Error: No ports found pmaedel$ sudo port clean strigi ---> Cleaning strigi }}} But install finishes with same error again. OS X is v10.5.7[[BR]] XCode is v3.1.3 thanks again! -- Ticket URL: <http://trac.macports.org/ticket/17602#comment:8> MacPorts <http://www.macports.org/> Ports system for Mac OS
#17602: strigi: invalid conversion from 'const char**' to 'char**' --------------------------------------+------------------------------------- Reporter: ryandesign@… | Owner: clubjuggler@… Type: defect | Status: reopened Priority: Normal | Milestone: Component: ports | Version: 1.7.0 Resolution: | Keywords: Port: strigi | --------------------------------------+------------------------------------- Changes (by macsforever2000@…): * status: closed => reopened * resolution: fixed => Comment: Do you have an older version of strigi active already? If so, try to deactivate it and then run the install. {{{ sudo port deactivate strigi sudo port clean strigi sudo port install strigi }}} -- Ticket URL: <http://trac.macports.org/ticket/17602#comment:9> MacPorts <http://www.macports.org/> Ports system for Mac OS
#17602: strigi: invalid conversion from 'const char**' to 'char**' --------------------------------------+------------------------------------- Reporter: ryandesign@… | Owner: clubjuggler@… Type: defect | Status: reopened Priority: Normal | Milestone: Component: ports | Version: 1.7.0 Resolution: | Keywords: Port: strigi | --------------------------------------+------------------------------------- Comment(by p.maedel@…): No, this is a fresh install of macports. actually the complete OS X installation is only half a year old so there should not be to much obfuscation. {{{ Error: port deactivate failed: Registry error: strigi not registered as installed & active. }}} -- Ticket URL: <http://trac.macports.org/ticket/17602#comment:10> MacPorts <http://www.macports.org/> Ports system for Mac OS
#17602: strigi: invalid conversion from 'const char**' to 'char**' --------------------------------------+------------------------------------- Reporter: ryandesign@… | Owner: clubjuggler@… Type: defect | Status: reopened Priority: Normal | Milestone: Component: ports | Version: 1.7.0 Resolution: | Keywords: Port: strigi | --------------------------------------+------------------------------------- Comment(by ryandesign@…): Is libiconv installed with the universal variant, and if so, for which architectures? -- Ticket URL: <http://trac.macports.org/ticket/17602#comment:11> MacPorts <http://www.macports.org/> Ports system for Mac OS
#17602: strigi: invalid conversion from 'const char**' to 'char**' --------------------------------------+------------------------------------- Reporter: ryandesign@… | Owner: clubjuggler@… Type: defect | Status: reopened Priority: Normal | Milestone: Component: ports | Version: 1.7.0 Resolution: | Keywords: Port: strigi | --------------------------------------+------------------------------------- Comment(by p.maedel@…): libiconv is not installed as universal. this is an intel machine. strange thing is, a friend was able to install strigi on the same kind of machine. so I uninstalled macports & xcode completely and tried it all over again - with the same result. -- Ticket URL: <http://trac.macports.org/ticket/17602#comment:12> MacPorts <http://www.macports.org/> Ports system for Mac OS
#17602: strigi: invalid conversion from 'const char**' to 'char**' --------------------------------------+------------------------------------- Reporter: ryandesign@… | Owner: clubjuggler@… Type: defect | Status: reopened Priority: Normal | Milestone: Component: ports | Version: 1.7.0 Resolution: | Keywords: Port: strigi | --------------------------------------+------------------------------------- Comment(by etphipp@…): I am getting the same build error with 0.6.3 and believe the trouble is cmake's configure of strigi is picking up the system libiconv (which has const char** as the second argument to libiconv()): $ grep ICONV CMakeCache.txt ICONV_INCLUDE_DIR:PATH=/Library/Frameworks/libiconv.framework/Headers ICONV_LIBRARIES:FILEPATH=/Library/Frameworks/libiconv.framework //Advanced flag for variable: ICONV_INCLUDE_DIR ICONV_INCLUDE_DIR-ADVANCED:INTERNAL=1 //Advanced flag for variable: ICONV_LIBRARIES ICONV_LIBRARIES-ADVANCED:INTERNAL=1 //Advanced flag for variable: ICONV_SECOND_ARGUMENT_IS_CONST ICONV_SECOND_ARGUMENT_IS_CONST-ADVANCED:INTERNAL=1 //Test ICONV_SECOND_ARGUMENT_IS_CONST ICONV_SECOND_ARGUMENT_IS_CONST:INTERNAL=1 However the build of strigi is trying to pull in the header from /opt/local/include (where the second argument to libiconv() is char**). A solution is to override the path to libiconv in the cmake configure: configure.args-append -DICONV_INCLUDE_DIR:PATH=/opt/local/include configure.args-append -DICONV_LIBRARIES:FILEPATH=/opt/local/lib/libiconv.dylib configure.args-append -DLIBXML2_INCLUDE_DIR:PATH=/opt/local/include/libxml2 configure.args-append -DLIBXML2_LIBRARIES:FILEPATH=/opt/local/lib/libxml2.dylib The last two fix a similar error that crops up later regarding libxml2. With these changes, 0.6.3 now builds on my machine. A diff of the portfile is attached. -- Ticket URL: <http://trac.macports.org/ticket/17602#comment:13> MacPorts <http://www.macports.org/> Ports system for Mac OS
#17602: strigi: invalid conversion from 'const char**' to 'char**' --------------------------------------+------------------------------------- Reporter: ryandesign@… | Owner: clubjuggler@… Type: defect | Status: reopened Priority: Normal | Milestone: Component: ports | Version: 1.7.0 Resolution: | Keywords: Port: strigi | --------------------------------------+------------------------------------- Comment(by florian.feldhaus@…): The supplied patch solved the problem for me. As long as it's not applied, you can download the patch and apply it to /opt/local/var/macports/sources/rsync.macports.org/release/ports/devel/strigi/Portfile -- Ticket URL: <http://trac.macports.org/ticket/17602#comment:14> MacPorts <http://www.macports.org/> Ports system for Mac OS
#17602: strigi: invalid conversion from 'const char**' to 'char**' --------------------------------------+------------------------------------- Reporter: ryandesign@… | Owner: clubjuggler@… Type: defect | Status: closed Priority: Normal | Milestone: Component: ports | Version: 1.7.0 Resolution: fixed | Keywords: Port: strigi | --------------------------------------+------------------------------------- Changes (by jmr@…): * status: reopened => closed * resolution: => fixed Comment: Changed the fix to respect $prefix and applied in r55989. -- Ticket URL: <http://trac.macports.org/ticket/17602#comment:16> MacPorts <http://www.macports.org/> Ports system for Mac OS
participants (1)
-
MacPorts