Improved patch recognition.
This commit is contained in:
parent
2c0cdab529
commit
898cb3c39a
33
pkgtool.pm
33
pkgtool.pm
|
@ -754,6 +754,39 @@ sub read_os_patches ($$$)
|
||||||
}
|
}
|
||||||
print_log('global', DEBUG3, 'Found OS patch information for %s: kbnum=%s current=%s', $kb, $number, $$p{Current});
|
print_log('global', DEBUG3, 'Found OS patch information for %s: kbnum=%s current=%s', $kb, $number, $$p{Current});
|
||||||
}
|
}
|
||||||
|
elsif ($installname =~ /^Package_for_([0-9a-zA-Z_]+)~/o) {
|
||||||
|
my $kb = $1;
|
||||||
|
if ($installname =~ /^[^~]*~[^~]*~[^~]*~[^~]*~(\d+(\.\d+)*)/o) {
|
||||||
|
my $version = $1;
|
||||||
|
if (defined $version && $version ne '') {
|
||||||
|
my @versionlist = split /\./, $version;
|
||||||
|
my $revnum = $versionlist[2];
|
||||||
|
if (defined $revnum && $revnum =~ /^\d+$/o && $revnum > 1) {
|
||||||
|
$kb .= 'v'.$revnum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
my $p = $$patches{$kb};
|
||||||
|
if (! defined $p) {
|
||||||
|
$p = $$patches{$kb} = {
|
||||||
|
Type => 'OS',
|
||||||
|
Packages => { OS => 1 },
|
||||||
|
InstallName => $name,
|
||||||
|
InstallClient => $installclient,
|
||||||
|
Original => $original,
|
||||||
|
Update => $update,
|
||||||
|
KB => $kb,
|
||||||
|
Number => $kb,
|
||||||
|
Current => 0,
|
||||||
|
Flags => 0
|
||||||
|
};
|
||||||
|
}
|
||||||
|
if (defined $state) {
|
||||||
|
$$p{Flags} |= $state;
|
||||||
|
$$p{Current} = 1 if $state & 0x20;
|
||||||
|
}
|
||||||
|
print_log('global', DEBUG3, 'Found OS patch information for %s: kbnum=%s current=%s', $kb, $kb, $$p{Current});
|
||||||
|
}
|
||||||
if ($name =~ /^([^~]*)~([^~]*)~([^~]*)~([^~]*)~([^~]*)$/o) {
|
if ($name =~ /^([^~]*)~([^~]*)~([^~]*)~([^~]*)~([^~]*)$/o) {
|
||||||
my $pkg = $$pkgs{$name};
|
my $pkg = $$pkgs{$name};
|
||||||
if (! defined $pkg) {
|
if (! defined $pkg) {
|
||||||
|
|
Loading…
Reference in a new issue