Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 857673 Details for
Bug 901209
Add 'update' action to kernel module
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
0001-Add-update-action-to-kernel-module.patch
0001-Add-update-action-to-kernel-module.patch (text/plain), 2.46 KB, created by
Florian Schmaus
on 2023-03-14 14:18:06 UTC
(
hide
)
Description:
0001-Add-update-action-to-kernel-module.patch
Filename:
MIME Type:
Creator:
Florian Schmaus
Created:
2023-03-14 14:18:06 UTC
Size:
2.46 KB
patch
obsolete
>From 1cffb2419e80448b822ec0ed520a8f2411f334b8 Mon Sep 17 00:00:00 2001 >From: Florian Schmaus <flow@gentoo.org> >Date: Tue, 14 Mar 2023 11:02:59 +0100 >Subject: [PATCH] Add 'update' action to kernel module > >The 'update' action attempts to update the /usr/src/linux symlink to >point to the sources of the running kernel. > >Signed-off-by: Florian Schmaus <flow@gentoo.org> >--- > modules/kernel.eselect | 64 ++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 64 insertions(+) > >diff --git a/modules/kernel.eselect b/modules/kernel.eselect >index 64b5e773d68d..4c6d73dbf2bd 100644 >--- a/modules/kernel.eselect >+++ b/modules/kernel.eselect >@@ -125,3 +125,67 @@ do_set() { > > set_symlink "$1" || die -q "Couldn't set a new symlink" > } >+ >+### update action ### >+ >+describe_update() { >+ echo "Update the kernel symlink to running kernel" >+} >+ >+describe_update_options() { >+ echo "ifunset: Do not override currently set version" >+} >+ >+do_update() { >+ [[ -z $1 || $1 == ifunset ]] || die -q "Usage error" >+ [[ $# -gt 1 ]] && die -q "Too many parameters" >+ test_for_root >+ >+ if [[ -e ${EROOT}/usr/src/linux && ! -L ${EROOT}/usr/src/linux ]]; then >+ # we have something strange >+ die -q "${EROOT}/usr/src/linux exists but is not a symlink" >+ fi >+ >+ if [[ $1 == ifunset \ >+ && -L ${EROOT}/usr/src/linux \ >+ && -e ${EROOT}/usr/src/linux ]]; then >+ # The /usr/src/linux symlink exists, points to a path that >+ # exists, and 'ifunset' is provided. Nothing to do. >+ return >+ fi >+ >+ local targets=( $(find_targets) ) >+ local running_kernel_release=$(uname -r) >+ local running_kernel_symlink_target="linux-${running_kernel_release}" >+ >+ if [[ -L ${EROOT}/usr/src/linux ]]; then >+ local current_target >+ current_target=$(basename "$(canonicalise "${EROOT}/usr/src/linux")") >+ if [[ ${current_target} == ${running_kernel_symlink_target} ]]; then >+ # The /usr/src/linux symlink already points to the running >+ # kernel's sources. Nothing to do. >+ return >+ fi >+ fi >+ >+ local target >+ local target_list=() >+ for target in ${targets[@]}; do >+ if [[ ${target} == ${current_kernel_symlink_target} ]]; then >+ set_symlink "${target}" >+ return >+ fi >+ target_list+=("- ${target}\n") >+ done >+ >+ local msg >+ msg="No kernel sources for running kernel ${running_kernel_release} found." >+ msg+=" Available sources:\n${target_list[@]}" >+ die -q "${msg}" >+} >+ >+### helper functions ### >+ >+test_for_root() { >+ [[ -w ${EROOT}/usr/src ]] || die -q "${EROOT}/usr/src not writeable by current user. Are you root?" >+} >-- >2.39.2 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 901209
:
857651
|
857673
|
857685
|
857715
|
857717
|
857807
|
857809
|
857811
|
857813
|
857815