+ cat >>${KERNEL_DIR}/.config <<-EOF
+ CONFIG_INITRAMFS_SOURCE="${TMPDIR}/initramfs-${KV}.cpio${compress_ext}"
+ CONFIG_INITRAMFS_ROOT_UID=0
+ CONFIG_INITRAMFS_ROOT_GID=0
+ EOF
+ else
+ if isTrue "${COMPRESS_INITRD}"
+ then
+ if [[ "$(file --brief --mime-type "${KERNEL_CONFIG}")" == application/x-gzip ]]; then
+ # Support --kernel-config=/proc/config.gz, mainly
+ local CONFGREP=zgrep
+ else
+ local CONFGREP=grep
+ fi
+
+ cmd_xz=$(type -p xz)
+ cmd_lzma=$(type -p lzma)
+ cmd_bzip2=$(type -p bzip2)
+ cmd_gzip=$(type -p gzip)
+ cmd_lzop=$(type -p lzop)
+ pkg_xz='app-arch/xz-utils'
+ pkg_lzma='app-arch/xz-utils'
+ pkg_bzip2='app-arch/bzip2'
+ pkg_gzip='app-arch/gzip'
+ pkg_lzop='app-arch/lzop'
+ local compression
+ case ${COMPRESS_INITRD_TYPE} in
+ xz|lzma|bzip2|gzip|lzop) compression=${COMPRESS_INITRD_TYPE} ;;
+ lzo) compression=lzop ;;
+ best|fastest)
+ for tuple in \
+ 'CONFIG_RD_XZ cmd_xz xz' \
+ 'CONFIG_RD_LZMA cmd_lzma lzma' \
+ 'CONFIG_RD_BZIP2 cmd_bzip2 bzip2' \
+ 'CONFIG_RD_GZIP cmd_gzip gzip' \
+ 'CONFIG_RD_LZO cmd_lzop lzop'; do
+ set -- ${tuple}
+ kernel_option=$1
+ cmd_variable_name=$2
+ if ${CONFGREP} -q "^${kernel_option}=y" "${KERNEL_CONFIG}" && test -n "${!cmd_variable_name}" ; then
+ compression=$3
+ [[ ${COMPRESS_INITRD_TYPE} == best ]] && break
+ fi
+ done
+ [[ -z "${compression}" ]] && gen_die "None of the initramfs we tried are supported by your kernel (config file \"${KERNEL_CONFIG}\"), strange!?"
+ ;;
+ *)
+ gen_die "Compression '${COMPRESS_INITRD_TYPE}' unknown"
+ ;;
+ esac
+
+ # Check for actual availability
+ cmd_variable_name=cmd_${compression}
+ pkg_variable_name=pkg_${compression}
+ [[ -z "${!cmd_variable_name}" ]] && gen_die "Compression '${compression}' is not available. Please install package '${!pkg_variable_name}'."
+
+ case $compression in
+ xz) compress_ext='.xz' compress_cmd="${cmd_xz} -e --check=none -z -f -9" ;;
+ lzma) compress_ext='.lzma' compress_cmd="${cmd_lzma} -z -f -9" ;;
+ bzip2) compress_ext='.bz2' compress_cmd="${cmd_bzip2} -z -f -9" ;;
+ gzip) compress_ext='.gz' compress_cmd="${cmd_gzip} -f -9" ;;
+ lzop) compress_ext='.lzo' compress_cmd="${cmd_lzop} -f -9" ;;
+ esac
+
+ if [ -n "${compression}" ]; then
+ print_info 1 " >> Compressing cpio data (${compress_ext})..."
+ ${compress_cmd} "${CPIO}" || gen_die "Compression (${compress_cmd}) failed"
+ mv -f "${CPIO}${compress_ext}" "${CPIO}" || gen_die "Rename failed"
+ else
+ print_info 1 " >> Not compressing cpio data ..."
+ fi
+ fi