diff options
author | Justin M. Forbes <jforbes@fedoraproject.org> | 2021-03-17 12:38:46 -0500 |
---|---|---|
committer | Justin M. Forbes <jforbes@fedoraproject.org> | 2021-03-17 12:38:46 -0500 |
commit | 2d7cbaa6f9fa69d3f60984b67c2d03e57e6d9759 (patch) | |
tree | a1d03aed06bd868aef5d39f73d2bd5b64941612a /mod-blacklist.sh | |
parent | 8cb9b8957f6c41855069d943280362fbf45cdbf1 (diff) | |
download | kernel-2d7cbaa6f9fa69d3f60984b67c2d03e57e6d9759.tar.gz kernel-2d7cbaa6f9fa69d3f60984b67c2d03e57e6d9759.tar.xz kernel-2d7cbaa6f9fa69d3f60984b67c2d03e57e6d9759.zip |
kernel-5.11.7-9
* Wed Mar 17 2021 Justin M. Forbes <jforbes@fedoraproject.org> [5.11.7-9]
- Disable weak-modules again rhbz 1828455 (Justin M. Forbes)
- More config updates for gcc-plugin turn off (Justin M. Forbes)
- fedora: the PCH_CAN driver is x86-32 only (Peter Robinson)
- common: disable legacy CAN device support (Peter Robinson)
- common: Enable Microchip MCP251x/MCP251xFD CAN controllers (Peter Robinson)
- common: Bosch MCAN support for Intel Elkhart Lake (Peter Robinson)
- common: enable CAN_PEAK_PCIEFD PCI-E driver (Peter Robinson)
- common: disable CAN_PEAK_PCIEC PCAN-ExpressCard (Peter Robinson)
- common: enable common CAN layer 2 protocols (Peter Robinson)
- ark: disable CAN_LEDS option (Peter Robinson)
Resolves: rhbz#
Signed-off-by: Justin M. Forbes <jforbes@fedoraproject.org>
Diffstat (limited to 'mod-blacklist.sh')
-rwxr-xr-x | mod-blacklist.sh | 76 |
1 files changed, 40 insertions, 36 deletions
diff --git a/mod-blacklist.sh b/mod-blacklist.sh index f2f801b5e..e8797659e 100755 --- a/mod-blacklist.sh +++ b/mod-blacklist.sh @@ -1,4 +1,5 @@ #! /bin/bash +# shellcheck disable=SC2164 RpmDir=$1 ModDir=$2 @@ -24,9 +25,9 @@ __EOF__ check_blacklist() { - mod=$(find $RpmDir/$ModDir -name "$1") + mod=$(find "$RpmDir/$ModDir" -name "$1") [ ! "$mod" ] && return 0 - if modinfo $mod | grep -q '^alias:\s\+net-'; then + if modinfo "$mod" | grep -q '^alias:\s\+net-'; then mod="${1##*/}" mod="${mod%.ko*}" echo "$mod has an alias that allows auto-loading. Blacklisting." @@ -37,7 +38,7 @@ check_blacklist() find_depends() { dep=$1 - depends=`modinfo $dep | sed -n -e "/^depends/ s/^depends:[ \t]*//p"` + depends=$(modinfo "$dep" | sed -n -e "/^depends/ s/^depends:[ \t]*//p") [ -z "$depends" ] && exit for mod in ${depends//,/ } do @@ -45,14 +46,14 @@ find_depends() [ -z "$match" ] && continue # check if the module we are looking at is in mod-* too. # if so we do not need to mark the dep as required. - mod2=${dep##*/} # same as `basename $dep`, but faster + mod2=${dep##*/} # same as $(basename $dep), but faster match2=$(grep "^$mod2" "$ListName") if [ -n "$match2" ] then #echo $mod2 >> notreq.list continue fi - echo $mod.ko >> req.list + echo "$mod".ko >> req.list done } @@ -60,11 +61,11 @@ foreachp() { P=$(nproc) bgcount=0 - while read mod; do + while read -r mod; do $1 "$mod" & bgcount=$((bgcount + 1)) - if [ $bgcount -eq $P ]; then + if [ $bgcount -eq "$P" ]; then wait -n bgcount=$((bgcount - 1)) fi @@ -76,12 +77,12 @@ foreachp() # Destination was specified on the command line test -n "$4" && echo "$0: Override Destination $Dest has been specified." -pushd $Dir +pushd "$Dir" -OverrideDir=$(basename $List) +OverrideDir=$(basename "$List") OverrideDir=${OverrideDir%.*} OverrideDir=${OverrideDir#*-} -mkdir -p $OverrideDir +mkdir -p "$OverrideDir" rm -rf modnames find . -name "*.ko" -type f > modnames @@ -94,7 +95,8 @@ cp "$List" . # This variable needs to be exported because it is used in sub-script # executed by xargs -export ListName=$(basename "$List") +ListName=$(basename "$List") +export ListName foreachp find_depends < modnames @@ -102,25 +104,25 @@ sort -u req.list > req2.list sort -u "$ListName" > modules2.list join -v 1 modules2.list req2.list > modules3.list -for mod in $(cat modules3.list) +while IFS= read -r mod do - # get the path for the module - modpath=`grep /$mod modnames` - [ -z "$modpath" ] && continue - echo $modpath >> dep.list -done + # get the path for the module + modpath=$(grep /"$mod" modnames) + [ -z "$modpath" ] && continue + echo "$modpath" >> dep.list +done < modules3.list sort -u dep.list > dep2.list if [ -n "$Dest" ]; then - # now move the modules into the $Dest directory - for mod in `cat dep2.list` - do - newpath=`dirname $mod | sed -e "s/kernel\\//$Dest\//"` - mkdir -p $newpath - mv $mod $newpath - echo $mod | sed -e "s/kernel\\//$Dest\//" | sed -e "s|^.|${ModDir}|g" >> $RpmDir/$ListName - done + # now move the modules into the $Dest directory + while IFS= read -r mod + do + newpath=$(dirname "$mod" | sed -e "s/kernel\\//$Dest\//") + mkdir -p "$newpath" + mv "$mod" "$newpath" + echo "$mod" | sed -e "s/kernel\\//$Dest\//" | sed -e "s|^.|${ModDir}|g" >> "$RpmDir"/"$ListName" + done < dep2.list fi popd @@ -130,31 +132,33 @@ popd # target doesn't try to sign a non-existent file. This is kinda ugly, but # so are the modules-* packages. -for mod in `cat ${Dir}/dep2.list` +while IFS= read -r mod do - modfile=`basename $mod | sed -e 's/.ko/.mod/'` - rm .tmp_versions/$modfile -done + modfile=$(basename "$mod" | sed -e 's/.ko/.mod/') + rm .tmp_versions/"$modfile" +done < "$Dir"/dep2.list -if [ ! -n "$Dest" ]; then - sed -e "s|^.|${ModDir}|g" ${Dir}/dep2.list > $RpmDir/$ListName +if [ -z "$Dest" ]; then + sed -e "s|^.|${ModDir}|g" "$Dir"/dep2.list > "$RpmDir/$ListName" echo "./$RpmDir/$ListName created." [ -d "$RpmDir/etc/modprobe.d/" ] || mkdir -p "$RpmDir/etc/modprobe.d/" - foreachp check_blacklist < $List + foreachp check_blacklist < "$List" fi # Many BIOS-es export a PNP-id which causes the floppy driver to autoload # even though most modern systems don't have a 3.5" floppy driver anymore # this replaces the old die_floppy_die.patch which removed the PNP-id from # the module -if [ -f $RpmDir/$ModDir/extra/drivers/block/floppy.ko* ]; then - blacklist "floppy" + +floppylist=("$RpmDir"/"$ModDir"/extra/drivers/block/floppy.ko*) +if [[ -n ${floppylist[0]} && -f ${floppylist[0]} ]]; then + blacklist "floppy" fi # avoid an empty kernel-extra package -echo "$ModDir/$OverrideDir" >> $RpmDir/$ListName +echo "$ModDir/$OverrideDir" >> "$RpmDir/$ListName" -pushd $Dir +pushd "$Dir" rm modnames dep.list dep2.list req.list req2.list rm "$ListName" modules2.list modules3.list popd |