Apache/2.4.7 (Ubuntu) Linux sman1baleendah 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) safemode : OFF MySQL: ON | Perl: ON | cURL: OFF | WGet: ON > / usr / share / debconf / | server ip : 172.67.156.115 your ip : 108.162.242.39 H O M E |
Filename | /usr/share/debconf/fix_db.pl |
Size | 1.96 kb |
Permission | rwxr-xr-x |
Owner | root : root |
Create time | 27-Apr-2025 09:50 |
Last modified | 23-Feb-2014 22:30 |
Last accessed | 05-Jul-2025 22:49 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
#!/usr/bin/perl -w
# This file was preprocessed, do not edit!
use strict;
use Debconf::Db;
use Debconf::Log q{warn};
Debconf::Db->load;
if (! @ARGV || $ARGV[0] ne 'end') {
my $fix=0;
my $ok;
my $counter=0;
do {
$ok=1;
my %templates=();
my $ti=$Debconf::Db::templates->iterator;
while (my $t=$ti->iterate) {
$templates{$t}=Debconf::Template->get($t);
}
my %questions=();
my $qi=Debconf::Question->iterator;
while (my $q=$qi->iterate) {
if (! defined $q->template) {
warn "question \"".$q->name."\" has no template field; removing it.";
$q->addowner("killme",""); # make sure it has one owner at least, so removal is triggered
foreach my $owner (split(/, /, $q->owners)) {
$q->removeowner($owner);
}
$ok=0;
$fix=1;
}
elsif (! exists $templates{$q->template->template}) {
warn "question \"".$q->name."\" uses nonexistant template ".$q->template->template."; removing it.";
foreach my $owner (split(/, /, $q->owners)) {
$q->removeowner($owner);
}
$ok=0;
$fix=1;
}
else {
$questions{$q->name}=$q;
}
}
foreach my $t (keys %templates) {
my @owners=$Debconf::Db::templates->owners($t);
if (! @owners) {
warn "template \"$t\" has no owners; removing it.";
$Debconf::Db::templates->addowner($t, "killme","");
$Debconf::Db::templates->removeowner($t, "killme");
$fix=1;
}
foreach my $q (@owners) {
if (! exists $questions{$q}) {
warn "template \"$t\" claims to be used by nonexistant question \"$q\"; removing that.";
$Debconf::Db::templates->removeowner($t, $q);
$ok=0;
$fix=1;
}
}
}
$counter++;
} until ($ok || $counter > 20);
if ($fix) {
Debconf::Db->save;
exec($0, "end");
die "exec of self failed";
}
}
foreach my $templatefile (glob("/var/lib/dpkg/info/*.templates")) {
my ($package) = $templatefile =~ m:/var/lib/dpkg/info/(.*?).templates:;
Debconf::Template->load($templatefile, $package);
}
Debconf::Db->save;
# This file was preprocessed, do not edit!
use strict;
use Debconf::Db;
use Debconf::Log q{warn};
Debconf::Db->load;
if (! @ARGV || $ARGV[0] ne 'end') {
my $fix=0;
my $ok;
my $counter=0;
do {
$ok=1;
my %templates=();
my $ti=$Debconf::Db::templates->iterator;
while (my $t=$ti->iterate) {
$templates{$t}=Debconf::Template->get($t);
}
my %questions=();
my $qi=Debconf::Question->iterator;
while (my $q=$qi->iterate) {
if (! defined $q->template) {
warn "question \"".$q->name."\" has no template field; removing it.";
$q->addowner("killme",""); # make sure it has one owner at least, so removal is triggered
foreach my $owner (split(/, /, $q->owners)) {
$q->removeowner($owner);
}
$ok=0;
$fix=1;
}
elsif (! exists $templates{$q->template->template}) {
warn "question \"".$q->name."\" uses nonexistant template ".$q->template->template."; removing it.";
foreach my $owner (split(/, /, $q->owners)) {
$q->removeowner($owner);
}
$ok=0;
$fix=1;
}
else {
$questions{$q->name}=$q;
}
}
foreach my $t (keys %templates) {
my @owners=$Debconf::Db::templates->owners($t);
if (! @owners) {
warn "template \"$t\" has no owners; removing it.";
$Debconf::Db::templates->addowner($t, "killme","");
$Debconf::Db::templates->removeowner($t, "killme");
$fix=1;
}
foreach my $q (@owners) {
if (! exists $questions{$q}) {
warn "template \"$t\" claims to be used by nonexistant question \"$q\"; removing that.";
$Debconf::Db::templates->removeowner($t, $q);
$ok=0;
$fix=1;
}
}
}
$counter++;
} until ($ok || $counter > 20);
if ($fix) {
Debconf::Db->save;
exec($0, "end");
die "exec of self failed";
}
}
foreach my $templatefile (glob("/var/lib/dpkg/info/*.templates")) {
my ($package) = $templatefile =~ m:/var/lib/dpkg/info/(.*?).templates:;
Debconf::Template->load($templatefile, $package);
}
Debconf::Db->save;