ostype => "ubuntu-22.04",
origin => 'ubuntu',
},
+ 'kinetic' => {
+ ostype => "ubuntu-22.10",
+ origin => 'ubuntu',
+ },
};
sub get_suite_info {
print $writer $input if defined $input;
close $writer;
- my $select = new IO::Select;
+ my $select = IO::Select->new();
$select->add ($reader);
$select->add ($error);
my ($class, $config) = @_;
$class = ref ($class) || $class;
-
- my $self = {};
-
$config = read_config ('dab.conf') if !$config;
- $self->{config} = $config;
-
+ my $self = {
+ config => $config,
+ };
bless $self, $class;
$self->{logfile} = "logfile";
- $self->{logfd} = IO::File->new (">>$self->{logfile}") ||
- die "unable to open log file";
-
- my $arch = $config->{architecture};
- die "no 'architecture' specified\n" if !$arch;
+ $self->{logfd} = IO::File->new (">>$self->{logfile}") || die "unable to open log file";
- die "unsupported architecture '$arch'\n"
- if $arch !~ m/^(i386|amd64)$/;
+ my $arch = $config->{architecture} ||die "no 'architecture' specified\n";
+ die "unsupported architecture '$arch'\n" if $arch !~ m/^(i386|amd64)$/;
my $suite = $config->{suite} || die "no 'suite' specified\n";
$config->{ostype} = $suiteinfo->{ostype};
my $name = $config->{name} || die "no 'name' specified\n";
+ $name =~ m/^[a-z][0-9a-z\-\*\.]+$/ || die "illegal characters in name '$name'\n";
- $name =~ m/^[a-z][0-9a-z\-\*\.]+$/ ||
- die "illegal characters in name '$name'\n";
-
+ # assert required dab.conf keys exist
+ for my $key (qw(version section headline maintainer)) {
+ die "no '$key' specified\n" if !$config->{$key};
+ }
my $version = $config->{version};
- die "no 'version' specified\n" if !$version;
- die "no 'section' specified\n" if !$config->{section};
- die "no 'description' specified\n" if !$config->{headline};
- die "no 'maintainer' specified\n" if !$config->{maintainer};
if ($name =~ m/^$config->{ostype}/) {
$self->{targetname} = "${name}_${version}_$config->{architecture}";
} else {
- $self->{targetname} = "$config->{ostype}-${name}_" .
- "${version}_$config->{architecture}";
+ $self->{targetname} = "$config->{ostype}-${name}_${version}_$config->{architecture}";
}
if (!$config->{source}) {
'http://ftp.debian.org/debian SUITE main contrib',
'http://security.debian.org SUITE/updates main contrib',
);
- } elsif ($suite eq 'bullseye' || $suite eq 'bookworm') {
+ } elsif ($suite =~ /^(?:bullseye|bookworm|trixie|forky)$/) {
push @{$config->{source}}, (
- "http://ftp.debian.org/debian SUITE main contrib",
- "http://ftp.debian.org/debian SUITE-updates main contrib",
+ "http://deb.debian.org/debian SUITE main contrib",
+ "http://deb.debian.org/debian SUITE-updates main contrib",
"http://security.debian.org SUITE-security main contrib",
);
} else {
die "syntax error in mirror spezification '$m'\n";
}
}
-
$self->{sources} = $sources;
-
$self->{infodir} = "info";
$self->__allocate_ve();
$self->{cachedir} = ($config->{cachedir} || 'cache') . "/$suite";;
my $incl = [qw (less ssh openssh-server logrotate)];
-
my $excl = [qw (modutils reiserfsprogs ppp pppconfig pppoe pppoeconf nfs-common mtools ntp)];
- # ubuntu has too many dependencies on udev, so
- # we cannot exclude it (instead we disable udevd)
-
+ # ubuntu has too many dependencies on udev, so we cannot exclude it (instead we disable udevd)
if (lc($suiteinfo->{origin}) eq 'ubuntu' && $suiteinfo->{flags}->{systemd}) {
push @$incl, 'isc-dhcp-client';
- push @$excl, qw(libmodule-build-perl plymouth plymouth-theme-ubuntu-text powermgmt-base);
+ push @$excl, qw(libmodule-build-perl libdrm-common libdrm2 libplymouth5 plymouth plymouth-theme-ubuntu-text powermgmt-base);
if ($suite eq 'jammy') {
push @$excl, qw(fuse); # avoid fuse2 <-> fuse3 conflict
}
my $pkgfilelist = "$rootdir/var/lib/dpkg/status";
local $/ = '';
- open (PKGLST, "<$pkgfilelist") or die "unable to open '$pkgfilelist' - $!";
+ open(my $PKGLST, '<', $pkgfilelist) or die "unable to open '$pkgfilelist' - $!";
my $pkglist = {};
- while (my $rec = <PKGLST>) {
+ while (my $rec = <$PKGLST>) {
chomp $rec;
$rec =~ s/\n\s+/ /g;
$rec .= "\n";
}
}
- close (PKGLST);
+ close ($PKGLST);
return $pkglist;
}
my ($pkginfo, $filename, $src) = @_;
local $/ = '';
- open (PKGLST, "<$filename") ||
- die "unable to open '$filename'";
+ open(my $PKGLST, '<', $filename) or die "unable to open '$filename' - $!";
- while (my $rec = <PKGLST>) {
+ while (my $rec = <$PKGLST>) {
$rec =~ s/\n\s+/ /g;
chomp $rec;
$rec .= "\n";
}
}
- close (PKGLST);
+ close ($PKGLST);
}
sub pkginfo {
my $memlimit = $opts->{memlimit};
my $rootdir = $self->{rootfs};
+ my $suite = $self->{config}->{suite};
- my $required = $self->compute_required([qw(php php-cli libapache2-mod-php php-gd)]);
+ my $base_set = [qw(php-cli libapache2-mod-php php-gd)];
+ if ($suite =~ /(?:squeeze|wheezy|jessie)$/) {
+ $self->logmsg("WARN: using EOL php release on EOL suite");
+ $base_set = [qw(php5 php5-cli libapache2-mod-php5 php5-gd)];
+ }
+ my $required = $self->compute_required($base_set);
$self->cache_packages ($required);
$self->ve_dpkg ('install', @$required);
if ($memlimit) {
- $self->run_command ("sed -e 's/^\\s*memory_limit\\s*=.*;/memory_limit = ${memlimit}M;/' -i $rootdir/etc/php5/apache2/php.ini");
+ my $sed_cmd = ['sed', '-e', "s/^\\s*memory_limit\\s*=.*;/memory_limit = ${memlimit}M;/", '-i'];
+ if ($suite =~ /(?:squeeze|wheezy|jessie)$/) {
+ push @$sed_cmd, "$rootdir/etc/php5/apache2/php.ini";
+ } else {
+ my $found = 0;
+ for my $fn (glob("'${rootdir}/etc/php/*/apache2/php.ini'")) {
+ push @$sed_cmd, "$rootdir/$fn";
+ $found = 1;
+ }
+ if (!$found) {
+ warn "WARN: did not found any php.ini to set the memlimit!\n";
+ return;
+ }
+ }
+ $self->run_command($sed_cmd);
}
}