Build port_listener in debian VM
Bug: 340126051
Test: check /usr/local/bin/port_listener in the VM
Change-Id: Ic596b2865766d3a98ab1d110a4745a9a1e2b172b
diff --git a/build/debian/build.sh b/build/debian/build.sh
index 5894eaf..655e8d2 100755
--- a/build/debian/build.sh
+++ b/build/debian/build.sh
@@ -100,7 +100,7 @@
wget ${url} -O ${dst}/files/usr/local/bin/ttyd/AVF
chmod 777 ${dst}/files/usr/local/bin/ttyd/AVF
- pushd $(dirname $0)/forwarder_guest > /dev/null
+ pushd $(dirname $0)/forwarder_guest > /dev/null
RUSTFLAGS="-C linker=aarch64-linux-gnu-gcc" cargo build \
--target aarch64-unknown-linux-gnu \
--target-dir ${workdir}/forwarder_guest
@@ -108,6 +108,14 @@
cp ${workdir}/forwarder_guest/aarch64-unknown-linux-gnu/debug/forwarder_guest ${dst}/files/usr/local/bin/forwarder_guest/AVF
chmod 777 ${dst}/files/usr/local/bin/forwarder_guest/AVF
popd > /dev/null
+
+ # Pasting files under port_listener into /etc/port_listener
+ pushd $(dirname $0) > /dev/null
+ for file in $(find port_listener -type f); do
+ mkdir -p ${dst}/files/etc/${file}
+ cp ${file} ${dst}/files/etc/${file}/AVF
+ done
+ popd > /dev/null
}
run_fai() {
diff --git a/build/debian/fai_config/scripts/AVF/20-port_listener b/build/debian/fai_config/scripts/AVF/20-port_listener
new file mode 100755
index 0000000..586a551
--- /dev/null
+++ b/build/debian/fai_config/scripts/AVF/20-port_listener
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+set -e
+chmod +x $target/etc/port_listener/build.sh
+$ROOTCMD /bin/bash -c "/etc/port_listener/build.sh /usr/local/bin"
+rm -rf $target/etc/port_listener
diff --git a/build/debian/port_listener/build.sh b/build/debian/port_listener/build.sh
index a1d0205..9aeba05 100755
--- a/build/debian/port_listener/build.sh
+++ b/build/debian/port_listener/build.sh
@@ -3,10 +3,18 @@
set -e
check_sudo() {
- if [ "$EUID" -ne 0 ]; then
- echo "Please run as root."
- exit
- fi
+ if [ "$EUID" -ne 0 ]; then
+ echo "Please run as root."
+ exit
+ fi
+}
+
+parse_options() {
+ if [ -n "$1" ]; then
+ out_dir=$1
+ else
+ out_dir=${PWD}
+ fi
}
install_prerequisites() {
@@ -14,15 +22,14 @@
apt install --no-install-recommends --assume-yes \
bpftool \
clang \
+ g++ \
libbpf-dev \
- libgoogle-glog-dev \
- libstdc++-14-dev
+ libgoogle-glog-dev
}
build_port_listener() {
cp $(dirname $0)/src/* ${workdir}
- out_dir=${PWD}
- pushd ${workdir}
+ pushd ${workdir} > /dev/null
bpftool btf dump file /sys/kernel/btf/vmlinux format c > vmlinux.h
clang \
-O2 \
@@ -40,15 +47,16 @@
-o port_listener \
main.cc
cp port_listener ${out_dir}
- popd
+ popd > /dev/null
}
clean_up() {
- rm -rf ${workdir}
+ rm -rf ${workdir}
}
trap clean_up EXIT
workdir=$(mktemp -d)
check_sudo
+parse_options $@
install_prerequisites
build_port_listener