[Pkg-ocaml-maint-commits] [SCM] dh-ocaml packaging branch, master, updated. debian/0.1-13-g564232e
Stephane Glondu
steph at glondu.net
Mon Feb 16 15:52:42 UTC 2009
The following commit has been merged in the master branch:
commit ab442c526332d1b7df182df40d480b6cbd011588
Author: Stephane Glondu <steph at glondu.net>
Date: Mon Feb 16 16:02:54 2009 +0100
Start a level 2 CDBS compatibility layer with proper layout
Rationale: there is an intended semantics of n/{class,rules} that is
not respected in our CDBS class. Ideas inspired by Peter Eisentraut at
FOSDEM'09.
diff --git a/cdbs/1/class/ocaml-vars.mk b/cdbs/1/class/ocaml-vars.mk
deleted file mode 100644
index d480ae1..87affe8
--- a/cdbs/1/class/ocaml-vars.mk
+++ /dev/null
@@ -1,120 +0,0 @@
-#
-# Description: Useful CDBS variables for OCaml related packages
-#
-# Copyright © 2006-2007 Stefano Zacchiroli <zack at debian.org>
-#
-# This program is free software; you can redistribute it and/or modify it under
-# the terms of the GNU General Public License as published by the Free Software
-# Foundation; either version 2, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-# details.
-#
-# You should have received a copy of the GNU General Public License along with
-# this program; if not, write to the Free Software Foundation, Inc., 51
-# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# $Id: ocaml-vars.mk 4643 2007-10-18 00:21:51Z gildor $
-
-_cdbs_scripts_path ?= /usr/lib/cdbs
-_cdbs_rules_path ?= /usr/share/cdbs/1/rules
-_cdbs_class_path ?= /usr/share/cdbs/1/class
-
-ifndef _cdbs_class_ocaml_vars
-_cdbs_class_ocaml_vars = 1
-
-# current OCaml ABI version (e.g. 3.10.0).
-# Used internally by ocaml.mk (substituted for @OCamlABI@ in $(OCAML_IN_FILES)
-# below), may be useful to debian/rules writers as well
-OCAML_ABI := $(shell /usr/bin/ocamlc -version)
-
-# OCaml standard library location.
-# Used internally by ocaml.mk (substituted for @OCamlStdlibDir@ in
-# $(OCAML_IN_FILES) below), may be useful to debian/rules writers as well
-OCAML_STDLIB_DIR := $(shell /usr/bin/ocamlc -where)
-
-# OCaml stublibs (i.e. DLLs) location.
-# Used internally by ocaml.mk (substituted for @OCamlDllDir@) in
-# $(OCAML_IN_FILES) below), may be useful to debian/rules writers as well
-OCAML_DLL_DIR := $(OCAML_STDLIB_DIR)/stublibs
-
-# list of .in files contained (non-recursively) in debian/ that requires
-# pre-build filling.
-# Used internally by ocaml.mk.
-# debian/rules writers might need to add stuff to this list:
-# e.g.: OCAML_IN_FILES += debian/patches/foo # (no .in extension)
-OCAML_IN_FILES := $(filter-out debian/control,$(patsubst %.in,%,$(wildcard debian/*.in)))
-
-# 'yes' if native code compilation is available on the build architecture, 'no' otherwise.
-# For debian/rules writers.
-OCAML_HAVE_OCAMLOPT := $(shell if test -x /usr/bin/ocamlopt ; then echo "yes" ; else echo "no" ; fi)
-
-# space separated list of Debian architectures supporting OCaml native code
-# compilation.
-# Used internally by ocaml.mk and substituted in debian/control.in for the
-# @OCamlNativeArchs@ marker; may be useful to debian/rules writers as well
-OCAML_NATIVE_ARCHS := $(shell cat $(OCAML_STDLIB_DIR)/native-archs)
-
-# comma separated list of members of the OCaml team.
-# Substituted in debian/control.in for the @OCamlTeam@ marker
-OCAML_TEAM =
-
-OCAML_TEAM += Ralf Treinen <treinen at debian.org>,
-OCAML_TEAM += Remi Vanicat <vanicat at debian.org>,
-OCAML_TEAM += Samuel Mimram <smimram at debian.org>,
-OCAML_TEAM += Stefano Zacchiroli <zack at debian.org>,
-OCAML_TEAM += Sven Luther <luther at debian.org>,
-OCAML_TEAM += Sylvain Le Gall <gildor at debian.org>
-# no trailing "," (comma) on the last name
-
-# space separated list of packages matching the naming convention for OCaml
-# development libraries, i.e. libXXX-ocaml-dev.
-# For debian/rules writers
-OCAML_LIBDEV_PACKAGES := $(filter lib%-ocaml-dev,$(DEB_PACKAGES))
-
-# as above, but keep packages matching the convention for OCaml runtime
-# libraries, i.e. libXX-ocaml
-OCAML_LIB_PACKAGES := $(filter lib%-ocaml,$(DEB_PACKAGES))
-
-# space separated list of packages on which ocamldoc usage is required. For
-# each package listed here will have ocamldoc invoked on all *.ml/*.mli files
-# installed under $(OCAML_STDLIB_DIR) to generated html documentation which
-# will be shipped in $(OCAML_OCAMLDOC_DESTDIR_HTML).
-# Typical usage is OCAML_OCAMLDOC_PACKAGES = $(OCAML_LIBDEV_PACKAGES).
-# For debian/rules writers
-OCAML_OCAMLDOC_PACKAGES =
-#OCAML_OCAMLDOC_PACKAGES = $(OCAML_LIBDEV_PACKAGES) # more "aggressive" default
-
-# space separated list of packages for which a pkg.doc-base.ocamldoc-apiref is
-# required. This file contains is the debian doc-base description of file which
-# should be located in the directory $(OCAML_OCAMLDOC_DESTDIR_HTML)
-# For debian/rules writers
-OCAML_OCAMLDOC_PACKAGES_DOCBASE =
-
-# ocamlfind flags which must be used in order to generate
-# correctly the ocamldoc documentation
-# For debian/rules writers
-OCAML_OCAMLDOC_OCAMLFIND_FLAGS =
-
-# generic (i.e. non backend specific) flags to be passed to ocamldoc
-# For debian/rules writers
-OCAML_OCAMLDOC_FLAGS = -stars -m A
-
-# html-specific flags to be passed to ocamldoc (in addition to -html -d DESTDIR)
-# For debian/rules writers
-OCAML_OCAMLDOC_FLAGS_HTML =
-
-# man-specific flags to be passed to ocamldoc (in addition to -man -d DESTDIR)
-# For debian/rules writers
-OCAML_OCAMLDOC_FLAGS_MAN = -man-mini
-
-# where to install HTML version of the ocamldoc generated API reference. You
-# can use "$(cdbs_curpkg)" stem there, it will be expanded to the current
-# package name by CDBS
-# For debian/rules writers
-OCAML_OCAMLDOC_DESTDIR_HTML = $(shell $(_cdbs_class_path)/ocamldoc-api-ref-config --html-directory $(cdbs_curpkg))
-
-endif
-
diff --git a/cdbs/1/class/ocaml-vars.mk b/cdbs/1/class/ocaml-vars.mk
new file mode 120000
index d480ae1..87affe8
--- /dev/null
+++ b/cdbs/1/class/ocaml-vars.mk
@@ -0,0 +1 @@
+../../2/rules/ocamlvars.mk
\ No newline at end of file
diff --git a/cdbs/1/class/ocaml.mk b/cdbs/1/class/ocaml.mk
deleted file mode 100644
index 9bd0ea2..3492c31
--- a/cdbs/1/class/ocaml.mk
+++ /dev/null
@@ -1,121 +0,0 @@
-#
-# Description: CDBS class for OCaml related packages
-#
-# Copyright © 2006-2007 Stefano Zacchiroli <zack at debian.org>
-#
-# This program is free software; you can redistribute it and/or modify it under
-# the terms of the GNU General Public License as published by the Free Software
-# Foundation; either version 2, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-# details.
-#
-# You should have received a copy of the GNU General Public License along with
-# this program; if not, write to the Free Software Foundation, Inc., 51
-# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# $Id: ocaml.mk 4944 2007-12-28 14:50:46Z zack $
-
-_cdbs_scripts_path ?= /usr/lib/cdbs
-_cdbs_rules_path ?= /usr/share/cdbs/1/rules
-_cdbs_class_path ?= /usr/share/cdbs/1/class
-
-ifndef _cdbs_class_ocaml
-_cdbs_class_ocaml = 1
-
-# needed by debian/control:: rule below
-include $(_cdbs_rules_path)/buildcore.mk$(_cdbs_makefile_suffix)
-
-# to ensure invocations and tests on /usr/bin/ocaml* are meaningful
-CDBS_BUILD_DEPENDS := $(CDBS_BUILD_DEPENDS), ocaml-nox
-
-# import OCAML_* make variables
-include $(_cdbs_class_path)/ocaml-vars.mk$(_cdbs_makefile_suffix)
-
-ifdef _cdbs_rules_debhelper
-
-# ensure dpkg-gencontrol will fill F:OCamlABI fields with the proper value
-DEB_DH_GENCONTROL_ARGS += -- -VF:OCamlABI="$(OCAML_ABI)"
-DEB_DH_GENCONTROL_ARGS += -VF:OCamlNativeArchs="$(OCAML_NATIVE_ARCHS)"
-
-endif
-
-# filter out lines starting with "OPT: "
-ifeq ($(OCAML_HAVE_OCAMLOPT),yes)
-SEDOPTFILTER := -e 's/^OPT: //'
-else
-SEDOPTFILTER := -e '/^OPT: /d'
-endif
-
-# post-install hook to invoke ocamldoc on OCAML_OCAMLDOC_PACKAGES packages
-$(patsubst %,binary-install/%,$(DEB_PACKAGES))::
- @OCAMLDOC="ocamldoc $(OCAML_OCAMLDOC_FLAGS)"; \
- if test -n "$(OCAML_OCAMLDOC_OCAMLFIND_FLAGS)" ; then \
- if ! test -x "/usr/bin/ocamlfind"; then \
- echo "OCamlfind flags set and no ocamlfind to be found" >&2; \
- exit 1; \
- fi; \
- OCAMLDOC="ocamlfind $$OCAMLDOC $(OCAML_OCAMLDOC_OCAMLFIND_FLAGS)"; \
- fi; \
- OCAML_OCAMLDOC_INCLUDE=`for i in $(OCAML_OCAMLDOC_PACKAGES); do \
- find debian/$$i/$(OCAML_STDLIB_DIR)/ -type d -exec echo -I \{} \; ; \
- done`; \
- if (echo $(OCAML_OCAMLDOC_PACKAGES) | egrep '( |^)$(cdbs_curpkg)( |$$)' > /dev/null) ; then \
- echo 'mkdir -p debian/$(cdbs_curpkg)/$(OCAML_OCAMLDOC_DESTDIR_HTML)' ; \
- mkdir -p debian/$(cdbs_curpkg)/$(OCAML_OCAMLDOC_DESTDIR_HTML) ; \
- echo 'invoking ocamldoc on debian/$(cdbs_curpkg)$(OCAML_STDLIB_DIR)/ ...' ; \
- find debian/$(cdbs_curpkg)$(OCAML_STDLIB_DIR)/ \
- -type f -name '*.mli' -or -name '*.ml' \
- | xargs $$OCAMLDOC $$OCAML_OCAMLDOC_INCLUDE \
- -html $(OCAML_OCAMLDOC_FLAGS_HTML) \
- -d debian/$(cdbs_curpkg)/$(OCAML_OCAMLDOC_DESTDIR_HTML) \
- || true ; \
- fi
-
-# post-build hook to create doc-base entries for OCAML_OCAMLDOC_PACKAGES packages
-$(patsubst %,build/%,$(DEB_PACKAGES))::
- @if (echo $(OCAML_OCAMLDOC_PACKAGES) $(OCAML_OCAMLDOC_PACKAGES_DOCBASE) \
- | egrep '( |^)$(cdbs_curpkg)( |$$)' > /dev/null) ; then \
- $(_cdbs_class_path)/ocamldoc-api-ref-config --doc-base-generate $(cdbs_curpkg) ; \
- fi
-
-clean::
- rm -f debian/*.doc-base.ocamldoc-apiref
-
-# generate .in files counterpars before building, substituting @OCamlABI@
-# markers with the proper value; clean stamps after building
-pre-build:: ocamlinit
-ocamlinit: ocamlinit-stamp
-ocamlinit-stamp:
- for f in $(OCAML_IN_FILES) ; do \
- sed \
- -e 's, at OCamlABI@,$(OCAML_ABI),g' \
- -e 's, at OCamlStdlibDir@,$(OCAML_STDLIB_DIR),g' \
- -e 's, at OCamlDllDir@,$(OCAML_DLL_DIR),g' \
- $(SEDOPTFILTER) \
- $$f.in > $$f ; \
- done
- touch $@
-clean::
- rm -f ocamlinit-stamp $(OCAML_IN_FILES)
-
-# avoid dpatch breaking upon clean if debian/patches/*.in files are in use
-deapply-dpatches: ocamlinit
-
-# update debian/control substituting @OCamlNativeArchs@
-# XXX ASSUMPTION: debian/control has already been generated, i.e. this rule is
-# executed after the debian/control:: rule in builcore.mk
-ifneq ($(DEB_AUTO_UPDATE_DEBIAN_CONTROL),)
-debian/control::
- if test -f debian/control && test -f debian/control.in ; then \
- sed -i \
- -e "s/@OCamlNativeArchs@/$(OCAML_NATIVE_ARCHS)/g" \
- -e "s/@OCamlTeam@/$(OCAML_TEAM)/g" \
- $@ ; \
- fi
-endif
-
-endif
-
diff --git a/cdbs/1/class/ocaml.mk b/cdbs/1/class/ocaml.mk
new file mode 120000
index 9bd0ea2..3492c31
--- /dev/null
+++ b/cdbs/1/class/ocaml.mk
@@ -0,0 +1 @@
+../../2/class/ocaml.mk
\ No newline at end of file
diff --git a/cdbs/1/class/ocaml.mk b/cdbs/2/class/ocaml.mk
similarity index 100%
copy from cdbs/1/class/ocaml.mk
copy to cdbs/2/class/ocaml.mk
diff --git a/cdbs/1/class/ocaml-vars.mk b/cdbs/2/rules/ocamlvars.mk
similarity index 100%
copy from cdbs/1/class/ocaml-vars.mk
copy to cdbs/2/rules/ocamlvars.mk
diff --git a/cdbs/1/class/ocaml-docbase-template.txt b/cdbs/scripts/ocaml-docbase-template.txt
similarity index 100%
rename from cdbs/1/class/ocaml-docbase-template.txt
rename to cdbs/scripts/ocaml-docbase-template.txt
diff --git a/cdbs/1/class/ocamldoc-api-ref-config b/cdbs/scripts/ocamldoc-api-ref-config
similarity index 100%
rename from cdbs/1/class/ocamldoc-api-ref-config
rename to cdbs/scripts/ocamldoc-api-ref-config
diff --git a/debian/dirs b/debian/dirs
index 13973b1..aea99b1 100644
--- a/debian/dirs
+++ b/debian/dirs
@@ -5,3 +5,4 @@
/usr/share/doc/ocaml-base
/usr/share/doc/ocaml-base-nox
/usr/share/cdbs
+/usr/share/ocaml
diff --git a/debian/install b/debian/install
index 7299a44..42698f5 100644
--- a/debian/install
+++ b/debian/install
@@ -1,2 +1,4 @@
-cdbs/* usr/share/cdbs
+cdbs/1 usr/share/cdbs
+cdbs/2 usr/share/cdbs
+cdbs/scripts/* usr/share/ocaml
debhelper/dh_ocaml usr/bin/
diff --git a/debian/links b/debian/links
index 0a13e79..016ca17 100644
--- a/debian/links
+++ b/debian/links
@@ -7,3 +7,6 @@
/usr/share/doc/dh-ocaml/ocaml_packaging_policy.html /usr/share/doc/ocaml-nox/ocaml_packaging_policy.html
/usr/share/doc/dh-ocaml/ocaml_packaging_policy.html /usr/share/doc/ocaml-base/ocaml_packaging_policy.html
/usr/share/doc/dh-ocaml/ocaml_packaging_policy.html /usr/share/doc/ocaml-base-nox/ocaml_packaging_policy.html
+
+/usr/share/ocaml/ocamldoc-api-ref-config /usr/share/cdbs/1/class/ocamldoc-api-ref-config
+/usr/share/ocaml/ocaml-docbase-template.txt /usr/share/cdbs/1/class/ocaml-docbase-template.txt
diff --git a/debian/rules b/debian/rules
index a6b6c3e..9daf226 100755
--- a/debian/rules
+++ b/debian/rules
@@ -10,7 +10,7 @@ clean:
install: build install-stamp
install-stamp:
- chmod +x cdbs/1/class/ocamldoc-api-ref-config
+ chmod +x cdbs/scripts/ocamldoc-api-ref-config
dh install
touch install-stamp
--
dh-ocaml packaging
More information about the Pkg-ocaml-maint-commits
mailing list