Difference between revisions of "FreeBSD10"

From VoIPmonitor.org
Jump to navigation Jump to search
 
(31 intermediate revisions by the same user not shown)
Line 1: Line 1:
note:tested on 32bit release
+
''note:tested on 32bit release with voipmonitor 11 sources''
  
 
Install packages
 
Install packages
  pkg install libexecinfo libpcap unixODBC mysql55-client libvorbis libogg vorbis-tools gmake subversion wget bash libssh git mysql56-server-5.6.21 autotools
+
  pkg install libexecinfo libpcap unixODBC mysql56-client libvorbis libogg vorbis-tools gmake subversion wget bash libssh git mysql56-server autotools
  
 
Startup mysql
 
Startup mysql
Line 27: Line 27:
 
  /etc/rc.d/ldconfig restart
 
  /etc/rc.d/ldconfig restart
  
Download and install voipmonitor
+
Check that json-c.pc has been installed on a right place
 +
pkg-config --variable pc_path pkg-config //this show you where pkg-config search for .pc files
 +
 
 +
Bad situation solved creating a symlink
 +
ln -s /usr/local/lib/pkgconfig/json-c.pc /usr/local/libdata/pkgconfig/json-c.pc
 +
 
 +
Recheck that pkg_config know about json-c (should return something like '-L/usr/local/lib -ljson-c')
 +
pkg-config --libs json-c
 +
 
 +
Download and configure voipmonitor
 
  cd /usr/src
 
  cd /usr/src
  git clone git://git.code.sf.net/p/voipmonitor/git voipmonitor-git
+
  git clone https://github.com/voipmonitor/sniffer.git
  cd voipmonitor-git
+
  cd sniffer
 
  ./configure
 
  ./configure
 +
 +
Locate ansidecl.h in your environmentand copy it to voipmonitor sources dir
 +
locate ansidecl.h //returned /usr/local/lib/gcc48/gcc/i386-portbld-freebsd10.0/4.8.3/plugin/include/ansidecl.h
 +
cp /usr/local/lib/gcc48/gcc/i386-portbld-freebsd10.0/4.8.3/plugin/include/ansidecl.h ansidecl.h
 +
 +
Modify Makefile and compile voipmonitor
 +
sed -i.orig s/\ json/\ json-c/g Makefile
 +
sed -i.bak 's/.*MYSQLLIB =.*/'MYSQLLIB\ \=\ -L\\/usr\\/local\\/lib\\/mysql\ -lmysqlclient\ -lm'/' Makefile
 +
sed -i.bak2 's/${CXX} $(objects).*'\$'/ld --allow-multiple-definition -Vt -o voipmonitor '\\/'usr'\\/'lib'\\/'crt1.o '\\/'usr'\\/'lib'\\/'crti.o '\\/'usr'\\/'lib'\\/'crtbegin.o ${objects} ${LIBS} ${LIBS_PATH} --as-needed -lgcc_s --no-as-needed '\\/'usr'\\/'lib'\\/'crtend.o '\\/'usr'\\/'lib'\\/'crtn.o /' Makefile
 +
sed -i.bak3 s/\ \-ldl// Makefile
 +
 
  ln -s /usr/bin/c++ /usr/sbin/g++
 
  ln -s /usr/bin/c++ /usr/sbin/g++
mv tools.cpp tools.cpp.bak
 
sed '/json\/json.h/s//json-c\/json.h/' tools.cpp.bak > tools.cpp
 
 
unsigned int errno = mysql_errno(this->hMysql);
 
sed '/unsigned int errno/s/int errno/' > sql_db.cpp
 
  
 
  gmake
 
  gmake
 
  gmake install
 
  gmake install
 +
 +
Create voipmonitor startup script
 +
 +
echo voipmonitor_enable=\"YES\" >> /etc/rc.conf
 +
vi /usr/local/etc/rc.d/voipmonitor
 +
 +
#!/bin/sh
 +
#
 +
#
 +
# PROVIDE: voipmonitor
 +
# REQUIRE: mysql
 +
# KEYWORD: shutdown
 +
#
 +
. /etc/rc.subr
 +
name=voipmonitor
 +
rcvar=voipmonitor_enable
 +
export PATH=/usr/local/bin:/usr/local/sbin:$PATH
 +
pidfile="/var/run/${name}.pid"
 +
procname="/usr/sbin/voipmonitor"
 +
start_cmd="/usr/sbin/voipmonitor --config-file=/etc/voipmonitor.conf -v1"
 +
load_rc_config $name
 +
run_rc_command "$1"
 +
 +
ldconfig
 +
service voipmonitor start

Latest revision as of 16:36, 21 January 2015

note:tested on 32bit release with voipmonitor 11 sources

Install packages

pkg install libexecinfo libpcap unixODBC mysql56-client libvorbis libogg vorbis-tools gmake subversion wget bash libssh git mysql56-server autotools

Startup mysql

echo mysql_enable=\"YES\" >> /etc/rc.conf
vim /var/db/mysql/my.cnf 
service mysql-server start

Download and install snappy

cd /usr/src
wget --no-check-certificate https://snappy.googlecode.com/files/snappy-1.1.1.tar.gz
tar xzf snappy-1.1.1.tar.gz
cd snappy-1.1.1
./configure
make
make install

Download and install json-c

cd /usr/src
git clone https://github.com/json-c/json-c.git;
cd json-c;
sh autogen.sh;
./configure; make; make install
ln -s /usr/local/lib/libjson-c.so.2.0.0 /usr/lib/libjson.so
/etc/rc.d/ldconfig restart

Check that json-c.pc has been installed on a right place

pkg-config --variable pc_path pkg-config //this show you where pkg-config search for .pc files

Bad situation solved creating a symlink

ln -s /usr/local/lib/pkgconfig/json-c.pc /usr/local/libdata/pkgconfig/json-c.pc

Recheck that pkg_config know about json-c (should return something like '-L/usr/local/lib -ljson-c')

pkg-config --libs json-c

Download and configure voipmonitor

cd /usr/src
git clone https://github.com/voipmonitor/sniffer.git
cd sniffer
./configure

Locate ansidecl.h in your environmentand copy it to voipmonitor sources dir

locate ansidecl.h //returned /usr/local/lib/gcc48/gcc/i386-portbld-freebsd10.0/4.8.3/plugin/include/ansidecl.h
cp /usr/local/lib/gcc48/gcc/i386-portbld-freebsd10.0/4.8.3/plugin/include/ansidecl.h ansidecl.h

Modify Makefile and compile voipmonitor

sed -i.orig s/\ json/\ json-c/g Makefile
sed -i.bak 's/.*MYSQLLIB =.*/'MYSQLLIB\ \=\ -L\\/usr\\/local\\/lib\\/mysql\ -lmysqlclient\ -lm'/' Makefile
sed -i.bak2 's/${CXX} $(objects).*'\$'/ld --allow-multiple-definition -Vt -o voipmonitor '\\/'usr'\\/'lib'\\/'crt1.o '\\/'usr'\\/'lib'\\/'crti.o '\\/'usr'\\/'lib'\\/'crtbegin.o ${objects} ${LIBS} ${LIBS_PATH} --as-needed -lgcc_s --no-as-needed '\\/'usr'\\/'lib'\\/'crtend.o '\\/'usr'\\/'lib'\\/'crtn.o /' Makefile
sed -i.bak3 s/\ \-ldl// Makefile
ln -s /usr/bin/c++ /usr/sbin/g++
gmake
gmake install

Create voipmonitor startup script

echo voipmonitor_enable=\"YES\" >> /etc/rc.conf
vi /usr/local/etc/rc.d/voipmonitor
#!/bin/sh
#
#
# PROVIDE: voipmonitor
# REQUIRE: mysql
# KEYWORD: shutdown
#
. /etc/rc.subr
name=voipmonitor
rcvar=voipmonitor_enable
export PATH=/usr/local/bin:/usr/local/sbin:$PATH
pidfile="/var/run/${name}.pid"
procname="/usr/sbin/voipmonitor"
start_cmd="/usr/sbin/voipmonitor --config-file=/etc/voipmonitor.conf -v1"
load_rc_config $name
run_rc_command "$1"
ldconfig
service voipmonitor start