Revision
90095
Author
jmr@macports.org
Date
2012-02-21 08:13:17 -0800 (Tue, 21 Feb 2012)

Log Message

merge r90075, r90082-r90084, r90088 from trunk:
 check for Preferences dir writability before copying xcode plist, and make it readable afterwards

Modified Paths

Property Changed

Diff

Property changes: branches/release_2_0


Modified: svn:mergeinfo

+ /trunk:79584,79586,79590-79594,79599-79600,79649,79686,79689,79692,79750,79762,79787,79864,79943,80069,80088,80178,80220,80222,80224,80226,80229,80245,80287,80335,80443,80581,80583,80586,80779,80797-80798,80894,80928,80932,80934,80969,80971,81119,81146,81234,81361,81371,81414-81415,81454,81464,81467,81522,81557-81558,81562,81565,81567,81577,81630,81657,81830-81832,82111,82767,82921,82924,82947,83136,83149,83267,83270-83271,83391,83395,83443,84351,88045,89988,89993-89994,90000,90002,90004,90010,90020,90054,90056,90058,90075,90082-90084,90088

Property changes: branches/release_2_0/base


Modified: svn:mergeinfo

/branches/gsoc09-logging/base:51231-60371 /branches/universal-sanity/base:51872-52323 /branches/variant-descs-14482/base:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659 /trunk/base:79584,79586,79590-79594,79599-79600,79649,79686,79689,79692,79750,79762,79771-79774,79782,79787,79864,79943,80069,80088,80178,80220,80222,80224,80226,80229,80245,80287,80335,80443,80581,80583,80586,80779,80797-80798,80894,80928,80932,80934,80969,80971,81005,81119,81146,81171,81234,81269,81361,81371,81414-81415,81454,81464,81467,81475,81522,81556-81558,81562,81565,81567,81577,81630,81657,81830-81832,82111,82135,82767,82921,82924,82947,83136,83149,83267,83270-83271,83391,83395,83443,83471,83537,84351,88045,88179,88185,89988,89993-89994,90000,90002,90004,90010,90020,90032,90054,90056,90058 /users/perry/base-bugs_and_notes:45682-46060 /users/perry/base-select:44044-44692 + /branches/gsoc08-privileges/base:37343-46937 /branches/gsoc09-logging/base:51231-60371 /branches/universal-sanity/base:51872-52323 /branches/variant-descs-14482/base:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659 /trunk/base:79584,79586,79590-79594,79599-79600,79649,79686,79689,79692,79750,79762,79771-79774,79782,79787,79864,79943,80069,80088,80178,80220,80222,80224,80226,80229,80245,80287,80335,80443,80581,80583,80586,80779,80797-80798,80894,80928,80932,80934,80969,80971,81005,81119,81146,81171,81234,81269,81361,81371,81414-81415,81454,81464,81467,81475,81522,81556-81558,81562,81565,81567,81577,81630,81657,81830-81832,82111,82135,82767,82921,82924,82947,83136,83149,83267,83270-83271,83391,83395,83443,83471,83537,84351,88045,88179,88185,89988,89993-89994,90000,90002,90004,90010,90020,90032,90054,90056,90058,90075,90082-90084,90088 /users/perry/base-bugs_and_notes:45682-46060 /users/perry/base-select:44044-44692

Modified: branches/release_2_0/base/src/macports1.0/macports.tcl (90094 => 90095)


--- branches/release_2_0/base/src/macports1.0/macports.tcl	2012-02-21 16:10:19 UTC (rev 90094)
+++ branches/release_2_0/base/src/macports1.0/macports.tcl	2012-02-21 16:13:17 UTC (rev 90095)
@@ -1006,12 +1006,19 @@
     set user_plist "${user_home}/Library/Preferences/com.apple.dt.Xcode.plist"
     set target_dir "${target_homedir}/Library/Preferences"
     if {[file isfile $user_plist]} {
-        if {[catch {
-                file mkdir "${target_homedir}/Library/Preferences"
-                file copy -force $user_plist $target_dir
-                if {[getuid] == 0} {
-                    file attributes "${target_dir}/com.apple.dt.Xcode.plist" -owner $macportsuser
-                }
+        if {![file isdirectory "${target_dir}"]} {
+            if {[catch {file mkdir "${target_dir}"} result]} {
+                ui_warn "Failed to create Library/Preferences in temporary home directory: $result"
+                return
+            }
+        }
+        ui_debug "Copying $user_plist to temporary home directory ${target_dir}"
+        if {[file writable ${target_dir}] && [catch {
+            file copy -force $user_plist $target_dir
+            if {[getuid] == 0} {
+                file attributes "${target_dir}/com.apple.dt.Xcode.plist" -owner $macportsuser
+            }
+            file attributes "${target_dir}/com.apple.dt.Xcode.plist" -permissions 644
         } result]} {
             ui_warn "Failed to copy com.apple.dt.Xcode.plist to temporary home directory: $result"
         }