/[gentoo-x86]/sci-geosciences/grass/grass-6.3.0.ebuild
Gentoo

Contents of /sci-geosciences/grass/grass-6.3.0.ebuild

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide annotations) (download)
Wed Jun 25 04:28:50 2008 UTC (11 years, 7 months ago) by nerdboy
Branch: MAIN
Changes since 1.1: +9 -5 lines
Fixed bug #229297, and checked for any wxpython use flag issues.
(Portage version: 2.1.5.5)

1 nerdboy 1.1 # Copyright 1999-2008 Gentoo Foundation
2     # Distributed under the terms of the GNU General Public License v2
3 nerdboy 1.2 # $Header: /var/cvsroot/gentoo-x86/sci-geosciences/grass/grass-6.3.0.ebuild,v 1.1 2008/06/24 07:45:51 nerdboy Exp $
4 nerdboy 1.1
5     inherit eutils distutils fdo-mime versionator wxwidgets
6    
7     MY_PV=$(get_version_component_range 1-2 ${PV})
8     MY_PVM=$(delete_all_version_separators ${MY_PV})
9     MY_PM=${PN}${MY_PVM}
10    
11     DESCRIPTION="An open-source GIS with raster and vector functionality, as well as 3D vizualization."
12     HOMEPAGE="http://grass.itc.it/"
13     SRC_URI="http://grass.itc.it/${MY_PM}/source/${P}.tar.gz"
14    
15     LICENSE="GPL-2"
16     SLOT="0"
17     KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86"
18    
19     IUSE="ffmpeg fftw glw gmath jpeg largefile mysql nls odbc opengl png \
20     postgres python readline sqlite tiff truetype wxwindows X"
21    
22     RESTRICT="strip"
23    
24     RDEPEND=">=sys-libs/zlib-1.1.4
25     >=sys-libs/ncurses-5.3
26     >=sys-libs/gdbm-1.8.0
27     || (
28     sys-apps/man
29     sys-apps/man-db )
30     sci-libs/gdal
31     >=sci-libs/proj-4.4.7
32     ffmpeg? ( media-video/ffmpeg )
33     fftw? ( sci-libs/fftw )
34     gmath? ( virtual/blas
35     virtual/lapack )
36     jpeg? ( media-libs/jpeg )
37     mysql? ( dev-db/mysql )
38     odbc? ( >=dev-db/unixODBC-2.0.6 )
39     opengl? ( ( virtual/opengl )
40     ( x11-libs/openmotif )
41     glw? ( media-libs/mesa ) )
42     png? ( >=media-libs/libpng-1.2.2 )
43     postgres? ( >=dev-db/postgresql-7.3 )
44     python? ( dev-lang/python )
45     readline? ( sys-libs/readline )
46     sqlite? ( dev-db/sqlite )
47     tiff? ( >=media-libs/tiff-3.5.7 )
48     truetype? ( >=media-libs/freetype-2.0 )
49     wxwindows? (
50     >=dev-python/wxpython-2.8.1.1
51     >=dev-lang/python-2.4
52     )
53     X? (
54     x11-libs/libXmu
55     x11-libs/libXext
56     x11-libs/libXp
57     x11-libs/libX11
58     x11-libs/libXt
59     x11-libs/libSM
60     x11-libs/libICE
61     x11-libs/libXpm
62     x11-libs/libXaw
63     >=dev-lang/tcl-8.4
64     >=dev-lang/tk-8.4
65     )"
66    
67     DEPEND="${RDEPEND}
68     >=sys-devel/flex-2.5.4a
69     >=sys-devel/bison-1.35
70     wxwindows? ( >=dev-lang/swig-1.3.31 )
71     X? (
72     x11-proto/xproto
73     x11-proto/xextproto
74     )"
75    
76     pkg_setup() {
77     local myblas
78     elog ""
79     elog "This version enables the experimental wxpython interface, which"
80     elog "you may want to try, since the legacy GUI seems a little wonky"
81 nerdboy 1.2 elog "in this version; just enable the wxwindows USE flag and rebuild"
82     elog "grass to use it."
83 nerdboy 1.1 elog ""
84     if use gmath; then
85     for d in $(eselect lapack show); do myblas=${d}; done
86     if [[ -z "${myblas/reference/}" ]] && [[ -z "${myblas/atlas/}" ]]; then
87     ewarn "You need to set lapack to atlas or reference. Do:"
88     ewarn " eselect lapack set <impl>"
89     ewarn "where <impl> is atlas, threaded-atlas or reference"
90     die "setup failed"
91     fi
92     for d in $(eselect blas show); do myblas=${d}; done
93     if [[ -z "${myblas/reference/}" ]] && [[ -z "${myblas/atlas/}" ]]; then
94     ewarn "You need to set blas to atlas or reference. Do:"
95     ewarn " eselect blas set <impl>"
96     ewarn "where <impl> is atlas, threaded-atlas or reference"
97     die "setup failed"
98     fi
99     fi
100    
101     if use glw && ! use opengl; then
102     ewarn "You set USE='glw -opengl'. GLw support needs OpenGL."
103     ewarn "OpenGL support also requires X."
104     die "Set opengl and X useflags."
105     fi
106    
107     if use glw && ! built_with_use media-libs/mesa motif; then
108     ewarn "GRASS GLw/OpenGL support needs mesa with motif headers."
109     ewarn "Please rebuild mesa with motif support."
110     die "Re-emerge mesa with motif."
111     fi
112    
113     if use opengl && ! use X; then
114     ewarn "GRASS OpenGL support needs X (will also pull in Tcl/Tk)."
115     die "Please set the X useflag."
116     fi
117     }
118    
119     src_unpack() {
120     unpack ${A}
121     cd "${S}"
122    
123     epatch rpm/fedora/grass-readline.patch
124    
125     if use opengl; then
126     epatch "${FILESDIR}"/${P}-html-nonviz.patch
127     fi
128    
129     # patch missing math functions (yes, this is still needed)
130     sed -i -e "s:\$(EXTRA_LIBS):\$(EXTRA_LIBS) \$(MATHLIB):g" include/Make/Shlib.make
131     echo "MATHLIB=-lm" >> include/Make/Rules.make
132     }
133    
134     src_compile() {
135     local myconf
136     use python || use wxindows && distutils_python_version
137    
138     myconf="--prefix=/usr --with-cxx --enable-shared \
139     --with-gdal=$(type -P gdal-config) --with-curses --with-proj \
140     --with-includes=/usr/include --with-libs=/usr/$(get_libdir) \
141     --with-proj-includes=/usr/include \
142     --with-proj-libs=/usr/$(get_libdir) \
143     --with-proj-share=/usr/share/proj"
144    
145     if use X; then
146     if has_version ">=dev-lang/tcl-8.5"; then
147     TCL_LIBDIR="/usr/$(get_libdir)/tcl8.5"
148     else
149     TCL_LIBDIR="/usr/$(get_libdir)/tcl8.4"
150     fi
151     myconf="${myconf} --with-tcltk --with-x \
152     --with-tcltk-includes=/usr/include \
153     --with-tcltk-libs=${TCL_LIBDIR}"
154     if use wxwindows; then
155     WX_GTK_VER=2.8
156 nerdboy 1.2 need-wxwidgets unicode
157     # The following lib should be there, based on the above and the
158     # wxpython dependency (in theory). I still need a good way to
159     # query for the location...
160     LIBGDI="/usr/$(get_libdir)/python${PYVER}/site-packages/wx-${WX_GTK_VER}-gtk2-unicode/wx/_gdi_.so"
161 nerdboy 1.1 myconf="${myconf} --with-python --with-wxwidgets=${WX_CONFIG}"
162     fi
163     else
164     myconf="${myconf} --without-tcltk --without-x"
165     fi
166    
167     if use opengl; then
168     myconf="${myconf} --with-opengl --with-opengl-libs=/usr/$(get_libdir)/opengl/xorg-x11/lib"
169     if use glw; then
170     myconf="${myconf} --with-glw"
171     fi
172     else
173     myconf="${myconf} --without-opengl --without-glw"
174     fi
175    
176     # Should handle either older or latest without intervention;
177     # this won't work forever, but it should be okay for a while...
178     if use ffmpeg; then
179     myconf="${myconf} --with-ffmpeg \
180     --with-ffmpeg-libs=/usr/$(get_libdir)"
181     if has_version ">=media-video/ffmpeg-0.4.9_p20080326" ; then
182     # must pass multiple include dirs now; if you have a better
183     # way to do this, please speak up and file a bug :)
184     myconf="${myconf} --with-ffmpeg-includes=/usr/include/libav*"
185     else
186     myconf="${myconf} --with-ffmpeg-includes=/usr/include/ffmpeg"
187     fi
188     else
189     myconf="${myconf} --without-ffmpeg"
190     fi
191    
192     if use truetype; then
193     myconf="${myconf} --with-freetype \
194     --with-freetype-includes=/usr/include/freetype2"
195     fi
196    
197     if use mysql; then
198     myconf="${myconf} --with-mysql --with-mysql-includes=/usr/include/mysql \
199     --with-mysql-libs=/usr/$(get_libdir)/mysql"
200     else
201     myconf="${myconf} --without-mysql"
202     fi
203    
204     if use sqlite; then
205     myconf="${myconf} --with-sqlite --with-sqlite-includes=/usr/include \
206     --with-sqlite-libs=/usr/$(get_libdir)"
207     else
208     myconf="${myconf} --without-sqlite"
209     fi
210    
211     econf ${myconf} --with-libs=/usr/$(get_libdir) \
212     $(use_enable amd64 64bit) \
213     $(use_with fftw) \
214     $(use_with gmath blas) \
215     $(use_with gmath lapack) \
216     $(use_with jpeg) \
217     $(use_enable largefile) \
218     $(use_with opengl motif) \
219     $(use_with nls) \
220     $(use_with odbc) \
221     $(use_with png) \
222     $(use_with postgres) \
223     $(use_with python) \
224     $(use_with readline) \
225     $(use_with tiff) || die "configure failed!"
226    
227     if use wxwindows; then
228     emake -j1
229 nerdboy 1.2 ln -sf "${LIBGDI}" dist.${CHOST}/lib/libgdi.so \
230 nerdboy 1.1 || die "making libgdi link failed"
231     cd gui/wxpython/vdigit
232     make default -j1 || die "make vdigit failed!"
233     else
234     emake -j1 || die "make failed!"
235     fi
236     }
237    
238     src_install() {
239     elog "Grass Home is ${MY_PM}"
240     make install UNIX_BIN="${D}"usr/bin BINDIR="${D}"usr/bin \
241     PREFIX="${D}"usr INST_DIR="${D}"usr/${MY_PM} \
242     || die "make install failed!"
243    
244     if use wxwindows; then
245     ln -sf "${LIBGDI}" "${D}"usr/${MY_PM}/lib/libgdi.so \
246     || die "failed to find wx library"
247     fi
248    
249     # get rid of DESTDIR in script path
250     sed -i -e "s@${D}@/@" "${D}"usr/bin/${MY_PM}
251    
252     # Grass Extension Manager conflicts with ruby gems
253     mv "${D}"usr/bin/gem "${D}"usr/${MY_PM}/bin/
254    
255     ebegin "Adding env.d and desktop entry for Grass6..."
256     generate_files
257     doenvd 99grass-6
258     if use X; then
259     doicon "${FILESDIR}"/grass_icon.png
260     domenu ${MY_PM}-grass.desktop
261     fi
262     eend ${?}
263     }
264    
265     pkg_postinst() {
266     use X && fdo-mime_desktop_database_update
267    
268     elog "Note this version re-enables support for threads in Tcl and Tk."
269     elog "Enable the threads USE flag and rebuild to try it."
270     }
271    
272     pkg_postrm() {
273     use X && fdo-mime_desktop_database_update
274     }
275    
276     generate_files() {
277     local GUI="-gui"
278     use wxwindows && GUI="-wxpython"
279    
280     cat <<-EOF > 99grass-6
281     GRASS_LD_LIBRARY_PATH="/usr/${MY_PM}/lib"
282     LDPATH="/usr/${MY_PM}/lib"
283     MANPATH="/usr/${MY_PM}/man"
284     GRASS_HOME="/usr/${MY_PM}"
285     EOF
286    
287     cat <<-EOF > ${MY_PM}-grass.desktop
288     [Desktop Entry]
289     Encoding=UTF-8
290     Version=1.0
291     Name=Grass ${PV}
292     Type=Application
293     Comment=GRASS Open Source GIS, derived from the original US Army Corps of Engineers project.
294     Exec=${TERM} -T Grass -e /usr/bin/${MY_PM} ${GUI}
295     Path=
296     Icon=grass_icon.png
297     Categories=Science;Education;
298     Terminal=true
299     EOF
300     }

  ViewVC Help
Powered by ViewVC 1.1.20