In RHL72, a new feature was added to Upgrade option. If one has 'XFree86' package installed, and not either gmc, nautilus or kdebase, anaconda will automatically install gnome with a message: Upgrade: System has X but no desktop -- Installing GNOME This adds a *huge* load of gnome cruft to the system. There are perfectly valid reasons for running with XFree86 but without a 'desktop', e.g.: 1) have XFree86, XFree86-libs, XFree86-xfs, Mesa, Xaw3d installed; with these, you can install & run most simple X programs over X11 forwarding. These are sufficiently minimal so they can be installed on some servers too. The above list could be shortened a bit too. 2) above plus some very simple window manager like fvwm2 or twm -- no stuff like gmc or nautilus required! ==> Upgrades MUST NOT _silently_ add (about all) Gnome packages with these conditions. Prompting the user would be ok I guess.
This is because otherwise, upgrading from a release which didn't use GNOME to the current release can leave you without any desktop system. Matt?
diff -u -r1.63.10.2 upgrade.py --- upgrade.py 27 Feb 2002 00:16:13 -0000 1.63.10.2 +++ upgrade.py 12 Mar 2002 22:05:36 -0000 @@ -20,6 +20,7 @@ import rpm import sys import os.path +import string from flags import flags from fsset import * from partitioning import * @@ -420,9 +421,23 @@ except rpm.error: continue + currentVersion = 0.0 + try: + recs = db.findbyprovides('redhat-release') + except rpm.error: + recs = None + for rec in recs: + try: + vers = string.atof(db[rec][rpm.RPMTAG_VERSION]) + except ValueError: + vers = 0.0 + if vers > currentVersion: + currentVersion = vers + # if we have X but not gmc, we need to turn on GNOME. We only # want to turn on packages we don't have installed already, though. - if hasX and not hasFileManager: + # Only do this mess if user is upgrading from version older than 6.0. + if hasX and not hasFileManager and currentVersion < 6.0: text = "Upgrade: System has X but no desktop -- Installing GNOME" id.upgradeDeps ="%s%s\n" % (id.upgradeDeps, text) log(text)
Changed to 'CLOSED' state since 'RESOLVED' has been deprecated.