From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id EB341138334 for ; Sat, 14 Dec 2019 19:02:42 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 74918E0887; Sat, 14 Dec 2019 19:02:40 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 5090CE0887 for ; Sat, 14 Dec 2019 19:02:40 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 156D934D877 for ; Sat, 14 Dec 2019 19:02:39 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 3FAE98D1 for ; Sat, 14 Dec 2019 19:02:36 +0000 (UTC) From: "Thomas Deutschmann" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Thomas Deutschmann" Message-ID: <1576349078.9394d2189c6691b78665c2f8adcfc56cedaac08e.whissi@gentoo> Subject: [gentoo-commits] proj/genkernel:master commit in: / X-VCS-Repository: proj/genkernel X-VCS-Files: gen_initramfs.sh X-VCS-Directories: / X-VCS-Committer: whissi X-VCS-Committer-Name: Thomas Deutschmann X-VCS-Revision: 9394d2189c6691b78665c2f8adcfc56cedaac08e X-VCS-Branch: master Date: Sat, 14 Dec 2019 19:02:36 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 2afbb38d-5602-462c-a907-dcfaaa906042 X-Archives-Hash: b2604212fbb5e23cb9b1699f5d0c824b commit: 9394d2189c6691b78665c2f8adcfc56cedaac08e Author: Thomas Deutschmann gentoo org> AuthorDate: Sat Dec 14 17:29:32 2019 +0000 Commit: Thomas Deutschmann gentoo org> CommitDate: Sat Dec 14 18:44:38 2019 +0000 URL: https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=9394d218 gen_initramfs.sh: create_initramfs(): Fix building compressed integrated initramfs Re-compiling kernel failed due to multiple set CONFIG_INITRAMFS_COMPRESSION_* options. In addition it is important to call `make olddefconfig` after changing options to make sure kernel config is still valid and make won't block with user prompt. This commit will also ensure that we honor set COMPRESS_INITRD_TYPE. Signed-off-by: Thomas Deutschmann gentoo.org> gen_initramfs.sh | 87 +++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 61 insertions(+), 26 deletions(-) diff --git a/gen_initramfs.sh b/gen_initramfs.sh index 6bc8777..38c77d0 100755 --- a/gen_initramfs.sh +++ b/gen_initramfs.sh @@ -1853,32 +1853,67 @@ create_initramfs() { sed -i '/^.*CONFIG_INITRAMFS_SOURCE=.*$/d' "${KERNEL_OUTPUTDIR}/.config" \ || gen_die "failed to delete CONFIG_INITRAMFS_SOURCE from '${KERNEL_OUTPUTDIR}/.config'" - local compress_config='INITRAMFS_COMPRESSION_NONE' - case ${compress_ext} in - gz) compress_config='INITRAMFS_COMPRESSION_GZIP' ;; - bz2) compress_config='INITRAMFS_COMPRESSION_BZIP2' ;; - lzma) compress_config='INITRAMFS_COMPRESSION_LZMA' ;; - xz) compress_config='INITRAMFS_COMPRESSION_XZ' ;; - lzo) compress_config='INITRAMFS_COMPRESSION_LZO' ;; - lz4) compress_config='INITRAMFS_COMPRESSION_LZ4' ;; - *) compress_config='INITRAMFS_COMPRESSION_NONE' ;; - esac - - # All N default except XZ, so there it gets used if the kernel does - # compression on it's own. - cat >>${KERNEL_OUTPUTDIR}/.config <<-EOF - CONFIG_INITRAMFS_SOURCE="${CPIO_ARCHIVE}.cpio${compress_ext}" - CONFIG_INITRAMFS_ROOT_UID=0 - CONFIG_INITRAMFS_ROOT_GID=0 - CONFIG_INITRAMFS_COMPRESSION_NONE=n - CONFIG_INITRAMFS_COMPRESSION_GZIP=n - CONFIG_INITRAMFS_COMPRESSION_BZIP2=n - CONFIG_INITRAMFS_COMPRESSION_LZMA=n - CONFIG_INITRAMFS_COMPRESSION_XZ=y - CONFIG_INITRAMFS_COMPRESSION_LZO=n - CONFIG_INITRAMFS_COMPRESSION_LZ4=n - CONFIG_${compress_config}=y - EOF + local compress_config=NONE + local -a KNOWN_INITRAMFS_COMPRESSION_TYPES=() + KNOWN_INITRAMFS_COMPRESSION_TYPES+=( NONE ) + KNOWN_INITRAMFS_COMPRESSION_TYPES+=( GZIP ) + KNOWN_INITRAMFS_COMPRESSION_TYPES+=( BZIP2 ) + KNOWN_INITRAMFS_COMPRESSION_TYPES+=( LZMA ) + KNOWN_INITRAMFS_COMPRESSION_TYPES+=( XZ ) + KNOWN_INITRAMFS_COMPRESSION_TYPES+=( LZO ) + KNOWN_INITRAMFS_COMPRESSION_TYPES+=( LZ4 ) + + if isTrue "${COMPRESS_INITRD}" + then + case ${COMPRESS_INITRD_TYPE} in + gz) + compress_config='GZIP' + ;; + bz2) + compress_config='BZIP2' + ;; + lzma) + compress_config='LZMA' + ;; + xz|best|fastest) + compress_config='XZ' + ;; + lzop) + compress_config='LZO' + ;; + lz4) + compress_config='LZ4' + ;; + esac + fi + + print_info 1 "$(get_indent 1)>> --integrated-initramfs is set; Setting CONFIG_INITRAMFS_* options ..." + + [ -f "${KCONFIG_MODIFIED_MARKER}" ] && rm "${KCONFIG_MODIFIED_MARKER}" + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_INITRAMFS_SOURCE" "${CPIO_ARCHIVE}.cpio" + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_INITRAMFS_ROOT_UID" "0" + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_INITRAMFS_ROOT_GID" "0" + + local KNOWN_INITRAMFS_COMPRESSION_TYPE + local KOPTION_VALUE + for KNOWN_INITRAMFS_COMPRESSION_TYPE in "${KNOWN_INITRAMFS_COMPRESSION_TYPES[@]}" + do + KOPTION_VALUE=n + if [[ "${KNOWN_INITRAMFS_COMPRESSION_TYPE}" == "${compress_config}" ]] + then + KOPTION_VALUE=y + fi + + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_INITRAMFS_COMPRESSION_${KNOWN_INITRAMFS_COMPRESSION_TYPE}" "${KOPTION_VALUE}" + done + + if [ -f "${KCONFIG_MODIFIED_MARKER}" ] + then + print_info 1 "$(get_indent 1)>> Running 'make olddefconfig' due to changed kernel options ..." + pushd "${KERNEL_DIR}" &>/dev/null || gen_die "Failed to chdir to '${KERNEL_DIR}'!" + compile_generic olddefconfig kernel 2>/dev/null + popd &>/dev/null || gen_die "Failed to chdir!" + fi else if isTrue "${COMPRESS_INITRD}" then