# Note: rpmlint complains that this package is not marked as # noarch. This is not really an error as this is current standard # practice for OCaml libraries even though they do not contain # architecture dependent files themselves (the devel packages do # instead). # # See https://www.redhat.com/archives/fedora-packaging/2008-August/msg00017.html # for a discussion and # https://www.redhat.com/archives/fedora-packaging/2008-August/msg00020.html # for a potential fix. However, this is probably not the time and # place to try to change the standard practice, so for now I will # follow standard practice. %define opt %(test -x %{_bindir}/ocamlopt && echo 1 || echo 0) %define debug_package %{nil} %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 Name: ocaml-ocamlgraph Version: 0.99c Release: 2%{?dist}.1 Summary: OCaml library for arc and node graphs Group: Development/Libraries License: LGPLv2 with exceptions URL: http://ocamlgraph.lri.fr/ Source0: http://ocamlgraph.lri.fr/download/ocamlgraph-0.99c.tar.gz Source1: ocamlgraph-test.result Patch0: ocamlgraph-makefile.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: ocaml >= 3.08, ocaml-findlib-devel, ocaml-ocamldoc %if 0%{?fedora} < 9 # Missing all of the BuildRequires for ppc64 in Fedora <= 8 # bz# 459895 ExcludeArch: ppc64 %endif %description Ocamlgraph provides several different implementations of graph data structures. It also provides implementations for a number of classical graph algorithms like Kruskal's algorithm for MSTs, topological ordering of DAGs, Dijkstra's shortest paths algorithm, and Ford-Fulkerson's maximal-flow algorithm to name a few. The algorithms and data structures are written functorially for maximal reusability. Also has input and output capability for Graph Modeling Language file format and Dot and Neato graphviz (graph visualization) tools. %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 ocamlgraph-%{version} # Fixes makefile to avoid error during findlib install and properly copy .mli files into devel package %patch0 cp %{SOURCE1} . %build ./configure --prefix=%{_prefix} --mandir=%{_mandir} --libdir=%{_libdir} %if %opt %define opt_option OCAMLBEST=opt OCAMLOPT=ocamlopt.opt %else %define opt_option OCAMLBEST=byte OCAMLC=ocamlc %endif make %{opt_option} make doc %check make check >& test diff test ocamlgraph-test.result %install rm -rf %{buildroot} %define ocaml_destdir %{_libdir}/ocaml mkdir -p %{buildroot}%{ocaml_destdir} make OCAMLFIND_DESTDIR=%{buildroot}%{ocaml_destdir} install-findlib rm -f %{buildroot}%{ocaml_destdir}/ocamlgraph/*.cmo mkdir -p %{buildroot}%{_defaultdocdir}/%{name}-%{version}/ mkdir -p %{buildroot}%{_defaultdocdir}/%{name}-%{version}-devel/examples/ mkdir -p %{buildroot}%{_defaultdocdir}/%{name}-%{version}-devel/API/ cp -p LICENSE %{buildroot}%{_defaultdocdir}/%{name}-%{version}/ cp -p README %{buildroot}%{_defaultdocdir}/%{name}-%{version}-devel/ cp -p examples/*.ml %{buildroot}%{_defaultdocdir}/%{name}-%{version}-devel/examples/ cp -p doc/* %{buildroot}%{_defaultdocdir}/%{name}-%{version}-devel/API/ %clean rm -rf %{buildroot} %files %defattr(-,root,root,-) %{ocaml_destdir}/ocamlgraph/ %if %opt %exclude %{ocaml_destdir}/*/*.a %exclude %{ocaml_destdir}/*/*.cmxa %exclude %{ocaml_destdir}/*/*.cmx %endif %exclude %{ocaml_destdir}/*/*.mli %{_defaultdocdir}/%{name}-%{version}/LICENSE %files devel %defattr(-,root,root,-) %if %opt %{ocaml_destdir}/*/*.a %{ocaml_destdir}/*/*.cmxa %{ocaml_destdir}/*/*.cmx %endif %{ocaml_destdir}/*/*.mli # Include all code and examples in the doc directory %{_defaultdocdir}/%{name}-%{version}-devel/ %changelog * Sat Aug 23 2008 Alan Dunn 0.99c-2.1 - ExcludeArch ppc64 on Fedora 8 due to no OCaml. * Wed Aug 13 2008 Alan Dunn 0.99c-2 - Incorporates changes suggested during review: - License information was incorrect - rpmlint error now properly justified * Thu Aug 07 2008 Alan Dunn 0.99c-1 - Initial Fedora RPM release.