build.sh: Add --with-lbwww-path to use a local lbwww git repository

The ideal situation would be to move integrate all the files of this
repository inside lbwww to be able to easily test local changes.

However that doesn't work as untitled expect lbwww to be in
untitled/www/lbwww and there is no way to configure that.

Using symlinks doesn't work either as untitled doesn't trust symlinks
as there are TOCTU attacks with it if the distribution doesn't
fs.protected_hardlinks and fs.protected_symlinks in sysctl.

Patching untitled is also not the best option here as it could
potentially add extra maintenance in the long run.

So we add the configuration inside lbwww-build instead.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@a-lec.org>
This commit is contained in:
Denis 'GNUtoo' Carikli 2023-03-22 02:18:54 +01:00
parent 84bb0a3076
commit 0259444361
Signed by: GNUtoo
GPG Key ID: 5F5DFCC14177E263
1 changed files with 18 additions and 3 deletions

View File

@ -17,6 +17,9 @@
# For compatibility with sysexits.h (see man 3 sysexits.h for more details)
EX_USAGE=64
lbwww_uri="https://git.sr.ht/~libreboot/lbwww"
lbwww_path=""
help()
{
echo "Usage: $0 [options]"
@ -24,11 +27,17 @@ help()
echo "Available options:"
echo -e "\t-h, --help"
echo -e "\t\tDisplay this help and exit."
echo -e "\t--with-lbwww-path PATH"
echo -e "\t\tUse a local lbwww directory from PATH\n" \
"\t\tinstead of downloading the latest version from\n" \
"\t\t${lbwww_uri}"
}
if [ $# -eq 1 ] && [ "$1" = "-h" -o "$1" == "--help" ] ; then
help
exit 0
elif [ $# -eq 2 ] && [ "$1" = "--with-lbwww-path" ] ; then
lbwww_path="$(realpath $2)"
elif [ $# -ne 0 ] ; then
help
exit ${EX_USAGE}
@ -45,11 +54,17 @@ fi
cd untitled && mkdir -p www && cd www
if [ ! -d lbwww ] ; then
git clone https://git.sr.ht/~libreboot/lbwww
else
if [ -z "${lbwww_path}" ] && [ ! -d lbwww ] ; then
git clone "${lbwww_uri}"
elif [ ! -d lbwww ] ; then
cp -a "${lbwww_path}" lbwww
elif [ -z "${lbwww_path}" ] ; then
git -C lbwww remote set-url origin "${lbwww_uri}"
git -C lbwww clean -dfx
git -C lbwww pull --rebase
else
rm -rf lbwww
cp -a "${lbwww_path}" lbwww
fi
if [ ! -d lbwww-img ] ; then