This is an automated email from the git hooks/post-receive script.

treinen pushed a commit to branch experimental/master
in repository dose3.

commit f2ccabf017550f6de6d08f8602e2c7ed074221df
Author: Ralf Treinen <trei...@free.fr>
Date:   Tue Feb 9 20:55:36 2016 +0100

    Imported Upstream version 4.2
---
 CHANGES                                            | 13 ++++++
 INSTALL                                            |  3 ++
 META.in                                            |  4 +-
 Makefile                                           | 15 ++++++-
 TODO                                               |  4 +-
 algo/defaultgraphs.ml                              |  4 +-
 algo/depsolver.ml                                  | 50 ++++++++++++++++------
 algo/depsolver.mli                                 | 23 +++-------
 algo/diagnostic.ml                                 |  3 +-
 algo/diagnostic.mli                                | 35 +++++++++------
 algo/tests.ml                                      | 32 ++++++++++++++
 applications/deb-coinstall.ml                      |  5 ++-
 applications/outdated.ml                           |  9 ++--
 common/cudfAdd.ml                                  |  4 +-
 configure                                          | 18 ++++----
 configure.ac                                       |  2 +-
 deb/debcudf.ml                                     | 27 ++++++------
 deb/debcudf.mli                                    |  3 ++
 deb/evolution.ml                                   |  1 -
 deb/packages.ml                                    |  3 +-
 .../{buildcheck.pod => deb-buildcheck.pod}         |  9 ++--
 doc/manpages/distcheck.pod                         | 12 +++---
 opam_configure.sh                                  |  2 +-
 23 files changed, 186 insertions(+), 95 deletions(-)

diff --git a/CHANGES b/CHANGES
index 04ec321..3148006 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,15 @@
+dose3 (4.2) UNRELEASED; urgency=low
+
+ * Fix META file and other compilation problems (notably on 32 bits 
architectures)
+ * Add back the "Enhances" field in the debian printer
+ * the new yaml format also drops the architecture suffix in the package and 
+   unsat-dependency fields
+ * Add new function Depsolver.is_consistent and Debian.Debcudf.get_real_name
+ * Update the yaml output of outdated (no more cudf-related cruft in package 
names)
+ * bump yaml output-version to 1.1
+
+ -- Pietro Abate <pietro.ab...@pps.univ-paris-diderot.fr>  Thur, 14 Jan 2016 
13:13:06 +0200
+
 dose3 (4.1) UNRELEASED; urgency=low
   * New optimization criteria parser. apt-cudf now accepts only optimization 
criterias in
     misc2012 format.
@@ -14,6 +26,7 @@ dose3 (4.1) UNRELEASED; urgency=low
     encoding ( "src:" , ":$arch" , "--virtual-" ).
   * Implement versioned provides
   * strict dependency ocamlgraph >= 1.8.6
+  * strict dependency extlib >= 1.7.0
   * new cudf property for deb/edsp types
     native is 1 if the pkg architecture is equal to the native architecture,
     0 otherwise. This can be used to maximise the number of packages
diff --git a/INSTALL b/INSTALL
index f08cc77..6e3d5b8 100644
--- a/INSTALL
+++ b/INSTALL
@@ -21,6 +21,9 @@ additional libraries (enable compilation with 
--with-<library>) :
 To use rpm support, dose3 needs librpm > 4.6
 To use ocamlgraph support, dose3 needs libocamlgraph-ocaml-dev >= 1.8.6
 
+cppo >= 1.1.2
+extlib >= 1.7.0
+
 opam users need the following packages to compile dose with the default
 options :
 
diff --git a/META.in b/META.in
index b9a5375..82a2900 100644
--- a/META.in
+++ b/META.in
@@ -1,7 +1,7 @@
 description = "Dose3 libraries"
 version = "@PACKAGE_VERSION@"
