mirror of
https://codeberg.org/libreboot/lbmk.git
synced 2026-07-11 05:52:36 +02:00
Compare commits
5 Commits
26.01
...
chromebookwip1
| Author | SHA1 | Date | |
|---|---|---|---|
| eb5e77c6ac | |||
| 717fdf7e8a | |||
| b895756147 | |||
| b665f9705f | |||
| 405d8ff991 |
@@ -0,0 +1,128 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
# Copyright (c) 2025 Leah Rowe <leah@libreboot.org>
|
||||||
|
|
||||||
|
# Import MrChromebox project into xbmk
|
||||||
|
|
||||||
|
# NOTE: variable naming scheme:
|
||||||
|
# mr_ for variables/functions dealing with MrChromebox
|
||||||
|
# mx_ for variables/functions pertaining to Libreboot setup
|
||||||
|
# because i am a non-binary blob
|
||||||
|
|
||||||
|
spdx="# SPDX-License-Identifier: GPL-3.0-or-later"
|
||||||
|
|
||||||
|
# temporary work variables
|
||||||
|
mr_tmpdir="" # dir to clone tmp repos in
|
||||||
|
|
||||||
|
# NOTE: upstream for our purposes: https://review.coreboot.org/coreboot
|
||||||
|
mr_cbrepo="https://github.com/mrchromebox/coreboot"
|
||||||
|
mr_cbbranch="MrChromebox-2503" # branch in mrchromebox
|
||||||
|
mr_cbrev="ecd9fa6a177e00132ec214252a2b9cebbb01e25f" # relative to base
|
||||||
|
mr_cbrevbase="38f5f7c48024d9fca4b6bbd88914423c34da709c" # 25.03 upstream base
|
||||||
|
mr_cbtree="chromebook" # tree name in xbmk
|
||||||
|
|
||||||
|
# NOTE: upstream for our purposes: https://github.com/tianocore/edk2.git
|
||||||
|
mr_edk2repo="https://github.com/mrchromebox/edk2"
|
||||||
|
mr_edk2branch="uefipayload_2502" # branch in mrchromebox
|
||||||
|
mr_edk2rev="feaf6b976b7cc72a18ed364f273751c943a9e7d0" # relative to base
|
||||||
|
mr_edk2revbase="fbe0805b2091393406952e84724188f8c1941837" # 2025.02 upstream
|
||||||
|
mr_edk2tree="chromebook" # tree name in xbmk
|
||||||
|
|
||||||
|
# mxlibreboot was here
|
||||||
|
prep_mr_import()
|
||||||
|
{
|
||||||
|
mr_tmpdir="`mktemp -d || err "can't make mrtmpdir"`" || \
|
||||||
|
err "can't make mrtmpdir" "prep_mr_coreboot" "$@"
|
||||||
|
x_ remkdir "$mr_tmpdir"
|
||||||
|
|
||||||
|
prep_mx_edk2conf
|
||||||
|
|
||||||
|
prep_mr_projects
|
||||||
|
}
|
||||||
|
|
||||||
|
# create config/git/edk2/pkg.cfg
|
||||||
|
prep_mx_edk2conf()
|
||||||
|
{
|
||||||
|
x_ remkdir "config/git/edk2"
|
||||||
|
|
||||||
|
prep_mr_file "config/git/edk2/pkg.git" \
|
||||||
|
"$spdx" \
|
||||||
|
"" \
|
||||||
|
"rev=\"HEAD\"" \
|
||||||
|
"url=\"https://codeberg.org/libreboot/edk2\"" \
|
||||||
|
"bkup_url=\"https://git.disroot.org/libreboot/edk2\""
|
||||||
|
}
|
||||||
|
|
||||||
|
# prep config/PROJECT/TREE/ for various projects
|
||||||
|
prep_mr_projects()
|
||||||
|
{
|
||||||
|
prep_mr "coreboot" "$mr_cbrepo" "$mr_cbbranch" "$mr_cbrev" \
|
||||||
|
"$mr_cbrevbase" "$mr_cbtree"
|
||||||
|
prep_mr "edk2" "$mr_edk2repo" "$mr_edk2branch" "$mr_edk2rev" \
|
||||||
|
"$mr_edk2revbase" "$mr_edk2tree"
|
||||||
|
}
|
||||||
|
|
||||||
|
# create config/PROJECT/TREE/target.cfg
|
||||||
|
# and config/PROJECT/TREE/patches/
|
||||||
|
prep_mr()
|
||||||
|
{
|
||||||
|
mr_projectname="$1"
|
||||||
|
mr_repo="$2"
|
||||||
|
mr_branch="$3"
|
||||||
|
mr_rev="$4"
|
||||||
|
mr_revbase="$5"
|
||||||
|
mr_tree="$6"
|
||||||
|
|
||||||
|
x_ prep_mr_patch "$@"
|
||||||
|
|
||||||
|
prep_mr_file "config/$1/$6/target.cfg" \
|
||||||
|
"$spdx" \
|
||||||
|
"" \
|
||||||
|
"tree=\"$6\"" \
|
||||||
|
"rev=\"$5\""
|
||||||
|
}
|
||||||
|
|
||||||
|
prep_mr_patch()
|
||||||
|
{
|
||||||
|
mr_tmpclone="$mr_tmpdir/$1"
|
||||||
|
mx_patchdir="config/$1/$6/patches"
|
||||||
|
|
||||||
|
x_ git clone "$2" "$mr_tmpclone"
|
||||||
|
|
||||||
|
x_ git -C "$mr_tmpclone" checkout "$3"
|
||||||
|
x_ git -C "$mr_tmpclone" reset --hard "$4"
|
||||||
|
|
||||||
|
x_ remkdir "$mx_patchdir"
|
||||||
|
if [ "$4" != "$5" ]; then
|
||||||
|
x_ git -C "$mr_tmpclone" format-patch $5..HEAD
|
||||||
|
x_ mv "$mr_tmpclone"/*.patch "$mx_patchdir"
|
||||||
|
fi
|
||||||
|
# if no patches were created, rmdir will succeed
|
||||||
|
rmdir "$mx_patchdir" 1>/dev/null 2>/dev/null || :
|
||||||
|
|
||||||
|
x_ rm -Rf "$mr_tmpclone"
|
||||||
|
}
|
||||||
|
|
||||||
|
prep_mr_file()
|
||||||
|
{
|
||||||
|
mr_filename="$1"
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
x_ rm -f "$mr_filename"
|
||||||
|
|
||||||
|
while [ $# -gt 0 ]
|
||||||
|
do
|
||||||
|
if [ -f "$mr_filename" ]; then
|
||||||
|
printf "%s\n" "$1" >> "$mr_filename" || \
|
||||||
|
err "Can't write '$1' to '$mr_filename'" \
|
||||||
|
"prep_mr_file" "$@"
|
||||||
|
else
|
||||||
|
printf "%s\n" "$1" > "$mr_filename" || \
|
||||||
|
err "Can't write '$1' to '$mr_filename'" \
|
||||||
|
"prep_mr_file" "$@"
|
||||||
|
fi
|
||||||
|
shift 1
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "Created '%s'\n" "$mr_filename"
|
||||||
|
}
|
||||||
@@ -28,6 +28,7 @@ fi
|
|||||||
. "include/rom.sh"
|
. "include/rom.sh"
|
||||||
. "include/release.sh"
|
. "include/release.sh"
|
||||||
. "include/get.sh"
|
. "include/get.sh"
|
||||||
|
. "include/chromebook.sh"
|
||||||
|
|
||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
@@ -42,7 +43,7 @@ main()
|
|||||||
version)
|
version)
|
||||||
printf "%s\nWebsite: %s\n" "$relname" "$projectsite"
|
printf "%s\nWebsite: %s\n" "$relname" "$projectsite"
|
||||||
;;
|
;;
|
||||||
release|download|inject)
|
release|download|inject|prep_mr_import)
|
||||||
$cmd "$@"
|
$cmd "$@"
|
||||||
;;
|
;;
|
||||||
-*)
|
-*)
|
||||||
|
|||||||
Reference in New Issue
Block a user