From 4baeadb9a2e3b65f91cd33a415a8e9d4fd8ff9dc Mon Sep 17 00:00:00 2001
From: Adrian Holovaty <adrian@holovaty.com>
Date: Fri, 27 Oct 2006 02:19:32 +0000
Subject: [PATCH] Fixed #2956 -- Made 'django-admin.py startproject' tolerant
 of filesystem arrangements that cannot accept file-permission changes. Thanks
 for the patch, masonsimon+django@gmail.com

git-svn-id: http://code.djangoproject.com/svn/django/trunk@3941 bcc190cf-cafb-0310-a4f2-bffc1f526a37
---
 AUTHORS                   | 1 +
 django/core/management.py | 6 +++++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/AUTHORS b/AUTHORS
index 83eaa63927..923d6e6008 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -112,6 +112,7 @@ answer newbie questions, and generally made Django that much better:
     limodou
     mattmcc
     Martin Maney <http://www.chipy.org/Martin_Maney>
+    masonsimon+django@gmail.com
     Manuzhai
     Petar Marić
     mark@junklight.com
diff --git a/django/core/management.py b/django/core/management.py
index 75b79f1565..5b34403dd4 100644
--- a/django/core/management.py
+++ b/django/core/management.py
@@ -32,6 +32,7 @@ class dummy: pass
 style = dummy()
 style.ERROR = termcolors.make_style(fg='red', opts=('bold',))
 style.ERROR_OUTPUT = termcolors.make_style(fg='red', opts=('bold',))
+style.NOTICE = termcolors.make_style(fg='red')
 style.SQL_FIELD = termcolors.make_style(fg='green', opts=('bold',))
 style.SQL_COLTYPE = termcolors.make_style(fg='green')
 style.SQL_KEYWORD = termcolors.make_style(fg='yellow')
@@ -696,7 +697,10 @@ def _start_helper(app_or_project, name, directory, other_name=''):
             fp_new.write(fp_old.read().replace('{{ %s_name }}' % app_or_project, name).replace('{{ %s_name }}' % other, other_name))
             fp_old.close()
             fp_new.close()
-            shutil.copymode(path_old, path_new)
+            try:
+                shutil.copymode(path_old, path_new)
+            except OSError:
+                sys.stderr.write(style.NOTICE("Notice: Couldn't set permission bits on %s. You're probably using an uncommon filesystem setup. No problem.\n" % path_new))
 
 def startproject(project_name, directory):
     "Creates a Django project for the given project_name in the given directory."