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) # For compatibility with sysexits.h (see man 3 sysexits.h for more details)
EX_USAGE=64 EX_USAGE=64
lbwww_uri="https://git.sr.ht/~libreboot/lbwww"
lbwww_path=""
help() help()
{ {
echo "Usage: $0 [options]" echo "Usage: $0 [options]"
@ -24,11 +27,17 @@ help()
echo "Available options:" echo "Available options:"
echo -e "\t-h, --help" echo -e "\t-h, --help"
echo -e "\t\tDisplay this help and exit." 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 if [ $# -eq 1 ] && [ "$1" = "-h" -o "$1" == "--help" ] ; then
help help
exit 0 exit 0
elif [ $# -eq 2 ] && [ "$1" = "--with-lbwww-path" ] ; then
lbwww_path="$(realpath $2)"
elif [ $# -ne 0 ] ; then elif [ $# -ne 0 ] ; then
help help
exit ${EX_USAGE} exit ${EX_USAGE}
@ -45,11 +54,17 @@ fi
cd untitled && mkdir -p www && cd www cd untitled && mkdir -p www && cd www
if [ ! -d lbwww ] ; then if [ -z "${lbwww_path}" ] && [ ! -d lbwww ] ; then
git clone https://git.sr.ht/~libreboot/lbwww git clone "${lbwww_uri}"
else 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 clean -dfx
git -C lbwww pull --rebase git -C lbwww pull --rebase
else
rm -rf lbwww
cp -a "${lbwww_path}" lbwww
fi fi
if [ ! -d lbwww-img ] ; then if [ ! -d lbwww-img ] ; then