fix i586 build: use make world (bytecode only) and exclude native-only files from %files

ignore Dynlink_cmo_format and Dynlink_cmxs_format in __ocaml_requires_opts (internal dynlink modules, approach from CentOS Stream) [release 5.4.1-3mamba;Thu Apr 30 2026]
This commit is contained in:
2026-05-05 22:18:31 +02:00
parent 82cfe9625f
commit bc688a0368
3 changed files with 149 additions and 95 deletions
Binary file not shown.
Binary file not shown.
+149 -95
View File
@@ -1,14 +1,14 @@
%define majorminor %(echo %version | cut -d. -f 1-2)
Name: ocaml
Version: 4.14.1
Release: 2mamba
Version: 5.4.1
Release: 3mamba
Summary: The OCaml compiler and programming environment
Group: Applications/Development
Vendor: openmamba
Distribution: openmamba
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
URL: https://www.ocaml.org/
Packager: Silvan Calarco <silvan@openmamba.org>
URL: https://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
@@ -16,9 +16,10 @@ Source3: http://caml.inria.fr/pub/distrib/ocaml-%{majorminor}/ocaml-%{majo
License: LGPL
## AUTOBUILDREQ-BEGIN
BuildRequires: glibc-devel
BuildRequires: libgcc
BuildRequires: libzstd-devel
## AUTOBUILDREQ-END
BuildRequires: emacs-nox
#BuildRequires: ocaml-runtime >= %{?epoch:%epoch:}%{version}
BuildRequires: libgdbm-devel
Requires: %{name}-runtime = %{?epoch:%epoch:}%{version}-%{release}
Requires: gcc
@@ -27,8 +28,15 @@ Requires: gcc
# 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'
Provides: ocaml(compiler) = %{version}
# OCaml 5 exposes Seq as a stdlib alias but does not install seq.cmi.
# Provide the interface hash explicitly so dependent packages can resolve it.
Provides: ocaml(Seq) = d501be6def44505b4b6cae26de0c9204
%ifarch %{ix86}
%global __ocaml_requires_opts -c -f '%{buildroot}%{_bindir}/ocamlrun %{buildroot}%{_bindir}/ocamlobjinfo.byte' -i Dynlink_cmo_format -i Dynlink_cmxs_format -i Backend_intf -i Inlining_decision_intf -i Simplify_boxed_integer_ops_intf
%else
%global __ocaml_requires_opts -c -f '%{buildroot}%{_bindir}/ocamlrun %{buildroot}%{_bindir}/ocamlobjinfo.byte' -i Dynlink_cmo_format -i Dynlink_cmxs_format
%endif
%global __ocaml_provides_opts -f '%{buildroot}%{_bindir}/ocamlrun %{buildroot}%{_bindir}/ocamlobjinfo.byte'
# FIXME:
@@ -123,7 +131,6 @@ 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
@@ -163,41 +170,37 @@ Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
Requires(post): %{__install_info}
Requires(preun): %{__install_info}
Provides: ocaml-manual
Obsoletes: ocaml-manual < 4.14.1
Obsoletes: ocaml-manual < 4.14.0
%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'
%ifarch %{ix86}
%global __ocaml_requires_opts -c -f '%{buildroot}%{_bindir}/ocamlrun %{buildroot}%{_bindir}/ocamlobjinfo.byte' -i Dynlink_cmo_format -i Dynlink_cmxs_format -i Backend_intf -i Inlining_decision_intf -i Simplify_boxed_integer_ops_intf
%else
%global __ocaml_requires_opts -c -f '%{buildroot}%{_bindir}/ocamlrun %{buildroot}%{_bindir}/ocamlobjinfo.byte' -i Dynlink_cmo_format -i Dynlink_cmxs_format
%endif
%global __ocaml_provides_opts -f '%{buildroot}%{_bindir}/ocamlrun %{buildroot}%{_bindir}/ocamlobjinfo.byte'
%prep
%setup -q -a2 -a3
#-D -T
#% setup -q -D -T
#:<< _EOF
cp %{S:1} refman.pdf
%build
#:<< _EOF
:<< _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
%ifarch %{ix86}
%make -j1 world
%else
%make -j1 world.opt
#% make -j1 -C emacs ocamltags
%make -j1 -C ocamldoc all
%endif
%install
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
@@ -205,13 +208,6 @@ cp %{S:1} refman.pdf
%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}
@@ -221,73 +217,97 @@ cp ocaml*.gz %{buildroot}%{_infodir}
%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}/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}/ocamlprof
%{_bindir}/ocamlyacc
%{_libdir}/ocaml/expunge
%{_libdir}/ocaml/ld.conf
%{_libdir}/ocaml/Makefile.config
%{_libdir}/ocaml/*.mli
%{_libdir}/ocaml/libcamlrun_shared.so
%ifarch %{ix86}
%{_libdir}/ocaml/libcaml*.a
%{_libdir}/ocaml/libthreads.a
%{_libdir}/ocaml/libunixbyt.a
%{_libdir}/ocaml/runtime-launch-info
%{_libdir}/ocaml/runtime_events/runtime_events.mli
%{_libdir}/ocaml/str/str.mli
%{_libdir}/ocaml/threads/event.cmti
%{_libdir}/ocaml/threads/event.mli
%{_libdir}/ocaml/threads/thread.cmti
%{_libdir}/ocaml/threads/thread.mli
%{_libdir}/ocaml/unix/unix.mli
%{_libdir}/ocaml/unix/unixLabels.mli
%endif
%{_libdir}/ocaml/sys.ml.in
%{_libdir}/ocaml/caml
%ifnarch %{ix86}
%{_bindir}/ocamlc.opt
%{_bindir}/ocamlobjinfo.opt
%{_bindir}/ocamlopt.byte
%{_bindir}/ocamldep.opt
%{_bindir}/ocamllex.opt
%{_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/dynlink/*.a
%{_libdir}/ocaml/dynlink/*.cmx
%{_libdir}/ocaml/dynlink/*.cmxa
%endif
%{_libdir}/ocaml/dynlink/*.mli
%ifnarch %{ix86}
%{_libdir}/ocaml/profiling/*.cmx
%{_libdir}/ocaml/profiling/*.o
%{_libdir}/ocaml/runtime_events/*.a
%{_libdir}/ocaml/runtime_events/*.cmx
%{_libdir}/ocaml/runtime_events/*.cmxa
%{_libdir}/ocaml/runtime_events/*.cmxs
%{_libdir}/ocaml/runtime_events/*.mli
%{_libdir}/ocaml/runtime-launch-info
%{_libdir}/ocaml/str/*.a
%{_libdir}/ocaml/str/*.cmx
%{_libdir}/ocaml/str/*.cmxa
%{_libdir}/ocaml/str/*.cmxs
%{_libdir}/ocaml/str/*.mli
%{_libdir}/ocaml/unix/*.a
%{_libdir}/ocaml/unix/*.cmx
%{_libdir}/ocaml/unix/*.cmxa
%{_libdir}/ocaml/unix/*.cmxs
%{_libdir}/ocaml/unix/*.mli
%{_libdir}/ocaml/threads/*.a
%{_libdir}/ocaml/threads/*.cmx
%{_libdir}/ocaml/threads/*.cmxa
%{_libdir}/ocaml/threads/*.cmti
%{_libdir}/ocaml/threads/*.mli
%{_libdir}/ocaml/caml
%endif
%{_mandir}/man1/ocaml.*
%{_mandir}/man1/ocamlc.*
%{_mandir}/man1/ocamlcp.*
@@ -306,30 +326,47 @@ fi
%{_bindir}/ocamlrund
%{_bindir}/ocamlruni
%dir %{_libdir}/ocaml
#%{_libdir}/ocaml/VERSION
%{_libdir}/ocaml/*.cmo
%{_libdir}/ocaml/*.cmi
%{_libdir}/ocaml/*.cma
%{_libdir}/ocaml/*.cmx
%{_libdir}/ocaml/camlheaderd
%{_libdir}/ocaml/camlheaderi
%dir %{_libdir}/ocaml/dynlink
%{_libdir}/ocaml/dynlink/META
%{_libdir}/ocaml/dynlink/*.cma
%{_libdir}/ocaml/dynlink/*.cmi
%{_libdir}/ocaml/dynlink/*.cmti
%dir %{_libdir}/ocaml/profiling
%{_libdir}/ocaml/profiling/*.cmi
%{_libdir}/ocaml/profiling/*.cmo
%{_libdir}/ocaml/profiling/*.cmt
%{_libdir}/ocaml/profiling/*.cmti
%dir %{_libdir}/ocaml/runtime_events
%{_libdir}/ocaml/runtime_events/META
%{_libdir}/ocaml/runtime_events/*.cma
%{_libdir}/ocaml/runtime_events/*.cmi
%{_libdir}/ocaml/runtime_events/*.cmti
%dir %{_libdir}/ocaml/stdlib
%{_libdir}/ocaml/stdlib/META
%dir %{_libdir}/ocaml/str
%{_libdir}/ocaml/str/META
%{_libdir}/ocaml/str/*.cma
%{_libdir}/ocaml/str/*.cmi
%{_libdir}/ocaml/str/*.cmti
%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
%{_libdir}/ocaml/stublibs/dll*.so
%dir %{_libdir}/ocaml/threads
%{_libdir}/ocaml/threads/META
%{_libdir}/ocaml/threads/*.cmi
%{_libdir}/ocaml/threads/*.cma
%{_libdir}/ocaml/threads/*.cmx
%{_libdir}/ocaml/unix/META
%{_libdir}/ocaml/unix/*.cma
%{_libdir}/ocaml/unix/*.cmi
%{_libdir}/ocaml/unix/*.cmti
%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
%doc LICENSE
%files source
%defattr(-,root,root)
@@ -339,24 +376,16 @@ fi
%files compiler-libs
%defattr(-,root,root)
%{_libdir}/ocaml/compiler-libs/META
%{_libdir}/ocaml/compiler-libs/*.mli
%{_libdir}/ocaml/compiler-libs/*.cmt
%{_libdir}/ocaml/compiler-libs/*.cmti
%ifnarch %{ix86}
%{_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
%endif
%files ocamldoc
%defattr(-,root,root)
@@ -371,15 +400,40 @@ fi
%dir %{_datadir}/doc/ocaml
%{_datadir}/doc/ocaml/*
#%doc Changes
#%doc refman.pdf htmlman
%changelog
* Sun Jul 30 2023 Silvan Calarco <silvan.calarco@mambasoft.it> 4.14.1-2mamba
- move *.cmx from ocaml to runtime package
* Thu Apr 30 2026 Claude <claude@openmamba.org> 5.4.1-3mamba
- fix i586 build: use make world (bytecode only) and exclude native-only files from %files
- ignore Dynlink_cmo_format and Dynlink_cmxs_format in __ocaml_requires_opts (internal dynlink modules, approach from CentOS Stream)
* Sat Jul 01 2023 Silvan Calarco <silvan.calarco@mambasoft.it> 4.14.1-1mamba
- update to 4.14.1
* Wed Apr 29 2026 Claude <claude@openmamba.org> 5.4.1-2mamba
- add Provides for ocaml(Seq) = d501be6def44505b4b6cae26de0c9204 (stdlib Seq alias not exposed as .cmi in OCaml 5)
* Tue Feb 17 2026 Automatic Build System <autodist@openmamba.org> 5.4.1-1mamba
- automatic version update by autodist
* Fri Oct 10 2025 Automatic Build System <autodist@openmamba.org> 5.4.0-2mamba
- automatic version update by autodist
* Fri Oct 10 2025 Automatic Build System <autodist@openmamba.org> 5.4.0-1mamba
- automatic version update by autodist
* Thu Jan 09 2025 Automatic Build System <autodist@openmamba.org> 5.3.0-1mamba
- automatic version update by autodist
* Sat Dec 07 2024 Automatic Build System <autodist@openmamba.org> 5.2.1-1mamba
- automatic version update by autodist
* Fri Dec 08 2023 Automatic Build System <autodist@mambasoft.it> 5.1.1-1mamba
- automatic version update by autodist
* Sat Sep 16 2023 Automatic Build System <autodist@mambasoft.it> 5.1.0-1mamba
- automatic version update by autodist
* Fri Jun 30 2023 Silvan Calarco <silvan.calarco@mambasoft.it> 5.0.0-2mamba
- bump release
* Fri Jun 30 2023 Silvan Calarco <silvan.calarco@mambasoft.it> 5.0.0-1mamba
- update to 5.0.0
* Mon Apr 26 2021 Silvan Calarco <silvan.calarco@mambasoft.it> 4.11.1-5mamba
- workaround ocaml-runtime requiring ocaml-compiler-libs by moving needed files into ocaml-runtime