/[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.5 - (hide annotations) (download)
Sat Nov 8 22:19:39 2008 UTC (11 years, 3 months ago) by nerdboy
Branch: MAIN
Changes since 1.4: +16 -29 lines
Updated deps and use flags for current version (including postgres).
(Portage version: 2.2_rc12/cvs/Linux 2.6.26.5 x86_64)

1 nerdboy 1.1 # Copyright 1999-2008 Gentoo Foundation
2     # Distributed under the terms of the GNU General Public License v2
3 nerdboy 1.5 # $Header: /var/cvsroot/gentoo-x86/sci-geosciences/grass/grass-6.3.0.ebuild,v 1.4 2008/09/21 21:23:39 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    
112 nerdboy 1.5 if ! use opengl; then
113 nerdboy 1.1 epatch "${FILESDIR}"/${P}-html-nonviz.patch
114     fi
115    
116     # patch missing math functions (yes, this is still needed)
117     sed -i -e "s:\$(EXTRA_LIBS):\$(EXTRA_LIBS) \$(MATHLIB):g" include/Make/Shlib.make
118     echo "MATHLIB=-lm" >> include/Make/Rules.make
119     }
120    
121     src_compile() {
122     local myconf
123 nerdboy 1.4 # wxwindows needs python (see bug #237495)
124     use wxwindows && distutils_python_version
125 nerdboy 1.1
126     myconf="--prefix=/usr --with-cxx --enable-shared \
127     --with-gdal=$(type -P gdal-config) --with-curses --with-proj \
128     --with-includes=/usr/include --with-libs=/usr/$(get_libdir) \
129     --with-proj-includes=/usr/include \
130     --with-proj-libs=/usr/$(get_libdir) \
131 nerdboy 1.5 --with-proj-share=/usr/share/proj \
132     --without-glw"
133 nerdboy 1.1
134     if use X; then
135     if has_version ">=dev-lang/tcl-8.5"; then
136     TCL_LIBDIR="/usr/$(get_libdir)/tcl8.5"
137     else
138     TCL_LIBDIR="/usr/$(get_libdir)/tcl8.4"
139     fi
140     myconf="${myconf} --with-tcltk --with-x \
141     --with-tcltk-includes=/usr/include \
142     --with-tcltk-libs=${TCL_LIBDIR}"
143     if use wxwindows; then
144     WX_GTK_VER=2.8
145 nerdboy 1.2 need-wxwidgets unicode
146     # The following lib should be there, based on the above and the
147     # wxpython dependency (in theory). I still need a good way to
148     # query for the location...
149     LIBGDI="/usr/$(get_libdir)/python${PYVER}/site-packages/wx-${WX_GTK_VER}-gtk2-unicode/wx/_gdi_.so"
150 nerdboy 1.1 myconf="${myconf} --with-python --with-wxwidgets=${WX_CONFIG}"
151 nerdboy 1.4 else
152     # USE=python must be enabled above if wxwindows is enabled
153     myconf="${myconf} $(use_with python) --without-wxwidgets"
154 nerdboy 1.1 fi
155     else
156     myconf="${myconf} --without-tcltk --without-x"
157     fi
158    
159     if use opengl; then
160     myconf="${myconf} --with-opengl --with-opengl-libs=/usr/$(get_libdir)/opengl/xorg-x11/lib"
161     else
162 nerdboy 1.5 myconf="${myconf} --without-opengl"
163 nerdboy 1.1 fi
164    
165     # Should handle either older or latest without intervention;
166     # this won't work forever, but it should be okay for a while...
167     if use ffmpeg; then
168     myconf="${myconf} --with-ffmpeg \
169     --with-ffmpeg-libs=/usr/$(get_libdir)"
170     if has_version ">=media-video/ffmpeg-0.4.9_p20080326" ; then
171     # must pass multiple include dirs now; if you have a better
172     # way to do this, please speak up and file a bug :)
173     myconf="${myconf} --with-ffmpeg-includes=/usr/include/libav*"
174     else
175     myconf="${myconf} --with-ffmpeg-includes=/usr/include/ffmpeg"
176     fi
177     else
178     myconf="${myconf} --without-ffmpeg"
179     fi
180    
181     if use truetype; then
182     myconf="${myconf} --with-freetype \
183     --with-freetype-includes=/usr/include/freetype2"
184     fi
185    
186     if use mysql; then
187     myconf="${myconf} --with-mysql --with-mysql-includes=/usr/include/mysql \
188     --with-mysql-libs=/usr/$(get_libdir)/mysql"
189     else
190     myconf="${myconf} --without-mysql"
191     fi
192    
193     if use sqlite; then
194     myconf="${myconf} --with-sqlite --with-sqlite-includes=/usr/include \
195     --with-sqlite-libs=/usr/$(get_libdir)"
196     else
197     myconf="${myconf} --without-sqlite"
198     fi
199    
200     econf ${myconf} --with-libs=/usr/$(get_libdir) \
201     $(use_enable amd64 64bit) \
202     $(use_with fftw) \
203     $(use_with gmath blas) \
204     $(use_with gmath lapack) \
205     $(use_with jpeg) \
206     $(use_enable largefile) \
207 nerdboy 1.5 $(use_with motif) \
208 nerdboy 1.1 $(use_with nls) \
209     $(use_with odbc) \
210     $(use_with png) \
211     $(use_with postgres) \
212     $(use_with readline) \
213     $(use_with tiff) || die "configure failed!"
214    
215     if use wxwindows; then
216 nerdboy 1.5 # can't use die here since we need to hack the vdigit build
217     emake
218 nerdboy 1.2 ln -sf "${LIBGDI}" dist.${CHOST}/lib/libgdi.so \
219 nerdboy 1.1 || die "making libgdi link failed"
220     cd gui/wxpython/vdigit
221 nerdboy 1.5 # now we're OK
222 nerdboy 1.1 make default -j1 || die "make vdigit failed!"
223     else
224 nerdboy 1.5 emake || die "make failed!"
225 nerdboy 1.1 fi
226     }
227    
228     src_install() {
229     elog "Grass Home is ${MY_PM}"
230     make install UNIX_BIN="${D}"usr/bin BINDIR="${D}"usr/bin \
231     PREFIX="${D}"usr INST_DIR="${D}"usr/${MY_PM} \
232     || die "make install failed!"
233    
234     if use wxwindows; then
235     ln -sf "${LIBGDI}" "${D}"usr/${MY_PM}/lib/libgdi.so \
236     || die "failed to find wx library"
237     fi
238    
239     # get rid of DESTDIR in script path
240     sed -i -e "s@${D}@/@" "${D}"usr/bin/${MY_PM}
241    
242     # Grass Extension Manager conflicts with ruby gems
243     mv "${D}"usr/bin/gem "${D}"usr/${MY_PM}/bin/
244    
245     ebegin "Adding env.d and desktop entry for Grass6..."
246     generate_files
247     doenvd 99grass-6
248     if use X; then
249     doicon "${FILESDIR}"/grass_icon.png
250     domenu ${MY_PM}-grass.desktop
251     fi
252     eend ${?}
253     }
254    
255     pkg_postinst() {
256     use X && fdo-mime_desktop_database_update
257    
258     elog "Note this version re-enables support for threads in Tcl and Tk."
259     elog "Enable the threads USE flag and rebuild to try it."
260     }
261    
262     pkg_postrm() {
263     use X && fdo-mime_desktop_database_update
264     }
265    
266     generate_files() {
267     local GUI="-gui"
268     use wxwindows && GUI="-wxpython"
269    
270     cat <<-EOF > 99grass-6
271     GRASS_LD_LIBRARY_PATH="/usr/${MY_PM}/lib"
272     LDPATH="/usr/${MY_PM}/lib"
273     MANPATH="/usr/${MY_PM}/man"
274     GRASS_HOME="/usr/${MY_PM}"
275     EOF
276    
277     cat <<-EOF > ${MY_PM}-grass.desktop
278     [Desktop Entry]
279     Encoding=UTF-8
280     Version=1.0
281     Name=Grass ${PV}
282     Type=Application
283     Comment=GRASS Open Source GIS, derived from the original US Army Corps of Engineers project.
284     Exec=${TERM} -T Grass -e /usr/bin/${MY_PM} ${GUI}
285     Path=
286     Icon=grass_icon.png
287     Categories=Science;Education;
288     Terminal=true
289     EOF
290     }

  ViewVC Help
Powered by ViewVC 1.1.20