Fix package handling in Windows 10 build 1904x.

This commit is contained in:
László Valkó 2021-12-17 18:59:32 +01:00
parent 444efeabeb
commit cf0c12aae2

View file

@ -649,15 +649,28 @@ sub get_default_dnsdomain ()
{ {
my $hostname = get_hostname(); my $hostname = get_hostname();
return undef unless defined $hostname; return undef unless defined $hostname;
print "hostname: $hostname\n";
my $ipconfig = Win32::IPConfig->new($hostname); my $ipconfig = Win32::IPConfig->new($hostname);
return undef unless defined $ipconfig; return undef unless defined $ipconfig;
my $found; my $found;
foreach my $adapter ($ipconfig->get_adapters()) { foreach my $adapter ($ipconfig->get_adapters()) {
my $name = $adapter->get_name();
my $domain = $adapter->get_domain(); my $domain = $adapter->get_domain();
next unless defined $domain; next unless defined $name and defined $domain;
next unless $name =~ /^Ethernet/o;
$found = $domain; $found = $domain;
last; last;
} }
if (! defined $found) {
foreach my $adapter ($ipconfig->get_adapters()) {
my $name = $adapter->get_name();
my $desc = $adapter->get_description();
my $domain = $adapter->get_domain();
next unless defined $name and defined $domain;
$found = $domain;
last;
}
}
return $found; return $found;
} }
@ -2726,8 +2739,23 @@ sub get_patch_vars ($$$$$)
my $patchdir = substitute_variables($vars, $$patchdef{'source-directory'}, 1, $basedir, 'pkg'); my $patchdir = substitute_variables($vars, $$patchdef{'source-directory'}, 1, $basedir, 'pkg');
$$vars{patchdir} = $patchdir; $$vars{patchdir} = $patchdir;
$$vars{patch} = $kb; $$vars{patch} = $kb;
my $number = $kb =~ /^(\d+)/o ? $1 : $kb; my $kbnum = $kb;
my $extra = $kb =~ /^\d+([^0-9].*)$/o ? '-'.$1 : ''; my $number;
my $extra;
if ($kb =~ /^([^\/]+)\/(.+)*$/o) {
$kbnum = $1;
$number = $2;
$extra = '';
}
elsif ($kb =~ /^(\d+)([^0-9].*)$/o) {
$number = $1;
$extra = '-'.$2;
}
else {
$number = $kb;
$extra = '';
}
$$vars{patchkbnum} = $kbnum;
$$vars{patchnum} = $number; $$vars{patchnum} = $number;
$$vars{patchextra} = $extra; $$vars{patchextra} = $extra;
$$vars{patchprefix} = defined $$patchdef{prefix} ? $$patchdef{prefix} : 'Windows'.get_win_version().'-'; $$vars{patchprefix} = defined $$patchdef{prefix} ? $$patchdef{prefix} : 'Windows'.get_win_version().'-';
@ -2841,7 +2869,8 @@ sub assess_patch ($$$$$$$$$)
my $pkgname = $$vars{pkgname}; my $pkgname = $$vars{pkgname};
my $patches = $$db{Patches}; my $patches = $$db{Patches};
my $pkgs = $$db{Pkgs}; my $pkgs = $$db{Pkgs};
my $foundpatch = $$patches{$kb}; my $patchdbname = $kb =~ /^([^\/]+)\.*$/o ? $1 : $kb;
my $foundpatch = $$patches{$patchdbname};
my $foundpkg = defined $pkgname ? $$pkgs{$pkgname} : undef; my $foundpkg = defined $pkgname ? $$pkgs{$pkgname} : undef;
if (defined $foundpkg) { if (defined $foundpkg) {
my $foundforpkgs = $$foundpkg{Packages}; my $foundforpkgs = $$foundpkg{Packages};