boot-libre: add --gen-blob-script to generate a deblob script
This should enable various distributions and build system to reuse the generated script to deblob u-boot releases themselves. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
This commit is contained in:
parent
ee2731af44
commit
425162db93
|
@ -71,8 +71,11 @@ append_release_files()
|
||||||
|
|
||||||
print_release_files()
|
print_release_files()
|
||||||
{
|
{
|
||||||
printf "Source code archives available at:\n"
|
version="$1"
|
||||||
for file in "${release_files}" ; do
|
printf "Source code archives for u-boot-libre-%s-%s available at:\n" \
|
||||||
|
"${version}" "${revision}"
|
||||||
|
|
||||||
|
for file in ${release_files} ; do
|
||||||
printf "\t${file}\n"
|
printf "\t${file}\n"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
@ -150,10 +153,40 @@ release_uboot_blobs_list()
|
||||||
"${destination}.xz"
|
"${destination}.xz"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
release_uboot_deblob_script()
|
||||||
|
{
|
||||||
|
version="$1"
|
||||||
|
|
||||||
|
deblob_script="$(${topdir}/download u-boot --gen-deblob-script v${version})"
|
||||||
|
|
||||||
|
release_version_dir="${uboot_release_topdir}/${version}-${revision}"
|
||||||
|
destination="${release_version_dir}/deblob-${version}-${revision}.sh"
|
||||||
|
|
||||||
|
cd "${topdir}"
|
||||||
|
|
||||||
|
rm -rf \
|
||||||
|
"${destination}" \
|
||||||
|
"${destination}.lz" \
|
||||||
|
"${destination}.xz"
|
||||||
|
|
||||||
|
install -m 755 -d "${release_version_dir}"
|
||||||
|
install -m 644 -T "${blobs_list}" "${destination}"
|
||||||
|
|
||||||
|
lzip -9 --keep -vv "${destination}"
|
||||||
|
xz -9 --keep -vv "${destination}"
|
||||||
|
|
||||||
|
append_release_files \
|
||||||
|
"${destination}" \
|
||||||
|
"${destination}.lz" \
|
||||||
|
"${destination}.xz"
|
||||||
|
}
|
||||||
|
|
||||||
if [ $# -eq 0 ] ; then
|
if [ $# -eq 0 ] ; then
|
||||||
for version in ${supported_uboot_versions} ; do
|
for version in ${supported_uboot_versions} ; do
|
||||||
release_deblobbed_uboot "${version}"
|
release_deblobbed_uboot "${version}"
|
||||||
release_uboot_blobs_list "${version}"
|
release_uboot_blobs_list "${version}"
|
||||||
|
release_uboot_deblob_script "${version}"
|
||||||
|
print_release_files "${version}"
|
||||||
done
|
done
|
||||||
exit 0
|
exit 0
|
||||||
elif [ $# -eq 1 -a "$1" == "--help" ] ; then
|
elif [ $# -eq 1 -a "$1" == "--help" ] ; then
|
||||||
|
@ -170,6 +203,8 @@ elif [ $# -eq 1 ] ; then
|
||||||
if [ "${revision}" = "$1" ] ; then
|
if [ "${revision}" = "$1" ] ; then
|
||||||
release_deblobbed_uboot "$1"
|
release_deblobbed_uboot "$1"
|
||||||
release_uboot_blobs_list "$1"
|
release_uboot_blobs_list "$1"
|
||||||
|
release_uboot_deblob_script "$1"
|
||||||
|
print_release_files "$1"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
|
@ -105,27 +105,83 @@ strip_comments()
|
||||||
sed '/^$/d'
|
sed '/^$/d'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
generate_deblob_script()
|
||||||
|
{
|
||||||
|
blob_list_file="$1"
|
||||||
|
output="$2"
|
||||||
|
|
||||||
|
# Add sheebang and copyright headers from this file
|
||||||
|
awk '{
|
||||||
|
if ($0 !~ /^#/ && NF > 0) {
|
||||||
|
stop=1;
|
||||||
|
}
|
||||||
|
if (stop !=1) {
|
||||||
|
printf("%s\n", $0);
|
||||||
|
}
|
||||||
|
}' $0 >> ${output}
|
||||||
|
|
||||||
|
# Add rm -rf before directories and rm -f before files
|
||||||
|
awk \
|
||||||
|
'{
|
||||||
|
}{
|
||||||
|
if (NF == 0) {
|
||||||
|
printf("\n");
|
||||||
|
} else {
|
||||||
|
if ($0 !~ /#/ && $NF ~ /\/$/) {
|
||||||
|
printf("rm -rf %s\n", $0);
|
||||||
|
} else if ($0 !~ /#/) {
|
||||||
|
printf("rm -f %s\n", $0);
|
||||||
|
} else {
|
||||||
|
# We have comments, try to see if they are
|
||||||
|
# still valid paths before the comments
|
||||||
|
comments_found=0
|
||||||
|
last_field=0
|
||||||
|
for(i=1; i<=NF; i++) {
|
||||||
|
if($i ~ /#/) {
|
||||||
|
comments_found=1;
|
||||||
|
} else if(comments_found != 1) {
|
||||||
|
last_field=i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (last_field == 0) {
|
||||||
|
printf("%s\n", $0);
|
||||||
|
} else if ($last_field ~ /\/$/) {
|
||||||
|
printf("rm -rf %s\n", $0);
|
||||||
|
} else {
|
||||||
|
printf("rm -f %s\n", $0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}' "${blob_list_file}" >> "${output}"
|
||||||
|
}
|
||||||
|
|
||||||
usage()
|
usage()
|
||||||
{
|
{
|
||||||
progname="./download u-boot"
|
progname="./download u-boot"
|
||||||
|
|
||||||
printf "Usage:\n"
|
printf "Usage:\n"
|
||||||
printf "\t%s # %s\n" \
|
printf "\t%s # %s\n" \
|
||||||
"${progname}" \
|
"${progname}" \
|
||||||
"Download latest u-boot git revision and deblob it"
|
"Download latest u-boot git revision and deblob it"
|
||||||
printf "\t%s [revision] # %s\n" \
|
printf "\t%s [revision] # %s\n" \
|
||||||
"${progname}" \
|
"${progname}" \
|
||||||
"Download given u-boot git revision and deblob it"
|
"Download given u-boot git revision and deblob it"
|
||||||
printf "\t%s --blobs-list # %s\n" \
|
printf "\t%s --blobs-list # %s\n" \
|
||||||
"${progname}" \
|
"${progname}" \
|
||||||
"Print the path of the blobs.list file for the latest supported u-boot revision"
|
"Print the path of the blobs.list file for the latest supported u-boot revision"
|
||||||
printf "\t%s --blobs-list [revision] # %s\n" \
|
printf "\t%s --blobs-list [revision] # %s\n" \
|
||||||
"${progname}" \
|
"${progname}" \
|
||||||
"Print the path of the blobs.list file for the given u-boot revision"
|
"Print the path of the blobs.list file for the given u-boot revision"
|
||||||
printf "\t%s --list-revisions # %s\n" \
|
printf "\t%s --gen-deblob-script # %s\n" \
|
||||||
|
"${progname}" \
|
||||||
|
"Print the path of the generated deblob script for the latest supported u-boot revision"
|
||||||
|
printf "\t%s --gen-deblob-script [revision] # %s\n" \
|
||||||
|
"${progname}" \
|
||||||
|
"Print the path of the generated deblob script for the given u-boot revision"
|
||||||
|
printf "\t%s --list-revisions # %s\n" \
|
||||||
"${progname}" \
|
"${progname}" \
|
||||||
"List supported u-boot revisions"
|
"List supported u-boot revisions"
|
||||||
printf "\t%s --help # %s\n" \
|
printf "\t%s --help # %s\n" \
|
||||||
"${progname}" \
|
"${progname}" \
|
||||||
"Prints this help"
|
"Prints this help"
|
||||||
}
|
}
|
||||||
|
@ -163,6 +219,15 @@ print_blobs_list_path()
|
||||||
printf "resources/u-boot/default/blobs.list\n"
|
printf "resources/u-boot/default/blobs.list\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print_deblob_script_path()
|
||||||
|
{
|
||||||
|
version="$1"
|
||||||
|
path="$(mktemp)"
|
||||||
|
|
||||||
|
generate_deblob_script "$(print_blobs_list_path ${version})" "${path}"
|
||||||
|
printf "%s\n" ${path}
|
||||||
|
}
|
||||||
|
|
||||||
if [ $# -eq 0 ] ; then
|
if [ $# -eq 0 ] ; then
|
||||||
latest_revision="$(echo ${supported_uboot_revisions} | tail -n1)"
|
latest_revision="$(echo ${supported_uboot_revisions} | tail -n1)"
|
||||||
download_uboot_revision "${latest_revision}"
|
download_uboot_revision "${latest_revision}"
|
||||||
|
@ -190,6 +255,22 @@ elif [ $# -eq 2 -a "$1" == "--blobs-list" ] ; then
|
||||||
|
|
||||||
printf "Error: Revision '${1}' is not supported\n"
|
printf "Error: Revision '${1}' is not supported\n"
|
||||||
|
|
||||||
|
exit 1
|
||||||
|
elif [ $# -eq 1 -a "$1" == "--gen-deblob-script" ] ; then
|
||||||
|
latest_revision="$(echo ${supported_uboot_revisions} | tail -n1)"
|
||||||
|
print_deblob_script_path "${latest_revision}"
|
||||||
|
exit 0
|
||||||
|
elif [ $# -eq 2 -a "$1" == "--gen-deblob-script" ] ; then
|
||||||
|
found=0
|
||||||
|
for revision in ${supported_uboot_revisions} ; do
|
||||||
|
if [ "${revision}" = "$2" ] ; then
|
||||||
|
print_deblob_script_path "$2"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "Error: Revision '${1}' is not supported\n"
|
||||||
|
|
||||||
exit 1
|
exit 1
|
||||||
elif [ $# -eq 1 ] ; then
|
elif [ $# -eq 1 ] ; then
|
||||||
found=0
|
found=0
|
||||||
|
|
|
@ -4,3 +4,6 @@ d6bbd0c311fa7d73a018d2195618a9cff9984502624e83097e94c310557eb47da85f43a9e06bb3bc
|
||||||
007968618d182bb26eb13f25720a06f28a59b0a67e5b0e66ae2f7c1246c82139091606e61f780d60496866b31cb037a5a41f207d1b00e293280bcfc17cba8317 release/u-boot-libre/2021.07-r1/blobs-2021.07-r1.list
|
007968618d182bb26eb13f25720a06f28a59b0a67e5b0e66ae2f7c1246c82139091606e61f780d60496866b31cb037a5a41f207d1b00e293280bcfc17cba8317 release/u-boot-libre/2021.07-r1/blobs-2021.07-r1.list
|
||||||
cc338a69266cc94d3a283a2f0e14660a649573eaf70f11254db00c190a85da5892f9ca78d2d44633d46f90c857297b954ba41d3d9e076a94433326a161f73b61 release/u-boot-libre/2021.07-r1/blobs-2021.07-r1.list.lz
|
cc338a69266cc94d3a283a2f0e14660a649573eaf70f11254db00c190a85da5892f9ca78d2d44633d46f90c857297b954ba41d3d9e076a94433326a161f73b61 release/u-boot-libre/2021.07-r1/blobs-2021.07-r1.list.lz
|
||||||
174726b4505a9af850fb15cbfba73c6ea2eeb669352f37e577f37c225c8407f8c0da63f43d0d2285fdd6123fab4ac59233c8bd01bc863ba0e338c8469df10c1c release/u-boot-libre/2021.07-r1/blobs-2021.07-r1.list.xz
|
174726b4505a9af850fb15cbfba73c6ea2eeb669352f37e577f37c225c8407f8c0da63f43d0d2285fdd6123fab4ac59233c8bd01bc863ba0e338c8469df10c1c release/u-boot-libre/2021.07-r1/blobs-2021.07-r1.list.xz
|
||||||
|
007968618d182bb26eb13f25720a06f28a59b0a67e5b0e66ae2f7c1246c82139091606e61f780d60496866b31cb037a5a41f207d1b00e293280bcfc17cba8317 release/u-boot-libre/2021.07-r1/deblob-2021.07-r1.sh
|
||||||
|
cc338a69266cc94d3a283a2f0e14660a649573eaf70f11254db00c190a85da5892f9ca78d2d44633d46f90c857297b954ba41d3d9e076a94433326a161f73b61 release/u-boot-libre/2021.07-r1/deblob-2021.07-r1.sh.lz
|
||||||
|
174726b4505a9af850fb15cbfba73c6ea2eeb669352f37e577f37c225c8407f8c0da63f43d0d2285fdd6123fab4ac59233c8bd01bc863ba0e338c8469df10c1c release/u-boot-libre/2021.07-r1/deblob-2021.07-r1.sh.xz
|
||||||
|
|
Loading…
Reference in New Issue