The following commit has been merged in the master branch:
commit f253468bc7aa1ec49c35c6cb8b3e33bccaa2753c
Merge: 93c7d6fb2dcb022d4762fbb0fe83a041a47908bc
bb15569d79505d5fb6f15098f1ec1412f552b942
Author: Ralf Treinen
Date: Mon Feb 6 15:07:01 2012 +0100
Merge commit 'upstream/2.9.10'
Conflicts:
doc/manpages/distcheck.1.in
diff --combined applications/distcheck.ml
index 8ed9038,9561804..c564cb8
--- a/applications/distcheck.ml
+++ b/applications/distcheck.ml
@@@ -14,25 -14,27 +14,27 @@@ open ExtLi
open Debian
open Common
open Algo
module Options = struct
open OptParse
- let description = "Report the broken packages in a package list"
+ let description = "Report the broken packages in a Packages list"
let options = OptParser.make ~description
include Boilerplate.MakeOptions(struct let options = options end)
let successes = StdOpt.store_true ()
let failures = StdOpt.store_true ()
let explain = StdOpt.store_true ()
+ let summary = StdOpt.store_true ()
let uuid = StdOpt.store_true ()
+ let latest = StdOpt.store_true ()
let checkonly = Boilerplate.vpkglist_option ()
let architecture = StdOpt.str_option ()
let distribution = StdOpt.str_option ()
let release = StdOpt.str_option ()
let suite = StdOpt.str_option ()
- let summary = StdOpt.store_true ()
let outfile = StdOpt.str_option ()
+ let background = Boilerplate.incr_str_list ()
+ let foreground = Boilerplate.incr_str_list ()
open OptParser
add options ~short_name:'e' ~long_name:"explain" ~help:"Explain the
results" explain;
@@@ -42,19 -44,27 +44,27 @@@
add options ~long_name:"checkonly" ~help:"Check only these package"
checkonly;
add options ~long_name:"summary" ~help:"Print a detailed summary" summary;
+ add options ~long_name:"latest" ~help:"Check only the latest version of
each package" latest;
+ add options ~short_name:'u' ~long_name:"uid" ~help:"Generate a unique
identifier for the output document" uuid;
+
add options ~long_name:"distrib" ~help:"Set the distribution" distribution;
add options ~long_name:"release" ~help:"Set the release name" release;
add options ~long_name:"suite" ~help:"Set the release name" suite;
add options ~long_name:"arch" ~help:"Set the default architecture"
architecture;
- add options ~short_name:'u' ~long_name:"uid" ~help:"Generate a unique
identifier for the output document" uuid;
+
+ add options ~long_name:"fg"
+ ~help:"Additional Packages lists that are checked and used for resolving
dependencies (can be repeated)" foreground;
+
+ add options ~long_name:"bg"
+ ~help:"Additional Packages lists that are NOT checked but used for
resolving dependencies (can be repeated)" background;
add options ~short_name:'o' ~long_name:"outfile" ~help:"output file"
outfile;
end
- let debug fmt = Util.make_debug "Distcheck" fmt
- let info fmt = Util.make_info "Distcheck" fmt
- let warning fmt = Util.make_warning "Distcheck" fmt
- let fatal fmt = Util.make_fatal "Distcheck" fmt
+ let debug fmt = Util.make_debug __FILE__ fmt
+ let info fmt = Util.make_info __FILE__ fmt
+ let warning fmt = Util.make_warning __FILE__ fmt
+ let fatal fmt = Util.make_fatal __FILE__ fmt
let timer = Util.Timer.create "Solver"
@@@ -62,28 -72,53 +72,53 @@@ let main ()
let posargs =
let args = OptParse.OptParser.parse_argv Options.options in
match Filename.basename(Sys.argv.(0)),args with
-|("debcheck"|"edos-debcheck"),[] -> ["deb://-"]
-|("debcheck"|"edos-debcheck"),l -> List.map ((^) "deb://") l
+|("debcheck"|"dose3-debcheck"),[] -> ["deb://-"]
+|("debcheck"|"dose3-debcheck"),l -> List.map ((^) "deb://") l
|"eclipsecheck",l -> List.map ((^) "eclipse://") l
-|("rpmcheck"|"edos-rpmcheck"),l -> List.map ((^) "synth://") l
+|("rpmcheck"|"dose3-rpmcheck"),l -> List.map ((^) "synth://") l
|_,_ -> args
in
Boilerplate.enable_debug (OptParse.Opt.get Options.verbose);
Boilerplate.enable_timers (OptParse.Opt.get Options.timers) ["Solver"];
+ Boilerplate.enable_bars (OptParse.Opt.get Options.progress)
+ ["Depsolver_int.univcheck";"Depsolver_int.init_solver"] ;
let default_arch = OptParse.Opt.opt Options.architecture in
- let (universe,from_cudf,to_cudf) = Boilerplate.load_universe ~default_arch
posargs in
+ let fg = posargs @ (OptParse.Opt.get Options.foreground) in
+ let bg = OptParse.Opt.get Options.background in
+ let (pkgll, from_cudf,to_cudf) = Boilerplate.load_list ~default_arch
[fg;bg] in
+ let (fg_pkglist, bg_pkglist) = match pkgll with [fg;bg] -> (fg,bg) | _ ->
assert false in
+ let fg_pkglist =
+ if OptParse.Opt.get Options.latest then
+ let h = Hashtbl.create (List.length fg_pkglist) in
+ List.iter (fun p ->
+ try
+ let q = Hashtbl.find h p.Cudf.package in
+ if (CudfAdd.compare p q) > 0 then
+ Hashtbl.replace h p.Cudf.package p
+