Revert "Remove most of Ferass's lbmk contributions"

This reverts commit a4ea286731.

The licensing audit has been abandoned. I will not be re-licensing
in bulk to MIT.

I can still use MIT license on new works, e.g. utilities, but there's
really no pressing need to re-license lbmk. It's just shell scripts,
and most of what it interacts with (coreboot, grub, seabios) is GPL
anyway.

So who cares?

Ferass's patch was removed due to refusal to re-license, but the
decision to re-license has been canceled.

I'm now aiming for a quick stable release.
fsdg20230625
Leah Rowe 2023-06-13 12:09:01 +01:00
parent 81bf2293df
commit 2e38ddaa9b
47 changed files with 127 additions and 100 deletions

View File

@ -7,6 +7,7 @@
# https://libreboot.org/docs/build/
#
# Copyright (C) 2020, 2021, 2023 Leah Rowe <info@minifree.org>
# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -22,11 +23,13 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
.PHONY: all check download modules ich9m-descriptors payloads roms release \
clean crossgcc-clean install-dependencies-ubuntu \
install-dependencies-debian install-dependencies-arch \
install-dependencies-void install-dependencies-fedora38 \
install-dependencies-parabola
.POSIX:
#.PHONY: all check download modules ich9m-descriptors payloads roms release \
# clean crossgcc-clean install-dependencies-ubuntu \
# install-dependencies-debian install-dependencies-arch \
# install-dependencies-void install-dependencies-fedora38 \
# install-dependencies-parabola
all: roms

View File

@ -1,6 +1,7 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# SPDX-FileCopyrightText: 2022 Caleb La Grange <thonkpeasant@protonmail.com>
# SPDX-FileCopyrightText: 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
# SPDX-FileCopyrightText: 2023 Leah Rowe <leah@libreboot.org>
# SPDX-License-Identifier: GPL-3.0-only
@ -47,7 +48,9 @@ read_config()
bkup_url=${2}
;;
esac
done <<< $(eval "awk '${awkstr}' resources/git/revisions")
done << EOF
$(eval "awk '${awkstr}' resources/git/revisions")
EOF
}
verify_config()

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
#
# helper script: build coreboot images with various payloads
@ -7,6 +7,7 @@
# <info@minifree.org>
# Copyright (C) 2015 Klemens Nanni <contact@autoboot.org>
# Copyright (C) 2022 Caleb La Grange <thonkpeasant@protonmail.com>
# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -30,7 +31,7 @@ set -u -e
projectname="$(cat projectname)"
opts=""
boards=""
boards=
firstoption="${1}"
main()
@ -49,19 +50,19 @@ main()
exit 0
fi
while [[ $# > 0 ]]; do
while [ $# -gt 0 ]; do
case ${1} in
-d)
opts+=" -d ${2}"
opts="${opts} -d ${2}"
shift ;;
-p)
opts+=" -p ${2}"
opts="${opts} -p ${2}"
shift ;;
-k)
opts+=" -k ${2}"
opts="${opts} -k ${2}"
shift ;;
*)
boards+=" ${1} " ;;
boards="${boards} ${1} " ;;
esac
shift
done

View File

