FreeBSD10+Asterisk11+chan_dongle

Автор: GAMER вкл. .

FreeBSD10 все собирает через clang. В том числе и asterisk. Но chan_dongle шлангом собираться не хочет. Для этого приходиться извращаться.

Собрать астериск и chan_dongle с помощью gcc.

Так как люблю все новое, собирал через gcc49 (хотя, это не лучший вариант. Часто выходят обновления, которые нужно пересобирать, а пересобираются они долго).

За основу брал https://www.mail-archive.com/Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра./msg08108.html, там gcc46.

И так:

#pkg install gcc46

Редактируем /etc/libmap.conf

libgcc_s.so.1   gcc46/libgcc_s.so.1
libgomp.so.1    gcc46/libgomp.so.1
libobjc.so.3    gcc46/libobjc.so.2
libssp.so.0     gcc46/libssp.so.0
libstdc++.so.6  gcc46/libstdc++.so.6


Редактируем /etc/make.conf
.if !empty(.CURDIR:M/usr/ports/*) && exists(/usr/local/bin/gcc46)
CC=gcc46
CXX=g++46
CPP=cpp46
.endif

#cd /usr/ports/net/asterisk11 && make install clean

После чего собираем сам модуль с одной лишь опцией конфигурации: #cd /tmp/asterisk-chan-dongle-asterisk11 && ./configure CC=gcc46 && gmake && cp chan_dongle.so /usr/local/lib/asterisk/modules

Проверяем:

 gin*CLI> dongle show version

 chan_dongle: Huawei 3G Dongle Channel Driver, Version 1.1, Revision 34
 Project Home: http://code.google.com/p/asterisk-chan-dongle
 Bug Reporting: http://code.google.com/p/asterisk-chan-dongle/issues/list



Теперь комментарии:
1. Все собралось, но не работает. В логах ругань на libiconv.
Не смотря на то, что в FreeBSD10 libiconv свой (в мире), все равно есть ряд портов, которые ставят порт /usr/ports/converters/libiconv.
Этот порт хочет для себя и mc. А может и я что-то криво посадил. Но тем не менее, на период сборки астериска и chan_dongle,
нужно грохнуть портовый libiconv. Потом вернуть обратно.
2. /etc/libmap.conf и /etc/make.conf вернуть к предыдущему состоянию, иначе все будет собираться через gcc.
3. Лучше все собрать через clang, в том числе и астериск. Астериск потом пересобрать по-новому. В таком случае, софт будет собран
через шланг и только астериск через gcc.
4. После апгрейда на FreeBSD 10.1-STABLE, использую версию gcc48. Соответственно меняю версию в конфигах.
Кроме того, /usr/ports/converters/libiconv можно уже не использовать.