When trying to update hylafax to the latest available version, I get an error while emerging. Reproducible: Always Steps to Reproduce: 1. emerge sync 2. emerge -uUDv world (hylafax emerged previously) Actual Results: Emerge of hylafax stops with an error: Calculating world dependencies ...done! >>> emerge (1 of 1) net-misc/hylafax-4.1.8-r3 to / >>> md5 src_uri ;-) hylafax-4.1.8.tar.gz >>> Unpacking source... >>> Unpacking hylafax-4.1.8.tar.gz to /var/tmp/portage/hylafax-4.1.8-r3/work >>> Source unpacked. * Applying hylafax-4.1.8-gcc-version.patch... [ ok ] Configuring HylaFAX (tm) (aka FlexFAX) 4.1.8. If configure does the wrong thing, check the file config.log for information that may help you understand what went wrong. Reading site-wide parameters from ./config.site. Fee, fie, foe, this smells like a i686-pc-linux-gnu system. Using /usr/bin/gcc for a C compiler (set CC to override). Looks like /usr/bin/gcc supports the -g option. Using " -g" for C compiler options. Looks like /usr/bin/gcc has an ANSI C preprocessor. ... but __ANSI_CPP__ is not automatically defined, will compensate. Looks like /usr/bin/gcc supports the -M option for generating make dependencies. ./configure: line 782: [: -gt: unary operator expected ./configure: line 785: [: -eq: unary operator expected Cannot locate a suitable C++ compiler. We attempted to compile the following test program: ---------------------------------------------------------- class foo { public: struct bar { int a; bar(); }; foo(); }; foo::bar::bar() { a = 0; } foo::foo() { bar x; } int main() { foo t; return 0; } ---------------------------------------------------------- with these compilers: g++ but none of them were successful. To build this software you need a C++ compiler that supports a reasonably modern version of C++. In particular the compiler must support nested types and process temporary variables according to the ANSI Reference Manual (the ARM). If such a compiler is in a non-standard location, you can specify its location in several ways: o set the environment variable CXX o create a config.local or config.site file that includes a definition for CXX o supply it on the command line using -with-CXX=<pathname> If you are trying to use GNU gcc, but you do not have version 2.6.1 or newer, then you must update your compiler (and probably libg++ as well) before you can compile this software. Consult the documentation for information about obtaining an up-to-date version of gcc. Unrecoverable error! Once you've corrected the problem rerun this script. !!! ERROR: net-misc/hylafax-4.1.8-r3 failed. !!! Function src_compile, Line 62, Exitcode 1 !!! (no error message) The problem seems to be related to some problem while configuring: [...] Looks like /usr/bin/gcc supports the -M option for generating make dependencies. ./configure: line 782: [: -gt: unary operator expected ./configure: line 785: [: -eq: unary operator expected Cannot locate a suitable C++ compiler. [...] I haven't had time to take a look at that, but it seems to be the source of the problem. Expected Results: hylafax should have been installed correctly Portage 2.0.50-r6 (default-x86-1.4, gcc-3.3.2, glibc-2.3.2-r9, 2.4.22-gentoo-r5) ================================================================= System uname: 2.4.22-gentoo-r5 i686 AMD Athlon(TM) XP 2000+ Gentoo Base System version 1.4.10 Autoconf: sys-devel/autoconf-2.58-r1 Automake: sys-devel/automake-1.8.3 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer -mmmx -m3dnow" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /etc/tomcat /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer -mmmx -m3dnow" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://gentoo.oregonstate.edu http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnow X alsa apm avi berkdb bonobo cdr cjk cups doc dvd dvdr encode esd foomaticdb freetype gdbm gif gnome gpm gtk gtk2 gtkhtml guile hbci imlib java jikes jpeg kerberos ldap libg++ libwww mad mikmod mmx mng motif mozcalendar mozilla mozsvg mpeg ncurses nls ofx oggvorbis openal opengl oss pam pdflib perl png python quicktime readline sdl slang spell ssl svga tcltk tcpd tetex truetype x86 xml2 xmms xv zlib"
I think I have located the problem. The configure script uses the following to check the version of the compiler (line 779): eval `$app -v 2>&1 | \ sed -n -e '/version/s/.* [a-z\-]*\([0-9]*\)\.\([0-9]*\).\([0-9]*\).*/GCCdist=\1;GCCmajor=\2;GCCminor=\3/p'` GCCversion="${GCCdist}.${GCCmajor}.${GCCminor}"; export GCCversion where $app evaluates to the compiler being checked. The first compiler checked is g++. The following is the output of g++ -v: Leyendo especificaciones de /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/specs Configurado con: /var/tmp/portage/gcc-3.3.2-r5/work/gcc-3.3.2/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/3.3 --includedir=/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/3.3 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/3.3/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/3.3/info --enable-shared --host=i686-pc-linux-gnu --target=i686-pc-linux-gnu --with-system-zlib --enable-languages=c,c++,f77,objc,java --enable-threads=posix --enable-long-long --disable-checking --enable-cstdio=stdio --enable-clocale=generic --enable-__cxa_atexit --enable-version-specific-runtime-libs --with-gxx-include-dir=/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/include/g++-v3 --with-local-prefix=/usr/local --enable-shared --enable-nls --without-included-gettext --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib --enable-interpreter --enable-java-awt=xlib --with-x --disable-multilib Modelo de hilos: posix gcc versi
I think I have located the problem. The configure script uses the following to check the version of the compiler (line 779): eval `$app -v 2>&1 | \ sed -n -e '/version/s/.* [a-z\-]*\([0-9]*\)\.\([0-9]*\).\([0-9]*\).*/GCCdist=\1;GCCmajor=\2;GCCminor=\3/p'` GCCversion="${GCCdist}.${GCCmajor}.${GCCminor}"; export GCCversion where $app evaluates to the compiler being checked. The first compiler checked is g++. The following is the output of g++ -v: Leyendo especificaciones de /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/specs Configurado con: /var/tmp/portage/gcc-3.3.2-r5/work/gcc-3.3.2/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/3.3 --includedir=/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/3.3 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/3.3/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/3.3/info --enable-shared --host=i686-pc-linux-gnu --target=i686-pc-linux-gnu --with-system-zlib --enable-languages=c,c++,f77,objc,java --enable-threads=posix --enable-long-long --disable-checking --enable-cstdio=stdio --enable-clocale=generic --enable-__cxa_atexit --enable-version-specific-runtime-libs --with-gxx-include-dir=/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/include/g++-v3 --with-local-prefix=/usr/local --enable-shared --enable-nls --without-included-gettext --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib --enable-interpreter --enable-java-awt=xlib --with-x --disable-multilib Modelo de hilos: posix gcc versión 3.3.2 20031218 (Gentoo Linux 3.3.2-r5, propolice-3.3-7) I have my system configured to use the es_ES.UTF-8 locale, so the information about the compiler version is given in spanish. As a result of this, the last line reads: gcc versión... (spanish) instead of gcc version... (english) so the configure script is not able to guess the version of the compiler, as it doesn't find the string it is looking for (version). I guess this should be passed to the hylafax guys, shouldn't it? Maybe I should start using per user locales instead of having a global locale?
I was right about the root of the error. With LANG=en_US.UTF-8 this ebuild works like a charm.
I have finals plus off-site installation work for several weeks... There don't seem to be any locale bugs in the Hylafax bugzilla, nor any entries in the wiki. http://bugs.hylafax.org/bugzilla/ http://wiki.ifax.com/tiki-index.php http://www.hylafax.org/HylaFAQ/index.html There is a new Hylafax beta, which may or may not have updated the old configure stuff in the current code. Feel free to file a bug there, post a wiki thing, or try the beta package; I'll see if I can make a beta ebuild before finals hit (not likely). Otherwise you should see the Hylafax beta ebuild in portage by the end of May.
Well, summer turned out to be a killer work crunch (sorry) but I'm about to add the 4.2_rc2 ebuild (contributed by another user). Feel free to give it a whirl...
The latest 4.2.0 is now in portage; give it a whirl and let me know how it goes.