33 lines
1.5 KiB
Bash
Executable File
33 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -Eeuo pipefail
|
|
|
|
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)
|
|
PROJECT_DIR=$(cd -- "$SCRIPT_DIR/.." && pwd -P)
|
|
DEB=${1:-"$PROJECT_DIR/media/out/rk1-media-stack_20260721.1741+rk1.1_arm64.deb"}
|
|
[[ -f "$DEB" ]] || { echo "Missing media package: $DEB" >&2; exit 1; }
|
|
|
|
TEST_TMP=$(mktemp -d /tmp/rk1-media-package-test.XXXXXXXX)
|
|
trap 'rm -rf -- "$TEST_TMP"' EXIT
|
|
dpkg-deb --info "$DEB" >/dev/null
|
|
dpkg-deb --extract "$DEB" "$TEST_TMP/root"
|
|
dpkg-deb --control "$DEB" "$TEST_TMP/control"
|
|
|
|
[[ "$(dpkg-deb --field "$DEB" Package)" == rk1-media-stack ]]
|
|
[[ "$(dpkg-deb --field "$DEB" Architecture)" == arm64 ]]
|
|
if find "$TEST_TMP/root" \( -type d -o -type f \) -perm /0022 -print -quit | grep -q .; then
|
|
echo 'Package contains a group/world-writable path' >&2
|
|
exit 1
|
|
fi
|
|
! find "$TEST_TMP/root" -type f -name '*.a' -print -quit | grep -q .
|
|
! find "$TEST_TMP/root" -type d -name pkgconfig -print -quit | grep -q .
|
|
[[ -x "$TEST_TMP/root/opt/rkmedia/bin/ffmpeg-rk" ]]
|
|
[[ -x "$TEST_TMP/root/opt/rkmedia/bin/kodi-rk" ]]
|
|
[[ -f "$TEST_TMP/root/usr/lib/systemd/system/kodi-rk.service" ]]
|
|
[[ ! -e "$TEST_TMP/root/usr/lib/systemd/system/kodi.service" ]]
|
|
grep -q 'KERNEL=="rknpu\*"' "$TEST_TMP/root/usr/lib/udev/rules.d/70-rkmedia.rules"
|
|
grep -q 'udevadm trigger.*subsystem-match=drm' "$TEST_TMP/control/postinst"
|
|
! grep -q '^ConditionPathExists=/dev/dri/card0' \
|
|
"$TEST_TMP/root/usr/lib/systemd/system/kodi-rk.service"
|
|
|
|
echo "PASS: media package structure ($DEB)"
|