Проблема компиляции libjingle

Я скачал и установил libjingle-0.5.2.zip, и согласно README также скачал и установил swtoolkit.0.9.1.zip, scons-local-2.1.0.alpha.20101125.tar.gz и expat-2.0.1.tar.gz, и получил nrtp по загрузке cvs. Переписав мой Makefile дважды, пытаясь следовать довольно плохо написанному README, я пришел к следующему Makefile, который почти работает:


# First, make sure the SCONS_DIR environment variable is set correctly.
SCONS_DIR ?= /usr/src/scons-local/scons-local-2.1.0.alpha.20101125/
#SCONS_DIR ?= /usr/src/scons-local/
export
default: build
# Second, run talk/third_party/expat-2.0.1/configure...
talk/third_party/expat-2.0.1/Makefile:
    cd talk/third_party/expat-2.0.1 && ./configure
# ...and talk/third_party/srtp/configure.
talk/third_party/srtp/Makefile:
    cd talk/third_party/srtp && ./configure
# Third, go to the talk/ directory and run $path_to_swtoolkit/hammer.sh. Run
# $path_to_swtoolkit/hammer.sh --help for information on how to build for
# different modes.
build: talk/third_party/expat-2.0.1/Makefile talk/third_party/srtp/Makefile
    cd talk && ../../swtoolkit/hammer.sh
help:
    ../swtoolkit/hammer.sh --help

Тем не мение, make дает мне следующие ошибки:

jcomeau @ intrepid: /usr/src/libjingle-0.5.2$ make cd talk &&../../swtoolkit/hammer.sh *** Ошибка загрузки файла site_init './../../swtoolkit/site_scons/site_init.py':
AttributeError: Объект'Dir'не имеет атрибута' конец с ': файл "/usr/src/scons-local/scons-local-2.1.0.alpha.20101125/SCons/Script/Main.py", строка 1338: файл _exec_main(синтаксический анализатор, значения), файл "/usr/src/scons-local/scons-local-2.1.0.alpha.20101125/SCons/Script/Main.py", строка 1302: файл _main (синтаксический анализатор) " /usr/src/scons-local/scons-local-2.1.0.alpha.20101125/SCons/Script/Main.py ", строка 929:
    _load_site_scons_dir(d.path, options.site_dir) Файл" / usr / src / scons-local / scons-local-2.1.0.alpha.20101125 / SCons / Script / Main.py ", строка 719:
    exec fp в файле site_m"./../../swtoolkit/site_scons/site_init.py", строка 455: файл SiteInitMain() "./../../swtoolkit/site_scons/site_init.py", строка 451: файл SCons.Node.FS.get_default_fs(). Файл SConstruct_dir, отсутствует) "/ usr / src / scons-local / scons-local-2.1.0.alpha.20101125 / SCons / Script / Main.py ", строка 677:
    site_dir = os.path.join(topdir, site_dir_name) Файл "/usr/lib/python2.6/posixpath.py", строка 67:
    elif path == '' или path.endswith('/'):
make: *** [build] Ошибка 2

Я предполагаю, что что-то новое (объект 'Dir', в котором ожидается строка пути POSIX) в одном из пакетов нарушает процесс сборки, но какой именно? Здесь слишком много слоев, чтобы я мог следовать за ними. Конечно, я мог бы просто продолжать пробовать старые пакеты, особенно для swtoolkit и scons, но если кто-то здесь успешно скомпилирует libjingle и сможет подтолкнуть меня в правильном направлении, я был бы признателен.

2 ответа

Решение

Я не знаком с проектом, но думаю, у меня есть решение, которое поможет вам преодолеть этот вопрос. Вы должны разыграть эти Dir случаи использования str() в swtoolkit/site_scons/site_init.py. Таким образом, они могут быть безопасно оценены path.endswith('/'), Странно, что такая проблема будет существовать очень долго в основной части инфраструктуры сборки:

Строка 330:

SCons.Script.Main._load_site_scons_dir(
    str(SCons.Node.FS.get_default_fs().SConstruct_dir), site_dir)

Строка 450:

SCons.Script.Main._load_site_scons_dir(
    str(SCons.Node.FS.get_default_fs().SConstruct_dir), None)

Я сделал следующее, чтобы построить libjingle:

Сборка LibJingle для Linux

  1. Как построить

Libjingle построен с помощью swtoolkit ( http://code.google.com/p/swtoolkit/), который представляет собой набор расширений инструмента сборки SCons с открытым исходным кодом ( http://www.scons.org/).

  • Сначала установите Python 2.4 или более позднюю версию с http://www.python.org/. Обратите внимание, что поскольку swtoolkit работает только с Python 2.x, вы не сможете использовать Python 3.x.

  • Во-вторых, установите автономный пакет scons-local 2.0.0 или более поздней версии с http://www.scons.org/download.php и установите переменную среды, SCONS_DIR, чтобы указать каталог, содержащий SCons, например, /src/libjingle/scons-local/scons-local-2.0.0.final.0/,

  • В-третьих, установите swtoolkit с http://code.google.com/p/swtoolkit/.

  • Наконец, Libjingle зависит от двух проектов с открытым исходным кодом, expat и srtp. Загрузите экспата с http://sourceforge.net/projects/expat/ для обсуждения /third_party/expat-2.0.1/. Следуйте инструкциям на http://sourceforge.net/projects/srtp/develop чтобы загрузить последнюю версию srtp для talk/third_party/srtp. Обратите внимание, что srtp-1.4.4 не работает, так как он пропускает расширения, используемые Libjingle. Если вы поместите expat или srtp в другой каталог, вам нужно отредактировать talk/libjingle.scons соответственно.

2.1 Сборка Libjingle под Linux или OS X

  • Во-первых, убедитесь, что SCONS_DIR Переменная окружения установлена ​​правильно.
  • Во-вторых, беги talk/third_party/expat-2.0.1/configure а также talk/third_party/srtp/configure,
  • В-третьих, перейдите в каталог talk / и запустите $path_to_swtoolkit/hammer.sh, Бежать $path_to_swtoolkit/hammer.sh --help для получения информации о том, как строить для разных режимов.

Кроме указанных выше шагов, см. Ниже в качестве ссылки

Установить путь SCONS_DIR

export SCONS_DIR=/home/esumit/libjingle/libjingle-0.5.2/talk/third_party/scons-local/scons-local-2.0.1

устанавливать libasound2-dev Lib для компиляции libJingle, иначе вы столкнетесь с ошибками.

sudo apt-get install libasound2-dev

Загрузите SRTP с помощью следующей команды. Если он запрашивает пароль, просто нажмите Enter.

cvs -z3 -d:pserver:anonymous@srtp.cvs.sourceforge.net:/cvsroot/srtp co -P srtp

Возможные компоненты в каталоге LibJingle

libjingle-0.5.2/talk/third_party$ ls
expat-2.0.1  libudev  scons-local  srtp  swtoolkit

Выполните следующую команду, чтобы построить LibJingle

libjingle-0.5.2/talk$ ./third_party/swtoolkit/hammer.sh
Другие вопросы по тегам