[Yum-devel] [PATCH] Work around umask/permission problems, for yumdb and rpmdb-index data.

James Antill james at fedoraproject.org
Thu Apr 14 13:37:35 UTC 2011


On Wed, 2011-04-13 at 18:52 -0400, Mike Bonnet wrote:
> On 04/13/2011 05:28 PM, James Antill wrote:
> > ---
> >  yum/rpmsack.py |   60 +++++++++++++++++++++++++++++++++++++++++--------------
> >  1 files changed, 44 insertions(+), 16 deletions(-)
> > 
> > diff --git a/yum/rpmsack.py b/yum/rpmsack.py
> > index e93df20..44678b2 100644
> > --- a/yum/rpmsack.py
> > +++ b/yum/rpmsack.py
> > @@ -37,6 +37,28 @@ import constants
> >  
> >  import yum.depsolve
> >  
> > +def _open_no_umask(*args):
> > +    """ Annoying people like to set umask's for root, which screws everything
> > +        up for user readable stuff. """
> > +    oumask = os.umask(0777)
> > +    try:
> > +        ret = open(*args)
> > +    except Exception, e:
> > +        os.umask(oumask)
> > +        raise e
> 
> Why not try: finally: ?

 I've almost never used finally's, but yeh it's much nicer:

def _open_no_umask(*args):
    """ Annoying people like to set umask's for root, which screws everything
        up for user readable stuff. """
    oumask = os.umask(0777)
    try:
        ret = open(*args)
    finally:
        os.umask(oumask)

    return ret



More information about the Yum-devel mailing list