diff options
Diffstat (limited to 'script/update')
| -rwxr-xr-x | script/update/blobs/inject | 18 | ||||
| -rwxr-xr-x | script/update/project/build | 21 | ||||
| -rwxr-xr-x | script/update/project/repo | 8 | ||||
| -rwxr-xr-x | script/update/project/trees | 23 | ||||
| -rwxr-xr-x | script/update/release/roms | 2 | ||||
| -rwxr-xr-x | script/update/release/src | 81 | 
6 files changed, 72 insertions, 81 deletions
| diff --git a/script/update/blobs/inject b/script/update/blobs/inject index 96ee0002..d778fe78 100755 --- a/script/update/blobs/inject +++ b/script/update/blobs/inject @@ -34,7 +34,6 @@ main()  	printf "Friendly reminder (this is *not* an error message):\n"  	printf "Please always ensure that the files were inserted correctly.\n" -	printf "Read: https://libreboot.org/docs/install/ivy_has_common.html\n"  }  check_board() @@ -187,8 +186,7 @@ inject_blob_intel_mrc()  	printf "adding mrc\n" -	# mrc.bin must be inserted at a specific offset. the only -	# libreboot platform that needs it, at present, is haswell +	# mrc.bin must be inserted at a specific offset  	# in cbfstool, -b values above 0x80000000 are interpreted as  	# top-aligned x86 memory locations. this is converted into an @@ -197,7 +195,7 @@ inject_blob_intel_mrc()  	# coreboot's own build system hardcodes the mrc.bin offset  	# because there is only one correct location in memory, but -	# it would be useful for lbmk if it could be easily scanned +	# it would be useful for us if it could be easily scanned  	# from Kconfig, with the option to change it where in practise  	# it is not changed @@ -217,7 +215,7 @@ inject_blob_intel_me()  	[ -z ${CONFIG_ME_BIN_PATH} ] && \  		err "inject_blob_intel_me: CONFIG_ME_BIN_PATH not set" -	_me_location=${CONFIG_ME_BIN_PATH#../../} +	_me_location=${CONFIG_ME_BIN_PATH##*../}  	[ ! -f "${_me_location}" ] && \  		err "inject_blob_intel_me: per CONFIG_ME_BIN_PATH: file missing" @@ -228,9 +226,9 @@ inject_blob_hp_kbc1126_ec()  {  	rom="${1}" -	_ec1_location="${CONFIG_KBC1126_FW1#../../}" +	_ec1_location="${CONFIG_KBC1126_FW1##*../}"  	_ec1_offset="${CONFIG_KBC1126_FW1_OFFSET}" -	_ec2_location="${CONFIG_KBC1126_FW2#../../}" +	_ec2_location="${CONFIG_KBC1126_FW2##*../}"  	_ec2_offset="${CONFIG_KBC1126_FW2_OFFSET}"  	printf "adding hp kbc1126 ec firmware\n" @@ -253,7 +251,7 @@ inject_blob_dell_e6400_vgarom_nvidia()  {  	rom="${1}" -	_vga_location="${CONFIG_VGA_BIOS_FILE#../../}" +	_vga_location="${CONFIG_VGA_BIOS_FILE##*../}"  	_vga_dir="${_vga_location%/*}"  	_vga_filename="${_vga_location##*/}" @@ -271,7 +269,7 @@ inject_blob_dell_e6400_vgarom_nvidia()  inject_blob_smsc_sch5545_ec()  {  	rom="${1}" -	_sch5545ec_location="${CONFIG_SMSC_SCH5545_EC_FW_FILE#../../}" +	_sch5545ec_location="${CONFIG_SMSC_SCH5545_EC_FW_FILE##*../}"  	[ -f "${_sch5545ec_location}" ] || \  		err "inject_blob_smsc_sch5545_ec: SCH5545 fw missing" @@ -286,7 +284,7 @@ modify_gbe()  		err "modify_gbe: ${board}: CONFIG_GBE_BIN_PATH not set"  	rom="${1}" -	_gbe_location=${CONFIG_GBE_BIN_PATH#../../} +	_gbe_location=${CONFIG_GBE_BIN_PATH##*../}  	[ -f "${_gbe_location}" ] || \  		err "modify_gbe: CONFIG_GBE_BIN_PATH points to missing file"  	[ -f "${nvmutil}" ] || \ diff --git a/script/update/project/build b/script/update/project/build index 2c6eff97..69c11105 100755 --- a/script/update/project/build +++ b/script/update/project/build @@ -33,7 +33,7 @@ main()  		-x) mode="crossgcc-clean" ;;  		*) err "Invalid option" ;;  		esac -		shift; project="${OPTARG}"; shift +		shift; project="${OPTARG#src/}"; shift  	done  	[ -z ${_f} ] && err "flag not specified (-m, -u, -b, -c or -x)"  	[ -z ${project} ] && err "project name not specified" @@ -48,15 +48,13 @@ main()  build_projects()  {  	[ $# -gt 0 ] && x_ ./update project build ${_f} ${@} -	codedir="${project}" +	codedir="src/${project}" -	[ -d "${codedir}" ] || x_ ./update project repo "${codedir%/*}" -	[ -d "${codedir}" ] || \ -		err "build_targets: ${codedir%/*} not downloaded" +	[ -d "${codedir}" ] || x_ ./update project repo "${project}"  	if [ "${project}" = "uefitool" ]; then  	( -		x_ cd uefitool +		x_ cd src/uefitool  		cmake UEFIExtract/ || [ -f Makefile ] || \  		    err "build_targets: !cmake UEFIExtract/"  	) @@ -138,7 +136,7 @@ handle_src_tree()  	[ -z ${arch} ] && \  		err "handle_src_tree: ${target_dir}: undefined cpu type" -	codedir="${project}/${tree}" +	codedir="src/${project}/${tree}"  	if [ ! -d "${codedir}" ]; then  		if [ "${mode}" = "distclean" ] || \  		    [ "${mode}" = "crossgcc-clean" ]; then @@ -171,13 +169,14 @@ check_cross_compiler()  	[ "${crossgcc_ada}" != "y" ] && \  		export BUILD_LANGUAGES=c -	cbdir="coreboot/${tree}" +	cbdir="src/coreboot/${tree}"  	[ "${project}" != "coreboot" ] && \ -		cbdir="coreboot/default" # not u-boot (e.g. linux will use it) +		cbdir="src/coreboot/default" # not u-boot (e.g. linux)  	[ "${project}" = "u-boot" ] && \ -		cbdir="coreboot/cros" # u-boot only used on coreboot/cros +		cbdir="src/coreboot/cros" # u-boot only used on coreboot/cros +  	# only true if not building coreboot: -	ctarget="${cbdir#coreboot/}" +	ctarget="${cbdir#src/coreboot/}"  	[ -d "${cbdir}" ] || \  		x_ ./update project trees coreboot ${ctarget} diff --git a/script/update/project/repo b/script/update/project/repo index 71c3940c..df522edc 100755 --- a/script/update/project/repo +++ b/script/update/project/repo @@ -16,7 +16,7 @@ main()  	[ $# -gt 0 ] || fail "no argument given"  	[ -z "${1+x}" ] && fail 'main(): name not set' -	name=${1} +	name=${1#src/}  	scan_config "${name}" "config/git" "fail"  	verify_config @@ -40,6 +40,9 @@ clone_project()  	xx_ rm -Rf "${tmp_dir}"  	xx_ mkdir -p "${tmp_dir%/*}" +	loc="${loc#src/}" +	loc="src/${loc}" +  	git clone ${url} "${tmp_dir}" || git clone ${bkup_url} "${tmp_dir}" || \  	    fail "clone_project: could not download ${name}"  	git_reset_rev "${tmp_dir}" "${rev}" "fail" || \ @@ -47,8 +50,7 @@ clone_project()  	git_am_patches "${tmp_dir}" "${PWD}/config/${name}/patches" "fail" || \  	    fail "clone_project ${loc}/: cannot apply patches" -	[ ! -d "${loc}" ] || \ -		xx_ rm -Rf "${loc}" +	xx_ rm -Rf "${loc}"  	[ "${loc}" = "${loc%/*}" ] || xx_ mkdir -p ${loc%/*}  	xx_ mv "${tmp_dir}" "${loc}"  } diff --git a/script/update/project/trees b/script/update/project/trees index 29004760..4b25d5b9 100755 --- a/script/update/project/trees +++ b/script/update/project/trees @@ -15,13 +15,13 @@ eval "$(setvars "" _target tree rev project cfgsdir _xm)"  main()  { -	printf "Downloading %s and applying patches\n" ${project} -  	[ -z "${1}" ] && err "project name not specified" -	project="${1}" && shift 1 +	project="${1#src/}" && shift 1  	configure_targets $@ +	printf "Downloading %s and applying patches\n" ${project} +  	for x in ${targets}; do  		x_ rm -f "${cfgsdir}/"*/seen  		download_for_target "${x}" @@ -45,8 +45,9 @@ download_for_target()  	_target="${1}"  	fetch_config -	[ -d "${project}/${tree}" ] && printf "download/%s %s (%s): exists\n" \ -	    "${project}" "${tree}" "${_target}" 1>&2 && return 0 +	[ -d "src/${project}/${tree}" ] && \ +		printf "download/%s %s (%s): exists\n" \ +		    "${project}" "${tree}" "${_target}" 1>&2 && return 0  	fetch_from_upstream  	prepare_new_tree @@ -83,9 +84,9 @@ check_config_for_target()  fetch_from_upstream()  { -	[ -d "${project}" ] || x_ mkdir -p "${project}" -	[ -d "${project}/${project}" ] && return 0 +	[ -d "src/${project}/${project}" ] && return 0 +	x_ mkdir -p "src/${project}"  	x_ ./update project repo "${project}"  } @@ -93,14 +94,14 @@ prepare_new_tree()  {  	printf "Creating %s tree %s (%s)\n" "${project}" "${tree}" "${_target}" -	x_ cp -R "${project}/${project}" "${project}/${tree}" -	x_ git_reset_rev "${project}/${tree}" "${rev}" "err" +	x_ cp -R "src/${project}/${project}" "src/${project}/${tree}" +	x_ git_reset_rev "src/${project}/${tree}" "${rev}" "err"  	( -	x_ cd "${project}/${tree}" +	x_ cd "src/${project}/${tree}"  	git submodule update --init --checkout || \  	    err "prepare_new_tree ${project}/${tree}: can't update git modules"  	) -	git_am_patches "${PWD}/${project}/${tree}" \ +	git_am_patches "${PWD}/src/${project}/${tree}" \  	    "${PWD}/${cfgsdir}/${tree}/patches" "err"  } diff --git a/script/update/release/roms b/script/update/release/roms index 3cf5d93e..e4d5db4f 100755 --- a/script/update/release/roms +++ b/script/update/release/roms @@ -104,7 +104,7 @@ make_archive()  strip_archive()  {  	romdir=${1} -	[ -d "coreboot/${tree}" ] || \ +	[ -d "src/coreboot/${tree}" ] || \  		x_ ./update project trees coreboot ${tree}  	x_ ./build coreboot utils ${tree} diff --git a/script/update/release/src b/script/update/release/src index 3a966015..689a23ab 100755 --- a/script/update/release/src +++ b/script/update/release/src @@ -14,9 +14,9 @@ simple_fetch_list="flashrom grub memtest86plus me_cleaner uefitool"  simple_fetch_list="${simple_fetch_list} bios_extract biosutilities"  download_only_list="pico-serprog stm32-vserprog" -dirlist="config util script include util-fw" -linklist="build update handle" # symlinks in main directory, to script: lbmk -filelist="lbmk README.md COPYING version versiondate projectname" +dirlist="config util script include" +linklist="update" # symlinks in main directory, to script: lbmk +filelist="build README.md COPYING version versiondate projectname .gitignore"  version="version-unknown"  versiondate="version-date-unknown" @@ -44,54 +44,39 @@ create_release_directory()  	dirname="${projectname}-${version}_src"  	srcdir="${reldir}/${dirname}" -	[ -d "release/" ] || x_ mkdir -p release/ -	[ -d "${reldir}/" ] || x_ mkdir -p "${reldir}/" -	[ ! -d "${srcdir}/" ] || x_ rm -Rf "${srcdir}/" -	[ ! -f "${srcdir}.tar.xz" ] || \ -		x_ rm -f "${srcdir}.tar.xz/" - -	x_ mkdir -p "${srcdir}/" -	x_ printf "%s" "${version}" > "${srcdir}"/version +	xx_ mkdir -p "${reldir}" +	xx_ rm -Rf "${srcdir}" "${srcdir}.tar.xz" +	xx_ mkdir -p "${srcdir}"  }  download_modules()  {  	for modname in ${trees_fetch_list}; do -		[ -d "${modname}" ] || x_ ./update project trees ${modname} +		[ -d "src/${modname}" ] || xx_ ./update project trees ${modname}  	done  	for modname in ${simple_fetch_list} ${download_only_list}; do -		[ -d "${modname}/" ] || x_ ./update project repo ${modname} +		[ -d "src/${modname}/" ] || xx_ ./update project repo ${modname}  	done  }  copy_files()  { +	xx_ cp -R "src" "${srcdir}/src"  	for dir in ${trees_fetch_list}; do -		[ -d "${dir}" ] || continue -		for subdir in "${dir}"/*; do -			[ -d "${subdir}" ] || continue -			[ "${subdir##*/}" = "${dir}" ] && continue -			x_ mkdir -p "${srcdir}/${dir}" -			[ ! -d "${srcdir}/${dir}/${subdir##*/}" ] || \ -			    x_ rm -Rf "${srcdir}/${dir}/${subdir##*/}" -			x_ cp -R "${subdir}" "${srcdir}/${dir}/${subdir##*/}" -		done +		xx_ rm -Rf "${srcdir}/src/${dir}/${dir}"  	done -	for dir in ${simple_fetch_list} ${dirlist}; do -		x_ cp -R "${dir}/" "${srcdir}/" +	for dir in ${dirlist}; do +		xx_ cp -R "${dir}/" "${srcdir}/"  	done  	for i in ${filelist}; do -		if [ ! -f "${i}" ]; then -			x_ rm -Rf "${srcdir}" -			err "copy_files: file '${i}' does not exist" -		fi -		x_ cp "${i}" "${srcdir}/" +		[ -f "${i}" ] || fail "copy_files: '${i}' does not exist" +		xx_ cp "${i}" "${srcdir}/"  	done  	( -	x_ cd "${srcdir}/" +	xx_ cd "${srcdir}/"  	for i in ${linklist}; do -		x_ ln -s lbmk "${i}" +		xx_ ln -s build "${i}"  	done  	)  } @@ -99,30 +84,36 @@ copy_files()  purge_files()  {  	( -	x_ cd "${srcdir}/" -	[ ! -d "coreboot/default/util/kbc1126" ] || \ -		x_ ./update project build -c "coreboot/default/util/kbc1126" -	x_ ./update project build -x coreboot +	xx_ cd "${srcdir}" +	[ ! -d "src/coreboot/default/util/kbc1126" ] || \ +	    xx_ ./update project build -c "src/coreboot/default/util/kbc1126" +	xx_ ./update project build -x coreboot  	for p in u-boot seabios coreboot; do -		x_ ./update project build -c "${p}" +		xx_ ./update project build -c "${p}"  	done -	x_ ./update project build -c bios_extract flashrom grub uefitool \ -	    util-fw/stm32-vserprog util-fw/stm32-vserprog/libopencm3 \ -	    memtest86plus/build32 memtest86plus/build64 util/* +	xx_ ./update project build -c bios_extract flashrom grub uefitool \ +	    stm32-vserprog stm32-vserprog/libopencm3 util/* memtest86plus -	x_ rm -Rf .git* */.git* */*/.git* */*/*/.git* */*/*/*/.git* \ -	    */*/*/*/*/.git* */*/*/*/*/*/.git* */*/*/*/*/*/*/.git* -	x_ rm -Rf cbutils elf util-fw/rp2040/pico-serprog/build +	xx_ rm -Rf .git */.git* */*/.git* */*/*/.git* */*/*/*/.git* \ +	    */*/*/*/*/.git* */*/*/*/*/*/.git* */*/*/*/*/*/*/.git* \ +	    */*/*/*/*/*/*/*/.git* +	xx_ rm -Rf cbutils elf src/pico-serprog/build  	)  }  create_release_archive()  {  	( -	x_ cd "${reldir}/" -	x_ tar -c "${dirname}/" | xz -T0 -9e >"${dirname}.tar.xz" -	x_ rm -Rf "${dirname}/" +	xx_ cd "${reldir}/" +	xx_ tar -c "${dirname}/" | xz -T0 -9e >"${dirname}.tar.xz" +	xx_ rm -Rf "${dirname}/"  	)  } +fail() +{ +	[ -z ${srcdir} ] || rm -Rf "${srcdir}" 1>/dev/null 2>/dev/null || : +	fail "${1}" +} +  main $@ | 
