summaryrefslogtreecommitdiffstats
path: root/ocaml/ocaml-biniou.spec
blob: 1936183754f3a94fb2bfb64bdd797031038feda5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
%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

%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


%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