@ -1,9 +1,10 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: create ROM images for a given mainboard
#
# Copyright (C) 2020,2021,2023 Leah Rowe <info@minifree.org>
# Copyright (C) 2021 Ferass El Hafidi <vitali64pmemail@protonmail.com>
# Copyright (C) 2021,2022 Ferass El Hafidi
# <vitali64pmemail@protonmail.com>
# Copyright (C) 2022 Caleb La Grange <thonkpeasant@protonmail.com>
# Copyright (C) 2022 Alper Nebi Yasak <alpernebiyasak@gmail.com>
#
@ -63,16 +64,16 @@ CROSS_COMPILE=""
main()
{
while [[ $# > 0 ]]; do
while [ $# -gt 0 ]; do
case ${1} in
-d)
displaymodes+="${2}"
displaymodes="${displaymodes}${2}"
shift ;;
-p)
payloads+="${2}"
payloads="${payloads}${2}"
shift ;;
-k)
keyboard_layouts+="${2}"
keyboard_layouts="${keyboard_layouts}${2}"
shift ;;
*)
board=${1} ;;
@ -107,7 +108,7 @@ load_config()
exit 1
fi
source "${boardcfgdir}/board.cfg"
. "${boardcfgdir}/board.cfg"
if [ "${board}" != "${cbtree}" ]; then
cbdir="coreboot/${cbtree}"
@ -554,11 +555,11 @@ mkRomsWithGrub()
keymaps=""
if [ -z ${keyboard_layouts} ]; then
for kmapfile in "${kmapdir}"/*; do
keymaps+=" ${kmapfile}"
keymaps="${keymaps} ${kmapfile}"
done
else
for keymapname in ${keyboard_layouts}; do
keymaps+=" ${kmapdir}/${keymapname}.gkb"
keymaps="${keymaps} ${kmapdir}/${keymapname}.gkb"
done
fi
for keymapfile in ${keymaps}; do
@ -694,10 +695,11 @@ moverom()
if [ "${cuttype}" = "i945 laptop" ]; then
dd if=${_newrom} of=top64k.bin bs=1 \
skip=$[$(stat -c %s ${_newrom}) - 0x10000] \
skip=$(($(stat -c %s ${_newrom}) - 0x10000)) \
count=64k
dd if=top64k.bin of=${_newrom} bs=1 seek=$[$(stat -c %s \
${_newrom}) - 0x20000] count=64k conv=notrunc
dd if=top64k.bin of=${_newrom} bs=1 \
seek=$(($(stat -c %s ${_newrom}) - 0x20000)) \
count=64k conv=notrunc
rm -f top64k.bin
return 0
fi

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: clean the dependencies that were built in coreboot
#
@ -38,7 +38,7 @@ for board in coreboot/*; do
make -C "${board}/" distclean
# Clean its utilities as well
for util in {cbfs,ifd,nvram}tool cbmem; do
for util in cbfstool ifdtool nvramtool cbmem; do
make -C "${board}/util/${util}/" clean
done
make -C "${board}/payloads/libpayload/" distclean

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: clean the crossgcc builds
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: clean the dependencies that were built in flashrom
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: clean the dependencies that were built in GRUB
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: clean the previous build of ich9utils
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: clean the dependencies that were built in memtest86+
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: nothing to see here, forks!
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: delete the ROM images
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: clean the dependencies that were built in seabios
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: clean the u-boot builds
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# arch script: installs build dependencies for Arch Linux
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# ubuntu2004 script: installs build dependencies for Ubuntu 20.04
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# Fedora script: installs build dependencies for Fedora
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# parabola script: installs build dependencies for Parabola GNU/Linux-libre
# based on the arch script

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# ubuntu2004 script: installs build dependencies for Ubuntu 20.04
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# void script: installs build dependencies for Void Linux
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# Copyright (C) 2020, 2023 Leah Rowe <info@minifree.org>
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: build various coreboot utilities
#
@ -44,7 +44,7 @@ build_for_mainboard() {
[ ! -f "resources/coreboot/${board}/board.cfg" ] && \
continue
cbtree="undefined"
source "resources/coreboot/${board}/board.cfg" # source
. "resources/coreboot/${board}/board.cfg" # source
if [ "${cbtree}" = "undefined" ]; then
printf "build/cbutils: improper cbtree definition for '%s'" \
"${board}"
@ -58,7 +58,7 @@ buildutils() {
if [ ! -d "coreboot/${cbtree}/" ]; then
./download coreboot $cbtree || return 1
fi
for util in {cbfs,ifd}tool; do
for util in cbfstool ifdtool; do
make -j$(nproc) -BC "coreboot/${cbtree}/util/${util}/" \
|| return 1
done

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: builds flashrom source code
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: builds GRUB2 source code
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: build ich9utils
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: builds memtest86+ source code
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# generate GRUB ELF files (coreboot payload) and configuration files
#
@ -24,7 +24,7 @@ set -u -e
grubcfgsdir="resources/grub"
keymap=""
source "${grubcfgsdir}/modules.list"
. "${grubcfgsdir}/modules.list"
main()
{

View File

@ -1,8 +1,9 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: builds SeaBIOS source code
#
# Copyright (C) 2020, 2021, 2023 Leah Rowe <info@minifree.org>
# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -36,7 +37,9 @@ main()
done
# clean it again. gotta keep it clean!
[[ -f Makefile ]] && make -C seabios distclean
if [ -f seabios/Makefile ]; then
make distclean -BC seabios || exit 1
fi
printf "Done! SeaBIOS files are in %s/\n\n" ${payloaddir}
}

View File

@ -3,6 +3,7 @@
# helper script: builds U-Boot source code
#
# Copyright (C) 2022 Alper Nebi Yasak <alpernebiyasak@gmail.com>
# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
# Copyright (C) 2023 Leah Rowe <leah@libreboot.org>
#
# This program is free software: you can redistribute it and/or modify
@ -96,7 +97,7 @@ handle_dependencies()
fi
# Override the above defaults using board.cfg
source "${board_dir}/board.cfg" # source
. "${board_dir}/board.cfg" # source
if [ "${ubtree}" = "undefined" ]; then
printf "build/u-boot %s: ubtree undefined\n" \
@ -161,7 +162,12 @@ build_uboot_elf()
make -C "${ubdir}" olddefconfig
make -C "${ubdir}" -j"$(nproc)" all
for f in "${ubdir}"/u-boot{,.bin,.dtb,.img,.itb,.elf}; do
for f in "${ubdir}"/u-boot "${ubdir}"/u-boot.bin \
"${ubdir}"/u-boot.dtb \
"${ubdir}"/u-boot.img \
"${ubdir}"/u-boot.itb \
"${ubdir}"/u-boot.elf
do
if [ -f "$f" ]; then
mv "$f" "${dest_dir}/"
fi

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: generate release archive (ROM images)
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: generate release archive (source code)
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# Copyright (C) 2021 Leah Rowe <info@minifree.org>
#

View File

@ -1,8 +1,9 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: modify coreboot configs (run make menuconfig)
#
# Copyright (C) 2021, 2023 Leah Rowe <info@minifree.org>
# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -49,7 +50,7 @@ modifyconf() {
fi
cbtree=""
source "resources/coreboot/${board}/board.cfg" # source
. "resources/coreboot/${board}/board.cfg" # source
if [ -z ${cbtree} ]; then
return 0

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: modify coreboot configs (run make menuconfig)
#

View File

@ -1,8 +1,9 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: modify U-Boot configs (run make menuconfig)
#
# Copyright (C) 2022 Alper Nebi Yasak <alpernebiyasak@gmail.com>
# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
# Copyright (C) 2023 Leah Rowe <info@minifree.org>
#
# This program is free software: you can redistribute it and/or modify
@ -50,7 +51,7 @@ modifyconf()
fi
ubtree="undefined"
source "resources/u-boot/${board}/board.cfg" # source
. "resources/u-boot/${board}/board.cfg" # source
if [ "${ubtree}" = "undefined" ]; then
return 0

View File

@ -1,6 +1,7 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# SPDX-FileCopyrightText: 2022 Caleb La Grange <thonkpeasant@protonmail.com>
# SPDX-FileCopyrightText: 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
# SPDX-FileCopyrightText: 2023 Leah Rowe <info@minifree.org>
# SPDX-License-Identifier: GPL-3.0-only
@ -63,23 +64,23 @@ detect_firmware()
. "${boarddir}/board.cfg"
if [ "${CONFIG_HAVE_MRC}" = "y" ]; then
needs+=" MRC"
needs="${needs} MRC"
fi
if [ "${CONFIG_HAVE_IFD_BIN}" = "y" ]; then
needs+=" IFD"
needs="${needs} IFD"
fi
if [ "${CONFIG_HAVE_ME_BIN}" = "y" ]; then
needs+=" ME"
needs="${needs} ME"
fi
if [ "${CONFIG_HAVE_GBE_BIN}" = "y" ]; then
needs+=" GBE"
needs="${needs} GBE"
fi
if [ "${CONFIG_KBC1126_FIRMWARE}" = "y" ]; then
needs+=" EC"
needs="${needs} EC"
fi
if [ "${CONFIG_BOARD_DELL_E6400}" = "y" ] \
&& [ "${CONFIG_VGA_BIOS_FILE}" != "" ]; then
needs+=" E6400VGA"
needs="${needs} E6400VGA"
fi
if [ -z ${needs+x} ]; then
printf 'No binary blobs needed for this board\n'
@ -142,7 +143,9 @@ scan_sources_config()
e6400_vga_romname=${2}
;;
esac
done <<< $(eval "awk '${awkstr}' resources/blobs/sources")
done << EOF
$(eval "awk '${awkstr}' resources/blobs/sources")
EOF
}
build_dependencies()
@ -178,16 +181,16 @@ download_blobs()
for need in ${needs}; do
case ${need} in
*ME*)
download_blob_intel_me || _failed+=" me"
download_blob_intel_me || _failed="${_failed} me"
;;
*EC*)
download_ec || _failed+=" ec"
download_ec || _failed="${_failed} ec"
;;
*E6400VGA*)
download_e6400vga || _failed+=" e6400vga"
download_e6400vga || _failed="${_failed} e6400vga"
;;
*MRC*)
./download mrc || _failed+=" mrc"
./download mrc || _failed="${_failed} mrc"
;;
esac
done

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# script to automate extracting blobs from an existing vendor bios
# SPDX-FileCopyrightText: 2022 Caleb La Grange <thonkpeasant@protonmail.com>

View File

@ -1,6 +1,7 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# SPDX-FileCopyrightText: 2022 Caleb La Grange <thonkpeasant@protonmail.com>
# SPDX-FileCopyrightText: 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
# SPDX-FileCopyrightText: 2023 Leah Rowe <info@minifree.org>
# SPDX-License-Identifier: GPL-3.0-only
@ -111,10 +112,10 @@ detect_board()
filename=$(basename ${path})
case ${filename} in
grub_*)
board=$(cut -d '_' -f2-3 <<<${filename})
board=$(echo "${filename}" | cut -d '_' -f2-3)
;;
seabios_withgrub_*)
board=$(cut -d '_' -f3-4 <<<${filename})
board=$(echo "${filename}" | cut -d '_' -f3-4)
;;
*.tar.xz)
_stripped_prefix=${filename#*_}

View File

@ -1,9 +1,10 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
#
# helper script: update coreboot configs (run make oldconfig)
#
# Copyright (C) 2021 Leah Rowe <info@minifree.org>
# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -54,7 +55,7 @@ updateconf()
if [ -f "${boarddir}/board.cfg" ]; then
cbtree="undefined"
source "${boarddir}/board.cfg" # source
. "${boarddir}/board.cfg" # source
if [ "${cbtree}" = "undefined" ]; then
return 0
fi

View File

@ -1,9 +1,10 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: download coreboot
#
# Copyright (C) 2014-2016,2020,2021,2023 Leah Rowe <info@minifree.org>
# Copyright (C) 2022 Alper Nebi Yasak <alpernebiyasak@gmail.com>
# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -86,7 +87,7 @@ fetch_coreboot_config()
check_config_for_board "${_board}" || return 1
# This is to override $cbrevision and $cbtree
source "${cbcfgsdir}/${_board}/board.cfg" || exit 1
. "${cbcfgsdir}/${_board}/board.cfg" || exit 1
if [ "${_board}" != "${cbtree}" ]; then
_board="${cbtree}"

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: downloads flashrom and patches it
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: Downloads GRUB and patches it.
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
#
# Copyright (C) 2020 Leah Rowe <info@minifree.org>
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: Downloads MemTest86+ and patches it
#

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
#
# Copyright (C) 2015, 2016, 2021 Leah Rowe <info@minifree.org>
#

View File

@ -1,9 +1,10 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
# helper script: download u-boot
#
# Copyright (C) 2021 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
# Copyright (C) 2022 Alper Nebi Yasak <alpernebiyasak@gmail.com>
# Copyright (C) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -22,7 +23,7 @@
[ "x${DEBUG+set}" = 'xset' ] && set -v
set -u -e
[[ -f build_error ]] && rm -f build_error
[ -f build_error ] && rm -f build_error
list_supported_boards() {
for board in resources/u-boot/*; do
@ -55,7 +56,7 @@ downloadfor() {
fi
# This is to override $ubrevision and $ubtree
source "resources/u-boot/${board}/board.cfg" || touch build_error
. "resources/u-boot/${board}/board.cfg" || touch build_error
if [ -f build_error ]; then
printf "ERROR: %s: problem sourcing %s/board.cfg\n" \
"download/u-boot" "${board}"
@ -239,10 +240,10 @@ if [ $# -eq 0 ] ; then
download_uboot_board "${board}"
done
exit 0
elif [ $# -eq 1 -a "$1" == "--help" ] ; then
elif [ $# -eq 1 ] && [ "$1" = "--help" ] ; then
usage
exit 0
elif [ $# -eq 1 -a "$1" == "--list-boards" ] ; then
elif [ $# -eq 1 ] && [ "$1" = "--list-boards" ] ; then
list_supported_boards
exit 0
elif [ $# -eq 1 ] ; then

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
#
# helper script: update U-Boot configs (run make oldconfig)
@ -33,7 +33,7 @@ updateconf() {
board="$1"
if [ -f "resources/u-boot/${board}/board.cfg" ]; then
ubtree="undefined"
source "resources/u-boot/${board}/board.cfg" # source
. "resources/u-boot/${board}/board.cfg" # source
if [ "${ubtree}" = "undefined" ]; then
return 0
fi