remove download scripts, consolidate into script

most of them were just calling the gitclone script,
so remove them.

the grub script was treating gnulib as a dependency.
i've now added the ability to grab 1 dependency, in
the gitclone script (it should be expanded later to
support multiple dependencies)

the gitclone script has been renamed to "fetch".
the "fetch_trees" script does more or less the same
thing, but calls "fetch" and handles multiple revisions
if a project needs that

this is more efficient, and slightly reduces the code
size of lbmk!

Signed-off-by: Leah Rowe <leah@libreboot.org>
btrfsvols
Leah Rowe 2023-08-17 11:41:58 +01:00
parent 8459e33bbc
commit 0848622799
27 changed files with 44 additions and 247 deletions

View File

@ -25,7 +25,7 @@
.POSIX: .POSIX:
#.PHONY: all check download modules ich9m-descriptors payloads roms release \ #.PHONY: all check modules ich9m-descriptors payloads roms release \
# clean crossgcc-clean install-dependencies-ubuntu \ # clean crossgcc-clean install-dependencies-ubuntu \
# install-dependencies-debian install-dependencies-arch \ # install-dependencies-debian install-dependencies-arch \
# install-dependencies-void install-dependencies-fedora38 \ # install-dependencies-void install-dependencies-fedora38 \
@ -33,9 +33,6 @@
all: roms all: roms
download:
./download all
modules: modules:
./build module all ./build module all

View File

@ -1 +0,0 @@
lbmk

View File

@ -11,6 +11,7 @@ location=""
url="" url=""
bkup_url="" bkup_url=""
tmp_dir="" tmp_dir=""
depend=""
main() main()
{ {
@ -25,6 +26,13 @@ main()
clone_project clone_project
# dependencies are downloaded *after*
# to account for cases like gnulib in grub where
# the dependency (gnulib) goes inside the main repo (grub)
if [ "${depend}" != "" ]; then
./fetch ${depend} || exit 1
fi
# clean in case of failure # clean in case of failure
rm -Rf ${tmp_dir} >/dev/null 2>&1 || exit 1 rm -Rf ${tmp_dir} >/dev/null 2>&1 || exit 1
} }
@ -47,6 +55,9 @@ read_config()
bkup_url:*) bkup_url:*)
bkup_url=${2} bkup_url=${2}
;; ;;
depend:*)
depend=${2}
;;
esac esac
done << EOF done << EOF
$(eval "awk '${awkstr}' resources/git/revisions") $(eval "awk '${awkstr}' resources/git/revisions")
@ -105,7 +116,7 @@ patch_project()
usage() usage()
{ {
cat <<- EOF cat <<- EOF
Usage: ./gitclone [name] Usage: ./fetch [name]
Options: Options:
name: Module name as specified in resources/git/revisions name: Module name as specified in resources/git/revisions

View File

@ -78,7 +78,7 @@ download_for_target()
return 0 return 0
fi fi
gitclone_from_upstream || exit 1 fetch_from_upstream || exit 1
prepare_new_tree "${1}" "${tree}" "${rev}" \ prepare_new_tree "${1}" "${tree}" "${rev}" \
|| exit 1 || exit 1
@ -133,7 +133,7 @@ check_config_for_target()
touch "${cfgsdir}/${_target}/seen" touch "${cfgsdir}/${_target}/seen"
} }
gitclone_from_upstream() fetch_from_upstream()
{ {
[ ! -d "${project}" ] && \ [ ! -d "${project}" ] && \
mkdir -p "${project}" mkdir -p "${project}"
@ -141,7 +141,7 @@ gitclone_from_upstream()
return 1 return 1
[ -d "${project}/${project}" ] && \ [ -d "${project}/${project}" ] && \
return 0 return 0
./gitclone ${project} || \ ./fetch ${project} || \
return 1 return 1
} }

3
lbmk
View File

