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

Re: [Pkg-xen-devel] [patch] Packages ocaml libraries



On 09/09/2011 12:13 PM, Thomas Goirand wrote:
> Mike, Jonathan, can we have your useful comment on this? Namely:
> - Is your uuidm a fork of libuuidm-ocaml-dev? Can you make it so we use
> that one instead of what's in Xen 4.1.1?
> - Can we use @OCamlStdlibDir@/xen/libname for all the files that aren't
> .so? Will it be an issue later?
> 
> We really need your feedback here. Also, I tried once more to build
> xen-api-libs in SID, and it failed to build, even with the
> xen-api-libs-debian patches from Jonathan. Can you look into that so we
> can move forward with this packaging as well?
> 
> Thomas

Hi,

I had a reply from Jon about 10 days ago, where he tells he is ok with
using a "xen" folder for the ocaml libs, but had no time to rewrite the
patch corresponding to it. Here it is, attached to this message, moving
all non-.so files into @OCamlStdlibDir@/xen/${folder}. The reply of
Jonathan is below. Please accept this patch into Xen: it has been a
painful and long enough process already, and it's time to move forward.

Cheers,

Thomas Goirand

Here's Jon's reply:

On 09/19/2011 05:22 AM, Jonathan Ludlam wrote:
> Apologies, I've been a little busy with XCP 1.1 stuff and a
> new release of XenServer.
>
> The uuid library is a home-grown thing, not a fork of uuidm.
>
> In the longer term, I think we should:
> 1. rename the packages xc->xenctrl, xs->xenstore, xb->xenbus,
> xl->xenlight, etc.
> 2. Remove the uuid library. Patches have already been sent to
> xen-devel to do this
>
> In the short term, I'm quite happy with packaging things under the
> 'xen' dir - I've not done this with ocamlfind before, but I'm sure we
> can come up with some appropriate patches.
>
> I'm surprised you can't get xen-api-libs to build - it's working fine
> for me. I've got an up-to-date debian packaging folder on
> github.com/jonludlam/xen-api-libs-debian.git
>
> Jon
diff -u -N -r old/xen-4.1.1/debian/control new/xen-4.1.1/debian/control
--- old/xen-4.1.1/debian/control	2011-08-05 21:59:23.000000000 +0000
+++ new/xen-4.1.1/debian/control	2011-10-02 06:20:08.000000000 +0000
@@ -4,7 +4,7 @@
 Maintainer: Debian Xen Team <pkg-xen-devel@lists.alioth.debian.org>
 Uploaders: Julien Danjou <acid@debian.org>, Guido Trotter <ultrotter@debian.org>, Bastian Blank <waldi@debian.org>
 Standards-Version: 3.8.4
-Build-Depends: debhelper (>> 7), lsb-release, python-dev, bcc, gcc-multilib, e2fslibs-dev, iasl, ipxe, libaio-dev, libgnutls-dev, libncurses5-dev, libpci-dev, uuid-dev, zlib1g-dev
+Build-Depends: debhelper (>> 7), lsb-release, python-dev, bcc, gcc-multilib, e2fslibs-dev, iasl, ipxe, libaio-dev, libgnutls-dev, libncurses5-dev, libpci-dev, uuid-dev, zlib1g-dev, ocaml-nox (>= 3.11.1-3~), dh-ocaml (>= 0.9~), ocaml-findlib
 Build-Depends-Indep: graphviz, ghostscript, texlive-fonts-recommended, texlive-font-utils, texlive-latex-recommended
 XS-Python-Version: 2.6
 
@@ -17,6 +17,26 @@
  includes a description interface (both the API, and a nice explanation of
  how XEN works).
 
