Merge pull request #11122 from edsantiago/qfile

podman info: try qfile before equery
This commit is contained in:
openshift-ci[bot] 2021-08-03 22:34:33 +00:00 committed by GitHub
commit 1b4b01bdbb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 25 deletions

View File

@ -153,33 +153,22 @@ func queryPackageVersion(cmdArg ...string) string {
return strings.Trim(output, "\n")
}
func equeryVersion(path string) string {
return queryPackageVersion("/usr/bin/equery", "b", path)
}
func pacmanVersion(path string) string {
return queryPackageVersion("/usr/bin/pacman", "-Qo", path)
}
func dpkgVersion(path string) string {
return queryPackageVersion("/usr/bin/dpkg", "-S", path)
}
func rpmVersion(path string) string {
return queryPackageVersion("/usr/bin/rpm", "-q", "-f", path)
}
func packageVersion(program string) string {
if out := rpmVersion(program); out != unknownPackage {
return out
func packageVersion(program string) string { // program is full path
packagers := [][]string{
{"/usr/bin/rpm", "-q", "-f"},
{"/usr/bin/dpkg", "-S"}, // Debian, Ubuntu
{"/usr/bin/pacman", "-Qo"}, // Arch
{"/usr/bin/qfile", "-qv"}, // Gentoo (quick)
{"/usr/bin/equery", "b"}, // Gentoo (slow)
}
if out := dpkgVersion(program); out != unknownPackage {
return out
for _, cmd := range packagers {
cmd = append(cmd, program)
if out := queryPackageVersion(cmd...); out != unknownPackage {
return out
}
}
if out := pacmanVersion(program); out != unknownPackage {
return out
}
return equeryVersion(program)
return unknownPackage
}
func programVersion(mountProgram string) (string, error) {

View File

@ -33,12 +33,16 @@ cgroupVersion: v[12]
expr_nvr="[a-z0-9-]\\\+-[a-z0-9.]\\\+-[a-z0-9]\\\+\."
expr_path="/[a-z0-9\\\/.-]\\\+\\\$"
# FIXME: if we're ever able to get package versions on Debian,
# add '-[0-9]' to all '*.package' queries below.
tests="
host.buildahVersion | [0-9.]
host.conmon.path | $expr_path
host.conmon.package | .*conmon.*
host.cgroupManager | \\\(systemd\\\|cgroupfs\\\)
host.cgroupVersion | v[12]
host.ociRuntime.path | $expr_path
host.ociRuntime.package | .*\\\(crun\\\|runc\\\).*
store.configFile | $expr_path
store.graphDriverName | [a-z0-9]\\\+\\\$
store.graphRoot | $expr_path