Merge branch 'base' into dev
This commit is contained in:
		
						commit
						19a1b94d2a
					
				
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							|  | @ -1,3 +1,6 @@ | |||
| deploy/* | ||||
| work/* | ||||
| config | ||||
| SKIP | ||||
| .pc | ||||
| *-pc | ||||
|  |  | |||
							
								
								
									
										33
									
								
								build.sh
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								build.sh
									
									
									
									
									
								
							|  | @ -43,11 +43,12 @@ EOF | |||
| 			fi | ||||
| 			QUILT_PATCHES=${SUB_STAGE_DIR}/${i}-patches | ||||
| 			mkdir -p ${i}-pc | ||||
| 			ln -sf .pc ${i}-pc | ||||
| 			ln -sf ${i}-pc .pc | ||||
| 			if [ -e ${SUB_STAGE_DIR}/${i}-patches/EDIT ]; then | ||||
| 				echo "Dropping into bash to edit patches..." | ||||
| 				bash | ||||
| 			fi | ||||
| 			quilt upgrade | ||||
| 			RC=0 | ||||
| 			quilt push -a || RC=$? | ||||
| 			case "$RC" in | ||||
|  | @ -77,10 +78,14 @@ EOF | |||
| 
 | ||||
| run_stage(){ | ||||
| 	log "Begin ${STAGE_DIR}" | ||||
| 	STAGE=$(basename ${STAGE_DIR}) | ||||
| 	pushd ${STAGE_DIR} > /dev/null | ||||
| 	unmount ${WORK_DIR}/${STAGE} | ||||
| 	STAGE_WORK_DIR=${WORK_DIR}/${STAGE} | ||||
| 	ROOTFS_DIR=${STAGE_WORK_DIR}/rootfs | ||||
| 	if [ -f ${STAGE_DIR}/EXPORT_IMAGE ]; then | ||||
| 		EXPORT_DIRS="${EXPORT_DIRS} ${STAGE_DIR}" | ||||
| 	fi | ||||
| 	if [ ! -f SKIP ]; then | ||||
| 		if [ "${CLEAN}" = "1" ]; then | ||||
| 			if [ -d ${ROOTFS_DIR} ]; then | ||||
|  | @ -93,7 +98,8 @@ run_stage(){ | |||
| 			log "End ${STAGE_DIR}/prerun.sh" | ||||
| 		fi | ||||
| 		for SUB_STAGE_DIR in ${STAGE_DIR}/*; do | ||||
| 			if [ -d ${SUB_STAGE_DIR} ]; then | ||||
| 			if [ -d ${SUB_STAGE_DIR} ] && | ||||
| 			   [ ! -f ${SUB_STAGE_DIR}/SKIP ]; then | ||||
| 				run_sub_stage | ||||
| 			fi | ||||
| 		done | ||||
|  | @ -125,6 +131,7 @@ export IMG_DATE=${IMG_DATE:-"$(date -u +%Y-%m-%d)"} | |||
| export BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" | ||||
| export SCRIPT_DIR="${BASE_DIR}/scripts" | ||||
| export WORK_DIR="${BASE_DIR}/work/${IMG_DATE}-${IMG_NAME}" | ||||
| export DEPLOY_DIR="${BASE_DIR}/deploy" | ||||
| export LOG_FILE="${WORK_DIR}/build.log" | ||||
| 
 | ||||
| export CLEAN | ||||
|  | @ -132,11 +139,15 @@ export IMG_NAME | |||
| export APT_PROXY | ||||
| 
 | ||||
| export STAGE | ||||
| export PREV_STAGE | ||||
| export STAGE_DIR | ||||
| export STAGE_WORK_DIR | ||||
| export PREV_STAGE | ||||
| export PREV_STAGE_DIR | ||||
| export ROOTFS_DIR | ||||
| export PREV_ROOTFS_DIR | ||||
| export IMG_SUFFIX | ||||
| export EXPORT_DIR | ||||
| export EXPORT_ROOTFS_DIR | ||||
| 
 | ||||
| export QUILT_PATCHES | ||||
| export QUILT_NO_DIFF_INDEX=1 | ||||
|  | @ -144,18 +155,20 @@ export QUILT_NO_DIFF_TIMESTAMPS=1 | |||
| export QUILT_REFRESH_ARGS="-p ab" | ||||
| 
 | ||||
| source ${SCRIPT_DIR}/common | ||||
| export -f log | ||||
| export -f bootstrap | ||||
| export -f unmount | ||||
| export -f on_chroot | ||||
| export -f copy_previous | ||||
| export -f update_issue | ||||
| 
 | ||||
| mkdir -p ${WORK_DIR} | ||||
| log "Begin ${BASE_DIR}" | ||||
| 
 | ||||
| for STAGE_DIR in ${BASE_DIR}/stage*; do | ||||
| 	STAGE=$(basename ${STAGE_DIR}) | ||||
| 	run_stage | ||||
| done | ||||
| 
 | ||||
| STAGE_DIR=${BASE_DIR}/export-image | ||||
| 
 | ||||
| CLEAN=1 | ||||
| for EXPORT_DIR in ${EXPORT_DIRS}; do | ||||
| 	IMG_SUFFIX=$(cat ${EXPORT_DIR}/EXPORT_IMAGE) | ||||
| 	EXPORT_ROOTFS_DIR=${WORK_DIR}/$(basename ${EXPORT_DIR})/rootfs | ||||
| 	run_stage | ||||
| done | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,6 +1,7 @@ | |||
| log (){ | ||||
| 	date +"[%T] $@" | tee -a ${LOG_FILE} | ||||
| } | ||||
| export -f log | ||||
| 
 | ||||
| bootstrap(){ | ||||
| 	ARCH=$(dpkg --print-architecture) | ||||
|  | @ -18,6 +19,7 @@ bootstrap(){ | |||
| 		--no-check-gpg \ | ||||
| 		$1 $2 $3 | ||||
| } | ||||
| export -f bootstrap | ||||
| 
 | ||||
| copy_previous(){ | ||||
| 	if [ ! -d ${PREV_ROOTFS_DIR} ]; then | ||||
|  | @ -27,6 +29,7 @@ copy_previous(){ | |||
| 	mkdir -p ${ROOTFS_DIR} | ||||
| 	rsync -aHAX ${PREV_ROOTFS_DIR}/ ${ROOTFS_DIR}/ | ||||
| } | ||||
| export -f copy_previous | ||||
| 
 | ||||
| unmount(){ | ||||
| 	if [ -z "$1" ]; then | ||||
|  | @ -38,10 +41,24 @@ unmount(){ | |||
| 	while mount | grep -q $DIR; do | ||||
| 		LOCS=`mount | grep $DIR | cut -f 3 -d ' ' | sort -r` | ||||
| 		for loc in $LOCS; do | ||||
| 			sudo umount $loc | ||||
| 			umount $loc | ||||
| 		done | ||||
| 	done | ||||
| } | ||||
| export -f unmount | ||||
| 
 | ||||
| unmount_image(){ | ||||
| 	sync | ||||
| 	sleep 1 | ||||
| 	unmount $(dirname ${1}) | ||||
| 	LOOP_DEV=$(losetup -j ${1} | cut -f1 -d':') | ||||
| 	if [ -n "${LOOP_DEV}" ]; then | ||||
| 		sleep 1 | ||||
| 		kpartx -ds ${LOOP_DEV} | ||||
| 		losetup -d ${LOOP_DEV} | ||||
| 	fi | ||||
| } | ||||
| export -f unmount_image | ||||
| 
 | ||||
| on_chroot() { | ||||
| 	if ! mount | grep -q `realpath ${ROOTFS_DIR}/proc`; then | ||||
|  | @ -62,7 +79,10 @@ on_chroot() { | |||
| 
 | ||||
| 	chroot ${ROOTFS_DIR}/ "$@" | ||||
| } | ||||
| export -f on_chroot | ||||
| 
 | ||||
| update_issue() { | ||||
| 	echo -e "Raspberry Pi reference ${DATE}\nGenerated using Pi-gen, https://github.com/RPi-Distro/Pi-gen, ${1}" > ${ROOTFS_DIR}/etc/rpi-issue | ||||
| 	GIT_HASH=$(git rev-parse HEAD) | ||||
| 	echo -e "Raspberry Pi reference ${IMG_DATE}\nGenerated using pi-gen, https://github.com/RPi-Distro/pi-gen, ${GIT_HASH}, ${1}" > ${ROOTFS_DIR}/etc/rpi-issue | ||||
| } | ||||
| export -f update_issue | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user