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
