Gentoo Archives: gentoo-commits

From: Thomas Deutschmann <whissi@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/genkernel:master commit in: doc/, defaults/, /
Date: Mon, 29 Jul 2019 20:10:31
Message-Id: 1564430424.769a07fd3e947ffb216ea94887d752a27ea212d9.whissi@gentoo
1 commit: 769a07fd3e947ffb216ea94887d752a27ea212d9
2 Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
3 AuthorDate: Sun Jul 28 14:33:25 2019 +0000
4 Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
5 CommitDate: Mon Jul 29 20:00:24 2019 +0000
6 URL: https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=769a07fd
7
8 Make initramfs and kernel filename customizable
9
10 New options like --initramfs-filename or --kernel-filename will
11 allow user to customize filenames used when installing initramfs
12 or kernel into $BOOTDIR. Therefore --kernelname (KNAME) option
13 was removed.
14
15 Filename can contain placeholders like '%%ARCH%%' which will get
16 replaced at runtime. Man page contains more information.
17
18 Bug: https://bugs.gentoo.org/395095
19 Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>
20
21 defaults/config.sh | 7 +++
22 doc/genkernel.8.txt | 90 +++++++++++++++++++++++----
23 gen_bootloader.sh | 12 ++--
24 gen_cmdline.sh | 40 ++++++++++--
25 gen_compile.sh | 26 ++++----
26 gen_configkernel.sh | 2 +-
27 gen_determineargs.sh | 169 ++++++++++++++++++++++++++++++++++++++++++++++++++-
28 gen_funcs.sh | 7 +++
29 gen_initramfs.sh | 10 +--
30 gen_package.sh | 98 +++++++++++++++--------------
31 genkernel | 33 +++++-----
32 genkernel.conf | 22 +++++--
33 12 files changed, 407 insertions(+), 109 deletions(-)
34
35 diff --git a/defaults/config.sh b/defaults/config.sh
36 index 3546299..7232671 100644
37 --- a/defaults/config.sh
38 +++ b/defaults/config.sh
39 @@ -21,6 +21,13 @@ KERNEL_SUPPORT_MICROCODE=no
40 # Arch-specific defaults that can be overridden in the config file or on the
41 # command line.
42 #
43 +DEFAULT_INITRAMFS_FILENAME="initramfs-genkernel-%%ARCH%%-%%KV%%"
44 +DEFAULT_INITRAMFS_SYMLINK_NAME="initramfs"
45 +DEFAULT_KERNEL_FILENAME="kernel-genkernel-%%ARCH%%-%%KV%%"
46 +DEFAULT_KERNEL_SYMLINK_NAME="kernel"
47 +DEFAULT_SYSTEMMAP_FILENAME="System.map-%%ARCH%%-%%KV%%"
48 +DEFAULT_SYSTEMMAP_SYMLINK_NAME="System.map"
49 +
50 DEFAULT_COMPRESS_INITRD=yes
51 DEFAULT_COMPRESS_INITRD_TYPE=best
52
53
54 diff --git a/doc/genkernel.8.txt b/doc/genkernel.8.txt
55 index f1ccbe6..e94fa12 100644
56 --- a/doc/genkernel.8.txt
57 +++ b/doc/genkernel.8.txt
58 @@ -150,16 +150,20 @@ KERNEL COMPILATION
59 are copied over.
60
61 *--*[*no-*]*symlink*::
62 - Manages, or does not manage, symlinks in '/boot' like the manual
63 - kernel "make install" process does. A kernel (or, depending on
64 - options, kernelz) symlink will link to the most recently built
65 - kernel image and a kernel.old (or kernelz.old) symlink will link
66 - to the second most recently built image, if one exists. Similar
67 - symlinks (both * and *.old) are managed for initramfs and System.map.
68 - The corresponding work products (i.e., the actual kernel
69 - and initramfs images, and System.map) are also managed accordingly.
70 - NOTE: Specifying *--symlink* does nothing unless
71 - *--install* is also specified.
72 +Manages, or does not manage, symlinks in '/boot' like the manual
73 +kernel "make install" process does. A 'kernel' (or, depending on
74 +options, 'kernelz') symlink will link to the most recently built
75 +kernel image and a 'kernel.old' (or 'kernelz.old') symlink will link
76 +to the second most recently built image, if one exists. Similar
77 +symlinks (with and without '.old' suffix) are managed for initramfs and
78 +System.map. The corresponding work products (i.e., the actual kernel
79 +and initramfs images, and System.map) are also managed accordingly.
80 ++
81 +The symlink name can be controlled via *--kernel-symlink-name* and/or
82 +*--initramfs-symlink-name* option.
83 +
84 +NOTE: Specifying *--symlink* does nothing unless *--install* is also
85 +specified.
86
87 *--*[*no-*]*oldconfig*::
88 Runs, or does not run, "make oldconfig" before compilation. Specifying
89 @@ -428,9 +432,22 @@ INTERNALS
90
91 OUTPUT SETTINGS
92 ~~~~~~~~~~~~~~~
93 -*--kernname*=<...>::
94 - Tag the kernel and initrd with a name, if not defined this
95 - option defaults to genkernel.
96 +*--initramfs-filename*=<...>::
97 +Set initramfs filename which will be used when initramfs will be installed
98 +into *BOOTDIR* (implies *--install* option). Please see
99 +*--kernel-filename* option for available placeholders and restrictions.
100 ++
101 +By default, initramfs filename will be set to 'initramfs-genkernel-%%ARCH%%-%%KV%%'.
102 +
103 +*--initramfs-symlink-name*=<...>::
104 +Set initramfs symlink name which will be used when initramfs will be
105 +installed into *BOOTDIR* (implies *--install* option) and *--symlink*
106 +option is given. Please see *--kernel-filename* option for available
107 +placeholders and restrictions.
108 ++
109 +By default, initramfs symlink name will be set to 'initramfs'.
110 +
111 +NOTE: Initramfs filename and initramfs symlink name must be different.
112
113 *--minkernpackage*=<file>::
114 Archive file created using tar containing kernel and initramfs.
115 @@ -445,11 +462,58 @@ NOTE: No modules outside of the initramfs will be included!
116 Archive file created using tar containing kernel binary, content of
117 '/lib/modules' and the kernel config after the callbacks have run.
118
119 +*--kernel-filename*=<...>::
120 +Set kernel filename which will be used when kernel will be installed
121 +into *BOOTDIR* (implies *--install* option). The following placeholders
122 +are available:
123 ++
124 +[horizontal]
125 +*%%ARCH%%*:::
126 +Will be replaced with genkernel arch value, for example 'x86_64'.
127 +*%%KV%%*:::
128 +Will be replaced with kernel version, for example '5.2.3-gentoo'.
129 +
130 ++
131 +Kernel filename is only allowed to contain characters like 'a-z' or 'A-Z',
132 +'0-9', '_', '.' and '-'.
133 ++
134 +By default, kernel name will be set to 'kernel-genkernel-%%ARCH%%-%%KV%%'.
135 +
136 +NOTE: When setting a custom kernel name make sure that your bootloader and
137 +tools like *kexec* when used are recognizing your custom kernel name.
138 +
139 *--*[*no-*]*kernel-sources*::
140 This option is only valid if kerncache is defined If there is a
141 valid kerncache no checks will be made against a kernel source
142 tree.
143
144 +*--kernel-symlink-name*=<...>::
145 +Set kernel symlink name which will be used when kernel will be installed
146 +into *BOOTDIR* (implies *--install* option) and *--symlink* option is
147 +given. Please see *--kernel-filename* option for available placeholders
148 +and restrictions.
149 ++
150 +By default, kernel symlink name will be set to 'kernel'.
151 +
152 +NOTE: Kernel filename and kernel symlink name must be different.
153 +
154 +*--systemmap-filename*=<...>::
155 +Set System.map filename which will be used when kernel will be installed
156 +into *BOOTDIR* (implies *--install* option). Please see
157 +*--kernel-filename* option for available placeholders and restrictions.
158 ++
159 +By default, System.map filename will be set to 'System.map-genkernel-%%ARCH%%-%%KV%%'.
160 +
161 +*--systemmap-symlink-name*=<...>::
162 +Set System.map symlink name which will be used when kernel will be
163 +installed into *BOOTDIR* (implies *--install* option) and *--symlink*
164 +option is given. Please see *--kernel-filename* option for available
165 +placeholders and restrictions.
166 ++
167 +By default, System.map symlink name will be set to 'System.map'.
168 +
169 +NOTE: System.map filename and System.map symlink name must be different.
170 +
171 *--initramfs-overlay*=<dir>::
172 Directory structure to include in the initramfs, only available
173 on >=2.6 kernels.
174
175 diff --git a/gen_bootloader.sh b/gen_bootloader.sh
176 index b215cd8..5202047 100755
177 --- a/gen_bootloader.sh
178 +++ b/gen_bootloader.sh
179 @@ -102,12 +102,12 @@ set_bootloader_grub() {
180 # Add grub configuration to grub.conf
181 echo "# Genkernel generated entry, see GRUB documentation for details" >> ${GRUB_CONF}
182 echo "title=Gentoo Linux ($KV)" >> ${GRUB_CONF}
183 - printf "%b\n" "\tkernel /kernel-${KNAME}-${ARCH}-${KV} root=${GRUB_ROOTFS}" >> ${GRUB_CONF}
184 + printf "%b\n" "\tkernel /${GK_FILENAME_KERNEL} root=${GRUB_ROOTFS}" >> ${GRUB_CONF}
185 if isTrue "${BUILD_RAMDISK}"
186 then
187 if [ "${PAT}" -gt '4' ]
188 then
189 - printf "%b\n" "\tinitrd /initramfs-${KNAME}-${ARCH}-${KV}" >> ${GRUB_CONF}
190 + printf "%b\n" "\tinitrd /${GK_FILENAME_INITRAMFS}" >> ${GRUB_CONF}
191 fi
192 fi
193 echo >> ${GRUB_CONF}
194 @@ -129,14 +129,14 @@ set_bootloader_grub() {
195 }
196
197 set_bootloader_grub_duplicate_default_replace_kernel_initrd() {
198 - sed -r -e "/^[[:space:]]*kernel/s/kernel-[[:alnum:][:punct:]]+/kernel-${KNAME}-${ARCH}-${KV}/" - |
199 - sed -r -e "/^[[:space:]]*initrd/s/init(rd|ramfs)-[[:alnum:][:punct:]]+/init\1-${KNAME}-${ARCH}-${KV}/"
200 + sed -r -e "/^[[:space:]]*kernel/s/kernel-[[:alnum:][:punct:]]+/${GK_FILENAME_KERNEL}/" - |
201 + sed -r -e "/^[[:space:]]*initrd/s/init(rd|ramfs)-[[:alnum:][:punct:]]+/${GK_FILENAME_INITRAMFS}/"
202 }
203
204 set_bootloader_grub_check_for_existing_entry() {
205 local GRUB_CONF=$1
206 - if grep -q "^[[:space:]]*kernel[[:space:]=]*.*/kernel-${KNAME}-${ARCH}-${KV}\([[:space:]]\|$\)" "${GRUB_CONF}" &&
207 - grep -q "^[[:space:]]*initrd[[:space:]=]*.*/initramfs-${KNAME}-${ARCH}-${KV}\([[:space:]]\|$\)" "${GRUB_CONF}"
208 + if grep -q "^[[:space:]]*kernel[[:space:]=]*.*/${GK_FILENAME_KERNEL}\([[:space:]]\|$\)" "${GRUB_CONF}" &&
209 + grep -q "^[[:space:]]*initrd[[:space:]=]*.*/${GK_FILENAME_INITRAMFS}\([[:space:]]\|$\)" "${GRUB_CONF}"
210 then
211 return 0
212 fi
213
214 diff --git a/gen_cmdline.sh b/gen_cmdline.sh
215 index 5d62a64..6fbf309 100755
216 --- a/gen_cmdline.sh
217 +++ b/gen_cmdline.sh
218 @@ -182,8 +182,10 @@ longusage() {
219 echo " --postclear Clear all tmp files and caches after genkernel has run"
220 echo " --no-postclear Do not clean up after genkernel has run"
221 echo " Output Settings"
222 - echo " --kernname=<...> Tag the kernel and initramfs with a name; If not defined"
223 - echo " the option defaults to 'genkernel'"
224 + echo " --kernel-filename=<...>"
225 + echo " Set kernel filename"
226 + echo " --kernel-symlink-name=<...>"
227 + echo " Set kernel symlink name"
228 echo " --minkernpackage=<archive>"
229 echo " Archive file created using tar containing kernel and"
230 echo " initramfs"
231 @@ -196,9 +198,13 @@ longusage() {
232 echo " --no-kernel-sources This option is only valid if kerncache is"
233 echo " defined. If there is a valid kerncache no checks"
234 echo " will be made against a kernel source tree"
235 + echo " --initramfs-filename=<...>"
236 + echo " Set initramfs filename"
237 echo " --initramfs-overlay=<dir>"
238 echo " Directory structure to include in the initramfs,"
239 echo " only available on 2.6 kernels"
240 + echo " --initramfs-symlink-name=<...>"
241 + echo " Set initramfs symlink name"
242 echo " --firmware Enable copying of firmware into initramfs"
243 echo " --firmware-dir=<dir>"
244 echo " Specify directory to copy firmware from (defaults"
245 @@ -229,6 +235,10 @@ longusage() {
246 echo " Strip debug symbols from none, all, installed kernel (obsolete) or"
247 echo " modules (default)"
248 echo " --no-strip Don't strip installed kernel or modules, alias for --strip=none"
249 + echo " --systemmap-filename=<...>"
250 + echo " Set System.map filename"
251 + echo " --systemmap-symlink-name=<...>"
252 + echo " Set System.map symlink name"
253 echo
254 echo "For a detailed list of supported initramfs options and flags; issue:"
255 echo " man 8 genkernel"
256 @@ -670,9 +680,13 @@ parse_cmdline() {
257 CMD_KERNCACHE="${*#*=}"
258 print_info 3 "KERNCACHE: ${CMD_KERNCACHE}"
259 ;;
260 - --kernname=*)
261 - CMD_KERNNAME="${*#*=}"
262 - print_info 3 "KERNNAME: ${CMD_KERNNAME}"
263 + --kernel-filename=*)
264 + CMD_KERNEL_FILENAME="${*#*=}"
265 + print_info 3 "CMD_KERNEL_FILENAME: ${CMD_KERNEL_FILENAME}"
266 + ;;
267 + --kernel-symlink-name=*)
268 + CMD_KERNEL_SYMLINK_NAME="${*#*=}"
269 + print_info 3 "CMD_KERNEL_SYMLINK_NAME: ${CMD_KERNEL_SYMLINK_NAME}"
270 ;;
271 --symlink|--no-symlink)
272 CMD_SYMLINK=$(parse_optbool "$*")
273 @@ -682,10 +696,26 @@ parse_cmdline() {
274 CMD_KERNEL_SOURCES=$(parse_optbool "$*")
275 print_info 3 "CMD_KERNEL_SOURCES: ${CMD_KERNEL_SOURCES}"
276 ;;
277 + --initramfs-filename=*)
278 + CMD_INITRAMFS_FILENAME="${*#*=}"
279 + print_info 3 "CMD_INITRAMFS_FILENAME: ${CMD_INITRAMFS_FILENAME}"
280 + ;;
281 --initramfs-overlay=*)
282 CMD_INITRAMFS_OVERLAY="${*#*=}"
283 print_info 3 "CMD_INITRAMFS_OVERLAY: ${CMD_INITRAMFS_OVERLAY}"
284 ;;
285 + --initramfs-symlink-name=*)
286 + CMD_INITRAMFS_SYMLINK_NAME="${*#*=}"
287 + print_info 3 "CMD_INITRAMFS_SYMLINK_NAME: ${CMD_INITRAMFS_SYMLINK_NAME}"
288 + ;;
289 + --systemmap-filename=*)
290 + CMD_SYSTEMMAP_FILENAME="${*#*=}"
291 + print_info 3 "CMD_SYSTEMMAP_FILENAME: ${CMD_SYSTEMMAP_FILENAME}"
292 + ;;
293 + --systemmap-symlink-name=*)
294 + CMD_SYSTEMMAP_SYMLINK_NAME="${*#*=}"
295 + print_info 3 "CMD_SYSTEMMAP_SYMLINK_NAME: ${CMD_SYSTEMMAP_SYMLINK_NAME}"
296 + ;;
297 --linuxrc=*)
298 CMD_LINUXRC="${*#*=}"
299 print_info 3 "CMD_LINUXRC: ${CMD_LINUXRC}"
300
301 diff --git a/gen_compile.sh b/gen_compile.sh
302 index b3a8382..dd2e7d7 100755
303 --- a/gen_compile.sh
304 +++ b/gen_compile.sh
305 @@ -303,38 +303,38 @@ compile_kernel() {
306 # if source != outputdir, we need this:
307 tmp_kernel_binary="${KERNEL_OUTPUTDIR}"/"${tmp_kernel_binary}"
308 tmp_kernel_binary2="${KERNEL_OUTPUTDIR}"/"${tmp_kernel_binary2}"
309 - systemmap="${KERNEL_OUTPUTDIR}"/System.map
310 + local tmp_systemmap="${KERNEL_OUTPUTDIR}"/System.map
311
312 if isTrue "${CMD_INSTALL}"
313 then
314 copy_image_with_preserve \
315 - "kernel" \
316 + "${GK_FILENAME_KERNEL_SYMLINK}" \
317 "${tmp_kernel_binary}" \
318 - "kernel-${KNAME}-${ARCH}-${KV}"
319 + "${GK_FILENAME_KERNEL}"
320
321 copy_image_with_preserve \
322 - "System.map" \
323 - "${systemmap}" \
324 - "System.map-${KNAME}-${ARCH}-${KV}"
325 + "${GK_FILENAME_SYSTEMMAP_SYMLINK}" \
326 + "${tmp_systemmap}" \
327 + "${GK_FILENAME_SYSTEMMAP}"
328
329 if isTrue "${GENZIMAGE}"
330 then
331 copy_image_with_preserve \
332 "kernelz" \
333 "${tmp_kernel_binary2}" \
334 - "kernelz-${KV}"
335 + "${GK_FILENAME_KERNELZ}"
336 fi
337 else
338 - cp "${tmp_kernel_binary}" "${TMPDIR}/kernel-${KNAME}-${ARCH}-${KV}" \
339 - || gen_die "Could not copy the kernel binary to '${TMPDIR}'!"
340 + cp "${tmp_kernel_binary}" "${TMPDIR}/${GK_FILENAME_TEMP_KERNEL}" \
341 + || gen_die "Could not copy kernel binary '${tmp_kernel_binary}' to '${TMPDIR}'!"
342
343 - cp "${systemmap}" "${TMPDIR}/System.map-${KNAME}-${ARCH}-${KV}" \
344 - || gen_die "Could not copy System.map to '${TMPDIR}'!"
345 + cp "${tmp_systemmap}" "${TMPDIR}/${GK_FILENAME_TEMP_SYSTEMMAP}" \
346 + || gen_die "Could not copy System.map '${tmp_systemmap}' to '${TMPDIR}'!"
347
348 if isTrue "${GENZIMAGE}"
349 then
350 - cp "${tmp_kernel_binary2}" "${TMPDIR}/kernelz-${KV}" \
351 - || gen_die "Could not copy the kernelz binary to '${TMPDIR}'!"
352 + cp "${tmp_kernel_binary2}" "${TMPDIR}/${GK_FILENAME_TEMP_KERNELZ}" \
353 + || gen_die "Could not copy kernelz binary '${tmp_kernel_binary2}' to '${TMPDIR}'!"
354 fi
355 fi
356 }
357
358 diff --git a/gen_configkernel.sh b/gen_configkernel.sh
359 index 9a33717..124852e 100755
360 --- a/gen_configkernel.sh
361 +++ b/gen_configkernel.sh
362 @@ -27,7 +27,7 @@ determine_kernel_config_file() {
363 then
364 print_info 1 "Default configuration was forced. Will ignore any user kernel configuration!"
365 else
366 - kconfig_candidates=( "/etc/kernels/kernel-config-${ARCH}-${KV}" ${kconfig_candidates[@]} )
367 + kconfig_candidates=( "/etc/kernels/${GK_FILENAME_CONFIG}" ${kconfig_candidates[@]} )
368 fi
369
370 local f
371
372 diff --git a/gen_determineargs.sh b/gen_determineargs.sh
373 index 3674cf0..2689f86 100755
374 --- a/gen_determineargs.sh
375 +++ b/gen_determineargs.sh
376 @@ -83,6 +83,168 @@ determine_KV() {
377 fi
378 }
379
380 +determine_output_filenames() {
381 + print_info 5 '' 1 0
382 +
383 + GK_FILENAME_CONFIG="kernel-config-${ARCH}-${KV}"
384 + GK_FILENAME_KERNELZ="kernelz-${KV}"
385 + GK_FILENAME_TEMP_CONFIG="config-${ARCH}-${KV}"
386 + GK_FILENAME_TEMP_INITRAMFS="initramfs-${ARCH}-${KV}"
387 + GK_FILENAME_TEMP_KERNEL="kernel-${ARCH}-${KV}"
388 + GK_FILENAME_TEMP_KERNELZ="kernelz-${ARCH}-${KV}"
389 + GK_FILENAME_TEMP_SYSTEMMAP="System.map-${ARCH}-${KV}"
390 +
391 + isTrue "${CMD_INSTALL}" || return
392 +
393 + # Do we have values?
394 + if [ -z "${KERNEL_FILENAME}" ]
395 + then
396 + gen_die "--kernel-filename must be set to a non-empty value!"
397 + elif [ -z "${KERNEL_SYMLINK_NAME}" ]
398 + then
399 + gen_die "--kernel-symlink-name must be set to a non-empty value!"
400 + elif [ -z "${SYSTEMMAP_FILENAME}" ]
401 + then
402 + gen_die "--systemmap-filename must be set to a non-empty value!"
403 + elif [ -z "${SYSTEMMAP_SYMLINK_NAME}" ]
404 + then
405 + gen_die "--systemmap-symlink-name must be set to a non-empty value!"
406 + elif [ -z "${INITRAMFS_FILENAME}" ]
407 + then
408 + gen_die "--initramfs-filename must be set to a non-empty value!"
409 + elif [ -z "${INITRAMFS_FILENAME}" ]
410 + then
411 + gen_die "--initramfs-filename must be set to a non-empty value!"
412 + fi
413 +
414 + # Kernel
415 + GK_FILENAME_KERNEL=$(arch_replace "${KERNEL_FILENAME}")
416 + GK_FILENAME_KERNEL=$(kv_replace "${GK_FILENAME_KERNEL}")
417 +
418 + if [ -z "${GK_FILENAME_KERNEL}" ]
419 + then
420 + gen_die "Internal error: Variable 'GK_FILENAME_KERNEL' is empty!"
421 + else
422 + print_info 5 "GK_FILENAME_KERNEL set to '${GK_FILENAME_KERNEL}' (was: '${KERNEL_FILENAME}')"
423 + fi
424 +
425 + # Kernel symlink
426 + GK_FILENAME_KERNEL_SYMLINK=$(arch_replace "${KERNEL_SYMLINK_NAME}")
427 + GK_FILENAME_KERNEL_SYMLINK=$(kv_replace "${GK_FILENAME_KERNEL_SYMLINK}")
428 +
429 + if [ -z "${GK_FILENAME_KERNEL_SYMLINK}" ]
430 + then
431 + gen_die "Internal error: Variable 'GK_FILENAME_KERNEL_SYMLINK' is empty!"
432 + else
433 + print_info 5 "GK_FILENAME_KERNEL_SYMLINK set to '${GK_FILENAME_KERNEL_SYMLINK}' (was: '${KERNEL_SYMLINK_NAME}')"
434 + fi
435 +
436 + if [[ "${GK_FILENAME_KERNEL}" == "${GK_FILENAME_KERNEL_SYMLINK}" ]]
437 + then
438 + gen_die "--kernel-filename cannot be identical with --kernel-symlink-name!"
439 + fi
440 +
441 + # System.map
442 + GK_FILENAME_SYSTEMMAP=$(arch_replace "${SYSTEMMAP_FILENAME}")
443 + GK_FILENAME_SYSTEMMAP=$(kv_replace "${GK_FILENAME_SYSTEMMAP}")
444 +
445 + if [ -z "${GK_FILENAME_SYSTEMMAP}" ]
446 + then
447 + gen_die "Internal error: Variable 'GK_FILENAME_SYSTEMMAP' is empty!"
448 + else
449 + print_info 5 "GK_FILENAME_SYSTEMMAP set to '${GK_FILENAME_SYSTEMMAP}' (was: '${SYSTEMMAP_FILENAME}')"
450 + fi
451 +
452 + # System.map symlink
453 + GK_FILENAME_SYSTEMMAP_SYMLINK=$(arch_replace "${SYSTEMMAP_SYMLINK_NAME}")
454 + GK_FILENAME_SYSTEMMAP_SYMLINK=$(kv_replace "${GK_FILENAME_SYSTEMMAP_SYMLINK}")
455 +
456 + if [ -z "${GK_FILENAME_SYSTEMMAP_SYMLINK}" ]
457 + then
458 + gen_die "Internal error: Variable 'GK_FILENAME_SYSTEMMAP_SYMLINK' is empty!"
459 + else
460 + print_info 5 "GK_FILENAME_SYSTEMMAP_SYMLINK set to '${GK_FILENAME_SYSTEMMAP_SYMLINK}' (was: '${SYSTEMMAP_SYMLINK_NAME}')"
461 + fi
462 +
463 + if [[ "${GK_FILENAME_SYSTEMMAP}" == "${GK_FILENAME_SYSTEMMAP_SYMLINK}" ]]
464 + then
465 + gen_die "--systemmap-filename cannot be identical with --systemmap-symlink-name!"
466 + fi
467 +
468 + # Initramfs
469 + GK_FILENAME_INITRAMFS=$(arch_replace "${INITRAMFS_FILENAME}")
470 + GK_FILENAME_INITRAMFS=$(kv_replace "${GK_FILENAME_INITRAMFS}")
471 +
472 + if [ -z "${GK_FILENAME_INITRAMFS}" ]
473 + then
474 + gen_die "Internal error: Variable 'GK_FILENAME_INITRAMFS' is empty!"
475 + else
476 + print_info 5 "GK_FILENAME_INITRAMFS set to '${GK_FILENAME_INITRAMFS}' (was: '${INITRAMFS_FILENAME}')"
477 + fi
478 +
479 + # Initramfs symlink
480 + GK_FILENAME_INITRAMFS_SYMLINK=$(arch_replace "${INITRAMFS_SYMLINK_NAME}")
481 + GK_FILENAME_INITRAMFS_SYMLINK=$(kv_replace "${GK_FILENAME_INITRAMFS_SYMLINK}")
482 +
483 + if [ -z "${GK_FILENAME_INITRAMFS_SYMLINK}" ]
484 + then
485 + gen_die "Internal error: Variable 'GK_FILENAME_INITRAMFS_SYMLINK' is empty!"
486 + else
487 + print_info 5 "GK_FILENAME_INITRAMFS_SYMLINK set to '${GK_FILENAME_INITRAMFS_SYMLINK}' (was: '${INITRAMFS_SYMLINK_NAME}')"
488 + fi
489 +
490 + if [[ "${GK_FILENAME_INITRAMFS}" == "${GK_FILENAME_INITRAMFS_SYMLINK}" ]]
491 + then
492 + gen_die "--initramfs-filename cannot be identical with --initramfs-symlink-name!"
493 + fi
494 +
495 + # Make sure we have unique filenames
496 + if [[ "${GK_FILENAME_KERNEL}" == "${GK_FILENAME_INITRAMFS}" ]]
497 + then
498 + gen_die "--kernel-filename cannot be identical with --initramfs-filename!"
499 + elif [[ "${GK_FILENAME_KERNEL}" == "${GK_FILENAME_SYSTEMMAP}" ]]
500 + then
501 + gen_die "--kernel-filename cannot be identical with --systemmap-filename!"
502 + elif [[ "${GK_FILENAME_INITRAMFS}" == "${GK_FILENAME_SYSTEMMAP}" ]]
503 + then
504 + gen_die "--initramfs-filename cannot be identical with --systemmap-filename!"
505 + fi
506 +
507 + if [[ "${GK_FILENAME_KERNEL_SYMLINK}" == "${GK_FILENAME_INITRAMFS_SYMLINK}" ]]
508 + then
509 + gen_die "--kernel-symlink-name cannot be identical with --initramfs-symlink-name!"
510 + elif [[ "${GK_FILENAME_KERNEL_SYMLINK}" == "${GK_FILENAME_SYSTEMMAP_SYMLINK}" ]]
511 + then
512 + gen_die "--kernel-symlink-name cannot be identical with --systemmap-symlink-name!"
513 + elif [[ "${GK_FILENAME_INITRAMFS_SYMLINK}" == "${GK_FILENAME_SYSTEMMAP_SYMLINK}" ]]
514 + then
515 + gen_die "--initramfs-symlink-name cannot be identical with --systemmap-symlink-name!"
516 + fi
517 +
518 + local -a filename_vars
519 + filename_vars+=( 'GK_FILENAME_INITRAMFS;--initramfs-filename' )
520 + filename_vars+=( 'GK_FILENAME_INITRAMFS_SYMLINK;--initramfs-symlink-name' )
521 + filename_vars+=( 'GK_FILENAME_KERNEL;--kernel-filename' )
522 + filename_vars+=( 'GK_FILENAME_KERNEL_SYMLINK;--kernel-symlink-name' )
523 + filename_vars+=( 'GK_FILENAME_SYSTEMMAP;--systemmap-filename' )
524 + filename_vars+=( 'GK_FILENAME_SYSTEMMAP_SYMLINK;--systemmap-symlink-name' )
525 +
526 + local valid_filename_pattern='^[a-zA-Z0-9_.-]{1,}$'
527 + local filename_combo filename_varname filename_option
528 +
529 + for filename_combo in "${filename_vars[@]}"
530 + do
531 + filename_combo=( ${filename_combo//;/ } )
532 + filename_varname=${filename_combo[0]}
533 + filename_option=${filename_combo[1]}
534 +
535 + if [[ ! "${!filename_varname}" =~ ${valid_filename_pattern} ]]
536 + then
537 + gen_die "${filename_varname} value '${!filename_varname}' does not match regex '${valid_filename_pattern}'. Check ${filename_option} option!"
538 + fi
539 + done
540 +}
541 +
542 determine_real_args() {
543 # Unset known variables which will interfere with _tc-getPROG().
544 local tc_var tc_varname_build tc_vars=$(get_tc_vars)
545 @@ -101,7 +263,12 @@ determine_real_args() {
546 set_config_with_override STRING LOGFILE CMD_LOGFILE "/var/log/genkernel.conf"
547 set_config_with_override STRING KERNEL_DIR CMD_KERNEL_DIR "${DEFAULT_KERNEL_SOURCE}"
548 set_config_with_override BOOL KERNEL_SOURCES CMD_KERNEL_SOURCES "yes"
549 - set_config_with_override STRING KNAME CMD_KERNNAME "genkernel"
550 + set_config_with_override STRING INITRAMFS_FILENAME CMD_INITRAMFS_FILENAME "${DEFAULT_INITRAMFS_FILENAME}"
551 + set_config_with_override STRING INITRAMFS_SYMLINK_NAME CMD_INITRAMFS_SYMLINK_NAME "${DEFAULT_INITRAMFS_SYMLINK_NAME}"
552 + set_config_with_override STRING KERNEL_FILENAME CMD_KERNEL_FILENAME "${DEFAULT_KERNEL_FILENAME}"
553 + set_config_with_override STRING KERNEL_SYMLINK_NAME CMD_KERNEL_SYMLINK_NAME "${DEFAULT_KERNEL_SYMLINK_NAME}"
554 + set_config_with_override STRING SYSTEMMAP_FILENAME CMD_SYSTEMMAP_FILENAME "${DEFAULT_SYSTEMMAP_FILENAME}"
555 + set_config_with_override STRING SYSTEMMAP_SYMLINK_NAME CMD_SYSTEMMAP_SYMLINK_NAME "${DEFAULT_SYSTEMMAP_SYMLINK_NAME}"
556
557 set_config_with_override STRING CHECK_FREE_DISK_SPACE_BOOTDIR CMD_CHECK_FREE_DISK_SPACE_BOOTDIR
558 set_config_with_override STRING CHECK_FREE_DISK_SPACE_KERNELOUTPUTDIR CMD_CHECK_FREE_DISK_SPACE_KERNELOUTPUTDIR
559
560 diff --git a/gen_funcs.sh b/gen_funcs.sh
561 index e0b679a..a1fe98a 100755
562 --- a/gen_funcs.sh
563 +++ b/gen_funcs.sh
564 @@ -298,6 +298,13 @@ cache_replace() {
565 var_replace "CACHE" "${GK_V_CACHEDIR}" "${1}"
566 }
567
568 +kv_replace() {
569 + [[ ${#} -ne 1 ]] \
570 + && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly one argument (${#} given)!"
571 +
572 + var_replace "KV" "${KV}" "${1}"
573 +}
574 +
575 gen_die() {
576 set +x
577
578
579 diff --git a/gen_initramfs.sh b/gen_initramfs.sh
580 index 9c07c54..fb269b8 100755
581 --- a/gen_initramfs.sh
582 +++ b/gen_initramfs.sh
583 @@ -1536,7 +1536,7 @@ create_initramfs() {
584 print_info 1 "initramfs: >> Initializing ..."
585
586 # Create empty cpio
587 - CPIO_ARCHIVE="${TMPDIR}/initramfs-${KNAME}-${ARCH}-${KV}"
588 + CPIO_ARCHIVE="${TMPDIR}/${GK_FILENAME_TEMP_INITRAMFS}"
589 append_data 'devices' # WARNING, must be first!
590 append_data 'base_layout'
591 append_data 'auxilary' "${BUSYBOX}"
592 @@ -1826,8 +1826,8 @@ create_initramfs() {
593 [[ -z ${mkimage_cmd} ]] && gen_die "mkimage is not available. Please install package 'dev-embedded/u-boot-tools'."
594 local mkimage_args="-A ${ARCH} -O linux -T ramdisk -C ${compression:-none} -a 0x00000000 -e 0x00000000"
595 print_info 1 "$(get_indent 1)>> Wrapping initramfs using mkimage ..."
596 - print_info 2 "$(get_indent 1)${mkimage_cmd} ${mkimage_args} -n initramfs-${KNAME}-${ARCH}-${KV} -d ${CPIO_ARCHIVE} ${CPIO_ARCHIVE}.uboot"
597 - ${mkimage_cmd} ${mkimage_args} -n "initramfs-${KNAME}-${ARCH}-${KV}" -d "${CPIO_ARCHIVE}" "${CPIO_ARCHIVE}.uboot" >> ${LOGFILE} 2>&1 || gen_die "Wrapping initramfs using mkimage failed"
598 + print_info 2 "$(get_indent 1)${mkimage_cmd} ${mkimage_args} -n ${GK_FILENAME_TEMP_INITRAMFS} -d ${CPIO_ARCHIVE} ${CPIO_ARCHIVE}.uboot"
599 + ${mkimage_cmd} ${mkimage_args} -n "${GK_FILENAME_TEMP_INITRAMFS}" -d "${CPIO_ARCHIVE}" "${CPIO_ARCHIVE}.uboot" >> ${LOGFILE} 2>&1 || gen_die "Wrapping initramfs using mkimage failed"
600 mv -f "${CPIO_ARCHIVE}.uboot" "${CPIO_ARCHIVE}" || gen_die "Rename failed"
601 fi
602 fi
603 @@ -1837,9 +1837,9 @@ create_initramfs() {
604 if ! isTrue "${INTEGRATED_INITRAMFS}"
605 then
606 copy_image_with_preserve \
607 - "initramfs" \
608 + "${GK_FILENAME_INITRAMFS_SYMLINK}" \
609 "${CPIO_ARCHIVE}" \
610 - "initramfs-${KNAME}-${ARCH}-${KV}"
611 + "${GK_FILENAME_INITRAMFS}"
612 fi
613 fi
614 }
615
616 diff --git a/gen_package.sh b/gen_package.sh
617 index 0240b80..aad52de 100755
618 --- a/gen_package.sh
619 +++ b/gen_package.sh
620 @@ -7,31 +7,37 @@ gen_minkernpackage() {
621 mkdir "${TEMP}/minkernpackage" || gen_die "Failed to create '${TEMP}/minkernpackage'!"
622 if [ -n "${KERNCACHE}" ]
623 then
624 - "${TAR_COMMAND}" -x -C "${TEMP}"/minkernpackage -f "${KERNCACHE}" kernel-${ARCH}-${KV} \
625 - || gen_die "Failed to extract 'kernel-${ARCH}-${KV}' from '${KERNCACHE}' to '${TEMP}/minkernpackage'!"
626 + "${TAR_COMMAND}" -x -C "${TEMP}"/minkernpackage -f "${KERNCACHE}" "${GK_FILENAME_TEMP_KERNEL}" \
627 + || gen_die "Failed to extract '${GK_FILENAME_TEMP_KERNEL}' from '${KERNCACHE}' to '${TEMP}/minkernpackage'!"
628
629 - mv "${TEMP}"/minkernpackage/{kernel-${ARCH}-${KV},kernel-${KNAME}-${ARCH}-${KV}} \
630 - || gen_die "Failed to rename '${TEMP}/minkernpackage/kernel-${ARCH}-${KV}' to 'kernel-${KNAME}-${ARCH}-${KV}'!"
631 -
632 - "${TAR_COMMAND}" -x -C "${TEMP}"/minkernpackage -f "${KERNCACHE}" System.map-${ARCH}-${KV} \
633 - || gen_die "Failed to extract 'System.map-${ARCH}-${KV}' from '${KERNCACHE}' to '${TEMP}/minkernpackage'!"
634 + if [[ "${GK_FILENAME_TEMP_KERNEL}" != "${GK_FILENAME_KERNEL}" ]]
635 + then
636 + mv "${TEMP}"/minkernpackage/{${GK_FILENAME_TEMP_KERNEL},${GK_FILENAME_KERNEL}} \
637 + || gen_die "Failed to rename '${TEMP}/minkernpackage/${GK_FILENAME_TEMP_KERNEL}' to '${GK_FILENAME_KERNEL}'!"
638 + fi
639
640 - mv "${TEMP}"/minkernpackage/{System.map-${ARCH}-${KV},System.map-${KNAME}-${ARCH}-${KV}} \
641 - || gen_die "Failed to rename '${TEMP}/minkernpackage/System.map-${ARCH}-${KV}' to 'System.map-${KNAME}-${ARCH}-${KV}'!"
642 + "${TAR_COMMAND}" -x -C "${TEMP}"/minkernpackage -f "${KERNCACHE}" "${GK_FILENAME_TEMP_SYSTEMMAP}" \
643 + || gen_die "Failed to extract '${GK_FILENAME_TEMP_SYSTEMMAP}' from '${KERNCACHE}' to '${TEMP}/minkernpackage'!"
644
645 - "${TAR_COMMAND}" -x -C "${TEMP}"/minkernpackage -f "${KERNCACHE}" config-${ARCH}-${KV} \
646 - || gen_die "Failed to extract 'config-${ARCH}-${KV}' from '${KERNCACHE}' to '${TEMP}/minkernpackage'!"
647 + if [[ "${GK_FILENAME_TEMP_SYSTEMMAP}" != "${GK_FILENAME_SYSTEMMAP}" ]]
648 + then
649 + mv "${TEMP}"/minkernpackage/{${GK_FILENAME_TEMP_SYSTEMMAP},${GK_FILENAME_SYSTEMMAP}} \
650 + || gen_die "Failed to rename '${TEMP}/minkernpackage/${GK_FILENAME_TEMP_SYSTEMMAP}' to '${GK_FILENAME_SYSTEMMAP}'!"
651 + fi
652
653 - mv "${TEMP}"/minkernpackage/{config-${ARCH}-${KV},config-${KNAME}-${ARCH}-${KV}} \
654 - || gen_die "Failed to rename '${TEMP}/minkernpackage/config-${ARCH}-${KV}' to 'config-${KNAME}-${ARCH}-${KV}'!"
655 + "${TAR_COMMAND}" -x -C "${TEMP}"/minkernpackage -f "${KERNCACHE}" "${GK_FILENAME_TEMP_CONFIG}" \
656 + || gen_die "Failed to extract '${GK_FILENAME_TEMP_CONFIG}' from '${KERNCACHE}' to '${TEMP}/minkernpackage'!"
657
658 if isTrue "${GENZIMAGE}"
659 then
660 - "${TAR_COMMAND}" -x -C "${TEMP}"/minkernpackage -f "${KERNCACHE}" kernelz-${ARCH}-${KV} \
661 - || gen_die "Failed to extract 'kernelz-${ARCH}-${KV}' from '${KERNCACHE}' to '${TEMP}/minkernpackage'!"
662 + "${TAR_COMMAND}" -x -C "${TEMP}"/minkernpackage -f "${KERNCACHE}" "${GK_FILENAME_TEMP_KERNELZ}" \
663 + || gen_die "Failed to extract '${GK_FILENAME_TEMP_KERNELZ}' from '${KERNCACHE}' to '${TEMP}/minkernpackage'!"
664
665 - mv "${TEMP}"/minkernpackage/{kernelz-${ARCH}-${KV},kernelz-${KNAME}-${ARCH}-${KV}} \
666 - || gen_die "Failed to rename '${TEMP}/minkernpackage/kernelz-${ARCH}-${KV}' to 'kernelz-${KNAME}-${ARCH}-${KV}'!"
667 + if [[ "${GK_FILENAME_TEMP_KERNELZ}" != "${GK_FILENAME_KERNELZ}" ]]
668 + then
669 + mv "${TEMP}"/minkernpackage/{${GK_FILENAME_TEMP_KERNELZ},${GK_FILENAME_KERNELZ}} \
670 + || gen_die "Failed to rename '${TEMP}/minkernpackage/${GK_FILENAME_TEMP_KERNELZ}' to '${GK_FILENAME_KERNELZ}'!"
671 + fi
672 fi
673 else
674 local tmp_kernel_binary=$(find_kernel_binary ${KERNEL_BINARY})
675 @@ -42,13 +48,13 @@ gen_minkernpackage() {
676
677 cd "${KERNEL_OUTPUTDIR}" || gen_die "Failed to chdir to '${KERNEL_OUTPUTDIR}'!"
678
679 - cp "${tmp_kernel_binary}" "${TEMP}/minkernpackage/kernel-${KNAME}-${ARCH}-${KV}" \
680 + cp "${tmp_kernel_binary}" "${TEMP}/minkernpackage/${GK_FILENAME_TEMP_KERNEL}" \
681 || gen_die "Could not copy the kernel binary '${tmp_kernel_binary}' for the min kernel package!"
682
683 - cp "System.map" "${TEMP}/minkernpackage/System.map-${KNAME}-${ARCH}-${KV}" \
684 + cp "System.map" "${TEMP}/minkernpackage/${GK_FILENAME_TEMP_SYSTEMMAP}" \
685 || gen_die "Could not copy '${KERNEL_OUTPUTDIR}/System.map' for the min kernel package!"
686
687 - cp ".config" "${TEMP}/minkernpackage/config-${KNAME}-${ARCH}-${KV}" \
688 + cp ".config" "${TEMP}/minkernpackage/${GK_FILENAME_TEMP_CONFIG}" \
689 || gen_die "Could not copy the kernel config '${KERNEL_OUTPUTDIR}/.config' for the min kernel package!"
690
691 if isTrue "${GENZIMAGE}"
692 @@ -59,7 +65,7 @@ gen_minkernpackage() {
693 gen_die "Failed to locate kernel binary '${KERNEL_BINARY_2}'!"
694 fi
695
696 - cp "${tmp_kernel_binary2}" "${TEMP}/minkernpackage/kernelz-${KNAME}-${ARCH}-${KV}" \
697 + cp "${tmp_kernel_binary2}" "${TEMP}/minkernpackage/${GK_FILENAME_TEMP_KERNEL}" \
698 || gen_die "Could not copy the kernelz binary '${tmp_kernel_binary2}' for the min kernel package!"
699 fi
700 fi
701 @@ -68,8 +74,8 @@ gen_minkernpackage() {
702 then
703 if isTrue "${BUILD_RAMDISK}"
704 then
705 - cp "${TMPDIR}/initramfs-${KV}" "${TEMP}/minkernpackage/initramfs-${KNAME}-${ARCH}-${KV}" \
706 - || gen_die "Could not copy the initramfs '${TMPDIR}/initramfs-${KV}' for the min kernel package!"
707 + cp "${TMPDIR}/${GK_FILENAME_TEMP_INITRAMFS}" "${TEMP}/minkernpackage/${GK_FILENAME_TEMP_INITRAMFS}" \
708 + || gen_die "Could not copy the initramfs '${TMPDIR}/${GK_FILENAME_TEMP_INITRAMFS}' for the min kernel package!"
709 fi
710 fi
711
712 @@ -117,23 +123,23 @@ gen_kerncache() {
713
714 cd "${KERNEL_OUTPUTDIR}" || gen_die "Failed to chdir to '${KERNEL_OUTPUTDIR}'!"
715
716 - cp -aL "${tmp_kernel_binary}" "${TEMP}/kerncache/kernel-${ARCH}-${KV}" \
717 + cp -aL "${tmp_kernel_binary}" "${TEMP}/kerncache/${GK_FILENAME_TEMP_KERNEL}" \
718 || gen_die "Could not copy the kernel binary '${tmp_kernel_binary}' for the kernel package!"
719
720 - cp -aL "${KERNEL_OUTPUTDIR}/.config" "${TEMP}/kerncache/config-${ARCH}-${KV}" \
721 + cp -aL "${KERNEL_OUTPUTDIR}/.config" "${TEMP}/kerncache/${GK_FILENAME_TEMP_CONFIG}" \
722 || gen_die "Could not copy the kernel config '${KERNEL_OUTPUTDIR}/.config' for the kernel package!"
723
724 if isTrue "$(is_gzipped "${KERNEL_CONFIG}")"
725 then
726 # Support --kernel-config=/proc/config.gz, mainly
727 - zcat "${KERNEL_CONFIG}" > "${TEMP}/kerncache/config-${ARCH}-${KV}.orig" \
728 + zcat "${KERNEL_CONFIG}" > "${TEMP}/kerncache/${GK_FILENAME_TEMP_CONFIG}.orig" \
729 || gen_die "Could not copy the kernel config '${KERNEL_CONFIG}' for the kernel package!"
730 else
731 - cp -aL "${KERNEL_CONFIG}" "${TEMP}/kerncache/config-${ARCH}-${KV}.orig" \
732 + cp -aL "${KERNEL_CONFIG}" "${TEMP}/kerncache/${GK_FILENAME_TEMP_CONFIG}.orig" \
733 || gen_die "Could not copy the kernel config '${KERNEL_CONFIG}' for the kernel package!"
734 fi
735
736 - cp -aL "${KERNEL_OUTPUTDIR}/System.map" "${TEMP}/kerncache/System.map-${ARCH}-${KV}" \
737 + cp -aL "${KERNEL_OUTPUTDIR}/System.map" "${TEMP}/kerncache/${GK_FILENAME_TEMP_SYSTEMMAP}" \
738 || gen_die "Could not copy the System.map '${KERNEL_OUTPUTDIR}/System.map' for the kernel package!"
739
740 if isTrue "${GENZIMAGE}"
741 @@ -144,7 +150,7 @@ gen_kerncache() {
742 gen_die "Failed locate kernelz binary '${KERNEL_BINARY_2}'!"
743 fi
744
745 - cp -aL "${tmp_kernel_binary2}" "${TEMP}/kerncache/kernelz-${ARCH}-${KV}" \
746 + cp -aL "${tmp_kernel_binary2}" "${TEMP}/kerncache/${GK_FILENAME_TEMP_KERNELZ}" \
747 || gen_die "Could not copy the kernelz '${tmp_kernel_binary2}' for the kernel package!"
748 fi
749
750 @@ -179,22 +185,22 @@ gen_kerncache_extract_kernel() {
751 || gen_die "Failed to extract '${KERNCACHE}' to '${TEMP}'!"
752
753 copy_image_with_preserve \
754 - "kernel" \
755 - "${TEMP}/kernel-${ARCH}-${KV}" \
756 - "kernel-${KNAME}-${ARCH}-${KV}"
757 + "${GK_FILENAME_KERNEL_SYMLINK}" \
758 + "${TEMP}/${GK_FILENAME_TEMP_KERNEL}" \
759 + "${GK_FILENAME_KERNEL}"
760
761 if isTrue "${GENZIMAGE}"
762 then
763 copy_image_with_preserve \
764 "kernelz" \
765 - "${TEMP}/kernelz-${ARCH}-${KV}" \
766 - "kernelz-${KNAME}-${ARCH}-${KV}"
767 + "${TEMP}/${GK_FILENAME_TEMP_KERNELZ}" \
768 + "${GK_FILENAME_KERNELZ}"
769 fi
770
771 copy_image_with_preserve \
772 - "System.map" \
773 - "${TEMP}/System.map-${ARCH}-${KV}" \
774 - "System.map-${KNAME}-${ARCH}-${KV}"
775 + "${GK_FILENAME_SYSTEMMAP_SYMLINK}" \
776 + "${TEMP}/${GK_FILENAME_TEMP_SYSTEMMAP}" \
777 + "${GK_FILENAME_SYSTEMMAP}"
778 }
779
780 gen_kerncache_extract_modules() {
781 @@ -217,11 +223,11 @@ gen_kerncache_extract_config() {
782 mkdir -p /etc/kernels || gen_die "Failed to create '/etc/kernels'!"
783 fi
784
785 - "${TAR_COMMAND}" -xf "${KERNCACHE}" -C /etc/kernels config-${ARCH}-${KV} \
786 - || gen_die "Failed to extract kerncache config 'config-${ARCH}-${KV}' from '${KERNCACHE}' to '/etc/kernels'!"
787 + "${TAR_COMMAND}" -xf "${KERNCACHE}" -C /etc/kernels "${GK_FILENAME_TEMP_CONFIG}" \
788 + || gen_die "Failed to extract kerncache config '${GK_FILENAME_TEMP_CONFIG}' from '${KERNCACHE}' to '/etc/kernels'!"
789
790 - mv /etc/kernels/config-${ARCH}-${KV} /etc/kernels/kernel-config-${ARCH}-${KV} \
791 - || gen_die "Failed to rename kernelcache config '/etc/kernels/config-${ARCH}-${KV}' to '/etc/kernels/kernel-config-${ARCH}-${KV}'!"
792 + mv /etc/kernels/${GK_FILENAME_TEMP_CONFIG} /etc/kernels/${GK_FILENAME_CONFIG} \
793 + || gen_die "Failed to rename kernelcache config '/etc/kernels/${GK_FILENAME_TEMP_CONFIG}' to '/etc/kernels/${GK_FILENAME_CONFIG}'!"
794 }
795
796 gen_kerncache_is_valid() {
797 @@ -237,20 +243,20 @@ gen_kerncache_is_valid() {
798 BUILD_KERNEL="no"
799 # Can make this more secure ....
800
801 - if [ -e "${TEMP}/config-${ARCH}-${KV}" -a -e "${TEMP}/kernel-${ARCH}-${KV}" ]
802 + if [ -e "${TEMP}/${GK_FILENAME_TEMP_CONFIG}" -a -e "${TEMP}/${GK_FILENAME_TEMP_KERNEL}" ]
803 then
804 print_info 1 '' 1 0
805 print_info 1 'Valid kerncache found; No sources will be used ...'
806 KERNCACHE_IS_VALID="yes"
807 fi
808 else
809 - if [ -e "${TEMP}/config-${ARCH}-${KV}" -a -e "${KERNEL_CONFIG}" ]
810 + if [ -e "${TEMP}/${GK_FILENAME_TEMP_CONFIG}" -a -e "${KERNEL_CONFIG}" ]
811 then
812 - if [ -e "${TEMP}/config-${ARCH}-${KV}.orig" ]
813 + if [ -e "${TEMP}/${GK_FILENAME_TEMP_CONFIG}.orig" ]
814 then
815 - local test1=$(grep -v "^#" "${TEMP}/config-${ARCH}-${KV}.orig" | md5sum | cut -d " " -f 1)
816 + local test1=$(grep -v "^#" "${TEMP}/${GK_FILENAME_TEMP_CONFIG}.orig" | md5sum | cut -d " " -f 1)
817 else
818 - local test1=$(grep -v "^#" "${TEMP}/config-${ARCH}-${KV}" | md5sum | cut -d " " -f 1)
819 + local test1=$(grep -v "^#" "${TEMP}/${GK_FILENAME_TEMP_CONFIG}" | md5sum | cut -d " " -f 1)
820 fi
821
822 if isTrue "$(is_gzipped "${KERNEL_CONFIG}")"
823
824 diff --git a/genkernel b/genkernel
825 index da3d2d8..3c125c9 100755
826 --- a/genkernel
827 +++ b/genkernel
828 @@ -174,6 +174,8 @@ determine_KV
829
830 determine_kernel_arch
831
832 +determine_output_filenames
833 +
834 determine_kernel_config_file
835
836 setup_cache_dir
837 @@ -219,6 +221,8 @@ then
838 determine_KV
839 if [ -f "${TEMP}/.old_kv" ]
840 then
841 + determine_output_filenames
842 +
843 old_KV=$(cat "${TEMP}/.old_kv")
844 print_info 1 "$(get_indent 1)>> Kernel version has changed (probably due to config change) since genkernel start:"
845 print_info 1 "$(get_indent 1)>> We are now building Linux kernel ${BOLD}${KV}${NORMAL} for ${BOLD}${ARCH}${NORMAL} ..."
846 @@ -237,9 +241,9 @@ then
847
848 if isTrue "${SAVE_CONFIG}"
849 then
850 - print_info 1 "$(get_indent 1)>> Saving config of successful build to '/etc/kernels/kernel-config-${ARCH}-${KV}' ..."
851 + print_info 1 "$(get_indent 1)>> Saving config of successful build to '/etc/kernels/${GK_FILENAME_CONFIG}' ..."
852 [ ! -e '/etc/kernels' ] && mkdir -p /etc/kernels
853 - cp "${KERNEL_OUTPUTDIR}/.config" "/etc/kernels/kernel-config-${ARCH}-${KV}" || \
854 + cp "${KERNEL_OUTPUTDIR}/.config" "/etc/kernels/${GK_FILENAME_CONFIG}" || \
855 print_warning 1 "Unable to copy the kernel configuration file; Ignoring non-fatal error ..."
856 # Just a warning because ordinary users are not allowed to write in /etc
857 fi
858 @@ -373,16 +377,16 @@ then
859 esac
860 else
861 print_info 1 ''
862 - print_info 1 "You will find the kernel image in '${TMPDIR}/kernel-${KNAME}-${ARCH}-${KV}'."
863 + print_info 1 "You will find the kernel image in '${TMPDIR}/${GK_FILENAME_TEMP_KERNEL}'."
864
865 if isTrue "${GENZIMAGE}"
866 then
867 - print_info 1 "You will find the kernelz binary in '${TMPDIR}/kernelz-${KV}'."
868 + print_info 1 "You will find the kernelz binary in '${TMPDIR}/${GK_FILENAME_TEMP_KERNELZ}'."
869 fi
870
871 if isTrue "${BUILD_RAMDISK}"
872 then
873 - print_info 1 "You will find the initramfs in '${TMPDIR}/initramfs-${KNAME}-${ARCH}-${KV}'."
874 + print_info 1 "You will find the initramfs in '${TMPDIR}/${GK_FILENAME_TEMP_INITRAMFS}'."
875 fi
876 fi
877
878 @@ -396,26 +400,27 @@ then
879
880 if isTrue "${show_warning_initramfs_is_required}" && isTrue "${BUILD_RAMDISK}"
881 then
882 - INITRAMFS_INSTALLED_IN="${TMPDIR}"
883 - isTrue "${CMD_INSTALL}" && INITRAMFS_INSTALLED_IN="${BOOTDIR}"
884 + INITRAMFS_FILE="${TMPDIR}/${GK_FILENAME_TEMP_INITRAMFS}"
885 + isTrue "${CMD_INSTALL}" && INITRAMFS_FILE="${BOOTDIR}/${GK_FILENAME_INITRAMFS}"
886
887 print_warning 1 '' 1 0
888 print_warning 1 "If you require Genkernel's hardware detection features, you ${BOLD}MUST${NORMAL}"
889 - print_warning 1 "tell your bootloader to use the provided initramfs file (${INITRAMFS_INSTALLED_IN}/initramfs-${KNAME}-${ARCH}-${KV})."
890 + print_warning 1 "tell your bootloader to use the provided initramfs file '${INITRAMFS_FILE}'."
891 + unset INITRAMFS_FILE
892 fi
893 unset show_warning_initramfs_is_required
894 fi
895
896 if isTrue "${BUILD_RAMDISK}"
897 then
898 - if ! isTrue "${BUILD_KERNEL}" && ! isTrue "${CMD_INSTALL}"
899 - then
900 - print_info 1 ''
901 - print_info 1 "You will find the initramfs in '${TMPDIR}/initramfs-${KNAME}-${ARCH}-${KV}'."
902 - elif ! isTrue "${BUILD_KERNEL}" && isTrue "${CMD_INSTALL}"
903 + if ! isTrue "${BUILD_KERNEL}"
904 then
905 + INITRAMFS_FILE="${TMPDIR}/${GK_FILENAME_TEMP_INITRAMFS}"
906 + isTrue "${CMD_INSTALL}" && INITRAMFS_FILE="${BOOTDIR}/${GK_FILENAME_INITRAMFS}"
907 +
908 print_info 1 ''
909 - print_info 1 "You will find the initramfs in '${BOOTDIR}/initramfs-${KNAME}-${ARCH}-${KV}'."
910 + print_info 1 "You will find the initramfs in '${INITRAMFS_FILE}'."
911 + unset INITRAMFS_FILE
912 fi
913
914 print_warning 1 '' 1 0
915
916 diff --git a/genkernel.conf b/genkernel.conf
917 index 0c1a2e7..23e015b 100644
918 --- a/genkernel.conf
919 +++ b/genkernel.conf
920 @@ -172,7 +172,7 @@ NOCOLOR="false"
921 # Run the specified command in the current environment after the kernel and
922 # modules have been compiled, useful to rebuild external kernel module
923 # (see MODULEREBUILD above) or installing additional
924 -# files (use 'copy_image_with_preserve dtb path/to/dtb dtb ${KNAME}-${ARCH}-${KV}')
925 +# files (use 'copy_image_with_preserve dtb path/to/dtb dtb <kernelname>')
926 #CMD_CALLBACK=""
927
928
929 @@ -279,10 +279,13 @@ DEFAULT_KERNEL_SOURCE="/usr/src/linux"
930
931 # =========MISC KERNEL CONFIGURATION============
932 #
933 -# Tag the kernel and initramfs with a name:
934 -# If not defined the option defaults to
935 -# 'genkernel'
936 -#KNAME="genkernel"
937 +# Set kernel filename which will be used when kernel will be installed
938 +# into BOOTDIR. See man page to learn more about available placeholders.
939 +#KERNEL_FILENAME="kernel-genkernel-%%ARCH%%-%%KV%%"
940 +
941 +# Set kernel symlink name which will be used when kernel will be installed
942 +# into BOOTDIR and SYMLINK option is enabled
943 +#KERNEL_SYMLINK_NAME="kernel"
944
945 # This option will set kernel option CONFIG_LOCALVERSION.
946 # Use special value "UNSET" to unset already set CONFIG_LOCALVERSION.
947 @@ -312,6 +315,15 @@ DEFAULT_KERNEL_SOURCE="/usr/src/linux"
948
949 # =========MISC INITRAMFS CONFIGURATION============
950 #
951 +# Set initramfs filename which will be used when initramfs will be
952 +# installed into BOOTDIR. See man page to learn more about available
953 +# placeholders.
954 +#INITRAMFS_FILENAME="initramfs-genkernel-%%ARCH%%-%%KV%%"
955 +
956 +# Set initramfs symlink name which will be used when initramfs will be
957 +# installed into BOOTDIR and SYMLINK option is enabled
958 +#INITRAMFS_SYMLINK_NAME="initramfs"
959 +
960 # Copy all compiled kernel modules to the initramfs
961 #ALLRAMDISKMODULES="no"