Blob Blame History Raw
%global opt %(test -x %{_bindir}/ocamlopt && echo 1 || echo 0)
%global debug_package %{nil}

Name:           ocaml-bin-prot
Version:        1.2.21
Release:        1%{?dist}
Summary:        Read and write OCaml values in a type-safe binary protocol

Group:          Development/Libraries
License:        LGPLv2+ with exceptions
URL:            http://ocaml.janestcapital.com/?q=node/13
Source0:        http://hg.ocaml.info/release/bin-prot/archive/release-%{version}.tar.bz2
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildRequires:  ocaml >= 3.10.0
BuildRequires:  ocaml-findlib-devel
BuildRequires:  ocaml-ocamldoc
BuildRequires:  ocaml-camlp4-devel
BuildRequires:  ocaml-ounit-devel
BuildRequires:  ocaml-type-conv >= 1.5.0
BuildRequires:  chrpath
BuildRequires:  dos2unix

%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


%description
This library contains functionality for reading and writing OCaml
values in a type-safe binary protocol. These functions are extremely
efficient and provide users with a convenient and safe way of
performing I/O on any extensionally defined data type. This means that
functions, objects, and values whose type is bound through a
polymorphic record field are not supported, but everything else is.

As of now, there is no support for cyclic or shared values. Cyclic
values will lead to non-termination whereas shared values, besides
requiring significantly more space when encoded, may lead to a
substantial increase in memory footprint when they are read back in.


%package        devel
Summary:        Development files for %{name}
Group:          Development/Libraries
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 bin-prot-release-%{version}
dos2unix LICENSE.Tywith


%build
make

cat > README.Fedora <<EOT
This package is available for non-x86 architectures in Fedora, but
there may be shortcomings.  In particular, you will not be able to
interchange data between little-endian and big-endian machines.
For more details see:
http://caml.inria.fr/pub/ml-archives/caml-list/2008/05/56cf55b101f21b608feb64c75b92c679.en.html
- RWMJ 2008/05/05
EOT


%check
# I couldn't find a 'make test' rule, but this works as well:
./lib_test/test_runner
./lib_test/mac_test


%install
rm -rf $RPM_BUILD_ROOT
export DESTDIR=$RPM_BUILD_ROOT
export OCAMLFIND_DESTDIR=$RPM_BUILD_ROOT%{_libdir}/ocaml
mkdir -p $OCAMLFIND_DESTDIR $OCAMLFIND_DESTDIR/stublibs
make install

strip $OCAMLFIND_DESTDIR/stublibs/dll*.so
chrpath --delete $OCAMLFIND_DESTDIR/stublibs/dll*.so


%clean
rm -rf $RPM_BUILD_ROOT


%files
%defattr(-,root,root,-)
%doc COPYRIGHT LICENSE LICENSE.Tywith
%{_libdir}/ocaml/bin_prot
%if %opt
%exclude %{_libdir}/ocaml/bin_prot/*.a
%exclude %{_libdir}/ocaml/bin_prot/*.cmxa
%endif
%exclude %{_libdir}/ocaml/bin_prot/*.mli
%exclude %{_libdir}/ocaml/bin_prot/*.ml
%{_libdir}/ocaml/stublibs/*.so
%{_libdir}/ocaml/stublibs/*.so.owner


%files devel
%defattr(-,root,root,-)
%doc Changelog README.txt README.Fedora
%if %opt
%{_libdir}/ocaml/bin_prot/*.a
%{_libdir}/ocaml/bin_prot/*.cmxa
%endif
%{_libdir}/ocaml/bin_prot/*.mli
# This is fine because there is no corresponding .mli file for
# the .ml file which is included.
%{_libdir}/ocaml/bin_prot/*.ml


%changelog
* Mon Jan 11 2010 Richard W.M. Jones <rjones@redhat.com> - 1.2.21-1
- New upstream release 1.2.21.
- Change %%define to %%global throughout.

* Mon Nov  9 2009 Richard W.M. Jones <rjones@redhat.com> - 1.2.20-2
- The final license of the code is LGPLv2+ with the OCaml linking
  exception.  It was derived from earlier BSD code.
- Don't duplicate the license files across base and -devel packages.
- Add note to spec about inclusion of *.ml file in -devel package.

* Mon Oct 12 2009 Richard W.M. Jones <rjones@redhat.com> - 1.2.20-1
- New upstream version 1.2.20.

* Sat Sep  5 2009 Richard W.M. Jones <rjones@redhat.com> - 1.2.18-1
- New upstream version 1.2.18.

* Fri May 16 2008 Richard W.M. Jones <rjones@redhat.com> - 1.0.5-3
- Force signed chars when compiling, as per comment from upstream author.
- Remove the part in the description which says this is only
  supported on little endian architectures.

* Mon May 12 2008 Richard W.M. Jones <rjones@redhat.com> - 1.0.5-2
- Remove ExclusiveArch, but add a Fedora README file warning about
  shortcomings on non-x86 architectures.
- Added missing dependency ocaml-type-conv.
- Move *.ml file to devel package.

* Sat May  3 2008 Richard W.M. Jones <rjones@redhat.com> - 1.0.5-1
- Initial RPM release.