+#
+# Conditional build:
+%bcond_without ocaml_opt # build opt
+
+%ifnarch %{ix86} %{x8664} arm aarch64 ppc sparc sparcv9
+%undefine with_ocaml_opt
+%endif
+
%define ocaml_ver 1:4.02
Summary: OCaml module manager
Summary(pl.UTF-8): Zarządca modułów OCamla
Name: ocaml-findlib
-Version: 1.5.5
-Release: 2
+Version: 1.6.2
+Release: 1
License: distributable
Group: Development/Tools
Source0: http://download.camlcity.org/download/findlib-%{version}.tar.gz
-# Source0-md5: 703eae112f9e912507c3a2f8d8c48498
+# Source0-md5: 530ff275d6b96e140f0d3a03ed14b68e
Patch0: %{name}-bytes.patch
+Patch1: %{name}-man.patch
URL: http://www.ocaml-programming.de/packages/
BuildRequires: m4
BuildRequires: ncurses-devel
BuildRequires: ocaml >= %{ocaml_ver}
BuildRequires: ocaml-camlp4
-BuildRequires: ocaml-labltk
+BuildRequires: ocaml-labltk-devel
BuildRequires: sed >= 4.0
%requires_eq ocaml
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+%if %{without ocaml_opt}
+%define no_install_post_strip 1
+# debug package strips binaries which renders ocamlfind broken
+%define _enable_debug_packages 0
+%endif
+
%description
The "findlib" library provides a scheme to manage reusable software
components (packages), and includes tools that support this scheme.
%prep
%setup -q -n findlib-%{version}
%patch0 -p1
+%patch1 -p1
%build
./configure \
sed -i -e 's/-g//' Makefile
-%{__make} -j1 all opt
+%{__make} -j1 all %{?with_ocaml_opt:opt}
%install
rm -rf $RPM_BUILD_ROOT
%{__rm} $RPM_BUILD_ROOT%{_libdir}/ocaml/site-lib/findlib/*.mli
-# now provided by ocaml-labltk.spec
-%{__rm} -r $RPM_BUILD_ROOT%{_libdir}/ocaml/site-lib/labltk
+# now provided by ocaml-labltk.spec (might not exist if building without ocaml-labltk installed)
+%{__rm} -rf $RPM_BUILD_ROOT%{_libdir}/ocaml/site-lib/labltk
# now provided by ocaml-dbm.spec (might not exist if building without ocaml-dbm installed)
%{__rm} -rf $RPM_BUILD_ROOT%{_libdir}/ocaml/site-lib/dbm
%config %{_sysconfdir}/ocamlfind.conf
%dir %{_libdir}/ocaml/findlib
%attr(755,root,root) %{_libdir}/ocaml/findlib/make_wizard
+%{_libdir}/ocaml/findlib/Makefile.config
%{_libdir}/ocaml/findlib/make_wizard.pattern
+%{_libdir}/ocaml/findlib/findlib.cma
+%{_libdir}/ocaml/findlib/findlib_dynload.cma
+%{_libdir}/ocaml/findlib/findlib_top.cma
+%if %{with ocaml_opt}
+%attr(755,root,root) %{_libdir}/ocaml/findlib/findlib.cmxs
+%attr(755,root,root) %{_libdir}/ocaml/findlib/findlib_dynload.cmxs
+%endif
%{_libdir}/ocaml/site-lib/findlib
# symlinks
%{_libdir}/ocaml/site-lib/libexec
%{_libdir}/ocaml/site-lib/num
%{_libdir}/ocaml/site-lib/num-top
%{_libdir}/ocaml/site-lib/ocamlbuild
+%{_libdir}/ocaml/site-lib/ocamldoc
%{_libdir}/ocaml/site-lib/stdlib
%{_libdir}/ocaml/site-lib/str
%{_libdir}/ocaml/site-lib/threads
%files devel
%defattr(644,root,root,755)
-%{_libdir}/ocaml/findlib/Makefile.config
-%{_libdir}/ocaml/findlib/*.cm[ixa]*
-%{_libdir}/ocaml/findlib/*.a
+%{_libdir}/ocaml/findlib/findlib.cmi
+%{_libdir}/ocaml/findlib/fl_*.cmi
+%{_libdir}/ocaml/findlib/topfind.cmi
+%if %{with ocaml_opt}
+%{_libdir}/ocaml/findlib/findlib.a
+%{_libdir}/ocaml/findlib/findlib.cmxa
+%{_libdir}/ocaml/findlib/findlib_dynload.a
+%{_libdir}/ocaml/findlib/findlib_dynload.cmxa
+%endif
%dir %{_libdir}/ocaml/num-top
-%{_libdir}/ocaml/num-top/*.cm[ia]
+%{_libdir}/ocaml/num-top/num_top.cma
+%{_libdir}/ocaml/num-top/num_top*.cmi
%{_libdir}/ocaml/ocamlfind
%{_libdir}/ocaml/topfind