diff options
| author | Daniel Baumann <daniel@debian.org> | 2010-09-12 21:01:06 +0200 | 
|---|---|---|
| committer | Daniel Baumann <daniel@debian.org> | 2011-03-09 19:17:22 +0100 | 
| commit | 9f865fce29db8c910f2d6a22c4a2d6d15ecff9f4 (patch) | |
| tree | 62de20b222aa509d3f3297007f7db1025d43bce3 /scripts/build/lb_source_debian | |
| parent | 608f11e2cc647aa5f6c0daa95888a89404be4f71 (diff) | |
| download | vyos-live-build-9f865fce29db8c910f2d6a22c4a2d6d15ecff9f4.tar.gz vyos-live-build-9f865fce29db8c910f2d6a22c4a2d6d15ecff9f4.zip | |
Prefixing helper scripts to make 'out of source' usage usable (Closes: #572455).
Diffstat (limited to 'scripts/build/lb_source_debian')
| -rwxr-xr-x | scripts/build/lb_source_debian | 154 | 
1 files changed, 154 insertions, 0 deletions
| diff --git a/scripts/build/lb_source_debian b/scripts/build/lb_source_debian new file mode 100755 index 000000000..ec1449784 --- /dev/null +++ b/scripts/build/lb_source_debian @@ -0,0 +1,154 @@ +#!/bin/sh + +## live-build(7) - System Build Scripts +## Copyright (C) 2006-2010 Daniel Baumann <daniel@debian.org> +## +## live-build comes with ABSOLUTELY NO WARRANTY; for details see COPYING. +## This is free software, and you are welcome to redistribute it +## under certain conditions; see COPYING for details. + + +set -e + +# Including common functions +. "${LB_BASE:-/usr/share/live/build}"/scripts/build.sh + +# Setting static variables +DESCRIPTION="$(Echo 'debian sources')" +HELP="" +USAGE="${PROGRAM} [--force]" + +Arguments "${@}" + +# Reading configuration files +Read_conffiles config/all config/common config/bootstrap config/chroot config/binary config/source +Set_defaults + +if [ "${LB_SOURCE}" != "true" ] +then +	exit 0 +fi + +Echo_message "Begin downloading sources..." + +# Requiring stage file +Require_stagefile .stage/config .stage/bootstrap + +# Checking stage file +Check_stagefile .stage/source_debian + +# Checking lock file +Check_lockfile .lock + +# Creating lock file +Create_lockfile .lock + +# Remove old sources +if [ -d source/debian ] +then +	rm -rf source/debian +fi + +# Download sources +Chroot chroot "dpkg --get-selections" | awk '{ print $1 }' > source-selection.txt + +cat >> source-selection.txt << EOF +${LB_BOOTLOADER} +live-helper +${LB_INITRAMFS} +dosfstools +genisoimage +parted +squashfs-tools +genext2fs +mtd-tools +EOF + +case "${LB_ARCHITECTURE}" in +	amd64|i386) + +cat >> source-selection.txt << EOF +mtools +syslinux +grub +EOF + +		if [ "${LB_MEMTEST}" != "false" ] && [ "${LB_MEMTEST}" != "none" ] +		then +			echo "${LB_MEMTEST}" >> source-selection.txt +		fi +		;; + +	powerpc) +		echo "yaboot" >> source-selection.txt +		;; + +	sparc) + +cat >> source-selection.txt << EOF +silo +sparc-utils +EOF + +		;; +esac + +if [ -n "${LB_TASKS}" ] +then +	echo "${LB_TASKSEL}" >> source-selection.txt +fi + +MISSING="" + +grep . source-selection.txt | \ +while read PACKAGE +do +	if ! Chroot chroot "apt-get ${APT_OPTIONS} --download-only source ${PACKAGE}" +	then +		MISSING="${MISSING} ${PACKAGE}" +	fi +done + +if [ -n "${MISSING}" ] +then +	cat > source/missing-source.txt << EOF +This file contains the list of binary packages that are installed on this live +system that do not have a corresponding source package. + +EOF + +	for PACKAGE in ${MISSING} +	do +		Chroot chroot "dpkg -l ${PACKAGE}" | tail -n1 >> source/missing-source.txt +	done +fi + +rm -f source-selection.txt + +# Sort sources +for DSC in chroot/*.dsc +do +	SOURCE="$(sed -n 's|^Source: ||p' ${DSC} 2>/dev/null || :)" +	# The sed may fail if multiple dsc files exist for same source, as the +	# first one to match will have already been moved. +	[ -n "$SOURCE" ] || continue + +	case "${SOURCE}" in +		lib?*) +			LETTER="$(echo ${SOURCE} | sed 's|\(....\).*|\1|')" +			;; + +		*) +			LETTER="$(echo ${SOURCE} | sed 's|\(.\).*|\1|')" +			;; +	esac + +	# Install directory +	mkdir -p source/debian/"${LETTER}"/"${SOURCE}" + +	# Move files +	mv chroot/"${SOURCE}"_* source/debian/"${LETTER}"/"${SOURCE}" +done + +# Creating stage file +Create_stagefile .stage/source_debian | 
