2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-22 01:49:48 +00:00

61 lines
2.0 KiB
Bash
Raw Normal View History

#!/bin/bash
# SC2156 (warning): Injecting filenames is fragile and insecure. Use parameters.
# shellcheck disable=SC2156
set -eu
script_path="$(dirname "$(readlink -f "${0}")")"
cd "${script_path}/.."
# Use a wrapper function to allow "return 1" instead of "exit 1" which may have
# unforeseen consequences in case this script is sourced.
install_kea() {
# ccache
export CCACHE_DIR=/cache
export PATH="/usr/lib/ccache:$PATH"
export KEA_BUILD_DIR="${KEA_BUILD_DIR-/builds/isc-projects/kea}"
cxxflags='-gdwarf-4'
export CXX='g++'
export CXXFLAGS="${cxxflags}"
export LDFLAGS="${cxxflags}"
if ! meson setup build --prefix "${OUT}" -D b_lundef=false -D "b_sanitize=${SANITIZER}" -D fuzz=enabled -D tests=enabled; then
printf 'meson setup failed. Here is meson-log.txt:\n'
cat build/meson-logs/meson-log.txt
return 1
fi
meson compile -C build
meson install -C build
echo "${OUT}/lib" | sudo tee /etc/ld.so.conf.d/kea.conf
echo "${OUT}/lib/x86_64-linux-gnu" | sudo tee /etc/ld.so.conf.d/kea.conf
ldconfig
sudo ldconfig
# Copy internal libraries.
find "${OUT}/lib/" -name 'libkea-*.so*'
find "${OUT}/lib/" -name 'libkea-*.so*' -exec sh -c "cp {} ${KEA_BUILD_DIR}" ';'
find "${OUT}/lib/" -name 'libkea-*.so*' -exec sh -c "cp {} ${OUT}" ';'
find "${OUT}/lib/" -name 'libkea-*.so*' -exec sh -c "cp {} /lib/x86_64-linux-gnu/" ';'
# Copy the binaries.
for fuzzer in fuzz_config_kea_dhcp4 fuzz_http_endpoint_kea_dhcp4 fuzz_packets_kea_dhcp4 fuzz_unix_socket_kea_dhcp4 \
fuzz_config_kea_dhcp6 fuzz_http_endpoint_kea_dhcp6 fuzz_packets_kea_dhcp6 fuzz_unix_socket_kea_dhcp6 \
; do
cp "${OUT}/sbin/${fuzzer}" "${OUT}/${fuzzer}"
# Display some information for debugging.
ldd "${OUT}/${fuzzer}"
readelf -d "${OUT}/${fuzzer}" | grep -Ei 'R.*PATH' || true
# Copy all required libraries, although we want to specifically target external libraries.
for i in $(ldd "${OUT}/${fuzzer}" | cut -f 2 | cut -d ' ' -f 3); do
cp "${i}" "${KEA_BUILD_DIR}"
cp "${i}" "${OUT}"
done
done
}
install_kea