From e88c73abd34c44e6b7ca897dfa2d1fc6be320f1f Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Wed, 1 Sep 2010 08:42:15 -0700 Subject: Make ensure_dirs() use os.path.isdir() to verify that the directory exists when EISDIR is raised, since this is abnormal behavior. --- pym/portage/util/__init__.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pym/portage/util/__init__.py b/pym/portage/util/__init__.py index b11222d00..aa37e8c3c 100644 --- a/pym/portage/util/__init__.py +++ b/pym/portage/util/__init__.py @@ -1054,13 +1054,14 @@ def ensure_dirs(dir_path, **kwargs): created_dir = True except OSError as oe: func_call = "makedirs('%s')" % dir_path - if oe.errno in (errno.EEXIST, errno.EISDIR): - # Bug 187518 - sometimes mkdir raises EISDIR on FreeBSD + if oe.errno in (errno.EEXIST,): pass else: if os.path.isdir(dir_path): # NOTE: DragonFly raises EPERM for makedir('/') # and that is supposed to be ignored here. + # Also, sometimes mkdir raises EISDIR on FreeBSD + # and we want to ignore that too (bug #187518). pass elif oe.errno == errno.EPERM: raise OperationNotPermitted(func_call) -- cgit v1.2.3-1-g7c22