Debian Bug report logs - #256900
ocaml: Ocaml compiled programs cannot be stripped, hence either don't work or violate policy

version graph

Package: ocaml; Maintainer for ocaml is Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>; Source for ocaml is src:ocaml.

Reported by: Stéphane Glondu <glondu@debian.org>

Date: Tue, 29 Jun 2004 19:48:01 UTC

Severity: important

Tags: patch, upstream

Fixed in version ocaml/3.12.0-1

Done: Stéphane Glondu <glondu@debian.org>

Bug is archived. No further changes may be made.

Toggle useless messages

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to debian-bugs-dist@lists.debian.org, Sven Luther <luther@debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Jeroen van Wolffelaar <jeroen@wolffelaar.nl>:
New Bug report received and forwarded. Copy sent to Sven Luther <luther@debian.org>. Full text and rfc822 format available.

Message #5 received at submit@bugs.debian.org (full text, mbox):

From: Jeroen van Wolffelaar <jeroen@wolffelaar.nl>
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: ocaml: Ocaml compiled programs cannot be stripped, hence either don't work or violate policy
Date: Tue, 29 Jun 2004 21:34:10 +0200
Package: ocaml
Severity: important

As also partly discussed in #69724, ocaml-compiled binaries cannot be
stripped without becoming useless.

I don't know how exactly this comes, but IMHO, stripping a binary should
not render it useless, so I guess OCaml is wrongly using some optional,
discardable section, like those intended for debugging information, to
store essential data. Some ELF format wizard would probably be better at
explaining this / nailing this down.

--Jeroen

-- System Information:
Debian Release: testing/unstable
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: i386 (i686)
Kernel: Linux 2.6.3
Locale: LANG=nl_NL.UTF-8@euro, LC_CTYPE=nl_NL.UTF-8@euro

-- 
Jeroen van Wolffelaar
jeroen@wolffelaar.nl
http://jeroen.A-Eskwadraat.nl



Information forwarded to debian-bugs-dist@lists.debian.org, Sven Luther <luther@debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Sven Luther <sven.luther@wanadoo.fr>:
Extra info received and forwarded to list. Copy sent to Sven Luther <luther@debian.org>. Full text and rfc822 format available.

Message #10 received at submit@bugs.debian.org (full text, mbox):

From: Sven Luther <sven.luther@wanadoo.fr>
To: Jeroen van Wolffelaar <jeroen@wolffelaar.nl>, 256900@bugs.debian.org
Cc: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: Re: Bug#256900: ocaml: Ocaml compiled programs cannot be stripped, hence either don't work or violate policy
Date: Tue, 29 Jun 2004 22:07:44 +0200
On Tue, Jun 29, 2004 at 09:34:10PM +0200, Jeroen van Wolffelaar wrote:
> Package: ocaml
> Severity: important
> 
> As also partly discussed in #69724, ocaml-compiled binaries cannot be
> stripped without becoming useless.
> 
> I don't know how exactly this comes, but IMHO, stripping a binary should
> not render it useless, so I guess OCaml is wrongly using some optional,
> discardable section, like those intended for debugging information, to
> store essential data. Some ELF format wizard would probably be better at
> explaining this / nailing this down.

Yep, it is using some section for putting its bytecode data, and once
this is discarded, it becomes useless.

I would greatly like to get some (constructive) input from an ELF format
wizard or something, preverably an input which would be acceptable
upstream also :)

Friendly,

Sven Luther



Information forwarded to debian-bugs-dist@lists.debian.org, Sven Luther <luther@debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Sven Luther <sven.luther@wanadoo.fr>:
Extra info received and forwarded to list. Copy sent to Sven Luther <luther@debian.org>. Full text and rfc822 format available.

Tags added: help, upstream Request was from Jeroen van Wolffelaar <jeroen@wolffelaar.nl> to control@bugs.debian.org. Full text and rfc822 format available.

Information forwarded to debian-bugs-dist@lists.debian.org, Sven Luther <luther@debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Jeroen van Wolffelaar <jeroen@wolffelaar.nl>:
Extra info received and forwarded to list. Copy sent to Sven Luther <luther@debian.org>. Full text and rfc822 format available.

Message #22 received at 256900@bugs.debian.org (full text, mbox):

From: Jeroen van Wolffelaar <jeroen@wolffelaar.nl>
To: 256900@bugs.debian.org
Subject: Example
Date: Tue, 29 Jun 2004 22:46:34 +0200
Example stolen from John Goertzen (thanks):

$ echo 'print_endline "Hello world"' > test.ml
$ ocamlc -custom -o test test.ml
$ ./test
Hello world
$ ls -l test
-rwxr-xr-x    1 jgoerzen jgoerzen   157744 Jun  4 13:29 test
$ file test
test: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, dynamically linked (uses shared libs), not stripped
$ strip test
$ ls -l test
-rwxr-xr-x    1 jgoerzen jgoerzen   113804 Jun  4 13:29 test
$ file test
test: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, dynamically linked (uses shared libs), stripped
$ ./test
No bytecode file specified.

-- 
Jeroen van Wolffelaar
Jeroen@wolffelaar.nl (also for Jabber & MSN; ICQ: 33944357)
http://Jeroen.A-Eskwadraat.nl



Information forwarded to debian-bugs-dist@lists.debian.org, Sven Luther <luther@debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Sven Luther <sven.luther@wanadoo.fr>:
Extra info received and forwarded to list. Copy sent to Sven Luther <luther@debian.org>. Full text and rfc822 format available.

Message #27 received at 256900@bugs.debian.org (full text, mbox):

From: Sven Luther <sven.luther@wanadoo.fr>
To: Jeroen van Wolffelaar <jeroen@wolffelaar.nl>, 256900@bugs.debian.org
Subject: Re: Bug#256900: Example
Date: Tue, 29 Jun 2004 23:12:06 +0200
On Tue, Jun 29, 2004 at 10:46:34PM +0200, Jeroen van Wolffelaar wrote:
> Example stolen from John Goertzen (thanks):
> 
> $ echo 'print_endline "Hello world"' > test.ml
> $ ocamlc -custom -o test test.ml
> $ ./test
> Hello world
> $ ls -l test
> -rwxr-xr-x    1 jgoerzen jgoerzen   157744 Jun  4 13:29 test
> $ file test
> test: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, dynamically linked (uses shared libs), not stripped
> $ strip test
> $ ls -l test
> -rwxr-xr-x    1 jgoerzen jgoerzen   113804 Jun  4 13:29 test
> $ file test
> test: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, dynamically linked (uses shared libs), stripped
> $ ./test
> No bytecode file specified.

Sure. This has come up many times now, but i don't remember what
upstreams response was. Something about not breaking backward
compatibility maybe ?

Friendly,

Sven Luther



Information forwarded to debian-bugs-dist@lists.debian.org, Sven Luther <luther@debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Jeroen van Wolffelaar <jeroen@wolffelaar.nl>:
Extra info received and forwarded to list. Copy sent to Sven Luther <luther@debian.org>. Full text and rfc822 format available.

Message #32 received at 256900@bugs.debian.org (full text, mbox):

From: Jeroen van Wolffelaar <jeroen@wolffelaar.nl>
To: 256900@bugs.debian.org
Subject: [dan@debian.org: Re: ELF expert's help/advice/opinion wanted for two bugs]
Date: Tue, 29 Jun 2004 23:24:30 +0200
> ----- Forwarded message from Daniel Jacobowitz <dan@debian.org> -----
> Date: Tue, 29 Jun 2004 16:56:14 -0400
> From: Daniel Jacobowitz <dan@debian.org>
> To: debian-devel@lists.debian.org
> Subject: Re: ELF expert's help/advice/opinion wanted for two bugs
> 
> On Tue, Jun 29, 2004 at 10:42:10PM +0200, Jeroen van Wolffelaar wrote:
> > http://bugs.debian.org/256900 : ocaml
> > 
> >   The ocaml compiler produces executable elf's, but once stripped, they
> >   stop working. The issue is the placement of the bytecode, it
> >   apparantly is seen by strip as a needless section, good for debugging
> >   only or something.
> > 
> >   Advice on how to fix ocaml is welcome (or strip, if that is at fault,
> >   but that seems unlikely to me).
> 
> It's a bug in ocaml.  If I'm interpreting this right, it's using space
> on disk, not loaded by the ELF loader, and then opening the binary to
> get at it.  Here's the last section (sorting by file offset) in the
> binary:
>   [33] .strtab           STRTAB          00000000 020ca0 00327e 00 0   0  1
> 
> Here's the binary:
> -rw-r--r--    1 drow     drow       157704 Jun 29 16:49 ocaml_binary
> 
> The end of .strtab is at 0x20ca0 + 0x327e == 147230.  I assume the 10K
> after that is bytecode.  At least, it's meaningful data, and it has a
> string signature at the end.
> 
> If you want to be able to use ELF tools on an ELF binary, then obey the
> rules of ELF.  Put the bytecode in a section, mark it loadable, and
> read it from memory instead of grubbing around in /proc/self/exe.

So, the problem is that the bytecode for ocaml is hacked into the ELF,
and read via /proc/self/exe, rather than, as it should be, put in a real
ELF section, where one could read it from memory. This also fixes
execution via a dynamic linker (in which case /proc/self/exe points to a
different file), makes it properly strippable, more robust, prevents
double I/O to the executable, and double memory usage as the data is in
memory because the executable is executed, plus also via the direct
file access.

--Jeroen

-- 
Jeroen van Wolffelaar
Jeroen@wolffelaar.nl (also for Jabber & MSN; ICQ: 33944357)
http://Jeroen.A-Eskwadraat.nl



Information forwarded to debian-bugs-dist@lists.debian.org, Sven Luther <luther@debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Sven Luther <sven.luther@wanadoo.fr>:
Extra info received and forwarded to list. Copy sent to Sven Luther <luther@debian.org>. Full text and rfc822 format available.

Message #37 received at 256900@bugs.debian.org (full text, mbox):

From: Sven Luther <sven.luther@wanadoo.fr>
To: Xavier Leroy <Xavier.Leroy@inria.fr>
Cc: Sven Luther <sven.luther@wanadoo.fr>, caml-list@inria.fr, 256900@bugs.debian.org
Subject: Re: [Caml-list] prelinking ocamlfind
Date: Tue, 20 Jul 2004 05:31:26 +0200
On Mon, Jul 19, 2004 at 03:48:46PM +0200, Xavier Leroy wrote:
> > Xavier, i have been told that this probably happens because we use a elf
> > section that is normally strippable.
> 
> It's even worse than that, but I won't get into details :-)

Hehe.

> > It could be solved by using a
> > special elf section specialized to our need (maybe one named bytecode or
> > something), then at least strip and possibly the prelink stuff, would
> > not remove it as it does not.
> 
> Yes, but:
> - This solution is not portable to non-ELF platforms (e.g. MS Windows),
>   thus forcing an unpleasant fork in the code.
> - The ELF format is very complex.  There are libraries that facilitate
>   manipulations of ELF files (e.g. libelf), but these are not
>   universally available and severely under-documented.
> 
> Rather than muck with ELF, a simpler solution would be to embed the
> bytecode executable as initialized C arrays in the executable
> generated by ocamlc -custom.  That's what ocamlc -output-obj does, and
> I believe it shouldn't be too hard to adapt the existing -output-obj
> code to the -custom case.

Mmm. Ok, it will be ocaml 3.09 stuff though.

CCing this to the relevant debian bug report. 

Friendly,

Sven Luther



Information forwarded to debian-bugs-dist@lists.debian.org, Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Stéphane Glondu <steph@glondu.net>:
Extra info received and forwarded to list. Copy sent to Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>. Full text and rfc822 format available.

Message #42 received at 256900@bugs.debian.org (full text, mbox):

From: Stéphane Glondu <steph@glondu.net>
To: 256900@bugs.debian.org
Cc: Xavier Leroy <Xavier.Leroy@inria.fr>
Subject: Ocaml compiled programs cannot be stripped
Date: Sun, 17 Aug 2008 18:30:27 +0200
[Message part 1 (text/plain, inline)]
Hello,

First, a few reminders:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=256900
http://caml.inria.fr/pub/ml-archives/caml-list/2004/07/181268104b59b10ed1624cb92ed996c4.fr.html

Is there any news on this issue? It seems it is still on topic in OCaml
3.10.2...

Xavier Leroy wrote:
> Rather than muck with ELF, a simpler solution would be to embed the
> bytecode executable as initialized C arrays in the executable
> generated by ocamlc -custom.  That's what ocamlc -output-obj does, and
> I believe it shouldn't be too hard to adapt the existing -output-obj
> code to the -custom case.

Attached is a patch (against OCaml 3.10.2) that implements this idea.

Any opinion?


Cheers,

-- 
Stéphane Glondu
[0001-Embed-bytecode-in-C-object-when-using-custom.patch (text/x-patch, inline)]
From f574009ac90e3ea9b6d113fb7e98fa623e74aa84 Mon Sep 17 00:00:00 2001
From: Stephane Glondu <steph@glondu.net>
Date: Sun, 17 Aug 2008 17:10:03 +0200
Subject: [PATCH] Embed bytecode in C object when using -custom

---
 bytecomp/bytelink.ml |   30 ++++++++++++++++++++++++++----
 1 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/bytecomp/bytelink.ml b/bytecomp/bytelink.ml
index 83add82..e5afbd4 100644
--- a/bytecomp/bytelink.ml
+++ b/bytecomp/bytelink.ml
@@ -377,7 +377,7 @@ let output_data_string outchan data =
 
 (* Output a bytecode executable as a C file *)
 
-let link_bytecode_as_c tolink outfile =
+let link_bytecode_as_c tolink outfile with_main =
   let outchan = open_out outfile in
   try
     (* The bytecode *)
@@ -413,14 +413,26 @@ CAMLextern void caml_startup_code(
     (* The table of primitives *)
     Symtable.output_primitive_table outchan;
     (* The entry point *)
-    output_string outchan "\n
+    if with_main then begin
+      output_string outchan "\n
+int main(int argc, char **argv)
+{
+  caml_startup_code(caml_code, sizeof(caml_code),
+                    caml_data, sizeof(caml_data),
+                    caml_sections, sizeof(caml_sections),
+                    argv);
+  return 0; /* not reached */
+}\n"
+    end else begin
+      output_string outchan "\n
 void caml_startup(char ** argv)
 {
   caml_startup_code(caml_code, sizeof(caml_code),
                     caml_data, sizeof(caml_data),
                     caml_sections, sizeof(caml_sections),
                     argv);
-}\n";
+}\n"
+    end;
     close_out outchan
   with x ->
     close_out outchan;
@@ -498,6 +510,16 @@ let link objfiles output_name =
   Clflags.dllibs := !lib_dllibs @ !Clflags.dllibs; (* put user's DLLs first *)
   if not !Clflags.custom_runtime then
     link_bytecode tolink output_name true
+  else if not !Clflags.make_runtime then
+    let c_file = Filename.temp_file "camlobj" ".c" in
+    try
+      link_bytecode_as_c tolink c_file true;
+      let exec_name = fix_exec_name output_name in
+      if build_custom_runtime c_file exec_name <> 0
+      then raise(Error Custom_runtime);
+    with x ->
+      remove_file c_file;
+      raise x
   else if not !Clflags.output_c_object then begin
     let bytecode_name = Filename.temp_file "camlcode" "" in
     let prim_name = Filename.temp_file "camlprim" ".c" in
@@ -521,7 +543,7 @@ let link objfiles output_name =
       Filename.chop_suffix output_name Config.ext_obj ^ ".c" in
     if Sys.file_exists c_file then raise(Error(File_exists c_file));
     try
-      link_bytecode_as_c tolink c_file;
+      link_bytecode_as_c tolink c_file false;
       if Ccomp.compile_file c_file <> 0
       then raise(Error Custom_runtime);
       remove_file c_file
-- 
1.5.6.3


Tags added: patch Request was from Stephane Glondu <steph@glondu.net> to control@bugs.debian.org. (Sun, 17 Aug 2008 16:45:03 GMT) Full text and rfc822 format available.

Information forwarded to debian-bugs-dist@lists.debian.org, Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Xavier Leroy <Xavier.Leroy@inria.fr>:
Extra info received and forwarded to list. Copy sent to Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>. Full text and rfc822 format available.

Message #49 received at 256900@bugs.debian.org (full text, mbox):

From: Xavier Leroy <Xavier.Leroy@inria.fr>
To: Stéphane Glondu <steph@glondu.net>
Cc: 256900@bugs.debian.org, gildor@debian.org
Subject: Re: Ocaml compiled programs cannot be stripped
Date: Mon, 18 Aug 2008 17:46:50 +0200
> First, a few reminders:
> 
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=256900
> http://caml.inria.fr/pub/ml-archives/caml-list/2004/07/181268104b59b10ed1624cb92ed996c4.fr.html
> 
> Is there any news on this issue? It seems it is still on topic in OCaml
> 3.10.2...

First, the bug summary is incorrect: it's not all ocaml-generated
executables that cannot be stripped, but only those generated by the
now-obsolete "ocamlc -custom" option.  The latter builds a mixed
bytecode/native C executable, but this approach has been deprecated in
favor of putting the C stub code in shared libraries which are then
loaded by the pure bytecode executable.

The plan of action that Sylvain Le Gall discussed with me a while ago
was to track down the OCaml packages that use "ocamlc -custom" and fix
them to use shared libraries instead.  Many mature Caml sources still
use the -custom option although it is no longer necessary.  I can
provide assistance tracking down the mixed bytecode/native executables
that are a problem.

To summarize, my take on this issue is:

1- "ocamlc -custom" is deprecated and packages that use it should be fixed.

2- If this isn't practical, it's not a big deal that a couple of
   executables cannot be stripped.  Other packagers (e.g. RedHat and
   Mandriva) have had no problems in the past turning stripping off on
   a case-by-case basis.

3- For these reasons, I won't merge Stéphane's patch in the upstream
   sources. Use in Debian at your own risk.


- Xavier Leroy




Information forwarded to debian-bugs-dist@lists.debian.org, Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Eric Cooper <ecc@cmu.edu>:
Extra info received and forwarded to list. Copy sent to Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>. Full text and rfc822 format available.

Message #54 received at 256900@bugs.debian.org (full text, mbox):

From: Eric Cooper <ecc@cmu.edu>
To: Xavier Leroy <Xavier.Leroy@inria.fr>, 256900@bugs.debian.org
Cc: Stéphane Glondu <steph@glondu.net>, gildor@debian.org
Subject: Re: Bug#256900: Ocaml compiled programs cannot be stripped
Date: Mon, 18 Aug 2008 12:53:26 -0400
On Mon, Aug 18, 2008 at 05:46:50PM +0200, Xavier Leroy wrote:
> First, the bug summary is incorrect: it's not all ocaml-generated
> executables that cannot be stripped, but only those generated by the
> now-obsolete "ocamlc -custom" option.  The latter builds a mixed
> bytecode/native C executable, but this approach has been deprecated in
> favor of putting the C stub code in shared libraries which are then
> loaded by the pure bytecode executable.
> [...]
> 1- "ocamlc -custom" is deprecated and packages that use it should be fixed.

I'm guilty of using the deprecated approach for a package that uses C
stubs but can't be compiled natively on some architectures.  On the
ones with ocamlopt, the C stubs are statically linked into the
executable, so there are no additional package dependencies on shared
libs.  On the bytecode-only architectures, the shared libraries caused
additional installation dependencies that weren't determined
automatically.  But maybe this can be addressed by smarter build tools
in Debian.

-- 
Eric Cooper             e c c @ c m u . e d u




Information forwarded to debian-bugs-dist@lists.debian.org, Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Richard Jones <rich@annexia.org>:
Extra info received and forwarded to list. Copy sent to Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>. Full text and rfc822 format available.

Message #59 received at 256900@bugs.debian.org (full text, mbox):

From: Richard Jones <rich@annexia.org>
To: Xavier Leroy <Xavier.Leroy@inria.fr>, 256900@bugs.debian.org
Cc: Stéphane Glondu <steph@glondu.net>, gildor@debian.org
Subject: Re: Bug#256900: Ocaml compiled programs cannot be stripped
Date: Tue, 19 Aug 2008 23:18:14 +0100
On Mon, Aug 18, 2008 at 05:46:50PM +0200, Xavier Leroy wrote:
> 2- If this isn't practical, it's not a big deal that a couple of
>    executables cannot be stripped.  Other packagers (e.g. RedHat and
>    Mandriva) have had no problems in the past turning stripping off on
>    a case-by-case basis.

Indeed this is true -- we tell people only to disable strip for the
particular executables that have this problem.  The other executables
are stripped as normal.

  http://fedoraproject.org/wiki/Packaging/OCaml#Stripping_binaries

Rich.

-- 
Richard Jones
Red Hat




Information forwarded to debian-bugs-dist@lists.debian.org, Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Sylvain Le Gall <gildor@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>. Full text and rfc822 format available.

Message #64 received at 256900@bugs.debian.org (full text, mbox):

From: Sylvain Le Gall <gildor@debian.org>
To: Xavier Leroy <Xavier.Leroy@inria.fr>
Cc: Stéphane Glondu <steph@glondu.net>, 256900@bugs.debian.org
Subject: Re: Ocaml compiled programs cannot be stripped
Date: Wed, 20 Aug 2008 13:51:20 +0200
Hello,

On Mon, Aug 18, 2008 at 05:46:50PM +0200, Xavier Leroy wrote:
> > First, a few reminders:
> > 
> > http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=256900
> > http://caml.inria.fr/pub/ml-archives/caml-list/2004/07/181268104b59b10ed1624cb92ed996c4.fr.html
> > 
> > Is there any news on this issue? It seems it is still on topic in OCaml
> > 3.10.2...
> 
> The plan of action that Sylvain Le Gall discussed with me a while ago
> was to track down the OCaml packages that use "ocamlc -custom" and fix
> them to use shared libraries instead.  Many mature Caml sources still
> use the -custom option although it is no longer necessary.  I can
> provide assistance tracking down the mixed bytecode/native executables
> that are a problem.
> 
> To summarize, my take on this issue is:
> 
> 1- "ocamlc -custom" is deprecated and packages that use it should be fixed.
> 

If this option is deprecated, i think we should handle it so for all
debian package. See at the end of the mail for a proposed way of doing
thing.

> 2- If this isn't practical, it's not a big deal that a couple of
>    executables cannot be stripped.  Other packagers (e.g. RedHat and
>    Mandriva) have had no problems in the past turning stripping off on
>    a case-by-case basis.

This is actually what is done for package that cannot be stripped (we
can use dh_strip -X ZZZ to avoid stripping an executable).

The solution we discussed was to find a test that can tell us what
binaries are "ocamlc -custom" executable. If we can find them, we can
warn packager that it should be rebuild without the deprecated option.
To detect these files we must have a very simple script, lets call it
"ocaml-custom-detect". The best option is that this script will be
written using "sh" or "perl" (maybe having an ocaml executable is
also be ok, we must see what is the easiest way). 

Once we have "ocaml-custom-detect", we can:
- add a policy rules telling that building executable using "-custom" is
  an ERROR
- provide a test for this policy rules to "lintian" (Debian package
  policy checker)

I think this script could help also other packager (like Fedora and
Freebsd).

At OCaml Meeting, Xavier Leroy told me that there was a way to detect
it. 

Can M. Leroy provides us with more details for detection?

Regards
Sylvain Le Gall





Information forwarded to debian-bugs-dist@lists.debian.org, Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Sven Luther <sven@powerlinux.fr>:
Extra info received and forwarded to list. Copy sent to Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>. Full text and rfc822 format available.

Message #69 received at 256900@bugs.debian.org (full text, mbox):

From: Sven Luther <sven@powerlinux.fr>
To: Sylvain Le Gall <gildor@debian.org>, 256900@bugs.debian.org
Cc: Xavier Leroy <Xavier.Leroy@inria.fr>, Stéphane Glondu <steph@glondu.net>
Subject: Re: Bug#256900: Ocaml compiled programs cannot be stripped
Date: Wed, 20 Aug 2008 14:10:37 +0200
On Wed, Aug 20, 2008 at 01:51:20PM +0200, Sylvain Le Gall wrote:
> 
> Hello,
> 
> On Mon, Aug 18, 2008 at 05:46:50PM +0200, Xavier Leroy wrote:
> > > First, a few reminders:
> > > 
> > > http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=256900
> > > http://caml.inria.fr/pub/ml-archives/caml-list/2004/07/181268104b59b10ed1624cb92ed996c4.fr.html
> > > 
> > > Is there any news on this issue? It seems it is still on topic in OCaml
> > > 3.10.2...
> > 
> > The plan of action that Sylvain Le Gall discussed with me a while ago
> > was to track down the OCaml packages that use "ocamlc -custom" and fix
> > them to use shared libraries instead.  Many mature Caml sources still
> > use the -custom option although it is no longer necessary.  I can
> > provide assistance tracking down the mixed bytecode/native executables
> > that are a problem.
> > 
> > To summarize, my take on this issue is:
> > 
> > 1- "ocamlc -custom" is deprecated and packages that use it should be fixed.
> > 
> 
> If this option is deprecated, i think we should handle it so for all
> debian package. See at the end of the mail for a proposed way of doing
> thing.

One question though which comes to mind while reading this thread. When
was the -custom version deprecated, and what does this imply for the
version of ocaml in debian which will ship with lenny.

Friendly,

Sven Luther




Information forwarded to debian-bugs-dist@lists.debian.org, Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Xavier Leroy <Xavier.Leroy@inria.fr>:
Extra info received and forwarded to list. Copy sent to Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>. Full text and rfc822 format available.

Message #74 received at 256900@bugs.debian.org (full text, mbox):

From: Xavier Leroy <Xavier.Leroy@inria.fr>
To: Sylvain Le Gall <gildor@debian.org>
Cc: Stéphane Glondu <steph@glondu.net>, 256900@bugs.debian.org
Subject: Re: Ocaml compiled programs cannot be stripped
Date: Wed, 20 Aug 2008 17:10:06 +0200
Hello Sylvain,

> The solution we discussed was to find a test that can tell us what
> binaries are "ocamlc -custom" executable. If we can find them, we can
> warn packager that it should be rebuild without the deprecated option.
> To detect these files we must have a very simple script, lets call it
> "ocaml-custom-detect". The best option is that this script will be
> written using "sh" or "perl" (maybe having an ocaml executable is
> also be ok, we must see what is the easiest way). 
> 
> At OCaml Meeting, Xavier Leroy told me that there was a way to detect
> it. 
> 
> Can M. Leroy provides us with more details for detection?

Basically, a mixed bytecode/native executable produced by ocamlc -custom
is characterized by being a native executable (i.e. produced by gcc)
concatenated with a piece of OCaml bytecode, recognizable by the fact
that it has the magic number "Caml1999X008" at the *end* of the file.

(The last digit of the magic number changed during the life of OCaml,
but it's been "8" since June 2004, and I don't expect it to change any
time soon.  If you want to play it safe, recognize the regexp
"Caml1999X0[0-9][0-9]".)

So, here is a trivial implementation of the ocaml-custom-detect tool
you proposed:

#!/bin/sh

if file $1 | grep -q 'ELF .* executable' \
&& test `tail -c 12 $1` = "Caml1999X008"; then
  echo "$1: is a Caml bytecode/native mixed executable"
  exit 0
else
  exit 1
fi

> Once we have "ocaml-custom-detect", we can:
> - add a policy rules telling that building executable using "-custom" is
>   an ERROR
> - provide a test for this policy rules to "lintian" (Debian package
>   policy checker)

I don't know how serious such ERRORs are.  My humble opinion is that a
positive on the -custom test should be reported to the packagers and
probably to upstream as well, but is not serious enough to
e.g. prevent the package from entering "stable" or whatnot.  Of
course, the policies are up to you Debian guys.

Best regards,

- Xavier Leroy




Information forwarded to debian-bugs-dist@lists.debian.org, Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Xavier Leroy <Xavier.Leroy@inria.fr>:
Extra info received and forwarded to list. Copy sent to Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>. Full text and rfc822 format available.

Message #79 received at 256900@bugs.debian.org (full text, mbox):

From: Xavier Leroy <Xavier.Leroy@inria.fr>
To: Sven Luther <sven@powerlinux.fr>
Cc: Sylvain Le Gall <gildor@debian.org>, 256900@bugs.debian.org, Stéphane Glondu <steph@glondu.net>
Subject: Re: Bug#256900: Ocaml compiled programs cannot be stripped
Date: Wed, 20 Aug 2008 17:19:17 +0200
Hello Sven,

>>> 1- "ocamlc -custom" is deprecated and packages that use it should be fixed.
>>>
>> If this option is deprecated, i think we should handle it so for all
>> debian package. See at the end of the mail for a proposed way of doing
>> thing.
> 
> One question though which comes to mind while reading this thread. When
> was the -custom version deprecated, and what does this imply for the
> version of ocaml in debian which will ship with lenny.

OK, maybe "deprecated" isn't the right word.

The -custom option is not deprecated in the sense of "it will be
removed at some point in the future".  We Caml people take backward
compatibility very very seriously.  This option is here to stay,
but not to be improved, because:

The -custom option is deprecated in the sense that, since the
introduction of dynamic loading of stub libraries in the bytecode
interpreter circa 2001, there exists a much better alternative:
put the native stubs into shared libraries and produce "pure" bytecode
executables that dynamically load these libraries.  This is better
than -custom for several reasons:

- smaller executables;
- bytecode executables can be shared across different platforms;
- it is possible to use such mixed Caml/native libraries from the toplevel.

So, I think everyone should be gently encouraged to use shared libs
instead of -custom.  Especially since, as I mentioned earlier, some
Caml projects that started before 2001 still force -custom when
linking with standard libraries like unix.cma or str.cma, while this
is now entirely unnecessary.

Hope this addresses your concerns.

Best regards,

- Xavier Leroy




Information forwarded to debian-bugs-dist@lists.debian.org, Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Romain Beauxis <toots@rastageeks.org>:
Extra info received and forwarded to list. Copy sent to Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>. Full text and rfc822 format available.

Message #84 received at 256900@bugs.debian.org (full text, mbox):

From: Romain Beauxis <toots@rastageeks.org>
To: debian-ocaml-maint@lists.debian.org, Xavier Leroy <Xavier.Leroy@inria.fr>, 256900@bugs.debian.org
Subject: Re: Bug#256900: Ocaml compiled programs cannot be stripped
Date: Wed, 20 Aug 2008 17:54:41 +0200
Le Wednesday 20 August 2008 17:10:06 Xavier Leroy, vous avez écrit :
> Hello Sylvain,
>
> > The solution we discussed was to find a test that can tell us what
> > binaries are "ocamlc -custom" executable. If we can find them, we can
> > warn packager that it should be rebuild without the deprecated option.
> > To detect these files we must have a very simple script, lets call it
> > "ocaml-custom-detect". The best option is that this script will be
> > written using "sh" or "perl" (maybe having an ocaml executable is
> > also be ok, we must see what is the easiest way).
> >
> > At OCaml Meeting, Xavier Leroy told me that there was a way to detect
> > it.
> >
> > Can M. Leroy provides us with more details for detection?
>
> Basically, a mixed bytecode/native executable produced by ocamlc -custom
> is characterized by being a native executable (i.e. produced by gcc)
> concatenated with a piece of OCaml bytecode, recognizable by the fact
> that it has the magic number "Caml1999X008" at the *end* of the file.
>
> (The last digit of the magic number changed during the life of OCaml,
> but it's been "8" since June 2004, and I don't expect it to change any
> time soon.  If you want to play it safe, recognize the regexp
> "Caml1999X0[0-9][0-9]".)

Sorry, but is there something I don't understand there:
17:52 toots@leonard /tmp% cat bla.ml
let () = Printf.printf "bla\n"
17:54 toots@leonard /tmp% ocamlc -o bla ./bla.ml
17:54 toots@leonard /tmp% tail -c 12 ./bla
Caml1999X008% 

Romain




Information forwarded to debian-bugs-dist@lists.debian.org, Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Sven Luther <sven@powerlinux.fr>:
Extra info received and forwarded to list. Copy sent to Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>. Full text and rfc822 format available.

Message #89 received at 256900@bugs.debian.org (full text, mbox):

From: Sven Luther <sven@powerlinux.fr>
To: Xavier Leroy <Xavier.Leroy@inria.fr>, 256900@bugs.debian.org
Cc: Sylvain Le Gall <gildor@debian.org>, Stéphane Glondu <steph@glondu.net>
Subject: Re: Bug#256900: Ocaml compiled programs cannot be stripped
Date: Wed, 20 Aug 2008 17:56:50 +0200
On Wed, Aug 20, 2008 at 05:19:17PM +0200, Xavier Leroy wrote:
> 
> Hello Sven,
> 
> >>> 1- "ocamlc -custom" is deprecated and packages that use it should be fixed.
> >>>
> >> If this option is deprecated, i think we should handle it so for all
> >> debian package. See at the end of the mail for a proposed way of doing
> >> thing.
> > 
> > One question though which comes to mind while reading this thread. When
> > was the -custom version deprecated, and what does this imply for the
> > version of ocaml in debian which will ship with lenny.
> 
> OK, maybe "deprecated" isn't the right word.

:)

> The -custom option is not deprecated in the sense of "it will be
> removed at some point in the future".  We Caml people take backward
> compatibility very very seriously.  This option is here to stay,
> but not to be improved, because:

Well, let's rephrase this, since when is the shared stub way
"recomended" over the -custom version. This was the first time that i
really heard about this, altough i have been trying to do away with the
-custom flag in projects since some time.

Often folk only use -custom to do away with the dependencies, and kind
of create a "static" version of the binary, which is easier to install
standalone, which is not the debian use-case.

> The -custom option is deprecated in the sense that, since the
> introduction of dynamic loading of stub libraries in the bytecode
> interpreter circa 2001, there exists a much better alternative:
> put the native stubs into shared libraries and produce "pure" bytecode
> executables that dynamically load these libraries.  This is better
> than -custom for several reasons:
> 
> - smaller executables;
> - bytecode executables can be shared across different platforms;
> - it is possible to use such mixed Caml/native libraries from the toplevel.

Indeed :)

> So, I think everyone should be gently encouraged to use shared libs
> instead of -custom.  Especially since, as I mentioned earlier, some
> Caml projects that started before 2001 still force -custom when
> linking with standard libraries like unix.cma or str.cma, while this
> is now entirely unnecessary.
> 
> Hope this addresses your concerns.

So, are you officially "gently encouraging" ? Is the community really
aware of your position ? 

Friendly,

Sven Luther




Information forwarded to debian-bugs-dist@lists.debian.org, Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Romain Beauxis <toots@rastageeks.org>:
Extra info received and forwarded to list. Copy sent to Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>. Full text and rfc822 format available.

Message #94 received at 256900@bugs.debian.org (full text, mbox):

From: Romain Beauxis <toots@rastageeks.org>
To: debian-ocaml-maint@lists.debian.org, 256900@bugs.debian.org
Cc: Xavier Leroy <Xavier.Leroy@inria.fr>
Subject: Re: Bug#256900: Ocaml compiled programs cannot be stripped
Date: Wed, 20 Aug 2008 18:43:32 +0200
Le Wednesday 20 August 2008 17:54:41 Romain Beauxis, vous avez écrit :
> > (The last digit of the magic number changed during the life of OCaml,
> > but it's been "8" since June 2004, and I don't expect it to change any
> > time soon.  If you want to play it safe, recognize the regexp
> > "Caml1999X0[0-9][0-9]".)
>
> Sorry, but is there something I don't understand there:
> 17:52 toots@leonard /tmp% cat bla.ml
> let () = Printf.printf "bla\n"
> 17:54 toots@leonard /tmp% ocamlc -o bla ./bla.ml
> 17:54 toots@leonard /tmp% tail -c 12 ./bla
> Caml1999X008%

Sorry for the noise, I didn't test the ELF header...

Romain




Information forwarded to debian-bugs-dist@lists.debian.org, Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Romain Beauxis <toots@rastageeks.org>:
Extra info received and forwarded to list. Copy sent to Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>. Full text and rfc822 format available.

Message #99 received at 256900@bugs.debian.org (full text, mbox):

From: Romain Beauxis <toots@rastageeks.org>
To: Xavier Leroy <Xavier.Leroy@inria.fr>, 256900@bugs.debian.org
Subject: Re: Bug#256900: Ocaml compiled programs cannot be stripped
Date: Thu, 21 Aug 2008 04:00:40 +0200
Le Monday 18 August 2008 17:46:50 Xavier Leroy, vous avez écrit :
> First, the bug summary is incorrect: it's not all ocaml-generated
> executables that cannot be stripped, but only those generated by the
> now-obsolete "ocamlc -custom" option.  The latter builds a mixed
> bytecode/native C executable, but this approach has been deprecated in
> favor of putting the C stub code in shared libraries which are then
> loaded by the pure bytecode executable.

Ok, I have tried to compile an example here are my conclusions, please correct 
me if I am wrong:
* When linking against an ocaml module, the .cmo file is needed. This is 
clearly not the case in a majority of ocaml packages, if not all of them.
* When using the .cma file, compilation is made in -custom mode, even 
*without* passing the option
* You need to provide the -dllib /path/to/dllmodule_stubs.so option
* What is the mechanism used to load the stubs.so ? I believe it is some sort 
of "dlopen", but I can't find a hardcoded path in the resulting object. 
* This binary dependency won't be noticed by our shlibdeps system since it 
does not relly on ELF and NEEDED headers.
* I can't make ocamlfind to compile such binaries, appart from passing 
manually all the required options...

All of this makes me think that it is still hard to switch to this. Also, it 
will be some work to catch and define a good packaging policy for this 
compilation mode.


Romain




Information forwarded to debian-bugs-dist@lists.debian.org, Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Romain Beauxis <toots@rastageeks.org>:
Extra info received and forwarded to list. Copy sent to Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>. Full text and rfc822 format available.

Message #104 received at 256900@bugs.debian.org (full text, mbox):

From: Romain Beauxis <toots@rastageeks.org>
To: debian-ocaml-maint@lists.debian.org, 256900@bugs.debian.org
Cc: Xavier Leroy <Xavier.Leroy@inria.fr>
Subject: Re: Bug#256900: Ocaml compiled programs cannot be stripped
Date: Thu, 21 Aug 2008 04:33:24 +0200
Le Thursday 21 August 2008 04:00:40 Romain Beauxis, vous avez écrit :
> correct
> me if I am wrong:
> * When linking against an ocaml module, the .cmo file is needed. This is
> clearly not the case in a majority of ocaml packages, if not all of them.
> * When using the .cma file, compilation is made in -custom mode, even
> *without* passing the option

Well, I was wrong :)
Compilation with the .cma file is implicitely made with the -custom option 
only when the .cma file was itself compiled with the -custom option..

Another thing to test for ocaml libs..

Romain




Information forwarded to debian-bugs-dist@lists.debian.org, Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Stefano Zacchiroli <zack@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>. Full text and rfc822 format available.

Message #109 received at 256900@bugs.debian.org (full text, mbox):

From: Stefano Zacchiroli <zack@debian.org>
To: Sylvain Le Gall <gildor@debian.org>, 256900@bugs.debian.org
Cc: Xavier Leroy <Xavier.Leroy@inria.fr>, Stéphane Glondu <steph@glondu.net>
Subject: Re: Bug#256900: Ocaml compiled programs cannot be stripped
Date: Sun, 7 Sep 2008 11:17:51 +0200
[Message part 1 (text/plain, inline)]
On Wed, Aug 20, 2008 at 01:51:20PM +0200, Sylvain Le Gall wrote:
> The solution we discussed was to find a test that can tell us what
> binaries are "ocamlc -custom" executable. If we can find them, we can
> warn packager that it should be rebuild without the deprecated option.
> To detect these files we must have a very simple script, lets call it
> "ocaml-custom-detect". The best option is that this script will be
> written using "sh" or "perl" (maybe having an ocaml executable is
> also be ok, we must see what is the easiest way). 

Rather than being a standalone script, it should obviously be a lintian
test (which in turn suggests it should be written in Perl). lintian is
exactly the place where this kind of tests should be put.

Cheers.

-- 
Stefano Zacchiroli -*- PhD in Computer Science \ PostDoc @ Univ. Paris 7
zack@{upsilon.cc,pps.jussieu.fr,debian.org} -<>- http://upsilon.cc/zack/
I'm still an SGML person,this newfangled /\ All one has to do is hit the
XML stuff is so ... simplistic  -- Manoj \/ right keys at the right time
[signature.asc (application/pgp-signature, inline)]

Information forwarded to debian-bugs-dist@lists.debian.org, Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Stefano Zacchiroli <zack@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>. Full text and rfc822 format available.

Message #114 received at 256900@bugs.debian.org (full text, mbox):

From: Stefano Zacchiroli <zack@debian.org>
To: submit@bugs.debian.org
Cc: 256900@bugs.debian.org, Debian Ocaml Maint ML <debian-ocaml-maint@lists.debian.org>
Subject: check for deprecated OCaml -custom linked executable
Date: Sun, 7 Sep 2008 15:07:57 +0200
[Message part 1 (text/plain, inline)]
Package: lintian
Severity: wishlist

The OCaml compiler enables linking code in various ways: most notably
bytecode and nativecode. The bytecode executables though can be linked
together with the interpreter (the so called "custom mode"), generating
ELF executables which can not be stripped.  Since long time there is a
better alternative to that and we would like to encourage that.

As such, we would like to add a lintian check to warn against OCaml
custom mode executable. They can easily detected by looking for a magic
number at the end of the file, as described in the forwarded mail from
upstream.

Before actually providing a lintian check for that, I would like to know
from the lintian maintainers if the magic number is enough for them, or
if they consider it too prone to false positives. Please let us know.

TIA,
Cheers.

On Wed, Aug 20, 2008 at 05:10:06PM +0200, Xavier Leroy wrote:
> Hello Sylvain,
> 
> > The solution we discussed was to find a test that can tell us what
> > binaries are "ocamlc -custom" executable. If we can find them, we can
> > warn packager that it should be rebuild without the deprecated option.
> > To detect these files we must have a very simple script, lets call it
> > "ocaml-custom-detect". The best option is that this script will be
> > written using "sh" or "perl" (maybe having an ocaml executable is
> > also be ok, we must see what is the easiest way). 
> > 
> > At OCaml Meeting, Xavier Leroy told me that there was a way to detect
> > it. 
> > 
> > Can M. Leroy provides us with more details for detection?
> 
> Basically, a mixed bytecode/native executable produced by ocamlc -custom
> is characterized by being a native executable (i.e. produced by gcc)
> concatenated with a piece of OCaml bytecode, recognizable by the fact
> that it has the magic number "Caml1999X008" at the *end* of the file.
> 
> (The last digit of the magic number changed during the life of OCaml,
> but it's been "8" since June 2004, and I don't expect it to change any
> time soon.  If you want to play it safe, recognize the regexp
> "Caml1999X0[0-9][0-9]".)
> 
> So, here is a trivial implementation of the ocaml-custom-detect tool
> you proposed:
> 
> #!/bin/sh
> 
> if file $1 | grep -q 'ELF .* executable' \
> && test `tail -c 12 $1` = "Caml1999X008"; then
>   echo "$1: is a Caml bytecode/native mixed executable"
>   exit 0
> else
>   exit 1
> fi
> 
> > Once we have "ocaml-custom-detect", we can:
> > - add a policy rules telling that building executable using "-custom" is
> >   an ERROR
> > - provide a test for this policy rules to "lintian" (Debian package
> >   policy checker)
> 
> I don't know how serious such ERRORs are.  My humble opinion is that a
> positive on the -custom test should be reported to the packagers and
> probably to upstream as well, but is not serious enough to
> e.g. prevent the package from entering "stable" or whatnot.  Of
> course, the policies are up to you Debian guys.
> 
> Best regards,
> 
> - Xavier Leroy
> 
> 
> 
> -- 
> To UNSUBSCRIBE, email to debian-ocaml-maint-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> 

-- 
Stefano Zacchiroli -*- PhD in Computer Science \ PostDoc @ Univ. Paris 7
zack@{upsilon.cc,pps.jussieu.fr,debian.org} -<>- http://upsilon.cc/zack/
I'm still an SGML person,this newfangled /\ All one has to do is hit the
XML stuff is so ... simplistic  -- Manoj \/ right keys at the right time
[signature.asc (application/pgp-signature, inline)]

Information forwarded to debian-bugs-dist@lists.debian.org, Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Stéphane Glondu <steph@glondu.net>:
Extra info received and forwarded to list. Copy sent to Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>. Full text and rfc822 format available.

Message #119 received at 256900@bugs.debian.org (full text, mbox):

From: Stéphane Glondu <steph@glondu.net>
To: 256900@bugs.debian.org
Cc: Debian Ocaml Maint ML <debian-ocaml-maint@lists.debian.org>
Subject: Re: check for deprecated OCaml -custom linked executable
Date: Sun, 07 Sep 2008 16:51:07 +0200
Stefano Zacchiroli wrote:
> As such, we would like to add a lintian check to warn against OCaml
> custom mode executable. They can easily detected by looking for a magic
> number at the end of the file, as described in the forwarded mail from
> upstream.

Libraries can force custom mode executables. Therefore, I think they
should also be checked.

This check is quite easy using the ocamlobjinfo tool: it prints "Force
custom: YES" when given a faulty .cma.

BTW, on my system:

for u in /usr/lib/ocaml/3.10.2/**/*.cma; do ocamlobjinfo $u|sed "s@^@$u:
@"; done|grep 'Force custom: YES'

returns:

/usr/lib/ocaml/3.10.2/bjack/bjack.cma:   Force custom: YES
/usr/lib/ocaml/3.10.2/ssl/ssl.cma:   Force custom: YES
/usr/lib/ocaml/3.10.2/ssl/ssl_threads.cma:   Force custom: YES


Cheers,

-- 
Stéphane Glondu






Information forwarded to debian-bugs-dist@lists.debian.org, Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Stefano Zacchiroli <zack@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>. Full text and rfc822 format available.

Message #124 received at 256900@bugs.debian.org (full text, mbox):

From: Stefano Zacchiroli <zack@debian.org>
To: Stéphane Glondu <steph@glondu.net>
Cc: 256900@bugs.debian.org, 498138@bugs.debian.org, Debian Ocaml Maint ML <debian-ocaml-maint@lists.debian.org>
Subject: Re: check for deprecated OCaml -custom linked executable
Date: Sun, 7 Sep 2008 17:09:00 +0200
[Message part 1 (text/plain, inline)]
On Sun, Sep 07, 2008 at 04:51:07PM +0200, Stéphane Glondu wrote:
> This check is quite easy using the ocamlobjinfo tool: it prints "Force
> custom: YES" when given a faulty .cma.

... but I doubt that we can rely on external packages from lintian
checks (lintian maintainers: can we?). So I suggest implementing the
test in pure Perl, not relying on ocamlobjinfo, it won't be hard at all.

Cheers.

-- 
Stefano Zacchiroli -*- PhD in Computer Science \ PostDoc @ Univ. Paris 7
zack@{upsilon.cc,pps.jussieu.fr,debian.org} -<>- http://upsilon.cc/zack/
I'm still an SGML person,this newfangled /\ All one has to do is hit the
XML stuff is so ... simplistic  -- Manoj \/ right keys at the right time
[signature.asc (application/pgp-signature, inline)]

Information forwarded to debian-bugs-dist@lists.debian.org, Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Sylvain Le Gall <gildor@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>. Full text and rfc822 format available.

Message #129 received at 256900@bugs.debian.org (full text, mbox):

From: Sylvain Le Gall <gildor@debian.org>
To: Stefano Zacchiroli <zack@debian.org>
Cc: 256900@bugs.debian.org, Xavier Leroy <Xavier.Leroy@inria.fr>, Stéphane Glondu <steph@glondu.net>
Subject: Re: Bug#256900: Ocaml compiled programs cannot be stripped
Date: Sun, 7 Sep 2008 17:36:34 +0200
[Message part 1 (text/plain, inline)]
On Sun, Sep 07, 2008 at 11:17:51AM +0200, Stefano Zacchiroli wrote:
> On Wed, Aug 20, 2008 at 01:51:20PM +0200, Sylvain Le Gall wrote:
> > The solution we discussed was to find a test that can tell us what
> > binaries are "ocamlc -custom" executable. If we can find them, we can
> > warn packager that it should be rebuild without the deprecated option.
> > To detect these files we must have a very simple script, lets call it
> > "ocaml-custom-detect". The best option is that this script will be
> > written using "sh" or "perl" (maybe having an ocaml executable is
> > also be ok, we must see what is the easiest way). 
> 
> Rather than being a standalone script, it should obviously be a lintian
> test (which in turn suggests it should be written in Perl). lintian is
> exactly the place where this kind of tests should be put.
> 

I totally agree. I have commited a version of the script inside
dh-ocaml. Feel free to modify it.

However, it may be good to keep it as a shell script to be able to share
it with other distro. We could just wrap its invocation into a shell
script...

Regards
Sylvain Le Gall
[signature.asc (application/pgp-signature, inline)]

Information forwarded to debian-bugs-dist@lists.debian.org, Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>:
Bug#256900; Package ocaml. Full text and rfc822 format available.

Acknowledgement sent to Russ Allbery <rra@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>. Full text and rfc822 format available.

Message #134 received at 256900@bugs.debian.org (full text, mbox):

From: Russ Allbery <rra@debian.org>
To: Stéphane Glondu <steph@glondu.net>
Cc: 256900@bugs.debian.org, 498138@bugs.debian.org, Debian Ocaml Maint ML <debian-ocaml-maint@lists.debian.org>
Subject: Re: Bug#498138: check for deprecated OCaml -custom linked executable
Date: Sun, 07 Sep 2008 10:02:27 -0700
Stefano Zacchiroli <zack@debian.org> writes:
> On Sun, Sep 07, 2008 at 04:51:07PM +0200, Stéphane Glondu wrote:

>> This check is quite easy using the ocamlobjinfo tool: it prints "Force
>> custom: YES" when given a faulty .cma.

> ... but I doubt that we can rely on external packages from lintian
> checks (lintian maintainers: can we?). So I suggest implementing the
> test in pure Perl, not relying on ocamlobjinfo, it won't be hard at all.

It's possible if the tool is lightweight, but we'd rather not pull in
anything with significant dependencies.  It also constrains maintenance in
the future, since lintian.d.o is on a stable system.  So yes, I think pure
Perl would be better.

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>




Bug 256900 cloned as bug 500286. Request was from Stephane Glondu <steph@glondu.net> to control@bugs.debian.org. (Fri, 26 Sep 2008 22:54:01 GMT) Full text and rfc822 format available.

Tags removed: help Request was from Stephane Glondu <steph@glondu.net> to control@bugs.debian.org. (Fri, 26 Sep 2008 23:00:04 GMT) Full text and rfc822 format available.

Tags added: wontfix Request was from Stephane Glondu <steph@glondu.net> to control@bugs.debian.org. (Fri, 26 Sep 2008 23:00:05 GMT) Full text and rfc822 format available.

Tags removed: patch Request was from Stephane Glondu <steph@glondu.net> to control@bugs.debian.org. (Sun, 02 Nov 2008 23:57:05 GMT) Full text and rfc822 format available.

Reply sent to Stéphane Glondu <steph@glondu.net>:
You have taken responsibility. (Fri, 17 Apr 2009 08:18:06 GMT) Full text and rfc822 format available.

Notification sent to Jeroen van Wolffelaar <jeroen@wolffelaar.nl>:
Bug acknowledged by developer. (Fri, 17 Apr 2009 08:18:06 GMT) Full text and rfc822 format available.

Message #147 received at 256900-done@bugs.debian.org (full text, mbox):

From: Stéphane Glondu <steph@glondu.net>
To: 256900-done@bugs.debian.org
Subject: Closing bug
Date: Fri, 17 Apr 2009 10:15:50 +0200
I think everything has been said on this topic now, therefore I'm
closing this bug.

-- 
Stéphane





Bug archived. Request was from Debbugs Internal Request <owner@bugs.debian.org> to internal_control@bugs.debian.org. (Sat, 16 May 2009 07:34:14 GMT) Full text and rfc822 format available.

Bug unarchived. Request was from Stéphane Glondu <glondu@debian.org> to control@bugs.debian.org. (Tue, 15 Mar 2011 09:51:03 GMT) Full text and rfc822 format available.

Changed Bug submitter to 'Stéphane Glondu <glondu@debian.org>' from 'Jeroen van Wolffelaar <jeroen@wolffelaar.nl>' Request was from Stéphane Glondu <glondu@debian.org> to control@bugs.debian.org. (Tue, 15 Mar 2011 10:00:08 GMT) Full text and rfc822 format available.

Did not alter fixed versions and reopened. Request was from Debbugs Internal Request <owner@bugs.debian.org> to internal_control@bugs.debian.org. (Tue, 15 Mar 2011 10:00:09 GMT) Full text and rfc822 format available.

Information stored :
Bug#256900; Package ocaml. (Tue, 15 Mar 2011 16:33:07 GMT) Full text and rfc822 format available.

Acknowledgement sent to Stéphane Glondu <glondu@debian.org>:
Extra info received and filed, but not forwarded. (Tue, 15 Mar 2011 16:33:07 GMT) Full text and rfc822 format available.

Message #160 received at 256900-quiet@bugs.debian.org (full text, mbox):

From: Stéphane Glondu <glondu@debian.org>
To: Debian Ocaml Maint ML <debian-ocaml-maint@lists.debian.org>
Cc: 256900-quiet@bugs.debian.org, Christian PERRIER <bubulle@debian.org>, "Richard W.M. Jones" <rjones@redhat.com>
Subject: RFC: fix non-strippability of -custom executables in a Debian-specific way
Date: Tue, 15 Mar 2011 17:30:16 +0100
Hello,

I would like to apply to the ocaml package in Debian the patch I 
submitted at [1], even though it has been rejected upstream.

I still agree that -custom should be avoided when possible... but 
contrarily to Xavier, I don't think it is always possible *and relevant* 
in practice. I'm thinking of projects than provide single-use C stubs 
(i.e. stubs that are used only it its own executables). I've fixed 
ocsigen and coq in this regard... but I am upstream for those projects, 
and the changes were quite intrusive. It doesn't look serious to me to 
expect all our upstreams to go through all this trouble to support 
architectures where ocamlopt is not available, i.e. that only Debian 
seems to care about.

The non-strippability issue is still on-topic, as the recent #603580 [2] 
bug shows... and I wouldn't be surprised to see similar bugs in the future.

I still think that -custom should be forbidden for libraries by policy, 
but I'd like to relax the policy to allow -custom for executables that 
use their own "single-use" stubs.

As far as duplication of the interpreter goes: this is a more general 
issue with ocaml: native-code executables also embed the runtime, and 
all executables also embed the standard library. Anyway, this is a 
different issue that should be addressed by other means IMHO.

As far as compatibility goes: this patch might break the possibility to 
run the executable with a different runtime. I am dubious about the 
usefulness of this (maybe cross-compiling), even though it is 
technically possible now. And even with my patch, it will still be 
possible to compile seperately the runtime and the bytecode (using the 
-make-runtime/-use-runtime options of ocamlc), and do whatever 
combination one likes with them.

