[Pkg-ocaml-maint-commits] [SCM] janest-core packaging branch, master, updated. debian/0.5.3-1-37-gc26f1a0

Stefano Zacchiroli zack at upsilon.cc
Thu Nov 12 22:22:38 UTC 2009


The following commit has been merged in the master branch:
commit 2c80e2727a782e694cdb2dcce67ef17aa4a180ae
Author: Stefano Zacchiroli <zack at upsilon.cc>
Date:   Thu Nov 12 21:22:54 2009 +0100

    split a separate libcore-ocaml-doc package
    
    contains both ocamldoc API reference for Core and Core_extended
    
    Implementation is not for the faint of heart: dh_ocamldoc is used as usual on
    the appropriate packages, later on dirs are moved to the -doc
    package. Rationale: dh_ocamldoc must be invoked twice, due to duplicate
    interfaces.

diff --git a/debian/TODO.Debian b/debian/TODO.Debian
index 0713222..2c5937b 100644
--- a/debian/TODO.Debian
+++ b/debian/TODO.Debian
@@ -1,12 +1 @@
-* generate ocamldoc HTML API ref
-** tried in the past, but several issues remain
-*** a lot of syntax extensions are used
-    here is a draft list of flags to be put in *.ocamldoc files:
-      -syntax camlp4o
-      -package bin_prot.syntax
-      -package fieldslib.syntax
-      -package sexplib.syntax
-      -package type-conv.syntax
-*** different source files are pre-processed in different ways
-    not necessarily all camlp4-based (check for (*pp ...*) directive at the
-    beginning of each source file
+* fix build here with bytecode only compiler
diff --git a/debian/changelog b/debian/changelog
index 0df6a24..79f3212 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -8,8 +8,10 @@ janest-core (0.6.0-1) UNRELEASED; urgency=low
     - 0004-Fix-build-on-kfreebsd
   * debian/control:
     - add (new) build-dep on libfields-camlp4-dev
-    - split 2 new binary packages: libcore-extended-ocaml{,-dev} that
-      contain Core_extended (rationale: large, more deps)
+    - split 3 new binary packages:
+      + libcore-extended-ocaml{,-dev} that contain Core_extended
+        (rationale: large, more deps)
+      + libcore-ocaml-doc that contains the ocamldoc HTML API reference
     - add build-dep on libpcre-ocaml-dev, required to build Core_extended
     - revamp Description (mention Core vs Core_extended difference)
   * debian/rules: switch {debhelper,ocaml}.mk to avoid *.log leftovers
diff --git a/debian/control b/debian/control
index ef447be..ed4b039 100644
--- a/debian/control
+++ b/debian/control
@@ -33,6 +33,7 @@ Depends:
  ${ocaml:Depends},
  ${shlibs:Depends},
  ${misc:Depends}
+Recommends: libcore-ocaml-doc
 Provides: ${ocaml:Provides}
 Description: Jane Street's standard library for OCaml
  Core is an alternative to the OCaml standard library developed by
@@ -100,6 +101,7 @@ Depends:
  ${ocaml:Depends},
  ${shlibs:Depends},
  ${misc:Depends}
+Recommends: libcore-ocaml-doc
 Provides: ${ocaml:Provides}
 Description: Jane Street's standard library for OCaml - extensions
  Core is an alternative to the OCaml standard library developed by
@@ -159,3 +161,34 @@ Description: Jane Street's standard library for OCaml - extensions (runtime)
  .
  This package contains the runtime stuff you need to run programs using
  Core_extended.
+
+Package: libcore-ocaml-doc
+Section: doc
+Architecture: all
+Enhances:
+ libcore-ocaml-dev,
+ libcore-extended-ocaml-dev
+Description: Jane Street's standard library for OCaml - documentation
+ Core is an alternative to the OCaml standard library developed by
+ Jane Street Capital.
+ .
+ Core does a number of things:
+ .
+  * provides tail recursive versions of non tail recursive functions in
+    the standard library;
+  * changes the signature of many of the standard modules to enforce
+    consistent naming conventions;
+  * includes generic serialization for most types;
+  * adds some new modules as well as new functionality to existing
+    modules.
+ .
+ Beware that Core extends some functionality of the legacy standard
+ library, and outright changes or replaces other; backward compatibility
+ .
+ The code of Core is routinely reviewed within Jane Street Capital
+ according to their quality assurance requirements. The extra library
+ called Core_extended adds new functionalities on top of Core, but is
+ only reviewed on an ad-hoc basis.
+ .
+ This package contains the ocamldoc API reference in HTML format for both
+ Core and Core_extended.
diff --git a/debian/rules b/debian/rules
index 517bfa7..2e50d98 100755
--- a/debian/rules
+++ b/debian/rules
@@ -5,6 +5,9 @@ include /usr/share/cdbs/1/class/makefile.mk
 include /usr/share/cdbs/1/rules/ocaml.mk
 
 DEST_DIR = $(CURDIR)/debian/tmp
+DOC_PKG = libcore-ocaml-doc
+DEV_PKG = libcore-ocaml-dev
+EXT_PKG = libcore-extended-ocaml-dev
 
 # files that need to be pre-processed to remove #if* directives before feeding
 # them into ocamldoc
@@ -12,6 +15,8 @@ PP_FILES = \
 	lib/bigstring.mli \
 	lib/core_mutex.mli \
 	lib/unix_ext.mli \
+	lib/std.ml \
+	extended/std.ml \
 	$(NULL)
 
 ifeq ($(OCAML_HAVE_OCAMLOPT),yes)
@@ -22,16 +27,42 @@ DEB_MAKE_BUILD_TARGET = byte
 DEB_MAKE_INSTALL_TARGET = libinstall-byte-code OCAMLFIND_INSTFLAGS="-destdir $(DEST_DIR) -ldconf ignore"
 endif
 
-build/libcore-ocaml-dev::
-	for file in $(PP_FILES) ; do \
-		cp $$file $$file.debian ; \
-		sed -i '/^#/d' $$file ; \
+# pre-process files that need so, before feeding them to ocamldoc
+build/$(DEV_PKG):: ocamldoc-pp-stamp
+ocamldoc-pp-stamp:
+	for f in $(PP_FILES) ; do \
+		cp $$f $$f.debian ; \
+		sed -i '/^#/d' $$f ; \
 	done
+	touch $@
+
+build/$(DEV_PKG):: $(DEST_DIR)
+$(DEST_DIR):
+	test -d $@ || mkdir -p $@
 
 clean::
-	for file in $(PP_FILES) ; do \
-		[ ! -f $$file.debian ] || mv $$file.debian $$file ; \
+	for f in $(PP_FILES) ; do \
+		[ ! -f $$f.debian ] || mv $$f.debian $$f ; \
 	done
+	rm -f ocamldoc-pp-stamp
+
+# Move ocamldoc API ref from Core{,_extended) to -doc package.
+# Rationale: the documentation must be generated in two different stages (one
+# for Core and one for Core_extended), that's not easy with current dh_ocamldoc
+build/$(DOC_PKG):: ocamldoc-pp-stamp $(DEST_DIR)
+build/$(DOC_PKG):: install-arch common-binary-post-install-arch
+binary-install/$(DEV_PKG)::
+	dh_installdirs -p$(DOC_PKG) \
+		/usr/share/doc/$(DEV_PKG)/html /usr/share/doc-base
+	mv debian/$(DEV_PKG)/usr/share/doc/$(DEV_PKG)/html/api \
+		debian/$(DOC_PKG)/usr/share/doc/$(DEV_PKG)/html/api
+	mv debian/$(DEV_PKG)/usr/share/doc-base/* \
+		debian/$(DOC_PKG)/usr/share/doc-base/
+binary-install/$(EXT_PKG)::
+	dh_installdirs -p$(DOC_PKG) \
+		/usr/share/doc/$(EXT_PKG)/html /usr/share/doc-base
+	mv debian/$(EXT_PKG)/usr/share/doc/$(EXT_PKG)/html/api \
+		debian/$(DOC_PKG)/usr/share/doc/$(EXT_PKG)/html/api
+	mv debian/$(EXT_PKG)/usr/share/doc-base/* \
+		debian/$(DOC_PKG)/usr/share/doc-base/
 
-build/libcore-ocaml-dev::
-	mkdir -p $(DEST_DIR)

-- 
janest-core packaging



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