[Christian Meyer] > appstreamcli has differnt outputs depending on LANG, and while you look > for lines with the word '/Package:/' with german LANG the same line > starts with the word "Paket".
Aha, I did not know. Good catch. > I still was not able to figure out, why isenkramcli 'wants' to install > raspi-firmware and what happens with a second call of isenkram- > autoinstall-firmware, after raspi-firmware is installed successfully. As far as I can tell, isenkram-autoinstall-firmware want to install raspi-firmware because the raspi-firmware package contain a firmware file one of the drivers loaded on the Lenovo machine want. See <URL: https://bugs.debian.org/999485 > for a request to move the file into a non-rpi related package. Here is a new and adjusted patch, making sure appstreamcli uses the C locale and trying to handle the wildcard firmware entries at least one of your machines driver kernel module mention. I am not sure if this last change is a useful approach, but thought it best to give it a go. diff --git a/isenkram-autoinstall-firmware b/isenkram-autoinstall-firmware index b3152e7..5d55ff9 100755 --- a/isenkram-autoinstall-firmware +++ b/isenkram-autoinstall-firmware @@ -54,13 +54,13 @@ EOF appstreamlookup() { fwfile="$1" - appstreamcli what-provides firmware:runtime "$fwfile" | \ + LC_ALL=C appstreamcli what-provides firmware:runtime "$fwfile" | \ awk '/Package:/ { print $2}' } # Find firmware files requested by loaded kernel drivers. -for fwfile in $(for module in $(awk '{print $1}' /proc/modules) ; do modinfo $module 2>/dev/null |awk '/^firmware:/ {print $2}'; done|sort -u); do - if [ ! -e /lib/firmware/$fwfile ] ; then +for fwfile in $(for module in $(awk '{print $1}' /proc/modules) ; do modinfo $module 2>/dev/null |awk '/^firmware:/ {print $2}'; done| LC_ALL=C sort -u); do + if [ ! -e "/lib/firmware/$fwfile" ] ; then fwfiles="${fwfiles:+$fwfiles }$fwfile" fi done @@ -70,7 +70,7 @@ done if dmesg >/dev/null 2>&1 ; then for fwfile in $(dmesg | sed -rn 's/^(\[[^]]*\] )?([^ ]+) [^ ]+: firmware: failed to load ([^ ]+) .*/\3/p'); do loginfo "looking for firmware file $fwfile requested by kernel" - if [ ! -e /lib/firmware/$fwfile ] ; then + if [ ! -e "/lib/firmware/$fwfile" ] ; then fwfiles="${fwfiles:+$fwfiles }$fwfile" fi done @@ -145,7 +145,7 @@ done # Many different files can be required for a single hardware device, # plus several devices might require files from the same package, so # optimize! -binpkginfos=$(echo "$binpkginfos" | tr ' ' '\n' | sort -u | xargs) +binpkginfos=$(echo "$binpkginfos" | tr ' ' '\n' | LC_ALL=C sort -u | xargs) loginfo "determining whether enabling other components is required" binpkgs="${binpkgs:+$binpkgs }$( -- Happy hacking Petter Reinholdtsen