Hi, this behaviour is a bug and now it is fixed in upstream: c7fa7b2fd7205b73c833831ab9f8c311f40b2ff1 Thank you for your report. Lubos ----- Original Message ----- > From: "Viktor Shitkovskiy" <hanksmail@xxxxxxxxx> > To: rpm-list@xxxxxxxxxxxxx > Sent: Monday, April 13, 2015 9:23:39 AM > Subject: Strange behaviour of rpm command on error in %pre section of a rpm pakage > > I've got several versions of some package. The last of it has an error in > %pre section that terminates the install script: > > mypak-0.0.1-1.el6.noarch.rpm > mypak-0.0.1-2.el6.noarch.rpm > mypak-0.0.1-3.el6.noarch.rpm <-- bad package > > All of my packages have debug output in pre, post, preun and postun sections. > > I install the first package: > > rpm -ihv mypak-0.0.1-1.el6.noarch.rpm > > Output (param is the parameter passed to script sections) is: > > Preparing... ########################################### [100%] > pre: 0.0.1-1.el6 ; param = 1 > 1:mypak ########################################### [100%] > post: 0.0.1-1.el6 ; param = 1 > > Then I try to update my package and (accidentally) launch rpm command with v2 > and v3 packages at once: > > rpm -Uhv mypak-0.0.1-2.el6.noarch.rpm mypak-0.0.1-3.el6.noarch.rpm > warning: package mypak = 0.0.1-2.el6 was already added, replacing with mypak > > 0.0.1-3.el6 > Preparing... ########################################### [100%] > pre: 0.0.1-3.el6 ; param = 2 > !!!version 3 is bad!!! > error: %pre(mypak-0.0.1-3.el6.noarch) scriptlet failed, exit status 1 > error: install: %pre scriptlet failed (2), skipping mypak-0.0.1-3.el6 > preun: 0.0.1-1.el6 ; param = 0 > postun: 0.0.1-1.el6 ; param = 0 > > As you can see, my package was removed in the end. Moreover, the package is > removed even if other packages depend on it. I don't even get any warnings > about corrupted dependencies! > > If I update my packages one after another, I don't have that problem. In this > case update to the third version fails and that's all. My package of > previous version is still in place. > > So my questions are: > 1. Why do I get different behaviour when I update my package using 'rpm -Uhv > 3' and 'rpm -Uhv 2 3'? In the first case only the update fails and my > package is not removed. In the second one, the update fails and the package > **is** removed. > 2. How can my package be removed in that corrupted update transaction if > other packages depend on it? If I launch 'rpm -e mypak' it fails as it > should: > rpm -e mypak > error: Failed dependencies: > mypak is needed by (installed) mypak-dep-0.0.1-1.el6.noarch > > I use rpm 4.8.0 on Centos 6.5. > Originally I posted this question on SO: > http://stackoverflow.com/questions/29565224/strange-behaviour-of-rpm-command-on-error-in-pre-section-of-a-rpm-pakage > > _______________________________________________ > Rpm-list mailing list > Rpm-list@xxxxxxxxxxxxx > http://lists.rpm.org/mailman/listinfo/rpm-list > _______________________________________________ Rpm-list mailing list Rpm-list@xxxxxxxxxxxxx http://lists.rpm.org/mailman/listinfo/rpm-list