rpm lipa

Jeffrey Johnson n3npq at me.com
Fri Jul 19 18:40:01 CEST 2013


On Jul 19, 2013, at 12:01 PM, Jeffrey Johnson wrote:

> 
> On Jul 19, 2013, at 11:32 AM, Arkadiusz Miśkiewicz wrote:
> 
>> On Friday 19 of July 2013, Jeffrey Johnson wrote:
>> 
>>> Meanwhile why not just disable the buggy scriptlet
>>> using a rpm cli option and manually erase and reinstall?
>> 
>> You need to know that's the correct way to dealing with this situation. Users 
>> think it's some kind of bug.
>> 
> 
> Busted RPM package because of lack of QA is hardly a new problem.
> 

One last note before I go back to work ...

Triggers were originally implemented to deal with buggy %preun/%postun
scripts.

The vocabulary below comes from /usr/share/doc/rpm-X.Y/triggers

So if a %preun script was "buggy" (the original flaw that led to triggers was
forgetting to test $1 to identify whether upgrade or erase was intended) like
	%preun
	if [ $1= 0 ]; then
	    # this is an erase context
        else
	    # this is an upgrade context
	fi
where the fix is/was to add to a newer upgrade package with
	%triggerun -- ...
	# the new-triggerin scriptlet executes before the buggy old-preun scriptlet

Assuming that the flaw is in a %triggerun script, same analysis applies if %triggerpostun.

A new-triggerin script executes before old-triggerun, and any-triggerun (the new
package is installed, should be in the rpmdb before old-triggerun executes) is
after old-triggerun (which won't help with the assumed old-triggerun bug, but
I note for completeness).

So you SHOULD be able to touch a file in a new-triggerin script to "fix" a missing
file flaw in some packages old-triggerun script.

I still suggest manual intervention as KISS .... and I also believe that
	Provides: notriggerun(foo) <= 1:2-3
is far easier to understand and explain than creating a file by knowing
RPM's state machine.

hth

73 de Jeff
	




More information about the pld-devel-en mailing list