%define opt %(test -x %{_bindir}/ocamlopt && echo 1 || echo 0)
%define debug_package %{nil}
%define ocaml_major 3.11
%define ocaml_minor 0
%define ocamlduce_version %{ocaml_major}.%{ocaml_minor}.0rc1
Name: cduce
Version: 0.5.2.1
Release: 14%{?dist}
Summary: Modern XML-oriented functional language
Group: Development/Libraries
License: BSD
URL: http://www.cduce.org/
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
ExcludeArch: ppc64
Source0: http://www.cduce.org/download/%{name}-%{version}.tar.gz
Source1: http://caml.inria.fr/distrib/ocaml-%{ocaml_major}/ocaml-%{ocaml_major}.%{ocaml_minor}.tar.bz2
Source2: https://forge.ocamlcore.org/frs/download.php/107/ocamlduce-%{ocamlduce_version}.tar.gz
Patch0: cduce-0.5.2.1-ocaml-3.11.0.patch
BuildRequires: ocaml = %{ocaml_major}.%{ocaml_minor}
BuildRequires: ocaml-ocamldoc
BuildRequires: ocaml-camlp4-devel
BuildRequires: ocaml-findlib-devel
BuildRequires: ocaml-ocamlnet-devel
BuildRequires: ocaml-pcre-devel
BuildRequires: ocaml-pxp-devel
BuildRequires: ocaml-expat-devel
BuildRequires: ocaml-curl-devel
BuildRequires: ocaml-ulex-devel
BuildRequires: pcre-devel
BuildRequires: bzip2
BuildRequires: chrpath
BuildRequires: rpm >= 4.4.2.3-2
%define _use_internal_dependency_generator 0
%define __find_requires /usr/lib/rpm/ocaml-find-requires.sh -i Asttypes -i Outcometree -i Parsetree
%define __find_provides /usr/lib/rpm/ocaml-find-provides.sh
%description
CDuce is a modern XML-oriented functional language with innovative
features. A compiler is available under the terms of an open-source
license. CDuce is type-safe, efficient, and offers powerful
constructions to work with XML documents.
For ocamlduce (the modified OCaml language which incorporates CDuce
extensions), please install the cduce-ocamlduce package.
%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}.
%package ocamlduce
Summary: Development files for %{name}
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
%description ocamlduce
This package contains a modified version of the OCaml language which
incorporates CDuce extensions for working with XML documents.
%prep
%setup -q -n cduce-0.5.2
%setup -q -n cduce-0.5.2 -T -D -a 2
%patch0 -p1
# Unpack the OCaml sources in the build directory.
bzcat %{SOURCE1} | tar xf -
./configure --prefix=%{_prefix} \
--bindir=%{_bindir} \
--mandir=%{_mandir} \
--docdir=%{_docdir} \
--mliface=ocaml-%{ocaml_major}.%{ocaml_minor}
%build
make all doc
strip cduce dtd2cduce
chrpath --delete cduce
# Building ocamlduce is a bit more involved ...
pushd ocamlduce-%{ocamlduce_version}
make prepare \
OCAML_VERSION=%{ocaml_major}.%{ocaml_minor} \
OCAML_SOURCE=%{SOURCE1} \
OCAML_SRCDIR=ocaml-%{ocaml_major}.%{ocaml_minor}
cd ocaml-%{ocaml_major}.%{ocaml_minor}
# Configure must match the one from base ocaml.spec
CFLAGS="$RPM_OPT_FLAGS" ./configure \
-bindir %{_bindir} \
-libdir %{_libdir}/ocaml \
-x11lib %{_libdir} \
-x11include %{_includedir} \
-mandir %{_mandir}/man1
make -f Makefile.ocamlduce world world.opt
popd
%install
rm -rf $RPM_BUILD_ROOT
export DESTDIR=$RPM_BUILD_ROOT
export OCAMLFIND_DESTDIR=$RPM_BUILD_ROOT%{_libdir}/ocaml
mkdir -p $OCAMLFIND_DESTDIR
make install \
BINDIR=$RPM_BUILD_ROOT%{_bindir} \
MANDIR=$RPM_BUILD_ROOT%{_mandir} \
DOCDIR=$RPM_BUILD_ROOT%{_docdir}/%{name}-devel-%{version}
# Install ocamlduce.
pushd ocamlduce-%{ocamlduce_version}
mkdir -p $RPM_BUILD_ROOT%{_libdir}/ocaml/ocamlduce
cd ocaml-%{ocaml_major}.%{ocaml_minor}
make -f Makefile.ocamlduce installbyte installopt \
DUCE_LIBDIR=$RPM_BUILD_ROOT%{_libdir}/ocaml/ocamlduce \
BINDIR=$RPM_BUILD_ROOT%{_bindir}
popd
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
%doc AUTHORS CHANGES README LICENSE VERSION
%{_libdir}/ocaml/cduce
%if %opt
%exclude %{_libdir}/ocaml/cduce/*.a
%exclude %{_libdir}/ocaml/cduce/*.cmxa
%endif
%{_bindir}/cduce
%{_bindir}/dtd2cduce
%{_bindir}/cduce_mktop
%files devel
%defattr(-,root,root,-)
%{_libdir}/ocaml/cduce/*.a
%{_libdir}/ocaml/cduce/*.cmxa
%{_mandir}/man1/*.1.gz
%{_docdir}/%{name}-devel-%{version}/
%files ocamlduce
%defattr(-,root,root,-)
%{_bindir}/ocamlduce*
%{_libdir}/ocaml/ocamlduce/
%changelog
* Mon Feb 23 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.5.2.1-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Sat Jan 17 2009 Richard W.M. Jones <rjones@redhat.com> - 0.5.2.1-13
- Add ocamlduce subpackage.
- Capitalize the summary line as per packaging guidelines.
* Wed Jan 14 2009 Richard W.M. Jones <rjones@redhat.com> - 0.5.2.1-12
- Improve the OCaml 3.11.0 patch (suggested by Kim Nguyen).
* Fri Dec 5 2008 Richard W.M. Jones <rjones@redhat.com> - 0.5.2.1-11
- Attempt to rebuild against OCaml 3.11.0.
* Sat Nov 22 2008 Richard W.M. Jones <rjones@redhat.com> - 0.5.2.1-10
- Don't include the name in the summary line.
* Thu Apr 24 2008 Richard W.M. Jones <rjones@redhat.com> - 0.5.2.1-9
- Problem with the previous import to Koji - reimport.
* Wed Apr 23 2008 Richard W.M. Jones <rjones@redhat.com> - 0.5.2.1-8
- Forgot to change the OCaml version number in the header.
* Wed Apr 23 2008 Richard W.M. Jones <rjones@redhat.com> - 0.5.2.1-7
- Rebuild for OCaml 3.10.2
* Fri Apr 18 2008 Richard W.M. Jones <rjones@redhat.com> - 0.5.2.1-6
- Rebuild against updated RPM (see bug 443118).
* Fri Apr 4 2008 Richard W.M. Jones <rjones@redhat.com> - 0.5.2.1-5
- Upstream renamed the tarball from 0.5.2-1 to 0.5.2.1.
* Tue Mar 25 2008 Richard W.M. Jones <rjones@redhat.com> - 0.5.2.1-4
- ExcludeArch ppc64 again (see bug 438843).
* Tue Mar 25 2008 Richard W.M. Jones <rjones@redhat.com> - 0.5.2.1-3
- Added BR pcre-devel.
- Test build in Koji.
* Wed Mar 5 2008 Richard W.M. Jones <rjones@redhat.com> - 0.5.2.1-2
- Remove ExcludeArch ppc64.
* Tue Feb 26 2008 Richard W.M. Jones <rjones@redhat.com> - 0.5.2.1-1
- New upstream release 0.5.2-1.
* Tue Feb 26 2008 Richard W.M. Jones <rjones@redhat.com> - 0.5.2-1
- New upstream release 0.5.2.
- Removed netcgi patch.
- AUTHORS file is now UTF-8 so remove that change.
* Fri Feb 15 2008 Richard W.M. Jones <rjones@redhat.com> - 0.5.1-1
- New upstream release 0.5.1.
- New OCaml 3.10.1.
* Thu Sep 13 2007 Richard W.M. Jones <rjones@redhat.com> - 0.5.0-1
- Upstream version 0.5.0
- Remove RPATH in cduce binary.
- ExcludeArch ppc64.
- Build without ocamlopt.
- Convert AUTHORS file to UTF-8.
- Ignore Parsetree module.
* Sat May 26 2007 Richard W.M. Jones <rjones@redhat.com> - 0.4.2-1
- Initial RPM release.