Merge "Build port_listener in debian VM" into main am: 3a68026957 am: e6296697d2
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Virtualization/+/3290126
Change-Id: Icdb2d4d97c26821a24c7103b60ce0d5562013586
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/build/debian/build.sh b/build/debian/build.sh
index c50e5e5..756bec9 100755
--- a/build/debian/build.sh
+++ b/build/debian/build.sh
@@ -101,7 +101,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
@@ -109,6 +109,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