The following commit has been merged in the master branch:
commit 4cd1ab847e13c932e0b2db1ea7142a13fa7b24c9
Author: Stefano Zacchiroli <>
Date:   Fri Jun 10 17:39:46 2011 +0200

    apt-cudf packaging
    still missing: trigger that monitors /usr/share/cudf/solvers/

diff --git a/debian/apt-cudf.README.Debian b/debian/apt-cudf.README.Debian
new file mode 100644
index 0000000..85046bf
--- /dev/null
+++ b/debian/apt-cudf.README.Debian
@@ -0,0 +1,67 @@
+Packaging CUDF solvers in Debian
+Each CUDF solver should ship a "CUDF solver specification" file under
+`/usr/share/cudf/solvers/`, describing how to invoke the solver and its
+compatibility level with the CUDF standard.
+A precise description of the (very simple) CUDF solver specification format can
+be found in the `README.cudf-solvers` file in the "apt-cudf" package.
+Integration with APT
+APT can talk to external solvers by the means of the External Dependency Solver
+Protocol (EDSP). To reduce the burden on APT implementors and dependencies over
+specific features of the CUDF standard, the EDSP protocol is closer to typical
+APT syntaxes than to CUDF. Therefore, some plumbing is needed to use native
+CUDF solvers as external (EDSP-based) solvers for APT. The apt-cudf package
+provides such plumbing.
+The architecture is as follows:
+                EDSP                  CUDF
+        APT  <-------->  apt-cudf  <-------->  CUDF solver
+APT invokes apt-cudf as its external solver, which in turns invoke a proper
+CUDF solver. In such pipeline, apt-cudf plays man in the middle and performs
+the needed translations.
+The default directories where APT and apt-cudf look for solvers are as follows:
+- APT       looks for (EDSP) solver *executables* into     
+- apt-cudf  looks for (CUDF) solver *specifications* into  
+CUDF solvers can reside anywhere they please, as long as there is a CUDF solver
+specification pointing to them under `/usr/share/cudf/solvers/` (see Section
+For each CUDF solver that should be used as an external APT solver a (symbolic)
+link pointing to `/usr/bin/apt-cudf` must exist under `/usr/lib/apt/solvers/`.
+Upon invocation, apt-cudf will use the link name to lookup the corresponding
+CUDF solver specification.
+The apt-cudf package comes with a trigger that monitors the
+`/usr/share/cudf/solvers/` directory for the installation of CUDF solver
+specifications. Upon activation, the trigger creates a symbolic link under
+`/usr/lib/apt/solvers`. Therefore:
+- If you are packaging a CUDF solver and would like it to be used as an
+  external solver for APT, you don't have to do anything special (besides
+  installing a proper CUDF solver specification for it under
+  `/usr/share/cudf/solvers/`).
+  Please note however that it will be usable as an external solver for APT only
+  upon installation of the "apt-cudf" package. If your CUDF solver is
+  specifically meant for apt, consider a Depends or a Recommends on apt-cudf.
+- If you want to use a CUDF solver as an external solver for APT, you just have
+  to install the "apt-cudf" package.
+ -- Stefano Zacchiroli <>, Fri, 10 Jun 2011 17:30:30 +0200
diff --git a/debian/ b/debian/
new file mode 100644
index 0000000..3749b52
--- /dev/null
+++ b/debian/
@@ -0,0 +1 @@
diff --git a/debian/apt-cudf.install b/debian/apt-cudf.install
new file mode 100644
index 0000000..0d62735
--- /dev/null
+++ b/debian/apt-cudf.install
@@ -0,0 +1 @@
diff --git a/debian/changelog b/debian/changelog
index 2997096..7025957 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,7 +1,7 @@
-dose3 (2.9.7+r2696-1) UNRELEASED; urgency=low
+dose3 (2.9.4+r2696-1) UNRELEASED; urgency=low
   [ Stefano Zacchiroli ]
-  * Imported Upstream version 2.9.7+r2696
+  * Imported Upstream version 2.9.4+r2696
     - upstream SVN snapshot, release 2696
     - contains apt-cudf
diff --git a/debian/control b/debian/control
index e75065f..22f7101 100644
--- a/debian/control
+++ b/debian/control
@@ -106,3 +106,25 @@ Description: Parses package dependencies as set of 
   * dot/Graphviz
   * CNF (formula in conjunctive normal form)
   * DIMACS format of propositional formula
+Package: apt-cudf
+Section: admin
+Architecture: any
+Depends: cudf-solver,
+ ${ocaml:Depends}, ${misc:Depends}, ${shlibs:Depends}
+Description: CUDF solver integration for APT
+ apt-cudf provides integration among the APT package manager and CUDF solvers,
+ allowing APT to rely on external (CUDF-based) dependency solvers to plan
+ package installation, upgrade, and removal.
+ .
+ CUDF is a distribution-independent, standard format to describe dependency
+ solving scenarios, as faced by package managers in popular package-based
+ GNU/Linux distributions. APT is a well-known package manager for Debian-based
+ distributions, which is able to delegate dependency solving to external
+ solvers, by the means of the External Dependency Solving Protocol (EDSP).
+ .
+ apt-cudf provides the glue between the EDSP protocol and CUDF solvers,
+ enabling any installed CUDF solver to be used as an external solver for APT.
+ .
+ Several CUDF solvers are available in Debian. They all provide the cudf-solver
+ virtual package.

dose3 packaging

Pkg-ocaml-maint-commits mailing list

Reply via email to