Gentoo Archives: gentoo-commits

From: "Robin H. Johnson" <robbat2@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/genkernel:master commit in: /
Date: Mon, 02 Jan 2017 22:27:09
Message-Id: 1483395979.e04962507dee60ce593dd6bb60ed315340056b12.robbat2@gentoo
1 commit: e04962507dee60ce593dd6bb60ed315340056b12
2 Author: Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
3 AuthorDate: Mon Jan 2 22:24:43 2017 +0000
4 Commit: Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
5 CommitDate: Mon Jan 2 22:26:19 2017 +0000
6 URL: https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=e0496250
7
8 gen_configkernel: respect user-set kconfig.
9
10 Blindly using kconfig_set_opt can override user-set configuration
11 options.
12
13 Fetch the option from the kconfig first, and override it if needed.
14
15 Fixes: https://bugs.gentoo.org/show_bug.cgi?id=602768
16 X-Gentoo-Bug: 602768
17 Signed-off-by: Robin H. Johnson <robbat2 <AT> gentoo.org>
18
19 gen_configkernel.sh | 62 ++++++++++++++++++++++++++++++++++++++++++++---------
20 1 file changed, 52 insertions(+), 10 deletions(-)
21
22 diff --git a/gen_configkernel.sh b/gen_configkernel.sh
23 index f746dba..8d3534b 100755
24 --- a/gen_configkernel.sh
25 +++ b/gen_configkernel.sh
26 @@ -113,26 +113,53 @@ config_kernel() {
27 kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_EXT2_FS" "y"
28 fi
29
30 + # If the user has configured DM as built-in, we need to respect that.
31 + cfg_CONFIG_BLK_DEV_DM=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_DM")
32 + case "$cfg_CONFIG_BLK_DEV_DM" in
33 + y|m) ;; # Do nothing
34 + *) cfg_CONFIG_BLK_DEV_DM='m'
35 + esac
36 +
37 # Make sure lvm modules are on if --lvm
38 if isTrue ${CMD_LVM}
39 then
40 - kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_DM" "m"
41 - kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_SNAPSHOT" "m"
42 - kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MIRROR" "m"
43 + cfg_CONFIG_DM_SNAPSHOT=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_SNAPSHOT")
44 + case "$cfg_CONFIG_DM_SNAPSHOT" in
45 + y|m) ;; # Do nothing
46 + *) cfg_CONFIG_DM_SNAPSHOT='m'
47 + esac
48 + cfg_CONFIG_DM_MIRROR=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MIRROR")
49 + case "$cfg_CONFIG_DM_MIRROR" in
50 + y|m) ;; # Do nothing
51 + *) cfg_CONFIG_DM_MIRROR='m'
52 + esac
53 + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_DM" "${cfg_CONFIG_BLK_DEV_DM}"
54 + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_SNAPSHOT" "${cfg_CONFIG_DM_SNAPSHOT}"
55 + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MIRROR" "${cfg_CONFIG_DM_MIRROR}"
56 fi
57
58 # Multipath
59 if isTrue ${CMD_MULTIPATH}
60 then
61 - kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_DM" "m"
62 - kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MULTIPATH" "m"
63 - kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MULTIPATH_RDAC" "m"
64 + cfg_CONFIG_DM_MULTIPATH=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MULTIPATH")
65 + case "$cfg_CONFIG_DM_MULTIPATH" in
66 + y|m) ;; # Do nothing
67 + *) cfg_CONFIG_DM_MULTIPATH='m'
68 + esac
69 + cfg_CONFIG_DM_MULTIPATH_RDAC=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MULTIPATH_RDAC")
70 + case "$cfg_CONFIG_DM_MULTIPATH_RDAC" in
71 + y|m) ;; # Do nothing
72 + *) cfg_CONFIG_DM_MULTIPATH_RDAC='m'
73 + esac
74 + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_DM" "${cfg_CONFIG_BLK_DEV_DM}"
75 + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MULTIPATH" "${cfg_CONFIG_DM_MULTIPATH}"
76 + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MULTIPATH_RDAC" "${cfg_CONFIG_DM_MULTIPATH_RDAC}"
77 fi
78
79 # Make sure dmraid modules are on if --dmraid
80 if isTrue ${CMD_DMRAID}
81 then
82 - kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_DM" "m"
83 + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_DM" "${cfg_CONFIG_BLK_DEV_DM}"
84 fi
85
86 # Make sure iSCSI modules are enabled in the kernel, if --iscsi
87 @@ -140,8 +167,18 @@ config_kernel() {
88 # CONFIG_ISCSI_TCP
89 if isTrue ${CMD_ISCSI}
90 then
91 - kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_ISCSI_TCP" "m"
92 - kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI_ISCSI_ATTRS" "m"
93 + cfg_CONFIG_ISCSI_TCP=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_ISCSI_TCP")
94 + case "$cfg_CONFIG_ISCSI_TCP" in
95 + y|m) ;; # Do nothing
96 + *) cfg_CONFIG_ISCSI_TCP='m'
97 + esac
98 + cfg_CONFIG_SCSI_ISCSI_ATTRS=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI_ISCSI_ATTRS")
99 + case "$cfg_CONFIG_SCSI_ISCSI_ATTRS" in
100 + y|m) ;; # Do nothing
101 + *) cfg_CONFIG_SCSI_ISCSI_ATTRS='m'
102 + esac
103 + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_ISCSI_TCP" "${cfg_CONFIG_ISCSI_TCP}"
104 + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI_ISCSI_ATTRS" "${cfg_CONFIG_SCSI_ISCSI_ATTRS}"
105 fi
106
107 if isTrue ${SPLASH}
108 @@ -167,7 +204,12 @@ config_kernel() {
109 CONFIG_SCSI_VIRTIO \
110 CONFIG_VHOST_NET \
111 ; do
112 - kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "$k" "y"
113 + cfg___virtio_opt=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "$k")
114 + case "$cfg___virtio_opt" in
115 + y|m) ;; # Do nothing
116 + *) cfg___virtio_opt='y'
117 + esac
118 + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "$k" "${cfg___virtio_opt}"
119 done
120 fi
121 }