Показать сообщение отдельно
Старый 12.04.2011, 10:48   #1
Неактивный пользователь
 
Пол:Мужской
Регистрация: 05.01.2008
Сообщений: 7
Репутация: 0
По умолчанию vlc-alien сборка, альтернативный каталог установки

задача, модернизировать vlc.SlackBuild таким образом так, что бы установка было возможна в каталог по выбору
- /usr
- /usr/local
- /opt/vlc-xxx
ну или куда еще, так сказать "аналогично маковским программам", все при себе, не используя системных библиотек (по возможности), каталогов итд
библиотеки и кодеки линкуются статически

////////////////////////////////////////////////////////////////////////////////

использую alien-сборку
[Для просмотра ссылок требуется регистрация. Зарегистрироваться...]

добовляю переменные
PREFIX=/opt/$PRGNAM-$VERSION

далее, в скрипте есть такое определение
VLCDEPSDIR="$TMP/tmp-$PRGNAM/vlcdeps"
каталог для временной установки библиотек, с которыми будет линковаться vlc

конфигурация всех библиотек примерно такая:
./configure \
--prefix=$VLCDEPSDIR/usr \
--libdir=$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}
тут все понятно, конфигурим и устанавливает соответственно во временный библиотечный каталог

но вот есть непонятки со следующими библиотеками

////////////////////////////////////////////////////////////////////////////////
### LIBVA ###

make_libva()
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--enable-static \
--enable-shared \

устанавливется все рано в необходимый каталог:
make install DESTDIR=$VLCDEPSDIR

может быть надо изменить на след?

./configure \
--prefix=$VLCDEPSDIR/usr \
--libdir=$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} \
--enable-static \
--enable-shared \

////////////////////////////////////////////////////////////////////////////////
### VPX
далее библиотека VPX

make_vpx()
{
./configure \
--disable-install-bins \
--disable-install-srcs \
--disable-install-libs \
--disable-debug-libs \
--enable-postproc \
$ARCHOPTS \
make -j${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_vpx.log
# Install libvpx into a temp location so vlc can pickup the library
make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_vpx.log

тут вообще полный алец-капуть
в конфигураторе ни каких "подходящих" ключей и устанавливается "по умолчанию" - сразу в систему

////////////////////////////////////////////////////////////////////////////////
### VLC
сборка сомого плеера, устанавливаются соотв. переменные

CPPFLAGS
CFLAGS
CXXFLAGS
LDFLAGS
LIBS
PKG_CONFIG_PATH
PROJECTM_LIBS
PROJECTM2_LIBS
PATH

далее конфигуратор

./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--sysconfdir=/etc \
--mandir=/usr/man \
--docdir=/usr/doc/vlc-$VERSION \
--disable-static ...

очевидно, меняем на
-->

./configure \
--prefix=$PREFIX \
--libdir=$PREFIX/lib${LIBDIRSUFFIX} \
--sysconfdir=/etc \
--mandir=$PREFIX/man \
--docdir=$PREFIX/doc/vlc-$VERSION \
--disable-static ...

не понятно почему используется ключ
--disable-static
если сборка производится "статическая"?

еще не понятно, надо ли использовать именно такие ключи для манов и документов или это неправильно?

////////////////////////////////////////////////////////////////////////////////
## сборка пакета

идет манипуляция системными каталогами, как то /usr/share/vlc итд...

cp -a $VLCDEPSDIR/usr/share/vlc/projectM $PKG/usr/share/vlc/
ln -sf /usr/share/fonts/TTF/DejaVuSans.ttf $PKG/usr/share/vlc/projectM/fonts/Vera.ttf
cp -a $VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/ggi $PKG/usr/share/vlc/

итд, много всего

непонятно, надо ли переносить весь "системный контент" в $PREFIX?
возможно надо не все переносить?

////////////////////////////////////////////////////////////////////////////////

цель и задача озвучена в начале (что бы не повторяться)

советовать "просто так собрать и посмотреть" не надо, во первых сборка идет около 2х часов, во вторых это уже не раз делалось
вопрос конкретный: модернизация скрипта, что, возможно я делаю не так (в плане модернизации)
или посоветуйте где почитать о "сборке самодостатоных приложений"
алиеновские скрипты не всегда идеальны, особенно в случае с vlc, возможно, на соотв. тачке и соотв. конфигурации системы все ок
считаю что необходимо все предусмотреть, разобраться с непонятками, выслушать советы и комментарии, что бы двинуться далее

высказывайтесь по делу, не флудите, пожалуйста, не надо уподобляться обезьянам и давайте гордо нести наше звание "человек разумный"
золотое молчание приветствуется :о)

спасибо
sunjob вне форума
 
Ответить с цитированием Вверх
 
Время генерации страницы 0.08176 секунды с 9 запросами