[devel] Q: Netscape Plugins packaging policy.

Alexey Gladkov legion на altlinux.ru
Пн Авг 9 14:46:23 MSD 2004


Приветствую!

В сизифе существует проблема связанная с упаковкой плагинов
поддерживающих единый Netscape Plugin API (NPAPI)[1].
Новость о поддержке этого формеата была опубликована 2004-06-30 [2].

В данный момент все плагины устанавливаюся в директорию пренадлежащую
пакету mozilla - /usr/lib/mozilla/plugins. Это вызывает понятные
затруднения в пакетировании mozilla т.к. сейчас отстутствует
возможность перемещать mozilla по файловой системе. Кроме того нельзя
гарантировать, что все плагины находящиеся в этой директории будут
работать со всеми браузерами поддерживающимим NPAPI (Например, я могу
написать плагин, который будет обрабатывать запросы с mime-типом
"application/vnd.mozilla.xul+xml". Я сомневаюсь, что Opera
поддерживает этот mimetype).
Следовательно, необходимо создать место для плагинов поддерживающих
NPAPI и явно не привязанных к кокретному браузеру. Эта директория
должна не принадлежать ни одному из браузеров, но требоваться ими.
Вместе с тем, необходимо определить директории, где можно будет
хранить browser-speciffic плагины (если такие появятся).

Как обстаят дела сейчас. Так как все браузеры в сизифе, поддерживающие
NPAPI, уже просматривают директорию /usr/lib/mozilla/plugins, она была
  выделена в отдельный пакет. Все плагины устанавливаются в эту
директорию и требуют наличия этого пакета с директорией. Никаких
других дерикторий для храения плагинов нет.
Сейчас konquieror ищет плагины в:
$HOME/.netscape/plugins
/usr/lib64/browser-plugins
/usr/lib/browser-plugins
/usr/local/lib/netscape/plugins
/usr/lib/netscape/plugins
/usr/lib/mozilla/plugins
... и т.д. ... список очень большой, если хотите можете увидеть его
сами, если у вас есть KDE.
В комерческих браузерах (opera и netscape) директория
/usr/lib/mozilla/plugins _всегда_ игнорировалась.

Вот что я предлагаю по этому поводу:
1) Создать отдельную директорию для хранения плагинов поддерживающих
NPAPI. Как наиболее вероятное название - /usr/lib/npapi-plugins. В эту
директорию устанавливаются плагины не привязанные к конкретному
браузеру. Ее нужно запакаковать отдельно. И создать devel пакет с
макросами для упрощения пакетирования плагинов.

2) для каждого из браузеров выделить директорию, где будут находится
плагины завязанные на конкретный браузер.
Для mozilla это /usr/lib/mozilla/plugins;
Для galeon это /usr/lib/galeon/plugins;
Для opera это /<INSTALL_DIR>/opera/plugins.
... собственно эти директории могут быть специфичны для каждого
браузера и могут находится соответственно в browser-speciffic местах.

В этом случае поиск плагинов будет сводится к просмотру лишь одной 
общей директории.
Я просмотрел и коммерческие браузеры (Opera7.x, Netscape 7.1)
поддерживающие NPAPI и выяснил что поддержка этого решения может быть
добавлена без каких-либо усилий.

Opera [4]:
1) через переменные окружения OPERA_PLUGIN_PATH или NPX_PLUGIN_PATH
2) путем добавления в кофигурационный файл "plugins.ini"
соответствующих строчек.

Netscape [1,3]:
Тут все понятно. Он использует тот же механизм, что и мозилла 1.4 .

Как видно то, что сделано сейчас - это почти тоже что и предлагаю я.
Но разница лишь в том, чтобы не завязываться на директорию
принадлежащую какому-либо из браузеров. А также возможность
устанавливать плагины как под конкретный браузер, так и для всех вместе.

[1] http://devedge.netscape.com/library/manuals/2002/plugin/1.0/
[2] http://www.mozilla.org/press/mozilla-2004-06-30.html
[3] http://www.mozilla.org/projects/plugins/
[4] http://www.opera.com/linux/docs/plugins/install/index.dml
-- 
Rgrds, legion




Подробная информация о списке рассылки Devel