I've been putting together a server that's completely devoid of X. I do a bit of mapping, so I need sci-geosciences/grass. To my dismay, I find that it deps on x11-terms/mlterm if have the nls USE flag, plus it deps on all sorts of x11 libs if I don't use motif. Is this not a bit overzealous? I have absolutely no X libraries or apps intalled on this machine, and I just now compiled it --nodeps and without the motif use flag, and it compiled just fine. I'm also of the opinion that if I set the nls use flag and compile it without having mlterm installed, it'll compile just fine again. I plan on doing just that tomorrow and I'll report back here once I do.
As expected, USE=nls and emerge -va --nodeps grass Just Works
As expected, USE=nls and emerge -va --nodeps grass Just Works. I can assure you I have absolutely none of the deps grass 6.0.2 claims to need installed on my system: fungus ~ # emerge -va grass These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild N ] x11-misc/util-macros-1.1.0 USE="-debug" 0 kB [ebuild N ] x11-proto/kbproto-1.0.3 USE="-debug" 0 kB [ebuild N ] x11-proto/xextproto-7.0.2 USE="-debug" 0 kB [ebuild N ] x11-proto/xf86bigfontproto-1.1.2 USE="-debug" 0 kB [ebuild N ] x11-proto/inputproto-1.3.2 USE="-debug" 0 kB [ebuild N ] x11-proto/xproto-7.0.7 USE="-debug" 0 kB [ebuild N ] x11-libs/libXau-1.0.2 USE="-debug" 0 kB [ebuild N ] x11-proto/bigreqsproto-1.0.2 USE="-debug" 0 kB [ebuild N ] x11-libs/libXdmcp-1.0.1 USE="-debug" 0 kB [ebuild N ] x11-proto/xcmiscproto-1.1.2 USE="-debug" 0 kB [ebuild N ] x11-libs/xtrans-1.0.1 USE="-debug" 0 kB [ebuild N ] x11-libs/libX11-1.0.3 USE="ipv6 -debug" 0 kB [ebuild N ] x11-libs/libICE-1.0.1 USE="ipv6 -debug" 0 kB [ebuild N ] x11-libs/libSM-1.0.1 USE="ipv6 -debug" 0 kB [ebuild N ] x11-libs/libXt-1.0.2 USE="-debug" 0 kB [ebuild N ] x11-libs/libXext-1.0.1 USE="-debug" 0 kB [ebuild N ] x11-libs/libXpm-3.5.5 USE="-debug" 0 kB [ebuild N ] x11-proto/printproto-1.0.3 USE="-debug" 0 kB [ebuild N ] x11-libs/libXp-1.0.0 USE="-debug" 0 kB [ebuild N ] x11-terms/mlterm-2.9.2 USE="bidi nls truetype -gtk -imlib -uim" 0 kB [ebuild N ] x11-libs/libXmu-1.0.2 USE="ipv6 -debug" 0 kB [ebuild N ] x11-libs/libXaw-1.0.2 USE="-debug -xprint" 0 kB [ebuild R ] sci-geosciences/grass-6.0.2 USE="fftw jpeg mysql nls odbc png postgres readline tiff truetype -motif -opengl -tcltk" 0 kB
First, it sounds like what you really want is mapserver and libgrass. Second, the current deps are a result of both the stated upstream requirements: http://grass.itc.it/grass61/source/REQUIREMENTS.html and poking at the binaries and libs with ldd to see what's actually linked in. It may be that an additional USE flag could lighten it up a bit, but there are a still several pieces of Grass linking against various X libs. Also, the list of libs above more than the deps in the Grass ebuild. If you'd like to submit a modified ebuild or patch, I'd be happy to check it out...
Unable to emerge grass 6.1.0 ebuild kltgs1 grass # emerge -v grass --pretend >>> cfg-update-1.8.0-r3 : No new packages have been emerged, checksum index OK... These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild NS ] sci-geosciences/grass-6.1.0 USE="fftw jpeg motif mysql nls odbc opengl png postgres proj readline tiff -curses -ffmpeg -freetype -glw -largefile -sqlite" 0 kB [1] Total size of downloads: 0 kB Portage overlays: [1] /usr/local/portage kltgs1 grass # emerge -v grass >>> cfg-update-1.8.0-r3 : No new packages have been emerged, checksum index OK... Calculating dependencies... done! >>> Emerging (1 of 1) sci-geosciences/grass-6.1.0 to / >>> checking ebuild checksums ;-) >>> checking auxfile checksums ;-) >>> checking miscfile checksums ;-) >>> checking grass-6.1.0.tar.gz ;-) >>> Unpacking source... !!! ERROR: sci-geosciences/grass-6.1.0 failed. Call stack: ebuild.sh, line 1539: Called dyn_unpack ebuild.sh, line 711: Called src_unpack grass-6.1.0.ebuild, line 67: Called built_with_use 'dev-lang/tcl' 'thread' eutils.eclass, line 1614: Called die !!! dev-lang/tcl-8.4.9 does not actually support the thread USE flag! !!! If you need support, post the topmost build error, and the call stack if relevant. !!! This ebuild is from an overlay: '/usr/local/portage' kltgs1 grass # Is this because TCL use tag is 'threads' rather than 'thread'? kltgs1 grass # emerge -v tcl --pretend >>> cfg-update-1.8.0-r3 : Building checksum index... (takes a few seconds) done! These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] dev-lang/tcl-8.4.9 USE="-threads" 0 kB Total size of downloads: 0 kB kltgs1 grass #
Grass 6.1.0 is in the tree with updated flags and such; the X deps are a function of several USE flags and their dependencies. Try compiling with USE="-X -glw -opengl -tcl -tk".