Merge remote-tracking branch 'origin/pr/176'
* origin/pr/176: Fix downloading dom0 updates on Debian dnf: clear updates-available flag when dnf update yields no updates
This commit is contained in:
commit
b1f4c97087
@ -36,6 +36,22 @@ class QubesHooks(dnf.Plugin):
|
||||
self.base = base
|
||||
self.log = logging.getLogger('dnf')
|
||||
|
||||
def resolved(self):
|
||||
# in case of no action to do, transaction() hook won't be called;
|
||||
# report updates availability here - especially when everything is up
|
||||
# to date - to clear updates-available flag
|
||||
if not self.base.transaction:
|
||||
query = self.base.sack.query()
|
||||
query = query.upgrades()
|
||||
updates = set(query.run())
|
||||
subprocess.call([
|
||||
'/usr/lib/qubes/qrexec-client-vm',
|
||||
'dom0',
|
||||
'qubes.NotifyUpdates',
|
||||
'/bin/echo',
|
||||
str(len(updates))
|
||||
])
|
||||
|
||||
def transaction(self):
|
||||
if LooseVersion(dnf.const.VERSION) < '2.0.0':
|
||||
config = self.read_config(self.base.conf, PLUGIN_CONF)
|
||||
|
@ -116,6 +116,10 @@ YUM_COMMAND="fakeroot $YUM $YUM_ACTION -y --downloadonly"
|
||||
# check for --downloadonly option - if not supported (Debian), fallback to
|
||||
# yumdownloader
|
||||
if ! $YUM --help | grep -q downloadonly; then
|
||||
# setup environment for yumdownloader to be happy
|
||||
if [ ! -e "$DOM0_UPDATES_DIR/etc/yum.conf" ]; then
|
||||
ln -nsf dnf/dnf.conf "$DOM0_UPDATES_DIR/etc/yum.conf"
|
||||
fi
|
||||
if [ "$YUM_ACTION" = "install" ]; then
|
||||
YUM_COMMAND="yumdownloader --destdir=$DOM0_UPDATES_DIR/packages --resolve"
|
||||
elif [ "$YUM_ACTION" = "upgrade" ]; then
|
||||
@ -162,7 +166,7 @@ else
|
||||
$YUM_COMMAND $OPTS "${PKGLIST[@]}"
|
||||
fi
|
||||
|
||||
find "$DOM0_UPDATES_DIR/var/cache" -name '*.rpm' -print0 |\
|
||||
find "$DOM0_UPDATES_DIR/var/cache" -name '*.rpm' -print0 2>/dev/null |\
|
||||
xargs -0 -r ln -f -t "$DOM0_UPDATES_DIR/packages/"
|
||||
|
||||
if ls "$DOM0_UPDATES_DIR"/packages/*.rpm > /dev/null 2>&1; then
|
||||
|
Loading…
Reference in New Issue
Block a user