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.base = base
|
||||||
self.log = logging.getLogger('dnf')
|
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):
|
def transaction(self):
|
||||||
if LooseVersion(dnf.const.VERSION) < '2.0.0':
|
if LooseVersion(dnf.const.VERSION) < '2.0.0':
|
||||||
config = self.read_config(self.base.conf, PLUGIN_CONF)
|
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
|
# check for --downloadonly option - if not supported (Debian), fallback to
|
||||||
# yumdownloader
|
# yumdownloader
|
||||||
if ! $YUM --help | grep -q downloadonly; then
|
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
|
if [ "$YUM_ACTION" = "install" ]; then
|
||||||
YUM_COMMAND="yumdownloader --destdir=$DOM0_UPDATES_DIR/packages --resolve"
|
YUM_COMMAND="yumdownloader --destdir=$DOM0_UPDATES_DIR/packages --resolve"
|
||||||
elif [ "$YUM_ACTION" = "upgrade" ]; then
|
elif [ "$YUM_ACTION" = "upgrade" ]; then
|
||||||
@ -162,7 +166,7 @@ else
|
|||||||
$YUM_COMMAND $OPTS "${PKGLIST[@]}"
|
$YUM_COMMAND $OPTS "${PKGLIST[@]}"
|
||||||
fi
|
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/"
|
xargs -0 -r ln -f -t "$DOM0_UPDATES_DIR/packages/"
|
||||||
|
|
||||||
if ls "$DOM0_UPDATES_DIR"/packages/*.rpm > /dev/null 2>&1; then
|
if ls "$DOM0_UPDATES_DIR"/packages/*.rpm > /dev/null 2>&1; then
|
||||||
|
Loading…
Reference in New Issue
Block a user