Re: debconf packets which doesn't use debconf

2007-07-02 Пенетрантность Dmitri V. Ivanov
On Wed, Jun 27, 2007 at 10:51:14AM +0400, Dmitry E. Oboukhov wrote:
 On 10:38 Wed 27 Jun , Vadim Vatlin wrote:
  Есть пакет samba.

Происходит путаница. Какой версии пакет вы установили? Из etch?
3.0.24-6etch4? Уточните пожалуйста.
 
  делаю:
  shell echo samba samba/generate_smbpasswd boolean false | 
  debconf-set-selections
 
  проверяю:
  shell debconf-get-selections | grep generate_smbpasswd
  samba   samba/generate_smbpasswdboolean 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

Этой строки в 3.0.24-6etch4 я не вижу.

   if [ $RET = false ]  [ -f $FILE ]; then

В этой строке в 3.0.24-6etch4 отсутствует '[ $RET = false ]  '
То есть даже если seen == true будет выполняться то, что ниже.

 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
 
 
 по ходу надо не только false поставить но и некоторые файлы создать
 попробовать

Различия между скриптами кажется лежат тут:

http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=config.patch;att=1;bug=350926

в unstable починили...

WBR
Dmitri Ivanov


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: debconf packets which doesn't use debconf

2007-06-28 Пенетрантность Vadim Vatlin
On 19:07:40  Июн 27, 2007, Dmitri V. Ivanov wrote:
 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_smbpasswdboolean 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 похоже не имеют механизма передачи
 этого флага (в формате не предусмотрен), а он вообще-то нужен. Или я 
 ошибаюсь? 
Хм.. Я не представляю когда может понадобиться c помощью 
debconf-(set|get)-selections
получать/устанавливать флаг seen. 
Да и в этом случае _лично_ мне не понятна логика человека сопровождающего пакет.
Зачем проверять флаг seen если можно напрямую получить значение ответа
на вопрос samba/generate_smbpasswd и уже из этого исходить.

-- 
Ватлин В.Г.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: debconf packets which doesn't use debconf

2007-06-28 Пенетрантность Dmitri V. Ivanov
On Thu, Jun 28, 2007 at 03:05:30PM +0400, Vadim Vatlin wrote:
 db_fget samba/generate_smbpasswd seen
  
  Вот здесь мы проверили стоит ли у нас на переменной
  samba/generate_smbpasswd флаг seen (что пользователь уже отвечал на этот
  вопрос). debconf-(set|get)-selections похоже не имеют механизма передачи
  этого флага (в формате не предусмотрен), а он вообще-то нужен. Или я 
  ошибаюсь? 
 Хм.. Я не представляю когда может понадобиться c помощью 
 debconf-(set|get)-selections
 получать/устанавливать флаг seen. 
 Да и в этом случае _лично_ мне не понятна логика человека сопровождающего 
 пакет.
 Зачем проверять флаг seen если можно напрямую получить значение ответа
 на вопрос samba/generate_smbpasswd и уже из этого исходить.

Проблема в том, что у переменной может быть значение по умолчанию или то
значение, которое подставил пользователь. Иногда эти ситуации хочется
различать (вопрос мог быть пользователю просто не задан на основании
приоритета, используемого frontend-а или по результатам предыдущих
ответов). Переменная не обязательно принадлежит к одному пакету.
Проверять seen - рекомендуемый путь (может у maintainer-а были и другие
соображения, но чтобы это понять надо глубоко копаться).

Чтобы понять почему именно такой подход (проверка seen) необходим в
большинстве случаев посмотрите вывод debconf-show console-data
(переменные с флагом seen отмечены звездочкой). Если вас это убедит
IMHO стоит слать bugreport на debconf-utils (а maintainer-а пакета samba
не беспокоить - он все правильно сделал(tm) в отношении этой
переменной).

Я с ходу не готов сказать будет ли достаточным выводить с помощью
debconf-get-selections только переменные с установленным флагом seen, а
в debconf-set-selections его просто устанавливать для всех переменных,
которые записываются в базу или изменять формат файла (например
добавлять эту самую звездочку перед именем переменной). Мне кажется, что
это серьезная и крайне неприятная ошибка для тех, кто захочет поставить
много одинаковых машин.

Если вы не хотите отсылать bugreport на debconf прошу дать знать (отошлю
я на своем олбанском).

Исправление этой ошибки как мне кажется решит замеченную вами проблему.

WBR
Dmitri Ivanov


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: debconf packets which doesn't use debconf

2007-06-28 Пенетрантность Vadim Vatlin
On 20:55:03  Июн 28, 2007, Dmitri V. Ivanov wrote:
 Проблема в том, что у переменной может быть значение по умолчанию или то
Что за значение по умолчанию? Не встречал такого. 
IMHO
Либо пользователь ответил на вопрос, либо в ответе пусто.
(ответ установленный с помощью db_set или debconf-set-selections думаю
стоит рассматривать как ответ пользователя).
И тогда, на основании либо пусто, либо ответ 
и следует дальше принимать решения, а не на основе флага seen.

Я не прав?

 Проверять seen - рекомендуемый путь
не подскажете где прочитать об этом можно?

 Если вы не хотите отсылать bugreport на debconf прошу дать знать (отошлю
 я на своем олбанском).
Отошлите лучше вы, думаю у вас лучше получится объяснить.

-- 
Ватлин В.Г.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: debconf packets which doesn't use debconf

2007-06-28 Пенетрантность Vadim Vatlin
On 00:06:35  Июн 29, 2007, Vadim Vatlin wrote:
 On 20:55:03  Июн 28, 2007, Dmitri V. Ivanov wrote:
  Проблема в том, что у переменной может быть значение по умолчанию или то
 Что за значение по умолчанию? Не встречал такого. 
Извиняюсь... Не знал, что параметр Default не только предлагает
ответ по умолчанию, но и устанавливает его в случае если вопрос не
показывается.

Тогда, скорее всего вы правы.

-- 
Ватлин В.Г.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: debconf packets which doesn't use debconf

2007-06-27 Пенетрантность Vadim Vatlin
On 10:51:14  Июн 27, 2007, Dmitry E. Oboukhov wrote:
 по ходу надо не только false поставить но и некоторые файлы создать
 попробовать
хех. ну да.

Пожалуй сочиню bugreport, а то поведеиние по-мойму не совсем интуитивно
понятное.

-- 
Ватлин В.Г.
Системный администратор
Т.Д. Шемякиных


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: debconf packets which doesn't use debconf

2007-06-27 Пенетрантность Dmitri V. Ivanov
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_smbpasswdboolean 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


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]