Example #1
0
static int
old_or_broken_virtio_scsi (const struct version *qemu_version)
{
  /* qemu 1.1 claims to support virtio-scsi but in reality it's broken. */
  if (!guestfs_int_version_ge (qemu_version, 1, 2, 0))
    return 1;

  return 0;
}
Example #2
0
void
guestfs_int_check_package_management (guestfs_h *g, struct inspect_fs *fs)
{
  switch (fs->distro) {
  case OS_DISTRO_MEEGO:
    fs->package_management = OS_PACKAGE_MANAGEMENT_YUM;
    break;

  case OS_DISTRO_FEDORA:
    /* If Fedora >= 22 and dnf is installed, say "dnf". */
    if (guestfs_int_version_ge (&fs->version, 22, 0, 0) &&
        guestfs_is_file_opts (g, "/usr/bin/dnf",
                              GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0)
      fs->package_management = OS_PACKAGE_MANAGEMENT_DNF;
    else if (guestfs_int_version_ge (&fs->version, 1, 0, 0))
      fs->package_management = OS_PACKAGE_MANAGEMENT_YUM;
    else
      /* Probably parsing the release file failed, see RHBZ#1332025. */
      fs->package_management = OS_PACKAGE_MANAGEMENT_UNKNOWN;
    break;

  case OS_DISTRO_REDHAT_BASED:
  case OS_DISTRO_RHEL:
  case OS_DISTRO_CENTOS:
  case OS_DISTRO_SCIENTIFIC_LINUX:
  case OS_DISTRO_ORACLE_LINUX:
    if (guestfs_int_version_ge (&fs->version, 5, 0, 0))
      fs->package_management = OS_PACKAGE_MANAGEMENT_YUM;
    else if (guestfs_int_version_ge (&fs->version, 2, 0, 0))
      fs->package_management = OS_PACKAGE_MANAGEMENT_UP2DATE;
    else
      /* Probably parsing the release file failed, see RHBZ#1332025. */
      fs->package_management = OS_PACKAGE_MANAGEMENT_UNKNOWN;
    break;

  case OS_DISTRO_DEBIAN:
  case OS_DISTRO_UBUNTU:
  case OS_DISTRO_LINUX_MINT:
  case OS_DISTRO_ALTLINUX:
    fs->package_management = OS_PACKAGE_MANAGEMENT_APT;
    break;

  case OS_DISTRO_ARCHLINUX:
    fs->package_management = OS_PACKAGE_MANAGEMENT_PACMAN;
    break;
  case OS_DISTRO_GENTOO:
    fs->package_management = OS_PACKAGE_MANAGEMENT_PORTAGE;
    break;
  case OS_DISTRO_PARDUS:
    fs->package_management = OS_PACKAGE_MANAGEMENT_PISI;
    break;
  case OS_DISTRO_MAGEIA:
  case OS_DISTRO_MANDRIVA:
    fs->package_management = OS_PACKAGE_MANAGEMENT_URPMI;
    break;

  case OS_DISTRO_SUSE_BASED:
  case OS_DISTRO_OPENSUSE:
  case OS_DISTRO_SLES:
    fs->package_management = OS_PACKAGE_MANAGEMENT_ZYPPER;
    break;

  case OS_DISTRO_ALPINE_LINUX:
    fs->package_management = OS_PACKAGE_MANAGEMENT_APK;
    break;

  case OS_DISTRO_VOID_LINUX:
    fs->package_management = OS_PACKAGE_MANAGEMENT_XBPS;
    break;

  case OS_DISTRO_SLACKWARE:
  case OS_DISTRO_TTYLINUX:
  case OS_DISTRO_COREOS:
  case OS_DISTRO_WINDOWS:
  case OS_DISTRO_BUILDROOT:
  case OS_DISTRO_CIRROS:
  case OS_DISTRO_FREEDOS:
  case OS_DISTRO_FREEBSD:
  case OS_DISTRO_NETBSD:
  case OS_DISTRO_OPENBSD:
  case OS_DISTRO_FRUGALWARE:
  case OS_DISTRO_PLD_LINUX:
  case OS_DISTRO_UNKNOWN:
    fs->package_management = OS_PACKAGE_MANAGEMENT_UNKNOWN;
    break;
  }
}