After experiencing the same update issues I built a short-term solution that helps to mend the situation until developers adjust the syntax errors in the problematic XML file.
Proposed Short-Term Solution: bugfix.sh
#! /bin/bash
# bugfix.sh
#
# DESCRIPTION
# Temporary fix for Ubuntu firmware update issues
# Created by h8rt3rmin8r on 20180804
#
# BUG INFORMATION
# File location: /var/cache/app-info/xmls/fwupd.xml
# Line number: 265
SRC_STRING=$(sudo cat /var/cache/app-info/xmls/fwupd.xml)
OLD_SUBSTRING='Firmware_SF30&SN30_Pro_V1'
NEW_SUBSTRING='Firmware_SF30&SN30_Pro_V1'
touch /dev/shm/bugfix.xml
echo ${SRC_STRING/$OLD_SUBSTRING/$NEW_SUBSTRING} > /dev/shm/bugfix.xml
sudo mv /dev/shm/bugfix.xml /var/cache/app-info/xmls/fwupd.xml
Instructions On Using bugfix.sh:
To run bugfix.sh, simply copy the code above into a new file (using a text editor like gedit) and save that file as "bugfix.sh" in a convenient location.
While located in the same directory as the bugfix.sh script, enable script execution with the following command: sudo chmod +x bugfix.sh
Run the bugfix script with the command: ./bugfix.sh
Additional Notes:
Running this script will temporarily solve the problem at hand. If the error in question pops up again at a later date then just run the script again.
For easy access you could even store this script in /usr/local/bin
so you can call it directly from the terminal with bugfix.sh
. Then, as long as the bug is around, you can call bugfix.sh
before running sudo apt-get update && sudo apt-get -y dist-upgrade
.
appstream
has been known to mess up thefwupd.xml
file...Do you have any custom data in it? if not, you can just delete it and try to update. Maybe you can even see what the error is, manually correct it, and notify the developer at github. – Jos Jul 10 '18 at 13:23