From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1QSMop-0006Zn-My for garchives@archives.gentoo.org; Fri, 03 Jun 2011 05:21:12 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 4E9041C004; Fri, 3 Jun 2011 05:21:03 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 14D691C004 for ; Fri, 3 Jun 2011 05:21:02 +0000 (UTC) Received: from pelican.gentoo.org (unknown [66.219.59.40]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 87F0B1B4029 for ; Fri, 3 Jun 2011 05:21:02 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id D8B8780506 for ; Fri, 3 Jun 2011 05:21:01 +0000 (UTC) From: "Zac Medico" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Zac Medico" Message-ID: <06e52616eb461c260ef8a006578babb04a4b5848.zmedico@gentoo> Subject: [gentoo-commits] proj/portage:master commit in: pym/portage/util/, pym/_emerge/ X-VCS-Repository: proj/portage X-VCS-Files: pym/_emerge/depgraph.py pym/portage/util/__init__.py X-VCS-Directories: pym/portage/util/ pym/_emerge/ X-VCS-Committer: zmedico X-VCS-Committer-Name: Zac Medico X-VCS-Revision: 06e52616eb461c260ef8a006578babb04a4b5848 Date: Fri, 3 Jun 2011 05:21:01 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: X-Archives-Hash: 627c0b86134c7eca92ee820efc844416 commit: 06e52616eb461c260ef8a006578babb04a4b5848 Author: Zac Medico gentoo org> AuthorDate: Fri Jun 3 05:20:51 2011 +0000 Commit: Zac Medico gentoo org> CommitDate: Fri Jun 3 05:20:51 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/portage.git;a= =3Dcommit;h=3D06e52616 autounmask-write: force configpro if non-existent We want to force new_protect_filename to ensure that the user will see all our changes via etc-update, even if file_to_write_to doesn't exist yet. --- pym/_emerge/depgraph.py | 7 ++++++- pym/portage/util/__init__.py | 9 ++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index b71d364..b60fd19 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -5846,7 +5846,12 @@ class depgraph(object): if file_contents is not None: file_contents.extend(changes) if protect_obj[root].isprotected(file_to_write_to): - file_to_write_to =3D new_protect_filename(file_to_write_to) + # We want to force new_protect_filename to ensure + # that the user will see all our changes via + # etc-update, even if file_to_write_to doesn't + # exist yet, so we specify force=3DTrue. + file_to_write_to =3D new_protect_filename(file_to_write_to, + force=3DTrue) try: write_atomic(file_to_write_to, "".join(file_contents)) except PortageException: diff --git a/pym/portage/util/__init__.py b/pym/portage/util/__init__.py index 94e4451..138553a 100644 --- a/pym/portage/util/__init__.py +++ b/pym/portage/util/__init__.py @@ -1473,9 +1473,11 @@ class ConfigProtect(object): masked =3D len(pmpath) return protected > masked =20 -def new_protect_filename(mydest, newmd5=3DNone): +def new_protect_filename(mydest, newmd5=3DNone, force=3DFalse): """Resolves a config-protect filename for merging, optionally - using the last filename if the md5 matches. + using the last filename if the md5 matches. If force is True, + then a new filename will be generated even if mydest does not + exist yet. (dest,md5) =3D=3D> 'string' --- path_to_target_filename (dest) =3D=3D> ('next', 'highest') --- next_target and most-recent_= target """ @@ -1489,7 +1491,8 @@ def new_protect_filename(mydest, newmd5=3DNone): prot_num =3D -1 last_pfile =3D "" =20 - if not os.path.exists(mydest): + if not force and \ + not os.path.exists(mydest): return mydest =20 real_filename =3D os.path.basename(mydest)