1 |
%ifarch x86_64 |
2 |
%define wine wine64 |
3 |
%define mark64 ()(64bit) |
4 |
%else |
5 |
%define wine wine |
6 |
%define mark64 %{nil} |
7 |
%endif |
8 |
%define lib_name_orig lib%{name} |
9 |
%define lib_major 1 |
10 |
%define lib_name %mklibname %{name} %{lib_major} |
11 |
%define lib_name_devel %{mklibname -d wine} |
12 |
|
13 |
# On 32-bit we have |
14 |
# wine32 - those 32-bit binaries that are also used on 64-bit for 32-bit support |
15 |
# wine - all other files (requires 'wine32') |
16 |
# On 64-bit we have |
17 |
# wine64 - all 64-bit files (suggests 'wine32') |
18 |
# - Anssi 07/2010 |
19 |
|
20 |
Name: wine |
21 |
Version: 1.3.29 |
22 |
%define pre 0 |
23 |
%define rel 1 |
24 |
%if %pre |
25 |
Release: %mkrel 0.%pre.%rel |
26 |
%define o_ver %version-%pre |
27 |
%else |
28 |
Release: %mkrel %rel |
29 |
%define o_ver %version |
30 |
%endif |
31 |
Epoch: 1 |
32 |
Summary: WINE Is Not An Emulator - runs MS Windows programs |
33 |
License: LGPLv2+ |
34 |
Group: Emulators |
35 |
URL: http://www.winehq.com/ |
36 |
Source0: http://prdownloads.sourceforge.net/wine/%{name}-%{o_ver}.tar.bz2 |
37 |
Source1: http://prdownloads.sourceforge.net/wine/%{name}-%{o_ver}.tar.bz2.sign |
38 |
|
39 |
# RH stuff |
40 |
Source2: wine.init |
41 |
Patch0: wine-1.0-rc3-fix-conflicts-with-openssl.patch |
42 |
Patch1: wine-1.1.7-chinese-font-substitutes.patch |
43 |
# (Anssi 05/2008) Adds: |
44 |
# a: => /media/floppy (/mnt/floppy on 2007.1 and older) |
45 |
# d: => $HOME (at config_dir creation time, not refreshed if $HOME changes; |
46 |
# note that Wine also provides $HOME in My Documents) |
47 |
# com4 => /dev/ttyUSB0 (replaces /dev/ttyS3) |
48 |
Patch108: wine-mgaconf.patch |
49 |
|
50 |
# (anssi) Wine needs GCC 4.4+ on x86_64 for MS ABI support. Note also that |
51 |
# 64-bit wine cannot run 32-bit programs without wine32. |
52 |
%ifarch x86_64 |
53 |
BuildRequires: gcc >= 4.4 |
54 |
%endif |
55 |
BuildRequires: bison flex |
56 |
BuildRequires: gpm-devel |
57 |
BuildRequires: perl-devel |
58 |
BuildRequires: ncurses-devel |
59 |
BuildRequires: cups-devel |
60 |
BuildRequires: sane-devel |
61 |
BuildRequires: lcms-devel |
62 |
BuildRequires: autoconf |
63 |
BuildRequires: docbook-utils docbook-dtd-sgml |
64 |
BuildRequires: docbook-utils docbook-dtd-sgml sgml-tools |
65 |
BuildRequires: pulseaudio-devel |
66 |
BuildRequires: libmpg123-devel |
67 |
BuildRequires: openal-devel |
68 |
BuildRequires: libalsa-devel |
69 |
BuildRequires: gstreamer0.10-devel libgstreamer0.10-plugins-base-devel |
70 |
BuildRequires: isdn4k-utils-devel |
71 |
BuildRequires: glibc-static-devel |
72 |
BuildRequires: chrpath |
73 |
BuildRequires: ungif-devel xpm-devel |
74 |
BuildRequires: tiff-devel |
75 |
BuildRequires: librsvg |
76 |
BuildRequires: imagemagick |
77 |
BuildRequires: gphoto2-devel |
78 |
BuildRequires: desktop-file-utils |
79 |
BuildRequires: openldap-devel |
80 |
BuildRequires: libxslt-devel |
81 |
BuildRequires: dbus-devel |
82 |
BuildRequires: hal-devel |
83 |
BuildRequires: valgrind-devel |
84 |
BuildRequires: gsm-devel |
85 |
BuildRequires: unixODBC-devel |
86 |
BuildRequires: gnutls-devel |
87 |
BuildRequires: prelink |
88 |
BuildRequires: gettext-devel |
89 |
BuildRequires: mesaglu-devel |
90 |
BuildRequires: libv4l-devel |
91 |
BuildRequires: libxcursor-devel libxcomposite-devel |
92 |
BuildRequires: libxinerama-devel libxrandr-devel |
93 |
BuildRequires: libx11-devel libxrender-devel |
94 |
BuildRequires: libxext-devel libsm-devel |
95 |
BuildRequires: fontforge fontconfig-devel freetype2-devel |
96 |
|
97 |
%define desc Wine is a program which allows running Microsoft Windows programs \ |
98 |
(including DOS, Windows 3.x and Win32 executables) on Unix. It \ |
99 |
consists of a program loader which loads and executes a Microsoft \ |
100 |
Windows binary, and a library (called Winelib) that implements Windows \ |
101 |
API calls using their Unix or X11 equivalents. The library may also \ |
102 |
be used for porting Win32 code into native Unix executables. |
103 |
|
104 |
%ifarch x86_64 |
105 |
%package -n %{wine} |
106 |
Summary: WINE Is Not An Emulator - runs MS Windows programs |
107 |
Group: Emulators |
108 |
Suggests: wine32 = %{epoch}:%{version}-%{release} |
109 |
Suggests: wine64-gecko |
110 |
%else |
111 |
# on 32-bit we always want wine32 package |
112 |
Requires: wine32 = %{epoch}:%{version}-%{release} |
113 |
%endif |
114 |
|
115 |
Provides: %{wine}-utils = %{epoch}:%{version}-%{release} %{wine}-full = %{epoch}:%{version}-%{release} |
116 |
Provides: %{lib_name}-capi = %{epoch}:%{version}-%{release} %{lib_name}-twain = %{epoch}:%{version}-%{release} |
117 |
Provides: %{lib_name} = %{epoch}:%{version}-%{release} |
118 |
Provides: wine-bin = %{epoch}:%{version}-%{release} |
119 |
Obsoletes: %{wine}-utils %{wine}-full %{lib_name}-capi %{lib_name}-twain |
120 |
Obsoletes: %{lib_name} <= %{epoch}:%{version}-%{release} |
121 |
Requires: xmessage |
122 |
Suggests: sane-frontends |
123 |
# wine dlopen's these, so let's add the dependencies ourself |
124 |
Requires: libfreetype.so.6%{mark64} libasound.so.2%{mark64} |
125 |
# wine needs to dlopen libfontconfig to make CJK fonts show correctly in winecfg |
126 |
Requires: libfontconfig.so.1%{mark64} |
127 |
Requires: libncurses.so.5%{mark64} |
128 |
Requires: libXrender.so.1%{mark64} libpng15.so.15%{mark64} |
129 |
Requires(post): desktop-file-utils |
130 |
Requires(postun): desktop-file-utils |
131 |
Requires(post): desktop-common-data |
132 |
Requires(postun): desktop-common-data |
133 |
Requires(preun): rpm-helper |
134 |
Requires(post): rpm-helper |
135 |
%ifarch %{ix86} |
136 |
Conflicts: wine64 |
137 |
%else |
138 |
Conflicts: wine |
139 |
%endif |
140 |
|
141 |
%description |
142 |
%desc |
143 |
|
144 |
%ifarch x86_64 |
145 |
%description -n %{wine} |
146 |
%desc |
147 |
|
148 |
This package contains the Win64 version of Wine. You need the wine32 |
149 |
package from the 32-bit repository to be able to run 32-bit applications. |
150 |
%endif |
151 |
|
152 |
%ifarch %ix86 |
153 |
%package -n wine32 |
154 |
Summary: 32-bit support for Wine |
155 |
Group: Emulators |
156 |
# This is not an EVR-specific requirement, as otherwise on x86_64 urpmi could |
157 |
# resolve the dependency to wine64 even on upgrades, and therefore replace |
158 |
# wine+wine32 installation with a wine32+wine64 installation. - Anssi |
159 |
Requires: wine-bin |
160 |
Conflicts: wine < 1:1.2-0.rc7.1 |
161 |
Conflicts: wine64 < 1:1.2-0.rc7.1 |
162 |
# (Anssi) If wine-gecko is not installed, wine pops up a dialog on first |
163 |
# start proposing to download wine-gecko from sourceforge, while recommending |
164 |
# to use distribution packages instead. Therefore suggest wine-gecko here: |
165 |
Suggests: wine-gecko |
166 |
|
167 |
%description -n wine32 |
168 |
Wine is a program which allows running Microsoft Windows programs |
169 |
(including DOS, Windows 3.x and Win32 executables) on Unix. |
170 |
|
171 |
This package contains the files needed to support 32-bit Windows |
172 |
programs. |
173 |
%endif |
174 |
|
175 |
%package -n %{wine}-devel |
176 |
Summary: Static libraries and headers for %{name} |
177 |
Group: Development/C |
178 |
Requires: %{wine} = %{epoch}:%{version} |
179 |
Provides: %{lib_name_devel} = %{epoch}:%{version}-%{release} |
180 |
Provides: %{lib_name_orig}-devel = %{epoch}:%{version}-%{release} |
181 |
Obsoletes: %{lib_name_devel} <= %{epoch}:%{version}-%{release} |
182 |
Obsoletes: %{mklibname -d wine 1} < %{epoch}:%{version} |
183 |
%ifarch %{ix86} |
184 |
Conflicts: wine64-devel |
185 |
%else |
186 |
Conflicts: wine-devel |
187 |
%endif |
188 |
|
189 |
%description -n %{wine}-devel |
190 |
Wine is a program which allows running Microsoft Windows programs |
191 |
(including DOS, Windows 3.x and Win32 executables) on Unix. |
192 |
|
193 |
%{wine}-devel contains the libraries and header files needed to |
194 |
develop programs which make use of wine. |
195 |
|
196 |
Wine is often updated. |
197 |
|
198 |
%prep |
199 |
%setup -q -n %name-%o_ver |
200 |
%patch1 -p0 -b .chinese |
201 |
%patch108 -p1 -b .conf |
202 |
|
203 |
%build |
204 |
%ifarch %ix86 |
205 |
# (Anssi 04/2008) bug #39604 |
206 |
# Some protection systems complain "debugger detected" with our |
207 |
# -fomit-frame-pointer flag, so disable it. |
208 |
export CFLAGS="%{optflags} -fno-omit-frame-pointer" |
209 |
%endif |
210 |
|
211 |
# (Anssi 04/2008) |
212 |
# If icotool is present, it is used to rebuild icon files. It is in contrib |
213 |
# so we do not do that; this is here to ensure that installed icoutils does |
214 |
# not change build behaviour. |
215 |
export ICOTOOL=false |
216 |
|
217 |
autoreconf |
218 |
%configure2_5x --with-x \ |
219 |
--with-pulse \ |
220 |
%ifarch x86_64 |
221 |
--enable-win64 |
222 |
%endif |
223 |
|
224 |
%make depend |
225 |
%make |
226 |
|
227 |
%install |
228 |
rm -rf %{buildroot} |
229 |
%makeinstall_std LDCONFIG=/bin/true |
230 |
|
231 |
# Danny: dirty: |
232 |
install -m755 tools/fnt2bdf -D %{buildroot}%{_bindir}/fnt2bdf |
233 |
|
234 |
# Allow users to launch Windows programs by just clicking on the .exe file... |
235 |
install -m755 %{SOURCE2} -D %{buildroot}%{_initrddir}/%{name} |
236 |
|
237 |
mkdir -p %{buildroot}%{_sysconfdir}/xdg/menus/applications-merged |
238 |
cat > %{buildroot}%{_sysconfdir}/xdg/menus/applications-merged/mageia-%{name}.menu <<EOF |
239 |
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" |
240 |
"http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd"> |
241 |
<Menu> |
242 |
<Name>Applications</Name> |
243 |
<Menu> |
244 |
<Name>Tools</Name> |
245 |
<Menu> |
246 |
<Name>Emulators</Name> |
247 |
<Menu> |
248 |
<Name>Wine</Name> |
249 |
<Directory>mageia-%{name}.directory</Directory> |
250 |
<Include> |
251 |
<Category>X-MandrivaLinux-MoreApplications-Emulators-Wine</Category> |
252 |
</Include> |
253 |
</Menu> |
254 |
</Menu> |
255 |
</Menu> |
256 |
</Menu> |
257 |
EOF |
258 |
|
259 |
mkdir -p %{buildroot}%{_datadir}/desktop-directories |
260 |
cat > %{buildroot}%{_datadir}/desktop-directories/mageia-%{name}.directory <<EOF |
261 |
[Desktop Entry] |
262 |
Name=Wine |
263 |
Icon=%{name} |
264 |
Type=Directory |
265 |
EOF |
266 |
|
267 |
mkdir -p %{buildroot}%{_datadir}/applications/ |
268 |
for i in winecfg:Configurator \ |
269 |
notepad:Notepad \ |
270 |
winefile:File\ Manager \ |
271 |
regedit:Registry\ Editor \ |
272 |
winemine:Minesweeper \ |
273 |
wineboot:Reboot \ |
274 |
"wineconsole cmd":Command\ Line \ |
275 |
"wine uninstaller:Wine Software Uninstaller"; |
276 |
do cat > %{buildroot}%{_datadir}/applications/mageia-%{name}-`echo $i|cut -d: -f1`.desktop << EOF |
277 |
[Desktop Entry] |
278 |
Name=`echo $i|cut -d: -f2` |
279 |
Comment=`echo $i|cut -d: -f2` |
280 |
Exec=`echo $i|cut -d: -f1` |
281 |
Icon=%{name} |
282 |
Terminal=false |
283 |
Type=Application |
284 |
Categories=X-MandrivaLinux-MoreApplications-Emulators-Wine; |
285 |
EOF |
286 |
done |
287 |
|
288 |
# Categories=Emulator does nothing and is added as a workaround to kde #27700 |
289 |
desktop-file-install --vendor="" \ |
290 |
--add-mime-type=application/x-zip-compressed \ |
291 |
--remove-mime-type=application/x-zip-compressed \ |
292 |
--add-category=Emulator \ |
293 |
--dir %{buildroot}%{_datadir}/applications %{buildroot}%{_datadir}/applications/wine.desktop |
294 |
|
295 |
%ifarch x86_64 |
296 |
# fix the binary name |
297 |
sed -i 's,Exec=wine ,Exec=wine64 ,' %{buildroot}%{_datadir}/applications/wine.desktop |
298 |
%endif |
299 |
|
300 |
install -d %{buildroot}{%{_liconsdir},%{_iconsdir},%{_miconsdir}} |
301 |
|
302 |
# winecfg icon |
303 |
convert dlls/user32/resources/oic_winlogo.ico[8] %{buildroot}%{_miconsdir}/%{name}.png |
304 |
convert dlls/user32/resources/oic_winlogo.ico[7] %{buildroot}%{_iconsdir}/%{name}.png |
305 |
convert dlls/user32/resources/oic_winlogo.ico[6] %{buildroot}%{_liconsdir}/%{name}.png |
306 |
|
307 |
# notepad icon |
308 |
convert programs/notepad/notepad.ico[2] %{buildroot}%{_miconsdir}/notepad.png |
309 |
convert programs/notepad/notepad.ico[7] %{buildroot}%{_iconsdir}/notepad.png |
310 |
convert programs/notepad/notepad.ico[8] %{buildroot}%{_liconsdir}/notepad.png |
311 |
# winefile icon |
312 |
convert programs/winefile/winefile.ico[2] %{buildroot}%{_miconsdir}/winefile.png |
313 |
convert programs/winefile/winefile.ico[8] %{buildroot}%{_iconsdir}/winefile.png |
314 |
convert programs/winefile/winefile.ico[7] %{buildroot}%{_liconsdir}/winefile.png |
315 |
# regedit icon |
316 |
convert programs/regedit/regedit.ico[2] %{buildroot}%{_miconsdir}/regedit.png |
317 |
convert programs/regedit/regedit.ico[8] %{buildroot}%{_iconsdir}/regedit.png |
318 |
convert programs/regedit/regedit.ico[7] %{buildroot}%{_liconsdir}/regedit.png |
319 |
# winemine icon |
320 |
convert programs/winemine/winemine.ico[2] %{buildroot}%{_miconsdir}/winemine.png |
321 |
convert programs/winemine/winemine.ico[8] %{buildroot}%{_iconsdir}/winemine.png |
322 |
convert programs/winemine/winemine.ico[7] %{buildroot}%{_liconsdir}/winemine.png |
323 |
|
324 |
# wine uninstaller icon: |
325 |
convert programs/msiexec/msiexec.ico[2] %{buildroot}%{_miconsdir}/msiexec.png |
326 |
convert programs/msiexec/msiexec.ico[8] %{buildroot}%{_iconsdir}/msiexec.png |
327 |
convert programs/msiexec/msiexec.ico[7] %{buildroot}%{_liconsdir}/msiexec.png |
328 |
|
329 |
# change the icons in the respective .desktop files, in order: |
330 |
sed -i 's,Icon=%{name},Icon=notepad,' %{buildroot}%{_datadir}/applications/mageia-wine-notepad.desktop |
331 |
sed -i 's,Icon=%{name},Icon=winefile,' %{buildroot}%{_datadir}/applications/mageia-wine-winefile.desktop |
332 |
sed -i 's,Icon=%{name},Icon=regedit,' %{buildroot}%{_datadir}/applications/mageia-wine-regedit.desktop |
333 |
sed -i 's,Icon=%{name},Icon=winemine,' %{buildroot}%{_datadir}/applications/mageia-wine-winemine.desktop |
334 |
sed -i 's,Icon=%{name},Icon=msiexec,' "%{buildroot}%{_datadir}/applications/mageia-wine-wine uninstaller.desktop" |
335 |
|
336 |
%ifarch x86_64 |
337 |
chrpath -d %{buildroot}%{_bindir}/{wine64,wineserver,wmc,wrc} %{buildroot}%{_libdir}/%{name}/*.so |
338 |
%else |
339 |
chrpath -d %{buildroot}%{_bindir}/{wine,wineserver,wmc,wrc} %{buildroot}%{_libdir}/%{name}/*.so |
340 |
%endif |
341 |
|
342 |
%ifarch x86_64 |
343 |
cat > README.install.urpmi <<EOF |
344 |
This is the Win64 version of Wine. This version can only be used to run |
345 |
64-bit Windows applications as is. For running 32-bit Windows applications, |
346 |
you need to also install the 'wine32' package from the 32-bit repository. |
347 |
EOF |
348 |
%endif |
349 |
|
350 |
%clean |
351 |
rm -fr %{buildroot} |
352 |
|
353 |
%preun -n %{wine} |
354 |
%_preun_service %{name} |
355 |
|
356 |
%post -n %{wine} |
357 |
%_post_service %{name} |
358 |
|
359 |
%files -n %{wine} |
360 |
%defattr(-,root,root) |
361 |
%doc ANNOUNCE AUTHORS README |
362 |
%ifarch x86_64 |
363 |
%doc README.install.urpmi |
364 |
%{_bindir}/wine64 |
365 |
%{_bindir}/wine64-preloader |
366 |
%endif |
367 |
%{_initrddir}/%{name} |
368 |
%{_bindir}/winecfg |
369 |
%{_bindir}/wineconsole* |
370 |
%{_bindir}/wineserver |
371 |
%{_bindir}/wineboot |
372 |
%{_bindir}/function_grep.pl |
373 |
#%{_bindir}/wineprefixcreate |
374 |
%{_bindir}/msiexec |
375 |
%{_bindir}/notepad |
376 |
%{_bindir}/regedit |
377 |
%{_bindir}/winemine |
378 |
%{_bindir}/winepath |
379 |
%{_bindir}/regsvr32 |
380 |
%{_bindir}/winefile |
381 |
%{_mandir}/man1/wine.1* |
382 |
%lang(de) %{_mandir}/de.UTF-8/man1/wine.1* |
383 |
%lang(de) %{_mandir}/de.UTF-8/man1/winemaker.1* |
384 |
%lang(de) %{_mandir}/de.UTF-8/man1/wineserver.1* |
385 |
%lang(fr) %{_mandir}/fr.UTF-8/man1/* |
386 |
%lang(pl) %{_mandir}/pl.UTF-8/man1/wine.1* |
387 |
%{_mandir}/man1/wineserver.1* |
388 |
%{_mandir}/man1/msiexec.1* |
389 |
%{_mandir}/man1/notepad.1* |
390 |
%{_mandir}/man1/regedit.1* |
391 |
%{_mandir}/man1/regsvr32.1* |
392 |
%{_mandir}/man1/wineboot.1* |
393 |
%{_mandir}/man1/winecfg.1* |
394 |
%{_mandir}/man1/wineconsole.1* |
395 |
%{_mandir}/man1/winecpp.1* |
396 |
%{_mandir}/man1/winefile.1* |
397 |
%{_mandir}/man1/winemine.1* |
398 |
%{_mandir}/man1/winepath.1* |
399 |
%dir %{_datadir}/%{name} |
400 |
%{_datadir}/%{name}/generic.ppd |
401 |
%{_datadir}/%{name}/%{name}.inf |
402 |
%{_datadir}/%{name}/l_intl.nls |
403 |
%{_datadir}/applications/*.desktop |
404 |
%{_sysconfdir}/xdg/menus/applications-merged/mageia-%{name}.menu |
405 |
%{_datadir}/desktop-directories/mageia-%{name}.directory |
406 |
%dir %{_datadir}/wine/fonts |
407 |
%{_datadir}/wine/fonts/* |
408 |
%{_miconsdir}/*.png |
409 |
%{_iconsdir}/*.png |
410 |
%{_liconsdir}/*.png |
411 |
|
412 |
%ifarch %{ix86} |
413 |
%files -n wine32 |
414 |
%defattr(-,root,root) |
415 |
%{_bindir}/wine |
416 |
%{_bindir}/wine-preloader |
417 |
%endif |
418 |
|
419 |
%{_libdir}/libwine*.so.%{lib_major}* |
420 |
%dir %{_libdir}/%{name} |
421 |
%{_libdir}/%{name}/*.cpl.so |
422 |
%{_libdir}/%{name}/*.drv.so |
423 |
%{_libdir}/%{name}/*.dll.so |
424 |
%{_libdir}/%{name}/*.exe.so |
425 |
%{_libdir}/%{name}/*.acm.so |
426 |
%{_libdir}/%{name}/*.ocx.so |
427 |
%ifarch %{ix86} |
428 |
%{_libdir}/%{name}/*.vxd.so |
429 |
%{_libdir}/%{name}/*16.so |
430 |
%endif |
431 |
%{_libdir}/%{name}/*.tlb.so |
432 |
%{_libdir}/%{name}/*.ds.so |
433 |
%{_libdir}/%{name}/*.sys.so |
434 |
%{_libdir}/%{name}/fakedlls |
435 |
|
436 |
%files -n %{wine}-devel |
437 |
%defattr(-,root,root) |
438 |
%{_libdir}/%{name}/*.a |
439 |
%{_libdir}/libwine*.so |
440 |
%{_libdir}/%{name}/*.def |
441 |
%{_includedir}/* |
442 |
%{_bindir}/fnt2bdf |
443 |
%{_bindir}/wmc |
444 |
%{_bindir}/wrc |
445 |
%{_bindir}/winebuild |
446 |
%{_bindir}/winegcc |
447 |
%{_bindir}/wineg++ |
448 |
%{_bindir}/winecpp |
449 |
%{_bindir}/widl |
450 |
%{_bindir}/winedbg |
451 |
%{_bindir}/winemaker |
452 |
%{_bindir}/winedump |
453 |
%{_mandir}/man1/wmc.1* |
454 |
%{_mandir}/man1/wrc.1* |
455 |
%{_mandir}/man1/winebuild.1* |
456 |
%{_mandir}/man1/winemaker.1* |
457 |
%{_mandir}/man1/winedump.1* |
458 |
%{_mandir}/man1/widl.1* |
459 |
%{_mandir}/man1/winedbg.1* |
460 |
%{_mandir}/man1/wineg++.1* |
461 |
%{_mandir}/man1/winegcc.1* |