+Package: libxen-ocaml
+Architecture: any
+Section: ocaml
+Provides: ${ocaml:Provides}
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${ocaml:Depends}
+Description: interface for remotely configuring and controlling guests (runtime)
+ The Xen Management API is an interface for remotely configuring and
+ controlling virtualised guests running on a Xen-enabled host.  This
+ package containst the runtime OCaml library.
+
+Package: libxen-ocaml-dev
+Architecture: any
+Section: ocaml
+Provides: ${ocaml:Provides}
+Depends: libxen-ocaml (= ${binary:Version}), ${shlibs:Depends}, ocaml-findlib (>= 1.1), ${misc:Depends}, ${ocaml:Depends}
+Description: interface for remotely configuring and controlling guests (development files)
+ The Xen Management API is an interface for remotely configuring and
+ controlling virtualised guests running on a Xen-enabled host.  This
+ package containst the development files for the OCaml library.
+
 Package: libxenstore3.0
 Architecture: any
 Section: libs
diff -u -N -r old/xen-4.1.1/debian/control.md5sum new/xen-4.1.1/debian/control.md5sum
--- old/xen-4.1.1/debian/control.md5sum	2011-08-05 21:59:23.000000000 +0000
+++ new/xen-4.1.1/debian/control.md5sum	2011-10-02 06:20:08.000000000 +0000
@@ -1,8 +1,8 @@
 2d07209575a8c73b977755f83bcd4d23  debian/changelog
 24f2598a23e30264aea4a983d5d19eec  debian/bin/gencontrol.py
 667edd28bcda9cd243bb69c78e452aad  debian/templates/control.hypervisor.in
-e4335ab10e217a12328cdf123473ed37  debian/templates/control.main.in
-e93942d536a94c68a2457291785e7799  debian/templates/control.source.in
+2f41858b7a556389f019500f81a2ed7a  debian/templates/control.main.in
+7a9992d11a8733c54bb50c371c635cc9  debian/templates/control.source.in
 92c32bf7b0389c47b11d05885f605750  debian/templates/control.utils.in
 a15fa64ce6deead28d33c1581b14dba7  debian/templates/xen-hypervisor.postinst.in
 22492e0565a4754b5e008ca7cac871da  debian/templates/xen-hypervisor.postrm.in
diff -u -N -r old/xen-4.1.1/debian/find_ocaml_libs new/xen-4.1.1/debian/find_ocaml_libs
--- old/xen-4.1.1/debian/find_ocaml_libs	1970-01-01 00:00:00.000000000 +0000
+++ new/xen-4.1.1/debian/find_ocaml_libs	2011-10-02 06:32:16.000000000 +0000
@@ -0,0 +1,63 @@
+#!/bin/sh
+
+# This small helper is writing the libxen-ocaml.install.in and libxen-ocaml-dev.install.in
+# automatically. It's not meant to be fool proof, so please check for the results before
+# using it's results.
+
+OCAML_LIBS_PATH=build/build-utils_i386/tools/ocaml/libs
+echo "Will search in ${OCAML_LIBS_PATH}"
+
+if ! [ -d ${OCAML_LIBS_PATH} ] ; then
+	echo "Please build Xen first!"
+	exit 1
+fi
+
+CWD=`pwd`
+cd ${OCAML_LIBS_PATH}
+FOLDERS=`find . -maxdepth 1 -mindepth 1 -type d | cut -d'/' -f2`
+
+LIBXEN_OCAML_INSTALL=""
+LIBXEN_OCAML_DEV_INSTALL=""
+
+for folder in ${FOLDERS} ; do
+	echo "===> Searching in ${folder}"
+	cd ${folder}
+	# Do the DLL thing
+	OCAML_DLL=`find . -iname 'dll*.so' | cut -d'/' -f2`
+	if [ -n "${OCAML_DLL}" ] ; then
+		echo "Found DLL: \"${OCAML_DLL}\""
+		LIBXEN_OCAML_INSTALL=${LIBXEN_OCAML_INSTALL}"\n"@XenBuildOcamlLibsDir@/${folder}/${OCAML_DLL}"\t"@OCamlDllDir@
+	fi
+	# Do the .cma and META
+	FOUND=""
+	for ext in META .cma ; do
+		MY_OCAML_FILES=`find . -iname '*'${ext} | cut -d'/' -f2`
+		if [ -n "${MY_OCAML_FILES}" ] ; then
+			for j in ${MY_OCAML_FILES} ; do
+				LIBXEN_OCAML_INSTALL=${LIBXEN_OCAML_INSTALL}"\n"@XenBuildOcamlLibsDir@/${folder}/${j}"\t"@OCamlStdlibDir@/xen/${folder}
+				FOUND="${FOUND} ${j}"
+			done
+		fi
+	done
+	echo "Found for libxen-ocaml: ${FOUND}"
+
+	# All the other files will go in the -dev package
+	FOUND=""
+	for ext in a cmi cmxa mli cmx cmo ; do
+		MY_OCAML_FILES=`find . -iname '*.'${ext} | cut -d'/' -f2`
+		if [ -n "${MY_OCAML_FILES}" ] ; then
+			for j in ${MY_OCAML_FILES} ; do
+				LIBXEN_OCAML_DEV_INSTALL=${LIBXEN_OCAML_DEV_INSTALL}"\n"@XenBuildOcamlLibsDir@/${folder}/${j}"\t"@OCamlStdlibDir@/xen/${folder}
+				FOUND="${FOUND} ${j}"
+			done
+		fi
+	done
+	echo "Found for libxen-ocaml-dev: ${FOUND}"
+	#LIBXEN_OCAML_INSTALL=${LIBXEN_OCAML_INSTALL}"\n"
+	cd ..
+done
+
+echo "Content of the libxen-ocaml.install.in is:"
+echo ${LIBXEN_OCAML_INSTALL}
+echo "Content for the libxen-ocaml-dev.install.in is:"
+echo ${LIBXEN_OCAML_DEV_INSTALL}
diff -u -N -r old/xen-4.1.1/debian/libxen-ocaml-dev.install.in new/xen-4.1.1/debian/libxen-ocaml-dev.install.in
--- old/xen-4.1.1/debian/libxen-ocaml-dev.install.in	1970-01-01 00:00:00.000000000 +0000
+++ new/xen-4.1.1/debian/libxen-ocaml-dev.install.in	2011-10-02 06:31:24.000000000 +0000
@@ -0,0 +1,85 @@
+@XenBuildOcamlLibsDir@/mmap/mmap.a	@OCamlStdlibDir@/xen/mmap
+@XenBuildOcamlLibsDir@/mmap/libmmap_stubs.a	@OCamlStdlibDir@/xen/mmap
+@XenBuildOcamlLibsDir@/mmap/mmap.cmi	@OCamlStdlibDir@/xen/mmap
+@XenBuildOcamlLibsDir@/mmap/mmap.cmxa	@OCamlStdlibDir@/xen/mmap
+@XenBuildOcamlLibsDir@/mmap/mmap.mli	@OCamlStdlibDir@/xen/mmap
+@XenBuildOcamlLibsDir@/mmap/mmap.cmx	@OCamlStdlibDir@/xen/mmap
+@XenBuildOcamlLibsDir@/mmap/mmap.cmo	@OCamlStdlibDir@/xen/mmap
+@XenBuildOcamlLibsDir@/eventchn/libeventchn_stubs.a	@OCamlStdlibDir@/xen/eventchn
+@XenBuildOcamlLibsDir@/eventchn/eventchn.a	@OCamlStdlibDir@/xen/eventchn
+@XenBuildOcamlLibsDir@/eventchn/eventchn.cmi	@OCamlStdlibDir@/xen/eventchn
+@XenBuildOcamlLibsDir@/eventchn/eventchn.cmxa	@OCamlStdlibDir@/xen/eventchn
+@XenBuildOcamlLibsDir@/eventchn/eventchn.mli	@OCamlStdlibDir@/xen/eventchn
+@XenBuildOcamlLibsDir@/eventchn/eventchn.cmx	@OCamlStdlibDir@/xen/eventchn
+@XenBuildOcamlLibsDir@/eventchn/eventchn.cmo	@OCamlStdlibDir@/xen/eventchn
+@XenBuildOcamlLibsDir@/xl/xl.a	@OCamlStdlibDir@/xen/xl
+@XenBuildOcamlLibsDir@/xl/libxl_stubs.a	@OCamlStdlibDir@/xen/xl
+@XenBuildOcamlLibsDir@/xl/xl.cmi	@OCamlStdlibDir@/xen/xl
+@XenBuildOcamlLibsDir@/xl/xl.cmxa	@OCamlStdlibDir@/xen/xl
+@XenBuildOcamlLibsDir@/xl/xl.mli	@OCamlStdlibDir@/xen/xl
+@XenBuildOcamlLibsDir@/xl/xl.cmx	@OCamlStdlibDir@/xen/xl
+@XenBuildOcamlLibsDir@/xl/xl.cmo	@OCamlStdlibDir@/xen/xl
+@XenBuildOcamlLibsDir@/xb/xb.a	@OCamlStdlibDir@/xen/xb
+@XenBuildOcamlLibsDir@/xb/libxb_stubs.a	@OCamlStdlibDir@/xen/xb
+@XenBuildOcamlLibsDir@/xb/packet.cmi	@OCamlStdlibDir@/xen/xb
+@XenBuildOcamlLibsDir@/xb/op.cmi	@OCamlStdlibDir@/xen/xb
+@XenBuildOcamlLibsDir@/xb/xs_ring.cmi	@OCamlStdlibDir@/xen/xb
+@XenBuildOcamlLibsDir@/xb/partial.cmi	@OCamlStdlibDir@/xen/xb
+@XenBuildOcamlLibsDir@/xb/xb.cmi	@OCamlStdlibDir@/xen/xb
+@XenBuildOcamlLibsDir@/xb/xb.cmxa	@OCamlStdlibDir@/xen/xb
+@XenBuildOcamlLibsDir@/xb/xb.mli	@OCamlStdlibDir@/xen/xb
+@XenBuildOcamlLibsDir@/xb/partial.cmx	@OCamlStdlibDir@/xen/xb
+@XenBuildOcamlLibsDir@/xb/xs_ring.cmx	@OCamlStdlibDir@/xen/xb
+@XenBuildOcamlLibsDir@/xb/xb.cmx	@OCamlStdlibDir@/xen/xb
+@XenBuildOcamlLibsDir@/xb/op.cmx	@OCamlStdlibDir@/xen/xb
+@XenBuildOcamlLibsDir@/xb/packet.cmx	@OCamlStdlibDir@/xen/xb
+@XenBuildOcamlLibsDir@/xb/op.cmo	@OCamlStdlibDir@/xen/xb
+@XenBuildOcamlLibsDir@/xb/xb.cmo	@OCamlStdlibDir@/xen/xb
+@XenBuildOcamlLibsDir@/xb/partial.cmo	@OCamlStdlibDir@/xen/xb
+@XenBuildOcamlLibsDir@/xb/xs_ring.cmo	@OCamlStdlibDir@/xen/xb
+@XenBuildOcamlLibsDir@/xb/packet.cmo	@OCamlStdlibDir@/xen/xb
+@XenBuildOcamlLibsDir@/log/libsyslog_stubs.a	@OCamlStdlibDir@/xen/log
+@XenBuildOcamlLibsDir@/log/log.a	@OCamlStdlibDir@/xen/log
+@XenBuildOcamlLibsDir@/log/logs.cmi	@OCamlStdlibDir@/xen/log
+@XenBuildOcamlLibsDir@/log/log.cmi	@OCamlStdlibDir@/xen/log
+@XenBuildOcamlLibsDir@/log/syslog.cmi	@OCamlStdlibDir@/xen/log
+@XenBuildOcamlLibsDir@/log/log.cmxa	@OCamlStdlibDir@/xen/log
+@XenBuildOcamlLibsDir@/log/logs.mli	@OCamlStdlibDir@/xen/log
+@XenBuildOcamlLibsDir@/log/log.mli	@OCamlStdlibDir@/xen/log
+@XenBuildOcamlLibsDir@/log/syslog.mli	@OCamlStdlibDir@/xen/log
+@XenBuildOcamlLibsDir@/log/log.cmx	@OCamlStdlibDir@/xen/log
+@XenBuildOcamlLibsDir@/log/logs.cmx	@OCamlStdlibDir@/xen/log
+@XenBuildOcamlLibsDir@/log/syslog.cmx	@OCamlStdlibDir@/xen/log
+@XenBuildOcamlLibsDir@/log/logs.cmo	@OCamlStdlibDir@/xen/log
+@XenBuildOcamlLibsDir@/log/log.cmo	@OCamlStdlibDir@/xen/log
+@XenBuildOcamlLibsDir@/log/syslog.cmo	@OCamlStdlibDir@/xen/log
+@XenBuildOcamlLibsDir@/xc/xc.a	@OCamlStdlibDir@/xen/xc
+@XenBuildOcamlLibsDir@/xc/libxc_stubs.a	@OCamlStdlibDir@/xen/xc
+@XenBuildOcamlLibsDir@/xc/xc.cmi	@OCamlStdlibDir@/xen/xc
+@XenBuildOcamlLibsDir@/xc/xc.cmxa	@OCamlStdlibDir@/xen/xc
+@XenBuildOcamlLibsDir@/xc/xc.mli	@OCamlStdlibDir@/xen/xc
+@XenBuildOcamlLibsDir@/xc/xc.cmx	@OCamlStdlibDir@/xen/xc
+@XenBuildOcamlLibsDir@/xc/xc.cmo	@OCamlStdlibDir@/xen/xc
+@XenBuildOcamlLibsDir@/uuid/uuid.a	@OCamlStdlibDir@/xen/uuid
+@XenBuildOcamlLibsDir@/uuid/uuid.cmi	@OCamlStdlibDir@/xen/uuid
+@XenBuildOcamlLibsDir@/uuid/uuid.cmxa	@OCamlStdlibDir@/xen/uuid
+@XenBuildOcamlLibsDir@/uuid/uuid.mli	@OCamlStdlibDir@/xen/uuid
+@XenBuildOcamlLibsDir@/uuid/uuid.cmx	@OCamlStdlibDir@/xen/uuid
+@XenBuildOcamlLibsDir@/uuid/uuid.cmo	@OCamlStdlibDir@/xen/uuid
+@XenBuildOcamlLibsDir@/xs/xs.a	@OCamlStdlibDir@/xen/xs
+@XenBuildOcamlLibsDir@/xs/xs.cmi	@OCamlStdlibDir@/xen/xs
+@XenBuildOcamlLibsDir@/xs/queueop.cmi	@OCamlStdlibDir@/xen/xs
+@XenBuildOcamlLibsDir@/xs/xsraw.cmi	@OCamlStdlibDir@/xen/xs
+@XenBuildOcamlLibsDir@/xs/xst.cmi	@OCamlStdlibDir@/xen/xs
+@XenBuildOcamlLibsDir@/xs/xs.cmxa	@OCamlStdlibDir@/xen/xs
+@XenBuildOcamlLibsDir@/xs/xsraw.mli	@OCamlStdlibDir@/xen/xs
+@XenBuildOcamlLibsDir@/xs/xs.mli	@OCamlStdlibDir@/xen/xs
+@XenBuildOcamlLibsDir@/xs/xst.mli	@OCamlStdlibDir@/xen/xs
+@XenBuildOcamlLibsDir@/xs/queueop.cmx	@OCamlStdlibDir@/xen/xs
+@XenBuildOcamlLibsDir@/xs/xs.cmx	@OCamlStdlibDir@/xen/xs
+@XenBuildOcamlLibsDir@/xs/xst.cmx	@OCamlStdlibDir@/xen/xs
+@XenBuildOcamlLibsDir@/xs/xsraw.cmx	@OCamlStdlibDir@/xen/xs
+@XenBuildOcamlLibsDir@/xs/xst.cmo	@OCamlStdlibDir@/xen/xs
+@XenBuildOcamlLibsDir@/xs/xs.cmo	@OCamlStdlibDir@/xen/xs
+@XenBuildOcamlLibsDir@/xs/xsraw.cmo	@OCamlStdlibDir@/xen/xs
+@XenBuildOcamlLibsDir@/xs/queueop.cmo	@OCamlStdlibDir@/xen/xs
diff -u -N -r old/xen-4.1.1/debian/libxen-ocaml.install.in new/xen-4.1.1/debian/libxen-ocaml.install.in
--- old/xen-4.1.1/debian/libxen-ocaml.install.in	1970-01-01 00:00:00.000000000 +0000
+++ new/xen-4.1.1/debian/libxen-ocaml.install.in	2011-10-02 06:33:11.000000000 +0000
@@ -0,0 +1,14 @@
+@XenBuildOcamlLibsDir@/mmap/dllmmap_stubs.so	@OCamlDllDir@
+@XenBuildOcamlLibsDir@/mmap/mmap.cma	@OCamlStdlibDir@/xen/mmap
+@XenBuildOcamlLibsDir@/eventchn/dlleventchn_stubs.so	@OCamlDllDir@
+@XenBuildOcamlLibsDir@/eventchn/eventchn.cma	@OCamlStdlibDir@/xen/eventchn
+@XenBuildOcamlLibsDir@/xl/dllxl_stubs.so	@OCamlDllDir@
+@XenBuildOcamlLibsDir@/xl/xl.cma	@OCamlStdlibDir@/xen/xl
+@XenBuildOcamlLibsDir@/xb/dllxb_stubs.so	@OCamlDllDir@
+@XenBuildOcamlLibsDir@/xb/xb.cma	@OCamlStdlibDir@/xen/xb
+@XenBuildOcamlLibsDir@/log/dllsyslog_stubs.so	@OCamlDllDir@
+@XenBuildOcamlLibsDir@/log/log.cma	@OCamlStdlibDir@/xen/log
+@XenBuildOcamlLibsDir@/xc/dllxc_stubs.so	@OCamlDllDir@
+@XenBuildOcamlLibsDir@/xc/xc.cma	@OCamlStdlibDir@/xen/xc
+@XenBuildOcamlLibsDir@/uuid/uuid.cma	@OCamlStdlibDir@/xen/uuid
+@XenBuildOcamlLibsDir@/xs/xs.cma	@OCamlStdlibDir@/xen/xs
diff -u -N -r old/xen-4.1.1/debian/rules new/xen-4.1.1/debian/rules
--- old/xen-4.1.1/debian/rules	2011-04-11 20:01:54.000000000 +0000
+++ new/xen-4.1.1/debian/rules	2011-10-02 06:19:56.000000000 +0000
@@ -34,6 +34,7 @@
 clean: debian/control
 	dh_testdir
 	rm -rf $(BUILD_DIR) $(STAMPS_DIR) debian/lib/python/debian_xen/*.pyc
+	dh_ocamlinit -d
 	dh_clean
 
 binary-indep:
diff -u -N -r old/xen-4.1.1/debian/rules.real new/xen-4.1.1/debian/rules.real
--- old/xen-4.1.1/debian/rules.real	2011-07-18 16:48:10.000000000 +0000
+++ new/xen-4.1.1/debian/rules.real	2011-10-02 06:19:56.000000000 +0000
@@ -1,3 +1,5 @@
+include /usr/share/ocaml/ocamlvars.mk
+
 DEB_HOST_ARCH     := $(shell dpkg-architecture -a$(ARCH) -qDEB_HOST_ARCH)
 DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -a$(ARCH) -qDEB_HOST_GNU_TYPE)
 DEB_BUILD_ARCH    := $(shell dpkg-architecture -a$(ARCH) -qDEB_BUILD_ARCH)
@@ -17,6 +19,8 @@
 binary-arch-arch: install-libxenstore_$(ARCH)
 binary-arch-arch: install-utils_$(ARCH)
 binary-arch-arch: install-xenstore-utils_$(ARCH)
+binary-arch-arch: install-lib-ocaml-dev_$(ARCH)
+binary-arch-arch: install-lib-ocaml_$(ARCH)
 binary-arch-flavour: install-hypervisor_$(ARCH)_$(FLAVOUR)
 
 binary-indep: install-docs
@@ -92,6 +96,7 @@
 	dh_compress
 	dh_fixperms
 	dh_installdeb
+	dh_ocaml
 	dh_gencontrol -- $(GENCONTROL_ARGS)
 	dh_md5sums
 	dh_builddeb
@@ -130,6 +135,34 @@
 	dh_strip
 	dh_shlibdeps
 	+$(MAKE_SELF) install-base
+
+install-lib-ocaml_$(ARCH): DIR = $(BUILD_DIR)/install-utils_$(ARCH)
+install-lib-ocaml_$(ARCH): PACKAGE_NAME = libxen-ocaml
+install-lib-ocaml_$(ARCH): DH_OPTIONS = -p$(PACKAGE_NAME)
+install-lib-ocaml_$(ARCH): $(STAMPS_DIR)/install-utils_$(ARCH)
+	dh_testdir
+	dh_testroot
+	dh_prep
+	make -C $(BUILD_DIR)/build-utils_$(ARCH)/tools/ocaml/libs
+	OCAMLINIT_SED="-e s%@XenBuildOcamlLibsDir@%debian/build/build-utils_$(ARCH)/tools/ocaml/libs%" dh_ocamlinit
+	dh_install
+	dh_strip
+	dh_shlibdeps
+	+$(MAKE_SELF) install-base
+
+install-lib-ocaml-dev_$(ARCH): DIR = $(BUILD_DIR)/install-utils_$(ARCH)
+install-lib-ocaml-dev_$(ARCH): PACKAGE_NAME = libxen-ocaml-dev
+install-lib-ocaml-dev_$(ARCH): DH_OPTIONS = -p$(PACKAGE_NAME)
+install-lib-ocaml-dev_$(ARCH): $(STAMPS_DIR)/install-utils_$(ARCH)
+	dh_testdir
+	dh_testroot
+	dh_prep
+	make -C $(BUILD_DIR)/build-utils_$(ARCH)/tools/ocaml/libs
+	OCAMLINIT_SED="-e s%@XenBuildOcamlLibsDir@%debian/build/build-utils_$(ARCH)/tools/ocaml/libs%" dh_ocamlinit
+	dh_install
+	dh_strip
+	dh_shlibdeps
+	+$(MAKE_SELF) install-base
 
 install-libxenstore_$(ARCH): DIR = $(BUILD_DIR)/install-utils_$(ARCH)
 install-libxenstore_$(ARCH): PACKAGE_NAME = libxenstore3.0
diff -u -N -r old/xen-4.1.1/debian/templates/control.main.in new/xen-4.1.1/debian/templates/control.main.in
--- old/xen-4.1.1/debian/templates/control.main.in	2010-03-01 18:29:00.000000000 +0000
+++ new/xen-4.1.1/debian/templates/control.main.in	2011-10-02 06:19:56.000000000 +0000
@@ -7,6 +7,26 @@
  includes a description interface (both the API, and a nice explanation of
  how XEN works).
 
+Package: libxen-ocaml
+Architecture: any
+Section: ocaml
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${ocaml:Depends}
+Provides: ${ocaml:Provides}
+Description: interface for remotely configuring and controlling guests (runtime)
+ The Xen Management API is an interface for remotely configuring and
+ controlling virtualised guests running on a Xen-enabled host. This package
+ containst the runtime OCaml library.
+
+Package: libxen-ocaml-dev
+Architecture: any
+Section: ocaml
+Depends: libxen-ocaml (= ${binary:Version}), ${shlibs:Depends}, ocaml-findlib (>= 1.1), ${misc:Depends}, ${ocaml:Depends}
+Provides: ${ocaml:Provides}
+Description: interface for remotely configuring and controlling guests (development files)
+ The Xen Management API is an interface for remotely configuring and
+ controlling virtualised guests running on a Xen-enabled host. This package
+ containst the development files for the OCaml library.
+
 Package: libxenstore3.0
 Section: libs
 Architecture: any
diff -u -N -r old/xen-4.1.1/debian/templates/control.source.in new/xen-4.1.1/debian/templates/control.source.in
--- old/xen-4.1.1/debian/templates/control.source.in	2011-07-18 16:48:10.000000000 +0000
+++ new/xen-4.1.1/debian/templates/control.source.in	2011-10-02 06:19:56.000000000 +0000
@@ -15,7 +15,8 @@
  libncurses5-dev,
  libpci-dev,
  uuid-dev,
- zlib1g-dev
+ zlib1g-dev,
+ ocaml-nox (>= 3.11.1-3~), dh-ocaml (>= 0.9~), ocaml-findlib
 Build-Depends-Indep:
  graphviz,
  ghostscript,

Reply to: