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

ocaml 3.07beta2 is up at people.debian.org/~luther/ocaml



Hello, ...

I have just uploaded ocaml 3.07beta2 to :

deb http://people.debian.org/~luther/ocaml .

They are apt-gettable, and more or less lintian clean :

... ocaml-source stuff skipped ...
W: ocaml-base: binary-or-shlib-defines-rpath ./usr/lib/ocaml/3.07/stublibs/dllgraphics.so /usr/X11R6/lib
W: ocaml-base: binary-or-shlib-defines-rpath ./usr/lib/ocaml/3.07/stublibs/dlllabltk.so /usr/lib:/usr/X11R6/lib
W: ocaml-base: binary-or-shlib-defines-rpath ./usr/lib/ocaml/3.07/stublibs/dlltkanim.so /usr/lib:/usr/X11R6/lib
W: ocaml-base: missing-depends-line
E: ocaml: binary-without-manpage camlp4sch
E: ocaml: binary-without-manpage ocamldep.opt
W: ocaml: script-not-executable ./usr/lib/ocaml/3.07/camlheader
W: ocaml source: newer-standards-version 3.6.0
W: ocaml source: outdated-autotools-helper-file config/gnu/config.guess 2001-06-25
W: ocaml source: outdated-autotools-helper-file config/gnu/config.sub 2001-06-08

That said, they don't install cleanly because of emacs stuff :

While compiling toplevel forms in file /usr/share/emacs20/site-lisp/ocaml/caml-xemacs.el:
  !! File error (("Cannot open load file" "overlay"))

:(((

Could an emacs guru have a look at this one ?

The good news is that many of our patches where integrated upstream, the
only missing stuff is :

======= versioned_libdir.dpatch ================

diff -ur ocaml-3.07beta2.orig/camlp4/config/configure_batch ocaml-3.07beta2/camlp4/config/configure_batch
--- ocaml-3.07beta2.orig/camlp4/config/configure_batch	2002-07-23 16:11:49.000000000 +0200
+++ ocaml-3.07beta2/camlp4/config/configure_batch	2003-08-26 14:41:45.000000000 +0200
@@ -92,13 +92,13 @@
    *) echo "BINDIR=$bindir" >> Makefile.cnf;;
 esac
 case "$libdir" in
-  "") echo 'LIBDIR=$(PREFIX)/lib/camlp4' >> Makefile.cnf
-      libdir="$prefix/lib/camlp4";;
+  "") echo 'LIBDIR=$(PREFIX)/lib/ocaml/3.07/camlp4' >> Makefile.cnf
+      libdir="$prefix/lib/ocaml/3.07/camlp4";;
    *) echo "LIBDIR=$libdir" >> Makefile.cnf;;
 esac
 case "$mandir" in
-  "") echo 'MANDIR=$(PREFIX)/man/man1' >> Makefile.cnf
-      mandir="$prefix/man/man1";;
+  "") echo 'MANDIR=$(PREFIX)/share/man/man1' >> Makefile.cnf
+      mandir="$prefix/share/man/man1";;
    *) echo "MANDIR=$mandir" >> Makefile.cnf;;
 esac
 
diff -ur ocaml-3.07beta2.orig/configure ocaml-3.07beta2/configure
--- ocaml-3.07beta2.orig/configure	2003-08-20 17:10:58.000000000 +0200
+++ ocaml-3.07beta2/configure	2003-08-26 14:41:45.000000000 +0200
@@ -146,8 +146,8 @@
    *) echo "BINDIR=$bindir" >> Makefile;;
 esac
 case "$libdir" in
-  "") echo 'LIBDIR=$(PREFIX)/lib/ocaml' >> Makefile
-      libdir="$prefix/lib/ocaml";;
+  "") echo 'LIBDIR=$(PREFIX)/lib/ocaml/3.07' >> Makefile
+      libdir="$prefix/lib/ocaml/3.07";;
    *) echo "LIBDIR=$libdir" >> Makefile;;
 esac
 echo 'STUBLIBDIR=$(LIBDIR)/stublibs' >> Makefile

======= clean.dpatch ================

diff -ur ocaml-3.07beta2.orig/camlp4/camlp4/Makefile ocaml-3.07beta2/camlp4/camlp4/Makefile
--- ocaml-3.07beta2.orig/camlp4/camlp4/Makefile	2003-08-21 15:50:21.000000000 +0200
+++ ocaml-3.07beta2/camlp4/camlp4/Makefile	2003-08-26 14:45:32.000000000 +0200
@@ -39,6 +39,7 @@
 clean::
 	rm -f *.cm* *.pp[io] *.o *.a *.bak .*.bak *.out *.opt
 	rm -f $(CAMLP4)
+	rm -f camlp4.a
 
 depend:
 	cp .depend .depend.bak
diff -ur ocaml-3.07beta2.orig/otherlibs/labltk/Makefile ocaml-3.07beta2/otherlibs/labltk/Makefile
--- ocaml-3.07beta2.orig/otherlibs/labltk/Makefile	2002-05-16 17:23:05.000000000 +0200
+++ ocaml-3.07beta2/otherlibs/labltk/Makefile	2003-08-26 14:45:32.000000000 +0200
@@ -3,7 +3,7 @@
 SUBDIRS=compiler support lib jpf frx tkanim examples_labltk \
 	camltk labltk examples_camltk browser
 
-all:
+all: backup
 	cd support; $(MAKE)
 	cd compiler; $(MAKE)
 	cd labltk; $(MAKE) -f Makefile.gen
@@ -16,7 +16,7 @@
 	cd tkanim; $(MAKE)
 	cd browser; $(MAKE)
 
-allopt:
+allopt: backup
 	cd support; $(MAKE) opt
 	cd labltk; $(MAKE) -f Makefile.gen
 	cd labltk; $(MAKE) opt
@@ -71,5 +71,13 @@
 	for d in $(SUBDIRS); do \
 	    cd $$d; $(MAKE) -f Makefile clean; cd ..; \
 	done
+	-mv README.labltk README
+	-mv labltk/.depend.original labltk/.depend
+	-mv camltk/.depend.original camltk/.depend
+
+backup:
+	-mv README README.labltk
+	-cp labltk/.depend labltk/.depend.original
+	-cp camltk/.depend camltk/.depend.original
 
 depend:
diff -ur ocaml-3.07beta2.orig/otherlibs/systhreads/Makefile ocaml-3.07beta2/otherlibs/systhreads/Makefile
--- ocaml-3.07beta2.orig/otherlibs/systhreads/Makefile	2003-08-21 15:52:07.000000000 +0200
+++ ocaml-3.07beta2/otherlibs/systhreads/Makefile	2003-08-26 14:45:32.000000000 +0200
@@ -68,6 +68,7 @@
 clean: partialclean
 	rm -f *.o *.a *.so
 	rm -f $(GENFILES)
+	rm -f dllthreads.so
 
 install:
 	if test -f dllthreads.so; then cp dllthreads.so $(STUBLIBDIR)/dllthreads.so; fi

======= objinfo.dpatch ================

#! /bin/sh -e 
## 16_objinfo.dpatch by <luther@debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Makefiles, configure scripts and other build stuff adapted for
## DP: debian package creation

if [ $# -ne 1 ]; then
    echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
    exit 1
fi
case "$1" in
    -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
    -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;	
    *)
	echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
	exit 1;;
esac

exit 0
@DPATCH@
diff -ur ocaml-3.07beta1.orig/tools/Makefile ocaml-3.07beta1/tools/Makefile
--- ocaml-3.07beta1.orig/tools/Makefile	2003-04-02 03:17:58.000000000 +0200
+++ ocaml-3.07beta1/tools/Makefile	2003-08-06 13:15:53.000000000 +0200
@@ -23,7 +23,8 @@
 COMPFLAGS= -warn-error A $(INCLUDES)
 LINKFLAGS=$(INCLUDES)
 
-all: ocamldep ocamlprof ocamlcp ocamlmktop ocamlmklib scrapelabels addlabels
+all: ocamldep ocamlprof ocamlcp ocamlmktop ocamlmklib scrapelabels addlabels \
+	objinfo
 
 opt.opt: ocamldep.opt
 
--- ocaml-3.07-3.06.99.2003.07.05.orig/man/ocamlc.m
+++ ocaml-3.07-3.06.99.2003.07.05/man/ocamlc.m
@@ -241,7 +241,8 @@
 
 .SH SEE ALSO
 .BR ocaml (1),