-archive(byte) = "common.cma algo.cma versioning.cma debian.cma csw.cma pef.cma"
-archive(native) = "common.cmxa algo.cmxa versioning.cmxa debian.cmxa csw.cmxa 
pef.cmxa"
+archive(byte) = "common.cma algo.cma versioning.cma pef.cma debian.cma csw.cma 
opam.cma"
+archive(native) = "common.cmxa algo.cmxa versioning.cmxa pef.cmxa debian.cmxa 
csw.cmxa opam.cmxa"
 requires = "extlib, re.pcre, cudf, @OCAMLGRAPH@, unix, @ZIP@, @BZ2@"
 
 package "common" (
diff --git a/Makefile b/Makefile
index 25078fb..ad1ab95 100644
--- a/Makefile
+++ b/Makefile
@@ -51,6 +51,7 @@ $(DOSELIBS)/cudf.%:
        $(OCAMLBUILD) $(OBFLAGS) cudf/cudf.$*
        @mkdir -p $(DOSELIBS)
        @cp _build/cudf/*.cmi $(DOSELIBS)
+       @rm _build/cudf/*.cmi
        @for i in _build/cudf/cudf.*; do \
          if [ -e $$i ]; then \
          cp $$i $(DOSELIBS) ; \
@@ -64,6 +65,7 @@ $(DOSELIBS)/common.%: common/*.ml common/*.mli
        @for i in _build/common/common.*; do \
          if [ -e $$i ]; then \
          cp $$i $(DOSELIBS) ; \
+               rm $$i ;\
          rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
          fi ; \
        done
@@ -74,6 +76,7 @@ $(DOSELIBS)/versioning.%: versioning/*.ml versioning/*.mli
        @for i in _build/versioning/versioning.*; do \
          if [ -e $$i ]; then \
          cp $$i $(DOSELIBS) ; \
+               rm $$i ;\
          rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
          fi ; \
        done
@@ -83,6 +86,7 @@ $(DOSELIBS)/algo.%: algo/*.ml algo/*.mli $(DOSELIBS)/common.%
        @for i in _build/algo/algo.*; do \
          if [ -e $$i ]; then \
          cp $$i $(DOSELIBS) ; \
+               rm $$i ;\
          rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
          fi ; \
        done
@@ -92,6 +96,7 @@ $(DOSELIBS)/debian.%: deb/*.ml deb/*.mli $(DOSELIBS)/pef.%
        @for i in _build/deb/debian.*; do \
          if [ -e $$i ]; then \
          cp $$i $(DOSELIBS) ; \
+               rm $$i ;\
          rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
          fi ; \
        done
@@ -101,6 +106,7 @@ $(DOSELIBS)/opam.%: opam/*.ml opam/*.mli $(DOSELIBS)/pef.%
        @for i in _build/opam/opam.*; do \
          if [ -e $$i ]; then \
          cp $$i $(DOSELIBS) ; \
+               rm $$i ;\
          rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
          fi ; \
        done
@@ -110,6 +116,7 @@ $(DOSELIBS)/rpm.%: rpm/*.ml $(DOSELIBS)/algo.%
        @for i in _build/rpm/rpm.*; do \
          if [ -e $$i ]; then \
          cp $$i $(DOSELIBS) ; \
+               rm $$i ;\
          rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
          fi ; \
        done
@@ -119,6 +126,7 @@ $(DOSELIBS)/pef.%: pef/*.ml pef/*.mli
        @for i in _build/pef/pef.*; do \
          if [ -e $$i ]; then \
          cp $$i $(DOSELIBS) ; \
+               rm $$i ;\
          rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
          fi ; \
        done
@@ -128,6 +136,7 @@ $(DOSELIBS)/csw.%: opencsw/*.ml $(DOSELIBS)/versioning.%
        @for i in _build/opencsw/csw.*; do \
          if [ -e $$i ]; then \
          cp $$i $(DOSELIBS) ; \
+               rm $$i ;\
          rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
          fi ; \
        done
@@ -137,6 +146,7 @@ $(DOSELIBS)/doseparse.%: $(DOSELIBS)/pef.% 
$(DOSELIBS)/debian.%
        @for i in _build/doseparse/doseparse.*; do \
          if [ -e $$i ]; then \
          cp $$i $(DOSELIBS) ; \
+               rm $$i ;\
          rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx $(DOSELIBS)/*.ml ; \
          fi ; \
        done
@@ -146,6 +156,7 @@ $(DOSELIBS)/doseparseNoRpm.%: $(DOSELIBS)/pef.% 
$(DOSELIBS)/debian.%
        @for i in _build/doseparseNoRpm/doseparseNoRpm.*; do \
          if [ -e $$i ]; then \
                        cp $$i $(DOSELIBS) ;\
+                       rm $$i ;\
                        rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ;\
          fi ; \
        done
@@ -251,7 +262,7 @@ credits:
        @git log --pretty=format:'%aN        %aE' | LC_ALL=C sort -u | awk 
-F'\t' '{printf("\t%s <%s>\n",$$1,$$2)}';
 
 doc: all
-       $(OCAMLBUILD) -package unix scripts/pack.native
+       $(OCAMLBUILD) -package unix scripts/pack.$(OCAMLEXT)
        scripts/doc.sh $(OCAMLEXT)
        dot -Grotate=0 -Tsvg -o dose3.docdir/index.svg dose3.docdir/index.dot
        (cd doc && $(MAKE) all)
@@ -261,7 +272,7 @@ man:
 
 upload: doc
        (cd doc && $(MAKE) upload)
-       rsync -avz -O dose3.docdir/ 
scm.gforge.inria.fr:/home/groups/dose/htdocs/doc/api/
+       rsync -avz -O dose3.docdir/ 
scm.gforge.inria.fr:/home/groups/dose/htdocs/API/
 
 .PHONY: \
        common algo pef versioning debian rpm csw doseparseNoRpm doseparse \
diff --git a/TODO b/TODO
index e90c3cd..8110fda 100644
--- a/TODO
+++ b/TODO
@@ -1,4 +1,3 @@
-- add unit tests for opam and pef module
 
 - add --deb-output822 to DistcheckOptions to output 822 package list
   for distcheck, buildcheck etc of installable packages
@@ -21,6 +20,9 @@
 
 -------------------
 
+- add unit tests for opam and pef module
+DONE
+
 - Remove all references to Format in diagnostic.ml and all applications.
   Format is too slow !
 NOT DONE : the new formar module is now as fast as Printf
diff --git a/algo/defaultgraphs.ml b/algo/defaultgraphs.ml
index da9eaf4..3fa3778 100644
--- a/algo/defaultgraphs.ml
+++ b/algo/defaultgraphs.ml
@@ -695,12 +695,12 @@ module PackageGraph = struct
     end 
 
   let load pkglist filename =
-    let timer = Util.Timer.create "Defaultgraph.PackageGrah.load" in
+    let timer = Util.Timer.create "Defaultgraph.PackageGraph.load" in
     Util.Timer.start timer;
     let ic = open_in filename in
     let (detrans,graph) = ((Marshal.from_channel ic) :> (bool * G.t)) in
     close_in ic ;
-    info "Loading Strong Dependencies graph";
+    info "Loading Dependencies graph";
     (* we assume the graph is detransitivitized *)
     let sg =
       if detrans then begin 
diff --git a/algo/depsolver.ml b/algo/depsolver.ml
index 15cf89b..4f09bc8 100644
--- a/algo/depsolver.ml
+++ b/algo/depsolver.ml
@@ -20,18 +20,7 @@ include Util.Logging(struct let label = label end) ;;
 
 type solver = Depsolver_int.solver
 
-(** @param check if the universe is consistent *)
-let load ?(check=true) universe =
-  let is_consistent check universe =
-    if check then Cudf_checker.is_consistent universe
-    else (true,None)
-  in
-  match is_consistent check universe with
-  |true,None -> Depsolver_int.init_solver_univ universe 
-  |false,Some(r) -> 
-      fatal "%s"
-      (Cudf_checker.explain_reason (r :> Cudf_checker.bad_solution_reason)) ;
-  |_,_ -> assert false
+let load universe = Depsolver_int.init_solver_univ universe
 
 (** [univcheck ?callback universe] check all packages in the
     universe for installability 
@@ -124,6 +113,43 @@ let edos_coinstall_prod ?(global_constraints=false) univ 
ll =
   List.map (edos_install_cache global_constraints univ cudfpool) (permutation 
ll)
 ;;
 
+let is_consistent univ =
+  match Cudf_checker.is_consistent univ with
+  |true, None ->
+      { Diagnostic.request = [] ;
+        result =
+          Diagnostic.Success (fun ?(all=false) () ->
+            if all then
+              Cudf.get_packages ~filter:(fun p -> p.Cudf.installed) univ
+            else []
+          )
+      }
+  |false, Some  `Unsat_dep (nv,vpkgformula) ->
+      let pkg = Cudf.lookup_package univ nv in
+      { Diagnostic.request = [pkg] ;
+        result =
+          Diagnostic.Failure (fun () ->
+            List.map (fun vpkglist ->
+              Diagnostic.Missing(pkg,vpkglist)
+            ) vpkgformula
+          )
+      }
+  |false, Some `Conflict (nv,vpkglist) ->
+      let pkg1 = Cudf.lookup_package univ nv in
+      { Diagnostic.request = [pkg1] ;
+        result =
+          Diagnostic.Failure (fun () ->
+            List.flatten (
+              List.map (fun vpkg ->
+                List.map (fun pkg2 ->
+                  Diagnostic.Conflict (pkg1,pkg2,vpkg)
+                ) (CudfAdd.who_provides univ vpkg)
+              ) vpkglist
+            )
+          )
+      }
+  |(true|false),_ -> fatal "Bug in Cudf_checker.is_consistent"
+
 let trim ?(global_constraints=true) universe =
   let trimmed_pkgs = ref [] in
   let callback d =
diff --git a/algo/depsolver.mli b/algo/depsolver.mli
index fed1e6e..1488558 100644
--- a/algo/depsolver.mli
+++ b/algo/depsolver.mli
@@ -15,33 +15,24 @@
 (** the solver is an abstract data type associated to a universe *)
 type solver
 
-(** initialize the solver. If [check] is true (default), then check 
-    for universe consistency (cf. Cudf_checker.is_consistent) *)
-val load : ?check : bool -> Cudf.universe -> solver
+(** initialize the solver *)
+val load : Cudf.universe -> solver
 
-(*
-(** Turn a result from Diagnostic_int into one of Diagnostic *)
-val result : Depsolver_int.identity -> Cudf.universe -> Diagnostic.result_int 
-> Diagnostic.result
-
-(** Turn a request from Diagnostic_int into one of Diagnostic *)
-val request : Cudf.universe -> Diagnostic.request_int -> Diagnostic.request
-*)
+(** check if the universe universe is consistent (all installed packages are 
coinstallable)
+    This function is a wrapper of Cudf_checker.is_consistent. *)
+val is_consistent : Cudf.universe -> Diagnostic.diagnosis
 
 (** check if the given package can be installed in the universe 
  
     @param global_constraints : enforce global constraints on the given
     universe. In particular packages marked as `Keep_package must be always
-    installed. Default false.
-
-*)
+    installed. Default false. *)
 val edos_install : ?global_constraints:bool -> Cudf.universe -> Cudf.package 
-> Diagnostic.diagnosis
 
 (** check if the give package list can be installed in the universe 
-  
     @param global_constraints : enforce global constraints on the given
     universe. In particular packages marked as `Keep_package must be always
-    installed. Default false.
-*)
+    installed. Default false.  *)
 val edos_coinstall : ?global_constraints:bool -> Cudf.universe -> Cudf.package 
list -> Diagnostic.diagnosis
 
 (** accept a list of list of packages and return the coinstallability test of
diff --git a/algo/diagnostic.ml b/algo/diagnostic.ml
index 1ddd728..07b3241 100644
--- a/algo/diagnostic.ml
+++ b/algo/diagnostic.ml
@@ -150,7 +150,7 @@ let default_result n = {
   statistic = Hashtbl.create 17
 }
 
-let pp_out_version fmt = Format.fprintf fmt "output-version: 1.0@.";;
+let pp_out_version fmt = Format.fprintf fmt "output-version: 1.1@.";;
 
 (** given a list of dependencies, return a list of list containg all
  *  paths in the dependency tree starting from [root] *)
@@ -721,6 +721,7 @@ let fprintf ?(pp=CudfAdd.default_pp) ?(failure=false) 
?(success=false) ?(explain
   |{result = Success f; request = req } when success ->
       Format.fprintf fmt "@[<v 1>-@,";
       begin match req with
+      |[] -> Format.fprintf fmt "@[<v>consistent@]@,"
       |[r] -> 
           Format.fprintf fmt "@[<v>%a@]@," (pp_package ~source:true 
~fields:true pp) r;
           if minimal then
diff --git a/algo/diagnostic.mli b/algo/diagnostic.mli
index 824f95e..bedffb6 100644
--- a/algo/diagnostic.mli
+++ b/algo/diagnostic.mli
@@ -10,17 +10,8 @@
 (*  library, see the COPYING file for more information.                        
       *)
 
(**************************************************************************************)
 
-(** {2 Low level Integer Un-installability reasons} *)
-type reason_int =
-  |DependencyInt of (int * Cudf_types.vpkg list * int list)
-  |MissingInt of (int * Cudf_types.vpkg list)
-  |ConflictInt of (int * int * Cudf_types.vpkg)
-
-type result_int =
-  |SuccessInt of (?all:bool -> unit -> int list)
-  |FailureInt of (unit -> reason_int list)
-
-type request_int = (int option * int list)
+(** The request provided to the solver *)
+type request = Cudf.package list
 
 (** {2 Un-installability reasons} *)
 type reason =
@@ -35,9 +26,6 @@ type reason =
   (** Conflict (a,b,vpkg) means that the package [a] is in conflict
       with package [b] because of vpkg *)
 
-(** The request provided to the solver *)
-type request = Cudf.package list
-
 (** The result of an installability query *)
 type result =
   |Success of (?all:bool -> unit -> Cudf.package list)
@@ -53,10 +41,29 @@ type result =
 (** The aggregated result from the solver *)
 type diagnosis = { result : result; request : request; }
 
+(** {2 Low level Integer Un-installability reasons} *)
+type reason_int =
+  |DependencyInt of (int * Cudf_types.vpkg list * int list)
+  |MissingInt of (int * Cudf_types.vpkg list)
+  |ConflictInt of (int * int * Cudf_types.vpkg)
+
+type result_int =
+  |SuccessInt of (?all:bool -> unit -> int list)
+  |FailureInt of (unit -> reason_int list)
+
+type request_int = (int option * int list)
+
+(** {2 Helpers Functions } *)
 (** Turn an integer result into a cudf result *)
 val diagnosis : Common.Util.projection -> Cudf.universe ->
   result_int -> request_int -> diagnosis
 
+(** Turn an integer result into a cudf result *)
+val result : Common.Util.projection -> Cudf.universe -> result_int -> result
+
+(** Turn an integer request into a cudf request *)
+val request : Cudf.universe -> 'a * int list -> Cudf.package list
+
 module ResultHash : Hashtbl.S with type key = reason
 
 (** Collect aggregate information about not installable packages *)
diff --git a/algo/tests.ml b/algo/tests.ml
index f3a66ac..3c026b6 100644
--- a/algo/tests.ml
+++ b/algo/tests.ml
@@ -45,6 +45,9 @@ let f_debian = Filename.concat cudf_dir "debian.cudf"
 let f_dominators_order = Filename.concat test_dir "dominators_order.cudf"
 let f_dominators_cycle = Filename.concat test_dir "dominators_cycle.cudf"
 
+let f_is_consistent_success = "tests/cudf/is_consistent_success.cudf"
+let f_is_consistent_failure = "tests/cudf/is_consistent_failure.cudf"
+
 let load_univ f =
   let (_,univ,_) = Cudf_parser.load_from_file f in
   univ
@@ -64,6 +67,34 @@ let engine_conflicts_set = toset f_engine_conflicts
 
 let solver = Depsolver.load universe ;;
 
+(* These tests could be a bit more precise... *)
+let test_is_consistent =
+  "is_consistent" >::: [
+    "success" >:: (fun _ ->
+      let universe = load_univ f_is_consistent_success in
+      let d = Depsolver.is_consistent universe in
+      match d with
+      |{ Diagnostic.result = (Diagnostic.Success f) } -> 
+          (* Diagnostic.printf ~failure:true ~success:true ~explain:true d; *)
+          assert_bool "pass" true
+
+      |{ Diagnostic.result = (Diagnostic.Failure _ ) } ->
+          (* Diagnostic.printf ~failure:true ~success:true ~explain:true d; *)
+          assert_failure "fail"
+    );
+    "failure" >:: (fun _ ->
+      let universe = load_univ f_is_consistent_failure in
+      match Depsolver.is_consistent universe with
+      |{ Diagnostic.result = (Diagnostic.Success f) } -> 
+          (* Diagnostic.printf ~failure:true ~success:true ~explain:true d; *)
+          assert_failure "fail"
+
+      |{ Diagnostic.result = (Diagnostic.Failure _ ) } ->
+          (* Diagnostic.printf ~failure:true ~success:true ~explain:true d; *)
+          assert_bool "pass" true
+    );
+  ]
+
 let test_install =
   "install" >:: (fun _ ->
     let bicycle = Cudf.lookup_package universe ("bicycle", 7) in
@@ -412,6 +443,7 @@ let test_depsolver =
     test_reverse_dependency_closure ;
     test_conjunctive_dependency_closure ;
     test_depclean ;
+    test_is_consistent;
   ]
 
 let solution_set =
diff --git a/applications/deb-coinstall.ml b/applications/deb-coinstall.ml
index d4efa2e..a09b180 100644
--- a/applications/deb-coinstall.ml
+++ b/applications/deb-coinstall.ml
@@ -212,7 +212,8 @@ let main () =
           try
             let id = (cudfpkg.Cudf.package,cudfpkg.Cudf.version) in
             let debpkg = Hashtbl.find cudftodeb_table id in
-            debpkg#pp oc
+            debpkg#pp oc;
+            Printf.fprintf oc "\n"
           with Not_found -> assert false
         ) is
       else
@@ -225,7 +226,7 @@ let main () =
             ) is
           )
         in
-        List.iter (fun pkg -> pkg#pp oc) l
+        List.iter (fun pkg -> pkg#pp oc; Printf.fprintf oc "\n") l
       end; 0 (* exit code 0 . All packages are installable *)
     end
     else begin if failure then begin
diff --git a/applications/outdated.ml b/applications/outdated.ml
index ac90de9..4979b5b 100644
--- a/applications/outdated.ml
+++ b/applications/outdated.ml
@@ -235,9 +235,10 @@ let outdated
 
   let pp pkg =
     let p = 
-      if String.starts_with pkg.Cudf.package "src/" then
-        Printf.sprintf "Source conflict (%s)" pkg.Cudf.package
-      else pkg.Cudf.package
+      let n = Debian.Debcudf.get_real_name pkg.Cudf.package in
+      if String.starts_with n "src/" then
+        Printf.sprintf "Source conflict (%s)" n
+      else n
     in
     let v = 
       if pkg.Cudf.version > 0 then begin
@@ -260,7 +261,7 @@ let outdated
         with Not_found -> None
       ) ["architecture";"source";"sourcenumber";"equivs"]
     in
-    (CudfAdd.decode p,v,l)
+    (p,v,l)
   in
 
   let fmt = Format.std_formatter in
diff --git a/common/cudfAdd.ml b/common/cudfAdd.ml
index 1ddc8f7..d3a6b16 100644
--- a/common/cudfAdd.ml
+++ b/common/cudfAdd.ml
@@ -140,6 +140,8 @@ let pp from_cudf ?(fields=[]) ?(decode=decode) pkg =
     let l = (f false fields)@(f true default_fields) in
     (decode p,decode v,l)
 
+let max32int = if Int32.to_int(Int32.max_int) < 0 then max_int else 
Int32.to_int(Int32.max_int);;
+
 let pp_vpkg pp fmt vpkg =
   let string_of_relop = function
       `Eq -> "="
@@ -154,7 +156,7 @@ let pp_vpkg pp fmt vpkg =
       let (p,_,_) = 
         pp {Cudf.default_package with 
           Cudf.package = p ; 
-          version = Int32.to_int(Int32.max_int)} 
+          version = max32int} 
       in
       Format.fprintf fmt "%s" p
   |(p,Some(c,v)) ->
diff --git a/configure b/configure
index 7930666..a9cd100 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for dose3 4.1.
+# Generated by GNU Autoconf 2.69 for dose3 4.2.
 #
 # Report bugs to <pietro.ab...@pps.univ-paris-diderot.fr>.
 #
@@ -582,8 +582,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='dose3'
 PACKAGE_TARNAME='dose3'
-PACKAGE_VERSION='4.1'
-PACKAGE_STRING='dose3 4.1'
+PACKAGE_VERSION='4.2'
+PACKAGE_STRING='dose3 4.2'
 PACKAGE_BUGREPORT='pietro.ab...@pps.univ-paris-diderot.fr'
 PACKAGE_URL=''
 
@@ -1315,7 +1315,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures dose3 4.1 to adapt to many kinds of systems.
+\`configure' configures dose3 4.2 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1377,7 +1377,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of dose3 4.1:";;
+     short | recursive ) echo "Configuration of dose3 4.2:";;
    esac
   cat <<\_ACEOF
 
@@ -1474,7 +1474,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-dose3 configure 4.1
+dose3 configure 4.2
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1732,7 +1732,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by dose3 $as_me 4.1, which was
+It was created by dose3 $as_me 4.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -6494,7 +6494,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by dose3 $as_me 4.1, which was
+This file was extended by dose3 $as_me 4.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -6547,7 +6547,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-dose3 config.status 4.1
+dose3 config.status 4.2
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index b6e1b80..d3505e6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
-AC_INIT(dose3, 4.1, pietro.ab...@pps.univ-paris-diderot.fr)
+AC_INIT(dose3, 4.2, pietro.ab...@pps.univ-paris-diderot.fr)
 AC_COPYRIGHT(Copyright 2009-2015 Mancoosi Project)
 
 AC_CONFIG_MACRO_DIR([m4])
diff --git a/deb/debcudf.ml b/deb/debcudf.ml
index 7005e97..6d1bc84 100644
--- a/deb/debcudf.ml
+++ b/deb/debcudf.ml
@@ -27,7 +27,7 @@ module Version = Versioning.Debian
 let label =  __label ;;
 include Util.Logging(struct let label = label end) ;;
 
-let max32int = Int32.to_int(Int32.max_int);;
+let max32int = if Int32.to_int(Int32.max_int) < 0 then max_int else 
Int32.to_int(Int32.max_int);;
 
 module SMap = Map.Make (String)
 
@@ -186,7 +186,6 @@ let init_tables ?(step=1) ?(versionlist=[]) pkglist =
   List.iter (fun pkg -> ivt pkg ; ivrt pkg ; ivdt pkg ; iut pkg) pkglist ;
   let l = Util.StringPairHashtbl.fold (fun v _ acc -> v::acc) 
temp_versions_table [] in
   let add_reverse i (n,v) =
-    debug "Add Reverse (%s,%s) %i" n v i;
     try 
       let m = Util.IntHashtbl.find tables.reverse_table i in 
       m := (SMap.add n v !m)
@@ -198,7 +197,6 @@ let init_tables ?(step=1) ?(versionlist=[]) pkglist =
   let rec numbers (prec,i) = function
     |[] -> ()
     |(v,n)::t ->
-      debug "Numbers %s %s" n v;
       if Version.equal v prec then begin
         add tables.versions_table v i;
         if n <> "" then add_reverse i (n,v);
@@ -221,18 +219,19 @@ let get_cudf_version tables (package,version) =
     raise Not_found
   end
 
+let get_real_name name = 
+  (* Remove --virtual- and architecture encoding *)
+  let n = (CudfAdd.decode name) in
+  if ExtString.String.starts_with n "--vir" then
+    ExtString.String.slice ~first:10 n
+  else
+    try
+      let (n,a) = ExtString.String.split n ":" in
+      if n = "src" then a else n
+    with Invalid_string -> n
+
 let get_real_version tables (name,cudfversion) =
-  let package =
-    (* XXX this is a hack. Remove --virtual- and architecture encoding *)
-    let n = (CudfAdd.decode name) in
-    if ExtString.String.starts_with n "--vir" then
-      ExtString.String.slice ~first:10 n
-    else
-      try
-        let (n,a) = ExtString.String.split n ":" in
-        if n = "src" then a else n
-      with Invalid_string -> n
-  in
+  let package = get_real_name name in
   try
     if cudfversion = max32int || cudfversion = max32int - 1 then 
       (package,"nan")
diff --git a/deb/debcudf.mli b/deb/debcudf.mli
index 23eec0e..9e5ddf1 100644
--- a/deb/debcudf.mli
+++ b/deb/debcudf.mli
@@ -36,6 +36,9 @@ val clear : tables -> unit
  * to the tuple (name,version) *)
 val get_cudf_version : tables -> Pef.Packages_types.name * 
Pef.Packages_types.version -> int
 
+(** Get the orgininal debian package name. Remove deb -> cudf conversion cruft 
*)
+val get_real_name : Cudf_types.pkgname -> string
+
 (** return the real version associated to a Cudf package *)
 val get_real_version : tables -> Cudf_types.pkgname * Cudf_types.version -> 
   (Pef.Packages_types.name * Pef.Packages_types.version)
diff --git a/deb/evolution.ml b/deb/evolution.ml
index 166130d..58515c3 100644
--- a/deb/evolution.ml
+++ b/deb/evolution.ml
@@ -187,7 +187,6 @@ let add_epochs el vl =
   ) [] el
 ;;
 
-
 let all_ver_constr constraints_table cluster =
   let (versionlist, constr) =
     List.fold_left (fun (_vl,_cl) pkg ->
diff --git a/deb/packages.ml b/deb/packages.ml
index c180b3a..f240fff 100644
--- a/deb/packages.ml
+++ b/deb/packages.ml
@@ -136,11 +136,10 @@ class package ?(name=("Package",None)) 
?(version=("Version",None)) ?(depends=("D
     Pef.Printer.pp_vpkglist_wl oc conflicts;
     Pef.Printer.pp_vpkglist_wl oc breaks;
     Pef.Printer.pp_vpkgformula_wl oc suggests;
+    Pef.Printer.pp_vpkgformula_wl oc enhances;
     Pef.Printer.pp_vpkgformula_wl oc recommends;
     Pef.Printer.pp_vpkglist_wl oc replaces;
  
-    Printf.fprintf oc "\n";
-
 end
 
 let parse_package_stanza filter archs extras par =
diff --git a/doc/manpages/buildcheck.pod b/doc/manpages/deb-buildcheck.pod
similarity index 97%
rename from doc/manpages/buildcheck.pod
rename to doc/manpages/deb-buildcheck.pod
index 0b90904..cdaad2b 100644
--- a/doc/manpages/buildcheck.pod
+++ b/doc/manpages/deb-buildcheck.pod
@@ -33,7 +33,7 @@ B<Conflicts>.
 
 =cut
 
-=head1 Input Format
+=head1 INPUT FORMAT
 
 The B<binary-repositories> argument is a list of filenames containing stanzas
 in the format of L<deb-control(5)>, separated by one blank line. For instance,
@@ -42,7 +42,8 @@ I</var/lib/apt/lists/> of a Debian system, are suitable. The
 B<source-repository> argument is the name of a file containing debian source
 control stanzas, separated by one blank line. For instance, the Sources files
 as found on a Debian mirror server, or in the directory I</var/lib/apt/lists/>
-of a Debian system, are suitable. 
+of a Debian system, are suitable. B<binary-repositories> and
+B<source-repository> can be passed in compresssed format (.gz , .bz2).
 
 Multi-arch annotations are correctly considered by dose-builddebcheck. Packages
 whose's architecture is neither the native architecture nor in the list of
@@ -175,7 +176,7 @@ Dump the cudf file.
 
 =back
 
-=head2 DEBIAN SPECIFIC OPTIONS
+=head2 DEBIAN OPTIONS
 
 =over 8
 
@@ -257,7 +258,7 @@ Compute the list of source packages in Sources for which
 it is not possible to install a build environment on i386, assuming that
 the binary packages described in file Packages are available: 
 
- dose-builddebcheck -v -f -e --arch amd64 \
+ dose-builddebcheck -v -f -e --deb-native-arch=amd64 \
  
/var/lib/apt/lists/ftp.fr.debian.org_debian_dists_sid_main_binary-amd64_Packages\
  /var/lib/apt/lists/ftp.fr.debian.org_debian_dists_sid_main_source_Sources
 
diff --git a/doc/manpages/distcheck.pod b/doc/manpages/distcheck.pod
index 1b282b1..b3f6c72 100644
--- a/doc/manpages/distcheck.pod
+++ b/doc/manpages/distcheck.pod
@@ -45,13 +45,13 @@ B<hdlist> or B<eclipse>, and I<pathname> is the pathname of 
a file
 containing the input. The package metadata found in that file must
 correspond to the I<type> given in the URI.
 
-When invoked as I<typeB<check>> then the type of input is assumed to
-be I<type>, and repositories (in positional arguments or in the values of
-options B<--fg> and B<--bg>) are simply given in form of a pathname of a file
+When invoked as I<typeB<check>> then the type of input is assumed to be
+I<type>, and repositories (in positional arguments or in the values of options
+B<--fg> and B<--bg>) are simply given in form of a pathname of a file
 containing the repository. If no positional argument is given then input is
-read from standard input.  B<distcheck> also compressed files (.gz , .bz2) as
-positional arguments. Input read on standard input cannot be in compressed
-form.
+read from standard input. B<distcheck> also accepts compressed files (.gz ,
+.bz2) as positional arguments. Input read on standard input cannot be in
+compressed form.
 
 =head1 Input Formats
 
diff --git a/opam_configure.sh b/opam_configure.sh
index 9dd5d1b..3c86dcf 100755
--- a/opam_configure.sh
+++ b/opam_configure.sh
@@ -2,4 +2,4 @@ opam init -y
 eval `opam config env`
 opam switch -y 4.02.0
 eval `opam config env`
-opam install -y extlib camlbz2 camlzip ocamlgraph extlib ounit re cudf
+opam install -y extlib camlbz2 camlzip ocamlgraph extlib ounit re cudf cppo

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-ocaml-maint/packages/dose3.git

_______________________________________________
Pkg-ocaml-maint-commits mailing list
Pkg-ocaml-maint-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-ocaml-maint-commits

Reply via email to