| Current Path : /var/www/iplanru/data/www/intesco.ru/d59ed/ |
| Current File : /var/www/iplanru/data/www/intesco.ru/d59ed/debconf.tar |
etc/bash_completion.d/debconf 0000666 00000000445 15077110746 0012251 0 ustar 00 have debconf-show &&
_debconf_show()
{
local cur
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=($( compgen -W '--listowners --listdbs --db=' -- $cur ) \
$( apt-cache pkgnames -- $cur ) )
}
complete -F _debconf_show debconf-show
confmodule.sh 0000666 00000005473 15077225026 0007256 0 ustar 00 #!/bin/sh
# This is a shell library to interface to the Debian configration management
# system.
#
# This library is obsolete. Do not use.
###############################################################################
# Initialization.
# Check to see if a FrontEnd is running.
if [ ! "$DEBIAN_HAS_FRONTEND" ]; then
PERL_DL_NONLAZY=1
export PERL_DL_NONLAZY
# Ok, this is pretty crazy. Since there is no FrontEnd, this
# program execs a FrontEnd. It will then run a new copy of $0 that
# can talk to it.
exec /usr/share/debconf/frontend $0 $*
fi
# Only do this once.
if [ -z "$DEBCONF_REDIR" ]; then
# Redirect standard output to standard error. This prevents common
# mistakes by making all the output of the postinst or whatever
# script is using this library not be parsed as confmodule commands.
#
# To actually send something to standard output, send it to fd 3.
exec 3>&1 1>&2
DEBCONF_REDIR=1
export DEBCONF_REDIR
fi
# For internal use, send text to the frontend.
_command () {
echo $* >&3
}
echo "WARNING: Using deprecated debconf compatibility library."
###############################################################################
# Commands.
# Generate subroutines for all commands that don't have special handlers.
# Each command must be listed twice, once in lower case, once in upper.
# Doing that saves us a lot of calls to tr at load time. I just wish shell had
# an upper-case function.
old_opts="$@"
for i in "capb CAPB" "set SET" "reset RESET" "title TITLE" \
"input INPUT" "beginblock BEGINBLOCK" "endblock ENDBLOCK" "go GO" \
"get GET" "register REGISTER" "unregister UNREGISTER" "subst SUBST" \
"fset FSET" "fget FGET" "visible VISIBLE" "purge PURGE" \
"metaget METAGET" "exist EXIST" \
"x_loadtemplatefile X_LOADTEMPLATEFILE"; do
# Break string up into words.
set -- $i
eval "db_$1 () {
_command \"$2 \$@\"
read _RET
old_opts="\$@"
set -- \$_RET
shift
RET="\$*"
set -- \$old_opts
unset old_opts
}"
done
# $@ was clobbered above, unclobber.
set -- $old_opts
unset old_opts
# By default, 1.0 protocol version is sent to the frontend. You can
# pass in a different version to override this.
db_version () {
if [ "$1" ]; then
_command "VERSION $1"
else
_command "VERSION 1.0"
fi
# Not quite correct, but not worth fixing in obsolete code.
read -r RET
}
# Here for backwards compatibility.
db_go () {
_command "GO"
read -r RET
if [ "$RET" = 30 ]; then
RET='back'
fi
}
# Just an alias for input. It tends to make more sense to use this to display
# text, since displaying text isn't really asking for input.
db_text () {
db_input $@
}
# Cannot read a return code, since there is none and we would block.
db_stop () {
echo STOP >&3
}
frontend 0000666 00000004346 15077225026 0006327 0 ustar 00 #!/usr/bin/perl -w
# This file was preprocessed, do not edit!
use strict;
use Debconf::Db;
use Debconf::Template;
use Debconf::AutoSelect qw(:all);
use Debconf::Log qw(:all);
Debconf::Db->load;
debug developer => "frontend started";
my $frontend=make_frontend();
shift @ARGV if $ARGV[0] eq '--';
my $package;
if ($ENV{DEBCONF_PACKAGE}) {
$package=$ENV{DEBCONF_PACKAGE};
}
elsif ($ARGV[0]=~m!^.*/(.*?)\.(?:postinst|postrm|prerm)$!) {
$package=$1;
}
elsif (-e "/var/lib/dpkg/tmp.ci/control") {
open (CONTROL, "< /var/lib/dpkg/tmp.ci/control")
|| die "Debconf: unable to open control file: $!";
while (<CONTROL>) {
if (/^Package: (.*)/) {
$package=$1;
last;
}
}
close CONTROL;
if (! exists $ENV{PERL_DL_NONLAZY} || ! $ENV{PERL_DL_NONLAZY}) {
warn "PERL_DL_NONLAZY is not set, if debconf is running from a preinst script, this is not safe";
}
}
else {
$package='';
debug developer => 'Trying to find a templates file..';
sub trytemplate {
my $fn=shift;
debug developer => "Trying $fn";
if (-e $fn) {
debug developer => "I guess it is $fn";
Debconf::Template->load($fn, $package);
return 1;
}
else {
return;
}
}
unless (trytemplate("$ARGV[0].templates")) {
unless ($ARGV[0]=~m/(.*)config$/ && trytemplate("${1}templates")) {
unless ($ARGV[0]=~m!^(?:.*/)?(.*)! && trytemplate("/usr/share/debconf/templates/${1}.templates")) {
debug developer => "Couldn't find a templates file."
}
}
}
}
debug developer => "frontend running, package name is $package";
$frontend->default_title($package) if length $package;
$frontend->info(undef);
if ($ARGV[0] =~/^(.*[.\/])(?:postinst|preinst)$/) {
my $base=$1;
my $templates=$base."templates";
Debconf::Template->load($templates, $package)
if -e $templates;
my $config=$base."config";
if (-e $config) {
my $version=$ARGV[2];
if (! defined($version)) {
$version='';
}
my $confmodule=make_confmodule($config,
"configure", $version);
$confmodule->owner($package);
1 while ($confmodule->communicate);
exit $confmodule->exitcode if $confmodule->exitcode > 0;
}
}
my $confmodule=make_confmodule(@ARGV);
$confmodule->owner($package);
1 while ($confmodule->communicate);
$frontend->shutdown;
Debconf::Db->save;
exit $confmodule->exitcode;
transition_db.pl 0000666 00000004544 15077225026 0007761 0 ustar 00 #!/usr/bin/perl -w
# This file was preprocessed, do not edit!
use strict;
use Debconf::Db;
use Debconf::Question;
use Debconf::Template;
my $dir = shift || '/var/lib/debconf';
Debconf::Db->load;
our %questions;
our %templates;
foreach my $thing (qw(templates debconf)) {
if (-e "$dir/$thing.db") {
eval qq{require "$dir/$thing.db"};
print STDERR $@ if $@;
}
else {
print STDERR "Skipping $dir/$thing.db: DNE\n";
}
}
foreach my $t (keys %templates) {
$templates{$t}->{_name}=$t;
}
my $skipped=0;
foreach my $item (keys %questions) {
my @owners=grep { $_ ne '' } keys %{$questions{$item}->{owners}};
delete $questions{$item}, next unless @owners;
next unless defined $questions{$item}->{template}->{_name};
my $tname=$questions{$item}->{template}->{_name};
$skipped++, next unless defined $tname;
my $type=$templates{$tname}->{type};
my $question=Debconf::Question->new($item, pop(@owners), $type);
$question->addowner($_, '') foreach @owners;
}
my %seen_templates;
foreach my $item (keys %questions) {
my $question=Debconf::Question->get($item);
my $tname=$questions{$item}->{template}->{_name};
$skipped++, next unless defined $tname;
my $template=Debconf::Template->get($tname);
unless (defined $template) {
$template=Debconf::Template->new($tname, $item, $templates{$tname}->{type});
}
unless ($seen_templates{$template}) {
$template->clearall;
foreach my $field (keys %{$templates{$tname}}) {
next if $field=~/^_name/; # except this one we added above.
$template->$field($templates{$tname}->{$field});
}
}
if (exists $questions{$item}->{flag_isdefault}) {
if ($questions{$item}->{flag_isdefault} eq 'false') {
$question->flag('seen', 'true');
}
delete $questions{$item}->{flag_isdefault};
}
foreach my $flag (grep /^flag_/, keys %{$questions{$item}}) {
if ($questions{$item}->{$flag} eq 'true') {
$flag=~s/^flag_//;
$question->flag($flag, 'true');
}
}
foreach my $var (keys %{$questions{$item}->{variables}}) {
$question->variable($var,
$questions{$item}->{variables}->{$var});
}
if (exists $questions{$item}->{value}
and defined $questions{$item}->{value}) {
$question->value($questions{$item}->{value});
}
$question->template($questions{$item}->{template}->{_name});
}
Debconf::Db->save;
if ($skipped) {
print STDERR "While upgrading the debconf database, $skipped corrupt items were skipped.\n";
}
debconf.conf 0000666 00000000636 15077225026 0007032 0 ustar 00
Config: configdb
Templates: templatedb
Name: config
Driver: File
Mode: 644
Reject-Type: password
Filename: /var/cache/debconf/config.dat
Name: passwords
Driver: File
Mode: 600
Backup: false
Required: false
Accept-Type: password
Filename: /var/cache/debconf/passwords.dat
Name: configdb
Driver: Stack
Stack: config, passwords
Name: templatedb
Driver: File
Mode: 644
Filename: /var/cache/debconf/templates.dat
fix_db.pl 0000666 00000003724 15077225026 0006354 0 ustar 00 #!/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;
confmodule 0000666 00000005117 15077225026 0006640 0 ustar 00 #!/bin/sh
# This is a shell library to interface to the Debian configuration management
# system.
###############################################################################
# Initialization.
# Check to see if a FrontEnd is running.
if [ ! "$DEBIAN_HAS_FRONTEND" ]; then
PERL_DL_NONLAZY=1
export PERL_DL_NONLAZY
# Since there is no FrontEnd, this program execs a FrontEnd.
# It will then run a new copy of $0 that can talk to it.
if [ "$DEBCONF_USE_CDEBCONF" ]; then
exec /usr/lib/cdebconf/debconf $0 "$@"
else
exec /usr/share/debconf/frontend $0 "$@"
fi
fi
# Only do this once.
if [ -z "$DEBCONF_REDIR" ]; then
# Redirect standard output to standard error. This prevents common
# mistakes by making all the output of the postinst or whatever
# script is using this library not be parsed as confmodule commands.
#
# To actually send something to standard output, send it to fd 3.
exec 3>&1
if [ "$DEBCONF_USE_CDEBCONF" ]; then
exec 1>&5
else
exec 1>&2
fi
DEBCONF_REDIR=1
export DEBCONF_REDIR
fi
###############################################################################
# Commands.
_db_cmd () {
IFS=' ' printf '%s\n' "$*" >&3
# Set to newline to get whole line.
IFS='
' read -r _db_internal_line
# Disgusting, but it's the only good way to split the line,
# preserving all other whitespace.
RET="${_db_internal_line#[! ][ ]}"
case ${_db_internal_line%%[ ]*} in
1) # escaped data
RET="$(printf '%s' "$RET" | debconf-escape -u)"
return 0
;;
esac
return ${_db_internal_line%%[ ]*}
}
db_capb () { _db_cmd "CAPB $@"; }
db_set () { _db_cmd "SET $@"; }
db_reset () { _db_cmd "RESET $@"; }
db_title () { _db_cmd "TITLE $@"; }
db_input () { _db_cmd "INPUT $@"; }
db_beginblock () { _db_cmd "BEGINBLOCK $@"; }
db_endblock () { _db_cmd "ENDBLOCK $@"; }
db_go () { _db_cmd "GO $@"; }
db_get () { _db_cmd "GET $@"; }
db_register () { _db_cmd "REGISTER $@"; }
db_unregister () { _db_cmd "UNREGISTER $@"; }
db_subst () { _db_cmd "SUBST $@"; }
db_fset () { _db_cmd "FSET $@"; }
db_fget () { _db_cmd "FGET $@"; }
db_purge () { _db_cmd "PURGE $@"; }
db_metaget () { _db_cmd "METAGET $@"; }
db_version () { _db_cmd "VERSION $@"; }
db_clear () { _db_cmd "CLEAR $@"; }
db_settitle () { _db_cmd "SETTITLE $@"; }
db_previous_module () { _db_cmd "PREVIOUS_MODULE $@"; }
db_info () { _db_cmd "INFO $@"; }
db_progress () { _db_cmd "PROGRESS $@"; }
db_data () { _db_cmd "DATA $@"; }
db_x_loadtemplatefile () { _db_cmd "X_LOADTEMPLATEFILE $@"; }
# An old alias for input.
db_text () {
db_input $@
}
# Cannot read a return code, since there is none and it would block.
db_stop () {
echo STOP >&3
}
usr/bin/debconf 0000666 00000005453 15077331444 0007473 0 ustar 00 #!/usr/bin/perl -w
=head1 NAME
debconf - run a debconf-using program
=cut
=head1 SYNOPSIS
debconf [options] command [args]
=head1 DESCRIPTION
Debconf is a configuration system for Debian packages. For a debconf
overview and documentation for sysadmins, see L<debconf(7)> (in the
debconf-doc package).
The B<debconf> program runs a program under debconf's control, setting it up
to talk with debconf on stdio. The program's output is expected to be debconf
protocol commands, and it is expected to read result codes on stdin. See
L<debconf-devel(7)> for details about the debconf protocol.
The command to be run under debconf must be specified in a way that will
let your PATH find it.
This command is not the usual way that debconf is used. It's more typical
for debconf to be used via L<dpkg-preconfigure(8)> or L<dpkg-reconfigure(8)>.
=head1 OPTIONS
=over 4
=item B<-o>I<package>, B<--owner=>I<package>
Tell debconf what package the command it is running is a part of. This is
necessary to get ownership of registered questions right, and to support
unregister and purge commands properly.
=item B<-f>I<type>, B<--frontend=>I<type>
Select the frontend to use.
=item B<-p>I<value>, B<--priority=>I<value>
Specify the minimum priority of question that will be displayed.
=item B<--terse>
Enables terse output mode. This affects only some frontends.
=back
=head1 EXAMPLES
To debug a shell script that uses debconf, you might use:
DEBCONF_DEBUG=developer debconf my-shell-prog
Or, you might use this:
debconf --frontend=readline sh -x my-shell-prog
=head1 SEE ALSO
L<debconf-devel(7)>, L<debconf(7)>
=cut
use strict;
use Debconf::Db;
use Debconf::AutoSelect qw(:all);
use Debconf::Gettext;
use Debconf::Config;
# Find the end of the options for this command, and the beginning of the
# command to run, which may have arguments. Break those arguments out.
my (@argv, @command);
for (my $x=0; $x <= $#ARGV; $x++) {
if ($ARGV[$x] =~ /^-(o|f|p|-(owner|frontend|priority))$/) {
push @argv, $ARGV[$x++];
push @argv, $ARGV[$x] if defined $ARGV[$x]; # skip option argument
next;
}
elsif ($ARGV[$x] =~ /^-/) {
push @argv, $ARGV[$x];
}
else {
# end of arguments, start of command
@command=@ARGV[$x..$#ARGV];
last;
}
}
@ARGV=@argv;
my $usage = gettext("Usage: debconf [options] command [args]");
my $owner='';
Debconf::Config->getopt($usage.gettext(qq{
-o, --owner=package Set the package that owns the command.}),
"o|owner=s" => \$owner,
);
die "$usage\n" unless @command;
Debconf::Db->load;
my $frontend=make_frontend();
my $confmodule=make_confmodule(@command);
$confmodule->owner($owner) if length $owner;
1 while ($confmodule->communicate);
my $code=$confmodule->exitcode;
$frontend->shutdown;
$confmodule->finish;
Debconf::Db->save;
exit $code;
=head1 AUTHOR
Joey Hess <joeyh@debian.org>
=cut