[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#795443: marked as done (ocaml: please make the ocamldoc date configurable)



Your message dated Fri, 14 Aug 2015 11:35:09 +0200
with message-id <55CDB64D.2060803@debian.org>
and subject line Re: Bug#795443: ocaml: please make the ocamldoc date configurable
has caused the Debian Bug report #795443,
regarding ocaml: please make the ocamldoc date configurable
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
795443: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=795443
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Source: ocaml
Version: 4.01.0-5
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: toolchain
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi,

While working on the "reproducible builds" effort [1], we have noticed
that ocamldoc always generates manpages with the current date.

The attached patch adds a -man-date argument to ocamldoc to accept any
arbitrary string.

An alternative would be to accept a UNIX timestamp and then format that
but a patch for that would be more invasive. The UNIX manpage format
accepts mostly any value here anyway, so this isn't too restrictive.

 [1]: https://wiki.debian.org/ReproducibleBuilds


Regards,

-- 
      ,''`.
     : :'  :     Chris Lamb
     `. `'`      lamby@debian.org / chris-lamb.co.uk
       `-
diff --git a/ocamldoc/odoc_args.ml b/ocamldoc/odoc_args.ml
index be5ce12..5efd6ce 100644
--- a/ocamldoc/odoc_args.ml
+++ b/ocamldoc/odoc_args.ml
@@ -295,6 +295,7 @@ let default_options = [
   "-man-mini", Arg.Set Odoc_man.man_mini, M.man_mini ;
   "-man-suffix", Arg.String (fun s -> Odoc_man.man_suffix := s), M.man_suffix ;
   "-man-section", Arg.String (fun s -> Odoc_man.man_section := s), M.man_section ;
+  "-man-date", Arg.String (fun s -> Odoc_man.man_date := s), M.man_date ;
 
 ]
 
diff --git a/ocamldoc/odoc_man.ml b/ocamldoc/odoc_man.ml
index 7e01f8d..05c1f46 100644
--- a/ocamldoc/odoc_man.ml
+++ b/ocamldoc/odoc_man.ml
@@ -22,6 +22,7 @@ open Search
 
 let man_suffix = ref Odoc_messages.default_man_suffix
 let man_section = ref Odoc_messages.default_man_section
+let man_date = ref (Odoc_misc.string_of_date ~hour: false (Unix.time ()))
 
 let man_mini = ref false
 
@@ -720,14 +721,13 @@ class man =
     (** Generate the man page for the given class.*)
     method generate_for_class cl =
       Odoc_info.reset_type_names () ;
-      let date = Unix.time () in
       let file = self#file_name cl.cl_name in
       try
         let chanout = self#open_out file in
         let b = new_buf () in
         bs b (".TH \""^cl.cl_name^"\" ");
         bs b !man_section ;
-        bs b (" "^(Odoc_misc.string_of_date ~hour: false date)^" ");
+        bs b (" "^(!man_date)^" ");
         bs b "OCamldoc ";
         bs b ("\""^(match !Global.title with Some t -> t | None -> "")^"\"\n");
 
@@ -779,14 +779,13 @@ class man =
     (** Generate the man page for the given class type.*)
     method generate_for_class_type ct =
       Odoc_info.reset_type_names () ;
-      let date = Unix.time () in
       let file = self#file_name ct.clt_name in
       try
         let chanout = self#open_out file in
         let b = new_buf () in
         bs b (".TH \""^ct.clt_name^"\" ");
         bs b !man_section ;
-        bs b (" "^(Odoc_misc.string_of_date ~hour: false date)^" ");
+        bs b (" "^(!man_date)^" ");
         bs b "OCamldoc ";
         bs b ("\""^(match !Global.title with Some t -> t | None -> "")^"\"\n");
 
@@ -836,14 +835,13 @@ class man =
     (** Generate the man file for the given module type.
        @raise Failure if an error occurs.*)
     method generate_for_module_type mt =
-      let date = Unix.time () in
       let file = self#file_name mt.mt_name in
       try
         let chanout = self#open_out file in
         let b = new_buf () in
         bs b (".TH \""^mt.mt_name^"\" ");
         bs b !man_section ;
-        bs b (" "^(Odoc_misc.string_of_date ~hour: false date)^" ");
+        bs b (" "^(!man_date)^" ");
         bs b "OCamldoc ";
         bs b ("\""^(match !Global.title with Some t -> t | None -> "")^"\"\n");
 
@@ -914,14 +912,13 @@ class man =
     (** Generate the man file for the given module.
        @raise Failure if an error occurs.*)
     method generate_for_module m =
-      let date = Unix.time () in
       let file = self#file_name m.m_name in
       try
         let chanout = self#open_out file in
         let b = new_buf () in
         bs b (".TH \""^m.m_name^"\" ");
         bs b !man_section ;
-        bs b (" "^(Odoc_misc.string_of_date ~hour: false date)^" ");
+        bs b (" "^(!man_date)^" ");
         bs b "OCamldoc ";
         bs b ("\""^(match !Global.title with Some t -> t | None -> "")^"\"\n");
 
@@ -1045,14 +1042,13 @@ class man =
           | Res_const (_,f) -> f.vc_name
          )
      in
-     let date = Unix.time () in
       let file = self#file_name name in
       try
         let chanout = self#open_out file in
         let b = new_buf () in
         bs b (".TH \""^name^"\" ");
         bs b !man_section ;
-        bs b (" "^(Odoc_misc.string_of_date ~hour: false date)^" ");
+        bs b (" "^(!man_date)^" ");
         bs b "OCamldoc ";
         bs b ("\""^(match !Global.title with Some t -> t | None -> "")^"\"\n");
         bs b ".SH NAME\n";
diff --git a/ocamldoc/odoc_messages.ml b/ocamldoc/odoc_messages.ml
index 2d6327b..7ab6ddc 100644
--- a/ocamldoc/odoc_messages.ml
+++ b/ocamldoc/odoc_messages.ml
@@ -95,6 +95,8 @@ let man_mini = "\tGenerate man pages only for modules, module types, classes\n"^
 let default_man_section = "3"
 let man_section = "<section>\n\t\tUse <section> in man page files "^
   "(default is "^default_man_section^") "^man_only^"\n"
+let man_date = "<date>\n\t\tUse <date> in man page files "^
+  "(default is today's date in YYYY-MM-DD format)"^man_only^"\n"
 
 let default_man_suffix = default_man_section^"o"
 let man_suffix = "<suffix>\n\t\tUse <suffix> for man page files "^

--- End Message ---
--- Begin Message ---
Le 14/08/2015 10:37, Chris Lamb a écrit :
>> This is the same as #794586
> 
> Ah, damn. For some reason this bug/patch wasn't visible in our tracking
> interface so I started work on it..

Maybe because it is fixed in experimental?

> Feel free to close this and apologies for the noise.

Done.

Cheers,

-- 
Stéphane

--- End Message ---

Reply to: