[SCM] live-build branch, debian-next, updated. debian/3.0_a46-1-10-g594e55a

Daniel Baumann daniel at debian.org
Thu Apr 26 18:33:59 UTC 2012


The following commit has been merged in the debian-next branch:
commit f633bea8c8601be87406441b327dc3e9f1686d7d
Author: Daniel Baumann <daniel at debian.org>
Date:   Thu Apr 26 19:52:15 2012 +0200

    Adding support for including firmware packages for debian-installer.

diff --git a/functions/defaults.sh b/functions/defaults.sh
index f4e2517..c90b220 100755
--- a/functions/defaults.sh
+++ b/functions/defaults.sh
@@ -1189,6 +1189,17 @@ Set_defaults ()
 			;;
 	esac
 
+	# Setting firmware option
+	case "${LB_MODE}" in
+		progress)
+			LB_FIRMWARE_BINARY="${LB_FIRMWARE_BINARY:-true}"
+			;;
+
+		*)
+			LB_FIRMWARE_BINARY="${LB_FIRMWARE_BINARY:-false}"
+			;;
+	esac
+
 	# Setting swap file
 	LB_SWAP_FILE_SIZE="${LB_SWAP_FILE_SIZE:-512}"
 
diff --git a/scripts/build/lb_binary_debian-installer b/scripts/build/lb_binary_debian-installer
index c72c4fa..da3542d 100755
--- a/scripts/build/lb_binary_debian-installer
+++ b/scripts/build/lb_binary_debian-installer
@@ -397,6 +397,35 @@ then
 			;;
 	esac
 
+	# Include firmware packages
+	if [ "${LB_FIRMWARE_BINARY}" = "true" ]
+	then
+		# Assumption: firmware packages install files into /lib/firmware
+
+		# Get all firmware packages
+		FIRMWARE_PACKAGES="$(wget ${WGET_OPTIONS} ${LB_PARENT_MIRROR_CHROOT}/dists/${LB_PARENT_DISTRIBUTION}/Contents-${LB_ARCHITECTURES}.gz -O - | zgrep '^lib/firmware' | awk -F/ '{ print $2 }' | sort -u)"
+
+		if [ "${LB_DERIVATIVE}" = "true" ]
+		then
+			FIRMWARE_PACKAGES="${FIRMWARE_PACKAGES} $(wget ${WGET_OPTIONS} ${LB_MIRROR_CHROOT}/dists/${LB_DISTRIBUTION}/Contents-${LB_ARCHITECTURES}.gz -O - | zgrep '^lib/firmware' | awk -F/ '{ print $2 }' | sort -u)"
+		fi
+
+		# Remove package from contrib if contrib is not enabled
+		if ! echo ${LB_ARCHIVE_AREAS} | grep -qs contrib
+		then
+			FIRMWARE_PACKAGES="$(echo ${FIRMWARE_PACKAGES} | grep -v '^contrib/')"
+		fi
+
+		# Remove package from non-free if non-free is not enabled
+		if ! echo ${LB_ARCHITE_AREAS} | grep -qs non-free
+		then
+			FIRMWARE_PACKAGES="$(echo ${FIRMWARE_PACKAGES} | grep -v '^non-free/')"
+		fi
+
+		# Get remaining firmware package names
+		FIRMWARE_PACKAGES="$(echo ${FIRMWARE_PACKAGES} | awk -F/ '{ print $NF }')"
+	fi
+
 	# Set apt command prefix
 	_LB_APT_COMMAND="apt-get ${APT_OPTIONS} -o Dir::Cache=/binary.deb -o APT::Install-Recommends=false --download-only"
 
@@ -429,10 +458,10 @@ then
 
 		# Download .debs of the required packages
 		Chroot chroot ${_LB_APT_COMMAND} install ${DI_REQ_PACKAGES}
-		Chroot chroot ${_LB_APT_COMMAND} install ${DI_PACKAGES}
+		Chroot chroot ${_LB_APT_COMMAND} install ${DI_PACKAGES} ${FIRMWARE_PACKAGES}
 	else
 		# Download .debs of the required packages
-		Chroot chroot ${_LB_APT_COMMAND} install ${DI_PACKAGES}
+		Chroot chroot ${_LB_APT_COMMAND} install ${DI_PACKAGES} ${FIRMWARE_PACKAGES}
 
 		# Revert dpkg status file
 		mv chroot/var/lib/dpkg/status.tmp chroot/var/lib/dpkg/status
diff --git a/scripts/build/lb_config b/scripts/build/lb_config
index 11a4e1f..05511e8 100755
--- a/scripts/build/lb_config
+++ b/scripts/build/lb_config
@@ -135,6 +135,7 @@ USAGE="${PROGRAM}   [--apt apt|aptitude]\n\
 \t    [--security true|false]\n\
 \t    [--source true|false]\n\
 \t    [-s|--source-images iso|net|tar|hdd]\n\
+\t    [--firmware-binary true|false]\n\
 \t    [--swap-file-path PATH]\n\
 \t    [--swap-file-size MB]\n\
 \t    [--syslinux-theme THEME_SUFFIX]\n\
@@ -169,7 +170,7 @@ Local_arguments ()
 		grub-splash:,isohybrid-options:,hdd-label:,hdd-size:,iso-application:,iso-preparer:,iso-publisher:,
 		iso-volume:,jffs2-eraseblock:,memtest:,net-root-filesystem:,net-root-mountoptions:,
 		net-root-path:,net-root-server:,net-cow-filesystem:,net-cow-mountoptions:,net-cow-path:,
-		net-cow-server:,net-tarball:,swap-file-path:,swap-file-size:,syslinux-theme:,
+		net-cow-server:,net-tarball:,firmware-binary:,swap-file-path:,swap-file-size:,syslinux-theme:,
 		win32-loader:,source:,source-images:,breakpoints,conffile:,debug,force,
 		help,ignore-system-defaults,quiet,usage,verbose,version,bootstrap-qemu-static:,bootstrap-qemu-arch:,
 		bootstrap-qemu-exclude:"
@@ -748,6 +749,11 @@ Local_arguments ()
 				shift 2
 				;;
 
+			--firmware-binary)
+				LB_FIRMWARE_BINARY="${2}"
+				shift 2
+				;;
+
 			--swap-file-path)
 				LB_SWAP_FILE_PATH="${2}"
 				shift 2
@@ -1393,6 +1399,10 @@ LB_NET_COW_SERVER="${LB_NET_COW_SERVER}"
 # (Default: ${LB_NET_TARBALL})
 LB_NET_TARBALL="${LB_NET_TARBALL}"
 
+# \$LB_FIRMWARE_BINARY: include firmware packages in debian-installer
+# (Default: ${LB_FIRMWARE_BINARY})
+LB_FIRMWARE_BINARY="${LB_FIRMWARE_BINARY}
+
 # \$LB_SWAP_FILE_PATH: set swap file path
 # (Default: ${LB_SWAP_FILE_PATH})
 LB_SWAP_FILE_PATH="${LB_SWAP_FILE_PATH}"

-- 
live-build



More information about the debian-live-changes mailing list