nixp.ru v3.0

20 октября 2017,
пятница,
17:01:00 MSK

DevOps с компанией «Флант»
sunjob написал 12 апреля 2011 года в 11:52 (1529 просмотров) Ведет себя неопределенно; открыл 8 тем в форуме, оставил 44 комментария на сайте.

задача, модернизировать vlc.SlackBuild таким образом так, что бы установка было возможна в каталог по выбору

— /usr

— /usr/local

— /opt/vlc-xxx

ну или куда еще, так сказать «аналогично маковским программам», все при себе, не используя системных библиотек (по возможности), каталогов итд

библиотеки и кодеки линкуются статически

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

использую alien-сборку

slackware.org.uk/people/alien/restricted_slackbuilds/vlc/build/

добовляю переменные

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, возможно, на соотв. тачке и соотв. конфигурации системы все ок

считаю что необходимо все предусмотреть, разобраться с непонятками, выслушать советы и комментарии, что бы двинуться далее

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

золотое молчание приветствуется: о)

спасибо