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; }
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; } }