Hello community,

here is the log from the commit of package ocaml for openSUSE:Factory checked 
in at 2016-07-05 09:50:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ocaml (Old)
 and      /work/SRC/openSUSE:Factory/.ocaml.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ocaml"

Changes:
--------
--- /work/SRC/openSUSE:Factory/ocaml/ocaml.changes      2016-05-16 
12:02:55.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ocaml.new/ocaml.changes 2016-07-05 
09:51:01.000000000 +0200
@@ -1,0 +2,37 @@
+Thu Jun 30 06:11:26 UTC 2016 - [email protected]
+
+- Correct .TH macro creation in ocamldoc (ocaml#7281)
+  ocamldoc-man-th.patch
+
+-------------------------------------------------------------------
+Thu Jun 16 14:26:17 UTC 2016 - [email protected]
+
+- Install ocamltags in emacs site-lisp, do not add a shebang anymore
+
+-------------------------------------------------------------------
+Mon Jun 13 14:02:36 UTC 2016 - [email protected]
+
+- Provide various macros to unify oasis ocaml setup.ml $cmd usage
+
+-------------------------------------------------------------------
+Tue Jun  7 11:11:04 UTC 2016 - [email protected]
+
+- ocaml-compiler-libs requires ncurses-devel for some bytecode
+  compilation
+
+-------------------------------------------------------------------
+Fri May 27 16:32:01 UTC 2016 - [email protected]
+
+- Add Provides/Requires for ocamlfind() from META files
+
+-------------------------------------------------------------------
+Wed May 18 21:44:47 UTC 2016 - [email protected]
+
+- update version 4.03.0 (fate#320836)
+  * http://caml.inria.fr/pub/distrib/ocaml-4.03/notes/Changes
+  drop ocaml-ppc64.patch
+  drop ocaml-ppc64le.patch 
+  drop ocaml-arch-rlimit-stacksize.patch
+  drop ocaml-4.02.3-bufferoverflow_infoleak.patch
+
+-------------------------------------------------------------------

Old:
----
  ocaml-4.02-refman-html-0.tar.xz
  ocaml-4.02-refman-html-1.tar.xz
  ocaml-4.02-refman.info.tar.xz
  ocaml-4.02.3-bufferoverflow_infoleak.patch
  ocaml-4.02.3.tar.xz
  ocaml-arch-rlimit-stacksize.patch
  ocaml-ppc64.patch
  ocaml-ppc64le.patch

New:
----
  ocaml-4.03-refman-html.tar.xz
  ocaml-4.03-refman.info.tar.xz
  ocaml-4.03.0.tar.xz
  ocaml-findlib.rpm.prov_req.attr.sh
  ocamldoc-man-th.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ocaml.spec ++++++
--- /var/tmp/diff_new_pack.4dnLcm/_old  2016-07-05 09:51:02.000000000 +0200
+++ /var/tmp/diff_new_pack.4dnLcm/_new  2016-07-05 09:51:02.000000000 +0200
@@ -18,7 +18,7 @@
 #
 
 
-%define doc_version 4.02
+%define doc_version 4.03
 #
 %define do_opt 0
 # This ensures that the find_provides/find_requires calls ocamlobjinfo 
correctly.
@@ -36,7 +36,7 @@
 %define do_opt 1
 %endif
 %if %{without ocaml_force_enable_ocaml_opt}
-%ifarch %arm aarch64 %ix86 ppc ppc64 ppc64le x86_64
+%ifarch %arm aarch64 %ix86 ppc ppc64 ppc64le s390x x86_64
 %define do_opt 1
 %endif
 %endif
@@ -45,7 +45,7 @@
 %define do_opt 0
 %endif
 Name:           ocaml
-Version:        4.02.3
+Version:        4.03.0
 Release:        0
 Summary:        The Objective Caml Compiler and Programming Environment
 License:        QPL-1.0 and SUSE-LGPL-2.0-with-linking-exception
@@ -54,24 +54,18 @@
 #
 # http://caml.inria.fr/pub/distrib/
 Source0:        
http://caml.inria.fr/pub/distrib/ocaml-%{doc_version}/ocaml-%{version}.tar.xz
-Source1:        ocaml-%{doc_version}-refman-html-0.tar.xz
-Source2:        ocaml-%{doc_version}-refman-html-1.tar.xz
+Source1:        ocaml-findlib.rpm.prov_req.attr.sh
+Source2:        ocaml-%{doc_version}-refman-html.tar.xz
 Source3:        ocaml-%{doc_version}-refman.info.tar.xz
 Source4:        rpmlintrc
 Source99:       update_ocaml_deps.sh
 Patch0:         ocaml-3.00-camldebug_el.patch
+Patch1:         ocamldoc-man-th.patch
 Patch2:         ocaml-3.04-ocamltags--no-site-start.patch
 # FIX-UPSTREAM pass RPM_OPT_FLAGS to build
 Patch4:         ocaml-configure-Allow-user-defined-C-compiler-flags.patch
 Patch5:         ocaml-3.08.3-gcc4.patch
 Patch7:         ocaml-3.09-emacs_localcompile.patch
-# FIX-UPSTREAM enable build on PowerPC 64bit platform.
-Patch9:         ocaml-ppc64.patch
-# FIX-UPSTREAM enable build on PowerPC 64bit LE platform.
-Patch10:        ocaml-ppc64le.patch
-# PATCH-FIX-UPSTREAM bnc#977990 CVE-2015-8869 [email protected] -- prevent 
buffer overflow and information leak
-Patch11:        ocaml-4.02.3-bufferoverflow_infoleak.patch
-Patch64:        ocaml-arch-rlimit-stacksize.patch
 # This gets ocamlobjinfo to work with .cmxs files
 BuildRequires:  binutils-devel
 BuildRequires:  emacs-nox
@@ -82,6 +76,7 @@
 Requires(post): %{install_info_prereq}
 Requires(pre):  %{install_info_prereq}
 Provides:       ocaml(compiler) = %{version}
+Requires:       ocaml(runtime) = %{version}-%{release}
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 # ocaml autodep start for pkg: ocaml
 # hardcoded rpm dependency for pre 12.1 to compensate for lack of ocaml() 
provides/requires
@@ -111,16 +106,16 @@
 A set of helper macros to unify common code used in ocaml spec files.
 
 %package runtime
-# ocaml autodep end for pkg: ocaml-runtime
-Summary:        The Objective Caml Compiler and Programming Environment
-License:        QPL-1.0
-Group:          Development/Languages/Other
-Provides:       ocaml(runtime) = %{version}
 # ocaml autodep start for pkg: ocaml-runtime
 # hardcoded rpm dependency for pre 12.1 to compensate for lack of ocaml() 
provides/requires
 %if 0%{?suse_version} < 1210
 Requires:       ocaml-compiler-libs
 %endif
+# ocaml autodep end for pkg: ocaml-runtime
+Summary:        The Objective Caml Compiler and Programming Environment
+License:        QPL-1.0
+Group:          Development/Languages/Other
+Provides:       ocaml(runtime) = %{version}-%{release}
 
 %description runtime
 Objective Caml is a high-level, strongly-typed, functional and
@@ -138,31 +133,31 @@
 Source code for Objective Caml libraries.
 
 %package x11
-# ocaml autodep end for pkg: ocaml-x11
-Summary:        X11 support for Objective Caml
-License:        SUSE-LGPL-2.0-with-linking-exception
-Group:          System/Libraries
 # ocaml autodep start for pkg: ocaml-x11
 # hardcoded rpm dependency for pre 12.1 to compensate for lack of ocaml() 
provides/requires
 %if 0%{?suse_version} < 1210
 Requires:       ocaml-runtime
 %endif
+# ocaml autodep end for pkg: ocaml-x11
+Summary:        X11 support for Objective Caml
+License:        SUSE-LGPL-2.0-with-linking-exception
+Group:          System/Libraries
 
 %description x11
 X11 support for Objective Caml.
 
 %package ocamldoc
-# ocaml autodep end for pkg: ocaml-ocamldoc
-Summary:        The Objective Caml Compiler and Programming Environment
-License:        QPL-1.0
-Group:          Development/Languages/Other
-Requires:       ocaml = %{version}
 # ocaml autodep start for pkg: ocaml-ocamldoc
 # hardcoded rpm dependency for pre 12.1 to compensate for lack of ocaml() 
provides/requires
 %if 0%{?suse_version} < 1210
 Requires:       ocaml-compiler-libs
 Requires:       ocaml-runtime
 %endif
+# ocaml autodep end for pkg: ocaml-ocamldoc
+Summary:        The Objective Caml Compiler and Programming Environment
+License:        QPL-1.0
+Group:          Development/Languages/Other
+Requires:       ocaml = %{version}
 
 %description ocamldoc
 Objective Caml is a high-level, strongly-typed, functional and
@@ -199,15 +194,16 @@
 system, Lex&Yacc tools, a replay debugger, and a comprehensive library.
 
 %package compiler-libs
-# ocaml autodep end for pkg: ocaml-compiler-libs
-Summary:        Libraries used internal to the OCaml Compiler
-License:        QPL-1.0
-Group:          Development/Libraries/Other
 # ocaml autodep start for pkg: ocaml-compiler-libs
 # hardcoded rpm dependency for pre 12.1 to compensate for lack of ocaml() 
provides/requires
 %if 0%{?suse_version} < 1210
 Requires:       ocaml-runtime
 %endif
+# ocaml autodep end for pkg: ocaml-compiler-libs
+Requires:       ncurses-devel
+Summary:        Libraries used internal to the OCaml Compiler
+License:        QPL-1.0
+Group:          Development/Libraries/Other
 
 %description compiler-libs
 Objective Caml is a high-level, strongly-typed, functional and
@@ -218,16 +214,16 @@
 be helpful in the development of certain applications.
 
 %package compiler-libs-devel
-# ocaml autodep end for pkg: ocaml-compiler-libs
-Summary:        Libraries used internal to the OCaml Compiler
-License:        QPL-1.0
-Group:          Development/Libraries/Other
-Requires:       ocaml-compiler-libs = %{version}
 # ocaml autodep start for pkg: ocaml-compiler-libs
 # hardcoded rpm dependency for pre 12.1 to compensate for lack of ocaml() 
provides/requires
 %if 0%{?suse_version} < 1210
 Requires:       ocaml-runtime
 %endif
+# ocaml autodep end for pkg: ocaml-compiler-libs
+Summary:        Libraries used internal to the OCaml Compiler
+License:        QPL-1.0
+Group:          Development/Libraries/Other
+Requires:       ocaml-compiler-libs = %{version}
 
 %description compiler-libs-devel
 The %{name}-devel package contains libraries and signature files for
@@ -235,25 +231,24 @@
 
 %prep
 : do_opt %{do_opt}
-%setup -q -a 1 -a 2 -a 3
+%setup -q -a 2 -a 3
 %patch0 -p1
+%patch1 -p1
 %patch2 -p1
 %patch4 -p1
 %patch5
 %patch7
-%patch9 -p1
-%patch10 -p1
-%patch11 -p1
-%patch64 -p1
 
 %build
 %ifarch %ix86
 # Default OPT flags for these architectures use -fomit-frame-pointer,
 # which gets in the way of some of the profiling done within.
-export RPM_OPT_FLAGS="%{optflags}/-fomit-frame-pointer/}"
+OUR_OPT_FLAGS="`echo '%{optflags}' | sed 's/-fomit-frame-pointer//g'`"
+%else
+OUR_OPT_FLAGS="%{optflags}"
 %endif
 
-CFLAGS="%{optflags} -DUSE_INTERP_RESULT" \
+CFLAGS="$OUR_OPT_FLAGS -DUSE_INTERP_RESULT" \
 ./configure -bindir %{_bindir} \
             -libdir %{_libdir}/ocaml \
             -mandir %{_mandir} \
@@ -270,17 +265,15 @@
 
 %install
 make install \
-     BINDIR="%{buildroot}%{_bindir}" \
-     LIBDIR="%{buildroot}%{_libdir}/ocaml" \
-     MANDIR="%{buildroot}%{_mandir}"
-sed -i -e "s|^$RPM_BUILD_ROOT||" %{buildroot}%{_libdir}/ocaml/ld.conf
+     DESTDIR="%{buildroot}"
 
+export EMACS_SITE_LISP=%{_datadir}/emacs/site-lisp
 install -d %{buildroot}%{_infodir} \
-           %{buildroot}%{_datadir}/emacs/site-lisp
+           %{buildroot}${EMACS_SITE_LISP}
 (
   cd emacs
-  make install BINDIR=%{buildroot}/%{_bindir} 
EMACSDIR=%{buildroot}%{_datadir}/emacs/site-lisp
-  make install-ocamltags BINDIR=%{buildroot}/%{_bindir}
+  make install DESTDIR=%{buildroot} EMACSDIR=%{buildroot}${EMACS_SITE_LISP}
+  make install-ocamltags SCRIPTDIR=%{buildroot}${EMACS_SITE_LISP}
 )
 
 (
@@ -288,13 +281,12 @@
 )
 
 # fix bnc#411232
-echo '(load "ocaml.el" nil t t)' 
>%{buildroot}%{_datadir}/emacs/site-lisp/suse-start-ocaml.el
-cat <<EOF >%{buildroot}%{_datadir}/emacs/site-lisp/%{name}.el
+echo '(load "ocaml.el" nil t t)' 
>%{buildroot}${EMACS_SITE_LISP}/suse-start-ocaml.el
+tee %{buildroot}${EMACS_SITE_LISP}/%{name}.el <<EOF
 (autoload 'caml-mode "caml" "Caml editing mode" t)
 (add-hook 'caml-mode-hook 'font-lock-mode)
 (add-to-list 'auto-mode-alist '("\\\\.mli?$" . caml-mode))
 EOF
-sed -i '1s/^/#!\/usr\/bin\/ocaml\n/' %{buildroot}/%{_bindir}/ocamltags
 
 export EXCLUDE_FROM_STRIP="ocamldebug ocamlbrowser"
 
@@ -303,8 +295,32 @@
 cp -a typing/ utils/ parsing/ %{buildroot}%{_libdir}/ocaml/compiler-libs
 %fdupes %{buildroot}
 
+# rpmlint ...
+chmod -v a+x %{buildroot}%{_libdir}/ocaml/camlheader
+# preserve .cmxs and .so
+find %{buildroot} \( \
+       -name '*.a' -o \
+       -name '*.cma' -o \
+       -name '*.cmi' -o \
+       -name '*.cmo' -o \
+       -name '*.cmt' -o \
+       -name '*.cmti' -o \
+       -name '*.cmx' -o \
+       -name '*.cmxa' -o \
+       -name '*.conf' -o \
+       -name '*.h' -o \
+       -name '*.hva' -o \
+       -name '*.ml' -o \
+       -name '*.mli' -o \
+       -name '*.mll' -o \
+       -name '*.mlp' -o \
+       -name '*.mly' -o \
+       -name '*.o' -o \
+       -name '*.sml' \
+       \) -type f -exec chmod -v a-x "{}" \;
+
 mkdir -vp %{buildroot}%{_sysconfdir}/rpm
-cat > %{buildroot}%{_sysconfdir}/rpm/macros.%{name} <<_EOF_
+tee %{buildroot}%{_sysconfdir}/rpm/macros.%{name} <<'_EOF_'
 # get rid of /usr/lib/rpm/find-debuginfo.sh
 # strip kills the bytecode part of ELF binaries
 %if %{do_opt}
@@ -318,8 +334,85 @@
        %%{nil}
 %%ocaml_native_compiler 0
 %endif
+
+# setup.ml comes from oasis, but this is here for libs oasis depends on
+#
+# html goes into a separate, browsable dir
+# which is also safe regarding wiping due to %%doc macro usage
+%%_oasis_docdir_base %%{_datadir}/doc/ocaml
+%%_oasis_docdir_dvi   %%{_oasis_docdir_base}/%%{name}
+%%_oasis_docdir_html  %%{_oasis_docdir_base}/%%{name}
+%%_oasis_docdir_pdf   %%{_oasis_docdir_base}/%%{name}
+%%_oasis_docdir_ps    %%{_oasis_docdir_base}/%%{name}
+%%oasis_docdir        %%{_oasis_docdir_base}/%%{name}
+#
+# For now provide a convinience macro which covers also the parent dir
+%%oasis_docdir_dvi  %%dir %%{_oasis_docdir_base} \
+%%{_oasis_docdir_dvi}
+%%oasis_docdir_html %%dir %%{_oasis_docdir_base} \
+%%{_oasis_docdir_html}
+%%oasis_docdir_pdf  %%dir %%{_oasis_docdir_base} \
+%%{_oasis_docdir_pdf}
+%%oasis_docdir_ps   %%dir %%{_oasis_docdir_base} \
+%%{_oasis_docdir_ps}
+#
+# various macros to unify setup/build/install
+%%oasis_setup \
+       oasis setup
+%%ocaml_oasis_configure \
+ocaml setup.ml -configure \\\
+       --psdir          %%{_oasis_docdir_ps} \\\
+       --pdfdir         %%{_oasis_docdir_pdf} \\\
+       --dvidir         %%{_oasis_docdir_dvi} \\\
+       --htmldir        %%{_oasis_docdir_html} \\\
+       --docdir         %%{oasis_docdir} \\\
+       --localedir      %%{_datadir}/locale \\\
+       --datadir        %%{_datadir} \\\
+       \\\
+       --bindir         %%{_bindir} \\\
+       --mandir         %%{_mandir} \\\
+       --destdir        %%{buildroot} \\\
+       --datarootdir    %%{_datadir} \\\
+       --infodir        %%{_infodir} \\\
+       --libdir         %%{_libdir} \\\
+       --libexecdir     %%{_libexecdir} \\\
+       --localstatedir  %%{_localstatedir} \\\
+       --sbindir        %%{_sbindir} \\\
+       --prefix         %%{_prefix} \\\
+       --sysconfdir     %%{_sysconfdir} \\\
+       --exec-prefix    %%{_exec_prefix} \\\
+       --sharedstatedir %%{_sharedstatedir}
+#
+%%ocaml_oasis_build \
+       ocaml setup.ml -build
+%%ocaml_oasis_doc \
+       ocaml setup.ml -doc
+%%ocaml_oasis_install \
+       ocaml setup.ml -install
+%%ocaml_oasis_findlib_install \
+       export OCAMLFIND_DESTDIR=%%{buildroot}`ocamlc -where` ; \
+       export OCAMLFIND_LDCONF=/dev/null ; \
+       mkdir -p $OCAMLFIND_DESTDIR ; \
+       ocaml setup.ml -install
+%%ocaml_oasis_test \
+       ocaml setup.ml -test
+#
+#
+_EOF_
+#
+%if "%{?_rpmconfigdir}" == ""
+%define _rpmconfigdir /usr/lib/rpm
+%endif
+: _rpmconfigdir %{_rpmconfigdir}
+tag="ocamlfind"
+mkdir -vp %{buildroot}%{_rpmconfigdir}/fileattrs
+tee %{buildroot}%{_rpmconfigdir}/fileattrs/${tag}.attr <<_EOF_
+%__${tag}_provides %%{_rpmconfigdir}/${tag}.sh -prov
+%__${tag}_requires %%{_rpmconfigdir}/${tag}.sh -req
+%__${tag}_path     ^%%{_libdir}/ocaml/.*/META$|^%%{_libdir}/ocaml/META$
 _EOF_
-cat %{buildroot}%{_sysconfdir}/rpm/macros.%{name}
+#
+tee %{buildroot}%{_rpmconfigdir}/${tag}.sh < %{S:1}
 
 %post
 %install_info --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
@@ -329,7 +422,9 @@
 
 %files
 %defattr(-,root,root)
-%doc Changes LICENSE README
+%doc Changes LICENSE
+%{_rpmconfigdir}/fileattrs
+%attr(755,root,root) %{_rpmconfigdir}/*.sh
 %{_bindir}/*
 %{_mandir}/*/*
 %{_libdir}/ocaml/*.a
@@ -352,7 +447,6 @@
 %{_libdir}/ocaml/threads/*.cmx
 %endif
 %{_libdir}/ocaml/caml
-%{_libdir}/ocaml/ocamlbuild
 %{_libdir}/ocaml/Makefile.config
 %{_libdir}/ocaml/VERSION
 %{_libdir}/ocaml/extract_crc
@@ -364,7 +458,6 @@
 %exclude %{_libdir}/ocaml/graphicsX11.mli
 %{_infodir}/*
 %exclude %{_bindir}/ocamlrun
-%exclude %{_bindir}/ocamltags
 %exclude %{_bindir}/ocamldoc*
 %exclude %{_libdir}/ocaml/ocamldoc
 
@@ -390,7 +483,7 @@
 %{_libdir}/ocaml/threads/*.cmi
 %{_libdir}/ocaml/threads/*.cma
 %exclude %{_libdir}/ocaml/graphicsX11.cmi
-%doc README LICENSE Changes
+%doc LICENSE Changes
 
 %files x11
 %defattr(-,root,root,-)
@@ -417,13 +510,14 @@
 %dir %{_datadir}/emacs
 %dir %{_datadir}/emacs/site-lisp
 %{_datadir}/emacs/site-lisp/*
-%{_bindir}/ocamltags
 
 %files compiler-libs
 %defattr(-,root,root,-)
-%doc LICENSE README
+%doc LICENSE
 %{_libdir}/ocaml/compiler-libs
 %if %{do_opt}
+%exclude %{_libdir}/ocaml/compiler-libs/*.cmx
+%exclude %{_libdir}/ocaml/compiler-libs/*.o
 %exclude %{_libdir}/ocaml/compiler-libs/*/*.cmx
 %exclude %{_libdir}/ocaml/compiler-libs/*/*.o
 %endif
@@ -432,8 +526,10 @@
 
 %files compiler-libs-devel
 %defattr(-,root,root,-)
-%doc LICENSE README
+%doc LICENSE
 %if %{do_opt}
+%{_libdir}/ocaml/compiler-libs/*.cmx
+%{_libdir}/ocaml/compiler-libs/*.o
 %{_libdir}/ocaml/compiler-libs/*/*.cmx
 %{_libdir}/ocaml/compiler-libs/*/*.o
 %endif

++++++ ocaml-3.04-ocamltags--no-site-start.patch ++++++
--- /var/tmp/diff_new_pack.4dnLcm/_old  2016-07-05 09:51:02.000000000 +0200
+++ /var/tmp/diff_new_pack.4dnLcm/_new  2016-07-05 09:51:02.000000000 +0200
@@ -1,8 +1,12 @@
---- ocaml-3.11.0/emacs/ocamltags.in
-+++ ocaml-3.11.0/emacs/ocamltags.in
+---
+ emacs/ocamltags.in |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/emacs/ocamltags.in
++++ b/emacs/ocamltags.in
 @@ -1,4 +1,4 @@
 -":" ; @EMACS@ -batch -l $0 "$@" ; status=$? ; : '--*-Emacs-Lisp-*--' <<';'
 +":" ; @EMACS@ --batch --no-init-file --no-site-file -l $0 "$@" ; status=$? ; 
: '--*-Emacs-Lisp-*--' <<';'
  
- ;(***********************************************************************)
- ;(*                                                                     *)
+ ;**************************************************************************
+ ;*                                                                        *

++++++ ocaml-4.02-refman-html-0.tar.xz -> ocaml-4.03-refman-html.tar.xz ++++++
++++ 108159 lines of diff (skipped)

++++++ ocaml-4.02-refman.info.tar.xz -> ocaml-4.03-refman.info.tar.xz ++++++
Files old/infoman/ocaml.info.body-1.gz and new/infoman/ocaml.info.body-1.gz 
differ
Files old/infoman/ocaml.info.body-10.gz and new/infoman/ocaml.info.body-10.gz 
differ
Files old/infoman/ocaml.info.body-11.gz and new/infoman/ocaml.info.body-11.gz 
differ
Files old/infoman/ocaml.info.body-12.gz and new/infoman/ocaml.info.body-12.gz 
differ
Files old/infoman/ocaml.info.body-13.gz and new/infoman/ocaml.info.body-13.gz 
differ
Files old/infoman/ocaml.info.body-14.gz and new/infoman/ocaml.info.body-14.gz 
differ
Files old/infoman/ocaml.info.body-15.gz and new/infoman/ocaml.info.body-15.gz 
differ
Files old/infoman/ocaml.info.body-16.gz and new/infoman/ocaml.info.body-16.gz 
differ
Files old/infoman/ocaml.info.body-17.gz and new/infoman/ocaml.info.body-17.gz 
differ
Files old/infoman/ocaml.info.body-18.gz and new/infoman/ocaml.info.body-18.gz 
differ
Files old/infoman/ocaml.info.body-19.gz and new/infoman/ocaml.info.body-19.gz 
differ
Files old/infoman/ocaml.info.body-2.gz and new/infoman/ocaml.info.body-2.gz 
differ
Files old/infoman/ocaml.info.body-20.gz and new/infoman/ocaml.info.body-20.gz 
differ
Files old/infoman/ocaml.info.body-21.gz and new/infoman/ocaml.info.body-21.gz 
differ
Files old/infoman/ocaml.info.body-22.gz and new/infoman/ocaml.info.body-22.gz 
differ
Files old/infoman/ocaml.info.body-23.gz and new/infoman/ocaml.info.body-23.gz 
differ
Files old/infoman/ocaml.info.body-24.gz and new/infoman/ocaml.info.body-24.gz 
differ
Files old/infoman/ocaml.info.body-25.gz and new/infoman/ocaml.info.body-25.gz 
differ
Files old/infoman/ocaml.info.body-26.gz and new/infoman/ocaml.info.body-26.gz 
differ
Files old/infoman/ocaml.info.body-27.gz and new/infoman/ocaml.info.body-27.gz 
differ
Files old/infoman/ocaml.info.body-3.gz and new/infoman/ocaml.info.body-3.gz 
differ
Files old/infoman/ocaml.info.body-4.gz and new/infoman/ocaml.info.body-4.gz 
differ
Files old/infoman/ocaml.info.body-5.gz and new/infoman/ocaml.info.body-5.gz 
differ
Files old/infoman/ocaml.info.body-6.gz and new/infoman/ocaml.info.body-6.gz 
differ
Files old/infoman/ocaml.info.body-7.gz and new/infoman/ocaml.info.body-7.gz 
differ
Files old/infoman/ocaml.info.body-8.gz and new/infoman/ocaml.info.body-8.gz 
differ
Files old/infoman/ocaml.info.body-9.gz and new/infoman/ocaml.info.body-9.gz 
differ
Files old/infoman/ocaml.info.body.gz and new/infoman/ocaml.info.body.gz differ
Files old/infoman/ocaml.info.gz and new/infoman/ocaml.info.gz differ
Files old/infoman/ocaml.info.haux.gz and new/infoman/ocaml.info.haux.gz differ
Files old/infoman/ocaml.info.hocaml.info.hind.gz and 
new/infoman/ocaml.info.hocaml.info.hind.gz differ
Files old/infoman/ocaml.info.hocaml.info.kwd.hind.gz and 
new/infoman/ocaml.info.hocaml.info.kwd.hind.gz differ

++++++ ocaml-4.02-refman.info.tar.xz -> ocaml-4.03.0.tar.xz ++++++
++++ 408401 lines of diff (skipped)

++++++ ocaml-configure-Allow-user-defined-C-compiler-flags.patch ++++++
--- /var/tmp/diff_new_pack.4dnLcm/_old  2016-07-05 09:51:04.000000000 +0200
+++ /var/tmp/diff_new_pack.4dnLcm/_new  2016-07-05 09:51:04.000000000 +0200
@@ -6,13 +6,11 @@
  configure |    4 ++++
  1 file changed, 4 insertions(+)
 
-Index: ocaml-4.01.0/configure
-===================================================================
---- ocaml-4.01.0.orig/configure
-+++ ocaml-4.01.0/configure
-@@ -1612,6 +1612,10 @@ case "$buggycc" in
-     nativecccompopts="$nativecccompopts -fomit-frame-pointer";;
- esac
+--- a/configure
++++ b/configure
+@@ -1737,6 +1737,10 @@ else
+     has_huge_pages=false
+ fi
  
 +# Allow user defined C Compiler flags
 +bytecccompopts="$bytecccompopts $CFLAGS"

++++++ ocaml-findlib.rpm.prov_req.attr.sh ++++++
#!/bin/bash
set -e
prov_req_name="ocamlfind"
td=`mktemp --directory`

test -n "${td}"
_x() {
 rm -rf "${td}"
}
trap _x EXIT

cmd=
test "$1" = "-prov" && cmd=prov
test "$1" = "-req"  && cmd=req
do_work() {
  local f=$1
  local pkg_name
  local pkg_prov_req
  local pkg_prov
  local pkg_req
  local elem req
  pkg_name="${f##*/}"
  if test "${pkg_name}" = "META"
  then
    pkg_name="${f%/*}"
    pkg_name="${pkg_name##*/}"
  else
    pkg_name="${pkg_name#META.}"
  fi
  pkg_prov_req="`
    env \
      pkg_name="${pkg_name}" \
      cmd="${cmd}" \
    awk '
      BEGIN {
        dbg=1;
        count=1;
        depth=0;
        pkg_name=ENVIRON["pkg_name"];
        cmd=ENVIRON["cmd"];
        
        if(dbg) printf "bEGIN \\"%s\\" cmd: %s\n", pkg_name, cmd > 
"/dev/stderr" ;
        reqs[pkg_name]=""
        pkg_names[depth]=pkg_name
      }
      
      {
        if(dbg) printf "line: %s\n", $0  > "/dev/stderr"
      }
      
      /^[[:blank:]]*directory[[:blank:]]*=/ {
        if(dbg) printf "GOT: %s\n", $0 > "/dev/stderr" ;
        if (depth == 0) {
          x = split($0, a, "\\"");
          if ( a[2] ) {
            candidate = a[2];
            if(dbg) printf "dir: %s %s\n", x, candidate > "/dev/stderr" ;
            if (candidate ~ /^\^/) {
              next
            }
            if (candidate ~ /^\+/) {
              candidate = substr(candidate, 2);
            }
            if (candidate ~ /^\//) {
              x = split(candidate, a, "/");
              if ( x )
                candidate = a[x];
            }
            if (candidate ~ /^\.\.\//) {
              x = split(candidate, a, "/");
              if ( x )
                candidate = a[x];
            }
            if(dbg) printf "dir: %s %s\n", x, candidate > "/dev/stderr" ;
            if (candidate != pkg_name) {
              reqs[candidate] = reqs[pkg_name];
              delete reqs[pkg_name];
              pkg_name = candidate;
              if(dbg) printf "new pkg_name %s %s\n", x, pkg_name > 
"/dev/stderr" ;
              pkg_names[depth]=pkg_name
            } else {
              if(dbg) printf "pkg_name remains %s\n", pkg_name > "/dev/stderr" ;
            }
          }
        }
        next
      }

      /^[[:blank:]]*requires.*[[:blank:]]*=/ {
        if(dbg) printf "GOT: %s\n", $0 > "/dev/stderr" ;
        x = split($0, a, "\\"");
        if ( a[2] ) {
          if(dbg) printf "req2 %s %s\n", x, a[2] > "/dev/stderr" ;
          x = gsub("[[:blank:]]+", ",", a[2]);
          if(dbg) printf "req2 %s %s\n", x, a[2] > "/dev/stderr" ;
          reqs[pkg_name] = a[2];
        }
        next
      }
      
      /^[[:blank:]]*package[[:blank:]]/ {
        if(dbg) printf "GOT: %s\n", $0 > "/dev/stderr" ;
        depth = depth + 1;
        if(dbg) printf "depth %s\n", depth > "/dev/stderr" ;
        x = split($0, a, "\\"");
        if ( a[2] ) {
          if(dbg) printf "req2 %s %s\n", x, a[2] > "/dev/stderr" ;
          pkg_name = pkg_name"."a[2];
          reqs[pkg_name]=""
          pkg_names[depth]=pkg_name
          if(dbg) printf "new pkg_name %s %s\n", x, pkg_name > "/dev/stderr" ;
        }
        next
      }
      
      /^[[:blank:]]*)/ {
        if(dbg) printf "GOT: %s\n", $0 > "/dev/stderr" ;
        depth = depth -1;
        if(dbg) printf "depth %s\n", depth > "/dev/stderr" ;
        pkg_name=pkg_names[depth]
        if(dbg) printf "old pkg_name %s %s\n", x, pkg_name > "/dev/stderr" ;
        next
      }
      
      END {
        if(dbg) printf "eND \\"%s\\"\n", pkg_name > "/dev/stderr" ;
        for (req in reqs) {
          if(dbg)printf "eNd \\"%s\\"\n", req > "/dev/stderr";
          # format: provides:requires
          printf "%s:%s\n", req, reqs[req];
        }
        if(dbg) printf "ENd \\"%s\\"\n", pkg_name > "/dev/stderr" ;
      }
    ' \"${f}\"
  `"
  for elem in ${pkg_prov_req}
  do
    pkg_prov="${elem%%:*}"
    pkg_req="${elem#*:}"
    pkg_req="${pkg_req//,/ }"
    if test -n "${pkg_prov}" && test "${cmd}" = "prov"
    then
      echo "${prov_req_name}($pkg_prov)"
    fi
    if test "${cmd}" = "req"
    then
      for i in ${pkg_req}
      do
        echo "${prov_req_name}(${i})"
      done
    fi
  done
}
while read filename
do
  case "${filename}" in
    */META*) do_work "${filename}" ;;
    *) ;;
  esac
done
++++++ ocamldoc-man-th.patch ++++++
http://caml.inria.fr/mantis/view.php?id=7281
---
 ocamldoc/odoc_man.ml |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

--- a/ocamldoc/odoc_man.ml
+++ b/ocamldoc/odoc_man.ml
@@ -871,7 +871,7 @@ class man =
         let b = new_buf () in
         bs b (".TH \""^cl.cl_name^"\" ");
         bs b !man_section ;
-        bs b (" source: "^Odoc_misc.current_date^" ");
+        bs b (" "^Odoc_misc.current_date^" ");
         bs b "OCamldoc ";
         bs b ("\""^(match !Global.title with Some t -> t | None -> "")^"\"\n");
 
@@ -929,7 +929,7 @@ class man =
         let b = new_buf () in
         bs b (".TH \""^ct.clt_name^"\" ");
         bs b !man_section ;
-        bs b (" source: "^Odoc_misc.current_date^" ");
+        bs b (" "^Odoc_misc.current_date^" ");
         bs b "OCamldoc ";
         bs b ("\""^(match !Global.title with Some t -> t | None -> "")^"\"\n");
 
@@ -1021,7 +1021,7 @@ class man =
         let b = new_buf () in
         bs b (".TH \""^mt.mt_name^"\" ");
         bs b !man_section ;
-        bs b (" source: "^Odoc_misc.current_date^" ");
+        bs b (" "^Odoc_misc.current_date^" ");
         bs b "OCamldoc ";
         bs b ("\""^(match !Global.title with Some t -> t | None -> "")^"\"\n");
 
@@ -1103,7 +1103,7 @@ class man =
         let b = new_buf () in
         bs b (".TH \""^m.m_name^"\" ");
         bs b !man_section ;
-        bs b (" source: "^Odoc_misc.current_date^" ");
+        bs b (" "^Odoc_misc.current_date^" ");
         bs b "OCamldoc ";
         bs b ("\""^(match !Global.title with Some t -> t | None -> "")^"\"\n");
 
@@ -1209,7 +1209,7 @@ class man =
         let b = new_buf () in
         bs b (".TH \""^name^"\" ");
         bs b !man_section ;
-        bs b (" source: "^Odoc_misc.current_date^" ");
+        bs b (" "^Odoc_misc.current_date^" ");
         bs b "OCamldoc ";
         bs b ("\""^(match !Global.title with Some t -> t | None -> "")^"\"\n");
         bs b ".SH NAME\n";
++++++ update_ocaml_deps.sh ++++++
--- /var/tmp/diff_new_pack.4dnLcm/_old  2016-07-05 09:51:04.000000000 +0200
+++ /var/tmp/diff_new_pack.4dnLcm/_new  2016-07-05 09:51:04.000000000 +0200
@@ -4,10 +4,20 @@
 #et -x
 #
 do_download=false
+substitute_for_prjconf=
 until test "$#" -eq 0
 do
        case "$1" in
                -d) do_download=true ;;
+               -o)
+               substitute_for_prjconf=$2
+               if test -f "${substitute_for_prjconf}"
+               then
+                       echo "substitute file for prjconf exists: 
${substitute_for_prjconf}"
+                       exit 1
+               fi
+               shift
+               ;;
                *) ;;
        esac
        shift
@@ -23,13 +33,13 @@
 deps="${td}/deps.txt"
 plain_deps="${td}/plain_deps.txt"
 srcrpm_dir="${td}/srcrpm"
-prov_dir="${td}/prov"
-req_dir="${td}/req"
+dir_prov_ocaml="${td}/prov"
+dir_req_ocaml="${td}/req"
 dep_list="${td}/dep_list"
 t="${td}/t"
-mkdir "${srcrpm_dir}" "${prov_dir}" "${req_dir}"
+mkdir "${srcrpm_dir}" "${dir_prov_ocaml}" "${dir_req_ocaml}"
 #
-obs='/usr/bin/osc -A https://api.opensuse.org'
+obs="/usr/bin/osc --config=$HOME/.osc/oscrc -A https://api.opensuse.org";
 projects="
 devel:languages:ocaml
 Virtualization
@@ -61,19 +71,19 @@
                do
                        name=`rpm -qp --nosignature --qf '%{NAME}' "${rpm}"`
                        rpm -qp --nosignature --qf '%{SOURCERPM}' "${rpm}" | 
sed 's@-[^-]\+-[^-]\+\.[^\.]\+\.rpm$@@' > "${srcrpm_dir}/${name}" &
-                       rpm -qp --nosignature --provides "${rpm}" | sed -n 
"/^ocaml(/{s@[()[:blank:]]\+@§@g;p}" > "${prov_dir}/${name}" &
-                       rpm -qp --nosignature --requires "${rpm}" | sed -n 
"/^ocaml(/{s@[()[:blank:]]\+@§@g;p}" > "${req_dir}/${name}" &
+                       rpm -qp --nosignature --provides "${rpm}" | sed -n 
'/^ocaml\(find\)\?(/{s@[()[:blank:]]\+@§@g;p}' > "${dir_prov_ocaml}/${name}" &
+                       rpm -qp --nosignature --requires "${rpm}" | sed -n 
'/^ocaml\(find\)\?(/{s@[()[:blank:]]\+@§@g;p}' > "${dir_req_ocaml}/${name}" &
                        wait
                done
                #
-               for rpm in ${req_dir}/*
+               for rpm in ${dir_req_ocaml}/*
                do
                        if test -s "${rpm}"
                        then
                                req_rpm="${rpm##*/}"
                                for dep in `cat "${rpm}"`
                                do
-                                       provs=(` grep -rl "${dep}" ${prov_dir} 
`)
+                                       provs=(` grep -rl "${dep}" 
${dir_prov_ocaml} `)
                                        if test ${#provs[@]} -eq 0
                                        then
                                                echo "Nothing provides ${dep} 
required by ${req_rpm}" >&2
@@ -197,6 +207,19 @@
                        fi
                done < "${dep_list}"
                #
+               if test -n "${substitute_for_prjconf}"
+               then
+                       for prov in `grep -rl ^ocamlfind "${dir_prov_ocaml}"`
+                       do
+                               prov_rpm=${prov##*/}
+                               sed -n "
+                               /^ocamlfind/ {
+                               s@^\([^§]\+\)§\([^§]\+\)§@Substitute: \1(\2) 
${prov_rpm}=@p
+                               }
+                               " ${prov}
+                       done | sort >> "${substitute_for_prjconf}"
+               fi
+               #
                popd > /dev/null
        fi
 done


Reply via email to