diff options
author | Zac Medico <zmedico@gentoo.org> | 2011-06-02 22:20:51 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2011-06-02 22:20:51 -0700 |
commit | 06e52616eb461c260ef8a006578babb04a4b5848 (patch) | |
tree | ea2c70242d27cb859bb8ff7b1989e62ae9e315d5 | |
parent | 336f02148b0a90e1933d7ca68a32f3bd5e9433d6 (diff) | |
download | portage-06e52616eb461c260ef8a006578babb04a4b5848.tar.gz portage-06e52616eb461c260ef8a006578babb04a4b5848.tar.bz2 portage-06e52616eb461c260ef8a006578babb04a4b5848.zip |
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.
-rw-r--r-- | pym/_emerge/depgraph.py | 7 | ||||
-rw-r--r-- | 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 b71d3648d..b60fd19fb 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 = 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=True. + file_to_write_to = new_protect_filename(file_to_write_to, + force=True) 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 94e4451ad..138553a16 100644 --- a/pym/portage/util/__init__.py +++ b/pym/portage/util/__init__.py @@ -1473,9 +1473,11 @@ class ConfigProtect(object): masked = len(pmpath) return protected > masked -def new_protect_filename(mydest, newmd5=None): +def new_protect_filename(mydest, newmd5=None, force=False): """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) ==> 'string' --- path_to_target_filename (dest) ==> ('next', 'highest') --- next_target and most-recent_target """ @@ -1489,7 +1491,8 @@ def new_protect_filename(mydest, newmd5=None): prot_num = -1 last_pfile = "" - if not os.path.exists(mydest): + if not force and \ + not os.path.exists(mydest): return mydest real_filename = os.path.basename(mydest) |