1 # NOTE: Makefiles are broken, build could stop long time after first fatal error
4 %bcond_without tls # don't use TLS (which requires recent 2.4.x or 2.6 kernel)
5 %bcond_without static_libs # don't build static libraries
6 %bcond_with bootstrap # don't require mono-devel to find req/prov
7 %bcond_with mint # build mint instead of mono VM (JIT)
9 %ifnarch %{ix86} %{x8664} sparc sparcv9 sparc64 ppc s390 s390x
10 # JIT not supported on alpha,arm,hppa
15 Summary: Common Language Infrastructure implementation
16 Summary(pl): Implementacja Common Language Infrastructure
21 Group: Development/Languages
22 #Source0Download: http://go-mono.com/sources/
23 Source0: http://www.go-mono.com/sources/mono-1.1/%{name}-%{version}.tar.gz
24 # Source0-md5: 8ca33cbe66b5bb52f320ad992304b951
25 Patch0: %{name}-nolibs.patch
26 Patch1: %{name}-alpha-float.patch
27 Patch2: %{name}-mint.patch
28 Patch3: %{name}-sonames.patch
29 Patch4: %{name}-alpha-atomic.patch
30 Patch5: %{name}-sparc-exception.patch
31 Patch6: %{name}-alpha-tls.patch
32 URL: http://www.mono-project.com/
33 BuildRequires: autoconf
34 BuildRequires: automake
36 BuildRequires: glib2-devel >= %{_glibver}
37 BuildRequires: libtool
38 BuildRequires: pkgconfig
39 BuildRequires: rpmbuild(macros) >= 1.213
40 BuildRequires: rpmbuild(monoautodeps)
41 %{!?with_bootstrap:BuildRequires: mono-devel >= 1.1.8.3-2}
42 ExclusiveArch: %{ix86} %{x8664} arm hppa ppc s390 s390x
43 # sparc sparcv9 sparc64 not ported to linux (only solaris(?))
44 # alpha still broken, mips/ia64/m68k disabled in configure
45 # plain i386 is not supported; mono uses cmpxchg/xadd which require i486
47 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
49 %define _rpmlibdir /usr/lib/rpm
51 %if ! %{with bootstrap}
52 %define __mono_provides %{_rpmlibdir}/mono-find-provides
53 %define __mono_requires %{_rpmlibdir}/mono-find-requires
57 The Common Language Infrastructure platform. Microsoft has created a
58 new development platform. The highlights of this new development
60 - A runtime environment that provides garbage collection, threading
61 and a virtual machine specification (The Virtual Execution System,
63 - A comprehensive class library,
64 - A new language, C#. Very similar to Java, C# allows programmers to
65 use all the features available on the .NET runtime,
66 - A language specification that compilers can follow if they want to
67 generate classes and code that can interoperate with other programming
68 languages (The Common Language Specification: CLS).
70 %{?with_tls:This version was build with TLS __thread.}
73 Platforma CLI (Common Language Infrastructure). Microsoft stworzy³
74 now± platformê developersk±. Zalety tej platformy to:
75 - ¶rodowisko, które dostarcza garbage collector, w±tki oraz
76 specyfikacjê maszyny wirtualnej (The Virtual Execution System, VES),
78 - nowy jêzyk, C#. Bardzo podobny do Javy, C# pozwala programistom na
79 u¿ywanie wszystkich mo¿liwo¶ci dostarczanych przez platformê .NET,
80 - specyfikacja dla kompilatorów, które chc± generowaæ kod
81 wspó³pracuj±cy z innymi jêzykami programowania (The Common Language
84 %{?with_tls:Ta wersja zosta³a zbudowana z TLS __thread.}
87 Summary: Development resources for mono
88 Summary(pl): Zasoby programisty do mono
89 Group: Development/Libraries
90 Requires: %{name} = %{version}-%{release}
91 Requires: glib2-devel >= %{_glibver}
94 Development resources for mono.
96 %description devel -l pl
97 Zasoby programisty dla mono.
100 Summary: MonoBASIC compiler for mono
101 Summary(pl): Kompilator MonoBASIC dla mono
102 Group: Development/Languages
103 Requires: %{name}-devel = %{version}-%{release}
106 MonoBASIC compiler for mono.
108 %description basic -l pl
109 Kompilator MonoBASIC dla mono.
112 Summary: C# compiler for mono
113 Summary(pl): Kompilator C# dla mono
114 Group: Development/Languages
115 Requires: %{name}-devel = %{version}-%{release}
118 C# compiler for mono.
120 %description csharp -l pl
121 Kompilator C# dla mono.
124 Summary: ILasm compiler for mono
125 Summary(pl): Kompilator ILasm dla mono
126 Group: Development/Languages
127 Requires: %{name}-devel = %{version}-%{release}
129 Obsoletes: pnet-compiler-ilasm
132 ILasm compiler for mono.
134 %description ilasm -l pl
135 Kompilator ILasm dla mono.
138 Summary: jscript compiler for mono
139 Summary(pl): Kompilator jscript dla mono
140 Group: Development/Languages
141 Requires: %{name}-devel = %{version}-%{release}
144 jscript compiler for mono.
146 %description jscript -l pl
147 Kompilator jscript dla mono.
150 Summary: Static mono library
151 Summary(pl): Statyczna biblioteka mono
152 Group: Development/Libraries
153 Requires: %{name}-devel = %{version}-%{release}
158 %description static -l pl
159 Statyczna biblioteka mono.
162 Summary: Yacc-like parser generator for Java and C#
163 Summary(pl): Podobny do Yacca generator parserów dla Javy i C#
164 Group: Development/Tools
167 Yacc-like parser generator for Java and C#.
169 %description jay -l pl
170 Podobny do Yacca generator parserów dla Javy i C#.
172 %package compat-links
173 Summary: Mono compatibility links
174 Summary(pl): Dowi±zania dla kompatybilno¶ci
175 Group: Development/Languages
176 Requires: %{name}-devel = %{version}-%{release}
178 %description compat-links
179 This package contains links to binaries with names used in .NET and
182 %description compat-links -l pl
183 Pakiet ten zawiera dowi±zania do programów o nazwach u¿ywanych w .NET
196 # workaround for variable name disallowed by new pkgconfig
197 echo 'm4_pattern_allow(PKG_PATH)' > acinclude.m4
199 sed -i -e 's@a=`which "$0"`@a="/usr/bin/dupa"@' scripts/mono-find-provides.in
200 sed -i -e 's@a=`which "$0"`@a="/usr/bin/dupa"@' scripts/mono-find-requires.in
203 cp -f /usr/share/automake/config.sub .
204 cp -f /usr/share/automake/config.sub libgc
217 CPPFLAGS="-DUSE_LIBC_PRIVATE_SYMBOLS"
219 %{!?with_static_libs:--disable-static} \
220 --enable-fast-install \
223 --with-interp=%{?with_mint:yes}%{!?with_mint:no} \
224 --with-jit=%{?with_mint:no}%{!?with_mint:yes} \
226 --with-tls=%{?with_tls:__thread}%{!?with_tls:pthread}
228 # mint uses heap to make trampolines, which need to be executable
229 # there is mprotect(...,PROT_EXEC) for ppc/s390, but not used
230 # (ifdef NEED_MPROTECT, which is never defined)
231 # in fact the flag should be "-Wl,-z,execheap" for libmint, but:
232 # -z execheap doesn't seem to do anything currently
233 # -z execstack for library makes only stack executable, but not heap
235 mint_LDFLAGS="-Wl,-z,execheap -Wl,-z,execstack"
238 rm -rf $RPM_BUILD_ROOT
239 install -d $RPM_BUILD_ROOT%{_rpmlibdir}
242 DESTDIR=$RPM_BUILD_ROOT
244 mv -f $RPM_BUILD_ROOT%{_prefix}/man/man1/* $RPM_BUILD_ROOT%{_mandir}/man1
245 rm -f $RPM_BUILD_ROOT%{_datadir}/jay/[A-Z]*
247 # this way we can run rpmbuild -bi several times, and directories
248 # have more meaningful name.
250 mkdir -p pld-doc/{webpage,notes}
251 cp -a web/* pld-doc/webpage
252 cp -a docs/* pld-doc/notes
253 rm -f pld-doc/*/Makefile*
255 rm -rf $RPM_BUILD_ROOT%{_datadir}/libgc-mono
257 mv -f $RPM_BUILD_ROOT%{_bindir}/mono-find* $RPM_BUILD_ROOT%{_rpmlibdir}
260 rm -rf $RPM_BUILD_ROOT
262 %post -p /sbin/ldconfig
263 %postun -p /sbin/ldconfig
266 %defattr(644,root,root,755)
268 %attr(755,root,root) %{_bindir}/mint
270 %attr(755,root,root) %{_bindir}/mono
272 %attr(755,root,root) %{_bindir}/caspol
273 %attr(755,root,root) %{_bindir}/cert*
274 %attr(755,root,root) %{_bindir}/chktrust*
275 %attr(755,root,root) %{_bindir}/gacutil*
276 %attr(755,root,root) %{_bindir}/makecert*
277 %attr(755,root,root) %{_bindir}/mkbundle*
278 %attr(755,root,root) %{_bindir}/mono-service
279 %attr(755,root,root) %{_bindir}/mozroots
280 %attr(755,root,root) %{_bindir}/secutil*
281 %attr(755,root,root) %{_bindir}/setreg*
282 %attr(755,root,root) %{_bindir}/signcode*
283 %attr(755,root,root) %{_bindir}/sn*
284 %attr(755,root,root) %{_libdir}/lib*.so.*.*
285 %attr(755,root,root) %{_libdir}/libMonoPosixHelper.so
286 %attr(755,root,root) %{_libdir}/libMonoSupportW.so
287 %attr(755,root,root) %{_libdir}/libikvm-native.so
288 %dir %{_prefix}/lib/mono
289 %dir %{_prefix}/lib/mono/1.0
290 %dir %{_prefix}/lib/mono/2.0
291 %attr(755,root,root) %{_prefix}/lib/mono/*.*/*.dll
292 %attr(755,root,root) %{_prefix}/lib/mono/1.0/cert*
293 %attr(755,root,root) %{_prefix}/lib/mono/1.0/chktrust*
294 %attr(755,root,root) %{_prefix}/lib/mono/1.0/gacutil*
295 %attr(755,root,root) %{_prefix}/lib/mono/1.0/mkbundle*
296 %attr(755,root,root) %{_prefix}/lib/mono/1.0/mozroots*
297 %attr(755,root,root) %{_prefix}/lib/mono/1.0/secutil*
298 %attr(755,root,root) %{_prefix}/lib/mono/1.0/setreg*
299 %attr(755,root,root) %{_prefix}/lib/mono/1.0/signcode*
300 %attr(755,root,root) %{_prefix}/lib/mono/1.0/sn*
301 %attr(755,root,root) %{_prefix}/lib/mono/1.0/caspol*
302 %attr(755,root,root) %{_prefix}/lib/mono/1.0/mono-service*
303 %{_prefix}/lib/mono/gac
304 %{_mandir}/man1/cert*.1*
305 %{_mandir}/man1/chktrust.1*
306 %{_mandir}/man1/gacutil.1*
307 %{_mandir}/man1/makecert.1*
308 %{_mandir}/man1/mkbundle.1*
309 %{_mandir}/man1/mint.1*
310 %{_mandir}/man1/mono.1*
311 %{_mandir}/man1/mono-service.1*
312 %{_mandir}/man1/mozroots.1*
313 %{_mandir}/man1/secutil.1*
314 %{_mandir}/man1/setreg.1*
315 %{_mandir}/man1/signcode.1*
316 %{_mandir}/man1/sn.1*
317 %{_mandir}/man1/permview.1*
318 %{_mandir}/man5/mono-config.5*
319 %dir %{_sysconfdir}/mono
320 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mono/config
321 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mono/browscap.ini
322 %dir %{_sysconfdir}/mono/1.0
323 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mono/1.0/machine.config
324 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mono/1.0/DefaultWsdlHelpGenerator.aspx
325 %dir %{_sysconfdir}/mono/2.0
326 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mono/2.0/machine.config
327 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mono/2.0/DefaultWsdlHelpGenerator.aspx
330 %defattr(644,root,root,755)
331 %doc mcs/jay/{ACKNOWLEDGEMENTS,ChangeLog,NEW_FEATURES,NOTES,README,README.jay}
332 %attr(755,root,root) %{_bindir}/jay
334 %{_datadir}/jay/skeleton*
335 %{_mandir}/man1/jay.1*
337 # TODO: probably Microsoft.JScript.dll & Co. should be here
339 %defattr(644,root,root,755)
340 %attr(755,root,root) %{_bindir}/mjs
341 %attr(755,root,root) %{_prefix}/lib/mono/1.0/mjs*
344 %defattr(644,root,root,755)
345 %attr(755,root,root) %{_bindir}/resgen
348 %defattr(644,root,root,755)
349 %doc AUTHORS ChangeLog NEWS README pld-doc/*
350 %attr(755,root,root) %{_bindir}/al*
351 %attr(755,root,root) %{_bindir}/cilc*
352 %attr(755,root,root) %{_bindir}/disco*
353 %attr(755,root,root) %{_bindir}/dtd2xsd
354 %attr(755,root,root) %{_bindir}/genxs*
355 %attr(755,root,root) %{_bindir}/macpack
356 %attr(755,root,root) %{_bindir}/monodiet
357 %attr(755,root,root) %{_bindir}/monodis
358 %attr(755,root,root) %{_bindir}/monograph
359 %attr(755,root,root) %{_bindir}/monop*
360 %attr(755,root,root) %{_bindir}/mono-shlib-cop*
361 %attr(755,root,root) %{_bindir}/nunit-console
362 %attr(755,root,root) %{_bindir}/pedump
363 %attr(755,root,root) %{_bindir}/permview
364 %attr(755,root,root) %{_bindir}/prj2make
365 %attr(755,root,root) %{_bindir}/soapsuds*
366 %attr(755,root,root) %{_bindir}/sqlsharp*
367 %attr(755,root,root) %{_bindir}/wsdl*
368 %attr(755,root,root) %{_bindir}/xsd*
370 %attr(755,root,root) %{_libdir}/libmint.so
372 %attr(755,root,root) %{_libdir}/libmono.so
373 %attr(755,root,root) %{_libdir}/libmono-profiler-cov.so
376 %attr(755,root,root) %{_prefix}/lib/mono/1.0/al*
377 %attr(755,root,root) %{_prefix}/lib/mono/1.0/browsercaps-updater*
378 %attr(755,root,root) %{_prefix}/lib/mono/1.0/cilc*
379 %attr(755,root,root) %{_prefix}/lib/mono/1.0/CorCompare*
380 %attr(755,root,root) %{_prefix}/lib/mono/1.0/disco*
381 %attr(755,root,root) %{_prefix}/lib/mono/1.0/dtd2xsd*
382 %attr(755,root,root) %{_prefix}/lib/mono/1.0/genxs*
383 %attr(755,root,root) %{_prefix}/lib/mono/1.0/ictool*
384 %attr(755,root,root) %{_prefix}/lib/mono/1.0/macpack*
385 %attr(755,root,root) %{_prefix}/lib/mono/1.0/makecert*
386 %attr(755,root,root) %{_prefix}/lib/mono/1.0/mono-api-*
387 %attr(755,root,root) %{_prefix}/lib/mono/1.0/monop*
388 %attr(755,root,root) %{_prefix}/lib/mono/1.0/mono-shlib-cop*
389 %attr(755,root,root) %{_prefix}/lib/mono/1.0/nunit-console*
390 %attr(755,root,root) %{_prefix}/lib/mono/1.0/permview*
391 %attr(755,root,root) %{_prefix}/lib/mono/1.0/prj2make*
392 %attr(755,root,root) %{_prefix}/lib/mono/1.0/resgen*
393 %attr(755,root,root) %{_prefix}/lib/mono/1.0/soapsuds*
394 %attr(755,root,root) %{_prefix}/lib/mono/1.0/sqlsharp*
395 %attr(755,root,root) %{_prefix}/lib/mono/1.0/wsdl*
396 %attr(755,root,root) %{_prefix}/lib/mono/1.0/xsd*
397 %attr(755,root,root) %{_prefix}/lib/mono/2.0/mono-api-info*
398 %attr(755,root,root) %{_prefix}/lib/mono/2.0/monop*
399 %attr(755,root,root) %{_prefix}/lib/mono/2.0/nunit-console*
400 %attr(755,root,root) %{_prefix}/lib/mono/2.0/wsdl*
401 %{_prefix}/lib/mono/*.*/*.dll.mdb
402 %attr(755,root,root) %{_rpmlibdir}/mono-find*
404 %{_pkgconfigdir}/*.pc
405 %{_includedir}/%{name}
406 %{_mandir}/man1/al.1*
407 %{_mandir}/man1/cilc.1*
408 %{_mandir}/man1/disco.1*
409 %{_mandir}/man1/dtd2xsd.1*
410 %{_mandir}/man1/genxs.1*
411 %{_mandir}/man1/macpack.1*
412 %{_mandir}/man1/monoburg.1*
413 %{_mandir}/man1/monodis.1*
414 %{_mandir}/man1/monop.1*
415 %{_mandir}/man1/mono-shlib-cop.1*
416 %{_mandir}/man1/monostyle.1*
417 %{_mandir}/man1/oldmono.1*
418 %{_mandir}/man1/prj2make.1*
419 %{_mandir}/man1/soapsuds.1*
420 %{_mandir}/man1/sqlsharp.1*
421 %{_mandir}/man1/wsdl.1*
422 %{_mandir}/man1/xsd.1*
425 %defattr(644,root,root,755)
426 %attr(755,root,root) %{_bindir}/mcs
427 %attr(755,root,root) %{_bindir}/gmcs
428 %attr(755,root,root) %{_prefix}/lib/mono/1.0/mcs.exe*
429 %attr(755,root,root) %{_prefix}/lib/mono/2.0/gmcs.exe*
430 %{_mandir}/man1/mcs.1*
433 %defattr(644,root,root,755)
434 %attr(755,root,root) %{_bindir}/mbas
435 %attr(755,root,root) %{_prefix}/lib/mono/1.0/mbas.exe*
438 %defattr(644,root,root,755)
439 %attr(755,root,root) %{_bindir}/ilasm*
440 %attr(755,root,root) %{_prefix}/lib/mono/1.0/ilasm*
441 %{_mandir}/man1/ilasm.1*
443 %if %{with static_libs}
445 %defattr(644,root,root,755)