Blob Blame History Raw
%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.