let choose_criteria ?(criteria=None) request =
let paranoid = "-removed,-changed" in
let upgrade = "-notuptodate,-removed,-changed" in
let trendy = "-removed,-notuptodate,-unsat_recommends,-new" in
match criteria,request.Edsp.preferences with
|None,"paranoid" when (request.Edsp.upgrade || request.Edsp.distupgrade) -> upgrade
|None,"paranoid" -> paranoid
|None,"trendy" -> trendy
|None,s when s <> "" -> s
|None,_ when (request.Edsp.upgrade || request.Edsp.distupgrade) -> upgrade
|None,_ -> paranoid
|Some "trendy",_ -> trendy
|Some "paranoid",_ -> paranoid
|Some "upgrade",_ -> upgrade
|Some c,_ -> c