New commits:
commit e824914e6f4eae03faf156ba1a8904cb985912a6
Author: Pavel Vinogradov <public AT sourcemage.org>
Commit: Pavel Vinogradov <public AT sourcemage.org>
kernels/linux: handle the default kernel version
better by checking if signature/hash
is available, replaced tabs with spaces,
reformatted
diff --git a/kernels/linux/HISTORY b/kernels/linux/HISTORY
index 800a7e6..4cca6a8 100644
--- a/kernels/linux/HISTORY
+++ b/kernels/linux/HISTORY
@@ -1,3 +1,7 @@
+2023-08-02 Pavel Vinogradov <public AT sourcemage.org>
+ * liblinux: handle the default kernel version better by checking if
+ signature/hash is available, replaced tabs with spaces
+
2023-07-30 Pavel Vinogradov <public AT sourcemage.org>
* latest.defaults: latest_maintenance_patches_5=patch-6.4.7
* info/patches/maintenance_patches_6/patch-6.4.7: added
diff --git a/kernels/linux/liblinux b/kernels/linux/liblinux
index 43ec486..6bcaa87 100755
--- a/kernels/linux/liblinux
+++ b/kernels/linux/liblinux
@@ -15,16 +15,16 @@ local
LATEST_KDEFAULTS="${SPELL_DIRECTORY}/latest.defaults"
# this is used for getting specific information about the source name source
url
# verification checking what the dependancies are, things like that.
function source_patch()
-{
- local tmploc
- case $1 in
- LATEST*)
- tmploc=$(find $KPATCHES_DIRECTORY/*/${!1} | head -n 1)
- ;;
- *)
- tmploc=$(find $KPATCHES_DIRECTORY/*/${1} | head -n 1)
- esac &&
- [ -f $tmploc ] && . $tmploc
+{
+ local tmploc
+ case $1 in
+ LATEST*)
+ tmploc=$(find $KPATCHES_DIRECTORY/*/${!1} | head -n 1)
+ ;;
+ *)
+ tmploc=$(find $KPATCHES_DIRECTORY/*/${1} | head -n 1)
+ esac &&
+ [ -f $tmploc ] && . $tmploc
}
# Source info for patch
@@ -32,16 +32,16 @@ function source_patch()
# made by, things like that.
function source_info()
{
- local tmploc
- case $1 in
- LATEST*)
- tmploc=$(find $KPATCHES_DIRECTORY/*/${!1} | head -n 1)
- ;;
- *)
- tmploc=$(find $KPATCHES_DIRECTORY/*/$1 | head -n 1)
- ;;
- esac &&
- [ -f `dirname $tmp`/.info ] && . `dirname $tmploc`/.info
+ local tmploc
+ case $1 in
+ LATEST*)
+ tmploc=$(find $KPATCHES_DIRECTORY/*/${!1} | head -n 1)
+ ;;
+ *)
+ tmploc=$(find $KPATCHES_DIRECTORY/*/$1 | head -n 1)
+ ;;
+ esac &&
+ [ -f `dirname $tmp`/.info ] && . `dirname $tmploc`/.info
}
# dialog command works even if you add --nocancel as part of the arguments
@@ -49,382 +49,389 @@ dialog=( "dialog" "--stdout" )
function linux_sort_list()
{
- local upvar=$1
+ local upvar=$1
local list="$2"
- local new_list=""
- local elem
- for elem in $list
- do
- if [[ ${elem/LATEST_/} == ${elem} ]]
- then
- new_list="${new_list}${elem} "
- else
- new_list="${elem} ${new_list}"
- fi
- done
- eval "$upvar=\"${new_list}\""
+ local new_list=""
+ local elem
+ for elem in $list
+ do
+ if [[ ${elem/LATEST_/} == ${elem} ]]
+ then
+ new_list="${new_list}${elem} "
+ else
+ new_list="${elem} ${new_list}"
+ fi
+ done
+ eval "$upvar=\"${new_list}\""
}
function fix_conflicts_dialog()
{
- local list="$@"
- local new_list
- local menu_list=""
- local elem
- local retval
- for elem in $list
- do
- menu_list="${menu_list}$elem patch off "
- done
- while true
- do
- new_list=$( "${dialog[@]}" --title "Fix Conflicting Patches" \
- --cancel-label "Cancel" --ok-label "Okay" --checklist \
- "You have conflicting
patches.\nSelected patches will be removed." \
- 0 0 0 ${menu_list} )
- retval=$?
- if [[ $retval == 0 ]]
- then
- echo "${new_list//\"}"
- for elem in ${new_list//\"}
- do
- SELECTED_PATCHES="${SELECTED_PATCHES//$elem }"
- SELECTED_PATCHES="${SELECTED_PATCHES%%$elem}"
- done
- break
- else
- break
- fi
- done
- return $retval
+ local list="$@"
+ local new_list
+ local menu_list=""
+ local elem
+ local retval
+ for elem in $list
+ do
+ menu_list="${menu_list}$elem patch off "
+ done
+ while true
+ do
+ new_list=$( "${dialog[@]}" --title "Fix Conflicting Patches" \
+ --cancel-label "Cancel" --ok-label "Okay" --checklist \
+ "You have conflicting patches.\nSelected patches will be
removed." \
+ 0 0 0 ${menu_list} )
+ retval=$?
+ if [[ $retval == 0 ]]
+ then
+ echo "${new_list//\"}"
+ for elem in ${new_list//\"}
+ do
+ SELECTED_PATCHES="${SELECTED_PATCHES//$elem }"
+ SELECTED_PATCHES="${SELECTED_PATCHES%%$elem}"
+ done
+ break
+ else
+ break
+ fi
+ done
+ return $retval
}
function run_conflicts()
{
local patch
- local conflicting_patch
- local conflicting_list=""
- message "${MESSAGE_COLOR}Generating Conflicts From:${DEFAULT_COLOR}"
- echo $SELECTED_PATCHES
- for patch in $SELECTED_PATCHES
- do
- source_patch ${patch}
- for conflicting_patch in $SELECTED_PATCHES
- do
+ local conflicting_patch
+ local conflicting_list=""
+ message "${MESSAGE_COLOR}Generating Conflicts From:${DEFAULT_COLOR}"
+ echo $SELECTED_PATCHES
+ for patch in $SELECTED_PATCHES
+ do
+ source_patch ${patch}
+ for conflicting_patch in $SELECTED_PATCHES
+ do
# duplicate patches conflict
# just remove it...
- if [[ ${patch} == ${conflicting_patch} ]]
- then
- SELECTED_PATCHES="${SELECTED_PATCHES//$patch
} ${patch}"
- fi
+ if [[ ${patch} == ${conflicting_patch} ]]
+ then
+ SELECTED_PATCHES="${SELECTED_PATCHES//$patch } ${patch}"
+ fi
# built in conflicts between LATEST_<patches>
- if [[ ${patch/LATEST_} != ${patch} &&
${conflicting_patch/LATEST_} != ${conflicting_patch} && ${patch} !=
${conflicting_patch} ]]
- then
- conflicting_list="${conflicting_list//$patch
}${patch} "
- fi
+ if [[ ${patch/LATEST_} != ${patch} && ${conflicting_patch/LATEST_} !=
${conflicting_patch} && ${patch} != ${conflicting_patch} ]]
+ then
+ conflicting_list="${conflicting_list//$patch }${patch} "
+ fi
# same directory patches also conflict
- if [[ -f
$KPATCHES_DIRECTORY/${patch/LATEST_}/${conflicting_patch} ||
- -f
$KPATCHES_DIRECTORY/${conflicting_patch/LATEST_}/${patch} ]]
- then
-
conflicting_list="${conflicting_list//$conflicting_patch
}${conflicting_patch} "
- conflicting_list="${conflicting_list//$patch
}${patch} "
- fi
- done
- done
- linux_sort_list conflicting_list "${conflicting_list}"
- if [[ ${conflicting_list} ]]
- then
- message "${MESSAGE_COLOR}Conflicting Patches${DEFAULT_COLOR}"
- message "${PROBLEM_COLOR}${conflicting_list}${DEFAULT_COLOR}"
- fix_conflicts_dialog ${conflicting_list} &&
- run_conflicts
- else
- message "${MESSAGE_COLOR}No Conflicting
Patches${DEFAULT_COLOR}"
- fi
+ if [[ -f $KPATCHES_DIRECTORY/${patch/LATEST_}/${conflicting_patch} ||
+ -f $KPATCHES_DIRECTORY/${conflicting_patch/LATEST_}/${patch} ]]
+ then
+ conflicting_list="${conflicting_list//$conflicting_patch
}${conflicting_patch} "
+ conflicting_list="${conflicting_list//$patch }${patch} "
+ fi
+ done
+ done
+ linux_sort_list conflicting_list "${conflicting_list}"
+ if [[ ${conflicting_list} ]]
+ then
+ message "${MESSAGE_COLOR}Conflicting Patches${DEFAULT_COLOR}"
+ message "${PROBLEM_COLOR}${conflicting_list}${DEFAULT_COLOR}"
+ fix_conflicts_dialog ${conflicting_list} &&
+ run_conflicts
+ else
+ message "${MESSAGE_COLOR}No Conflicting Patches${DEFAULT_COLOR}"
+ fi
}
# if any of the patches needs any other patches applied before it is
# for example the mm patches apply against the pre patched kernel
function calculate_depends()
{
- # create Makefile
- dependslist=""
- new_patches_list=""
- all_patches_list=""
- if [[ "$SELECTED_PATCHES" != "" ]]
- then
- # check for post patches and add those to the new_patches_list
- for patch in $SELECTED_PATCHES
- do
- source_patch ${patch}
- if [ "$post_patch" != "" ]
- then
- new_patches_list="${new_patches_list}${patch}
${post_patch} "
- case "${patch}" in
- LATEST*)
-
all_patches_list="${all_patches_list}${!patch} ${post_patch} "
- ;;
- *)
-
all_patches_list="${all_patches_list}${patch} ${post_patch} "
- ;;
- esac
- else
- new_patches_list="${new_patches_list}${patch}
"
- case "${patch}" in
- LATEST*)
-
all_patches_list="${all_patches_list}${!patch} "
- ;;
- *)
-
all_patches_list="${all_patches_list}${patch} "
- ;;
- esac
- fi
- done
- rm -f $DEPENDS_MAKEFILE
- (
- makefile_targets="all "
- echo "all: $all_patches_list"
- echo ""
- for i in $new_patches_list
- do
- rec_dep_make $i
- done
- echo ".PHONY : ${makefile_targets}"
- ) > $DEPENDS_MAKEFILE
- # this doesn't work with persistent vars don't know why?
- CANONICAL_PATCHES=$(make -sf $DEPENDS_MAKEFILE all
2>/dev/null)
- echo $CANONICAL_PATCHES
- fi
+ # create Makefile
+ dependslist=""
+ new_patches_list=""
+ all_patches_list=""
+ if [[ "$SELECTED_PATCHES" != "" ]]
+ then
+ # check for post patches and add those to the new_patches_list
+ for patch in $SELECTED_PATCHES
+ do
+ source_patch ${patch}
+ if [ "$post_patch" != "" ]
+ then
+ new_patches_list="${new_patches_list}${patch} ${post_patch} "
+ case "${patch}" in
+ LATEST*)
+ all_patches_list="${all_patches_list}${!patch} ${post_patch} "
+ ;;
+ *)
+ all_patches_list="${all_patches_list}${patch} ${post_patch} "
+ ;;
+ esac
+ else
+ new_patches_list="${new_patches_list}${patch} "
+ case "${patch}" in
+ LATEST*)
+ all_patches_list="${all_patches_list}${!patch} "
+ ;;
+ *)
+ all_patches_list="${all_patches_list}${patch} "
+ ;;
+ esac
+ fi
+ done
+ rm -f $DEPENDS_MAKEFILE
+ (
+ makefile_targets="all "
+ echo "all: $all_patches_list"
+ echo ""
+ for i in $new_patches_list
+ do
+ rec_dep_make $i
+ done
+ echo ".PHONY : ${makefile_targets}"
+ ) > $DEPENDS_MAKEFILE
+ # this doesn't work with persistent vars don't know why?
+ CANONICAL_PATCHES=$(make -sf $DEPENDS_MAKEFILE all 2>/dev/null)
+ echo $CANONICAL_PATCHES
+ fi
}