mobileinsight-apptainer/mobileinsight.def

98 lines
2.5 KiB
Modula-2

BootStrap: docker
From: ubuntu:22.04
%arguments
NUM_THREADS=1
WS_VER=3.4.0
MI_COMMIT=4b204e0
%files
00-cpp_compat.patch /build/00-cpp_compat.patch
%post
# Update and install dependencies
mkdir -p /build
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get upgrade -y
apt-get install -y \
git \
python3 \
python3-pip \
python3-wxgtk4.0 \
python3-matplotlib \
cmake \
pkg-config \
wget \
libglib2.0-dev \
bison \
flex \
libpcap-dev \
libgcrypt-dev \
qtbase5-dev \
qtchooser \
qt5-qmake \
qtbase5-dev-tools \
qttools5-dev \
qtmultimedia5-dev \
libqt5svg5-dev \
libc-ares-dev \
libsdl2-mixer-2.0-0 \
libsdl2-image-2.0-0 \
libsdl2-2.0-0
pip3 install pyserial
# Download resources
cd /build
wget "http://www.mobileinsight.net/wireshark-{{ WS_VER }}-rbc-dissector.tar.xz" -nv \
-O "wireshark-{{ WS_VER }}.tar.xz"
tar -xf "wireshark-{{ WS_VER }}.tar.xz"
git clone "https://github.com/mobile-insight/mobileinsight-core.git"
git -C mobileinsight-core checkout "{{ MI_COMMIT }}"
# Compile and install wireshark
cd "/build/wireshark-{{ WS_VER }}"
patch epan/epan.h < /build/00-cpp_compat.patch
cmake -DBUILD_wireshark=OFF .
make -j "{{ NUM_THREADS }}"
make install
ldconfig
# Compile and install Wireshark dissector
cd /build/mobileinsight-core/ws_dissector
g++ ws_dissector.cpp packet-aww.cpp -o ws_dissector \
$(pkg-config --libs --cflags glib-2.0) \
-I"/build/wireshark-{{ WS_VER }}" \
-L"/usr/local/lib" \
-lwireshark \
-lwsutil \
-lwiretap
strip ws_dissector
install -Dm 755 ws_dissector /usr/local/bin/ws_dissector
# Compile and install MobileInsight
cd /build/mobileinsight-core
python3 setup.py install
mkdir -p /usr/local/share/mobileinsight
cp -r gui/* /usr/local/share/mobileinsight
ln -s /usr/local/share/mobileinsight/mi-gui /usr/local/bin/mi-gui
cp -r examples /opt/mobileinsight-examples
# Link python3 to python
cd /usr/bin
ln -s python3 python
# Cleanup
apt-get autoclean -y
rm -rf /build
%runscript
set -e
echo "Welcome to MobileInsight Apptainer!"
if [ $# -eq 0 ]; then
exec /bin/bash
else
"$@"
fi