grep-dctrl (for example because it's not Debian) then you must set
this to the empty string, by writing DebianNonfreeFirmware=''
+DebianExtraPackages_<firmware>_<arch>_<suite> [<item>... ]
+ Extra packages, or directories of them, to install on every Debian
+ host (dom0). Each variable is a space-separated list of items.
+ Each <item> is relative to Images unless it starts with `/' or `./'.
+ It should be one of the following:
+ <directory-name>/ update packages, dpkg -iGROEB
+ [.../]<package>_<version>_<pkgarch>.deb install package, dpkg -iB
+ [.../]<package>_<version>_.deb install _<hostarch>.deb
+
Tftp*
Settings related to the tftp server:
# Update with ./mg-netgrub-loader-update
TftpGrubVersion XXXX-XX-XX
-ExtraDebs_uefi_i386_jessie 2018-04-01
-ExtraDebs_uefi_amd64_jessie 2018-04-01
-ExtraDebs_uefi_i386_stretch 2018-04-01
-ExtraDebs_uefi_amd64_stretch 2018-04-01
+DebianExtraPackages_uefi_i386_jessie extradebs-uefi-i386-2018-04-01/
+DebianExtraPackages_uefi_amd64_jessie extradebs-uefi-amd64-2018-04-01/
+DebianExtraPackages_uefi_i386_stretch extradebs-uefi-i386-2018-04-01/
+DebianExtraPackages_uefi_amd64_stretch extradebs-uefi-amd64-2018-04-01/
XenUsePath /usr/groups/xencore/systems/bin/xenuse
XenUseUser osstest
BEGIN { unshift @INC, qw(.); }
use Osstest;
use File::Path;
+use File::Basename;
use POSIX;
use Osstest::Debian;
use Osstest::TestSupport;
if toolstack($ho)->{ExtraPackages};
}
+sub some_extradebs ($) {
+ my ($items) = @_;
+ my $cfgvar = join('_', @$items);
+ my $specs = $c{$cfgvar};
+ if (!length $specs) {
+ logm("$cfgvar: no extra debs");
+ return;
+ }
+ my $counter = 0;
+ my $rsync_installed;
+ foreach my $spec (split /\s+/, $specs) {
+ my $path = $spec;
+ $path = "$c{Images}/$path" unless $path =~ m{^/|^\./};
+ my ($ontarget, $dpkgopts);
+ if ($path =~ m{/$}) {
+ $ontarget = "extrapackages-$cfgvar-$counter"; $counter++;
+ $dpkgopts = '-iGROEB';
+ logm("$cfgvar: updating packages from directory $path");
+ target_install_packages($ho, 'rsync') unless $rsync_installed++;
+ target_putfile_root($ho,300, "$path/.", $ontarget, '-r');
+ } elsif ($path =~ m{\.deb$}) {
+ $path =~ s{_\.deb}{ "_$r{arch}.deb" }e;
+ logm("$cfgvar: installing $path");
+ $ontarget = basename($path);
+ $dpkgopts = '-iB';
+ target_putfile_root($ho,300, $path, $ontarget);
+ } else {
+ die "no / or . deb in $spec ?";
+ }
+ target_cmd_root($ho,
+ "dpkg --force-confold $dpkgopts $ontarget </dev/null",
+ 300);
+ }
+}
+
sub extradebs () {
+ my $suite = $ho->{Suite};
+
+ # $c{ DebianExtraPackages_<firmware>_<arch>_<suite> }
my $firmware = get_host_property($ho, "firmware", "bios");
- my $version = $c{ "ExtraDebs_${firmware}_$r{arch}_$ho->{Suite}" };
- return unless $version;
- target_install_packages($ho, 'rsync');
- my $extradebs = "$c{Images}/extradebs-$firmware-$r{arch}-$version";
- target_putfile_root($ho,300, "$extradebs/.", 'extradebs', '-r');
- target_cmd_root($ho,"dpkg --force-confold -iGROEB extradebs </dev/null",300);
+ some_extradebs([ 'DebianExtraPackages', $firmware, $r{arch}, $suite ]);
}
sub extract () {