From be42b9abf4826c6d26e7adb739cab67c21a14f36 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 16 Dec 2009 15:25:40 +0000 Subject: [PATCH] - Remove ocaml-find-{requires,provides}.sh from this package. These are now in upstream RPM 4.8 (RHBZ#545116). - define -> global in a few places. --- ocaml-find-provides.sh | 64 ------------------------------------ ocaml-find-requires.sh | 73 ------------------------------------------ ocaml.spec | 23 ++++++------- 3 files changed, 10 insertions(+), 150 deletions(-) delete mode 100755 ocaml-find-provides.sh delete mode 100755 ocaml-find-requires.sh diff --git a/ocaml-find-provides.sh b/ocaml-find-provides.sh deleted file mode 100755 index 57cbb6e..0000000 --- a/ocaml-find-provides.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/sh - -# OCaml-specific "find-provides" for RPM. -# By Richard W.M. Jones -# $Id: ocaml-find-provides.sh,v 1.1 2007/07/02 15:13:39 gemi Exp $ - -#set -x - -# Usage: -# (1) Add the following to the spec file: -# %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 -# -# (2) If you don't want the module to depend on the exact compiler -# version then use ocaml-find-requires.sh -c, but this is not something -# you should do normally. -# -# (3) For any modules which you want to ignore, use '-i Modulename'. - -OCAMLOBJINFO=ocamlobjinfo -TEMP=`getopt -o i:f: -n ocaml-find-provides.sh -- "$@"` -if [ $? != 0 ]; then echo "ocaml-find-provides.sh: failed" >&2; exit 1; fi -eval set -- "$TEMP" - -ignore_modules=nOTREAL - -while true; do - case "$1" in - -i) ignore_modules="$2 $ignore_modules"; shift 2;; - -f) OCAMLOBJINFO="$2"; shift 2;; - --) shift; break;; - *) echo "ocaml-find-provides.sh: option error at $1"; exit 1;; - esac -done - -# Get the list of files. -files=`sed "s/['\"]/\\\&/g"` - -# Use ordinary find-provides first. -echo $files | tr [:blank:] '\n' | /usr/lib/rpm/find-provides - -# Get list of .cmi, .cmo and .cma files. -files=`echo $files | tr [:blank:] '\n' | grep '\.cm[ioa]$'` - -if [ -z "$files" ]; then exit 0; fi - -# Get the list of modules exported by the files. -modules=`$OCAMLOBJINFO $files | - grep -E '(Unit|Module) name: ' | - awk '{print $3}'` - -# Turn list of modules into a regexp that matches the module names. -modules_re=`echo $modules | sed 's/ /|/g'` -ignore_modules_re=`echo $ignore_modules | sed 's/ /|/g'` - -# Get a list of the modules these file(s) provide. -$OCAMLOBJINFO $files | -grep -Eo '[0-9a-f]{32}[[:space:]]+[A-Za-z0-9_]+' | -grep -E '[0-9a-f]{32}[[:space:]]+'"($modules_re)\$" | -while read md5sum module; do - echo "ocaml($module) = $md5sum" -done | -grep -Ev "$ignore_modules_re" | -sort -u diff --git a/ocaml-find-requires.sh b/ocaml-find-requires.sh deleted file mode 100755 index ef2c93d..0000000 --- a/ocaml-find-requires.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/sh - -# OCaml-specific "find-requires" for RPM. -# By Richard W.M. Jones -# $Id: ocaml-find-requires.sh,v 1.4 2008/11/20 15:30:55 rjones Exp $ - -#set -x - -# Usage: -# (1) Add the following to the spec file: -# %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 -# -# (2) If you don't want the module to depend on the exact compiler -# version then use ocaml-find-requires.sh -c, but this is not something -# you should do normally. -# -# (3) For any modules which you want to ignore, use '-i Modulename'. - -OCAMLOBJINFO=ocamlobjinfo -TEMP=`getopt -o ci:f: -n ocaml-find-requires.sh -- "$@"` -if [ $? != 0 ]; then echo "ocaml-find-requires.sh: failed" >&2; exit 1; fi -eval set -- "$TEMP" - -emit_compiler_version=yes -ignore_modules=nOTREAL - -while true; do - case "$1" in - -c) emit_compiler_version=; shift;; - -i) ignore_modules="$2 $ignore_modules"; shift 2;; - -f) OCAMLOBJINFO="$2"; shift 2;; - --) shift; break;; - *) echo "ocaml-find-requires.sh: option error at $1"; exit 1;; - esac -done - -# Get the list of files. -files=`sed "s/['\"]/\\\&/g"` - -# Use ordinary find-requires first. -echo $files | tr [:blank:] '\n' | /usr/lib/rpm/find-requires - -# Get list of .cmi, .cmo and .cma files. -files=`echo $files | tr [:blank:] '\n' | grep '\.cm[ioa]$'` - -if [ -z "$files" ]; then exit 0; fi - -# Get the list of modules exported by the file(s). -modules=`$OCAMLOBJINFO $files | - grep -E '(Unit|Module) name: ' | - awk '{print $3}'` - -# Turn list of modules into a regexp that matches the module names. -modules_re=`echo $modules | sed 's/ /|/g'` -ignore_modules_re=`echo $ignore_modules | sed 's/ /|/g'` - -# Get a list of the modules these file(s) depend on. -$OCAMLOBJINFO $files | -grep -Eo '[0-9a-f]{32}[[:space:]]+[A-Za-z0-9_]+' | -grep -Ev '[0-9a-f]{32}[[:space:]]+'"($modules_re)\$" | -while read md5sum module; do - echo "ocaml($module) = $md5sum" -done | -grep -Ev "$ignore_modules_re" | -grep -Ev "^ocaml\((Annot|Asttypes|Outcometree|Cmo_format|Parsetree)\) =" | -sort -u - -if [ -n "$emit_compiler_version" ]; then - # Every OCaml program depends on the version of the - # runtime which was used to compile it. - echo "ocaml(runtime) = `ocamlrun -version | awk '{print $NF}' | sed 's/\+.*//'`" -fi diff --git a/ocaml.spec b/ocaml.spec index 510a2c7..a42db1c 100644 --- a/ocaml.spec +++ b/ocaml.spec @@ -1,8 +1,8 @@ -%define _default_patch_fuzz 2 +%global _default_patch_fuzz 2 Name: ocaml Version: 3.11.1 -Release: 6%{?dist} +Release: 7%{?dist} Summary: Objective Caml compiler and programming environment @@ -15,8 +15,6 @@ Source0: http://caml.inria.fr/distrib/ocaml-3.11/ocaml-%{version}.tar.bz2 Source1: http://caml.inria.fr/distrib/ocaml-3.11/ocaml-3.11-refman.html.tar.gz Source2: http://caml.inria.fr/distrib/ocaml-3.11/ocaml-3.11-refman.pdf Source3: http://caml.inria.fr/distrib/ocaml-3.11/ocaml-3.11-refman.info.tar.gz -Source4: ocaml-find-requires.sh -Source5: ocaml-find-provides.sh # Useful utilities from Debian, and sent upstream. # http://git.debian.org/?p=pkg-ocaml-maint/packages/ocaml.git;a=tree;f=debian/ocamlbyteinfo;hb=HEAD @@ -54,12 +52,12 @@ BuildRequires: chrpath Requires: gcc Requires: ncurses-devel Requires: gdbm-devel +Requires: rpm-build >= 4.8.0 Provides: ocaml(compiler) = %{version} ExclusiveArch: alpha armv4l %{ix86} ia64 x86_64 ppc sparc sparcv9 ppc64 -%define _use_internal_dependency_generator 0 -%define __find_requires %{SOURCE4} -c -f %{buildroot}%{_bindir}/ocamlobjinfo -%define __find_provides %{SOURCE5} -f %{buildroot}%{_bindir}/ocamlobjinfo +%global __ocaml_requires %{_rpmconfigdir}/ocaml-find-requires.sh -c -f %{buildroot}%{_bindir}/ocamlobjinfo +%global __ocaml_provides %{_rpmconfigdir}/ocaml-find-provides.sh -f %{buildroot}%{_bindir}/ocamlobjinfo %description @@ -251,11 +249,6 @@ perl -pi -e "s|^$RPM_BUILD_ROOT||" $RPM_BUILD_ROOT%{_libdir}/ocaml/ld.conf cp tools/objinfo $RPM_BUILD_ROOT%{_bindir}/ocamlobjinfo -# install rpmbuild helper files -mkdir -p $RPM_BUILD_ROOT/usr/lib/rpm/ -install -m 0755 %{SOURCE4} $RPM_BUILD_ROOT/usr/lib/rpm/ -install -m 0755 %{SOURCE5} $RPM_BUILD_ROOT/usr/lib/rpm/ - echo %{version} > $RPM_BUILD_ROOT%{_libdir}/ocaml/fedora-ocaml-release # Remove rpaths from stublibs .so files. @@ -346,7 +339,6 @@ fi %{_libdir}/ocaml/threads/*.cmi %{_libdir}/ocaml/threads/*.cma %{_libdir}/ocaml/fedora-ocaml-release -%attr(755,root,root) %{_prefix}/lib/rpm/* %exclude %{_libdir}/ocaml/graphicsX11.cmi %exclude %{_libdir}/ocaml/stublibs/dlllabltk.so %exclude %{_libdir}/ocaml/stublibs/dlltkanim.so @@ -451,6 +443,11 @@ fi %changelog +* Wed Dec 16 2009 Richard W.M. Jones - 3.11.1-7 +- Remove ocaml-find-{requires,provides}.sh from this package. These are + now in upstream RPM 4.8 (RHBZ#545116). +- define -> global in a few places. + * Thu Nov 05 2009 Dennis Gilmore - 3.11.1-6 - include sparcv9 in the arch list