From 3c2288bfbd4b81f40e33b3da340b2e3fb5c0230b Mon Sep 17 00:00:00 2001 From: Fabian Groffen Date: Fri, 29 Jan 2010 18:02:04 +0000 Subject: [PATCH] Merged from trunk -r15214:15218 | 15216 | Move the DOM unlink call to a finally block. | | zmedico | | | 15217 | Bug #300378 - Don't export FILESDIR to the 'depend' phase. | | zmedico | | | 15218 | In portage.spawn(), apply group write permission to the log | | zmedico | file. | svn path=/main/branches/prefix/; revision=15219 --- pym/portage/__init__.py | 5 +++++ pym/repoman/utilities.py | 38 ++++++++++++++++++++------------------ 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index 3c989d614..1638f5e99 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -3797,6 +3797,9 @@ class config(object): if eapi not in ("0", "1", "2", "3", "3_pre2"): mydict.pop("AA", None) + if phase == 'depend': + mydict.pop('FILESDIR', None) + return mydict def thirdpartymirrors(self): @@ -4171,6 +4174,8 @@ def spawn(mystring, mysettings, debug=0, free=0, droppriv=0, sesandbox=0, fakero if logfile: log_file = open(_unicode_encode(logfile), mode='ab') + apply_secpass_permissions(logfile, + uid=portage_uid, gid=portage_gid, mode=0o664) stdout_file = os.fdopen(os.dup(fd_pipes_orig[1]), 'wb') master_file = os.fdopen(master_fd, 'rb') iwtd = [master_file] diff --git a/pym/repoman/utilities.py b/pym/repoman/utilities.py index 5ce386737..8a2c0f0c6 100644 --- a/pym/repoman/utilities.py +++ b/pym/repoman/utilities.py @@ -124,28 +124,30 @@ def parse_metadata_use(mylines, uselist=None): raise exception.ParseError("metadata.xml: %s" % (e,)) try: - usetag = metadatadom.getElementsByTagName("use") - if not usetag: + + try: + usetag = metadatadom.getElementsByTagName("use") + if not usetag: + return uselist + except NotFoundErr: return uselist - except NotFoundErr: - return uselist - try: - flags = usetag[0].getElementsByTagName("flag") - except NotFoundErr: - raise exception.ParseError("metadata.xml: " + \ - "Malformed input: missing 'flag' tag(s)") - - for flag in flags: - pkg_flag = flag.getAttribute("name") - if not pkg_flag: + try: + flags = usetag[0].getElementsByTagName("flag") + except NotFoundErr: raise exception.ParseError("metadata.xml: " + \ - "Malformed input: missing 'name' attribute for 'flag' tag") - uselist.append(pkg_flag) - - metadatadom.unlink() - return uselist + "Malformed input: missing 'flag' tag(s)") + + for flag in flags: + pkg_flag = flag.getAttribute("name") + if not pkg_flag: + raise exception.ParseError("metadata.xml: " + \ + "Malformed input: missing 'name' attribute for 'flag' tag") + uselist.append(pkg_flag) + return uselist + finally: + metadatadom.unlink() def FindPackagesToScan(settings, startdir, reposplit): """ Try to find packages that need to be scanned -- 2.26.2