diff --git a/.cvsignore b/.cvsignore index e69de29..1654d02 100644 --- a/.cvsignore +++ b/.cvsignore @@ -0,0 +1 @@ +ancient-0.9.0.tar.gz diff --git a/import.log b/import.log new file mode 100644 index 0000000..244480c --- /dev/null +++ b/import.log @@ -0,0 +1 @@ +ocaml-ancient-0_9_0-1_fc11:HEAD:ocaml-ancient-0.9.0-1.fc11.src.rpm:1244137342 diff --git a/ocaml-ancient.spec b/ocaml-ancient.spec new file mode 100644 index 0000000..4129eee --- /dev/null +++ b/ocaml-ancient.spec @@ -0,0 +1,117 @@ +%define opt %(test -x %{_bindir}/ocamlopt && echo 1 || echo 0) +%define debug_package %{nil} + +%define ocamllibdir %{_libdir}/ocaml + +Name: ocaml-ancient +Version: 0.9.0 +Release: 1%{?dist} +Summary: OCaml library for large memory structures and sharing + +Group: Development/Libraries +License: LGPLv2+ with exceptions +URL: http://merjis.com/developers/ancient +Source0: http://merjis.com/_file/ancient-%{version}.tar.gz +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +BuildRequires: ocaml >= 3.10.0 +BuildRequires: ocaml-findlib-devel +BuildRequires: ocaml-ocamldoc +BuildRequires: chrpath + +%define _use_internal_dependency_generator 0 +%define __find_requires /usr/lib/rpm/ocaml-find-requires.sh +%define __find_provides /usr/lib/rpm/ocaml-find-provides.sh + + +%description +Ancient is an OCaml module that allows you to use in-memory data +structures which are larger than available memory and so are kept in +swap. If you try this in normal OCaml code, you'll find that the +machine quickly descends into thrashing as the garbage collector +repeatedly iterates over swapped memory structures. This module lets +you break that limitation. Of course the module doesn't work by magic. +If your program tries to access these large structures, they still +need to be swapped back in, but it is suitable for large, sparsely +accessed structures. + +Secondly, this module allows you to share those structures between +processes. In this mode, the structures are backed by a disk file, and +any process that has read/write access to that disk file can map that +file in and see the structures. + +Developers should read the README.txt file included with the +ocaml-ancient-devel package carefully. + + +%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 ancient-%{version} + + +%build +pushd mmalloc +%configure +make +popd + +make CFLAGS='-g -fPIC -Wall -Werror -I%{ocamllibdir} -DOCAML_VERSION_MAJOR=$(OCAML_VERSION_MAJOR) -DOCAML_VERSION_MINOR=$(OCAML_VERSION_MINOR) %{optflags}' + +make doc ||: + + +%install +rm -rf $RPM_BUILD_ROOT +export DESTDIR=$RPM_BUILD_ROOT +export OCAMLFIND_DESTDIR=$RPM_BUILD_ROOT%{_libdir}/ocaml +mkdir -p $RPM_BUILD_ROOT%{_libdir} +mkdir -p $OCAMLFIND_DESTDIR $OCAMLFIND_DESTDIR/stublibs +ocamlfind install ancient ancient.cmi *.mli *.cma ancient.cmx *.cmxa *.a *.so \ + mmalloc/*.a META + +strip $OCAMLFIND_DESTDIR/stublibs/dll*.so +chrpath --delete $OCAMLFIND_DESTDIR/stublibs/dll*.so + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%defattr(-,root,root,-) +%doc mmalloc/COPYING.LIB +%{_libdir}/ocaml/ancient +%if %opt +%exclude %{_libdir}/ocaml/ancient/*.a +%exclude %{_libdir}/ocaml/ancient/*.cmxa +%exclude %{_libdir}/ocaml/ancient/*.cmx +%endif +%exclude %{_libdir}/ocaml/ancient/*.mli +%{_libdir}/ocaml/stublibs/*.so +%{_libdir}/ocaml/stublibs/*.so.owner + + +%files devel +%defattr(-,root,root,-) +%doc README.txt html/* +%if %opt +%{_libdir}/ocaml/ancient/*.a +%{_libdir}/ocaml/ancient/*.cmxa +%{_libdir}/ocaml/ancient/*.cmx +%endif +%{_libdir}/ocaml/ancient/*.mli + + +%changelog +* Tue May 26 2009 Richard W.M. Jones - 0.9.0-1 +- Initial RPM release. diff --git a/sources b/sources index e69de29..4a4b503 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +a5529e09f3c96247f362b7640e710157 ancient-0.9.0.tar.gz