%global opt %(test -x %{_bindir}/ocamlopt && echo 1 || echo 0) %global debug_package %{nil} %global ocaml_major 3.12 %global ocaml_minor 0 # Disabled temporarily for 3.11.2+rc1, 3.12.0 %global with_ocamlduce 0 %if %{with_ocamlduce} %global ocamlduce_version %{ocaml_major}.%{ocaml_minor}.0 %endif Name: cduce Version: 0.5.3 Release: 8%{?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 s390 s390x sparc64 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 %if %{with_ocamlduce} #Source2: http://forge.ocamlcore.org/frs/download.php/225/ocamlduce-%{ocamlduce_version}.tar.gz Source2: http://debian.glondu.net/debian/ocaml-3.12.0/pool/ocamlduce/ocamlduce_3.12.0.0.orig.tar.gz %endif 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 %global __ocaml_requires_opts -i Asttypes -i Outcometree -i Parsetree %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}. %if %{with_ocamlduce} %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. %endif %prep %setup -q -n %{name}-%{version} %if %{with_ocamlduce} %setup -q -n %{name}-%{version} -T -D -a 2 %endif # 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 %if %{with_ocamlduce} # 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 %endif %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} %if %{with_ocamlduce} # 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 %endif %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}/ %if %{with_ocamlduce} %files ocamlduce %defattr(-,root,root,-) %{_bindir}/ocamlduce* %{_libdir}/ocaml/ocamlduce/ %endif %changelog * Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.5.3-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild * Fri Jan 21 2010 Richard W.M. Jones <rjones@redhat.com> - 0.5.3-7 - Recompile for OCaml 3.12.0. - Include ocamlduce from Stephane Glondu's version, but leave it disabled since I still cannot get it to compile. * Thu Jan 14 2010 Richard W.M. Jones <rjones@redhat.com> - 0.5.3-6 - Temporarily disable ocamlduce until we work out the build problem. - Recheck package with rpmlint. * Tue Jan 5 2010 Richard W.M. Jones <rjones@redhat.com> - 0.5.3-5 - ocamlduce: Upstream fix for OCaml 3.11.2+rc1. - Use upstream RPM 4.8 OCaml dependency generator. - Replace %%define with %%global. * Wed Dec 30 2009 Richard W.M. Jones <rjones@redhat.com> - 0.5.3-4 - Rebuild for OCaml 3.11.2. * Wed Sep 30 2009 Richard W.M. Jones <rjones@redhat.com> - 0.5.3-3 - Rebuild for OCaml 3.11.1. - Reenable ocamlduce 3.11.1.0. * Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.5.3-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild * Tue May 26 2009 Richard W.M. Jones <rjones@redhat.com> - 0.5.3-1 - New upstream release 0.5.3. - Patch for compatibility with OCaml 3.11 now upstream. - Rebuild for OCaml 3.11.1+rc0. - Disable ocamlduce - waiting for upstream to release a compatible version. * Thu Apr 16 2009 S390x secondary arch maintainer <fedora-s390x@lists.fedoraproject.org> - ExcludeArch sparc64, s390, s390x as we don't have OCaml on those archs (added sparc64 per request from the sparc maintainer) * 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.