summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/ebuild-helpers/prepinfo3
-rw-r--r--pym/_emerge/main.py12
2 files changed, 10 insertions, 5 deletions
diff --git a/bin/ebuild-helpers/prepinfo b/bin/ebuild-helpers/prepinfo
index fa37e5e64..cbbba3ed0 100755
--- a/bin/ebuild-helpers/prepinfo
+++ b/bin/ebuild-helpers/prepinfo
@@ -24,6 +24,9 @@ if [[ ! -d ${D}${infodir} ]] ; then
fi
find "${D}${infodir}" -type d -print0 | while read -d $'\0' x ; do
+ for f in "${x}"/.keepinfodir*; do
+ [[ -e ${f} ]] && continue 2
+ done
rm -f "${x}"/dir{,.info}{,.gz,.bz2}
done
diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py
index 4ca9283dd..a5d5bf8ca 100644
--- a/pym/_emerge/main.py
+++ b/pym/_emerge/main.py
@@ -107,11 +107,13 @@ def chk_updated_info_files(root, infodirs, prev_mtimes, retval):
if z=='':
continue
inforoot=normpath(root+z)
- if os.path.isdir(inforoot):
- infomtime = os.stat(inforoot)[stat.ST_MTIME]
- if inforoot not in prev_mtimes or \
- prev_mtimes[inforoot] != infomtime:
- regen_infodirs.append(inforoot)
+ if os.path.isdir(inforoot) and \
+ not [x for x in os.listdir(inforoot) \
+ if x.startswith('.keepinfodir')]:
+ infomtime = os.stat(inforoot)[stat.ST_MTIME]
+ if inforoot not in prev_mtimes or \
+ prev_mtimes[inforoot] != infomtime:
+ regen_infodirs.append(inforoot)
if not regen_infodirs:
portage.writemsg_stdout("\n")