-.BR ocamlrun (1).
+.BR ocamlrun (1),
+.BR objinfo (1).
 .br
 .I The Objective Caml user's manual,
 chapter "Batch compilation".
--- ocaml-3.07-3.06.99.2003.07.05.orig/man/ocamlopt.m
+++ ocaml-3.07-3.06.99.2003.07.05/man/ocamlopt.m
@@ -224,7 +224,8 @@
 array or string outside of its bounds.
 
 .SH SEE ALSO
-.BR ocamlc (1).
+.BR ocamlc (1),
+.BR objinfo (1).
 .br
 .I The Objective Caml user's manual,
 chapter "Native-code compilation".
--- ocaml-3.07-3.06.99.2003.07.05.orig/man/objinfo.m
+++ ocaml-3.07-3.06.99.2003.07.05/man/objinfo.m
@@ -0,0 +1,40 @@
+.TH OCAML-SOAP 1 "October 26, 2002"
+.SH NAME
+objinfo \- dump an OCaml compilation unit description
+.SH SYNOPSIS
+.B objinfo
+.RI file\ ...
+.SH DESCRIPTION
+Dump information contained in OCaml compilation units.
+Currently it works on .cmi, .cmo and .cma files.
+.sp 2
+.B objinfo
+is able to show information regarding:
+.br
+.IP
+module names
+.sp 2
+unit name
+.sp 2
+declared primitives
+.sp 2
+imported interfaces
+.sp 2
+md5sums of imported interfaces
+.sp 2
+forced custom mode
+.sp 2
+extra C libraries needed
+.sp 2
+extra C flags needed
+.sp 2
+use of unsafe features
+.PP
+depending on its invocation on .cmi, .cmo or .cma arguments.
+.SH SEE ALSO
+.BR ocamlc (1),
+.BR ocamlopt (1)
+.br
+.SH AUTHOR
+This manual page was written by Stefano Zacchiroli <zack@debian.org>,
+for the Debian GNU/Linux system (but may be used by others).

============================================================================

The first one is too debian specific as is the middle chunk of the
second patch. Both other chunks of the second patch could have been
integrated, and i will ask Xavier why he let them out.

For the objinfo patch, two remarks, Xavier told me it would be good to
ship it, but he likes to do more improvement in the post 3.07 timeframe,
and it should probably be renamed ocamlobjinfo. Stefano, if you feel
like doing this, you could already modify the objinfo patch so that it
is called ocamlobjinfo.

Ok, that is for the ocaml 3.07beta2 packages, now a bit of future
planning. AS you now know, the plan calls for releasing ocaml 3.07 as
part of sarge. I think this is a reasonable goal and we have proven that
we can handle it. Furthermore, i will just ship a plain ocaml 3.07
package, and not go forward with the parallel installation plan for now.
I have broached the subject with Xavier though, and there needs to be
discussion about this both in the ocaml team and on the ocaml mailing
list, but it will definitively not be something to be used in the ocaml
3.07/debian sarge timeframe. An Ocaml 3.07.99 cvs snapshot package in
experimental will probably be the right place for experimenting such
things in the post sarge timeframe.

Are we all agreed on this rough plan ?

If yes, please everyone, could you either test your packages with the
ocaml-3.07-beta2 (feel free to upload them also to my repository or
something), and if there are problems with it, or if you are awaiting a
new upstream release for ocaml 3.07 (as is often the case) try to get
some kind of schedule out of upstream. Possibly even packaging cvs
snapshots or something such to my private repository in the meantime,
and i would even encourage you to upload this to unstable as soon as
ocaml 3.07 is released and in unstable, since this is the code we are
going to ship with sarge. 3.06 will be available in testing for some
time, but is considered dead for sarge release purpose.

If there is code currently in unstable that fix bugs, but is delayed to
enter testing because of the glibc upgrade or something such, please
consider uploading it to testing-proposed-updates instead. I did so for
the ocaml 3.06-21, which i backported to 3.06-17.sarge1. I uploaded a
ia64 build i generated on one of the debian sarge dchroots, and altough
it is not autobuilt right now, it will once aj enables the
testing-proposed-updates autobuilders again. Ask aj for it first though,
and tell him it is part of the plan to make place for ocaml 3.07 in
unstable.

Friendly,

Sven Luther



Reply to: