Skip to content

Instantly share code, notes, and snippets.

@b4tman
Last active March 4, 2017 16:20
Show Gist options
  • Save b4tman/e8a5aa6b4447b9cd2da4 to your computer and use it in GitHub Desktop.
Save b4tman/e8a5aa6b4447b9cd2da4 to your computer and use it in GitHub Desktop.
скрипты для ipop-tincan
#!/bin/sh
# скрипт используется для получения исходников ipop-tincan и замены файлов сборки webrtc
P=$PWD
cd /home/b4tman/libjingle
cd src/talk; rm -rf ipop-project; mkdir ipop-project; cd ipop-project
git clone --depth 1 http://github.com/ipop-project/ipop-tap.git
git clone --depth 1 http://github.com/b4tman/ipop-tincan.git -b devel
cd ../../
rm -f DEPS all.gyp talk/libjingle.gyp talk/ipop-tincan.gyp
cp talk/ipop-project/ipop-tincan/build/ipop-tincan.gyp talk/
cp talk/ipop-project/ipop-tincan/build/libjingle.gyp talk/
cp talk/ipop-project/ipop-tincan/build/all.gyp .
cp talk/ipop-project/ipop-tincan/build/DEPS .
cd $P
#!/bin/sh
# check running process
CTRL_PID=`ps aux|grep -oiE "^root\s+\d*\s+.*python.*[sg]vpn_controller.py"|grep -oP "\d*"|grep -m1 -e "\d*"`
CTRL_FOUND=$?
TC_PID=`ps aux|grep -oiE "^root\s.*\s/usr/local/ipop/.*/ipop-tincan"|grep -oP "\d*"|grep -m1 -e "\d*"`
TC_FOUND=$?
# if all ok, just exit
if [[ $CTRL_FOUND -eq 0 && $TC_FOUND -eq 0 ]];
then
exit 0
fi
# else kill running process
if [ $CTRL_FOUND -eq 0 ];
then
kill -9 $CTRL_PID
fi
if [ $TC_FOUND -eq 0 ];
then
kill -9 $TC_PID
fi
# wait
sleep 2
# start
/usr/local/ipop/15/bin/start-gvpn

b4tman/ipop-tincan

типа инструкция сборки

скачиваем depot_tools

mkdir libjingle; cd libjingle
git clone --depth 1 https://chromium.googlesource.com/chromium/tools/depot_tools.git

устанавливаем переменные

. ./env

получаем исходники webrtc

fetch --no-history --nohooks webrtc

получаем исходники ipop-tincan

./get_ipop

получаем исходники зависимостей webrtc (включая часть исходников хромиума, качает около 4ГБ, долго)

gclient sync --force --no-history

сборка (make)

cd ~/libjingle/src
make ipop-tincan BUILDTYPE=Release

или с помощью ninja

ninja -C out/Release ipop-tincan

простая реконфигурация

cd ~/libjingle/src
. ../env
ninja -C out/Release -t clean

или make clean

gclient runhooks

удалить всё к чёрту и скачать заново (для зависимостей)

cd ~/libjingle
rm -rf src .gclient .gclient_entries
#!/bin/sh
CTRL_PID=`ps aux|grep -oiE "^root\s+\d*\s+.*python.*[sg]vpn_controller.py"|grep -oP "\d*"|grep -m1 -e "\d*"`
CTRL_FOUND=$?
TC_PID=`ps aux|grep -oiE "^root\s.*\s/usr/local/ipop/.*/ipop-tincan"|grep -oP "\d*"|grep -m1 -e "\d*"`
TC_FOUND=$?
echo ctrl: $CTRL_FOUND -- $CTRL_PID
echo tincan: $TC_FOUND -- $TC_PID
#скрипт для установки переменных среды для кросс-сборки ipop-tincan для Raspberry Pi 2 model B под Ubuntu 15.04
# использованный sysroot (gcc-4.9): https://dl.dropboxusercontent.com/u/6699540/ubuntu_mod_arm_sysroot.tar.xz
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH="$(pwd)/depot_tools:$PATH"
export GYP_CROSSCOMPILE=1
export GYP_GENERATORS="ninja"
export SYSROOT=~/libjingle/debian_wheezy_arm-sysroot
export GYP_DEFINES="OS=linux target_arch=arm arm_float_abi=hard arm_fpu=neon-vfpv4 arm_arch=armv7-a arm_tune=cortex-a7 arm_version=7 arm_neon=1 arm_use_neon=1 buildtype=Dev clang=0 linux_use_gold_flags=0 linux_use_bundled_gold=0 linux_use_bundled_binutils=0 system_libdir=\"$SYSROOT/usr/arm-linux-gnueabihf/lib\" sysroot=\"$SYSROOT\" embedded=1 use_openssl=1 use_openssl_certs=1 use_sysroot=1 is_debug=0 fastbuild=2"
export CHROMIUM_NO_HISTORY=1
export C_INCLUDE_PATH=$SYSROOT/usr/include/arm-linux-gnueabihf:$SYSROOT/usr/include:$SYSROOT/usr/include/nss:$SYSROOT/usr/include/nspr
export C_LIB_PATH=$SYSROOT/usr/arm-linux-gnueabihf/lib:$SYSROOT/usr/lib:$SYSROOT/lib
export CPLUS_LIB_PATH=$C_LIB_PATH
export CPLUS_INCLUDE_PATH=$C_INCLUDE_PATH
export CFLAGS=" -pipe -I\"$SYSROOT/usr/include/arm-linux-gnueabihf\" -I\"$SYSROOT/usr/include\" -I\"$SYSROOT/usr/include/nspr\" -I\"$SYSROOT/usr/include/nss\""
export CXXFLAGS=$CFLAGS
export LDFLAGS="-L\"$SYSROOT/usr/arm-linux-gnueabihf/lib\" -L\"$SYSROOT/usr/lib\" -L\"$SYSROOT/lib\""
#скрипт для установки переменных среды для сборки ipop-tincan под centos 6.6
scl enable devtoolset-1.1 bash
export JAVA_HOME=/usr/lib/jvm/java
export PATH="$(pwd)/depot_tools:$PATH"
export GYP_DEFINES="use_openssl=1 clang=0 linux_use_gold_flags=0"
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
pyenv local 2.7.9
#!/bin/sh
export ipop_dir=/usr/local/ipop
. $ipop_dir/python_env
$ipop_dir/15/bin/ipop-tincan 1>$ipop_dir/tincan.log 2>$ipop_dir/tincan.log &
$ipop_dir/15/bin/gvpn_controller.py -c $ipop_dir/config.json -p $ipop_dir/ip_config.json 1>$ipop_dir/gvpn.log 2>$ipop_dir/gvpn.log &
#!/bin/sh
ipop_dir=/usr/local/ipop
. $ipop_dir/python_env
$ipop_dir/15/bin/ipop-tincan 1>$ipop_dir/tincan.log 2>$ipop_dir/tincan-err.log &
$ipop_dir/15/bin/svpn_controller.py -c $ipop_dir/config.json -p $ipop_dir/ip_config.json 1>$ipop_dir/svpn.log 2>$ipop_dir/svpn-err.log &
#!/bin/sh
CTRL_PID=`ps aux|grep -oiE "^root\s+\d*\s+.*python.*[sg]vpn_controller.py"|grep -oP "\d*"|grep -m1 -e "\d*"`
CTRL_FOUND=$?
TC_PID=`ps aux|grep -oiE "^root\s.*\s/usr/local/ipop/.*/ipop-tincan"|grep -oP "\d*"|grep -m1 -e "\d*"`
TC_FOUND=$?
echo ctrl: $CTRL_FOUND -- $CTRL_PID
echo tincan: $TC_FOUND -- $TC_PID
if [ $CTRL_FOUND -eq 0 ];
then
kill $CTRL_PID
else
echo "ipop controller not found"
fi
if [ $TC_FOUND -eq 0 ];
then
kill $TC_PID
else
echo "ipop-tincan not found"
fi
sleep 2
CTRL_PID=`ps aux|grep -oiE "^root\s+\d*\s+.*python.*[sg]vpn_controller.py"|grep -oP "\d*"|grep -m1 -e "\d*"`
CTRL_FOUND=$?
TC_PID=`ps aux|grep -oiE "^root\s.*\s/usr/local/ipop/.*/ipop-tincan"|grep -oP "\d*"|grep -m1 -e "\d*"`
TC_FOUND=$?
if [ $CTRL_FOUND -eq 0 ];
then
kill -9 $CTRL_PID
fi
if [ $TC_FOUND -eq 0 ];
then
kill -9 $TC_PID
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment