qubes-issues icon indicating copy to clipboard operation
qubes-issues copied to clipboard

qubes-dom0-update - dom0 package updates are downloaded but not installed

Open adrelanos opened this issue 5 years ago • 44 comments

Qubes OS version:

R4.0

Affected component(s):

dom0


Steps to reproduce the behavior:

sudo qubes-dom0-update --action="clean packages"
sudo qubes-dom0-update

Expected behavior:

If packages are downloaded, installation or error message is expected.

Actual behavior:

[user@dom0 ~]$ sudo qubes-dom0-update
Using dom0-updatevom2 as UpdateVM to download updates for Dom0; this may take some time...
Fedora 25 - x86_64 - Updates                    2.4 kB/s | 4.9 kB     00:02    
Fedora 25 - x86_64                              2.3 kB/s | 5.2 kB     00:02                         
Qubes Dom0 Repository (updates)                 1.4 kB/s | 2.7 kB     00:01                         
Qubes Templates repository                      1.4 kB/s | 2.7 kB     00:01                         
Dependencies resolved.                                                                              
================================================================================                    
 Package           Arch   Version                      Repository          Size                     
================================================================================                    
Installing:                                                                                         
 kernel            x86_64 1000:4.14.74-1.pvops.qubes   qubes-dom0-current  46 M                     
 kernel-qubes-vm   x86_64 1000:4.14.74-1.pvops.qubes   qubes-dom0-current  64 M                     
Reinstalling:                                                                                       
 python3-blivet    noarch 2:2.1.6-5.fc25               qubes-dom0-current 1.0 M                     
 python3-kickstart noarch 1000:2.32-4.fc25             qubes-dom0-current 370 k                     
Removing:                                                                                           
 kernel            x86_64 1000:4.14.57-2.pvops.qubes   @System            239 M                     
 kernel-qubes-vm   x86_64 1000:4.14.57-2.pvops.qubes   @System            272 M

Transaction Summary
================================================================================
Install  2 Packages
Remove   2 Packages

Total download size: 112 M
DNF will only download packages for the transaction.
Downloading Packages:
(1/4): python3-kickstart-2.32-4.fc25.noarch.rpm 130 kB/s | 370 kB     00:02    
(2/4): python3-blivet-2.1.6-5.fc25.noarch.rpm   282 kB/s | 1.0 MB     00:03    
(3/4): kernel-4.14.74-1.pvops.qubes.x86_64.rpm  1.0 MB/s |  46 MB     00:46    
(4/4): kernel-qubes-vm-4.14.74-1.pvops.qubes.x8 1.1 MB/s |  64 MB     00:56    
--------------------------------------------------------------------------------
Total                                           1.8 MB/s | 112 MB     01:01     
Complete!
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Qubes OS Repository for Dom0                                        145 MB/s | 215 kB     00:00                                                                                                                                                                                 
[user@dom0 ~]$ sudo dnf update                                                                                                                                                                                                                                                  
Qubes OS Repository for Dom0                                        113 MB/s | 215 kB     00:00                                                                                                                                                                                 
Dependencies resolved.                                                                                                                                                                                                                                                          
Nothing to do.                                                                                                                                                                                                                                                                  
Complete!                                                                                                                                                                                                                                                                       
[user@dom0 ~]$

General notes:

This happened after moving Qubes from internal HDD to external HDD using dd (using yet another booted operating system, so the internal Qubes HDD was not booted). Not sure if related.

[user@dom0 ~]$ ls -la /usr/bin/createrepo                                                                                     
-rwxr-xr-x. 1 root root 60 Jan 28  2014 /usr/bin/createrepo                                                                   
[user@dom0 ~]$ ls -la /usr/bin/createrepo_c                                                                                   
-rwxr-xr-x. 1 root root 50880 Sep 14  2016 /usr/bin/createrepo_c                                                              
[user@dom0 ~]$ rpm -q xen                                                                                                     
xen-4.8.5-1.fc25.x86_64                                                                                                       
[user@dom0 ~]$
[user@dom0 ~]$ sudo bash -x qubes-dom0-update --clean --verbose
++ qubes-prefs --force-root updatevm
+ UPDATEVM=dom0-updatevom2
+ UPDATES_STAT_FILE=/var/lib/qubes/updates/dom0-updates-available
+ '[' -z dom0-updatevom2 ']'
+ '[' --clean = --help ']'
+ PKGS=
+ YUM_OPTS=
+ GUI=
+ CHECK_ONLY=
+ ALL_OPTS='--clean --verbose'
+ YUM_ACTION=
+ QVMRUN_OPTS=
+ CLEAN=
+ TEMPLATE=
+ TEMPLATE_BACKUP=
+ '[' 2 -gt 0 ']'
+ case "$1" in
+ CLEAN=1
+ shift
+ '[' 1 -gt 0 ']'
+ case "$1" in
+ YUM_OPTS=' --verbose'
+ shift
+ '[' 0 -gt 0 ']'
+ '[' '' == reinstall ']'
+ '[' '' == upgrade ']'
+ '[' '' == upgrade-to ']'
+ '[' '' == downgrade ']'
+ '[' '' == search ']'
+ '[' '' == info ']'
++ rpm -qa --qf '%{NAME},' 'qubes-template-*'
++ head -c -1
+ TEMPLATE_EXCLUDE_OPTS=--exclude=qubes-template-whonix-gw-14,qubes-template-debian-9,qubes-template-fedora-29,qubes-template-whonix-ws-14,qubes-template-fedora-26,qubes-template-fedora-28
+ YUM_OPTS='--exclude=qubes-template-whonix-gw-14,qubes-template-debian-9,qubes-template-fedora-29,qubes-template-whonix-ws-14,qubes-template-fedora-26,qubes-template-fedora-28  --verbose'
+ ALL_OPTS='--exclude=qubes-template-whonix-gw-14,qubes-template-debian-9,qubes-template-fedora-29,qubes-template-whonix-ws-14,qubes-template-fedora-26,qubes-template-fedora-28 --clean --verbose'
++ id -ur
+ ID=0
+ '[' 0 '!=' 0 -a -z '' -a -z '' ']'
+ '[' '' == 1 -a -n '' ']'
+ '[' '' == 1 ']'                                                                                                                                                                                                                             
+ '[' '' '!=' 1 ']'                                                                                                                                                                                                                           
+ QVMRUN_OPTS=--nogui                                                                                                                                                                                                                         
+ '[' '' == 1 ']'                                                                                                                                                                                                                             
+ '[' -n 1 ']'                                                                                                                                                                                                                                
+ rm -f '/var/lib/qubes/updates/rpm/*'                                                                                                                                                                                                        
+ rm -f '/var/lib/qubes/updates/repodata/*'                                                                                                                                                                                                   
+ rm -f /var/lib/qubes/updates/errors                                                                                                                                                                                                         
+ echo 'Using dom0-updatevom2 as UpdateVM to download updates for Dom0; this may take some time...'                                                                                                                                           
Using dom0-updatevom2 as UpdateVM to download updates for Dom0; this may take some time...                                                                                                                                                    
+ qvm-run --nogui -q -u root dom0-updatevom2 'mkdir -m 775 -p /var/lib/qubes/dom0-updates/'                                                                                                                                                   
+ qvm-run --nogui -q -u root dom0-updatevom2 'chown user:user /var/lib/qubes/dom0-updates/'                                                                                                                                                   
+ qvm-run --nogui -q dom0-updatevom2 'rm -rf /var/lib/qubes/dom0-updates/etc'                                                                                                                                                                 
+ tar c /var/lib/rpm /etc/yum.repos.d /etc/yum.conf                                                                                                                                                                                           
+ qvm-run --nogui -q --pass-io dom0-updatevom2 'LC_MESSAGES=C tar x -C /var/lib/qubes/dom0-updates 2>&1 | grep -v -E "s in the future"'                                                                                                       
+ qvm-run --nogui --pass-io dom0-updatevom2 'script --quiet --return --command '\''/usr/lib/qubes/qubes-download-dom0-updates.sh --doit --nogui --exclude=qubes-template-whonix-gw-14,qubes-template-debian-9,qubes-template-fedora-29,qubes-template-whonix-ws-14,qubes-template-fedora-26,qubes-template-fedora-28 --clean --verbose'\'' /dev/null'                                                                                                                                       
+ DOM0_UPDATES_DIR=/var/lib/qubes/dom0-updates                                                                                                                                                                                                
+ GUI=1                                                                                                                                                                                                                                       
+ CLEAN=0                                                                                                                                                                                                                                     
+ CHECK_ONLY=0                                                                                                                                                                                                                                
+ OPTS='--installroot /var/lib/qubes/dom0-updates --config=/var/lib/qubes/dom0-updates/etc/yum.conf'                                                                                                                                          
+ OPTS='--installroot /var/lib/qubes/dom0-updates --config=/var/lib/qubes/dom0-updates/etc/yum.conf --setopt=reposdir=/var/lib/qubes/dom0-updates/etc/yum.repos.d'                                                                            
+ PKGLIST=                                                                                                                                                                                                                                    
+ YUM_ACTION=                                                                                                                                                                                                                                 
+ export LC_ALL=C                                                                                                                                                                                                                             
+ LC_ALL=C                                                                                                                                                                                                                                    
+ '[' -n --doit ']'                                                                                                                                                                                                                           
+ case "$1" in                                                                                                                                                                                                                                
+ shift                                                                                                                                                                                                                                       
+ '[' -n --nogui ']'                                                                                                                                                                                                                          
+ case "$1" in                                                                                                                                                                                                                                
+ GUI=0                                                                                                                                                                                                                                       
+ shift                                                                                                                                                                                                                                       
+ '[' -n --exclude=qubes-template-whonix-gw-14,qubes-template-debian-9,qubes-template-fedora-29,qubes-template-whonix-ws-14,qubes-template-fedora-26,qubes-template-fedora-28 ']'                                                             
+ case "$1" in                                                                                                                                                                                                                                
+ OPTS='--installroot /var/lib/qubes/dom0-updates --config=/var/lib/qubes/dom0-updates/etc/yum.conf --setopt=reposdir=/var/lib/qubes/dom0-updates/etc/yum.repos.d --exclude=qubes-template-whonix-gw-14,qubes-template-debian-9,qubes-template-fedora-29,qubes-template-whonix-ws-14,qubes-template-fedora-26,qubes-template-fedora-28'                                                                                                                                                     
+ shift                                                                                                                                                                                                                                       
+ '[' -n --clean ']'                                                                                                                                                                                                                          
+ case "$1" in                                                                                                                                                                                                                                
+ CLEAN=1                                                                                                                                                                                                                                     
+ shift                                                                                                                                                                                                                                       
+ '[' -n --verbose ']'                                                                                                                                                                                                                        
+ case "$1" in                                                                                                                                                                                                                                
+ OPTS='--installroot /var/lib/qubes/dom0-updates --config=/var/lib/qubes/dom0-updates/etc/yum.conf --setopt=reposdir=/var/lib/qubes/dom0-updates/etc/yum.repos.d --exclude=qubes-template-whonix-gw-14,qubes-template-debian-9,qubes-template-fedora-29,qubes-template-whonix-ws-14,qubes-template-fedora-26,qubes-template-fedora-28 --verbose'                                                                                                                                           
+ shift                                                                                                                                                                                                                                       
+ '[' -n '' ']'                                                                                                                                                                                                                               
+ '[' -z '' ']'                                                                                                                                                                                                                               
+ YUM_ACTION=upgrade                                                                                                                                                                                                                          
+ YUM=yum                                                                                                                                                                                                                                     
+ type dnf                                                                                                                                                                                                                                    
+ YUM='dnf --best --allowerasing --noplugins'                                                                                                                                                                                                 
+ '[' -d /var/lib/qubes/dom0-updates ']'                                                                                                                                                                                                      
+ mkdir -p /var/lib/qubes/dom0-updates/etc                                                                                                                                                                                                    
+ '[' -e /etc/debian_version ']'                                                                                                                                                                                                              
+ rm -f /var/lib/qubes/dom0-updates/var/lib/rpm/__db.001 /var/lib/qubes/dom0-updates/var/lib/rpm/__db.002 /var/lib/qubes/dom0-updates/var/lib/rpm/__db.003                                                                                    
+ rpm --root=/var/lib/qubes/dom0-updates --rebuilddb                                                                                                                                                                                          
+ '[' 1 = 1 ']'                                                                                                                                                                                                                               
+ dnf --best --allowerasing --noplugins --installroot /var/lib/qubes/dom0-updates --config=/var/lib/qubes/dom0-updates/etc/yum.conf --setopt=reposdir=/var/lib/qubes/dom0-updates/etc/yum.repos.d --exclude=qubes-template-whonix-gw-14,qubes-template-debian-9,qubes-template-fedora-29,qubes-template-whonix-ws-14,qubes-template-fedora-26,qubes-template-fedora-28 --verbose clean all                                                                                                  
DNF version: 4.0.9                                                                                                                                                                                                                            
cachedir: /var/lib/qubes/dom0-updates/var/cache/yum/x86_64/4.0                                                                                                                                                                                
Unknown configuration value: failovermethod=priority in /var/lib/qubes/dom0-updates/etc/yum.repos.d/fedora-updates.repo; Configuration: OptionBinding with id "failovermethod" does not exist                                                 
Unknown configuration value: failovermethod=priority in /var/lib/qubes/dom0-updates/etc/yum.repos.d/fedora-updates.repo; Configuration: OptionBinding with id "failovermethod" does not exist                                                 
Unknown configuration value: failovermethod=priority in /var/lib/qubes/dom0-updates/etc/yum.repos.d/fedora-updates.repo; Configuration: OptionBinding with id "failovermethod" does not exist                                                 
Unknown configuration value: failovermethod=priority in /var/lib/qubes/dom0-updates/etc/yum.repos.d/fedora.repo; Configuration: OptionBinding with id "failovermethod" does not exist                                                         
Unknown configuration value: failovermethod=priority in /var/lib/qubes/dom0-updates/etc/yum.repos.d/fedora.repo; Configuration: OptionBinding with id "failovermethod" does not exist                                                         
Unknown configuration value: failovermethod=priority in /var/lib/qubes/dom0-updates/etc/yum.repos.d/fedora.repo; Configuration: OptionBinding with id "failovermethod" does not exist                                                         
Cleaning data: metadata dbcache packages                                                                                                                                                                                                      
20 files removed                                                                                                                                                                                                                              
+ rm -f '/var/lib/qubes/dom0-updates/packages/*'                                                                                                                                                                                              
+ rm -rf /var/lib/qubes/dom0-updates/var/cache/yum/x86_64                                                                                                                                                                                     
+ '[' x = x ']'                                                                                                                                                                                                                               
+ '[' 0 = 1 ']'                                                                                                                                                                                                                               
+ YUM_COMMAND='fakeroot dnf --best --allowerasing --noplugins upgrade -y --downloadonly'                                                                                                                                                      
+ dnf --best --allowerasing --noplugins --help                                                                                                                                                                                                
+ grep -q downloadonly                                                                                                                                                                                                                        
+ mkdir -p /var/lib/qubes/dom0-updates/packages                                                                                                                                                                                               
+ set -e                                                                                                                                                                                                                                      
+ '[' 0 = 1 ']'                                                                                                                                                                                                                               
+ fakeroot dnf --best --allowerasing --noplugins upgrade -y --downloadonly --installroot /var/lib/qubes/dom0-updates --config=/var/lib/qubes/dom0-updates/etc/yum.conf --setopt=reposdir=/var/lib/qubes/dom0-updates/etc/yum.repos.d --exclude=qubes-template-whonix-gw-14,qubes-template-debian-9,qubes-template-fedora-29,qubes-template-whonix-ws-14,qubes-template-fedora-26,qubes-template-fedora-28 --verbose                                                                         
DNF version: 4.0.9                                                                                                                                                                                                                            
cachedir: /var/lib/qubes/dom0-updates/var/cache/yum/x86_64/4.0                                                                                                                                                                                
Unknown configuration value: failovermethod=priority in /var/lib/qubes/dom0-updates/etc/yum.repos.d/fedora-updates.repo; Configuration: OptionBinding with id "failovermethod" does not exist                                                 
Unknown configuration value: failovermethod=priority in /var/lib/qubes/dom0-updates/etc/yum.repos.d/fedora-updates.repo; Configuration: OptionBinding with id "failovermethod" does not exist                                                 
Unknown configuration value: failovermethod=priority in /var/lib/qubes/dom0-updates/etc/yum.repos.d/fedora-updates.repo; Configuration: OptionBinding with id "failovermethod" does not exist                                                 
Unknown configuration value: failovermethod=priority in /var/lib/qubes/dom0-updates/etc/yum.repos.d/fedora.repo; Configuration: OptionBinding with id "failovermethod" does not exist                                                         
Unknown configuration value: failovermethod=priority in /var/lib/qubes/dom0-updates/etc/yum.repos.d/fedora.repo; Configuration: OptionBinding with id "failovermethod" does not exist                                                         
Unknown configuration value: failovermethod=priority in /var/lib/qubes/dom0-updates/etc/yum.repos.d/fedora.repo; Configuration: OptionBinding with id "failovermethod" does not exist                                                         
repo: downloading from remote: updates                                                                                                                                                                                                        
Fedora 25 - x86_64 - Updates                    1.8 MB/s |  24 MB     00:13                                                                                                                                                                   
not found other for: Fedora 25 - x86_64 - Updates                                                                                                                                                                                             
not found modules for: Fedora 25 - x86_64 - Updates                                                                                                                                                                                           
updates: using metadata from Tue Dec 12 09:34:19 2017.                                                                                                                                                                                        
repo: downloading from remote: fedora                                                                                                                                                                                                         
Fedora 25 - x86_64                              1.9 MB/s |  50 MB     00:26                                                                                                                                                                   
not found other for: Fedora 25 - x86_64                                                                                                                                                                                                       
not found modules for: Fedora 25 - x86_64                                                                                                                                                                                                     
not found updateinfo for: Fedora 25 - x86_64                                                                                                                                                                                                  
fedora: using metadata from Tue Nov 15 14:49:18 2016.                                                                                                                                                                                         
repo: downloading from remote: qubes-dom0-current                                                                                                                                                                                             
Qubes Dom0 Repository (updates)                 210 kB/s | 8.0 MB     00:39                                                                                                                                                                   
not found other for: Qubes Dom0 Repository (updates)                                                                                                                                                                                          
not found modules for: Qubes Dom0 Repository (updates)                                                                                                                                                                                        
not found deltainfo for: Qubes Dom0 Repository (updates)                                                                                                                                                                                      
not found updateinfo for: Qubes Dom0 Repository (updates)                                                                                                                                                                                     
qubes-dom0-current: using metadata from Thu Jan 24 18:44:16 2019.                                                                                                                                                                             
repo: downloading from remote: qubes-templates-itl                                                                                                                                                                                            
determining the fastest mirror (15 hosts).. done..7 kB/s | 2.7 kB     00:00 ETA                                                                                                                                                               
Qubes Templates repository                      941  B/s |  11 kB     00:11                                                                                                                                                                   
not found other for: Qubes Templates repository                                                                                                                                                                                               
not found modules for: Qubes Templates repository                                                                                                                                                                                             
not found deltainfo for: Qubes Templates repository                                                                                                                                                                                           
not found updateinfo for: Qubes Templates repository                                                                                                                                                                                          
qubes-templates-itl: using metadata from Sun Jan 27 16:28:45 2019.                                                                                                                                                                            
Last metadata expiration check: 0:00:01 ago on Wed Feb  6 03:35:59 2019.                                                                                                                                                                      
--> Starting dependency resolution                                                                                                                                                                                                            
---> Package python3-blivet.noarch 2:2.1.6-5.fc25 will be reinstalled                                                                                                                                                                         
---> Package python3-kickstart.noarch 1000:2.32-4.fc25 will be reinstalled                                                                                                                                                                    
---> Package kernel.x86_64 1000:4.14.74-1.pvops.qubes will be installed                                                                                                                                                                       
---> Package kernel-qubes-vm.x86_64 1000:4.14.74-1.pvops.qubes will be installed                                                                                                                                                              
---> Package kernel.x86_64 1000:4.14.57-2.pvops.qubes will be erased                                                                                                                                                                          
---> Package kernel-qubes-vm.x86_64 1000:4.14.57-2.pvops.qubes will be erased                                                                                                                                                                 
--> Finished dependency resolution                                                                                                                                                                                                            
Dependencies resolved.                                                                                                                                                                                                                        
Excludes in dnf.conf: qubes-template-debian-9, qubes-template-fedora-26, qubes-template-fedora-28, qubes-template-fedora-29, qubes-template-whonix-gw-14, qubes-template-whonix-ws-14                                                         
================================================================================                                                                                                                                                              
 Package           Arch   Version                      Repository          Size                                                                                                                                                               
================================================================================                                                                                                                                                              
Installing:                                                                                                                                                                                                                                   
 kernel            x86_64 1000:4.14.74-1.pvops.qubes   qubes-dom0-current  46 M                                                                                                                                                               
 kernel-qubes-vm   x86_64 1000:4.14.74-1.pvops.qubes   qubes-dom0-current  64 M                                                                                                                                                               
Reinstalling:                                                                                                                                                                                                                                 
 python3-blivet    noarch 2:2.1.6-5.fc25               qubes-dom0-current 1.0 M                                                                                                                                                               
 python3-kickstart noarch 1000:2.32-4.fc25             qubes-dom0-current 370 k                                                                                                                                                               
Removing:                                                                                                                                                                                                                                     
 kernel            x86_64 1000:4.14.57-2.pvops.qubes   @System            239 M
 kernel-qubes-vm   x86_64 1000:4.14.57-2.pvops.qubes   @System            272 M

Transaction Summary
================================================================================
Install  2 Packages
Remove   2 Packages

Total download size: 112 M
DNF will only download packages for the transaction.
Downloading Packages:
(1/4): python3-blivet-2.1.6-5.fc25.noarch.rpm   145 kB/s | 1.0 MB     00:06    
(2/4): python3-kickstart-2.32-4.fc25.noarch.rpm  51 kB/s | 370 kB     00:07    
(3/4): kernel-4.14.74-1.pvops.qubes.x86_64.rpm  283 kB/s |  46 MB     02:46    
(4/4): kernel-qubes-vm-4.14.74-1.pvops.qubes.x8 290 kB/s |  64 MB     03:46                                                                                                                   
--------------------------------------------------------------------------------                                                                                                              
Total                                           484 kB/s | 112 MB     03:55                                                                                                                   
Complete!                                                                                                                                                                                     
The downloaded packages were saved in cache until the next successful transaction.                                                                                                            
You can remove cached packages by executing 'dnf clean packages'.                                                                                                                             
+ find /var/lib/qubes/dom0-updates/var/cache/yum -name '*.rpm' -print0                                                                                                                        
+ xargs -0 -r ln -f -t /var/lib/qubes/dom0-updates/packages/
+ ls /var/lib/qubes/dom0-updates/packages/kernel-4.14.74-1.pvops.qubes.x86_64.rpm /var/lib/qubes/dom0-updates/packages/kernel-qubes-vm-4.14.74-1.pvops.qubes.x86_64.rpm /var/lib/qubes/dom0-updates/packages/python3-blivet-2.1.6-5.fc25.noarch.rpm /var/lib/qubes/dom0-updates/packages/python3-kickstart-2.32-4.fc25.noarch.rpm
+ cmd='/usr/lib/qubes/qrexec-client-vm dom0 qubes.ReceiveUpdates /usr/lib/qubes/qfile-agent'
+ qrexec_exit_code=0
+ /usr/lib/qubes/qrexec-client-vm dom0 qubes.ReceiveUpdates /usr/lib/qubes/qfile-agent /var/lib/qubes/dom0-updates/packages/kernel-4.14.74-1.pvops.qubes.x86_64.rpm /var/lib/qubes/dom0-updates/packages/kernel-qubes-vm-4.14.74-1.pvops.qubes.x86_64.rpm /var/lib/qubes/dom0-updates/packages/python3-blivet-2.1.6-5.fc25.noarch.rpm /var/lib/qubes/dom0-updates/packages/python3-kickstart-2.32-4.fc25.noarch.rpm
+ '[' '!' 0 = 0 ']'
+ RETCODE=0
+ '[' '' == 1 ']'
+ '[' 0 -ne 0 ']'
+ pidof -x qubes-receive-updates
+ '[' -r /var/lib/qubes/updates/errors ']'
+ '[' -z '' ']'
+ YUM_ACTION=upgrade
+ '[' -n '' ']'
+ '[' -f /var/lib/qubes/updates/repodata/repomd.xml ']'
+ '[' '' == 1 ']'
+ dnf check-update
Qubes OS Repository for Dom0                                                                                                                                  147 MB/s | 215 kB     00:00    
+ '[' 0 -eq 100 ']'
+ dnf -q check-update
+ qvm-features dom0 updates-available ''
[user@dom0 ~]$ sudo dnf update
Qubes OS Repository for Dom0                                                                                                                                  143 MB/s | 215 kB     00:00    
Dependencies resolved.
Nothing to do.
Complete!
[user@dom0 ~]$ 

[user@dom0 ~]$ rpm -K /var/lib/qubes/updates/rpm/*.rpm
/var/lib/qubes/updates/rpm/kernel-4.14.74-1.pvops.qubes.x86_64.rpm: rsa sha1 (md5) pgp md5 OK
/var/lib/qubes/updates/rpm/kernel-qubes-vm-4.14.74-1.pvops.qubes.x86_64.rpm: rsa sha1 (md5) pgp md5 OK
/var/lib/qubes/updates/rpm/python3-blivet-2.1.6-5.fc25.noarch.rpm: rsa sha1 (md5) pgp md5 OK
/var/lib/qubes/updates/rpm/python3-kickstart-2.32-4.fc25.noarch.rpm: rsa sha1 (md5) pgp md5 OK

Related issues:

Similar to https://github.com/QubesOS/qubes-issues/issues/4099 but not the same cause.

adrelanos avatar Feb 06 '19 08:02 adrelanos

Yesterday one of my installs exhibited the same symptom.

brendanhoar avatar Feb 06 '19 13:02 brendanhoar

I have this issue too (with two packages). It started a couple of weeks ago, roughly.

Someone else has this problem and mentioned it on qubes-users: https://groups.google.com/forum/#!topic/qubes-users/aspAwV8Y27Y

SuzanneSoy avatar Feb 11 '19 15:02 SuzanneSoy

Same issue here, tried figuring out why but gave up.

lunarthegrey avatar Feb 14 '19 17:02 lunarthegrey

I just got a bunch of updates (via the GUI). After letting the GUI install those, I still see the two stale packages that "were saved in the cache until the next successful transaction" if I run sudo qubes-dom0-update in dom0.

SuzanneSoy avatar Feb 18 '19 21:02 SuzanneSoy

Same here since a couple of week. No updates since than...

j5k avatar Feb 20 '19 22:02 j5k

This magically fixed itself for me the other day.

lvh avatar Feb 20 '19 22:02 lvh

My terminal looks like this screenshot in the user mail list on 16.2.19 from Evastar: https://i.imgur.com/qnH5JNh.png

j5k avatar Feb 20 '19 22:02 j5k

I had the same issue when using a fedora-29-minimal updatevm, when switching back to whonix-gw it went away. So I thought this has probably something to do with fedora-29(-minimal).

SvenSemmler avatar Feb 21 '19 02:02 SvenSemmler

I would also like to add that I was using a fedora-29 template for the Update VM as well and suffering from this issue. The fedora-29 template that I have was freshly downloaded through dom0's terminal and not one created through upgrading old template/s.

MystesofEternity avatar Feb 21 '19 04:02 MystesofEternity

dnf want to reinstall those packages, so it does notice the same version is already there. I think it's because those package was rebuilt together with other packages in installer-qubes-os repository. Since those packages are not yet 100% reproducible, some details may be different (like build time) and apparently dnf in Fedora-29 do notice it.

To get rid of this, you can force reinstalling those package to that new build, with sudo dnf reinstall python3-blivet python3-kickstart in dom0. Since qubed-dom0-update verify signatures of all downloaded packages, it should be safe.

For the future, the fix is already queued for R4.1 - by splitting installer-qubes-os repository into separate packages. This means no longer multiple package would be rebuild if any of them is changed.

marmarek avatar Feb 21 '19 04:02 marmarek

I had to reinstall all those packages. Since then the update works correctly. Thanks!

j5k avatar Feb 21 '19 21:02 j5k

I can confirm reinstalling the packages works :)

lunarthegrey avatar Feb 23 '19 09:02 lunarthegrey

On 2/23/19 3:22 AM, Lunar wrote:

I can confirm reinstalling the packages works :)

Yes, here too.

SvenSemmler avatar Feb 24 '19 23:02 SvenSemmler

Did the sudo dnf reinstall as instructed and it fixed it like a charm Thank you very much for that!

MystesofEternity avatar Feb 27 '19 06:02 MystesofEternity

sudo dnf reinstall package.rpm doesnt work anymore , user needs to remove .rpm from the package name then reinstall can work with you see #5024 (almost similar to this ticket sorry i forgot , i should have reported that here)

TNTBOMBOM avatar May 09 '19 03:05 TNTBOMBOM

sudo dnf reinstall package.rpm doesnt work anymore , user needs to remove .rpm from the package name then reinstall can work with you see #5024 (almost similar to this ticket sorry i forgot , i should have reported that here)

Well dnf in particular always works directly with software/packages names instead of .rpm files since it does syncing with repositories in order to resolve + download software/packages and install them.

Using dnf itself involves things like: sudo dnf install vlc

Although one can do a sudo dnf install vlc.rpm when you have the .rpm file downloaded into your PC, there is an rpm command that was designed to really work with .rpm files.

MystesofEternity avatar May 14 '19 01:05 MystesofEternity

Multiple users are reporting that dnf reinstall isn't working with kernel packages:

  • https://groups.google.com/d/msgid/qubes-users/c8971e12-54fa-4997-9f1a-4913eb5a396e%40googlegroups.com
  • https://groups.google.com/d/msgid/qubes-users/l9UemRakBGPd0D9HX4ukx3u27IdrhjQFoQvQ9NY5oGJPfabCLXmgzBC0SyHxHersrURwybf0kOJSy9Ml6jFR-lvcdiQpjfoPkKbZhBhfBic%3D%40protonmail.com

andrewdavidwong avatar Jun 16 '19 17:06 andrewdavidwong

Upstream issue: https://bugzilla.redhat.com/show_bug.cgi?id=1644241

marmarek avatar Jun 16 '19 19:06 marmarek

Upstream issue: https://bugzilla.redhat.com/show_bug.cgi?id=1644241

Does that apply only to the kernel packages or to this whole issue (as in, this whole issue should be closed as not our bug)?

andrewdavidwong avatar Jun 18 '19 02:06 andrewdavidwong

It's about dnf wanting to reinstall packages if version wasn't changed (but package possibly was rebuilt). I'm not entirely sure if kernel issue is the same, as it's "Install", not "Reinstall" in that case.

marmarek avatar Jun 18 '19 02:06 marmarek

It's about dnf wanting to reinstall packages if version wasn't changed (but package possibly was rebuilt).

Hm, so does that cover this whole issue, or only part of it (or do we not know)?

I don't know whether the problem reported here occurs if and only if dnf wants to reinstall a package whose version hasn't changed but that may been rebuilt. Does anyone know?

andrewdavidwong avatar Jun 18 '19 02:06 andrewdavidwong

Some more data that may or may not help you diagnose the issue:


[root@dom0 ~]# qubes-dom0-update 
Using sys-firewall as UpdateVM to download updates for Dom0; this may take some time...
Last metadata expiration check: 1:37:56 ago on Sat Jul 13 22:09:46 2019.
Dependencies resolved.

================================================================================
 Package            Arch   Version                     Repository          Size
================================================================================
Installing:
 kernel             x86_64 1000:4.14.119-2.pvops.qubes qubes-dom0-current  46 M
 kernel-qubes-vm    x86_64 1000:4.14.119-2.pvops.qubes qubes-dom0-current  64 M
Reinstalling:
 anaconda-core      x86_64 1000:25.20.9-14.fc25        qubes-dom0-current 1.5 M
 anaconda-gui       x86_64 1000:25.20.9-14.fc25        qubes-dom0-current 386 k
 anaconda-tui       x86_64 1000:25.20.9-14.fc25        qubes-dom0-current 186 k
 anaconda-widgets   x86_64 1000:25.20.9-14.fc25        qubes-dom0-current 119 k
 garcon             x86_64 1000:0.5.0-1.fc25           qubes-dom0-current 179 k
 qubes-anaconda-addon
                    noarch 4.0.9-1.fc25                qubes-dom0-current  34 k
 xfwm4              x86_64 1000:4.12.4-1.fc25          qubes-dom0-current 636 k
Removing:
 kernel             x86_64 1000:4.14.74-1.pvops.qubes  @System            239 M
 kernel-qubes-vm    x86_64 1000:4.14.74-1.pvops.qubes  @System            272 M

Transaction Summary
================================================================================
Install  2 Packages
Remove   2 Packages

Total size: 113 M
DNF will only download packages for the transaction.
Downloading Packages:
[SKIPPED] anaconda-core-25.20.9-14.fc25.x86_64.rpm: Already downloaded         
[SKIPPED] anaconda-gui-25.20.9-14.fc25.x86_64.rpm: Already downloaded          
[SKIPPED] anaconda-tui-25.20.9-14.fc25.x86_64.rpm: Already downloaded          
[SKIPPED] anaconda-widgets-25.20.9-14.fc25.x86_64.rpm: Already downloaded      
[SKIPPED] garcon-0.5.0-1.fc25.x86_64.rpm: Already downloaded                   
[SKIPPED] qubes-anaconda-addon-4.0.9-1.fc25.noarch.rpm: Already downloaded     
[SKIPPED] xfwm4-4.12.4-1.fc25.x86_64.rpm: Already downloaded                   
[SKIPPED] kernel-4.14.119-2.pvops.qubes.x86_64.rpm: Already downloaded         
[SKIPPED] kernel-qubes-vm-4.14.119-2.pvops.qubes.x86_64.rpm: Already downloaded
Complete!
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Qubes OS Repository for Dom0                                                                            91 MB/s | 227 kB     00:00    
[root@dom0 ~]# dnf reinstall anaconda-core anaconda-gui anaconda-tui anaconda-widgets garcon qubes-anaconda-addon xfwm4
Qubes OS Repository for Dom0                                                                            90 MB/s | 227 kB     00:00    
Dependencies resolved.
=======================================================================================================================================
 Package                             Arch                  Version                              Repository                        Size
=======================================================================================================================================
Reinstalling:
 anaconda-core                       x86_64                1000:25.20.9-14.fc25                 qubes-dom0-cached                1.5 M
 anaconda-gui                        x86_64                1000:25.20.9-14.fc25                 qubes-dom0-cached                386 k
 anaconda-tui                        x86_64                1000:25.20.9-14.fc25                 qubes-dom0-cached                186 k
 anaconda-widgets                    x86_64                1000:25.20.9-14.fc25                 qubes-dom0-cached                119 k
 garcon                              x86_64                1000:0.5.0-1.fc25                    qubes-dom0-cached                179 k
 qubes-anaconda-addon                noarch                4.0.9-1.fc25                         qubes-dom0-cached                 34 k
 xfwm4                               x86_64                1000:4.12.4-1.fc25                   qubes-dom0-cached                636 k

Transaction Summary
=======================================================================================================================================

Total size: 3.0 M
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Reinstalling: anaconda-tui-1000:25.20.9-14.fc25.x86_64                                                                          1/14 
  Reinstalling: anaconda-core-1000:25.20.9-14.fc25.x86_64                                                                         2/14 
  Reinstalling: anaconda-widgets-1000:25.20.9-14.fc25.x86_64                                                                      3/14 
  Reinstalling: anaconda-gui-1000:25.20.9-14.fc25.x86_64                                                                          4/14 
  Reinstalling: xfwm4-1000:4.12.4-1.fc25.x86_64                                                                                   5/14 
  Reinstalling: qubes-anaconda-addon-4.0.9-1.fc25.noarch                                                                          6/14 
  Reinstalling: garcon-1000:0.5.0-1.fc25.x86_64                                                                                   7/14 
  Erasing     : anaconda-gui-1000:25.20.9-14.fc25.x86_64                                                                          8/14 
  Erasing     : qubes-anaconda-addon-4.0.9-1.fc25.noarch                                                                          9/14 
  Erasing     : anaconda-tui-1000:25.20.9-14.fc25.x86_64                                                                         10/14 
  Erasing     : anaconda-core-1000:25.20.9-14.fc25.x86_64                                                                        11/14 
  Erasing     : anaconda-widgets-1000:25.20.9-14.fc25.x86_64                                                                     12/14 
  Erasing     : xfwm4-1000:4.12.4-1.fc25.x86_64                                                                                  13/14 
  Erasing     : garcon-1000:0.5.0-1.fc25.x86_64                                                                                  14/14 
  Verifying   : anaconda-core-1000:25.20.9-14.fc25.x86_64                                                                         1/14 
  Verifying   : anaconda-gui-1000:25.20.9-14.fc25.x86_64                                                                          2/14 
  Verifying   : anaconda-tui-1000:25.20.9-14.fc25.x86_64                                                                          3/14 
  Verifying   : anaconda-widgets-1000:25.20.9-14.fc25.x86_64                                                                      4/14 
  Verifying   : garcon-1000:0.5.0-1.fc25.x86_64                                                                                   5/14 
  Verifying   : qubes-anaconda-addon-4.0.9-1.fc25.noarch                                                                          6/14 
  Verifying   : xfwm4-1000:4.12.4-1.fc25.x86_64                                                                                   7/14 
  Verifying   : anaconda-core-1000:25.20.9-14.fc25.x86_64                                                                         8/14 
  Verifying   : anaconda-gui-1000:25.20.9-14.fc25.x86_64                                                                          9/14 
  Verifying   : anaconda-tui-1000:25.20.9-14.fc25.x86_64                                                                         10/14 
  Verifying   : xfwm4-1000:4.12.4-1.fc25.x86_64                                                                                  11/14 
  Verifying   : anaconda-widgets-1000:25.20.9-14.fc25.x86_64                                                                     12/14 
  Verifying   : qubes-anaconda-addon-4.0.9-1.fc25.noarch                                                                         13/14 
  Verifying   : garcon-1000:0.5.0-1.fc25.x86_64                                                                                  14/14 

Reinstalled:
  anaconda-core.x86_64 1000:25.20.9-14.fc25      anaconda-gui.x86_64 1000:25.20.9-14.fc25   anaconda-tui.x86_64 1000:25.20.9-14.fc25  
  anaconda-widgets.x86_64 1000:25.20.9-14.fc25   garcon.x86_64 1000:0.5.0-1.fc25            qubes-anaconda-addon.noarch 4.0.9-1.fc25  
  xfwm4.x86_64 1000:4.12.4-1.fc25               

Complete!
[root@dom0 ~]# qubes-dom0-update 
Using sys-firewall as UpdateVM to download updates for Dom0; this may take some time...
Last metadata expiration check: 1:50:54 ago on Sat Jul 13 22:09:46 2019.
Dependencies resolved.
================================================================================
 Package         Arch   Version                        Repository          Size
================================================================================
Installing:
 kernel          x86_64 1000:4.14.119-2.pvops.qubes    qubes-dom0-current  46 M
 kernel-qubes-vm x86_64 1000:4.14.119-2.pvops.qubes    qubes-dom0-current  64 M
Removing:
 kernel          x86_64 1000:4.14.74-1.pvops.qubes     @System            239 M
 kernel-qubes-vm x86_64 1000:4.14.74-1.pvops.qubes     @System            272 M

Transaction Summary
================================================================================
Install  2 Packages
Remove   2 Packages

Total size: 110 M
DNF will only download packages for the transaction.
Downloading Packages:
[SKIPPED] kernel-4.14.119-2.pvops.qubes.x86_64.rpm: Already downloaded         
[SKIPPED] kernel-qubes-vm-4.14.119-2.pvops.qubes.x86_64.rpm: Already downloaded
Complete!
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Qubes OS Repository for Dom0                                                                            91 MB/s | 227 kB     00:00    
[root@dom0 ~]# dnf update kernel kernel-qubes-vm
Qubes OS Repository for Dom0                                                                            87 MB/s | 227 kB     00:00    
Dependencies resolved.
Nothing to do.
Complete!
[root@dom0 ~]# rpm -q kernel-qubes-vm
kernel-qubes-vm-4.14.74-1.pvops.qubes.x86_64
kernel-qubes-vm-4.14.116-1.pvops.qubes.x86_64
kernel-qubes-vm-4.19.43-1.pvops.qubes.x86_64

yourcase avatar Jul 13 '19 22:07 yourcase

You already have newer package installed: kernel-qubes-vm-4.19.43-1.pvops.qubes.x86_64. This is why dnf update call don't want to do anything - because there is nothing to update. I'm not sure why packages are still downloaded in sys-firewall, but the issue is on this side, not on not installing them in dom0. So, in practice it's only about wasting some network bandwidth.

marmarek avatar Dec 11 '19 02:12 marmarek

bump. @marmarek can you help to fix this bug?

dom0

~ - sudo bash -x qubes-dom0-update bc
++ qubes-prefs --force-root updatevm
+ UPDATEVM=sys-whonix
+ UPDATES_STAT_FILE=/var/lib/qubes/updates/dom0-updates-available
+ '[' -z sys-whonix ']'
+ '[' bc = --help ']'
+ PKGS=()
+ YUM_OPTS=()
+ GUI=
+ CHECK_ONLY=
+ ALL_OPTS=("${@}")
+ YUM_ACTION=
+ QVMRUN_OPTS=
+ CLEAN=
+ TEMPLATE=
+ TEMPLATE_BACKUP=
+ '[' 1 -gt 0 ']'
+ case "$1" in
+ PKGS+=("${1}")
+ '[' -z '' ']'
+ YUM_ACTION=install
+ shift
+ '[' 0 -gt 0 ']'
+ '[' install == reinstall ']'
+ '[' install == upgrade ']'
+ '[' install == upgrade-to ']'
+ '[' install == downgrade ']'
+ '[' install == search ']'
+ '[' install == info ']'
+ TEMPLATE_EXCLUDE_OPTS=("--exclude=$(rpm -qa --qf '%{NAME},' qubes-template-\*|head -c -1)")
++ rpm -qa --qf '%{NAME},' 'qubes-template-*'
++ head -c -1
+ YUM_OPTS=("${TEMPLATE_EXCLUDE_OPTS[@]}" "${YUM_OPTS[@]}")
+ ALL_OPTS=("${TEMPLATE_EXCLUDE_OPTS[@]}" "${ALL_OPTS[@]}")
++ id -ur
+ ID=0
+ '[' 0 '!=' 0 -a -z '' -a -z '' ']'
+ '[' '' == 1 -a 1 -ne 0 ']'
+ '[' '' == 1 ']'
+ '[' '' '!=' 1 ']'
+ QVMRUN_OPTS=--nogui
+ '[' '' == 1 ']'
+ '[' -n '' ']'
+ rm -f /var/lib/qubes/updates/errors
+ echo 'Using sys-whonix as UpdateVM to download updates for Dom0; this may take some time...'
Using sys-whonix as UpdateVM to download updates for Dom0; this may take some time...
+ qvm-run --nogui -q -u root sys-whonix 'mkdir -m 775 -p /var/lib/qubes/dom0-updates/'
+ qvm-run --nogui -q -u root sys-whonix 'chown user:user /var/lib/qubes/dom0-updates/'
+ qvm-run --nogui -q sys-whonix 'rm -rf /var/lib/qubes/dom0-updates/etc'
+ qvm-run --nogui -q --pass-io sys-whonix 'LC_MESSAGES=C tar x -C /var/lib/qubes/dom0-updates 2>&1 | grep -v -E "s in the future"'
+ tar c /var/lib/rpm /etc/yum.repos.d /etc/yum.conf
++ escape_args --exclude=qubes-template-whonix-gw-15,qubes-template-archlinux,qubes-template-fedora-30,qubes-template-buster-minimal,qubes-template-debian-10,qubes-template-whonix-ws-15 bc
++ local eargs=
++ for arg in '"$@"'
++ printf -v eargs '%s%q ' '' --exclude=qubes-template-whonix-gw-15,qubes-template-archlinux,qubes-template-fedora-30,qubes-template-buster-minimal,qubes-template-debian-10,qubes-template-whonix-ws-15
++ for arg in '"$@"'
++ printf -v eargs '%s%q ' '--exclude=qubes-template-whonix-gw-15\,qubes-template-archlinux\,qubes-template-fedora-30\,qubes-template-buster-minimal\,qubes-template-debian-10\,qubes-template-whonix-ws-15 ' bc
++ echo '--exclude=qubes-template-whonix-gw-15\,qubes-template-archlinux\,qubes-template-fedora-30\,qubes-template-buster-minimal\,qubes-template-debian-10\,qubes-template-whonix-ws-15 bc'
+ qvm-run --nogui --pass-io sys-whonix 'script --quiet --return --command '\''/usr/lib/qubes/qubes-download-dom0-updates.sh --doit --nogui --exclude=qubes-template-whonix-gw-15\,qubes-template-archlinux\,qubes-template-fedora-30\,qubes-template-buster-minimal\,qubes-template-debian-10\,qubes-template-whonix-ws-15 bc'\'' /dev/null'
--> Running transaction check
---> Package bc.x86_64 0:1.06.95-16.fc24 will be installed
--> Finished Dependency Resolution
bc-1.06.95-16.fc24.x86_64.rpm                               | 121 kB  00:00     
find: '/var/lib/qubes/dom0-updates/var/cache': No such file or directory
+ RETCODE=0
+ '[' '' == 1 ']'
+ '[' 0 -ne 0 ']'
+ pidof -x qubes-receive-updates
+ '[' -r /var/lib/qubes/updates/errors ']'
+ '[' -z install ']'
+ '[' 1 -gt 0 ']'
+ '[' -n '' ']'
+ dnf --exclude=qubes-template-whonix-gw-15,qubes-template-archlinux,qubes-template-fedora-30,qubes-template-buster-minimal,qubes-template-debian-10,qubes-template-whonix-ws-15 install bc
Failed to synchronize cache for repo 'qubes-dom0-cached', disabling.
No package bc available.
Error: Unable to find a match.
+ RETCODE=1
+ '[' -n '' -a 1 -eq 0 ']'
+ '[' -n '' -a -n '' -a x '!=' xNone ']'
~ - sudo dnf reinstall bc.rpm
Failed to synchronize cache for repo 'qubes-dom0-cached', disabling.
Can not load RPM file: bc.rpm.
~ - sudo dnf reinstall bc
Failed to synchronize cache for repo 'qubes-dom0-cached', disabling.
No match for argument: bc
Error: Nothing to do.

sys-whonix

user@host:~$ ls /var/lib/qubes/dom0-updates/packages/
bc-1.06.95-16.fc24.x86_64.rpm

Also updates on Dom0 via sys-firewall not working.

System Tools -> Qubes Global Settings -> Dom0 UpdateVm -> sys-firewall

~ - sudo bash -x qubes-dom0-update ++ qubes-prefs --force-root updatevm

  • UPDATEVM=sys-firewall
  • UPDATES_STAT_FILE=/var/lib/qubes/updates/dom0-updates-available
  • '[' -z sys-firewall ']'
  • '[' '' = --help ']'
  • PKGS=()
  • YUM_OPTS=()
  • GUI=
  • CHECK_ONLY=
  • ALL_OPTS=("${@}")
  • YUM_ACTION=
  • QVMRUN_OPTS=
  • CLEAN=
  • TEMPLATE=
  • TEMPLATE_BACKUP=
  • '[' 0 -gt 0 ']'
  • '[' '' == reinstall ']'
  • '[' '' == upgrade ']'
  • '[' '' == upgrade-to ']'
  • '[' '' == downgrade ']'
  • '[' '' == search ']'
  • '[' '' == info ']'
  • TEMPLATE_EXCLUDE_OPTS=("--exclude=$(rpm -qa --qf '%{NAME},' qubes-template-*|head -c -1)") ++ rpm -qa --qf '%{NAME},' 'qubes-template-*' ++ head -c -1
  • YUM_OPTS=("${TEMPLATE_EXCLUDE_OPTS[@]}" "${YUM_OPTS[@]}")
  • ALL_OPTS=("${TEMPLATE_EXCLUDE_OPTS[@]}" "${ALL_OPTS[@]}") ++ id -ur
  • ID=0
  • '[' 0 '!=' 0 -a -z '' -a -z '' ']'
  • '[' '' == 1 -a 0 -ne 0 ']'
  • '[' '' == 1 ']'
  • '[' '' '!=' 1 ']'
  • QVMRUN_OPTS=--nogui
  • '[' '' == 1 ']'
  • '[' -n '' ']'
  • rm -f /var/lib/qubes/updates/errors
  • echo 'Using sys-firewall as UpdateVM to download updates for Dom0; this may take some time...' Using sys-firewall as UpdateVM to download updates for Dom0; this may take some time...
  • qvm-run --nogui -q -u root sys-firewall 'mkdir -m 775 -p /var/lib/qubes/dom0-updates/'
  • qvm-run --nogui -q -u root sys-firewall 'chown user:user /var/lib/qubes/dom0-updates/'
  • qvm-run --nogui -q sys-firewall 'rm -rf /var/lib/qubes/dom0-updates/etc'
  • tar c /var/lib/rpm /etc/yum.repos.d /etc/yum.conf
  • qvm-run --nogui -q --pass-io sys-firewall 'LC_MESSAGES=C tar x -C /var/lib/qubes/dom0-updates 2>&1 | grep -v -E "s in the future"' ++ escape_args --exclude=qubes-template-whonix-gw-15,qubes-template-archlinux,qubes-template-fedora-30,qubes-template-buster-minimal,qubes-template-debian-10,qubes-template-whonix-ws-15 ++ local eargs= ++ for arg in '"$@"' ++ printf -v eargs '%s%q ' '' --exclude=qubes-template-whonix-gw-15,qubes-template-archlinux,qubes-template-fedora-30,qubes-template-buster-minimal,qubes-template-debian-10,qubes-template-whonix-ws-15 ++ echo '--exclude=qubes-template-whonix-gw-15,qubes-template-archlinux,qubes-template-fedora-30,qubes-template-buster-minimal,qubes-template-debian-10,qubes-template-whonix-ws-15'
  • qvm-run --nogui --pass-io sys-firewall 'script --quiet --return --command '''/usr/lib/qubes/qubes-download-dom0-updates.sh --doit --nogui --exclude=qubes-template-whonix-gw-15,qubes-template-archlinux,qubes-template-fedora-30,qubes-template-buster-minimal,qubes-template-debian-10,qubes-template-whonix-ws-15''' /dev/null' Existing lock /var/tmp/yum-user-azlaAd/x86_64/4.0/yum.pid: another copy is running as pid 1713. Another app is currently holding the yum lock; waiting for it to exit... The other application is: yum Memory : 34 M RSS (162 MB VSZ) Started: Thu Feb 13 01:32:03 2020 - 22:05 ago State : Sleeping, pid: 1713 Another app is currently holding the yum lock; waiting for it to exit... The other application is: yum Memory : 34 M RSS (162 MB VSZ) Started: Thu Feb 13 01:32:03 2020 - 22:07 ago State : Sleeping, pid: 1713 Another app is currently holding the yum lock; waiting for it to exit... The other application is: yum Memory : 34 M RSS (162 MB VSZ) Started: Thu Feb 13 01:32:03 2020 - 22:09 ago State : Sleeping, pid: 1713 Another app is currently holding the yum lock; waiting for it to exit... The other application is: yum Memory : 34 M RSS (162 MB VSZ) Started: Thu Feb 13 01:32:03 2020 - 22:11 ago State : Sleeping, pid: 1713 Another app is currently holding the yum lock; waiting for it to exit... The other application is: yum Memory : 34 M RSS (162 MB VSZ) Started: Thu Feb 13 01:32:03 2020 - 22:13 ago State : Sleeping, pid: 1713 Another app is currently holding the yum lock; waiting for it to exit... The other application is: yum Memory : 34 M RSS (162 MB VSZ) Started: Thu Feb 13 01:32:03 2020 - 22:15 ago State : Sleeping, pid: 1713 Another app is currently holding the yum lock; waiting for it to exit... The other application is: yum Memory : 34 M RSS (162 MB VSZ) Started: Thu Feb 13 01:32:03 2020 - 22:17 ago State : Sleeping, pid: 1713

ghost avatar Feb 12 '20 22:02 ghost

In sys-whonix, try editing /usr/lib/qubes/qubes-download-dom0-updates.sh - on the line 178 there is find + xargs call - add || : at the end of the whole command and see if that helps.

marmarek avatar Feb 12 '20 22:02 marmarek

@marmarek 165-178 lines, then script ends.

find "$DOM0_UPDATES_DIR/var/cache" -name '*.rpm' -print0 || :
    xargs -0 -r ln -f -t  "$DOM0_UPDATES_DIR/packages/" 

if ls "$DOM0_UPDATES_DIR"/packages/*.rpm > /dev/null 2>&1; then
    cmd="/usr/lib/qubes/qrexec-client-vm dom0 qubes.ReceiveUpdates /usr/lib/qubes/qfile-agent"
    qrexec_exit_code=0
    $cmd "$DOM0_UPDATES_DIR"/packages/*.rpm || { qrexec_exit_code=$? ; true; };
    if [ ! "$qrexec_exit_code" = "0" ]; then
        echo "'$cmd $DOM0_UPDATES_DIR/packages/*.rpm' failed with exit code ${qrexec_exit_code}!" >&2
        exit "$qrexec_exit_code"
    fi
else
    echo "No packages downloaded"
fi

ghost avatar Feb 12 '20 23:02 ghost

it should be:

find "$DOM0_UPDATES_DIR/var/cache" -name '*.rpm' -print0 |\
    xargs -0 -r ln -f -t  "$DOM0_UPDATES_DIR/packages/"  || :

marmarek avatar Feb 12 '20 23:02 marmarek

@marmarek same error, maybe try mirage-firewall as updatevm temporary?

dom0

sudo bash -x qubes-dom0-update dunst
++ qubes-prefs --force-root updatevm
+ UPDATEVM=sys-whonix
+ UPDATES_STAT_FILE=/var/lib/qubes/updates/dom0-updates-available
+ '[' -z sys-whonix ']'
+ '[' dunst = --help ']'
+ PKGS=()
+ YUM_OPTS=()
+ GUI=
+ CHECK_ONLY=
+ ALL_OPTS=("${@}")
+ YUM_ACTION=
+ QVMRUN_OPTS=
+ CLEAN=
+ TEMPLATE=
+ TEMPLATE_BACKUP=
+ '[' 1 -gt 0 ']'
+ case "$1" in
+ PKGS+=("${1}")
+ '[' -z '' ']'
+ YUM_ACTION=install
+ shift
+ '[' 0 -gt 0 ']'
+ '[' install == reinstall ']'
+ '[' install == upgrade ']'
+ '[' install == upgrade-to ']'
+ '[' install == downgrade ']'
+ '[' install == search ']'
+ '[' install == info ']'
+ TEMPLATE_EXCLUDE_OPTS=("--exclude=$(rpm -qa --qf '%{NAME},' qubes-template-\*|head -c -1)")
++ rpm -qa --qf '%{NAME},' 'qubes-template-*'
++ head -c -1
+ YUM_OPTS=("${TEMPLATE_EXCLUDE_OPTS[@]}" "${YUM_OPTS[@]}")
+ ALL_OPTS=("${TEMPLATE_EXCLUDE_OPTS[@]}" "${ALL_OPTS[@]}")
++ id -ur
+ ID=0
+ '[' 0 '!=' 0 -a -z '' -a -z '' ']'
+ '[' '' == 1 -a 1 -ne 0 ']'
+ '[' '' == 1 ']'
+ '[' '' '!=' 1 ']'
+ QVMRUN_OPTS=--nogui
+ '[' '' == 1 ']'
+ '[' -n '' ']'
+ rm -f /var/lib/qubes/updates/errors
+ echo 'Using sys-whonix as UpdateVM to download updates for Dom0; this may take some time...'
Using sys-whonix as UpdateVM to download updates for Dom0; this may take some time...
+ qvm-run --nogui -q -u root sys-whonix 'mkdir -m 775 -p /var/lib/qubes/dom0-updates/'
+ qvm-run --nogui -q -u root sys-whonix 'chown user:user /var/lib/qubes/dom0-updates/'
+ qvm-run --nogui -q sys-whonix 'rm -rf /var/lib/qubes/dom0-updates/etc'
+ qvm-run --nogui -q --pass-io sys-whonix 'LC_MESSAGES=C tar x -C /var/lib/qubes/dom0-updates 2>&1 | grep -v -E "s in the future"'
+ tar c /var/lib/rpm /etc/yum.repos.d /etc/yum.conf
++ escape_args --exclude=qubes-template-whonix-gw-15,qubes-template-archlinux,qubes-template-fedora-30,qubes-template-buster-minimal,qubes-template-debian-10,qubes-template-whonix-ws-15 dunst
++ local eargs=
++ for arg in '"$@"'
++ printf -v eargs '%s%q ' '' --exclude=qubes-template-whonix-gw-15,qubes-template-archlinux,qubes-template-fedora-30,qubes-template-buster-minimal,qubes-template-debian-10,qubes-template-whonix-ws-15
++ for arg in '"$@"'
++ printf -v eargs '%s%q ' '--exclude=qubes-template-whonix-gw-15\,qubes-template-archlinux\,qubes-template-fedora-30\,qubes-template-buster-minimal\,qubes-template-debian-10\,qubes-template-whonix-ws-15 ' dunst
++ echo '--exclude=qubes-template-whonix-gw-15\,qubes-template-archlinux\,qubes-template-fedora-30\,qubes-template-buster-minimal\,qubes-template-debian-10\,qubes-template-whonix-ws-15 dunst'
+ qvm-run --nogui --pass-io sys-whonix 'script --quiet --return --command '\''/usr/lib/qubes/qubes-download-dom0-updates.sh --doit --nogui --exclude=qubes-template-whonix-gw-15\,qubes-template-archlinux\,qubes-template-fedora-30\,qubes-template-buster-minimal\,qubes-template-debian-10\,qubes-template-whonix-ws-15 dunst'\'' /dev/null'
--> Running transaction check
---> Package dunst.x86_64 0:1.1.0-4.fc24 will be installed
--> Finished Dependency Resolution
dunst-1.1.0-4.fc24.x86_64.rpm                               |  48 kB  00:00     
find: '/var/lib/qubes/dom0-updates/var/cache': No such file or directory
+ RETCODE=0
+ '[' '' == 1 ']'
+ '[' 0 -ne 0 ']'
+ pidof -x qubes-receive-updates
+ '[' -r /var/lib/qubes/updates/errors ']'
+ '[' -z install ']'
+ '[' 1 -gt 0 ']'
+ '[' -n '' ']'
+ dnf --exclude=qubes-template-whonix-gw-15,qubes-template-archlinux,qubes-template-fedora-30,qubes-template-buster-minimal,qubes-template-debian-10,qubes-template-whonix-ws-15 install dunst
Failed to synchronize cache for repo 'qubes-dom0-cached', disabling.
No package dunst available.
Error: Unable to find a match.
+ RETCODE=1
+ '[' -n '' -a 1 -eq 0 ']'
+ '[' -n '' -a -n '' -a x '!=' xNone ']'

sys-whonix

user@host:~$ ls /var/lib/qubes/dom0-updates/packages/
bc-1.06.95-16.fc24.x86_64.rpm  dunst-1.1.0-4.fc24.x86_64.rpm
user@host:~$ cat /usr/lib/qubes/qubes-download-dom0-updates.sh
#!/bin/bash

DOM0_UPDATES_DIR=/var/lib/qubes/dom0-updates

GUI=1
CLEAN=0
CHECK_ONLY=0
OPTS="--installroot $DOM0_UPDATES_DIR"
if [ -f "$DOM0_UPDATES_DIR/etc/dnf/dnf.conf" ]; then
    OPTS="$OPTS --config=$DOM0_UPDATES_DIR/etc/yum.conf"
elif [ -f "$DOM0_UPDATES_DIR/etc/yum.conf" ]; then
    OPTS="$OPTS --config=$DOM0_UPDATES_DIR/etc/yum.conf"
fi
# DNF uses /etc/yum.repos.d, even when --installroot is specified
OPTS="$OPTS --setopt=reposdir=$DOM0_UPDATES_DIR/etc/yum.repos.d"
PKGLIST=()
YUM_ACTION=

export LC_ALL=C

while [ -n "$1" ]; do
    case "$1" in
        --doit)
            # ignore
            ;;
        --nogui)
            GUI=0
            ;;
        --gui)
            GUI=1
            ;;
        --clean)
            CLEAN=1
            ;;
        --check-only)
            CHECK_ONLY=1
            ;;
        --action=*)
            YUM_ACTION=${1#--action=}
            ;;
        -*)
            OPTS="$OPTS $1"
            ;;
        *)
            PKGLIST+=( "${1}" )
            if [ -z "$YUM_ACTION" ]; then
                YUM_ACTION=install
            fi
            ;;
    esac
    shift
done

if [ -z "$YUM_ACTION" ]; then
    YUM_ACTION=upgrade
fi

YUM="yum"
if type dnf >/dev/null 2>&1; then
    YUM="dnf --best --allowerasing --noplugins"
else
    # salt in dom0 thinks it's using dnf but we only have yum so need to remove extra options
    OPTS="${OPTS/--best --allowerasing/}"
fi

if ! [ -d "$DOM0_UPDATES_DIR" ]; then
    echo "Dom0 updates dir does not exists: $DOM0_UPDATES_DIR" >&2
    exit 1
fi

mkdir -p $DOM0_UPDATES_DIR/etc

if [ -e /etc/debian_version ]; then
    # Default rpm configuration on Debian uses ~/.rpmdb for rpm database (as
    # rpm isn't native package manager there)
    mkdir -p "$DOM0_UPDATES_DIR$HOME"
    ln -nsf "$DOM0_UPDATES_DIR/var/lib/rpm" "$DOM0_UPDATES_DIR$HOME/.rpmdb"
fi
# Rebuild rpm database in case of different rpm version
rm -f $DOM0_UPDATES_DIR/var/lib/rpm/__*
rpm --root=$DOM0_UPDATES_DIR --rebuilddb

if [ "$CLEAN" = "1" ]; then
    # shellcheck disable=SC2086
    $YUM $OPTS clean all
    rm -f "$DOM0_UPDATES_DIR"/packages/*
    rm -rf "$DOM0_UPDATES_DIR"/var/cache/*
fi

# just check for updates, but don't download any package
if [ ${#PKGLIST[@]} -eq 0 ] && [ "$CHECK_ONLY" = "1" ]; then
    echo "Checking for dom0 updates..." >&2
    # shellcheck disable=SC2086
    UPDATES_FULL=$($YUM $OPTS check-update)
    check_update_retcode=$?
    if [ "$check_update_retcode" -eq 1 ]; then
        # Exit here if yum have reported an error. Exit code 100 isn't an
        # error, it's "updates available" info, so check specifically for exit code 1
        exit 1
    fi
    if [ $check_update_retcode -eq 100 ]; then
        echo "Available updates: "
        echo "$UPDATES_FULL"
        exit 100
    else
        echo "No new updates available"
        if [ "$GUI" = 1 ]; then
            zenity --info --text="No new updates available"
        fi
        exit 0
    fi
fi

# now, we will download something
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
    if [ "$YUM_ACTION" = "install" ]; then
        YUM_COMMAND="yumdownloader --destdir=$DOM0_UPDATES_DIR/packages --resolve"
    elif [ "$YUM_ACTION" = "upgrade" ]; then
        # shellcheck disable=SC2086
        UPDATES_FULL=$($YUM $OPTS check-update "${PKGLIST[@]}")
        check_update_retcode=$?
        UPDATES_FULL=$(echo "$UPDATES_FULL" | grep -v "^Loaded plugins:\|^Last metadata\|^$")
        mapfile -t PKGLIST < <(echo "$UPDATES_FULL" | grep -v "^Obsoleting\|Could not" | cut -f 1 -d ' ')
        if [ "$check_update_retcode" -eq 0 ]; then
            # exit code 0 means no updates available - regardless of stdout messages
            echo "No new updates available"
            exit 0
        fi
        YUM_COMMAND="yumdownloader --destdir=$DOM0_UPDATES_DIR/packages --resolve"
    elif [ "$YUM_ACTION" == "list" ] || [ "$YUM_ACTION" == "search" ]; then
        # those actions do not download any package, so lack of --downloadonly is irrelevant
        YUM_COMMAND="$YUM $YUM_ACTION -y"
    elif [ "$YUM_ACTION" == "reinstall" ]; then
        # this is just approximation of 'reinstall' action...
        mapfile -t PKGLIST < <(rpm --root=$DOM0_UPDATES_DIR -q "${PKGLIST[@]}")
        YUM_COMMAND="yumdownloader --destdir=$DOM0_UPDATES_DIR/packages --resolve"
    else
        echo "ERROR: yum version installed in VM $(hostname) does not suppport --downloadonly option" >&2
        echo "ERROR: only 'install' and 'upgrade' actions supported ($YUM_ACTION not)" >&2
        if [ "$GUI" = 1 ]; then
            zenity --error --text="yum version too old for '$YUM_ACTION' action, see console for details"
        fi
        exit 1
    fi
fi

mkdir -p "$DOM0_UPDATES_DIR/packages"

set -e

if [ "$GUI" = 1 ]; then
    ( echo "1"
    # shellcheck disable=SC2086
    $YUM_COMMAND $OPTS "${PKGLIST[@]}"
    echo 100 ) | zenity --progress --pulsate --auto-close --auto-kill \
         --text="Downloading updates for Dom0, please wait..." --title="Qubes Dom0 updates"
else
    # shellcheck disable=SC2086
    $YUM_COMMAND $OPTS "${PKGLIST[@]}"
fi

find "$DOM0_UPDATES_DIR/var/cache" -name '*.rpm' -print0 |\
    xargs -0 -r ln -f -t  "$DOM0_UPDATES_DIR/packages/"  || : 

if ls "$DOM0_UPDATES_DIR"/packages/*.rpm > /dev/null 2>&1; then
    cmd="/usr/lib/qubes/qrexec-client-vm dom0 qubes.ReceiveUpdates /usr/lib/qubes/qfile-agent"
    qrexec_exit_code=0
    $cmd "$DOM0_UPDATES_DIR"/packages/*.rpm || { qrexec_exit_code=$? ; true; };
    if [ ! "$qrexec_exit_code" = "0" ]; then
        echo "'$cmd $DOM0_UPDATES_DIR/packages/*.rpm' failed with exit code ${qrexec_exit_code}!" >&2
        exit "$qrexec_exit_code"
    fi
else
    echo "No packages downloaded"
fi

ghost avatar Feb 12 '20 23:02 ghost

It clearly aborts at that line, while now it should continue to the one below... (the error message about /var/lib/qubes/dom0-updates/var/cache is fine here, || : should just make it not fatal but not hidden). Just for test, comment out both lines (prepend with #).

marmarek avatar Feb 12 '20 23:02 marmarek

@marmarek here you are

dom0

~ - sudo bash -x qubes-dom0-update mc
++ qubes-prefs --force-root updatevm
+ UPDATEVM=sys-whonix
+ UPDATES_STAT_FILE=/var/lib/qubes/updates/dom0-updates-available
+ '[' -z sys-whonix ']'
+ '[' mc = --help ']'
+ PKGS=()
+ YUM_OPTS=()
+ GUI=
+ CHECK_ONLY=
+ ALL_OPTS=("${@}")
+ YUM_ACTION=
+ QVMRUN_OPTS=
+ CLEAN=
+ TEMPLATE=
+ TEMPLATE_BACKUP=
+ '[' 1 -gt 0 ']'
+ case "$1" in
+ PKGS+=("${1}")
+ '[' -z '' ']'
+ YUM_ACTION=install
+ shift
+ '[' 0 -gt 0 ']'
+ '[' install == reinstall ']'
+ '[' install == upgrade ']'
+ '[' install == upgrade-to ']'
+ '[' install == downgrade ']'
+ '[' install == search ']'
+ '[' install == info ']'
+ TEMPLATE_EXCLUDE_OPTS=("--exclude=$(rpm -qa --qf '%{NAME},' qubes-template-\*|head -c -1)")
++ rpm -qa --qf '%{NAME},' 'qubes-template-*'
++ head -c -1
+ YUM_OPTS=("${TEMPLATE_EXCLUDE_OPTS[@]}" "${YUM_OPTS[@]}")
+ ALL_OPTS=("${TEMPLATE_EXCLUDE_OPTS[@]}" "${ALL_OPTS[@]}")
++ id -ur
+ ID=0
+ '[' 0 '!=' 0 -a -z '' -a -z '' ']'
+ '[' '' == 1 -a 1 -ne 0 ']'
+ '[' '' == 1 ']'
+ '[' '' '!=' 1 ']'
+ QVMRUN_OPTS=--nogui
+ '[' '' == 1 ']'
+ '[' -n '' ']'
+ rm -f /var/lib/qubes/updates/errors
+ echo 'Using sys-whonix as UpdateVM to download updates for Dom0; this may take some time...'
Using sys-whonix as UpdateVM to download updates for Dom0; this may take some time...
+ qvm-run --nogui -q -u root sys-whonix 'mkdir -m 775 -p /var/lib/qubes/dom0-updates/'
+ qvm-run --nogui -q -u root sys-whonix 'chown user:user /var/lib/qubes/dom0-updates/'
+ qvm-run --nogui -q sys-whonix 'rm -rf /var/lib/qubes/dom0-updates/etc'
+ qvm-run --nogui -q --pass-io sys-whonix 'LC_MESSAGES=C tar x -C /var/lib/qubes/dom0-updates 2>&1 | grep -v -E "s in the future"'
+ tar c /var/lib/rpm /etc/yum.repos.d /etc/yum.conf
++ escape_args --exclude=qubes-template-whonix-gw-15,qubes-template-archlinux,qubes-template-fedora-30,qubes-template-buster-minimal,qubes-template-debian-10,qubes-template-whonix-ws-15 mc
++ local eargs=
++ for arg in '"$@"'
++ printf -v eargs '%s%q ' '' --exclude=qubes-template-whonix-gw-15,qubes-template-archlinux,qubes-template-fedora-30,qubes-template-buster-minimal,qubes-template-debian-10,qubes-template-whonix-ws-15
++ for arg in '"$@"'
++ printf -v eargs '%s%q ' '--exclude=qubes-template-whonix-gw-15\,qubes-template-archlinux\,qubes-template-fedora-30\,qubes-template-buster-minimal\,qubes-template-debian-10\,qubes-template-whonix-ws-15 ' mc
++ echo '--exclude=qubes-template-whonix-gw-15\,qubes-template-archlinux\,qubes-template-fedora-30\,qubes-template-buster-minimal\,qubes-template-debian-10\,qubes-template-whonix-ws-15 mc'
+ qvm-run --nogui --pass-io sys-whonix 'script --quiet --return --command '\''/usr/lib/qubes/qubes-download-dom0-updates.sh --doit --nogui --exclude=qubes-template-whonix-gw-15\,qubes-template-archlinux\,qubes-template-fedora-30\,qubes-template-buster-minimal\,qubes-template-debian-10\,qubes-template-whonix-ws-15 mc'\'' /dev/null'
--> Running transaction check
---> Package mc.x86_64 1:4.8.19-5.fc25 will be installed
--> Finished Dependency Resolution
mc-4.8.19-5.fc25.x86_64.rpm                                 | 1.9 MB  00:01     
+ RETCODE=0
+ '[' '' == 1 ']'
+ '[' 0 -ne 0 ']'
+ pidof -x qubes-receive-updates
+ '[' -r /var/lib/qubes/updates/errors ']'
+ '[' -z install ']'
+ '[' 1 -gt 0 ']'
+ '[' -n '' ']'
+ dnf --exclude=qubes-template-whonix-gw-15,qubes-template-archlinux,qubes-template-fedora-30,qubes-template-buster-minimal,qubes-template-debian-10,qubes-template-whonix-ws-15 install mc
Failed to synchronize cache for repo 'qubes-dom0-cached', disabling.
No package mc available.
Error: Unable to find a match.
+ RETCODE=1
+ '[' -n '' -a 1 -eq 0 ']'
+ '[' -n '' -a -n '' -a x '!=' xNone ']'

sys-whonix

user@host:~$ ls /var/lib/qubes/dom0-updates/packages/
bc-1.06.95-16.fc24.x86_64.rpm  mc-4.8.19-5.fc25.x86_64.rpm
dunst-1.1.0-4.fc24.x86_64.rpm  redshift-1.11-3.fc25.x86_64.rpm

user@host:~$ cat /usr/lib/qubes/qubes-download-dom0-updates.sh

#find "$DOM0_UPDATES_DIR/var/cache" -name '*.rpm' -print0 |\
#    xargs -0 -r ln -f -t  "$DOM0_UPDATES_DIR/packages/"  || : 

if ls "$DOM0_UPDATES_DIR"/packages/*.rpm > /dev/null 2>&1; then
    cmd="/usr/lib/qubes/qrexec-client-vm dom0 qubes.ReceiveUpdates /usr/lib/qubes/qfile-agent"
    qrexec_exit_code=0
    $cmd "$DOM0_UPDATES_DIR"/packages/*.rpm || { qrexec_exit_code=$? ; true; };
    if [ ! "$qrexec_exit_code" = "0" ]; then
        echo "'$cmd $DOM0_UPDATES_DIR/packages/*.rpm' failed with exit code ${qrexec_exit_code}!" >&2
        exit "$qrexec_exit_code"
    fi
else
    echo "No packages downloaded"
fi

ghost avatar Feb 12 '20 23:02 ghost