let parse_pkg_req suite s =
  try 
    if Str.string_match distro_re s 0 then
      `PkgDst(
        Packages.parse_name(Format822.dummy_loc,Str.matched_group 1 s),
        Str.matched_group 2 s
      )
    else if Str.string_match version_re s 0 then
      `PkgVer(
        Packages.parse_name (Format822.dummy_loc,Str.matched_group 1 s),
        Packages.parse_version (Format822.dummy_loc,Str.matched_group 2 s)
      )
    else begin match suite with
    |None -> parse_pkg_only s
    |Some suite -> `PkgDst(s,suite)
    end
  with Not_found -> fatal "Bad apt package in request '%s'" s