Re: debconf & packets which doesn't use debconf
On Wed, Jun 27, 2007 at 10:51:14AM +0400, Dmitry E. Oboukhov wrote:
> On 10:38 Wed 27 Jun , Vadim Vatlin wrote:
> > Самбу я пока не устанавливаю.
>
> > делаю:
> > shell> echo "samba samba/generate_smbpasswd boolean false" | debconf-set-selections
>
> > проверяю:
> > shell> debconf-get-selections | grep generate_smbpasswd
> > samba samba/generate_smbpasswd boolean false
>
> > aptitude install samba
> > И он мне вкачивает всех пользователей из /etc/passwd,
> > а вопрос generate_smbpasswd получает значение true.
>
> > Это нормальное поведение или bugreport писать?
> ага похоже на то
> вот глянь что у них скрипт делает:
>
> # We vary the priority of the next question depending on whether
> # the password database already exists...
> if [ -e /etc/samba/smbpasswd -o -e /var/lib/samba/passdb.tdb ]; then
> PRIORITY="low"
> else
> # If 'encrypt passwords' is true in smb.conf, and smbpasswd
> # does not exist, default to yes here.
> FILE=/etc/samba/smb.conf
> db_fget samba/generate_smbpasswd seen
Вот здесь мы проверили стоит ли у нас на переменной
samba/generate_smbpasswd флаг seen (что пользователь уже отвечал на этот
вопрос). debconf-(set|get)-selections похоже не имеют механизма передачи
этого флага (в формате не предусмотрен), а он вообще-то нужен. Или я ошибаюсь?
Тогда багу/отсутствующую фичу нужно добавлять в debconf-(set|get)-selections
IMHO. Видимо с dpkg-preconfigure эта бага не вылезет.
> if [ "$RET" = "false" ] && [ -f "$FILE" ]; then
> ENCRYPT=`smbconf_retr "encrypt passwords"`
> if [ "$ENCRYPT" ]; then
> ENCRYPT=`echo $ENCRYPT | tr '[A-Z]' '[a-z]'`
> if [ "$ENCRYPT" = "yes" ]; then
> ENCRYPT=true
> fi
> if [ "$ENCRYPT" = "no" ]; then
> ENCRYPT=false
> fi
> fi
> db_set samba/generate_smbpasswd "$ENCRYPT"
> fi
> PRIORITY="medium"
> fi
>
Кусок выше при передаче метаданных "как надо" не выполнялся бы.
> db_input $PRIORITY samba/generate_smbpasswd || true
> db_go
WBR
Dmitri Ivanov
Reply to: