Рейтинг@Mail.ru
[Войти] [Зарегистрироваться]

Наши друзья и партнеры

UnixForum
Беспроводные выключатели nooLite купить дешевый 
компьютер родом из Dhgate.com

Lines Club

Ищем достойных соперников.

Библиотека сайта или "Мой Linux Documentation Project"

Фреймворк GStreamer. Часто задаваемые вопросы. Сборка версии фреймворка GStreamer из репозитория git

Оригинал: GStreamer FAQ
Авторы: Wim Taymans, Steve Baker, Andy Wingo, Ronald S. Bultje, Stefan Kost
Дата публикации: 27 августа 2014 г.
Перевод: А.Панин
Дата перевода: 5 сентября 2014 г.

6. Сборка версии фреймворка GStreamer из репозитория git

Вопрос: Существует ли способ тестирования или разработки приложения на основе версии фреймворка GStreamer из репозитория git без нарушения целостности компонентов фреймворка GStreamer, установленных в систему из пакетов?

Ответ: Да! Существуют два варианта действий: вы можете либо работать с компонентами фреймворка GStreamer в окружении без установки (обратитесь к ответу на вопрос "Как я могу вести разработку, пользуясь неустановленной копией фреймворка GStreamer?"), либо использовать инструмент jhbuild проекта GNOME.

В: Как я могу получить новейшую копию исходного кода фреймворка GStreamer из репозитория git?

О: Данные проекта GStreamer расположены на сервере проекта Freedesktop.org. Сам фреймворк GStreamer состоит из различных компонентов. Вначале вам должен понадобиться модуль "gstreamer", содержащий исходный код ядра фреймворка, а также модули "gst-plugins-base" и "gst-plugins-good", содержащие исходный код базового набора плагинов. Наконец, вам также могут понадобиться модули "gst-plugins-ugly", "gst-plugins-bad" и "gst-ffmpeg" для более полной поддержки мультимедийных форматов.

Для получения новейшей версии исходного кода ядра фреймворка и базовых модулей из репозитория git следует использовать следующий цикл вызовов:
for module in gstreamer gst-plugins-base gst-plugins-good; do
  git clone git://anongit.freedesktop.org/git/gstreamer/$module ;
done

В результате в вашей текущей директории будут созданы три директории: "gstreamer", "gst-plugins-base" и "gst-plugins-good". В том случае, если вы хотите получить исходный код, относящийся к другому модулю, вы можете использовать приведенную выше команду git clone и заменить переменную $module на имя модуля. Как только вы получите исходный код, относящийся к указанным модулям, вам придется перейти в каждую из директорий и выполнить команду ./autogen.sh, которая, кроме всего прочего, позволит получить исходный код, относящийся к модулям, связанным с текущим модулем.

На странице с информацией о модулях приведен список активно разрабатываемых модулей с краткими описаниями.

В: Как я могу получить доступ с правами разработчика к репозиторию исходного кода git проекта GStreamer?

О: В том случае, если вы хотите получить доступ с правами разработчика к репозиторию исходного кода git проекта GStreamer, вы должны отправить запрос через список рассылки для разработчиков или обратиться с просьбой напрямую к одному из разработчиков. Обычно мы рассматриваем запросы только от тех разработчиков, которые были активны и продуктивно участвовали в разработке проекта GStreamer в течение некоторого времени. В том случае, если вы пока не являетесь зарегистрированным разработчиком, обладающим учетной записью на ресурсе Freedesktop.org, вам придется предоставить администраторам этого ресурса следующую информацию:
  1. желаемое имя пользователя системы unix
  2. ваше полное имя
  3. ваш адрес электронной почты
  4. копию вашего публичного ключа sshv2. Если у вас пока нет этого ключа, вы можете сгенерировать его, выполнив команду "ssh-keygen -t rsa -f ~/.ssh/id_rsa.pub-fdo". Результирующий публичный ключ будет сохранен в файле ~/.ssh/id_rsa.pub-fdo
  5. ваш идентификатор ключа GPG. Он позволит вам добавлять и удалять ключи ssh, связанные с вашей учетной записью.

После сбора данной информации следует обратиться к документу, расположенному по адресу http://freedesktop.org/wiki/AccountRequests, для получения рекомендаций относительно ваших дальнейших действий.

В: Я попытался использовать сценарий autogen.sh, но его исполнение завершилось неудачей с выводом ошибок, связанных с aclocal:
+ running aclocal -I m4 -I common/m4 ...
aclocal: configure.ac: 8: macro `AM_DISABLE_STATIC' not found in library
aclocal: configure.ac: 17: macro `AM_PROG_LIBTOOL' not found in library
aclocal failed

Что случилось?

О: Утилита aclocal не может найти два макроса, добавленных утилитой libtool в файл с именем libtool.m4. Обычно такая ошибка указывает на то, что вы не установили утилиту libtool, но в этом случае исполнение сценария autogen.sh должно было завершиться неудачей из-за невозможности использования утилиты libtool.

Более вероятной является ситуация, в которой вы установили пакет automake (содержащий утилиту aclocal) с использованием префикса пути, отличного от того, который был использован при установке утилиты libtool. Вы можете проверить это, узнав, какие префиксы путей были использованы при установке утилит aclocal и libtool.

Для решения возникшей проблемы вы можете выполнить одно из трех действий:

  1. установить пакет automake с использованием того же префикса пути, что был использован при установке утилиты libtool.

  2. принудительно использовать пакет automake в условиях работы с префиксом пути, заданным при установке утилиты libtool, задействовав параметр --with-automake.

  3. выяснить префикс пути, использованный при установке утилиты libtool и сообщить утилите aclocal о корректном пути, установив значение соответствующей переменной окружения с помощью команды:
    export ACLOCAL_FLAGS="-I $(prefix)/share/aclocal"
    

    причем переменная $(prefix) должна быть заменена на префикс пути, использованный при установке утилиты libtool.

В: Почему при компиляции используются флаги "-Wall -Werror"?

О: Флаг "-Wall" используется потому, что с помощью него выявляется большое количество возможных проблем в коде. Безусловно, не все выводимые предупреждения свидетельствуют о проблемах, но в любом случае лучше искать методы нейтрализации ложных предупреждений компилятора, чем тратить дни на поиск ошибки, о которой он мог сообщить.

Флаг "-Werror" деактивируется при выпуске новых версий. По умолчанию он активирован для исходного кода из репозитория git и пакетов предварительных выпусков новых версий для того, чтобы люди обращали внимание на проблемы, обнаруженные благодаря флагу "-Wall". Мы хотим, чтобы люди активно обнаруживали подобные ошибки и сообщали о них, либо исправляли их.

В том случае, если вы по какой-то причине желаете деактивировать данные флаги и уверены в своей правоте, вы можете использовать команду:
make ERROR_CFLAGS=""

для очистки значения переменной CFLAGS от флагов, предназначенных для проверки наличия ошибок.


Следующий раздел : Разработка приложений на основе фреймворка GStreamer.


Эта статья еще не оценивалась
Вы сможете оценить статью и оставить комментарий, если войдете или зарегистрируетесь.
Только зарегистрированные пользователи могут оценивать и комментировать статьи.

Комментарии отсутствуют