File ocaml.spec of Package ocaml
#
# spec file for package ocaml (Version 3.10.2)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
Name: ocaml
BuildRequires: emacs-nox gdbm-devel gtk-devel ncurses-devel tk-devel
License: GPL v2 or later; THE Q PUBLIC LICENSE (QPL)
Group: Development/Languages/Other
AutoReqProv: on
Version: 3.10.2
Release: 36
%define doc_version 3.10
%ifarch s390 s390x
%define do_opt 0
%else
%define do_opt 1
%endif
Source0: ftp://ftp.inria.fr/lang/caml-light/ocaml-%{version}.tar.bz2
Source1: ftp://ftp.inria.fr/lang/caml-light/ocaml-%{doc_version}-refman.html.tar.bz2
Source2: ftp://ftp.inria.fr/lang/caml-light/ocaml-%{doc_version}-refman.ps.bz2
Source3: ftp://ftp.inria.fr/lang/caml-light/ocaml-%{doc_version}-refman.info.tar.bz2
Source4: rpmlintrc
Patch0: ocaml-3.00-camldebug_el.patch
Patch1: ocaml-3.04-info.patch
Patch2: ocaml-3.04-ocamltags--no-site-start.patch
Patch3: ocaml-rpath.patch
Patch4: ocaml-3.08.1-type_punning.patch
Patch5: ocaml-3.08.3-gcc4.patch
Patch6: ocaml-3.08.3.patch
Patch7: ocaml-3.09-emacs_localcompile.patch
Patch8: ocaml-3.09-rpmoptflags.patch
Patch9: ocaml-Tk8.5.diff
Patch64: ocaml.ppc64.patch
Url: http://caml.inria.fr/
Summary: The Objective Caml Compiler and Programming Environment
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: %install_info_prereq
%description
Objective Caml is a high-level, strongly-typed, functional and
object-oriented programming language from the ML family of languages.
This package comprises two batch compilers (a fast bytecode compiler
and an optimizing native-code compiler), an interactive top level
system, Lex&Yacc tools, a replay debugger, and a comprehensive library.
Authors:
--------
Pierre Weis <Pierre.Weis@inria.fr>
%package devel
License: GPL v2 or later; THE Q PUBLIC LICENSE (QPL)
Summary: The Objective Caml Compiler and Programming Environment
Group: Development/Languages/Other
Provides: libz:/usr/include/zlib.h
Requires: zlib = %{version}
AutoReqProv: on
%description devel
Objective Caml is a high-level, strongly-typed, functional and
object-oriented programming language from the ML family of languages.
This package comprises two batch compilers (a fast bytecode compiler
and an optimizing native-code compiler), an interactive top level
system, Lex&Yacc tools, a replay debugger, and a comprehensive library.
Authors:
--------
Pierre Weis <Pierre.Weis@inria.fr>
%package -n labltk
License: GPL v2 or later; THE Q PUBLIC LICENSE (QPL)
Group: Development/Languages/Other
Summary: The Objective Caml Compiler and Programming Environment
Requires: ocaml = %{version}-%{release}
%description -n labltk
Objective Caml is a high-level, strongly-typed, functional and
object-oriented programming language from the ML family of languages.
This package comprises two batch compilers (a fast bytecode compiler
and an optimizing native-code compiler), an interactive top level
system, Lex&Yacc tools, a replay debugger, and a comprehensive library.
Authors:
--------
Pierre Weis <Pierre.Weis@inria.fr>
%package -n camlp4
License: GPL v2 or later; THE Q PUBLIC LICENSE (QPL)
Group: Development/Languages/Other
Summary: The Objective Caml compiler and programming environment
Requires: ocaml = %{version}-%{release}
%description -n camlp4
Objective Caml is a high-level, strongly-typed, functional and
object-oriented programming language from the ML family of languages.
This package comprises two batch compilers (a fast bytecode compiler
and an optimizing native-code compiler), an interactive toplevel
system, Lex&Yacc tools, a replay debugger, and a comprehensive library.
Authors:
--------
Pierre Weis <Pierre.Weis@inria.fr>
%package ocamldoc
License: GPL v2 or later; THE Q PUBLIC LICENSE (QPL)
Group: Development/Languages/Other
Summary: The Objective Caml Compiler and Programming Environment
Requires: ocaml = %{version}-%{release}
%description ocamldoc
Objective Caml is a high-level, strongly-typed, functional and
object-oriented programming language from the ML family of languages.
This package comprises two batch compilers (a fast bytecode compiler
and an optimizing native-code compiler), an interactive top level
system, Lex&Yacc tools, a replay debugger, and a comprehensive library.
Authors:
--------
Pierre Weis <Pierre.Weis@inria.fr>
%package emacs
License: GPL v2 or later; THE Q PUBLIC LICENSE (QPL)
Group: Development/Languages/Other
Summary: The Objective Caml Compiler and Programming Environment
Requires: ocaml = %{version}-%{release}
Requires: emacs
%description emacs
Objective Caml is a high-level, strongly-typed, functional and
object-oriented programming language from the ML family of languages.
This package comprises two batch compilers (a fast bytecode compiler
and an optimizing native-code compiler), an interactive top level
system, Lex&Yacc tools, a replay debugger, and a comprehensive library.
Authors:
--------
Pierre Weis <Pierre.Weis@inria.fr>
%package docs
License: GPL v2 or later; THE Q PUBLIC LICENSE (QPL)
Group: Development/Languages/Other
Summary: The Objective Caml Compiler and Programming Environment
Requires: ocaml = %{version}-%{release}
%description docs
Objective Caml is a high-level, strongly-typed, functional and
object-oriented programming language from the ML family of languages.
This package comprises two batch compilers (a fast bytecode compiler
and an optimizing native-code compiler), an interactive top level
system, Lex&Yacc tools, a replay debugger, and a comprehensive library.
Authors:
--------
Pierre Weis <Pierre.Weis@inria.fr>
%prep
%setup -q -T -b 0
%setup -q -T -D -a 1
%setup -q -T -D -a 3
%patch0 -p1
gzip -d infoman/ocaml.info.gz
%patch1 -p1
%patch2 -p1
%patch3
%patch4
%patch5
%patch6
%patch7
%patch8
%patch9
%patch64 -p1
find -name ".cvsignore" | xargs -r rm -f
%build
%ifarch %ix86
export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -O0"
%endif
./configure -bindir %{_bindir} \
-libdir %{_libdir}/ocaml \
-mandir %{_mandir} \
-x11include %{_includedir} \
-x11lib %{_libdir}
#
make world
%if %{do_opt}
make opt ocamlc.opt ocamlopt.opt
%endif
%install
make install BINDIR="$RPM_BUILD_ROOT%{_bindir}" LIBDIR="$RPM_BUILD_ROOT%{_libdir}/ocaml" MANDIR="$RPM_BUILD_ROOT%{_mandir}"
%if %{do_opt}
make installopt BINDIR="$RPM_BUILD_ROOT%{_bindir}" LIBDIR="$RPM_BUILD_ROOT%{_libdir}/ocaml" MANDIR="$RPM_BUILD_ROOT%{_mandir}"
%endif
#
install -d $RPM_BUILD_ROOT%{_infodir} \
$RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp
(cd emacs
make install BINDIR=$RPM_BUILD_ROOT/%{_bindir} EMACSDIR=$RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp
make install-ocamltags BINDIR=$RPM_BUILD_ROOT/%{_bindir}
)
(cd infoman; cp -f ocaml* $RPM_BUILD_ROOT%{_infodir})
# fix bnc#411232
echo '(load "ocaml.el" nil t t)' >$RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/suse-start-ocaml.el
cat <<EOF >$RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/%{name}.el
(autoload 'caml-mode "caml" "Caml editing mode" t)
(add-hook 'caml-mode-hook 'font-lock-mode)
(add-to-list 'auto-mode-alist '("\\\\.mli?$" . caml-mode))
EOF
export EXCLUDE_FROM_STRIP="ocamldebug ocamlbrowser"
sed s,$RPM_BUILD_ROOT,,g < $RPM_BUILD_ROOT%{_libdir}/ocaml/ld.conf >/tmp/buildroot_sucks_ass
mv /tmp/buildroot_sucks_ass $RPM_BUILD_ROOT%{_libdir}/ocaml/ld.conf
sed -i -e "s@$RPM_BUILD_ROOT@@" $RPM_BUILD_ROOT/%{_libdir}/ocaml/Makefile.config
%post
%install_info --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
%postun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
%doc Changes LICENSE README
%{_bindir}/*
%{_mandir}/*/*
%{_libdir}/ocaml
%{_infodir}/*
%exclude %{_bindir}/camlp4*
%exclude %{_bindir}/mkcamlp4
%exclude %{_bindir}/labltk
%exclude %{_bindir}/ocamltags
%exclude %{_bindir}/ocamlbrowser
%exclude %{_bindir}/ocamldoc*
%exclude %{_libdir}/ocaml/camlp4
%exclude %{_libdir}/ocaml/labltk
%exclude %{_libdir}/ocaml/ocamldoc
%exclude %{_libdir}/ocaml/stublibs/dlllabltk.so
%exclude %{_libdir}/ocaml/stublibs/dlltkanim.so
%files -n labltk
%defattr(-,root,root,-)
%{_bindir}/labltk
%{_bindir}/ocamlbrowser
%{_libdir}/ocaml/labltk
%{_libdir}/ocaml/stublibs/dlllabltk.so
%{_libdir}/ocaml/stublibs/dlltkanim.so
%doc otherlibs/labltk/examples_labltk
%doc otherlibs/labltk/examples_camltk
%files -n camlp4
%defattr(-,root,root,-)
%{_bindir}/camlp4*
%{_bindir}/mkcamlp4
%{_libdir}/ocaml/camlp4
%files ocamldoc
%defattr(-,root,root,-)
%{_bindir}/ocamldoc*
%{_libdir}/ocaml/ocamldoc
%doc ocamldoc/Changes.txt
%files docs
%defattr(-,root,root,-)
%doc htmlman
%files emacs
%defattr(-,root,root,-)
%doc emacs/README
%dir %{_datadir}/emacs
%dir %{_datadir}/emacs/site-lisp
%{_datadir}/emacs/site-lisp/*
%{_bindir}/ocamltags
%changelog
* Thu Jul 24 2008 anicka@suse.cz
- fix loading caml-mode in emacs (bnc#411232)
* Thu Jul 10 2008 olh@suse.de
- build also on ppc64 (fate#304103)
* Wed Apr 09 2008 anicka@suse.cz
- update to 3.10.2
* PR#1217 (partial) Typo in ocamldep man page
* PR#3952 (partial) ocamlopt: allocation problems on ARM
* PR#4339 (continued) ocamlopt: problems on HPPA
* PR#4455 str.mli not installed under Windows
* PR#4473 crash when accessing float array with polymorphic method
* PR#4480 runtime would not compile without gcc extensions
* PR#4481 wrong typing of exceptions with object arguments
* PR#4490 typo in error message
* Random crash on 32-bit when major_heap_increment >= 2^22
* Big performance bug in Weak hashtables
* Small bugs in the make-package-macosx script
* Bug in typing of polymorphic variants (reported on caml-list)
* Mon Apr 07 2008 anicka@suse.cz
- fix build for tk 8.5
* Mon Mar 10 2008 anicka@suse.cz
- update to 3.10.1
- made configure script work on PlayStation 3
- ARM port: brought up-to-date for Debian 4.0 (Etch)
- many other small changes and bugfixes in camlp4, ocamlbuild, labltk,
emacs files,
- Added virtual instance variables in classes "val virtual v : t"
* Changed the behaviour of instance variable overriding; the new
definition replaces the old one, rather than creating a new
variable.
- ocamlbuild: compilation manager for OCaml applications and libraries.
See draft documentation at http://gallium.inria.fr/~pouillar/
* Camlp4: heavily revised implementation, new API.
- Faster type-checking of functor applications.
- Referencing an interface compiled with -rectypes from a module
not compiled with -rectypes is now an error.
- Revised the "fragile matching" warning.
- Print a stack backtrace on an uncaught exception.
(Compile and link with ocamlopt -g; execute with OCAMLRUNPARAM=b.)
Supported on Intel/AMD in 32 and 64 bits, PPC in 32 and 64 bits.
- Stack overflow detection on MS Windows 32 bits (courtesy O. Andrieu).
- Stack overflow detection on MacOS X PPC and Intel.
- Intel/AMD 64 bits: generate position-independent code by default.
- Fixed bug involving -for-pack and missing .cmx files (PR#4124).
- Fixed bug causing duplication of literals (PR#4152).
- C/Caml interface functions take "char const *" arguments
instead of "char *" when appropriate.
- Faster string comparisons (fast case if strings are ==).
* Wed Nov 28 2007 ro@suse.de
- added -O0 to optflags for now on x86 (#343760)
* Sun Nov 04 2007 ro@suse.de
- updated rpmlintrc
* Fri Jun 15 2007 ro@suse.de
- clean up specfile a bit (thanks to dirk stoecker)
* Wed May 16 2007 ro@suse.de
- split up package similar to f-e
- update to 3.09.3
* featurelist
- ocamldoc: name resolution in cross-referencing {!name}: if name is not
found, then it is searched in the parent module/class, and in the parent
of the parent, and so on until it is found.
- ocamldoc: new option -short-functors to use a short form to display
functors in html generator PR#4017
- ocamlprof: added "-version" option
- ported to MacOS X on Intel PR#3985
- configure: added support for GNU Hurd PR#3991
- otherlibs/labltk: browser uses menu bars instead of menu buttons
- Introduction of private row types, for abstracting the row in object
and variant types.
- configure: find X11 config in some 64-bit Linux distribs
- ocamldoc: (**/**) can be canceled with another (**/**) PR#3665
- graphics: added resize_window
- graphics: check for invalid arguments to drawing primitives PR#3595
- ocamlbrowser: use windows subsystem on mingw
* disruptive changes
* Revised implementation of the -pack option (packing of several compilation
units into one). The .cmx files that are to be packed with
"ocamlopt -pack -o P.cmx" must be compiled with "ocamlopt -for-pack P".
In exchange for this additional constraint, ocamlopt -pack is now
available on all platforms (no need for binutils).
* Fixed wrong evaluation order for arguments to certain inlined functions.
* Thu Mar 29 2007 rguenther@suse.de
- add emacs site-lisp directories
* Fri Mar 23 2007 rguenther@suse.de
- add gdbm-devel and ncurses-devel BuildRequires
* Thu Aug 17 2006 cthiel@suse.de
- fix build with X.Org 7.1
* Wed Jan 25 2006 mls@suse.de
- converted neededforbuild to BuildRequires
* Thu May 12 2005 ro@suse.de
- update to 3.08.3
- reduce register pressure in bng_ia32.c (thanks to matz)
* Tue Sep 14 2004 jj@suse.de
- version update (done by pthomas)
* Wed Apr 28 2004 ro@suse.de
- added -fno-strict-aliasing also to native build
* Mon Apr 19 2004 mmj@suse.de
- declare void functions as such
* Sat Jan 10 2004 adrian@suse.de
- use x-devel-packages
* Sat Jun 21 2003 mmj@suse.de
- Own all dirs
* Wed May 21 2003 coolo@suse.de
- fix man page installation
* Thu Apr 24 2003 ro@suse.de
- fix install_info --delete call and move from preun to postun
* Mon Apr 07 2003 mmj@suse.de
- head -1 is head -n 1 with the new coreutils
* Tue Feb 11 2003 mmj@suse.de
- Use %%install_info macro [#23440]
* Tue Sep 17 2002 uli@suse.de
- update -> 3.0.6 (needed for mldonkey)
* Mon Jun 17 2002 meissner@suse.de
- copy over config.* from libtool repository and other ppc64 fixes.
* Tue May 28 2002 ro@suse.de
- fix installation in camlp4 directory (bindir was without
buildroot prefix)
* Fri May 24 2002 mmj@suse.de
- Disabling build of optional architecture specific stuff on plat-
forms where ocaml does not procide the necessary asm parts.
* Wed May 15 2002 schwab@suse.de
- Fix neededforbuild.
* Mon May 13 2002 mmj@suse.de
- Update to 3.04, maily bugfix release
* Tue Jan 15 2002 schwab@suse.de
- Fix for ia64.
* Thu Aug 16 2001 grimmer@suse.de
- initial SuSE package (version 3.02), added to be able to build
package "unison"
- spec file derived from Mandrake Linux source RPM (thanks, pixel!)