/[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.7 - (hide annotations) (download)
Mon Jun 8 04:51:04 2009 UTC (10 years, 8 months ago) by nerdboy
Branch: MAIN
Changes since 1.6: +4 -1 lines
Updated with additional C++ include for bug #270916.
(Portage version: 2.2_rc33/cvs/Linux x86_64)

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

  ViewVC Help
Powered by ViewVC 1.1.20