Как стать автором
Обновить

Mozilla-vlc-plugin для Windows в формате xpi

Время на прочтение 3 мин
Количество просмотров 13K
Есть такая класная штука, mozilla-vlc-plugin называется. Но чтобы поставить его под Windows нам надо поставить целый vlc, да еще и не забыть отметить плагин в списке устанавливаемых компонентов. Возможность (ди и желание тоже) ставить приложение целиком есть не всегда, а вот плагин для firefox в формате xpi был бы в самый раз. Разработчики vlc ничего сами не собирают, поэтому все придется делать самим. Приступим.

Я делал все под Kubuntu 9.10, а работать итоговый продукт должен под Windows соответсвенно заранее рекомендую найти подопытную Windows машину, хотя и wine может сгодиться.
Для начала качаем свежую версию исходников vlc с сайта производителя. Я качал 1.0.6 вот отсюда (более свежая версия из репозитария git у меня работать отказалась).
Было найдено руководство на wiki VideoLan: http://wiki.videolan.org/Win32Compile, которое очень здорово помогло. Кроме того в листе рассылки vlc-devel был найден необходимый патч, который в дальнейшем необходимо применить к исходникам.
Теперь ставим кросс-компилятор с поддержкой mingw32, в (k)ubuntu все совсем просто:

apt-get install mingw32 mingw32-binutils

Сами исходники скачаны, теперь качаем скомпилированные библиотеки, которые необходимы для сборки vlc: http://people.videolan.org/~jb/Contribs/. Качаем в соответсвии с установленной версией mingw32. Распаковываем в корень командой вида:

tar jxf contrib-20061122-win32-bin-gcc-3.4.5-only.tar.bz2 -C /

Далее мы будем использовать эти библиотеки для сборки, для удобства экспортируем переменную:

export CONTRIBS=/usr/win32

Далее идем в каталог с исходными кодами vlc и применяем патч скачанный в листе рассылке. Этот патч создает файл install.rdf, который необходим для того, чтобы наш плагим был совместим с 3-й версией firefox. Кроме того этот патч создает цель сборки пакета с плагином и вносит несколько исправлений в vlcplugin.cpp.
Перед применением патча в нем нужно в блоке, который создает install.rdf заменить максимальную версию firefox с 3.5.* на 3.6.* иначе плагин под ФФ 3.6 работать не будет. Либо сделать это уже в созданном install.rdf.in.
Далее действуем согласно инструкции с VideoLan Wiki, идем в каталог и исходниками vlc и выполняем:

./bootstrap && \
export PKG_CONFIG_LIBDIR=$CONTRIBS/lib/pkgconfig PKG_CONFIG_PATH=$CONTRIBS/lib/pkgconfig \
CPPFLAGS="-I$CONTRIBS/include -I$CONTRIBS/include/ebml" CXXCPP=i586-mingw32msvc-cpp \
LDFLAGS=-L$CONTRIBS/lib \
CC=i586-mingw32msvc-gcc CXX=i586-mingw32msvc-g++

Далее необходимо запустить скрипт configure с необходимыми параметрами. Для нас обязательными являются параметры --enable-mozilla и --with-mozilla-sdk-path. Соответственно первый параметр говорит, что плагин для mozilla все-таки придется собирать, а второй показывает где лежат необходимые dev компоненты этой самой mozilla. В итоге запускал скрипт вот с таким набором параметров:

./configure --host=i586-mingw32msvc --build=i386-linux \
--disable-gtk \
--enable-nls --enable-sdl --with-sdl-config-path=$CONTRIBS/bin \
--enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-faac \
--with-ffmpeg-zlib --enable-faad --enable-flac --enable-theora \
--with-wx-config-path=$CONTRIBS/bin \
--with-freetype-config-path=$CONTRIBS/bin \
--with-fribidi-config-path=$CONTRIBS/bin \
--with-libgcrypt-prefix=$CONTRIBS \
--enable-live555 --with-live555-tree=$CONTRIBS/live.com \
--enable-caca --with-caca-config-path=$CONTRIBS/bin \
--with-xml2-config-path=$CONTRIBS/bin \
--with-dvdnav-config-path=$CONTRIBS/bin \
--disable-cddax --disable-vcdx --enable-goom \
--enable-twolame --enable-dvdread \
--disable-fluidsynth --disable-qt4 --disable-skins2 \
--enable-mozilla --with-mozilla-sdk-path=/usr/win32/gecko-sdk

После этого можно запускать make all, но система скорее всего ругнется чем-то типа этого:

Makefile:1961: *** пропущен разделитель. Останов.

Открываем Makefile и меняем пробелы в начале указанной строки на честные табуляции и так практически со всем блоком, который вставился из патча.
Все, теперь запускаем make all и идем пить чай, у меня оно собиралось довольно долго.
После этого выполняем make package-win32-xpi и через пару мгновений в каталоге ./vlc-1.0.6/vlc-plugin получаем готовый к использованию vlc-1.0.6.xpi.

UPD: По просьбам трудящихся выложил готовый пакет.
Теги:
Хабы:
+16
Комментарии 30
Комментарии Комментарии 30

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн