I've found that I'm unable to install sci-geosciences/grass-6.2.0-r1 unless I set tcl and tk use flags. Probably it's ralated to bug #185425 # emerge -pvt grass These are the packages that would be merged, in reverse order: Calculating dependencies... done! [ebuild R ] sci-geosciences/grass-6.2.0-r1 USE="jpeg nls opengl png python readline tiff truetype -ffmpeg -fftw -glw -gmath -largefile -motif -mysql -odbc -postgres -sqlite -tcl* -tk*" 0 kB Compilation fails with following message: build_html_index.sh cp: невозможно создать обычный файл `../dist.i686-pc-linux-gnu/docs/html/nviz/': Это каталог cp: невозможно создать обычный файл `../dist.i686-pc-linux-gnu/docs/html/nviz/': Это каталог Generating HTML manual pages index (help system)... Generated HTML docs in ../dist.i686-pc-linux-gnu/docs/html/index.html ---------------------------------------------------------------------- Following modules are missing the 'description.html' file in src code: ---------------------------------------------------------------------- GRASS GIS compilation log ------------------------- Started compilation: Сбт Авг 18 10:19:18 YEKST 2007 -- Errors in: /var/tmp/portage/sci-geosciences/grass-6.2.0-r1/work/grass-6.2.0/visualization/nviz Complains about ../dist.i686-pc-linux-gnu/docs/html/nviz/ are rather harmless. They caused by build_html_index.sh which doesn't create directory ../dist.i686-pc-linux-gnu/docs/html/nviz/ before copying files there. See line 132 in build_html_index.sh. The real errors appears if I enter to /var/tmp/portage/sci-geosciences/grass-6.2.0-r1/work/grass-6.2.0/visualization/nviz and try to make: cd src ; make make[1]: Entering directory `/var/tmp/portage/sci-geosciences/grass-6.2.0-r1/work/grass-6.2.0/visualization/nviz/src' gcc -L/var/tmp/portage/sci-geosciences/grass-6.2.0-r1/work/grass-6.2.0/dist.i686-pc-linux-gnu/lib -Wl,--export-dynamic -Wl,-rpath-link,/var/tmp/portage/sci-geosciences/grass-6.2.0-r1/work/grass-6.2.0/dist.i686-pc-linux-gnu/lib -o /var/tmp/portage/sci-geosciences/grass-6.2.0-r1/work/grass-6.2.0/dist.i686-pc-linux-gnu/bin/nviz OBJ.i686-pc-linux-gnu/nvizAppInit.o OBJ.i686-pc-linux-gnu/change_view.o OBJ.i686-pc-linux-gnu/draw.o OBJ.i686-pc-linux-gnu/exag.o OBJ.i686-pc-linux-gnu/glwrappers.o OBJ.i686-pc-linux-gnu/init_commands.o OBJ.i686-pc-linux-gnu/lights.o OBJ.i686-pc-linux-gnu/map_obj.o OBJ.i686-pc-linux-gnu/misc.o OBJ.i686-pc-linux-gnu/nviz_init.o OBJ.i686-pc-linux-gnu/position.o OBJ.i686-pc-linux-gnu/quick_draw.o OBJ.i686-pc-linux-gnu/anim_support.o OBJ.i686-pc-linux-gnu/cutplane_obj.o OBJ.i686-pc-linux-gnu/script_support.o OBJ.i686-pc-linux-gnu/do_zoom.o OBJ.i686-pc-linux-gnu/label.o OBJ.i686-pc-linux-gnu/nvizMain.o OBJ.i686-pc-linux-gnu/togl.o OBJ.i686-pc-linux-gnu/togl_cb.o OBJ.i686-pc-linux-gnu/query_vect.o OBJ.i686-pc-linux-gnu/volume.o OBJ.i686-pc-linux-gnu/togl_flythrough.o OBJ.i686-pc-linux-gnu/pick_vect_commands.o OBJ.i686-pc-linux-gnu/site_attr_commands.o OBJ.i686-pc-linux-gnu/site_highlight_commands.o -lgrass_ogsf -lgrass_bitmap -lgrass_linkm -lgrass_g3d -lgrass_gis -lgrass_datetime -lz -lgrass_gis -lgrass_datetime -lz -lgrass_sites -lgrass_datetime -lgrass_dbmibase -lgrass_gis -lgrass_datetime -lz -lgrass_dbmiclient -lgrass_dbmibase -lgrass_gis -lgrass_datetime -lz -lgrass_gis -lgrass_datetime -lz -lgrass_gis -lgrass_datetime -lz -lgrass_vect -lgrass_dbmibase -lgrass_gis -lgrass_datetime -lz -lgrass_dbmiclient -lgrass_dbmibase -lgrass_gis -lgrass_datetime -lz -lgrass_gis -lgrass_datetime -lz -lgrass_dgl -lgrass_dig2 -lgrass_gis -lgrass_datetime -lz -lgrass_rtree -lgrass_gis -lgrass_datetime -lz -lgrass_linkm -lgrass_rtree -lgrass_vect -lgrass_dbmibase -lgrass_gis -lgrass_datetime -lz -lgrass_dbmiclient -lgrass_dbmibase -lgrass_gis -lgrass_datetime -lz -lgrass_gis -lgrass_datetime -lz -lgrass_dgl -lgrass_dig2 -lgrass_gis -lgrass_datetime -lz -lgrass_rtree -lgrass_gis -lgrass_datetime -lz -lgrass_linkm -lgrass_rtree \ -lgrass_bitmap -lgrass_linkm -lgrass_linkm -lgrass_vect -lgrass_dbmibase -lgrass_gis -lgrass_datetime -lz -lgrass_dbmiclient -lgrass_dbmibase -lgrass_gis -lgrass_datetime -lz -lgrass_gis -lgrass_datetime -lz -lgrass_dgl -lgrass_dig2 -lgrass_gis -lgrass_datetime -lz -lgrass_rtree -lgrass_gis -lgrass_datetime -lz -lgrass_linkm -lgrass_rtree -lgrass_dig2 -lgrass_gis -lgrass_datetime -lz -lgrass_rtree -lgrass_dgl -lgrass_rtree -lgrass_linkm -lgrass_dbmiclient -lgrass_dbmibase -lgrass_gis -lgrass_datetime -lz -lgrass_gis -lgrass_datetime -lz -lgrass_dbmibase -lgrass_gis -lgrass_datetime -lz -L/usr/lib -lgdal -lgrass_sites -lgrass_datetime -lgrass_dbmibase -lgrass_gis -lgrass_datetime -lz -lgrass_dbmiclient -lgrass_dbmibase -lgrass_gis -lgrass_datetime -lz -lgrass_gis -lgrass_datetime -lz -lgrass_gis -lgrass_datetime -lz -lgrass_vect -lgrass_dbmibase -lgrass_gis -lgrass_datetime -lz -lgrass_dbmiclient -lgrass_dbmibase -lgrass_gis -lgrass_datetime -lz -lgrass_gis -lgrass_datetime -lz -lgrass_dgl -lgrass_dig2 -lgrass_gis -lgrass_datetime -lz -lgrass_rtree -lgrass_gis -lgrass_datetime -lz -lgrass_linkm -lgrass_rtree -lgrass_form -lgrass_dbmibase -lgrass_gis -lgrass_datetime -lz -lgrass_dbmiclient -lgrass_dbmibase -lgrass_gis -lgrass_datetime -lz -lgrass_gis -lgrass_datetime -lz -lgrass_gis -lgrass_datetime -lz -lgrass_dbmiclient -lgrass_dbmibase -lgrass_gis -lgrass_datetime -lz -lgrass_gis -lgrass_datetime -lz -lgrass_dbmibase -lgrass_gis -lgrass_datetime -lz \ -lgrass_g3d -lgrass_gis -lgrass_datetime -lz -lgrass_gis -lgrass_datetime -lz -lz \ -lgrass_datetime -L/usr/lib/opengl/xorg-x11/lib -lGLU -L/usr/lib/opengl/xorg-x11/lib -lGL -lXmu -lXext -lm -ltiff \ -lm OBJ.i686-pc-linux-gnu/nvizAppInit.o: In function `NVIZ_AppInit': nvizAppInit.c:(.text+0xc): undefined reference to `Tk_MainWindow' nvizAppInit.c:(.text+0x19): undefined reference to `Tcl_Init' It seems nvis tries to use tcl even if tcl use flag switched off. It compiles successfuly when if I add tcl, tk to /etc/portage/package.use for grass package
Here is my portage configuration: # emerge --info Portage 2.1.2.11 (default-linux/x86/2007.0/desktop, gcc-4.1.2, glibc-2.5-r4, 2.6.21-gentoo-r4 i686) ================================================================= System uname: 2.6.21-gentoo-r4 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz Gentoo Base System release 1.12.9 Timestamp of tree: Fri, 17 Aug 2007 01:47:01 +0000 dev-java/java-config: 1.3.7, 2.0.33-r1 dev-lang/python: 2.4.4-r4 dev-python/pycrypto: 2.0.1-r6 sys-apps/sandbox: 1.2.17 sys-devel/autoconf: 2.13, 2.61 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 sys-devel/binutils: 2.17 sys-devel/gcc-config: 1.3.16 sys-devel/libtool: 1.5.23b virtual/os-headers: 2.6.21 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=pentium4 -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c" CXXFLAGS="-O2 -march=pentium4 -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="distlocks metadata-transfer parallel-fetch sandbox sfperms strict" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" LANG="ru_RU.UTF-8" LINGUAS="en ru" MAKEOPTS="" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X acl acpi alsa apache2 berkdb bitmap-fonts cairo cdr cli cracklib crypt cups dbus djvu dri dvd dvdr dvdread eds emboss encode evo fam firefox fortran gdbm gif gpm gstreamer gtk hal iconv isdnlog jpeg kde kerberos ldap lm_sensors mad midi mmx mp3 mpeg mudflap ncurses nls nptl nptlonly nvidia ofx ogg opengl openmp pam pcre pdf perl png pppd python qt3 qt3support qt4 quicktime readline reflection sdl session spell spl sse sse2 ssl svg tcpd threads tiff timidity truetype truetype-fonts type1-fonts unicode usb userlocales vorbis win32codecs x86 xml xorg xv xvid zlib" ALSA_CARDS="intel8x0 mpu401" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" FOO2ZJS_DEVICES="hp1018" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en ru" USERLAND="GNU" VIDEO_CARDS="nvidia vesa" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
You can try also disabling opengl, but grass-6.2.0-r1 still has configure issues (as you've seen). If you really want a GRASS install that works in a console-only environment, then my recommendation would be to just upgrade to grass-6.2.1 and disable all the X and opengl stuff (ie, add -X and -opengl to what you show above). It still looks for a wish-based TCL shell when you first run it, but you should be able to disable that in your GRASS settings (it will still fall back to the normal shell). Otherwise, if you enable anything related to X or opengl, then you pretty much have to enable all of it (ie, opengl, motif, tcl, tk, and X). You can probably enable the X GUI stuff without opengl, but not the other way 'round.
I'm new to GIS. In fact I know almost nothing about GIS and grass. I'm a just curious and want to learn something about it. So, don't know exactly what I need yet. I just tried to install something to play with, but failed. I don't have tcl, tk enabled at a system level, so it wasn't obvious why it can't be compiled. Log messages also don't help much. When I found the cause, I've enabled tcl in /etc/portage/package.use and installed grass. For me issue is resolved for awhile. But if you say I can't compile grass with X support without tcl enabled, maybe it would be good to check that in an ebuild and warn user as it is done for tcl without tk?
The newer grass ebuild is a little better, however, it still needs to pretty much have all the X flags enabled or none of them. It does finally build correctly without X, as the upstream stuff is getting slowly cleaned up (plus more and more ebuild enhancements). I'm still trying to decide if I want to consolidate the flags, but I'm also hoping upstream continues to fix those kinds of configure glitches. I'll go ahead and add a check for opengl/tcl/tk in the meantime. You can always add "sci-geosciences/grass ~x86" to your package.keywords to stay up with the latest ebuild, as well as set your preferred USE flags for grass in package.use (both under /etc/portage).