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});
|
||||
}
|
||||
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) {
|
||||
my $pkg = $$pkgs{$name};
|
||||
if (! defined $pkg) {
|
||||
|
|
Loading…
Reference in a new issue