New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Changeset 83267


Ignore:
Timestamp:
08/29/11 05:05:57 (4 years ago)
Author:
jmr@…
Message:

unset TMP/TMPDIR in env if it's not writable or doesn't look like it will be writable by macportsuser (#30749)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/base/src/macports1.0/macports.tcl

    r83136 r83267  
    839839    } 
    840840 
     841    # make tools we run operate in UTF-8 mode 
     842    set env(LANG) en_US.UTF-8 
     843 
    841844    # ENV cleanup. 
    842845    set keepenvkeys { 
     
    845848        DYLD_LIBRARY_PATH DYLD_INSERT_LIBRARIES 
    846849        HOME JAVA_HOME MASTER_SITE_LOCAL ARCHIVE_SITE_LOCAL 
    847         PATCH_SITE_LOCAL PATH PORTSRC RSYNC_PROXY TMP TMPDIR 
    848         USER GROUP 
     850        PATCH_SITE_LOCAL PATH PORTSRC RSYNC_PROXY 
     851        USER GROUP LANG 
    849852        http_proxy HTTPS_PROXY FTP_PROXY ALL_PROXY NO_PROXY 
    850853        COLUMNS LINES 
     
    852855    if {[info exists extra_env]} { 
    853856        set keepenvkeys [concat ${keepenvkeys} ${extra_env}] 
    854     } 
    855  
    856     set env_names [array names env] 
    857     foreach envkey $env_names { 
    858         if {[lsearch -exact $keepenvkeys $envkey] == -1} { 
    859             unset env($envkey) 
    860         } 
    861     } 
    862  
    863     # make tools we run operate in UTF-8 mode 
    864     set env(LANG) en_US.UTF-8 
    865  
    866     if {![info exists xcodeversion] || ![info exists xcodebuildcmd]} { 
    867         # We'll resolve these later (if needed) 
    868         trace add variable macports::xcodeversion read macports::setxcodeinfo 
    869         trace add variable macports::xcodebuildcmd read macports::setxcodeinfo 
    870     } 
    871  
    872     # Set the default umask 
    873     if {![info exists destroot_umask]} { 
    874         set destroot_umask 022 
    875     } 
    876  
    877     if {[info exists master_site_local] && ![info exists env(MASTER_SITE_LOCAL)]} { 
    878         set env(MASTER_SITE_LOCAL) "$master_site_local" 
    879     } 
    880     if {[info exists patch_site_local] && ![info exists env(PATCH_SITE_LOCAL)]} { 
    881         set env(PATCH_SITE_LOCAL) "$patch_site_local" 
    882     } 
    883     if {[info exists archive_site_local] && ![info exists env(ARCHIVE_SITE_LOCAL)]} { 
    884         set env(ARCHIVE_SITE_LOCAL) "$archive_site_local" 
    885857    } 
    886858 
     
    899871    } 
    900872 
     873    # don't keep unusable TMPDIR/TMP values 
     874    foreach var {TMP TMPDIR} { 
     875        if {[info exists env($var)] && [file writable $env($var)] &&  
     876            ([getuid] != 0 || $macportsuser == "root" || 
     877             [file attributes $env($var) -owner] == $macportsuser)} { 
     878            lappend keepenvkeys $var 
     879        } 
     880    } 
     881 
     882    set env_names [array names env] 
     883    foreach envkey $env_names { 
     884        if {[lsearch -exact $keepenvkeys $envkey] == -1} { 
     885            unset env($envkey) 
     886        } 
     887    } 
     888 
    901889    # unset environment an extra time, to work around bugs in Leopard Tcl 
    902890    if {$macosx_version == "10.5"} { 
     
    906894            } 
    907895        } 
     896    } 
     897 
     898    if {![info exists xcodeversion] || ![info exists xcodebuildcmd]} { 
     899        # We'll resolve these later (if needed) 
     900        trace add variable macports::xcodeversion read macports::setxcodeinfo 
     901        trace add variable macports::xcodebuildcmd read macports::setxcodeinfo 
     902    } 
     903 
     904    # Set the default umask 
     905    if {![info exists destroot_umask]} { 
     906        set destroot_umask 022 
     907    } 
     908 
     909    if {[info exists master_site_local] && ![info exists env(MASTER_SITE_LOCAL)]} { 
     910        set env(MASTER_SITE_LOCAL) "$master_site_local" 
     911    } 
     912    if {[info exists patch_site_local] && ![info exists env(PATCH_SITE_LOCAL)]} { 
     913        set env(PATCH_SITE_LOCAL) "$patch_site_local" 
     914    } 
     915    if {[info exists archive_site_local] && ![info exists env(ARCHIVE_SITE_LOCAL)]} { 
     916        set env(ARCHIVE_SITE_LOCAL) "$archive_site_local" 
    908917    } 
    909918 
Note: See TracChangeset for help on using the changeset viewer.