3 %bcond_without ocaml_opt # native optimized binaries (bytecode is always built)
5 # not yet available on x32 (ocaml 4.02.1), remove when upstream will support it
6 %ifnarch %{ix86} %{x8664} %{arm} aarch64 ppc sparc sparcv9
7 %undefine with_ocaml_opt
10 %define module ocamlfuse
11 Summary: Fuse binding for OCaml
12 Summary(pl.UTF-8): Wiązania Fuse dla OCamla
18 #Source0Download: https://github.com/astrada/ocamlfuse/releases
19 Source0: https://github.com/astrada/ocamlfuse/archive/v%{version}_cvs7/ocamlfuse-%{version}-7.tar.gz
20 # Source0-md5: a5da871a0983b6723c6b9b735898fe34
21 Patch0: no-wrapped.patch
22 URL: https://github.com/astrada/ocamlfuse
23 BuildRequires: libfuse-devel >= 2.7
24 BuildRequires: ocaml >= 1:4.02.3
25 BuildRequires: ocaml-dune >= 1.6
26 BuildRequires: ocaml-findlib >= 1.4
27 BuildRequires: ocaml-idl-devel >= 1.0.5
28 BuildRequires: pkgconfig
29 %requires_eq ocaml-runtime
30 Requires: libfuse >= 2.7
31 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
33 %define debug_package %{nil}
36 OcamlFuse is a binding to the high-level part of the fuse library,
37 allowing you to implement Linux filesystems in OCaml.
39 The main features of ocamlfuse are:
40 - Multithreading: each callback runs in a separate ocaml thread, so
41 that a slow call can't block the filesystem
42 - Efficiency: read and write operations use the bigarray library
43 achieving very high troughput
44 - Ease of use: the fusexmp filesystem (mimicking bindfs) is 73 lines
45 of code, including in-memory extended attributes using a hash table.
46 The hello example is 42 lines of code.
48 %description -l pl.UTF-8
49 OcamlFuse to wiązania do wysokopoziomowej części biblioteki fuse,
50 pozwalające implementować linuksowe systemy plików w OCamlu.
52 Główne cechy ocamlfuse to:
53 - wielowątkowość: każde wywołanie zwrotne działa w osobnym wątku
54 OCamla, więc powolne wywołanie nie zablokuje systemu plików
55 - wydajność: operacje odczytu i zapisu wykorzystują bibliotekę
56 bigarray, osiągając dużą przepustowość
57 - łatwość użycia: system plików fusexmp (naśladujący bindfs) ma
58 jedynie 73 linie kodu, włącznie z rozszerzonymi atrybutami w
59 pamięci, wykorzystującymi tablicę haszującą; przykład "hello
60 world" ma 42 linie kodu.
63 Summary: ocamlfuse binding for OCaml - development part
64 Summary(pl.UTF-8): Wiązania ocamlfuse dla OCamla - część programistyczna
65 Group: Development/Libraries
66 Requires: %{name} = %{version}-%{release}
68 Requires: libfuse-devel >= 2.7
69 Requires: ocaml-idl-devel >= 1.0.5
72 This package contains files needed to develop OCaml programs using
75 %description devel -l pl.UTF-8
76 Pakiet ten zawiera pliki niezbędne do tworzenia programów w OCamlu,
77 używających biblioteki Fuse.
80 %setup -q -n ocamlfuse-2.7.1_cvs7
87 rm -rf $RPM_BUILD_ROOT
90 DESTDIR=$RPM_BUILD_ROOT
93 %{__rm} $RPM_BUILD_ROOT%{_libdir}/ocaml/%{module}/*.ml
94 # LICENSE is generic GPLv2 text, README.md packaged as %doc
95 %{__rm} -r $RPM_BUILD_ROOT%{_prefix}/doc/%{module}
98 rm -rf $RPM_BUILD_ROOT
101 %defattr(644,root,root,755)
103 %dir %{_libdir}/ocaml/%{module}
104 %{_libdir}/ocaml/%{module}/META
105 %{_libdir}/ocaml/%{module}/*.cma
106 %if %{with ocaml_opt}
107 %attr(755,root,root) %{_libdir}/ocaml/%{module}/*.cmxs
109 %attr(755,root,root) %{_libdir}/ocaml/stublibs/dllfuse_stubs.so
112 %defattr(644,root,root,755)
113 %{_libdir}/ocaml/%{module}/dune-package
114 %{_libdir}/ocaml/%{module}/opam
115 %{_libdir}/ocaml/%{module}/*.cmi
116 %{_libdir}/ocaml/%{module}/*.cmt
117 %{_libdir}/ocaml/%{module}/*.cmti
118 %{_libdir}/ocaml/%{module}/*.a
119 %{_libdir}/ocaml/%{module}/*.mli
120 %if %{with ocaml_opt}
121 %{_libdir}/ocaml/%{module}/*.cmx
122 %{_libdir}/ocaml/%{module}/*.cmxa