3 %bcond_without ocaml_opt # build opt
4 %bcond_without tk # build without tk support
6 %ifnarch %{ix86} %{x8664} %{arm} aarch64 ppc sparc sparcv9
7 %undefine with_ocaml_opt
10 %define ocaml_ver 1:4.02
11 Summary: OCaml module manager
12 Summary(pl.UTF-8): Zarządca modułów OCamla
16 License: distributable
17 Group: Development/Tools
18 Source0: http://download.camlcity.org/download/findlib-%{version}.tar.gz
19 # Source0-md5: 7d57451218359f7b7dfc969e3684a6da
20 Patch0: %{name}-bytes.patch
21 URL: http://www.ocaml-programming.de/packages/
23 BuildRequires: ncurses-devel
24 BuildRequires: ocaml >= %{ocaml_ver}
25 BuildRequires: ocaml-camlp4
26 %{?with_tk:BuildRequires: ocaml-labltk-devel}
27 BuildRequires: sed >= 4.0
29 Conflicts: ocaml-curses < 1.0.3-13
30 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
32 %if %{without ocaml_opt}
33 %define no_install_post_strip 1
34 # debug package strips binaries which renders ocamlfind broken
35 %define _enable_debug_packages 0
39 The "findlib" library provides a scheme to manage reusable software
40 components (packages), and includes tools that support this scheme.
41 Packages are collections of OCaml modules for which metainformation
44 %description -l pl.UTF-8
45 Biblioteka "findlib" udostępnia metodę zarządzania komponentami
46 oprogramowania (pakietami) oraz zawiera narzędzia, które ową metodę
47 wspierają. Pakiety są kolekcjami modułów w OCamlu, dla których mogą
48 być przechowywane metainformacje.
51 Summary: OCaml module manager
52 Summary(pl.UTF-8): Zarządca modułów OCamla
53 Group: Development/Libraries
54 Requires: %{name} = %{version}-%{release}
57 The "findlib" library provides a scheme to manage reusable software
58 components (packages), and includes tools that support this scheme.
59 Packages are collections of OCaml modules for which metainformation
62 This package includes libraries and compiled interfaces of findlib.
64 %description devel -l pl.UTF-8
65 Biblioteka "findlib" udostępnia metodę zarządzania komponentami
66 oprogramowania (pakietami) oraz zawiera narzędzia, które ową metodę
67 wspierają. Pakiety są kolekcjami modułów w OCamlu, dla których mogą
68 być przechowywane metainformacje.
70 Ten pakiet zawiera biblioteki i skompilowane interfejsy findliba.
73 %setup -q -n findlib-%{version}
80 -config %{_sysconfdir}/ocamlfind.conf \
83 sed -i -e 's/-g//' Makefile
85 %{__make} -j1 all %{?with_ocaml_opt:opt}
88 rm -rf $RPM_BUILD_ROOT
91 prefix=$RPM_BUILD_ROOT
93 %{__rm} $RPM_BUILD_ROOT%{_libdir}/ocaml/site-lib/findlib/*.mli
95 # now provided by ocaml-dbm.spec (might not exist if building without ocaml-dbm installed)
96 %{__rm} -rf $RPM_BUILD_ROOT%{_libdir}/ocaml/site-lib/dbm
97 # now provided by ocaml-labltk.spec (might not exist if building without ocaml-labltk installed)
98 %{__rm} -rf $RPM_BUILD_ROOT%{_libdir}/ocaml/site-lib/labltk
99 # now provided by ocaml-ocamlbuild.spec (might not exist if building without ocaml-ocamlbuild installed)
100 %{__rm} -rf $RPM_BUILD_ROOT%{_libdir}/ocaml/site-lib/ocamlbuild
102 # in PLD only META files are stored in site-lib/pkg
103 sed -i -e 's|/site-lib||' $RPM_BUILD_ROOT%{_libdir}/ocaml/topfind
104 ln -sf topfind $RPM_BUILD_ROOT%{_libdir}/ocaml/ocamlfind
105 %{__mv} $RPM_BUILD_ROOT%{_libdir}/ocaml/site-lib/findlib \
106 $RPM_BUILD_ROOT%{_libdir}/ocaml/findlib
107 install -d $RPM_BUILD_ROOT%{_libdir}/ocaml/site-lib/findlib
108 %{__mv} $RPM_BUILD_ROOT%{_libdir}/ocaml/findlib/META \
109 $RPM_BUILD_ROOT%{_libdir}/ocaml/site-lib/findlib
110 echo 'directory = "+findlib"' >> $RPM_BUILD_ROOT%{_libdir}/ocaml/site-lib/findlib/META
111 %{__mv} $RPM_BUILD_ROOT%{_libdir}/ocaml/site-lib/num-top \
112 $RPM_BUILD_ROOT%{_libdir}/ocaml/num-top
113 install -d $RPM_BUILD_ROOT%{_libdir}/ocaml/site-lib/num-top
114 %{__mv} $RPM_BUILD_ROOT%{_libdir}/ocaml/num-top/META \
115 $RPM_BUILD_ROOT%{_libdir}/ocaml/site-lib/num-top
116 echo 'directory = "+findlib"' >> $RPM_BUILD_ROOT%{_libdir}/ocaml/site-lib/num-top/META
118 echo 'ldconf = "ignore"' >> $RPM_BUILD_ROOT%{_sysconfdir}/ocamlfind.conf
120 ln -sf ../stublibs $RPM_BUILD_ROOT%{_libdir}/ocaml/site-lib/libexec
121 ln -sf ../stublibs $RPM_BUILD_ROOT%{_libdir}/ocaml/site-lib/stublibs
124 rm -rf $RPM_BUILD_ROOT
127 # handle ocaml-findlib-1.6.2-{2,3} + ocaml-curses < 1.0.3-13 mess
128 [ -L %{_libdir}/ocaml/site-lib/libexec ] || rmdir %{_libdir}/ocaml/site-lib/libexec || :
129 [ -L %{_libdir}/ocaml/site-lib/stublibs ] || rmdir %{_libdir}/ocaml/site-lib/stublibs || :
132 %defattr(644,root,root,755)
133 %doc doc/README LICENSE doc/*-html
134 %attr(755,root,root) %{_bindir}/ocamlfind
135 %attr(755,root,root) %{_bindir}/safe_camlp4
136 %config %{_sysconfdir}/ocamlfind.conf
137 %dir %{_libdir}/ocaml/findlib
139 %attr(755,root,root) %{_libdir}/ocaml/findlib/make_wizard
140 %{_libdir}/ocaml/findlib/make_wizard.pattern
142 %{_libdir}/ocaml/findlib/Makefile.config
143 %{_libdir}/ocaml/findlib/findlib.cma
144 %{_libdir}/ocaml/findlib/findlib_dynload.cma
145 %{_libdir}/ocaml/findlib/findlib_top.cma
146 %if %{with ocaml_opt}
147 %attr(755,root,root) %{_libdir}/ocaml/findlib/findlib.cmxs
148 %attr(755,root,root) %{_libdir}/ocaml/findlib/findlib_dynload.cmxs
149 %attr(755,root,root) %{_libdir}/ocaml/findlib/findlib_top.cmxs
151 %{_libdir}/ocaml/site-lib/findlib
153 %{_libdir}/ocaml/site-lib/libexec
154 %{_libdir}/ocaml/site-lib/stublibs
155 # META files for base ocaml packages
156 %{_libdir}/ocaml/site-lib/bigarray
157 %{_libdir}/ocaml/site-lib/bytes
158 %{_libdir}/ocaml/site-lib/compiler-libs
159 %{_libdir}/ocaml/site-lib/dynlink
160 %{_libdir}/ocaml/site-lib/graphics
161 %{_libdir}/ocaml/site-lib/num
162 %{_libdir}/ocaml/site-lib/num-top
163 %{_libdir}/ocaml/site-lib/ocamldoc
164 %{_libdir}/ocaml/site-lib/stdlib
165 %{_libdir}/ocaml/site-lib/str
166 %{_libdir}/ocaml/site-lib/threads
167 %{_libdir}/ocaml/site-lib/unix
168 # camlp4 4.02 doesn't provide its META itself
169 %{_libdir}/ocaml/site-lib/camlp4
170 %{_mandir}/man1/ocamlfind.1*
171 %{_mandir}/man5/META.5*
172 %{_mandir}/man5/findlib.conf.5*
173 %{_mandir}/man5/site-lib.5*
176 %defattr(644,root,root,755)
177 %{_libdir}/ocaml/findlib/findlib.cmi
178 %{_libdir}/ocaml/findlib/fl_*.cmi
179 %{_libdir}/ocaml/findlib/topfind.cmi
180 %if %{with ocaml_opt}
181 %{_libdir}/ocaml/findlib/findlib.a
182 %{_libdir}/ocaml/findlib/findlib.cmxa
183 %{_libdir}/ocaml/findlib/findlib_dynload.a
184 %{_libdir}/ocaml/findlib/findlib_dynload.cmxa
185 %{_libdir}/ocaml/findlib/findlib_top.a
186 %{_libdir}/ocaml/findlib/findlib_top.cmxa
188 %dir %{_libdir}/ocaml/num-top
189 %{_libdir}/ocaml/num-top/num_top.cma
190 %{_libdir}/ocaml/num-top/num_top*.cmi
191 %{_libdir}/ocaml/ocamlfind
192 %{_libdir}/ocaml/topfind