Bug 8859

Summary: Ошибка в файле /etc/dictd.order
Product: Sisyphus Reporter: serpiph <serpiph>
Component: dictdAssignee: Alexey Dyachenko <alexd>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: cheusov, lav, the_arioch, wrar
Version: unstable   
Hardware: all   
OS: Linux   

Description serpiph 2006-01-17 13:03:52 MSK
Для того, чтобы в список баз данных заносились словари из каталога, необходимо в
файле /etc/dictd.order прописывать каталог с окончанием на слеш. То есть вместо

/usr/share/dictd

надо вписать

/usr/share/dictd/


Steps to Reproduce:
1.Установить все словари для dictd 
2.dictdconfig -w
Actual Results:  
В /var/lib/dictd/db.list только четыре словаря
engcom
foldoc
vera
database web1913

Expected Results:  
После добавления слеша в конец каталога все словари из /usr/share/dictd добавились.
Comment 1 serpiph 2006-01-17 13:05:25 MSK
*** Bug 8858 has been marked as a duplicate of this bug. ***
Comment 2 burov dmitry 2006-01-17 21:12:16 MSK
Промахнулся :-)
----------

Вообще говоря непонятно, почему такая реакция. По крайней мере не должно быть 
такого. dictd.order не замена dictd.conf и даже файлы/папки не перечисленные в .
order но перечисленные в .conf должныы подключаться IMHO.
Приведенный здесь dictd.order - не блохой test-case :)

Еше неприсятность: dictdconfig что на консоль, что в файлы, выводит отсылку к 
man 8 dictdconfig - а самого файла для man нету :(

Вышла, кстати, новая версия: ftp://ftp.dict.org/pub/dict/dictd-1.9.15.tar.gz
Да и RFC давно обновился: ftp://ftp.isi.edu/in-notes/rfc2229.txt


Comment 3 serpiph 2006-01-18 13:24:06 MSK
(In reply to comment #2)
> Промахнулся :-)
> ----------
> 
> Вообще говоря непонятно, почему такая реакция. По крайней мере не должно быть 
> такого. dictd.order не замена dictd.conf и даже файлы/папки не перечисленные в .
> order но перечисленные в .conf должныы подключаться IMHO.
> Приведенный здесь dictd.order - не блохой test-case :)

Нет, всё правильно. Дело в том, что /etc/dictd.order используется программой
dictdconfig для создания файла /var/lib/dictd/db.list (откройте этот файл и
прочтите внимательно). Вот уже в этом файле все базы словарей и прописаны. И
именно в этот файл (через /etc/dictd.conf) и лезет dictd, а не в /etc/dictd.order:

# Database section here:

include /var/lib/dictd/db.list