@ -33,9 +33,6 @@ main()
{ {
if [ "${0##*/}" = "lbmk" ]; then if [ "${0##*/}" = "lbmk" ]; then
die "Do not run the lbmk script directly!" die "Do not run the lbmk script directly!"
elif [ "${0##*/}" = "download" ]; then
./update module $@ || exit 1
exit 0
elif [ "${0##*/}" = "blobutil" ]; then elif [ "${0##*/}" = "blobutil" ]; then
./update blobs $@ || exit 1 ./update blobs $@ || exit 1
exit 0 exit 0

View File

@ -3,7 +3,7 @@
# Project name is enclosed by curly braces '{}' information about the # Project name is enclosed by curly braces '{}' information about the
# project relevant to osbmk is stored between the subsequent curly # project relevant to osbmk is stored between the subsequent curly
# braces. This file is used by the gitcheck script as well as the # braces. This file is used by the gitcheck script as well as the
# gitclone script. Each entry must include: revision 'rev', location # fetch script. Each entry must include: revision 'rev', location
# 'loc', and the git url 'url'. Bkup_url is optional. # 'loc', and the git url 'url'. Bkup_url is optional.
{coreboot}{ {coreboot}{
@ -25,6 +25,7 @@
loc: grub loc: grub
url: git://git.savannah.gnu.org/grub.git url: git://git.savannah.gnu.org/grub.git
bkup_url: http://git.savannah.gnu.org/r/grub.git bkup_url: http://git.savannah.gnu.org/r/grub.git
depend: gnulib
} }
{gnulib}{ {gnulib}{

View File

@ -25,7 +25,7 @@ set -u -e
# -------------------------------------------------------------------- # --------------------------------------------------------------------
if [ ! -d "bios_extract/" ]; then if [ ! -d "bios_extract/" ]; then
./download bios_extract ./fetch bios_extract
fi fi
printf "Building bios_extract\n" printf "Building bios_extract\n"

View File

@ -29,7 +29,7 @@ set -u -e
# -------------------------------------------------------------------- # --------------------------------------------------------------------
if [ ! -d "flashrom/" ]; then if [ ! -d "flashrom/" ]; then
./download flashrom ./fetch flashrom
fi fi
printf "Building flashrom\n" printf "Building flashrom\n"

View File

@ -27,7 +27,7 @@ main()
printf "Building GRUB\n" printf "Building GRUB\n"
if [ ! -d "grub/" ]; then if [ ! -d "grub/" ]; then
./download grub || exit 1 ./fetch grub || exit 1
fi fi
build_grub build_grub

View File

@ -31,7 +31,7 @@ set -u -e
printf "Building MemTest86+\n" printf "Building MemTest86+\n"
if [ ! -d "memtest86plus/" ]; then if [ ! -d "memtest86plus/" ]; then
./download memtest86plus ./fetch memtest86plus
fi fi
make -j$(nproc) -BC memtest86plus make -j$(nproc) -BC memtest86plus

View File

@ -24,7 +24,7 @@ set -u -e
main() main()
{ {
if [ ! -d "uefitool" ]; then if [ ! -d "uefitool" ]; then
./download uefitool || fail "cannot download uefitool" ./fetch uefitool || fail "cannot download uefitool"
fi fi
printf "Building uefitool (UEFIExtract)\n" printf "Building uefitool (UEFIExtract)\n"

View File

@ -31,7 +31,7 @@ main()
printf "Creating GRUB payloads and configuration files\n" printf "Creating GRUB payloads and configuration files\n"
[ ! -d "grub/" ] && \ [ ! -d "grub/" ] && \
./download grub ./fetch grub
[ ! -f "grub/grub-mkstandalone" ] && \ [ ! -f "grub/grub-mkstandalone" ] && \
./build module grub ./build module grub
[ ! -d "payload/" ] && \ [ ! -d "payload/" ] && \

View File

@ -53,7 +53,7 @@ check_dependencies()
rm -f ${payloaddir}/* || exit 1 rm -f ${payloaddir}/* || exit 1
if [ ! -d "seabios/" ]; then if [ ! -d "seabios/" ]; then
./download seabios || exit 1 ./fetch seabios || exit 1
fi fi
} }

View File

@ -23,14 +23,14 @@ set -u -e
projectname="$(cat projectname)" projectname="$(cat projectname)"
trees_gitclone_list="coreboot u-boot" trees_fetch_list="coreboot u-boot"
simple_gitclone_list="flashrom grub memtest86plus seabios me_cleaner uefitool" simple_fetch_list="flashrom grub memtest86plus seabios me_cleaner uefitool"
simple_gitclone_list="${simple_gitclone_list} bios_extract biosutilities" simple_fetch_list="${simple_fetch_list} bios_extract biosutilities"
dirlist="resources util" # do not add blobs directory here. it's handled below dirlist="resources util" # do not add blobs directory here. it's handled below
filelist="lbmk blobutil modify download build README.md COPYING Makefile update" filelist="lbmk blobutil modify build README.md COPYING Makefile update"
filelist="${filelist} version versiondate projectname .gitcheck gitclone" filelist="${filelist} version versiondate projectname .gitcheck fetch"
filelist="${filelist} fetch_trees" filelist="${filelist} fetch_trees"
version="version-unknown" version="version-unknown"
@ -77,19 +77,19 @@ create_release_directory()
download_modules() download_modules()
{ {
for modname in ${trees_gitclone_list}; do for modname in ${trees_fetch_list}; do
[ ! -d "${modname}" ] && \ [ ! -d "${modname}" ] && \
./fetch_trees ${modname} ./fetch_trees ${modname}
done done
for modname in ${simple_gitclone_list}; do for modname in ${simple_fetch_list}; do
[ ! -d "${modname}/" ] && \ [ ! -d "${modname}/" ] && \
./download ${modname} ./fetch ${modname}
done done
} }
copy_files() copy_files()
{ {
for dir in ${simple_gitclone_list} ${dirlist}; do for dir in ${simple_fetch_list} ${dirlist}; do
cp -R "${dir}/" "${srcdir}/" cp -R "${dir}/" "${srcdir}/"
done done

View File

@ -30,7 +30,7 @@ main()
download_seabios() download_seabios()
{ {
if [ ! -d "seabios" ]; then if [ ! -d "seabios" ]; then
./download seabios ./fetch seabios
fi fi
if [ ! -d "seabios" ]; then if [ ! -d "seabios" ]; then
printf "error: Failed to download SeaBIOS. " printf "error: Failed to download SeaBIOS. "

View File

@ -184,7 +184,7 @@ build_dependencies()
{ {
if [ ! -d me_cleaner ]; then if [ ! -d me_cleaner ]; then
printf "downloading me_cleaner\n" printf "downloading me_cleaner\n"
./download me_cleaner || fail "could not download me_cleaner" ./fetch me_cleaner || fail "could not download me_cleaner"
fi fi
if [ ! -d ${cbdir} ]; then if [ ! -d ${cbdir} ]; then
printf "downloading coreboot\n" printf "downloading coreboot\n"
@ -193,17 +193,17 @@ build_dependencies()
fi fi
if [ ! -d bios_extract ]; then if [ ! -d bios_extract ]; then
printf "downloading bios_extract\n" printf "downloading bios_extract\n"
./download bios_extract \ ./fetch bios_extract \
|| fail "could not download bios_extract" || fail "could not download bios_extract"
fi fi
if [ ! -d biosutilities ]; then if [ ! -d biosutilities ]; then
printf "downloading biosutilities\n" printf "downloading biosutilities\n"
./download biosutilities \ ./fetch biosutilities \
|| fail "could not download biosutilities" || fail "could not download biosutilities"
fi fi
if [ ! -d uefitool ]; then if [ ! -d uefitool ]; then
printf "download uefitool (for UEFIExtract)\n" printf "download uefitool (for UEFIExtract)\n"
./download uefitool \ ./fetch uefitool \
|| fail "could not download uefitool" || fail "could not download uefitool"
fi fi
if [ ! -f uefitool/uefiextract ]; then if [ ! -f uefitool/uefiextract ]; then
@ -239,7 +239,7 @@ download_blobs()
download_e6400vga || _failed="${_failed} e6400vga" download_e6400vga || _failed="${_failed} e6400vga"
;; ;;
*MRC*) *MRC*)
./download mrc || _failed="${_failed} mrc" ./update blobs mrc || _failed="${_failed} mrc"
;; ;;
esac esac
done done

View File

@ -58,10 +58,10 @@ build_dependencies()
{ {
if [ ! -d me_cleaner ]; then if [ ! -d me_cleaner ]; then
printf "downloading me_cleaner\n" printf "downloading me_cleaner\n"
./download me_cleaner || fail 'could not download me_cleaner' ./fetch me_cleaner || fail 'could not download me_cleaner'
else else
printf "me_cleaner already downloaded. Skipping.\n" printf "me_cleaner already downloaded. Skipping.\n"
printf "run ./download me_cleaner to manually overwrite\n" printf "run ./fetch me_cleaner to manually overwrite\n"
fi fi
if [ ! -d ${cbdir} ]; then if [ ! -d ${cbdir} ]; then
@ -90,7 +90,7 @@ extract_blobs()
if [ "$CONFIG_HAVE_MRC" = "y" ]; then if [ "$CONFIG_HAVE_MRC" = "y" ]; then
printf 'haswell board detected, downloading mrc\n' printf 'haswell board detected, downloading mrc\n'
./download mrc || fail "could not download mrc" ./update blobs mrc || fail "could not download mrc"
fi fi
_me_destination=${CONFIG_ME_BIN_PATH#../../} _me_destination=${CONFIG_ME_BIN_PATH#../../}

View File

@ -1,22 +0,0 @@
#!/usr/bin/env sh
#
# Copyright (C) 2023 Leah Rowe <info@minifree.org>
#
# 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
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
[ "x${DEBUG+set}" = 'xset' ] && set -v
set -u -e
./gitclone bios_extract

View File

@ -1,22 +0,0 @@
#!/usr/bin/env sh
#
# Copyright (C) 2023 Leah Rowe <info@minifree.org>
#
# 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
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
[ "x${DEBUG+set}" = 'xset' ] && set -v
set -u -e
./gitclone biosutilities

View File

@ -1,24 +0,0 @@
#!/usr/bin/env sh
# helper script: downloads flashrom and patches it
#
# Copyright (C) 2014, 2015, 2020, 2021 Leah Rowe <info@minifree.org>
#
# 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
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
[ "x${DEBUG+set}" = 'xset' ] && set -v
set -u -e
./gitclone flashrom

View File

@ -1,32 +0,0 @@
#!/usr/bin/env sh
# helper script: Downloads GRUB and patches it.
#
# Copyright (C) 2014,2015,2016,2020,2021,2023 Leah Rowe
# <info@minifree.org>
#
# 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
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
[ "x${DEBUG+set}" = 'xset' ] && set -v
set -u -e
./gitclone grub
./gitclone gnulib || rm -Rf grub/
if [ ! -d grub ]; then
printf "%s: Could not download grub and gnulib\n" ${0}
exit 1
else
exit 0
fi

View File

@ -1,25 +0,0 @@
#!/usr/bin/env sh
#
# Copyright (C) 2020 Leah Rowe <info@minifree.org>
#
# 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
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# This script assumes that the working directory is the
# root of retroboot_src or retroboot git.
[ "x${DEBUG+set}" = 'xset' ] && set -v
set -u -e
./gitclone me_cleaner

View File

@ -1,32 +0,0 @@
#!/usr/bin/env sh
# helper script: Downloads MemTest86+ and patches it
#
# Copyright (C) 2014, 2015, 2020, 2021 Leah Rowe <info@minifree.org>
# Copyright (C) 2015 Joseph Michael Thompson <jmt@josepht.me>
# Copyright (C) 2015 Klemens Nanni <contact@autoboot.org>
#
# 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
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
[ "x${DEBUG+set}" = 'xset' ] && set -v
set -u -e
# Get the last version of MemTest86+ used, apply patches, build it.
# Remove the old version that may exist
# ------------------------------------------------------------------------------
printf "Downloading MemTest86+\n"
./gitclone memtest86plus

View File

@ -1,29 +0,0 @@
#!/usr/bin/env sh
#
# Copyright (C) 2015, 2016, 2021 Leah Rowe <info@minifree.org>
#
# 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
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
[ "x${DEBUG+set}" = 'xset' ] && set -v
set -u -e
# Get SeaBIOS, revert to commit last used and apply patches.
# Remove the old version that may still exist
# ------------------------------------------------------------------------------
printf "Downloading SeaBIOS\n"
./gitclone seabios

View File

@ -1,22 +0,0 @@
#!/usr/bin/env sh
#
# Copyright (C) 2023 Leah Rowe <info@minifree.org>
#
# 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
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
[ "x${DEBUG+set}" = 'xset' ] && set -v
set -u -e
./gitclone uefitool

View File

@ -28,7 +28,7 @@ set -u -e
printf "Updating seabios configs\n" printf "Updating seabios configs\n"
if [ ! -d "seabios" ]; then if [ ! -d "seabios" ]; then
./download seabios ./fetch seabios
fi fi
if [ ! -d "seabios" ]; then if [ ! -d "seabios" ]; then