dom0-updates: use yum-deprecated instead of dnf in all calls
Fix for d44c8ac "dom0-updates: prefer yum-deprecated over dnf"
Because of slightly different options and config syntax, it needs to be
used in call calls, not only the one with --downloaddir option.
QubesOS/qubes-issues#1282
			
			
This commit is contained in:
		
							parent
							
								
									074309e6a3
								
							
						
					
					
						commit
						85793fa31f
					
				| @ -49,6 +49,12 @@ if [ -z "$YUM_ACTION" ]; then | |||||||
|     YUM_ACTION=upgrade |     YUM_ACTION=upgrade | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
|  | YUM="yum" | ||||||
|  | # prefer yum-deprecated over dnf, because of still missing features in dnf (at least --downloaddir) | ||||||
|  | if type dnf >/dev/null 2>&1 && type yum-deprecated >/dev/null 2>&1; then | ||||||
|  |     YUM="yum-deprecated" | ||||||
|  | fi | ||||||
|  | 
 | ||||||
| if ! [ -d "$DOM0_UPDATES_DIR" ]; then | if ! [ -d "$DOM0_UPDATES_DIR" ]; then | ||||||
|     echo "Dom0 updates dir does not exists: $DOM0_UPDATES_DIR" >&2 |     echo "Dom0 updates dir does not exists: $DOM0_UPDATES_DIR" >&2 | ||||||
|     exit 1 |     exit 1 | ||||||
| @ -68,19 +74,25 @@ rm -f $DOM0_UPDATES_DIR/var/lib/rpm/__* | |||||||
| rpm --root=$DOM0_UPDATES_DIR --rebuilddb | rpm --root=$DOM0_UPDATES_DIR --rebuilddb | ||||||
| 
 | 
 | ||||||
| if [ "$CLEAN" = "1" ]; then | if [ "$CLEAN" = "1" ]; then | ||||||
|     yum $OPTS clean all |     $YUM $OPTS clean all | ||||||
|     rm -f $DOM0_UPDATES_DIR/packages/* |     rm -f $DOM0_UPDATES_DIR/packages/* | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| if [ "x$PKGLIST" = "x" ]; then | if [ "x$PKGLIST" = "x" ]; then | ||||||
|     echo "Checking for dom0 updates..." >&2 |     echo "Checking for dom0 updates..." >&2 | ||||||
|     UPDATES_FULL=`yum $OPTS check-update -q` |     UPDATES_FULL=`$YUM $OPTS check-update -q` | ||||||
|     if [ $? -eq 1 ]; then |     check_update_retcode=$? | ||||||
|  |     if [ $check_update_retcode -eq 1 ]; then | ||||||
|         # Exit here if yum have reported an error. Exit code 100 isn't an |         # 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 |         # error, it's "updates available" info, so check specifically for exit code 1 | ||||||
|         exit 1 |         exit 1 | ||||||
|     fi |     fi | ||||||
|     UPDATES=`echo "$UPDATES_FULL" | cut -f 1 -d ' ' | grep -v "^Obsoleting"` |     UPDATES=`echo "$UPDATES_FULL" | cut -f 1 -d ' ' | grep -v "^Obsoleting"` | ||||||
|  |     if [ -z "$UPDATES" -a $check_update_retcode -eq 100 ]; then | ||||||
|  |         # save not empty string for below condition (-z "$UPDATES"), but blank | ||||||
|  |         # to not confuse the user wwith magic strings in messages | ||||||
|  |         UPDATES=" " | ||||||
|  |     fi | ||||||
| else | else | ||||||
|     PKGS_FROM_CMDLINE=1 |     PKGS_FROM_CMDLINE=1 | ||||||
| fi | fi | ||||||
| @ -103,13 +115,10 @@ if [ "$DOIT" != "1" -a "$PKGS_FROM_CMDLINE" != "1" ]; then | |||||||
|       --text="There are updates for dom0 available, do you want to download them now?" || exit 0 |       --text="There are updates for dom0 available, do you want to download them now?" || exit 0 | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| YUM_COMMAND="fakeroot yum $YUM_ACTION -y --downloadonly --downloaddir=$DOM0_UPDATES_DIR/packages" | YUM_COMMAND="fakeroot $YUM $YUM_ACTION -y --downloadonly --downloaddir=$DOM0_UPDATES_DIR/packages" | ||||||
| # prefer yum-deprecated over dnf, because of still missing features in dnf (at least --downloaddir) |  | ||||||
| if type dnf >/dev/null 2>&1 && type yum-deprecated >/dev/null 2>&1; then |  | ||||||
|     YUM_COMMAND="fakeroot yum-deprecated $YUM_ACTION -y --downloadonly --downloaddir=$DOM0_UPDATES_DIR/packages" |  | ||||||
| # check for --downloadonly option - if not supported (Debian), fallback to | # check for --downloadonly option - if not supported (Debian), fallback to | ||||||
| # yumdownloader | # yumdownloader | ||||||
| elif ! yum --help | grep -q downloadonly; then | if ! $YUM --help | grep -q downloadonly; then | ||||||
|     if [ "$YUM_ACTION" != "install" -a "$YUM_ACTION" != "upgrade" ]; then |     if [ "$YUM_ACTION" != "install" -a "$YUM_ACTION" != "upgrade" ]; then | ||||||
|         echo "ERROR: yum version installed in VM `hostname` does not suppport --downloadonly option" >&2 |         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 |         echo "ERROR: only 'install' and 'upgrade' actions supported ($YUM_ACTION not)" >&2 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Marek Marczykowski-Górecki
						Marek Marczykowski-Górecki