[PLUG] yum update, exclude single files?

Daniel Hedlund daniel at digitree.org
Wed Mar 2 17:53:05 UTC 2011


On Wed, Mar 2, 2011 at 07:42, Keith Lofstrom <keithl at kl-ic.com> wrote:
> In this case, /etc/X11/xorg.conf .  I am using the fglrx driver,
> which although closed source (sigh) is about 20x faster (glxgears)
> than the open source r500 driver for ATI graphics chips.
> The update package for x11 wants to update xorg.conf for me,
> and force me to use r500, bless its pointy little head.

The only pre/post install script I see that would get executed when
Xorg is upgraded via yum/rpm is in the xorg-x11-server-Xorg package.
The package includes code that could overwrite your xorg.conf file
with an older XF86Config* config file, but only if the permissions on
the xorg.conf file are messed up, specifically if it's modded 000 or
066 (an [ -r xorg.conf ] test would return false and trigger a
subsequent copy operation, see below):

$> rpm --scripts -qp
http://ftp.scientificlinux.org/linux/scientific/5x/i386/updates/fastbugs/xorg-x11-server-Xorg-1.1.1-48.76.el5_5.2.i386.rpm
warning: http://ftp.scientificlinux.org/linux/scientific/5x/i386/updates/fastbugs/xorg-x11-server-Xorg-1.1.1-48.76.el5_5.2.i386.rpm:
Header V3 DSA/SHA1 Signature, key ID 192a7d7d: NOKEY
preinstall scriptlet (using /bin/sh):
{
  # Install/Upgrade section
  pushd /etc/X11
  # Migrate any pre-existing XFree86 4.x config file to xorg.conf if it
  # doesn't already exist, and rename any remaining XFree86 4.x config files
  # to have .obsoleted file extensions, to help avoid end user confusion for
  # people unaware of the config file name change between server
  # implementations, and avoid bug reports.  If this turns out to confuse
  # users, I can modify it to add comments to the top of the obsoleted files
  # to point users to xorg.conf   <mharris at redhat.com>
  for configfile in XF86Config XF86Config-4 ; do
    if [ -r $configfile ]; then
      if [ -r xorg.conf ]; then
        mv -f $configfile $configfile.obsoleted
    else
        mv -f $configfile xorg.conf
      fi
    fi
  done
  # Massage pre-existing config files to work properly with X.org X11
  # - Remove xie and pex5 modules from the config files, as they are long
  #   since obsolete, and not provided since XFree86 4.2.0
  # - Remove Option "XkbRules" "xfree86" to help work around upgrade problems
  #   such as https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=120858
#  for configfile in xorg.conf ; do
    configfile="xorg.conf"
    OLD_MODULEPATH="/usr/X11R6/lib/modules"
    if [ -r $configfile -a -w $configfile ]; then
      # Remove module load lines from the config file for obsolete modules
      perl -p -i -e 's/^.*Load.*"(pex5|xie|xtt).*\n$"//gi' $configfile
      # Change the keyboard configuration from the deprecated "keyboard"
      # driver, to the newer "kbd" driver.
      perl -p -i -e 's/^\s*Driver(.*)"keyboard"/Driver\1"kbd"/gi' $configfile
      # Remove any Options "XkbRules" lines that may be present
      perl -p -i -e
's/^.*Option.*"XkbRules".*"(xfree86|xorg)".*\n$//gi' $configfile
      # Remove RgbPath specifications from the config file as they are
      # unnecessary, and break upgrades from monolithic to modular X.
      # Fixes bugs (#173036, 173435, 173453, 173428)
      perl -p -i -e 's#^\s*RgbPath.*$##gi' $configfile
      # If ModulePath is specified in the config file, check for the old
      # monolithic module path, and replace it with the new one.
      perl -p -i -e "m,^\s*ModulePath.*\"${OLD_MODULEPATH}\".*$,;
s,${OLD_MODULEPATH},/usr/lib/xorg/modules," $configfile
    fi
#  done
  popd
} &> /dev/null || :


Cheers,

Daniel Hedlund
daniel at digitree.org



More information about the PLUG mailing list