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 CB3D4138351 for ; Tue, 14 Jan 2020 01:36:30 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 2F62EE0993; Tue, 14 Jan 2020 01:36:29 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (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 D572FE0993 for ; Tue, 14 Jan 2020 01:36:28 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (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 A2A2734E054 for ; Tue, 14 Jan 2020 01:36:27 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 1CDB2A8 for ; Tue, 14 Jan 2020 01:36:26 +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: <1578867445.d1331dbe7bbc3bfed1076e946bdda4a987fb3ab5.whissi@gentoo> Subject: [gentoo-commits] proj/genkernel:master commit in: / X-VCS-Repository: proj/genkernel X-VCS-Files: gen_configkernel.sh gen_initramfs.sh X-VCS-Directories: / X-VCS-Committer: whissi X-VCS-Committer-Name: Thomas Deutschmann X-VCS-Revision: d1331dbe7bbc3bfed1076e946bdda4a987fb3ab5 X-VCS-Branch: master Date: Tue, 14 Jan 2020 01:36:26 +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: 83a9399f-dd2a-41bb-a881-80cd1fcc9c26 X-Archives-Hash: 19c1a31859325adfb9461d129bd19971 commit: d1331dbe7bbc3bfed1076e946bdda4a987fb3ab5 Author: Thomas Deutschmann gentoo org> AuthorDate: Sun Jan 12 21:56:30 2020 +0000 Commit: Thomas Deutschmann gentoo org> CommitDate: Sun Jan 12 22:17:25 2020 +0000 URL: https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=d1331dbe gen_initramfs.sh: create_initramfs(): Outsource compression method handling into set_initramfs_compression_method() Signed-off-by: Thomas Deutschmann gentoo.org> gen_configkernel.sh | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++ gen_initramfs.sh | 63 +------------------------------------------------ 2 files changed, 68 insertions(+), 62 deletions(-) diff --git a/gen_configkernel.sh b/gen_configkernel.sh index 6943050..ea7701f 100755 --- a/gen_configkernel.sh +++ b/gen_configkernel.sh @@ -113,6 +113,73 @@ determine_kernel_config_file() { fi } +set_initramfs_compression_method() { + [[ ${#} -ne 1 ]] \ + && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly one argument (${#} given)!" + + local kernel_config=${1} + + 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 ) + + 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 + + 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 + + if [ ${KV_NUMERIC} -ge 4010 ] + then + kconfig_set_opt "${kernel_config}" "CONFIG_INITRAMFS_COMPRESSION_${KNOWN_INITRAMFS_COMPRESSION_TYPE}" "${KOPTION_VALUE}" + + if [[ "${KOPTION_VALUE}" == "y" && "${KNOWN_INITRAMFS_COMPRESSION_TYPE}" != "NONE" ]] + then + # Make sure that the kernel can decompress our initramfs + kconfig_set_opt "${kernel_config}" "CONFIG_RD_${KNOWN_INITRAMFS_COMPRESSION_TYPE}" "${KOPTION_VALUE}" + fi + else + [[ "${KNOWN_INITRAMFS_COMPRESSION_TYPE}" == "NONE" ]] && continue + + # In > --integrated-initramfs is set; Setting CONFIG_INITRAMFS_* options ..." [ -f "${KCONFIG_MODIFIED_MARKER}" ] && rm "${KCONFIG_MODIFIED_MARKER}" @@ -1901,34 +1867,7 @@ create_initramfs() { 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 - - if [ ${KV_NUMERIC} -ge 4010 ] - then - kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_INITRAMFS_COMPRESSION_${KNOWN_INITRAMFS_COMPRESSION_TYPE}" "${KOPTION_VALUE}" - - if [[ "${KOPTION_VALUE}" == "y" && "${KNOWN_INITRAMFS_COMPRESSION_TYPE}" != "NONE" ]] - then - # Make sure that the kernel can decompress our initramfs - kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_RD_${KNOWN_INITRAMFS_COMPRESSION_TYPE}" "${KOPTION_VALUE}" - fi - else - [[ "${KNOWN_INITRAMFS_COMPRESSION_TYPE}" == "NONE" ]] && continue - - # In