]> git.proxmox.com Git - dab.git/blobdiff - DAB.pm
bump version to 3.2-3
[dab.git] / DAB.pm
diff --git a/DAB.pm b/DAB.pm
index 26db7ad9eb3b97263f3de6b5ab617e2a87222a30..9282789324ce6ac63dcf684494f254cba33ee97c 100644 (file)
--- a/DAB.pm
+++ b/DAB.pm
@@ -177,6 +177,10 @@ my $supported_suites = {
        ostype => "ubuntu-21.04",
        origin => 'ubuntu',
     },
+    'impish' => {
+       ostype => "ubuntu-21.10",
+       origin => 'ubuntu',
+    },
 };
 
 sub get_suite_info {
@@ -571,7 +575,7 @@ sub new {
        $suite eq 'yakkety' || $suite eq 'zesty' || $suite eq 'artful' ||
        $suite eq 'bionic' || $suite eq 'cosmic' || $suite eq 'disco' ||
        $suite eq 'eoan' || $suite eq 'focal' || $suite eq 'groovy'
-       || $suite eq 'hirsute'
+       || $suite eq 'hirsute' || $suite eq 'impish'
     ) {
        push @$incl, 'isc-dhcp-client';
        push @$excl, qw(libmodule-build-perl);
@@ -618,17 +622,16 @@ sub initialize {
     my $logfd = $self->{logfd} = IO::File->new (">$self->{logfile}") ||
        die "unable to open log file";
 
-    # FIXME: seems a bit like a hacky way??
-    my $COMPRESSOR = {
-       ext => 'gz',
-       decomp => 'gzip -d',
-    };
-    if ($self->{config}->{suite} eq 'bullseye') {
-       $COMPRESSOR = {
+    my $COMPRESSORS = [
+       {
            ext => 'xz',
            decomp => 'xz -d',
-       };
-    }
+       },
+       {
+           ext => 'gz',
+           decomp => 'gzip -d',
+       },
+    ];
 
     foreach my $ss (@{$self->{sources}}) {
        my $src = $ss->{mirror} || $ss->{source};
@@ -646,11 +649,20 @@ sub initialize {
        };
 
        foreach my $comp (@{$ss->{comp}}) {
-           $path = "dists/$ss->{suite}/$comp/binary-$arch/Packages.$COMPRESSOR->{ext}";
-           $target = "$infodir/" . __url_to_filename ("$ss->{source}/$path");
-           my $pkgsrc = "$src/$path";
-           $self->download ($pkgsrc, $target);
-           $self->run_command ("$COMPRESSOR->{decomp} '$target'");
+           foreach my $compressor (@$COMPRESSORS) {
+               $path = "dists/$ss->{suite}/$comp/binary-$arch/Packages.$compressor->{ext}";
+               $target = "$infodir/" . __url_to_filename ("$ss->{source}/$path");
+               my $pkgsrc = "$src/$path";
+               eval {
+                   $self->download ($pkgsrc, $target);
+                   $self->run_command ("$compressor->{decomp} '$target'");
+               };
+               if (my $err = $@) {
+                   print $logfd "could not download Packages.$compressor->{ext}\n";
+               } else {
+                   last;
+               }
+           }
        }
     }
 }
@@ -1301,7 +1313,7 @@ sub install_init_script {
             $suite eq 'yakkety' || $suite eq 'zesty' || $suite eq 'artful' ||
             $suite eq 'bionic' || $suite eq 'cosmic' || $suite eq 'disco' ||
             $suite eq 'eoan' || $suite eq 'focal' || $suite eq 'groovy'
-            || $suite eq 'hirsute'
+            || $suite eq 'hirsute' || $suite eq 'impish'
     ) {
        die "unable to install init script (system uses systemd)\n";
     } elsif ($suite eq 'trusty' || $suite eq 'precise') {
@@ -1422,6 +1434,7 @@ sub bootstrap {
     write_file ("", "$rootdir/etc/resolv.conf", 0644);
 
     if (
+       $suite eq 'impish' ||
        $suite eq 'hirsute' || $suite eq 'groovy' || $suite eq 'focal' ||
        $suite eq 'eoan' || $suite eq 'disco' || $suite eq 'cosmic' ||
        $suite eq 'bionic' || $suite eq 'artful' ||