summaryrefslogtreecommitdiffstats
path: root/ocaml/ocaml-biniou.spec
diff options
context:
space:
mode:
Diffstat (limited to 'ocaml/ocaml-biniou.spec')
-rw-r--r--ocaml/ocaml-biniou.spec102
1 files changed, 102 insertions, 0 deletions
diff --git a/ocaml/ocaml-biniou.spec b/ocaml/ocaml-biniou.spec
new file mode 100644
index 0000000..89bd77d
--- /dev/null
+++ b/ocaml/ocaml-biniou.spec
@@ -0,0 +1,102 @@
+%global opt %(test -x %{_bindir}/ocamlopt && echo 1 || echo 0)
+%global debug_package %{nil}
+%global _use_internal_dependency_generator 0
+%global __find_requires /usr/lib/rpm/ocaml-find-requires.sh
+%global __find_provides /usr/lib/rpm/ocaml-find-provides.sh
+%define libname %(echo %{name} | sed -e 's/^ocaml-//')
+
+Name: ocaml-biniou
+Version: 1.0.9
+Release: 1%{?dist}
+Summary: Safe and fast binary data format
+
+License: BSD
+URL: http://mjambon.com/biniou.html
+Source0: http://mjambon.com/releases/biniou/biniou-%{version}.tar.gz
+Patch0: %{libname}-1.0.9-destdir.patch
+
+BuildRequires: ocaml >= 3.10.0
+BuildRequires: ocaml-findlib-devel
+BuildRequires: ocaml-easy-format-devel
+BuildRequires: ocaml-ocamldoc
+BuildRequires: chrpath
+
+%description
+Biniou (pronounced "be new") is a binary data format designed for
+speed, safety, ease of use and backward compatibility as protocols
+evolve. Biniou is vastly equivalent to JSON in terms of functionality
+but allows implementations several times faster (4 times faster than
+yojson), with 25-35% space savings.
+
+Biniou data can be decoded into human-readable form without knowledge
+of type definitions except for field and variant names which are
+represented by 31-bit hashes. A program named bdump is provided for
+routine visualization of biniou data files.
+
+The program atdgen can be used to derive OCaml-Biniou serializers and
+deserializers from type definitions.
+
+
+%package devel
+Summary: Development files for %{name}
+Requires: %{name} = %{version}-%{release}
+
+%description devel
+The %{name}-devel package contains libraries and signature files for
+developing applications that use %{name}.
+
+
+%prep
+%setup -q -n %{libname}-%{version}
+%patch0 -p1 -b .destdir
+
+
+%build
+# You may need a %%configure step here (or ./configure if it doesn't work).
+make
+%if %opt
+make opt
+%endif
+
+
+%install
+rm -rf $RPM_BUILD_ROOT
+# These rules work if the library uses 'ocamlfind install' to install itself.
+export DESTDIR=$RPM_BUILD_ROOT
+export OCAMLFIND_DESTDIR=$RPM_BUILD_ROOT%{_libdir}/ocaml
+mkdir -p $RPM_BUILD_ROOT%{_bindir}
+mkdir -p $OCAMLFIND_DESTDIR
+make install
+
+strip $RPM_BUILD_ROOT%{_bindir}/bdump
+strip $OCAMLFIND_DESTDIR/%{libname}/*.cmxs
+#chrpath --delete $OCAMLFIND_DESTDIR/stublibs/dll*.so
+
+
+%files
+%doc LICENSE
+%{_bindir}/bdump
+%{_libdir}/ocaml/%{libname}/
+%if %opt
+%exclude %{_libdir}/ocaml/*/*.a
+%exclude %{_libdir}/ocaml/*/*.cmxa
+%exclude %{_libdir}/ocaml/*/*.cmx
+%endif
+%exclude %{_libdir}/ocaml/*/*.mli
+%exclude %{_libdir}/ocaml/*/*.o
+
+
+%files devel
+%doc LICENSE README.md Changes
+%if %opt
+%{_libdir}/ocaml/*/*.a
+%{_libdir}/ocaml/*/*.cmxa
+%{_libdir}/ocaml/*/*.cmx
+%endif
+%{_libdir}/ocaml/*/*.mli
+%{_libdir}/ocaml/*/*.o
+
+
+%changelog
+* Mon Jan 20 2014 Michel Salim <salimma@fedoraproject.org> - 1.0.9-1
+- Initial package