summaryrefslogtreecommitdiff
path: root/scripts/build/chroot_linux-image
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/build/chroot_linux-image')
-rwxr-xr-xscripts/build/chroot_linux-image123
1 files changed, 123 insertions, 0 deletions
diff --git a/scripts/build/chroot_linux-image b/scripts/build/chroot_linux-image
new file mode 100755
index 000000000..bb672c1d2
--- /dev/null
+++ b/scripts/build/chroot_linux-image
@@ -0,0 +1,123 @@
+#!/bin/sh
+
+## live-build(7) - System Build Scripts
+## Copyright (C) 2006-2012 Daniel Baumann <daniel@debian.org>
+##
+## This program 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
+[ -e "${LIVE_BUILD}/scripts/build.sh" ] && . "${LIVE_BUILD}/scripts/build.sh" || . /usr/lib/live/build.sh
+
+# Setting static variables
+DESCRIPTION="$(Echo 'schedule kernel packages for installation')"
+HELP=""
+USAGE="${PROGRAM} [--force]"
+
+Arguments "${@}"
+
+# Reading configuration files
+Read_conffiles config/all config/common config/bootstrap config/chroot config/binary config/source
+Set_defaults
+
+# Requiring stage file
+Require_stagefile .build/config .build/bootstrap
+
+# Checking stage file
+Check_stagefile .build/chroot_linux-image
+
+# Checking lock file
+Check_lockfile .lock
+
+# Creating lock file
+Create_lockfile .lock
+
+# Diverting update-initramfs
+#case "${LB_INITRAMFS}" in
+# live-boot)
+# mv chroot/usr/sbin/update-initramfs chroot/usr/sbin/update-initramfs.live-build
+# ;;
+#esac
+
+if [ "${LB_LINUX_PACKAGES}" != "none" ]
+then
+ for FLAVOUR in ${LB_LINUX_FLAVOURS}
+ do
+ for PACKAGE in ${LB_LINUX_PACKAGES}
+ do
+ echo ${PACKAGE}-${FLAVOUR} >> chroot/root/packages.chroot
+ done
+ done
+
+ # Include firmware packages
+ if [ "${LB_FIRMWARE_CHROOT}" = "true" ]
+ then
+ # Assumption: firmware packages install files into /lib/firmware
+
+ # Get all firmware packages names
+ mkdir -p cache/contents.chroot
+ wget ${WGET_OPTIONS} ${LB_PARENT_MIRROR_CHROOT}/dists/${LB_PARENT_DISTRIBUTION}/Contents-${LB_ARCHITECTURES}.gz -O - | gunzip -c > cache/contents.chroot/contents.${LB_PARENT_DISTRIBUTION}.${LB_ARCHITECTURES}
+
+ FIRMWARE_PACKAGES=""
+ FIRMWARE_PACKAGES="$(awk '/^lib\/firmware/ { print $2 }' cache/contents.chroot/contents.${LB_PARENT_DISTRIBUTION}.${LB_ARCHITECTURES} | sort -u)"
+
+ if [ "${LB_DERIVATIVE}" = "true" ]
+ then
+ wget {WGET_OPTIONS} ${LB_MIRROR_CHROOT}/dists/${LB_DISTRIBUTION}/Contents-${LB_ARCHITECTURES}.gz -O - | gunzip -c > cache/contents.chroot/contents.${LB_DISTRIBUTION}.${LB_ARCHITECTURES}
+
+ FIRMWARE_PACKAGES="${FIRMWARE_PACKAGES} $(awk '/^lib\/firmware/ { print $2 }' cache/contents.chroot/contents.${LB_DISTRIBUTION}.${LB_ARCHITECTURES} | sort -u)"
+ fi
+
+ # Filter out contrib packages if contrib is not enabled
+ if ! echo ${LB_ARCHIVE_AREAS} | grep -qs contrib
+ then
+ _FIRMWARE_PACKAGES=""
+
+ for _PACKAGE in ${FIRMWARE_PACKAGES}
+ do
+ _FIRMWARE_PACKAGES="${_FIRMWARE_PACKAGES} $(echo ${_PACKAGE} | sed -e 's|^contrib/.*$||')"
+ done
+
+ FIRMWARE_PACKAGES="${_FIRMWARE_PACKAGES}"
+ fi
+
+ # Filter out non-free packages if non-free is not enabled
+ if ! echo ${LB_ARCHIVE_AREAS} | grep -qs non-free
+ then
+ _FIRMWARE_PACKAGES=""
+
+ for _PACKAGE in ${FIRMWARE_PACKAGES}
+ do
+ _FIRMWARE_PACKAGES="${_FIRMWARE_PACKAGES} $(echo ${_PACKAGE} | sed -e 's|^non-free/.*$||')"
+ done
+
+ FIRMWARE_PACKAGES="${_FIRMWARE_PACKAGES}"
+ else
+ # Manually add firmware-linux/non-free meta package
+ FIRMWARE_PACKAGES="${FIRMWARE_PACKAGES} firmware-linux"
+
+ # Manually add intel-microcode
+ FIRMWARE_PACKAGES="${FIRMWARE_PACKAGES} intel-microcode"
+ fi
+
+ # Drop section and keep package names only
+ for _PACKAGE in ${FIRMWARE_PACKAGES}
+ do
+ echo $(echo ${_PACKAGE} | awk -F/ '{ print $NF }') >> chroot/root/packages.chroot
+ done
+
+# Some known licenses required to be accepted
+cat >> chroot/root/packages.chroot.cfg << EOF
+firmware-ivtv firmware-ivtv/license/accepted boolean true
+firmware-ipw2x00 firmware-ipw2x00/license/accepted boolean true
+EOF
+
+ fi
+
+ # Creating stage file
+ Create_stagefile .build/chroot_linux-image
+fi