I am planning to upload ocaml 3.12.0 with this patch unless there is 
strong objection, but I would like to hear from other people's opinion 
(positive or negative).

[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=42;bug=256900
[2] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=603580


Cheers,

-- 
Stéphane




Removed tag(s) wontfix. Request was from Stéphane Glondu <glondu@debian.org> to control@bugs.debian.org. (Tue, 15 Mar 2011 16:42:03 GMT) Full text and rfc822 format available.

Added tag(s) patch. Request was from Stéphane Glondu <glondu@debian.org> to control@bugs.debian.org. (Tue, 15 Mar 2011 16:42:03 GMT) Full text and rfc822 format available.

Information stored :
Bug#256900; Package ocaml. (Tue, 15 Mar 2011 17:00:07 GMT) Full text and rfc822 format available.

Acknowledgement sent to "Richard W.M. Jones" <rjones@redhat.com>:
Extra info received and filed, but not forwarded. (Tue, 15 Mar 2011 17:00:07 GMT) Full text and rfc822 format available.

Message #169 received at 256900-quiet@bugs.debian.org (full text, mbox):

From: "Richard W.M. Jones" <rjones@redhat.com>
To: Stéphane Glondu <glondu@debian.org>
Cc: Debian Ocaml Maint ML <debian-ocaml-maint@lists.debian.org>, 256900-quiet@bugs.debian.org, Christian PERRIER <bubulle@debian.org>
Subject: Re: RFC: fix non-strippability of -custom executables in a Debian-specific way
Date: Tue, 15 Mar 2011 16:58:12 +0000
On Tue, Mar 15, 2011 at 05:30:16PM +0100, Stéphane Glondu wrote:
> Hello,
> 
> I would like to apply to the ocaml package in Debian the patch I
> submitted at [1], even though it has been rejected upstream.

Patch looks sensible, but I'm curious, I can't find why it was
rejected upstream.  From a Fedora POV we'd much prefer something that
Xavier was happy with upstream.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming blog: http://rwmj.wordpress.com
Fedora now supports 80 OCaml packages (the OPEN alternative to F#)
http://cocan.org/getting_started_with_ocaml_on_red_hat_and_fedora




Information stored :
Bug#256900; Package ocaml. (Tue, 15 Mar 2011 17:18:05 GMT) Full text and rfc822 format available.

Acknowledgement sent to Stéphane Glondu <glondu@debian.org>:
Extra info received and filed, but not forwarded. (Tue, 15 Mar 2011 17:18:06 GMT) Full text and rfc822 format available.

Message #174 received at 256900-quiet@bugs.debian.org (full text, mbox):

From: Stéphane Glondu <glondu@debian.org>
To: "Richard W.M. Jones" <rjones@redhat.com>
Cc: Debian Ocaml Maint ML <debian-ocaml-maint@lists.debian.org>, 256900-quiet@bugs.debian.org, Christian PERRIER <bubulle@debian.org>
Subject: Re: RFC: fix non-strippability of -custom executables in a Debian-specific way
Date: Tue, 15 Mar 2011 18:15:18 +0100
Le 15/03/2011 17:58, Richard W.M. Jones a écrit :
>> I would like to apply to the ocaml package in Debian the patch I
>> submitted at [1], even though it has been rejected upstream.
>
> Patch looks sensible, but I'm curious, I can't find why it was
> rejected upstream.  From a Fedora POV we'd much prefer something that
> Xavier was happy with upstream.

http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=49;bug=256900

-- 
Stéphane




Information stored :
Bug#256900; Package ocaml. (Tue, 15 Mar 2011 17:24:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to "Richard W.M. Jones" <rjones@redhat.com>:
Extra info received and filed, but not forwarded. (Tue, 15 Mar 2011 17:24:03 GMT) Full text and rfc822 format available.

Message #179 received at 256900-quiet@bugs.debian.org (full text, mbox):

From: "Richard W.M. Jones" <rjones@redhat.com>
To: Stéphane Glondu <glondu@debian.org>
Cc: Debian Ocaml Maint ML <debian-ocaml-maint@lists.debian.org>, 256900-quiet@bugs.debian.org, Christian PERRIER <bubulle@debian.org>
Subject: Re: RFC: fix non-strippability of -custom executables in a Debian-specific way
Date: Tue, 15 Mar 2011 17:21:01 +0000
On Tue, Mar 15, 2011 at 06:15:18PM +0100, Stéphane Glondu wrote:
> Le 15/03/2011 17:58, Richard W.M. Jones a écrit :
> >>I would like to apply to the ocaml package in Debian the patch I
> >>submitted at [1], even though it has been rejected upstream.
> >
> >Patch looks sensible, but I'm curious, I can't find why it was
> >rejected upstream.  From a Fedora POV we'd much prefer something that
> >Xavier was happy with upstream.
> 
> http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=49;bug=256900

Thanks Stéphane.  I'm actually with Xavier on this.  We'll continue to
use a combination of selectively suppressing prelink and fixing the
upstream packages still using the -custom option.  I think there's
only a tiny number that affect Fedora anyway.  But go for it in Debian
if you want.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming blog: http://rwmj.wordpress.com
Fedora now supports 80 OCaml packages (the OPEN alternative to F#)
http://cocan.org/getting_started_with_ocaml_on_red_hat_and_fedora




Reply sent to Stéphane Glondu <glondu@debian.org>:
You have taken responsibility. (Sat, 16 Apr 2011 16:42:05 GMT) Full text and rfc822 format available.

Notification sent to Stéphane Glondu <glondu@debian.org>:
Bug acknowledged by developer. (Sat, 16 Apr 2011 16:42:05 GMT) Full text and rfc822 format available.

Message #184 received at 256900-close@bugs.debian.org (full text, mbox):

From: Stéphane Glondu <glondu@debian.org>
To: 256900-close@bugs.debian.org
Subject: Bug#256900: fixed in ocaml 3.12.0-1
Date: Sat, 16 Apr 2011 16:39:11 +0000
Source: ocaml
Source-Version: 3.12.0-1

We believe that the bug you reported is fixed in the latest version of
ocaml, which is due to be installed in the Debian FTP archive:

camlp4-extra_3.12.0-1_amd64.deb
  to main/o/ocaml/camlp4-extra_3.12.0-1_amd64.deb
camlp4_3.12.0-1_amd64.deb
  to main/o/ocaml/camlp4_3.12.0-1_amd64.deb
ocaml-base-nox_3.12.0-1_amd64.deb
  to main/o/ocaml/ocaml-base-nox_3.12.0-1_amd64.deb
ocaml-base_3.12.0-1_amd64.deb
  to main/o/ocaml/ocaml-base_3.12.0-1_amd64.deb
ocaml-compiler-libs_3.12.0-1_amd64.deb
  to main/o/ocaml/ocaml-compiler-libs_3.12.0-1_amd64.deb
ocaml-interp_3.12.0-1_amd64.deb
  to main/o/ocaml/ocaml-interp_3.12.0-1_amd64.deb
ocaml-mode_3.12.0-1_all.deb
  to main/o/ocaml/ocaml-mode_3.12.0-1_all.deb
ocaml-native-compilers_3.12.0-1_amd64.deb
  to main/o/ocaml/ocaml-native-compilers_3.12.0-1_amd64.deb
ocaml-nox_3.12.0-1_amd64.deb
  to main/o/ocaml/ocaml-nox_3.12.0-1_amd64.deb
ocaml-source_3.12.0-1_all.deb
  to main/o/ocaml/ocaml-source_3.12.0-1_all.deb
ocaml_3.12.0-1.debian.tar.gz
  to main/o/ocaml/ocaml_3.12.0-1.debian.tar.gz
ocaml_3.12.0-1.dsc
  to main/o/ocaml/ocaml_3.12.0-1.dsc
ocaml_3.12.0-1_amd64.deb
  to main/o/ocaml/ocaml_3.12.0-1_amd64.deb
ocaml_3.12.0.orig.tar.gz
  to main/o/ocaml/ocaml_3.12.0.orig.tar.gz



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 256900@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Stéphane Glondu <glondu@debian.org> (supplier of updated ocaml package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Sat, 16 Apr 2011 17:39:54 +0200
Source: ocaml
Binary: ocaml-nox camlp4 camlp4-extra ocaml ocaml-base-nox ocaml-base ocaml-native-compilers ocaml-source ocaml-interp ocaml-compiler-libs ocaml-mode
Architecture: source amd64 all
Version: 3.12.0-1
Distribution: unstable
Urgency: low
Maintainer: Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>
Changed-By: Stéphane Glondu <glondu@debian.org>
Description: 
 camlp4     - Pre Processor Pretty Printer for OCaml
 camlp4-extra - Pre Processor Pretty Printer for OCaml - extras
 ocaml      - ML language implementation with a class-based object system
 ocaml-base - Runtime system for OCaml bytecode executables
 ocaml-base-nox - Runtime system for OCaml bytecode executables (no X)
 ocaml-compiler-libs - OCaml interpreter and standard libraries
 ocaml-interp - OCaml interactive interpreter and standard libraries
 ocaml-mode - major mode for editing Objective Caml in Emacs
 ocaml-native-compilers - Native code compilers of the OCaml suite (the .opt ones)
 ocaml-nox  - ML implementation with a class-based object system (no X)
 ocaml-source - Sources for Objective Caml
Closes: 255245 256900 347270 562606 570920 619344
Changes: 
 ocaml (3.12.0-1) unstable; urgency=low
 .
   * New upstream release:
     - add Unix.setgroups (Closes: #255245)
     - fix bug in the num library on sparc (Closes: #570920)
     - add armel to native architectures; note that the Dynlink module is
       not available in native code there: software using it should take care
       of this new possibility (Closes: #347270)
     - {add,scrape}labels are no longer installed
     - remove ocaml{byteinfo,plugininfo,dumpapprox}: all tools merged into
       ocamlobjinfo; add binutils-dev to Buid-Depends
   * debian/rules: switch to dh with overrides
   * Embed bytecode in C object when using -custom (Closes: #256900)
   * Ask pkg-config for libx11 path (Closes: #619344)
   * Bump debhelper compat level to 8 (Closes: #562606)
   * Switch source package format to 3.0 (quilt)
   * Bump Standards-Version to 3.9.2
Checksums-Sha1: 
 03107d4e5b345a544bb5ba4dbb8f34a5ba684cb1 2305 ocaml_3.12.0-1.dsc
 37a56d90e49669d73b8468069284dc690085c7ee 3271024 ocaml_3.12.0.orig.tar.gz
 f6672a3a4f5ce39cff8d6f23fce27ee35247e0c4 48448 ocaml_3.12.0-1.debian.tar.gz
 fa8372a5a0d4df43ba3cba5826585ecfce254bb6 7598214 ocaml-nox_3.12.0-1_amd64.deb
 2ae20840efbd69fefa3acc7b459a74b02529dbdd 18397130 camlp4_3.12.0-1_amd64.deb
 e38b03d48d7b11d0f82790c33ff78824031f1434 17764988 camlp4-extra_3.12.0-1_amd64.deb
 b2dc3cbc2da660f9ce94480261804e7d62b7f672 2171022 ocaml_3.12.0-1_amd64.deb
 eafd7d1087224af465c32e73cae47285b9f2f68c 698104 ocaml-base-nox_3.12.0-1_amd64.deb
 56670634c386daba811ad53aa30feb462675f8fa 127126 ocaml-base_3.12.0-1_amd64.deb
 81cab3fed855040b60aff6a959d9f1fefdcd00d4 3201610 ocaml-native-compilers_3.12.0-1_amd64.deb
 d07331c830bd67f65c0f409ece57d527f293e8b1 2781084 ocaml-source_3.12.0-1_all.deb
 5bb6cbbeb8299412e2838a8ca2a3ae3f4e41ba72 314942 ocaml-interp_3.12.0-1_amd64.deb
 14994ae6aa2cd1853965b30fe1dccd9d45aa7f1f 1208714 ocaml-compiler-libs_3.12.0-1_amd64.deb
 09a655d988b78d4dde46fbda9edefbb7b1d67df3 114030 ocaml-mode_3.12.0-1_all.deb
Checksums-Sha256: 
 b5eccf943350c2179300ca573a8fb2688480c7c79cc59eb0e19587bc3ec2d3b8 2305 ocaml_3.12.0-1.dsc
 d964b385e110c1517c9de1c6331476d5e7a3585cc692b6b6b8973f3a9be7da4b 3271024 ocaml_3.12.0.orig.tar.gz
 69a5635880f8ae250fe1f564ff159128d436c62e049fec48eea65e489a0f9417 48448 ocaml_3.12.0-1.debian.tar.gz
 f022aa3fec125b22f6a4c496e21965dd211ab989924c7318baacd6278a5c2ac6 7598214 ocaml-nox_3.12.0-1_amd64.deb
 c46c988bba009531b83adfc468065ba1f1b8076c24dbf7a98a3ef1ba939fca93 18397130 camlp4_3.12.0-1_amd64.deb
 511ecef3aacb94e119875ffffe51c0ad13f6ce30a71b4182c8c5b140cd023048 17764988 camlp4-extra_3.12.0-1_amd64.deb
 85e510722808db2d2e0063862ac555ccd7f15fdc7d959e946a220d1b0b46cace 2171022 ocaml_3.12.0-1_amd64.deb
 4e6433823ac950d093e20a3723c9decc6f525ef4f8cf468f7c2daadbe279ecff 698104 ocaml-base-nox_3.12.0-1_amd64.deb
 42baec82b3fa7db2ddecec4c0b7fc0f398b8fc47a1ce3d499e1a1ae4587c1832 127126 ocaml-base_3.12.0-1_amd64.deb
 55032f545b08e0e68d39562a60227add5df9a81524f8fe4414eeebc24caa13c6 3201610 ocaml-native-compilers_3.12.0-1_amd64.deb
 f43e543e9f27a02ab60565e17d1224c6f502841d4e3d985f910fba6a25ad7dc1 2781084 ocaml-source_3.12.0-1_all.deb
 cbb8618022f50a9308d37f0e0b8680d5af4d78a6dd3afb8200e446213740fed3 314942 ocaml-interp_3.12.0-1_amd64.deb
 a5df0f148f1bc2d7a8d8d388265922aa40871a639deb18f29096216126097c8c 1208714 ocaml-compiler-libs_3.12.0-1_amd64.deb
 7c339bd0a4a07a9d6dfa0a509f807ed60d37db2685c54a84a709ea329d1a1c46 114030 ocaml-mode_3.12.0-1_all.deb
Files: 
 cde9135010c01f2691363edb13be664f 2305 ocaml optional ocaml_3.12.0-1.dsc
 3ba7cc65123c3579f14e7c726d3ee782 3271024 ocaml optional ocaml_3.12.0.orig.tar.gz
 46df828b6ce55abd2af2ea4dd4dc8812 48448 ocaml optional ocaml_3.12.0-1.debian.tar.gz
 287bd6a92ef4b0f49e056bdf5dba970a 7598214 ocaml optional ocaml-nox_3.12.0-1_amd64.deb
 aa9fd9084621c3a0169003656ea4515d 18397130 ocaml optional camlp4_3.12.0-1_amd64.deb
 8584c7ba761ec5728af74d11abf06399 17764988 ocaml optional camlp4-extra_3.12.0-1_amd64.deb
 52a59c2db614cf80a5dba248a549fc78 2171022 ocaml optional ocaml_3.12.0-1_amd64.deb
 49ea6d84b30307df9416497655ec483c 698104 ocaml optional ocaml-base-nox_3.12.0-1_amd64.deb
 25d8bbc75573740ae34186fc68da8515 127126 ocaml optional ocaml-base_3.12.0-1_amd64.deb
 c887c51f6567c6af88745c4c3823660b 3201610 ocaml optional ocaml-native-compilers_3.12.0-1_amd64.deb
 4fb568fe829fa434aec38137ba4384ff 2781084 ocaml optional ocaml-source_3.12.0-1_all.deb
 5ed37023c9d1755f6dafe661d47b0dec 314942 ocaml optional ocaml-interp_3.12.0-1_amd64.deb
 af7580ce892db2a93761eab872732b65 1208714 ocaml optional ocaml-compiler-libs_3.12.0-1_amd64.deb
 1bea5f033dd7394e8c14b3bbb056ec1d 114030 ocaml optional ocaml-mode_3.12.0-1_all.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iQIcBAEBCgAGBQJNqb4UAAoJEHhT2k1JiBrTv1kP/0QNAU7BDDnETu7nXfS1Ar/0
k8zpXwso3MQ1YWKO4RRsdJUGrnvWAlF5oG+dLpKtHBE70UsarL5N/5lWMKsp3IBT
OIhHEsIT5bT1a0TS7PxV/qaM3JUqjOc2bdlAR3ORWpqRKWWmVth/9RVdqO4ROkzZ
6320Pc8nqU2HnEN74av1y7JVVvbZ2Xq4/HjqtpE8SM6s9jbXlHvgYV49CHOYZgrT
kvufdDsU7E1w4A75ugVOv6T7oPnsT68xjm8fpLfd5yvHDrO9tsCXTH7wvW48tnOJ
A9mPZiCOGjIeFKR8nKZFGHRIS39vo7Ly/7aFnPSb7/XMeNbMvV3pu+1aE0JxOlcj
Jj9Y1UCsTSUxBzFs4pNnU6Guo/3OH8pVCg3ZodRJ4cCkvuSucbBIr8OEkhJ146tW
cQiS9lNfFCubN6tFPPbhQiShzfpTqpdTzZrcmeQwGQCbZe4P2Ka62hh+i1Bwtm7U
Of96HjqSpzghDfvyo+WrP/torbBy180gDgW6ZROEJ8P5dKB1GwK+k6SYAEE23wB7
FgKt2jWuOVgxhcnD51KR5Y0tif88IwCpiVQC3laePE9TsDODDXlEAvYBZYNFC4MF
LDw94LGhIxkC0z5x1EuNkRlngBti4BtQNF/u2oqo/YH063kpX7qbaJmQTdxeJb4a
vGUhws1ELH00NuDSlI+m
=3JK6
-----END PGP SIGNATURE-----





Bug archived. Request was from Debbugs Internal Request <owner@bugs.debian.org> to internal_control@bugs.debian.org. (Tue, 17 May 2011 07:32:12 GMT) Full text and rfc822 format available.

Send a report that this bug log contains spam.


Debian bug tracking system administrator <owner@bugs.debian.org>. Last modified: Wed Apr 23 18:42:38 2014; Machine Name: buxtehude.debian.org

Debian Bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.