[Pkg-ocaml-maint-commits] [SCM] OCaml packaging branch, master, updated. debian/3.11.0-5-10-g4a60790

Stefano Zacchiroli zack at upsilon.cc
Mon Apr 6 13:41:01 UTC 2009


The following commit has been merged in the master branch:
commit 560cd164675e5f7d3b86c9d6bde0c58350105409
Author: Stefano Zacchiroli <zack at upsilon.cc>
Date:   Mon Apr 6 13:59:18 2009 +0200

    new patch ocamldoc_natdynlink: dyn-loading for ocamldoc.opt

diff --git a/debian/changelog b/debian/changelog
index 4ab1b00..71dc9d9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -8,6 +8,9 @@ ocaml (3.11.0-6) UNRELEASED; urgency=low
   * debian/control
     - remove recommends to ledit from ocaml-nox (does not ship "ocaml")
     - change recommends from ledit to "ledit | rlwrap" for ocaml-interp
+  * debian/patches/
+    - add new patch ocamldoc_natdynlink (from upstream): enable
+      dynamic loading of ocamldoc custom printers also for ocamldoc.opt
 
  -- Samuel Mimram <smimram at debian.org>  Mon, 16 Mar 2009 15:07:00 +0100
 
diff --git a/debian/patches/00list b/debian/patches/00list
index 3c08655..a5be651 100644
--- a/debian/patches/00list
+++ b/debian/patches/00list
@@ -2,6 +2,7 @@ alpha_ld_no-relax.dpatch
 call_ld_with_proper_flags.dpatch
 no_rpath.dpatch
 stdlib_man_section.dpatch
+ocamldoc_natdynlink.dpatch
 install_scripts_config.dpatch
 install_ocamlbuild.dpatch
 dbm_ldopts.dpatch
diff --git a/debian/patches/ocamldoc_natdynlink.dpatch b/debian/patches/ocamldoc_natdynlink.dpatch
new file mode 100755
index 0000000..99aaf80
--- /dev/null
+++ b/debian/patches/ocamldoc_natdynlink.dpatch
@@ -0,0 +1,183 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## ocamldoc_natdynlink.dpatch by Stefano Zacchiroli <zack at debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Add to ocamldoc support for native code dynamic loading.
+## DP: That enables using ocamldoc flags such as "-g" also with
+## DP: ocamldoc.opt. Patch is taken from OCaml CVS and is already
+## DP: integrated upstream for future releases.
+
+ at DPATCH@
+diff -urNad ocaml~/man/ocamldoc.m ocaml/man/ocamldoc.m
+--- ocaml~/man/ocamldoc.m	2009-02-21 12:54:30.000000000 +0100
++++ ocaml/man/ocamldoc.m	2009-04-06 13:57:21.520452487 +0200
+@@ -110,10 +110,7 @@
+ .TP
+ .BI \-g \ file
+ Dynamically load the given file (which extension usually is .cmo or .cma),
+-which defines a custom documentation generator. This option is supported by the
+-.BR ocamldoc (1)
+-command, but not by its native-code version
+-.BR ocamldoc.opt .
++which defines a custom documentation generator.
+ If the given file is a simple one and does not exist in
+ the current directory, then ocamldoc looks for it in the custom
+ generators default directory, and in the directories specified with the
+diff -urNad ocaml~/ocamldoc/Makefile ocaml/ocamldoc/Makefile
+--- ocaml~/ocamldoc/Makefile	2009-04-06 13:56:34.000451820 +0200
++++ ocaml/ocamldoc/Makefile	2009-04-06 13:56:34.272459850 +0200
+@@ -111,16 +111,17 @@
+ CMXFILES= $(CMOFILES:.cmo=.cmx)
+ CMIFILES= $(CMOFILES:.cmo=.cmi)
+ 
+-EXECMOFILES=$(CMOFILES)\
+-	odoc_dag2html.cmo\
+-	odoc_to_text.cmo\
+-	odoc_ocamlhtml.cmo\
+-	odoc_html.cmo\
+-	odoc_man.cmo\
++EXECMOFILES=$(CMOFILES) \
++	odoc_dag2html.cmo \
++	odoc_to_text.cmo \
++	odoc_ocamlhtml.cmo \
++	odoc_html.cmo \
++	odoc_man.cmo \
+ 	odoc_latex_style.cmo \
+-	odoc_latex.cmo\
+-	odoc_texi.cmo\
+-	odoc_dot.cmo
++	odoc_latex.cmo \
++	odoc_texi.cmo \
++	odoc_dot.cmo \
++	odoc.cmo
+ 
+ EXECMXFILES= $(EXECMOFILES:.cmo=.cmx)
+ EXECMIFILES= $(EXECMOFILES:.cmo=.cmi)
+@@ -199,10 +200,10 @@
+ debug:
+ 	make OCAMLPP=""
+ 
+-$(OCAMLDOC): $(EXECMOFILES) odoc.cmo
+-	$(OCAMLC) -o $@ -linkall unix.cma str.cma dynlink.cma $(LINKFLAGS) $(OCAMLCMOFILES) $(EXECMOFILES) odoc.cmo
+-$(OCAMLDOC_OPT): $(EXECMXFILES) odoc_opt.cmx
+-	$(OCAMLOPT) -o $@ unix.cmxa str.cmxa $(LINKFLAGS) $(OCAMLCMXFILES) $(EXECMXFILES) odoc_opt.cmx
++$(OCAMLDOC): $(EXECMOFILES)
++	$(OCAMLC) -o $@ -linkall unix.cma str.cma dynlink.cma $(LINKFLAGS) $(OCAMLCMOFILES) $(EXECMOFILES)
++$(OCAMLDOC_OPT): $(EXECMXFILES)
++	$(OCAMLOPT) -o $@ unix.cmxa str.cmxa dynlink.cmxa $(LINKFLAGS) $(OCAMLCMXFILES) $(EXECMXFILES)
+ 
+ $(OCAMLDOC_LIBCMA): $(LIBCMOFILES)
+ 	$(OCAMLC) -a -o $@ $(LINKFLAGS) $(OCAMLCMOFILES) $(LIBCMOFILES)
+@@ -211,7 +212,7 @@
+ 
+ manpages: stdlib_man/Pervasives.3o
+ 
+-dot: $(EXECMOFILES) odoc.cmo
++dot: $(EXECMOFILES)
+ 	$(OCAMLDOC_RUN) -dot -dot-reduce -o ocamldoc.dot $(INCLUDES) \
+ 	odoc*.ml
+ 
+diff -urNad ocaml~/ocamldoc/odoc.ml ocaml/ocamldoc/odoc.ml
+--- ocaml~/ocamldoc/odoc.ml	2009-04-06 13:52:17.000000000 +0200
++++ ocaml/ocamldoc/odoc.ml	2009-04-06 13:56:34.272459850 +0200
+@@ -25,17 +25,18 @@
+ 
+ (* we check if we must load a module given on the command line *)
+ let arg_list = Array.to_list Sys.argv
+-let (cmo_or_cma_opt, paths) =
++let (cm_opt, paths) =
+   let rec iter (f_opt, inc) = function
+       [] | _ :: [] -> (f_opt, inc)
+     | "-g" :: file :: q when
+         ((Filename.check_suffix file "cmo") or
+-         (Filename.check_suffix file "cma")) &
++         (Filename.check_suffix file "cma") or
++           (Filename.check_suffix file "cmxs")) &
+         (f_opt = None) ->
+-          iter (Some file, inc) q
+-    | "-i" :: dir :: q ->
+-        iter (f_opt, inc @ [dir]) q
+-    | _ :: q ->
++      iter (Some file, inc) q
++  | "-i" :: dir :: q ->
++      iter (f_opt, inc @ [dir]) q
++  | _ :: q ->
+         iter (f_opt, inc) q
+   in
+   iter (None, []) arg_list
+@@ -63,12 +64,11 @@
+      )
+ 
+ let _ =
+-  match cmo_or_cma_opt with
++  match cm_opt with
+     None ->
+       ()
+   | Some file ->
+-      (* initializations for dynamic loading *)
+-      Dynlink.init ();
++      let file = Dynlink.adapt_filename file in
+       Dynlink.allow_unsafe_modules true;
+       try
+         let real_file = get_real_filename file in
+diff -urNad ocaml~/ocamldoc/odoc_args.ml ocaml/ocamldoc/odoc_args.ml
+--- ocaml~/ocamldoc/odoc_args.ml	2009-04-06 13:52:17.000000000 +0200
++++ ocaml/ocamldoc/odoc_args.ml	2009-04-06 13:56:34.272459850 +0200
+@@ -24,8 +24,6 @@
+ 
+ let include_dirs = Clflags.include_dirs
+ 
+-let bytecode_mode = ref true
+-
+ class type doc_generator =
+     object
+       method generate : Odoc_module.t_module list -> unit
+@@ -254,10 +252,8 @@
+   "-dot", Arg.Unit (fun () -> set_doc_generator !default_dot_generator), M.generate_dot ;
+   "-customdir", Arg.Unit (fun () -> Printf.printf "%s\n" Odoc_config.custom_generators_path; exit 0),
+   M.display_custom_generators_dir ;
+-  "-i", Arg.String (fun s -> if !bytecode_mode then () else (prerr_endline (M.option_not_in_native_code "-i"); exit 1)),
+-  M.add_load_dir ;
+-  "-g", Arg.String (fun s -> if !bytecode_mode then () else (prerr_endline (M.option_not_in_native_code "-g"); exit 1)),
+-  M.load_file ^
++  "-i", Arg.String (fun s -> ()), M.add_load_dir ;
++  "-g", Arg.String (fun s -> ()), M.load_file ^
+   "\n\n *** HTML options ***\n";
+ 
+ (* html only options *)
+diff -urNad ocaml~/ocamldoc/odoc_args.mli ocaml/ocamldoc/odoc_args.mli
+--- ocaml~/ocamldoc/odoc_args.mli	2009-04-06 13:52:17.000000000 +0200
++++ ocaml/ocamldoc/odoc_args.mli	2009-04-06 13:56:34.272459850 +0200
+@@ -22,10 +22,6 @@
+ (** The include_dirs in the OCaml compiler. *)
+ val include_dirs : string list ref
+ 
+-(** Indicate if we are in bytecode mode or not.
+-   (For the [ocamldoc] command).*)
+-val bytecode_mode : bool ref
+-
+ (** The class type of documentation generators. *)
+ class type doc_generator =
+   object method generate : Odoc_module.t_module list -> unit end
+diff -urNad ocaml~/ocamldoc/odoc_messages.ml ocaml/ocamldoc/odoc_messages.ml
+--- ocaml~/ocamldoc/odoc_messages.ml	2009-04-06 13:52:17.000000000 +0200
++++ ocaml/ocamldoc/odoc_messages.ml	2009-04-06 13:56:34.272459850 +0200
+@@ -24,7 +24,6 @@
+ let usage = "Usage : "^(Sys.argv.(0))^" [options] <files>\n"
+ let options_are = "Options are :"
+ let option_version = "\tPrint version and exit"
+-let bytecode_only = "(bytecode version only)"
+ let latex_only = "(LaTeX only)"
+ let texi_only = "(TeXinfo only)"
+ let latex_texi_only = "(LaTeX and TeXinfo only)"
+@@ -41,8 +40,8 @@
+ let option_text ="<file>\tConsider <file> as a .txt file"
+ let display_custom_generators_dir = "\tDisplay custom generators standard directory and exit"
+ let add_load_dir = "<dir>\tAdd the given directory to the search path for custom\n"^
+-  "\t\tgenerators "^bytecode_only
+-let load_file = "<file.cm[o|a]>\n\t\tLoad file defining a new documentation generator\n\t\t"^bytecode_only
++  "\t\tgenerators"
++let load_file = "<file.cm[o|a|xs]>\n\t\tLoad file defining a new documentation generator"
+ let nolabels = "\tIgnore non-optional labels in types"
+ let werr = "\tTreat ocamldoc warnings as errors"
+ let hide_warnings = "\n\t\tdo not print ocamldoc warnings"

-- 
OCaml packaging



More information about the Pkg-ocaml-maint-commits mailing list