> Еше неприсятность: dictdconfig что на консоль, что в файлы, выводит отсылку к 
> man 8 dictdconfig - а самого файла для man нету :(

Это да, непонятно, в чём дело.

> Вышла, кстати, новая версия: ftp://ftp.dict.org/pub/dict/dictd-1.9.15.tar.gz
> Да и RFC давно обновился: ftp://ftp.isi.edu/in-notes/rfc2229.txt

Comment 4 Andrey Rahmatullin 2006-03-04 18:07:54 MSK
wrar@wrars-comp ~ $ sudo strace -etrace=file dictdconfig -w
[...]
stat64("/etc/dictd.order", {st_mode=S_IFREG|0644, st_size=131, ...}) = 0
open("/etc/dictd.order", O_RDONLY|O_LARGEFILE) = 3
stat64("/usr/share/dictd/wn.dict.dz", 0x804b158) = -1 ENOENT (No such file or 
directory)
stat64("/usr/share/dictd/wn.dict", 0x804b158) = -1 ENOENT (No such file or 
directory)
stat64("/usr/share/dictd/engcom.dict.dz", {st_mode=S_IFREG|0644, st_size=
209247, ...}) = 0
stat64("/usr/share/dictd/engcom.dict.dz", {st_mode=S_IFREG|0644, st_size=
209247, ...}) = 0
stat64("/usr/share/dictd/engcom.index", {st_mode=S_IFREG|0644, st_size=35725, .
..}) = 0
stat64("/usr/share/dictd/foldoc.dict.dz", {st_mode=S_IFREG|0644, st_size=
2105578, ...}) = 0
stat64("/usr/share/dictd/foldoc.dict.dz", {st_mode=S_IFREG|0644, st_size=
2105578, ...}) = 0
stat64("/usr/share/dictd/foldoc.index", {st_mode=S_IFREG|0644, st_size=281456, 
...}) = 0
stat64("/usr/share/dictd/vera.dict.dz", 0x804b158) = -1 ENOENT (No such file or 
directory)
stat64("/usr/share/dictd/vera.dict", 0x804b158) = -1 ENOENT (No such file or 
directory)
stat64("/usr/share/dictd/web1913.dict.dz", 0x804b158) = -1 ENOENT (No such file 
or directory)
stat64("/usr/share/dictd/web1913.dict", 0x804b158) = -1 ENOENT (No such file or 
directory)
stat64("/usr/share/dictd/jargon.dict.dz", {st_mode=S_IFREG|0644, st_size=
636409, ...}) = 0
stat64("/usr/share/dictd/jargon.dict.dz", {st_mode=S_IFREG|0644, st_size=
636409, ...}) = 0
stat64("/usr/share/dictd/jargon.index", {st_mode=S_IFREG|0644, st_size=43202, .
..}) = 0
stat64("/usr/share/dictd/elements.dict.dz", 0x804b158) = -1 ENOENT (No such 
file or directory)
stat64("/usr/share/dictd/elements.dict", 0x804b158) = -1 ENOENT (No such file 
or directory)
stat64("/usr/share/dictd/easton.dict.dz", 0x804b158) = -1 ENOENT (No such file 
or directory)
stat64("/usr/share/dictd/easton.dict", 0x804b158) = -1 ENOENT (No such file or 
directory)
stat64("/usr/share/dictd/hitchcock.dict.dz", 0x804b158) = -1 ENOENT (No such 
file or directory)
stat64("/usr/share/dictd/hitchcock.dict", 0x804b158) = -1 ENOENT (No such file 
or directory)
stat64("/usr/share/dictd/gazetteer.dict.dz", 0x804b158) = -1 ENOENT (No such 
file or directory)
stat64("/usr/share/dictd/gazetteer.dict", 0x804b158) = -1 ENOENT (No such file 
or directory)
stat64("/usr/share/dictd.dict.dz", 0x804b158) = -1 ENOENT (No such file or 
directory)
stat64("/usr/share/dictd.dict", 0x804b158) = -1 ENOENT (No such file or 
directory)
open("/var/lib/dictd/db.list", O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE, 0666) = 4


И как это называется? Оно действительно обрабатывает только словари, упомянутые 
в dictd.order.

Хотел бы я знать, после чего это началось.
Comment 5 serpiph 2006-03-06 11:54:00 MSK
(In reply to comment #4)
...
> И как это называется? Оно действительно обрабатывает только словари, упомянутые 
> в dictd.order.
> 
> Хотел бы я знать, после чего это началось.
> 

А что смущает? Программа dictdconfig - самостоятельная программа (если почитать
информацию в инете) со своим файлом настройки. И это идёт с самого начала
существоввания этой программы. А вот чего мантйнер не исправит этот ляп в
конфигурационном файле вот уже полтора месяца - никак не могу взять в голову,
хотя это исправляется в две секунды. Для чего тогда bugzilla? Очередной список
рассылки или служба отслеживания ошибок?


АУ, МАНТЕЙНЕР!!!
Comment 6 Vitaly Lipatov 2006-03-07 10:34:47 MSK
Исправлено в 1:1.9.15-alt1