[Yum-devel] [PATCH] Fix no script output from transaction, BZ 554462

James Antill james at fedoraproject.org
Mon Jan 18 21:03:49 UTC 2010


On Mon, 2010-01-18 at 17:37 +0200, Panu Matilainen wrote:
> On Mon, 18 Jan 2010, James Antill wrote:
> 
> > ---
> > rpmUtils/transaction.py |    9 +++++++++
> > 1 files changed, 9 insertions(+), 0 deletions(-)
> >
> > diff --git a/rpmUtils/transaction.py b/rpmUtils/transaction.py
> > index 329de69..7e21fbf 100644
> > --- a/rpmUtils/transaction.py
> > +++ b/rpmUtils/transaction.py
> > @@ -48,6 +48,15 @@ class TransactionWrapper:
> >         # Automatically close the rpm transaction when the reference is lost
> >         self.close()
> >
> > +    def _wrap_scriptFd_get(self):
> > +        return self.ts.scriptFd
> 
> ts.scriptFd is a write-only attribute, the above will raise AttributeError 
> on any current rpm version if used. In rpm 4.8.0 it technically *could* 
> return an FD but it just didn't get done as there's not much use for it.

 Yeh, for some reason the _set() thing doesn't work there either. I
eventually just gave up and did the obvious but slightly more hacky
thing in a new patch.
 Has a comment now as this is the reason it broke (yeh, not me):

commit 18c55f481ad1c5edcc70afaef41414c1b8963f7f
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Thu Oct 18 09:12:08 2007 -0400

    apply patch from Christoph Thiel for suse's rpm handling scriptFd setting

diff --git a/yum/rpmtrans.py b/yum/rpmtrans.py
index a3cb203..05d7fbd 100644
--- a/yum/rpmtrans.py
+++ b/yum/rpmtrans.py
@@ -165,7 +165,7 @@ class RPMTransaction:
                     fcntl.fcntl(self._readpipe.fileno(),
                                 fcntl.F_GETFL) | os.O_NONBLOCK)
         self._writepipe = os.fdopen(w, 'w')
-        self.base.ts.ts.scriptFd = self._writepipe.fileno()
+        self.base.ts.scriptFd = self._writepipe.fileno()
         rpm.setVerbosity(rpm.RPMLOG_INFO)
         rpm.setLogFile(self._writepipe)

...which might well mean we broke something for (hopefully only old
versions of) SuSE.



More information about the Yum-devel mailing list