summaryrefslogtreecommitdiff
path: root/resources/scripts/update/module/coreboot
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2023-07-08 23:00:00 +0100
committerLeah Rowe <leah@libreboot.org>2023-07-08 23:45:57 +0100
commit0f09c0d72b0e76cbf29d633e44fbf4495f1f2f56 (patch)
treeebcd223063c694cf5657c21104f43f3d54b53d4c /resources/scripts/update/module/coreboot
parent2bbb4c839a8224b17c7929b7ea612085d1351d20 (diff)
download/coreboot: re-add book-burning support
see: https://en.wikipedia.org/wiki/Book_burning i'll actually update blobs.list for each coreboot rev in a subsequent commit. this logic was taken from an old libreboot revision, which uses different coreboot revisions. as i write this, i'm running deblob-check from linux-libre deblob scripts. my process is: i just check each file and decide whether it's a blob, or like, test data. in some cases it flags other false positives, like... a C source file that has a bunch of magic numbers in it for things (not a blob) Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'resources/scripts/update/module/coreboot')
-rwxr-xr-xresources/scripts/update/module/coreboot91
1 files changed, 90 insertions, 1 deletions
diff --git a/resources/scripts/update/module/coreboot b/resources/scripts/update/module/coreboot
index 2e78636b..70618412 100755
--- a/resources/scripts/update/module/coreboot
+++ b/resources/scripts/update/module/coreboot
@@ -27,6 +27,16 @@ _board=""
cbtree=""
cbrevision=""
+# NODELETE= ./download coreboot
+# usage: NODELETE= ./download coreboot
+# if you do this, .git* won't be removed, nor will blobs
+# this is useful for working on patches to a coreboot tree,
+# in git, then then add in the build system
+nodelete="false"
+if [ "x${NODELETE+set}" = 'xset' ]; then
+ nodelete="true"
+fi
+
cbcfgsdir="resources/coreboot"
main()
@@ -49,6 +59,7 @@ main()
download_coreboot_for_board "${board}"
done
+ censor_blobs
rm -f ${cbcfgsdir}/*/seen
}
@@ -153,7 +164,7 @@ prepare_new_coreboot_tree()
|| err "cannot cd to coreboot/${cbtree}"
git reset --hard ${cbrevision} \
|| err "cannot reset coreboot revision for tree, ${cbtree}"
- git submodule update --init --checkout \
+ git submodule update --init \
|| err "cannot update coreboot submodules for tree, ${cbtree}"
for patch in ../../"${cbcfgsdir}"/"${cbtree}"/patches/*.patch; do
@@ -174,6 +185,84 @@ prepare_new_coreboot_tree()
)
}
+censor_blobs()
+{
+ if [ "${nodelete}" = "true" ]; then
+ return
+ fi
+
+ printf "Doing this to coreboot: https://en.wikipedia.org/wiki/Book_burning\n"
+ printf "Whatever you do, don't read: https://libreboot.org/news/policy.html\n"
+
+ rm -Rf coreboot/coreboot/
+ rm -Rf coreboot/.git* coreboot/*/.git* \
+ coreboot/*/3rdparty/*/.git*
+ rm -Rf coreboot/*/util/nvidia/cbootimage/.git*
+
+ # Also delete that nasty evil documentation that
+ # tells users how to install coreboot, because those
+ # evil coreboot people recommend blobs sometimes. /s
+ rm -Rf coreboot/*/Documentation
+
+ # it's basically book-burning. GNU FSDG policy == censorship.
+ # https://en.wikipedia.org/wiki/Book_burning
+
+ # there is a much better way:
+ # https://libreboot.org/news/policy.html
+
+ # but this version of libreboot is designed for the FSF
+ # to use in their GNU Boot project.
+
+ # and i guarantee you, they will remove the above comments
+ # if they fork this code.
+
+ # *they* will call it FREEDOM.
+
+ # but it's not. they're removing your freedom to choose.
+ # and censoring everything they don't like.
+
+ # they will decide what is good for you.
+ # they will decide against you.
+ # and if you fell for their propaganda, you'll feel
+ # pure. despite the fact that your machine is still
+ # full of blobs, even if the boot flash is blob-free.
+ # see:
+ # https://libreboot.org/faq.html#what-other-firmware-exists-outside-of-libreboot
+
+ # this, despite the fact that libreboot is a free software
+ # project. they call it non-free. the truth is written here:
+
+ # https://libreboot.org/freedom-status.html
+
+ for cbdir in coreboot/*; do
+ if [ ! -d "${cbdir}" ]; then continue; fi
+ cbtree="${cbdir##coreboot/}"
+ cbtree="${cbtree%/}"
+ if [ ! -d "coreboot/${cbtree}" ]; then continue; fi
+ bloblist="resources/coreboot/${cbtree}/blobs.list"
+ if [ -f "${bloblist}" ]; then
+ for blobfile in $(cat "${bloblist}"); do
+ printf "Deleting blob: 'coreboot/%s/%s'\n" \
+ "${cbtree}" "${blobfile}"
+ rm -f "coreboot/${cbtree}/${blobfile}"
+ done
+ else
+ printf "WARNING blobs.list unavailable for %s" \
+ ${cbtree} 1>&2
+ fi
+ rmlist="resources/coreboot/${cbtree}/rm.list"
+ if [ -f "${rmlist}" ]; then
+ for rmentry in $(cat "${rmlist}"); do
+ printf "Deleting directory to save space: "
+ printf "'coreboot/%s/%s'\n" \
+ "${cbtree}" "${rmentry}"
+ rm -Rf "coreboot/${cbtree}/${rmentry}"
+ done
+ fi
+ done
+
+}
+
err()
{
printf "ERROR: %s: %s\n" $0 $1 1>&2