uboot: Apply patches outside container
When running inside a rootless Podman container on a SELinux-enabled host, the `patch` command fails because it cannot copy SELinux labels from the original file to the patched file. This only happens patching files that are located in a bind mount.master
parent
025b7c6115
commit
b9696ab003
|
@ -5,14 +5,8 @@ set -e
|
||||||
|
|
||||||
. ./config
|
. ./config
|
||||||
|
|
||||||
|
./patch-uboot.sh
|
||||||
cd u-boot
|
cd u-boot
|
||||||
if [ ! -f .patched ]; then
|
|
||||||
for x in ../patches/uboot/*.patch; do
|
|
||||||
printf 'Applying patch %s ...\n' "${x##*/}"
|
|
||||||
patch -p1 < "${x}"
|
|
||||||
done
|
|
||||||
: > .patched
|
|
||||||
fi
|
|
||||||
cat configs/rpi_4_defconfig ../u-boot.config > configs/yellow_defconfig
|
cat configs/rpi_4_defconfig ../u-boot.config > configs/yellow_defconfig
|
||||||
make yellow_defconfig
|
make yellow_defconfig
|
||||||
CROSS_COMPILE=${target}- make
|
CROSS_COMPILE=${target}- make
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# vim: set sw=4 ts=4 sts=4 et :
|
||||||
|
|
||||||
|
if [ -f u-boot/.patched ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
rc=0
|
||||||
|
cd u-boot || exit
|
||||||
|
for x in ../patches/uboot/*.patch; do
|
||||||
|
[ -f "${x}" ] || continue
|
||||||
|
printf 'Applying patch %s ...\n' "${x##*/}"
|
||||||
|
patch -p1 < "${x}" || rc=$?
|
||||||
|
done
|
||||||
|
if [ $rc -eq 0 ]; then
|
||||||
|
: > .patched
|
||||||
|
fi
|
|
@ -20,6 +20,8 @@ cid=$(podman run \
|
||||||
python -c 'from signal import *;signal(SIGTERM, lambda x, y: None);pause()'
|
python -c 'from signal import *;signal(SIGTERM, lambda x, y: None);pause()'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
./patch-uboot.sh
|
||||||
|
|
||||||
podman exec -it ${cid} ./build-all.sh "${target}"
|
podman exec -it ${cid} ./build-all.sh "${target}"
|
||||||
|
|
||||||
podman stop ${cid}
|
podman stop ${cid}
|
||||||
|
|
Reference in New Issue