X11 and WinKey [was Re: Updating to xorg-x11 packages?]

Mike A. Harris mharris at redhat.com
Wed Mar 24 07:54:23 UTC 2004


On Tue, 23 Mar 2004, Warren Togami wrote:

>#1 need not be limited to anaconda.  It could also be a super special 
>case that apt, yum and up2date handle because it is extremely rare but 
>important.

That is true, however the anaconda case is the only one I
consider ultra important.  Packages often break in ways during
the development cycle that preclude release-to-beta and/or
beta-to-beta, and/or beta-to-release upgrades from working, thus 
requiring one time growing pains.  While we try to avoid them 
whenever we can sanely do so, it is not always _easily_ and 
_cleanly_ possible.  Different people will debate what "easily" 
and "cleanly" mean likely, but I have my own definition.

Before we get into any big long winded and highly opinionated 
discussions of the topic however, note that the xfs and 
ld.so.conf problems /are/ now solved in xorg-x11 CVS by using 
trigger scripts based on the triggers that Barry Nathan posted in 
bugzilla.  So, all debating aside, the trigger solution has been 
chosen and implemented, and will appear in the .8 package build.

;o)

>#2 triggers MAY not be a bad thing if the implemntation is good, and 
>unlikely to introduce any security related problem.  What specific 
>concerns do you have about triggers in this case?

I would never disagree with that, however the whole topic of 
debate centers heavily around the word you've emphasized above - 
"MAY".  Yes, a _properly_ written trigger script that has zero 
bugs in it, and just works, can be a good solution.

My main points in previous discussions about using triggers to
solve problems are that:

- Trigger scripts have at times been used by some people when 
  they were not necessary for the given problem they were trying 
  to solve.  In some of the cases I have seen, a trigger was used 
  when a "pre/post/preun/postun" script should have been used, 
  and it appeared that the person who made the change either did 
  so in a hurry without much thought, or perhaps they just 
  misunderstood triggers and rpm scripts and which should be used 
  when.  It is a rather complex topic unless you've got a lot of 
  experience writing such rpm scriptlets.

- Trigger scripts, like any other code, can easily have 
  mistakes/typos, flawed logic, or some other errors in them when 
  they're created which the author and any others who review them 
  may not notice right away.  I have done this myself a few 
  times, and I've seen various Red Hat packages as well as 3rd 
  party packages have broken trigger scripts added to them as 
  well.

I believe in the majority of cases, it was never developer
carelessness, but rather it was just the simple fact that human
error happens.  The difference with normal code, is that you can
fix normal code in the next release and be done with it.

With triggers however, if a bug occurs, it is not usually spotted
right away, and if the packages get deployed and used, the broken
trigger is sitting there and _will_ execute.  Even if you find
the problem after the fact, and fix the trigger script in a
future rpm package release, the trigger script that is already
installed on a person's system is what will be executed, not the 
new bugfixed version.

So in summary, the concerns I have about triggers, is that while 
a "good properly written bug free" trigger is a mighty fine 
solution, while I do not have numerical statistics to back this 
up - the majority of trigger scripts I've seen added to packages 
are rarely bug free the first time around, and when the bugs get 
found, depending on the extent of the damage, they're a huge pain 
to deal with, and users just keep reporting bugs again and again 
and again, long after the bug was long since fixed.

Don't take my word for it though, add triggers to all your
packages just for fun, and witness the joy first hand.  ;o)

As such, when a problem arises, which could potentially be fixed 
by a trigger, I prefer to try to find an alternate solution if it 
is at all possible, because triggers are evil, statistically 
speaking (well written triggers that got it right the first time 
miraculously notwithstanding).

;o)


-- 
Mike A. Harris       ftp://people.redhat.com/mharris
OS Systems Engineer - X.org X11 maintainer - Red Hat





More information about the fedora-devel-list mailing list