]> git.saurik.com Git - wxWidgets.git/blame - wxPython/distrib/wxPythonFull.spec.in
Fix "warning: operation on 'y' may be undefined".
[wxWidgets.git] / wxPython / distrib / wxPythonFull.spec.in
CommitLineData
70934952
RD
1#----------------------------------------------------------------------
2# Name: wxPython.spec
3# Purpose: RPM Build and packaging instructions
4#
5# Author: Robin Dunn
6#
7# RCS-ID: $Id$
8# Copyright: (c) 2004 by Total Control Software
9# Licence: wxWindows license
10#----------------------------------------------------------------------
11
12
13# The following values can be set on the rpmbuild command line with
14# --define 'name VALUE' If no value is set on the command line then
15# the default value set here will be used instead.
16
17
b908d8bf 18# Which version of Python to build with. Used to assemble python
c1c4cf89 19# binary name so use '2.3', '2.4', etc.
b908d8bf 20%if %{?pyver:0}%{!?pyver:1}
c1c4cf89 21%define pyver 2.4
70934952 22%endif
4726eec6 23
b817523b 24
b908d8bf 25# Which wxWidgets port to build and use. Current acceptable values
70934952
RD
26# are 'gtk' and 'gtk2'.
27%if %{?port:0}%{!?port:1}
28%define port gtk2
ca46ba60
RD
29%endif
30
31
70934952
RD
32# Build in unicode mode? Can only be used if port is gtk2, acceptable
33# values are '0' and '1'
34%if %{?unicode:0}%{!?unicode:1}
35%define unicode 1
36%endif
37
70934952 38
1e4a197e
RD
39# Should the builtin image and etc. libs be used, or system libs?
40# Distro specific RPMs should probably set this to 0, generic ones
70934952
RD
41# should use 1.
42# NOTE: I'm trying 0 for this next release to see if I can get rid of
43# this...
44%if %{?builtin_libs:0}%{!?builtin_libs:1}
45%define builtin_libs 0
46%endif
b817523b 47
4726eec6 48
1e4a197e
RD
49# Should --enable-debug_flag be used in release builds? Using it
50# defines __WXDEBUG__ and gives us runtime diagnostics that are turned
70934952
RD
51# into Python exceptions. (So turning it on is a very helpful thing
52# IMO and is recommended.) The code is still compiled with
53# optimization flags and and without debug info and such when this
54# option is used, it simply turns on some extra code.
55%if %{?debug_flag:0}%{!?debug_flag:1}
1e4a197e 56%define debug_flag 1
70934952
RD
57%endif
58
59
b908d8bf
RD
60# Used to set the Release tag below. I normally use it to define what
61# distro the RPM was build on and also include the version of Python
62# it was built with.
63%if %{?release:0}%{!?release:1}
64%define release 1_py%{pyver}
65%endif
66
67
68
70934952
RD
69#----------------------------------------------------------------------
70# Other variables used below
71
72%define pref %{_prefix}
73%define python /usr/bin/python%{pyver}
74%define tarname @TARNAME@
75%define version @VERSION@
76%define ver2 @VER2@
4726eec6 77
70934952
RD
78%define chartype %(if [ "%{unicode}" = "1" ]; then echo unicode; else echo ansi; fi)
79%define gtktype %(if [ "%{port}" = "gtk2" ]; then echo 2; fi)
80%define using_gtk1 %(if [ "%{port}" = "gtk" ]; then echo 1; else echo 0; fi)
1e4a197e 81
70934952
RD
82%define wxprefbase %{pref}/lib/wxPython
83%define wxpref %{wxprefbase}-%{version}-%{port}-%{chartype}
84%define pkgname wxPython
b817523b 85
70934952 86# turn off the generation of debuginfo rpm (RH9) ??
1fded56b 87%define debug_package %{nil}
b817523b 88
70934952
RD
89
90#----------------------------------------------------------------------
91# Package definition
92#----------------------------------------------------------------------
93Name: %{pkgname}%{ver2}
94Summary: Cross platform GUI toolkit for Python
5ccc0a56
RD
95Version: %{version}
96Release: %{release}
97Source0: %{tarname}-%{version}.tar.gz
6e83b721 98License: wx Library Licence, Version 3
5ccc0a56 99URL: http://wxPython.org/
ba201fa4 100Packager: Robin Dunn <robin@alldunn.com>
5ccc0a56 101Group: Development/Python
70934952 102BuildRoot: %{_tmppath}/%{pkgname}-buildroot
5ccc0a56 103Prefix: %{pref}
4726eec6 104
70934952
RD
105%description
106Cross platform GUI toolkit for Python
4726eec6 107
1fded56b
RD
108
109
4726eec6 110
70934952
RD
111%package -n %{pkgname}%{ver2}-%{port}-%{chartype}
112Summary: Cross platform GUI toolkit for Python
113Group: Development/Python
114Requires: %{pkgname}-common
c1c4cf89 115Obsoletes: wxPythonGTK%{gtktype}-py%{pyver}, wxPythonGTK%{gtktype}
70934952 116Provides: wxPython
4726eec6 117
4726eec6 118
70934952
RD
119%description -n %{pkgname}%{ver2}-%{port}-%{chartype}
120wxPython is a GUI toolkit for the Python programming language. It
121 allows Python programmers to create programs with a robust, highly
122functional graphical user interface, simply and easily. It is
123implemented as a Python extension module (native code) that wraps the
124popular wxWidgets cross platform GUI library, which is written in C++.
4726eec6 125
70934952
RD
126wxPython is a cross-platform toolkit. The same program will usually
127run on multiple platforms without modification. Currently supported
128platforms are 32-bit Microsoft Windows, most Unix or unix-like
129systems, and Macintosh OS X.
130
131This package contains the wxPython runtime files built for the
132wxWidgets %{port} port with %{chartype} character type.
4726eec6 133
5ccc0a56
RD
134
135
70934952
RD
136
137
138%package -n %{pkgname}-common-%{port}-%{chartype}
139Summary: Common files for needed by all wxPython runtimes
140Group: Development/Python
141Provides: %{pkgname}-common
142
143# They obsolete each other so any of them can be installed over another
144# without conflicts
145Obsoletes: %{pkgname}-common-gtk-ansi
146Obsoletes: %{pkgname}-common-gtk2-ansi
147Obsoletes: %{pkgname}-common-gtk2-unicode
148
149%description -n %{pkgname}-common-%{port}-%{chartype}
150This package contains the common files needed by any version of the
151wxPython runtime. This pacakge also installs a wx.pth file which will
152determine which of the installed runtimes is the default version of
153wxPython that is imported automatically with a bare "import wx".
154
155
156
157
158
159%package -n %{pkgname}%{ver2}-devel-%{port}-%{chartype}
160Summary: wxPython development files
161Group: Development/Libraries
162Requires: %{pkgname}%{ver2}-%{port}-%{chartype} = %{version}
163
164%description -n %{pkgname}%{ver2}-devel-%{port}-%{chartype}
5ccc0a56 165This packages contains the headers and etc. for building apps or
70934952 166Python extension modules that use the same wxWidgets shared libraries
5ccc0a56
RD
167that wxPython uses.
168
70934952
RD
169
170
171#----------------------------------------------------------------------
4726eec6 172%prep
357262e4 173%setup -q -n %{tarname}-%{version}
4726eec6
RD
174
175
70934952 176#----------------------------------------------------------------------
4726eec6 177%build
4726eec6 178
1e4a197e 179WXDIR=`pwd`
70934952
RD
180
181# Configure and build wxWidgets
59455c67
RD
182mkdir bld
183cd bld
ff006095
RD
184../configure \
185%if %{using_gtk1}
186 --with-gtk=1 \
187%else
188 --with-gtk=2 \
189%endif
5ccc0a56 190 --prefix=%{wxpref} \
70934952 191 --enable-monolithic \
8da2fe32 192 --disable-rpath \
4726eec6 193 --with-opengl \
1f975825 194 --with-gnomeprint \
1e4a197e 195 --enable-geometry \
4726eec6 196 --enable-optimise \
7f997e3f 197 --enable-sound --with-sdl \
96d37ab5 198 --enable-display \
70934952
RD
199%if %{unicode}
200 --enable-unicode \
ff006095
RD
201%else
202 --disable-unicode \
70934952 203%endif
b817523b
RD
204%if %{debug_flag}
205 --enable-debug_flag \
206%endif
8c1a4666 207 --disable-debugreport \
1e4a197e 208%if %{builtin_libs}
4726eec6
RD
209 --with-libjpeg=builtin \
210 --with-libpng=builtin \
211 --with-libtiff=builtin \
212 --with-zlib=builtin \
1e4a197e 213%endif
5ccc0a56 214
357262e4 215
59455c67 216make
2e5aa9c4 217make -C contrib/src/animate
59455c67 218make -C contrib/src/gizmos
59455c67 219make -C contrib/src/stc
59455c67
RD
220
221
70934952
RD
222
223# Build wxPython
1e4a197e 224cd $WXDIR/wxPython
4726eec6 225%{python} setup.py \
70934952 226 WXPORT=%{port} \
1e4a197e 227 UNICODE=%{unicode} \
70934952
RD
228 EP_ADD_OPTS=1 \
229 NO_SCRIPTS=1 \
8da2fe32
RD
230 WX_CONFIG="$WXDIR/bld/wx-config --no_rpath" \
231 build_ext --rpath=%{wxpref}/lib \
232 build
4726eec6 233
1e4a197e 234
1e4a197e 235
70934952 236#----------------------------------------------------------------------
978cadd0
RD
237%install
238
239WXDIR=`pwd`
978cadd0 240
70934952
RD
241# Install wxGTK and contribs
242cd bld
978cadd0 243make prefix=$RPM_BUILD_ROOT%{wxpref} install
2e5aa9c4 244make -C contrib/src/animate prefix=$RPM_BUILD_ROOT%{wxpref} install
978cadd0 245make -C contrib/src/gizmos prefix=$RPM_BUILD_ROOT%{wxpref} install
978cadd0 246make -C contrib/src/stc prefix=$RPM_BUILD_ROOT%{wxpref} install
978cadd0
RD
247
248
70934952
RD
249
250# Install wxPython for wxGTK
1e4a197e 251cd $WXDIR/wxPython
4726eec6 252%{python} setup.py \
70934952 253 WXPORT=%{port} \
1e4a197e 254 UNICODE=%{unicode} \
70934952
RD
255 EP_ADD_OPTS=1 \
256 NO_SCRIPTS=1 \
8da2fe32
RD
257 WX_CONFIG="$RPM_BUILD_ROOT%{wxpref}/bin/wx-config --prefix=$RPM_BUILD_ROOT%{wxpref} --no_rpath" \
258 build_ext --rpath=%{wxpref}/lib \
4726eec6
RD
259 install \
260 --root=$RPM_BUILD_ROOT
261
59455c67 262
70934952
RD
263# remove the wx-config symlink, we'll redo it when installing the -devel package
264rm $RPM_BUILD_ROOT%{wxpref}/bin/wx-config
265
266# make sure that debug info is stripped
267strip $RPM_BUILD_ROOT%{pref}/lib*/python%{pyver}/site-packages/wx-%{ver2}*-%{port}-%{chartype}/wx/*.so
59455c67 268
59455c67 269
cdc6a041 270# Since I want this RPM to be as generic as possible I won't let
59455c67
RD
271# distutils copy the scripts (NO_SCRIPTS=1 above) since it will mangle
272# the #! line to use the real python pathname. Since some distros
273# install python 2.2 as python2 and others as python I can't let
274# distutils do that otherwise the dependencies will be fouled up.
70934952
RD
275# Copy them manually instead, leaving the #!/usr/bin/env line intact.
276cd $WXDIR/wxPython
8b9a4190 277mkdir -p $RPM_BUILD_ROOT%{pref}/bin
cdc6a041 278for s in \
1e4a197e 279 helpviewer \
cdc6a041
RD
280 img2png \
281 img2py \
282 img2xpm \
1fded56b
RD
283 pyalacarte \
284 pyalamode \
cdc6a041 285 pycrust \
1fded56b 286 pywrap \
cdc6a041 287 pyshell \
70934952 288 pywxrc \
cdc6a041 289 xrced; do
8b9a4190 290 cp scripts/$s $RPM_BUILD_ROOT%{pref}/bin
cdc6a041
RD
291done
292
293
8b9a4190 294
70934952 295# install KDE & GNOME menu items
bc59c206
RD
296mkdir -p $RPM_BUILD_ROOT%{_datadir}/applnk/Development
297mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications
298for d in distrib/*.desktop; do
299 install -m 644 $d $RPM_BUILD_ROOT%{_datadir}/applnk/Development
300 install -m 644 $d $RPM_BUILD_ROOT%{_datadir}/applications
301done
302
303# install KDE icons
304mkdir -p $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/{16x16,32x32}/apps
305mkdir -p $RPM_BUILD_ROOT%{_datadir}/pixmaps
306install -m 644 wx/py/PyCrust_16.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/16x16/apps/PyCrust.png
307install -m 644 wx/py/PyCrust_32.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/32x32/apps/PyCrust.png
308install -m 644 wx/py/PyCrust_32.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/PyCrust.png
309install -m 644 wx/tools/XRCed/XRCed_16.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/16x16/apps/XRCed.png
310install -m 644 wx/tools/XRCed/XRCed_32.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/32x32/apps/XRCed.png
311install -m 644 wx/tools/XRCed/XRCed_32.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/XRCed.png
312
70934952 313# install Mandrake menu items
ea48a085 314mkdir -p $RPM_BUILD_ROOT%{_libdir}/menu
70934952
RD
315cat > $RPM_BUILD_ROOT%{_libdir}/menu/%{pkgname} <<EOF
316?package(%{pkgname}): \\
bc59c206
RD
317 command="%{_bindir}/pyshell" \\
318 needs="X11" \\
319 icon="PyCrust.png" \\
320 section="Applications/Development/Tools" \\
321 title="PyShell" \\
322 longtitle="GUI Python Shell"
70934952 323?package(%{pkgname}): \\
bc59c206
RD
324 command="%{_bindir}/pycrust" \\
325 needs="X11" \\
326 icon="PyCrust.png" \\
327 section="Applications/Development/Tools" \\
328 title="PyCrust" \\
329 longtitle="GUI Python Shell with Filling"
70934952 330?package(%{pkgname}): \\
bc59c206
RD
331 command="%{_bindir}/pyalamode" \\
332 needs="X11" \\
333 icon="PyCrust.png" \\
334 section="Applications/Development/Tools" \\
335 title="PyAlaMode" \\
336 longtitle="GUI Python Shell with Filling and editor windows"
70934952 337?package(%{pkgname}): \\
bc59c206
RD
338 command="%{_bindir}/xrced" \\
339 needs="X11" \\
340 icon="XRCed.png" \\
341 section="Applications/Development/Tools" \\
342 title="XRCed" \\
343 longtitle="wxPython XRC resource editor"
344EOF
1fded56b 345
63b1cb82 346
70934952 347#----------------------------------------------------------------------
bc59c206 348
70934952
RD
349%post -n %{pkgname}%{ver2}-%{port}-%{chartype}
350if [ ! -e %{wxprefbase} ]; then
351 ln -s %{pkgname}-%{version}-%{port}-%{chartype} %{wxprefbase}
63b1cb82 352fi
63b1cb82 353
70934952
RD
354%preun -n %{pkgname}%{ver2}-%{port}-%{chartype}
355if [ -L %{wxprefbase} ]; then
356 if [ `readlink %{wxprefbase}` == %{pkgname}-%{version}-%{port}-%{chartype} ]; then
357 rm -f %{wxprefbase}
358 fi
bc59c206 359fi
70934952
RD
360
361
362
363
364%post -n %{pkgname}-common-%{port}-%{chartype}
bc59c206
RD
365# This is done on Mandrake to update its menus:
366if [ -x /usr/bin/update-menus ]; then /usr/bin/update-menus || true ; fi
367
70934952 368%postun -n %{pkgname}-common-%{port}-%{chartype}
bc59c206
RD
369# This is done on Mandrake to update its menus:
370if [ "$1" = "0" -a -x /usr/bin/update-menus ]; then /usr/bin/update-menus || true ; fi
371
63b1cb82 372
70934952
RD
373
374%post -n %{pkgname}%{ver2}-devel-%{port}-%{chartype}
375cd %{wxpref}/bin
376ln -s ../lib/wx/config/%{port}-%{chartype}* wx-config
377
378%preun -n %{pkgname}%{ver2}-devel-%{port}-%{chartype}
379rm %{wxpref}/bin/wx-config
380
381
382#----------------------------------------------------------------------
bc59c206
RD
383%clean
384[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
4726eec6
RD
385
386
70934952 387#----------------------------------------------------------------------
1e4a197e 388
70934952 389%files -n %{pkgname}%{ver2}-%{port}-%{chartype}
5ccc0a56 390%defattr(-,root,root)
59455c67 391%doc docs/preamble.txt docs/licence.txt docs/lgpl.txt docs/readme.txt docs/changes.txt
1fded56b 392%doc wxPython/docs/*
70934952
RD
393%dir %{pref}/lib*/python%{pyver}/site-packages/wx-%{ver2}*-%{port}-%{chartype}
394%{pref}/lib*/python%{pyver}/site-packages/wx-%{ver2}*-%{port}-%{chartype}/*
a55bea57
RD
395%dir %{wxpref}
396%dir %{wxpref}/lib
70934952 397%{wxpref}/lib/libwx_gtk*
59455c67 398%{wxpref}/share
70934952
RD
399
400
401
402%files -n %{pkgname}-common-%{port}-%{chartype}
403%defattr(-,root,root)
404%{pref}/lib*/python%{pyver}/site-packages/wxversion.*
405%{pref}/lib*/python%{pyver}/site-packages/wx.pth
406%{_bindir}/*
bc59c206
RD
407%{_datadir}/applnk/Development/*
408%{_datadir}/applications/*
409%{_datadir}/icons/hicolor/*/apps/*
410%{_datadir}/pixmaps/*
411%{_libdir}/menu/*
412
5ccc0a56 413
4726eec6 414
70934952
RD
415
416
417%files -n %{pkgname}%{ver2}-devel-%{port}-%{chartype}
59455c67
RD
418%defattr(-,root,root)
419%{wxpref}/include
420%{wxpref}/lib/wx
70934952
RD
421%dir %{wxpref}/bin
422
4726eec6 423
70934952 424#----------------------------------------------------------------------
4726eec6 425# end of file