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