%define majorminor %(echo %version | cut -d. -f 1-2) Name: ocaml Version: 4.11.1 Release: 5mamba Summary: The OCaml compiler and programming environment Group: Applications/Development Vendor: openmamba Distribution: openmamba Packager: Davide Madrisan URL: http://www.ocaml.org Source0: http://caml.inria.fr/pub/distrib/ocaml-%{majorminor}/ocaml-%{version}.tar.xz Source1: http://caml.inria.fr/pub/distrib/ocaml-%{majorminor}/ocaml-%{majorminor}-refman.pdf Source2: http://caml.inria.fr/pub/distrib/ocaml-%{majorminor}/ocaml-%{majorminor}-refman-html.tar.gz Source3: http://caml.inria.fr/pub/distrib/ocaml-%{majorminor}/ocaml-%{majorminor}-refman.info.tar.gz License: LGPL ## AUTOBUILDREQ-BEGIN BuildRequires: glibc-devel BuildRequires: libz-devel ## AUTOBUILDREQ-END BuildRequires: emacs-nox #BuildRequires: ocaml-runtime >= %{?epoch:%epoch:}%{version} BuildRequires: libgdbm-devel Requires: %{name}-runtime = %{?epoch:%epoch:}%{version}-%{release} Requires: gcc # From Fedora: # Because we pass -c flag to ocaml-find-requires (to avoid circular # dependencies) we also have to explicitly depend on the right version # of ocaml-runtime. Requires: ocaml-runtime = %{?epoch:%epoch:}%{version}-%{release} Provides: ocaml(compiler) = %{version} %global __ocaml_requires_opts -c -f '%{buildroot}%{_bindir}/ocamlrun %{buildroot}%{_bindir}/ocamlobjinfo.byte' %global __ocaml_provides_opts -f '%{buildroot}%{_bindir}/ocamlrun %{buildroot}%{_bindir}/ocamlobjinfo.byte' BuildRoot: %{_tmppath}/%{name}-%{version}-root # FIXME: # # BFD library not found, 'objinfo' will be unable to display info on .cmxs files # ./hasgot -i bfd.h && \ # ./hasgot -lbfd -ldl -liberty -lz bfd_openr; then %description OCaml is a general-purpose programming language, designed with program safety and reliability in mind. It is very expressive, yet easy to learn and use. OCaml supports functional, imperative, and object-oriented programming styles. It has been developed and distributed by INRIA, France's national research institute for computer science, since 1985. This package provides in particular the following tools: * ocamlc: the OCaml batch compiler, * ocamlopt: the OCaml high-performance native-code compiler, * ocamldep: the dependency generator (in a format suitable for the make utility), * ocaml: the interactive (command-line) toplevel system, * ocamlmktop: builds OCaml toplevels that contain user code preloaded at start-up, * ocamllex: the OCaml lexical analyser, very close to lex, * ocamlyacc: the OCaml parser generator, in the style yacc. * ocamldebug: the OCaml source-level replay debugger, * ocamlprof: the OCaml profiling tool, for programs compiled in profiling mode by using either ocamlcp: the front-end to the ocamlc compiler or ocamloptp: the front-end to the ocamlopt compiler, * ocamlbuild: automates the compilation of most OCaml projects with minimal user intervention, * ocamlmklib: a tool for building mixed C/OCaml libraries * ocamlobjinfo: a tool for displaying informations on files %package runtime Group: Applications/Development Summary: OCaml runtime environment Provides: ocaml(runtime) = %{?epoch:%epoch:}%{version}-%{release} %description runtime This package contains the runtime environment needed to run OCaml bytecode. In particular the OCaml bytecode interpreter: ocamlrun. %package source Summary: Source code for OCaml libraries Requires: ocaml = %{?epoch:%epoch:}%{version}-%{release} %description source Source code for OCaml libraries. %package compiler-libs Summary: Compiler libraries for OCaml Requires: ocaml = %{?epoch:%epoch:}%{version}-%{release} %description compiler-libs OCaml is a high-level, strongly-typed, functional and object-oriented programming language from the ML family of languages. This package contains some modules used internally by the OCaml compilers, useful for the development of some OCaml applications. Note that this exposes internal details of the OCaml compiler which may not be portable between versions. %package camlp4 Summary: Pre-Processor-Pretty-Printer for OCaml Requires: %{name}-runtime = %{?epoch:%epoch:}%{version}-%{release} %description camlp4 Camlp4 is a Pre-Processor-Pretty-Printer for OCaml, parsing a source file and printing some result on standard output. This package contains the runtime files. %package camlp4-devel Summary: Pre-Processor-Pretty-Printer for OCaml Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} Requires: %{name}-camlp4 = %{?epoch:%epoch:}%{version}-%{release} %description camlp4-devel Camlp4 is a Pre-Processor-Pretty-Printer for OCaml, parsing a source file and printing some result on standard output. RPM_OPT_FLAGS=`$RPM_OPT_FLAGS | sed "s|-fomit-frame-pointer||" export RPM_OPT_FLAGS This package contains the development files. %package x11 Summary: X11 support for OCaml Requires: %{name}-runtime = %{?epoch:%epoch:}%{version}-%{release} Requires: libX11-devel %description x11 X11 support for OCaml. %package labltk Group: Applications/Development Summary: Tk bindings for OCaml Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} %description labltk Labltk is a library for interfacing OCaml with the scripting language Tcl/Tk. This package contains the runtime files. %package labltk-devel Group: Development/Libraries Summary: Development files for labltk Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} Requires: %{name}-labltk = %{?epoch:%epoch:}%{version}-%{release} Requires: libX11-devel Requires: libtcl-devel Requires: libtk-devel %description labltk-devel Labltk is a library for interfacing OCaml with the scripting language Tcl/Tk. This package contains the development files. %package emacs Group: Applications/Development Summary: Emacs mode for OCaml Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} Requires: emacs-nox %description emacs Emacs mode for OCaml. %package ocamldoc Group: Applications/Development Summary: Documentation generator for OCaml Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} %description ocamldoc Documentation generator for OCaml. %package docs Group: Documentation Summary: Documentation for OCaml Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} Requires(post): %{__install_info} Requires(preun): %{__install_info} Provides: %{name}-manual = %{?epoch:%epoch:}%{version}-%{release} Obsoletes: %{name}-manual %description docs OCaml is a general-purpose programming language, designed with program safety and reliability in mind. This package contains documentation in PDF and HTML format as well as man pages and info files. %debug_package %global __ocaml_requires_opts -c -f '%{buildroot}%{_bindir}/ocamlrun %{buildroot}%{_bindir}/ocamlobjinfo.byte' %global __ocaml_provides_opts -f '%{buildroot}%{_bindir}/ocamlrun %{buildroot}%{_bindir}/ocamlobjinfo.byte' %prep %setup -q -a2 -a3 -D -T :<< _EOF cp %{S:1} refman.pdf %build :<< _EOF %configure \ --libdir=%{_libdir}/ocaml \ --with-pic #./configure \ # -host %{_host} \ #%ifnarch arm # -cc "gcc ${RPM_OPT_FLAGS}" \ #%endif # -bindir %{_bindir} \ # -libdir %{_libdir}/ocaml \ # -mandir %{_mandir}/man1 %make -j1 world.opt #% make -j1 -C emacs ocamltags %make -j1 -C ocamldoc all %install [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" %makeinstall \ LIBDIR=%{_libdir}/ocaml #cd emacs #%makeinstall \ # BINDIR=%{buildroot}%{_bindir} \ # EMACSDIR=%{buildroot}%{_datadir}/emacs/site-lisp #make install-ocamltags BINDIR=%{buildroot}%{_bindir} #cd .. mkdir -p %{buildroot}%{_infodir} cd infoman cp ocaml*.gz %{buildroot}%{_infodir} %clean [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" %post docs %install_info %{name}.info exit 0 %preun docs if [ $1 -eq 0 ]; then %uninstall_info %{name}.info fi exit 0 %files %defattr(-,root,root) %{_bindir}/ocaml #%{_bindir}/ocamlbuild #%{_bindir}/ocamlbuild.byte #%{_bindir}/ocamlbuild.native %{_bindir}/ocamlc %{_bindir}/ocamlc.byte %{_bindir}/ocamlc.opt %{_bindir}/ocamlcmt %{_bindir}/ocamlcp.byte %{_bindir}/ocamlcp.opt %{_bindir}/ocamldep.byte %{_bindir}/ocamllex.byte %{_bindir}/ocamlmklib.byte %{_bindir}/ocamlmklib.opt %{_bindir}/ocamlmktop.byte %{_bindir}/ocamlmktop.opt %{_bindir}/ocamlobjinfo.byte %{_bindir}/ocamlobjinfo.opt %{_bindir}/ocamlopt.byte %{_bindir}/ocamlprof.byte %{_bindir}/ocamlprof.opt %{_bindir}/ocamlcp %{_bindir}/ocamldebug %{_bindir}/ocamldep %{_bindir}/ocamldep.opt %{_bindir}/ocamllex %{_bindir}/ocamllex.opt %{_bindir}/ocamlmklib %{_bindir}/ocamlmktop %{_bindir}/ocamlobjinfo %{_bindir}/ocamlopt %{_bindir}/ocamlopt.opt %{_bindir}/ocamloptp %{_bindir}/ocamloptp.byte %{_bindir}/ocamloptp.opt %{_bindir}/ocamlprof %{_bindir}/ocamlyacc #%{_bindir}/ocaml-instr-graph #%{_bindir}/ocaml-instr-report # %{_libdir}/ocaml/camlheader %{_libdir}/ocaml/camlheader_ur %{_libdir}/ocaml/expunge %{_libdir}/ocaml/extract_crc %{_libdir}/ocaml/eventlog_metadata %{_libdir}/ocaml/ld.conf %{_libdir}/ocaml/Makefile.config %{_libdir}/ocaml/*.a %{_libdir}/ocaml/*.cmxs %{_libdir}/ocaml/*.cmxa %{_libdir}/ocaml/*.cmx %{_libdir}/ocaml/*.o %{_libdir}/ocaml/*.mli %{_libdir}/ocaml/libcamlrun_shared.so %{_libdir}/ocaml/libasmrun_shared.so %{_libdir}/ocaml/objinfo_helper #%{_libdir}/ocaml/vmthreads/*.a #%{_libdir}/ocaml/vmthreads/*.mli %{_libdir}/ocaml/threads/*.a %{_libdir}/ocaml/threads/*.cmx %{_libdir}/ocaml/threads/*.cmxa %{_libdir}/ocaml/threads/*.cmti %{_libdir}/ocaml/threads/*.mli %{_libdir}/ocaml/caml %{_mandir}/man1/ocaml.* %{_mandir}/man1/ocamlc.* %{_mandir}/man1/ocamlcp.* %{_mandir}/man1/ocamldebug.* %{_mandir}/man1/ocamldep.* %{_mandir}/man1/ocamllex.* %{_mandir}/man1/ocamlmktop.* %{_mandir}/man1/ocamlopt.* %{_mandir}/man1/ocamloptp.* %{_mandir}/man1/ocamlprof.* %{_mandir}/man1/ocamlyacc.* %files runtime %defattr(-,root,root) %{_bindir}/ocamlrun %{_bindir}/ocamlrund %{_bindir}/ocamlruni %dir %{_libdir}/ocaml %{_libdir}/ocaml/VERSION %{_libdir}/ocaml/*.cmo %{_libdir}/ocaml/*.cmi %{_libdir}/ocaml/*.cma %{_libdir}/ocaml/camlheaderd %{_libdir}/ocaml/camlheaderi %dir %{_libdir}/ocaml/stublibs %{_libdir}/ocaml/stublibs/dllcamlstr.so %{_libdir}/ocaml/stublibs/dllthreads.so %{_libdir}/ocaml/stublibs/dllunix.so %ifarch x86_64 aarch64 %{_libdir}/ocaml/stublibs/dllraw_spacetime_lib.so %endif %dir %{_libdir}/ocaml/threads %{_libdir}/ocaml/threads/*.cmi %{_libdir}/ocaml/threads/*.cma %dir %{_libdir}/ocaml/compiler-libs %{_libdir}/ocaml/compiler-libs/*.cmi %{_libdir}/ocaml/compiler-libs/*.cmo %{_libdir}/ocaml/compiler-libs/*.cma %{_mandir}/man1/ocamlrun.* %doc LICENSE %files source %defattr(-,root,root) %{_libdir}/ocaml/*.ml %{_libdir}/ocaml/*.cmt %{_libdir}/ocaml/*.cmti %files compiler-libs %defattr(-,root,root) %{_libdir}/ocaml/compiler-libs/*.mli %{_libdir}/ocaml/compiler-libs/*.cmt %{_libdir}/ocaml/compiler-libs/*.cmti %{_libdir}/ocaml/compiler-libs/*.a %{_libdir}/ocaml/compiler-libs/*.cmx %{_libdir}/ocaml/compiler-libs/*.cmxa %{_libdir}/ocaml/compiler-libs/*.o #%files x11 #%defattr(-,root,root) #%{_libdir}/ocaml/graphicsX11.cmi #%{_libdir}/ocaml/graphicsX11.mli #%files emacs #%defattr(-,root,root) #%{_datadir}/emacs/site-lisp/* #%{_bindir}/ocamltags ##%doc emacs/README %files ocamldoc %defattr(-,root,root) %{_bindir}/ocamldoc* %{_libdir}/ocaml/ocamldoc %{_mandir}/man1/ocamldoc.* %files docs %defattr(-,root,root) %{_infodir}/* %{_mandir}/man3/* #%doc Changes #%doc refman.pdf htmlman %changelog * Mon Apr 26 2021 Silvan Calarco 4.11.1-5mamba - workaround ocaml-runtime requiring ocaml-compiler-libs by moving needed files into ocaml-runtime * Sat Apr 24 2021 Silvan Calarco 4.11.1-4mamba - added subpackages ocaml-source and ocaml-compiler-libs * Thu Apr 22 2021 Silvan Calarco 4.11.1-3mamba - rebuilt with recent rpm ocamldeps * Thu Jan 21 2021 Silvan Calarco 4.11.1-2mamba - rebuilt to fix provides * Sun Oct 18 2020 Automatic Build System 4.11.1-1mamba - automatic version update by autodist * Sat Oct 17 2020 Silvan Calarco 4.11.0-1mamba - update to 4.11.0 * Mon Dec 30 2019 Silvan Calarco 4.09.0-4mamba - rebuilt with recent gcc and --with-pic * Fri Nov 22 2019 Silvan Calarco 4.09.0-3mamba - ocaml-runtime: add provide ocaml(runtime) * Fri Nov 22 2019 Silvan Calarco 4.09.0-2mamba - rebuilt with ocaml-runtime 4.09.0 to fix requirement on previous version * Fri Nov 15 2019 Automatic Build System 4.09.0-1mamba - automatic version update by autodist * Thu Apr 25 2019 Automatic Build System 4.07.1-1mamba - automatic version update by autodist * Sun Apr 21 2019 Silvan Calarco 4.07.0-1mamba - update to 4.07.0 * Tue Jan 21 2014 Silvan Calarco 4.01.0-2mamba - labtk-devel: require libtcl-devel and libtk-devel instead of libtcl85-devel and libtk85-devel * Sun Nov 24 2013 Automatic Build System 4.01.0-1mamba - automatic version update by autodist * Tue Jul 09 2013 Davide Madrisan 4.00.1-4mamba - new subpackage runtime, camlp4, camlp4-devel, x11, and ocamldoc - build requires libtcl85-devel and libtk85-devel * Mon Jul 01 2013 Automatic Build System 4.00.1-3mamba - pass -host option to configure to build for arm generic and fix rpi target * Mon Jun 24 2013 Silvan Calarco 4.00.1-2mamba - added labltk and emacs subpackages * Mon Jun 17 2013 Davide Madrisan 4.00.1-1mamba - update to 4.00.1 * Wed Oct 24 2012 Silvan Calarco 3.12.1-4mamba - rebuilt with binutils 2.23 * Wed Nov 30 2011 Automatic Build System 3.12.1-3mamba - automatic update by autodist * Mon Nov 28 2011 Automatic Build System 3.12.1-2mamba - automatic update by autodist * Tue Jul 19 2011 Automatic Build System 3.12.1-1mamba - automatic update by autodist * Sun Dec 26 2010 Automatic Build System 3.12.0-2mamba - automatic update by autodist * Fri Dec 17 2010 Silvan Calarco 3.12.0-1mamba - update to 3.12.0 * Tue Feb 09 2010 Automatic Build System 3.11.2-1mamba - automatic update by autodist * Fri Nov 13 2009 Davide Madrisan 3.11.1-2mamba - fix compilation issues - build ocamlopt * Fri Jun 26 2009 Automatic Build System 3.11.1-1mamba - automatic update by autodist * Mon Dec 08 2008 Silvan Calarco 3.11.0-1mamba - update to 3.11.0 * Mon Dec 08 2008 Silvan Calarco 3.10.2-1mamba - automatic update by autodist * Mon Nov 05 2007 Aleph0 3.10.0-3mamba - rebuild * Sat Sep 29 2007 Aleph0 3.10.0-2mamba - add official reference manual * Fri Sep 28 2007 Aleph0 3.10.0-1mamba - update to 3.10.0 * Fri Mar 02 2007 Aleph0 3.09.3-1qilnx - package created by autospec