3a02209c15
- Add sed hack to reduce size of long entry function which breaks ppc64 code generator. See comment in spec file for full details.
224 lines
7.0 KiB
RPMSpec
224 lines
7.0 KiB
RPMSpec
%define opt %(test -x %{_bindir}/ocamlopt && echo 1 || echo 0)
|
|
%define debug_package %{nil}
|
|
|
|
Name: ocaml-camomile
|
|
Version: 0.8.3
|
|
Release: 4%{?dist}
|
|
Summary: Unicode library for OCaml
|
|
|
|
Group: Development/Libraries
|
|
# Several files are MIT and UCD licensed, but the overall work is LGPLv2+
|
|
# and the LGPL/GPL supercedes compatible licenses.
|
|
# https://www.redhat.com/archives/fedora-legal-list/2008-March/msg00005.html
|
|
License: LGPLv2+
|
|
URL: http://sourceforge.net/projects/camomile/
|
|
Source0: http://downloads.sourceforge.net/camomile/camomile-%{version}.tar.bz2
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
|
ExcludeArch: sparc64 s390 s390x
|
|
|
|
BuildRequires: ocaml, ocaml-findlib-devel, ocaml-ocamldoc, ocaml-camlp4-devel
|
|
|
|
# This works around a segfault when the gen_mappings.ml program is
|
|
# run after being compiled with the new ARM backend.
|
|
Patch1: camomile-new-arm-segfault-workaround.patch
|
|
|
|
%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
|
|
Camomile is a Unicode library for ocaml. Camomile provides Unicode
|
|
character type, UTF-8, UTF-16, UTF-32 strings, conversion to/from
|
|
about 200 encodings, collation and locale-sensitive case mappings, and
|
|
more.
|
|
|
|
|
|
%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 data
|
|
Summary: Data files for %{name}
|
|
Group: Development/Libraries
|
|
Requires: %{name} = %{version}-%{release}
|
|
|
|
|
|
%description data
|
|
The %{name}-data package contains data files for developing
|
|
applications that use %{name}.
|
|
|
|
|
|
%prep
|
|
%setup -q -n camomile-%{version}
|
|
|
|
%patch1 -p1
|
|
|
|
# This is a horrible hack to work around a bug in our ppc64 code
|
|
# generator. For some reason which we don't fully understand it barfs
|
|
# on the long entry function created by the series of alias commands
|
|
# at the end of public/charEncoding.ml:
|
|
#
|
|
# let () = alias "IANA/csGB2312" "GB2312"
|
|
# let () = alias "IANA/GB2312" "GB2312"
|
|
# (* etc for 573 lines *)
|
|
#
|
|
# Use a sed script to change to the equivalent code:
|
|
#
|
|
# let aliases = [
|
|
# "IANA/csGB2312", "GB2312";
|
|
# "IANA/GB2312", "GB2312";
|
|
# (* etc *)
|
|
# ] ;; List.iter (fun (a,b) -> alias a b) aliases
|
|
#
|
|
# The equivalent code contains just data plus a small entry function
|
|
# so it doesn't break the ppc64 generator. It's likely also to be
|
|
# more efficient. Since the code is equivalent, we do this
|
|
# transformation on all arches, not just ppc64.
|
|
#
|
|
# - RWMJ 2012-05-30
|
|
|
|
mv public/charEncoding.ml public/charEncoding.ml.orig
|
|
sed -e 's/let () = alias \("[^[:space:]]*"\) \("[^[:space:]]*"\)/\1, \2;/' \
|
|
-e 's/(\* IANA \*)/let aliases = [/' \
|
|
-e '$ i] ;; List.iter (fun (a,b) -> alias a b) aliases' \
|
|
public/charEncoding.ml.orig > public/charEncoding.ml
|
|
|
|
|
|
%build
|
|
./configure --prefix=%{_prefix} --datadir=%{_datadir} --libdir=%{_libdir}
|
|
make
|
|
make dochtml
|
|
make man
|
|
strip tools/*.opt
|
|
|
|
|
|
%install
|
|
rm -rf $RPM_BUILD_ROOT
|
|
export DESTDIR=$RPM_BUILD_ROOT
|
|
export OCAMLFIND_DESTDIR=$RPM_BUILD_ROOT%{_libdir}/ocaml
|
|
mkdir -p $OCAMLFIND_DESTDIR $OCAMLFIND_DESTDIR/stublibs
|
|
mkdir -p $RPM_BUILD_ROOT%{_bindir}
|
|
make install prefix=$RPM_BUILD_ROOT%{_prefix} DATADIR=$RPM_BUILD_ROOT%{_datadir}
|
|
%if %opt
|
|
cp tools/camomilecharmap.opt $RPM_BUILD_ROOT%{_bindir}/camomilecharmap
|
|
cp tools/camomilelocaledef.opt $RPM_BUILD_ROOT%{_bindir}/camomilelocaledef
|
|
%endif
|
|
|
|
|
|
%clean
|
|
rm -rf $RPM_BUILD_ROOT
|
|
|
|
|
|
%files
|
|
%defattr(-,root,root,-)
|
|
%doc README
|
|
%{_libdir}/ocaml/camomile
|
|
%if %opt
|
|
%exclude %{_libdir}/ocaml/camomile/*.a
|
|
%exclude %{_libdir}/ocaml/camomile/*.cmxa
|
|
%exclude %{_libdir}/ocaml/camomile/*.cmx
|
|
%endif
|
|
%exclude %{_libdir}/ocaml/camomile/*.mli
|
|
%if %opt
|
|
%{_bindir}/camomilecharmap
|
|
%{_bindir}/camomilelocaledef
|
|
%endif
|
|
|
|
|
|
%files devel
|
|
%defattr(-,root,root,-)
|
|
%doc README dochtml/*
|
|
%if %opt
|
|
%{_libdir}/ocaml/camomile/*.a
|
|
%{_libdir}/ocaml/camomile/*.cmxa
|
|
%{_libdir}/ocaml/camomile/*.cmx
|
|
%endif
|
|
%{_libdir}/ocaml/camomile/*.mli
|
|
|
|
|
|
%files data
|
|
%defattr(-,root,root,-)
|
|
%doc README
|
|
%{_datadir}/camomile/
|
|
|
|
|
|
%changelog
|
|
* Wed May 30 2012 Richard W.M. Jones <rjones@redhat.com> - 0.8.3-4
|
|
- Remove ExcludeArch ppc64.
|
|
- Add sed hack to reduce size of long entry function which breaks
|
|
ppc64 code generator. See comment in spec file for full details.
|
|
|
|
* Sat May 19 2012 Richard W.M. Jones <rjones@redhat.com> - 0.8.3-2
|
|
- Include workaround for segfault in gen_mappings.ml on ARM.
|
|
- Bump release and rebuild for new OCaml on ARM.
|
|
|
|
* Fri Jan 6 2012 Richard W.M. Jones <rjones@redhat.com> - 0.8.3-1
|
|
- New upstream version 0.8.3.
|
|
|
|
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.8.1-2
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
|
|
|
* Wed Jan 5 2011 Richard W.M. Jones <rjones@redhat.com> - 0.8.1-1
|
|
- New upstream version 0.8.1.
|
|
- Rebuild for OCaml 3.12.0.
|
|
- camomilecharmap and camomilelocaledef no longer installed by default,
|
|
install them by hand instead.
|
|
|
|
* Wed Dec 30 2009 Richard W.M. Jones <rjones@redhat.com> - 0.7.2-2
|
|
- Rebuild for OCaml 3.11.2.
|
|
|
|
* Thu Oct 8 2009 Richard W.M. Jones <rjones@redhat.com> - 0.7.2-1
|
|
- New upstream version 0.7.2.
|
|
|
|
* Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.7.1-12
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
|
|
|
* Sat May 23 2009 Richard W.M. Jones <rjones@redhat.com> - 0.7.1-11
|
|
- Rebuild for OCaml 3.11.1
|
|
|
|
* 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)
|
|
|
|
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.7.1-10
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
|
|
|
|
* Wed Nov 26 2008 Richard W.M. Jones <rjones@redhat.com> - 0.7.1-9
|
|
- Rebuild for OCaml 3.11.0+rc1.
|
|
|
|
* Wed Nov 19 2008 Richard W.M. Jones <rjones@redhat.com> - 0.7.1-8
|
|
- Rebuild for OCaml 3.11.0
|
|
|
|
* Wed Apr 23 2008 Richard W.M. Jones <rjones@redhat.com> - 0.7.1-7
|
|
- Rebuild for OCaml 3.10.2
|
|
|
|
* Fri Mar 21 2008 Richard W.M. Jones <rjones@redhat.com> - 0.7.1-6
|
|
- ExcludeArch ppc64 (#438486).
|
|
|
|
* Mon Mar 17 2008 Richard W.M. Jones <rjones@redhat.com> - 0.7.1-5
|
|
- Definitive license.
|
|
- Move ./configure into the build section.
|
|
- Remove a superfluous comment in the install section.
|
|
- Fix rpmlint error 'configure-without-libdir-spec'.
|
|
- Scratch build in Koji.
|
|
|
|
* Wed Mar 5 2008 Richard W.M. Jones <rjones@redhat.com> - 0.7.1-4
|
|
- License is LGPLv2+ (no OCaml exception).
|
|
|
|
* Wed Mar 5 2008 Richard W.M. Jones <rjones@redhat.com> - 0.7.1-3
|
|
- Remove ExcludeArch ppc64.
|
|
|
|
* Tue Feb 12 2008 Richard W.M. Jones <rjones@redhat.com> - 0.7.1-2
|
|
- Added BR ocaml-camlp4-devel.
|
|
- Rename /usr/bin/*.opt as /usr/bin.
|
|
|
|
* Wed Aug 08 2007 Richard W.M. Jones <rjones@redhat.com> - 0.7.1-1
|
|
- Initial RPM release.
|