From 9aca761850fa82997dbcd04cb06a203b7b326ea3 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sat, 8 Aug 2009 19:24:56 +0000 Subject: Account for hardlinks when computing SIZE metadata. svn path=/main/trunk/; revision=13949 --- pym/portage/__init__.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index af908f041..321487a1c 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -5176,12 +5176,15 @@ def _post_src_install_uid_fix(mysettings): destdir = destdir.encode('utf_8', 'replace') size = 0 + counted_inodes = set() for parent, dirs, files in os.walk(destdir): for fname in chain(dirs, files): fpath = os.path.join(parent, fname) mystat = os.lstat(fpath) - if stat.S_ISREG(mystat.st_mode): + if stat.S_ISREG(mystat.st_mode) and \ + mystat.st_ino not in counted_inodes: + counted_inodes.add(mystat.st_ino) size += mystat.st_size if mystat.st_uid != portage_uid and \ mystat.st_gid != portage_gid: -- cgit v1.2.3-1-g7c22