make_live_system_image() {
local filename="${1}"
+ shift
local tempdir="$(mktemp -d)"
# Install a very basic system
if ! pakfire --arch="${arch}" --config="${PAKFIRE_CONFIG}" --root="${tempdir}" \
- install --without-recommends "${PACKAGES[@]}"; then
+ install --without-recommends "${PACKAGES[@]}" "$@"; then
echo "Could not install live system" >&2
rm -rf "${tempdir}"
return 1
}
install_kernel_image() {
- local filename="${1}"
+ local kernel_release="${1}"
+ local filename="${2}"
- # Find kernel release
- local kernel_release="$(find_kernel_release)"
+ # Copy the kernel image
+ if ! cp -v "${buildsystem}/boot/vmlinuz-${kernel_release}" "${filename}"; then
+ echo "Could not install kernel image (release ${kernel_release})" >&2
+ return 1
+ fi
- cp "${buildsystem}/boot/vmlinuz-${kernel_release}" "${filename}"
+ return 0
}
install_initramfs() {
- local filename="${1}"
-
- # Find kernel release
- local kernel_release="$(find_kernel_release)"
+ local kernel_release="${1}"
+ local filename="${2}"
local args=(
--verbose
}
mkimage() {
- local filename="${1}"
+ local buildsystem="${1}"
+ local filename="${2}"
local r=0
# Create a temporary working directory
;;
esac
+ # Find the kernel release
+ local kernel_release="$(find_kernel_release)"
+ if [ -z "${kernel_release}" ]; then
+ echo "Could not find kernel release" >&2
+ return 1
+ fi
+
+ # Install the kernel image
+ if ! install_kernel_image "${kernel_release}" "${tempdir}/boot/vmlinuz"; then
+ rm -rf "${tempdir}"
+ return 1
+ fi
+
+ # Create live ramdisk
+ if ! install_initramfs "${kernel_release}" "${tempdir}/boot/initramfs.img"; then
+ rm -rf "${tempdir}"
+ return 1
+ fi
+
# Generate GRUB BIOS image
if [ "${has_bios_boot}" = "true" ]; then
if ! make_grub_bios_image "${tempdir}/boot/biosboot.img"; then
)
fi
- # Install the kernel image
- if ! install_kernel_image "${tempdir}/boot/vmlinuz"; then
- rm rf "${tempdir}"
- return 1
- fi
-
- # Create live ramdisk
- if ! install_initramfs "${tempdir}/boot/initramfs.img"; then
- rm -rf "${tempdir}"
- return 1
- fi
-
# Create the live system image
- if ! make_live_system_image "${tempdir}/live-os.img"; then
+ if ! make_live_system_image "${tempdir}/live-os.img" "kernel = ${kernel_release}"; then
rm -rf "${tempdir}"
return 1
fi