Changeset 30085 for trunk/base


Ignore:
Timestamp:
Oct 19, 2007, 10:43:11 AM (12 years ago)
Author:
nox@…
Message:

portdestroot.tcl: Whitespace changes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/base/src/port1.0/portdestroot.tcl

    r28796 r30085  
    6262default destroot.violate_mtree no
    6363
    64 default startupitem.name                {${portname}}
    65 default startupitem.init                ""
    66 default startupitem.start               ""
    67 default startupitem.stop                ""
    68 default startupitem.restart             ""
    69 default startupitem.requires    ""
    70 default startupitem.executable  ""
    71 default startupitem.type                {$system_options(startupitem_type)}
    72 default startupitem.pidfile             ""
    73 default startupitem.logfile             ""
    74 default startupitem.logevents   no
     64default startupitem.name        {${portname}}
     65default startupitem.init        ""
     66default startupitem.start       ""
     67default startupitem.stop        ""
     68default startupitem.restart     ""
     69default startupitem.requires    ""
     70default startupitem.executable  ""
     71default startupitem.type        {$system_options(startupitem_type)}
     72default startupitem.pidfile     ""
     73default startupitem.logfile     ""
     74default startupitem.logevents   no
    7575
    7676set_ui_prefix
    7777
    7878namespace eval destroot {
    79         # Save old umask
    80         variable oldmask
     79    # Save old umask
     80    variable oldmask
    8181}
    8282
     
    9191   
    9292    if { ${destroot.clean} == "yes" } {
    93         system "rm -Rf \"${destroot}\""
     93        system "rm -Rf \"${destroot}\""
    9494    }
    9595   
    9696    file mkdir "${destroot}"
    9797    if { ${os.platform} == "darwin" } {
    98         system "cd \"${destroot}\" && ${mtree} -e -U -f ${portresourcepath}/install/macosx.mtree"
     98        system "cd \"${destroot}\" && ${mtree} -e -U -f ${portresourcepath}/install/macosx.mtree"
    9999    }
    100100    file mkdir "${destroot}/${prefix}"
     
    109109proc destroot_finish {args} {
    110110    global UI_PREFIX destroot prefix portname startupitem.create destroot::oldmask destroot.violate_mtree
    111         global os.platform os.version
     111    global os.platform os.version
    112112
    113113    # Create startup-scripts/items
     
    121121    set exclude_phrase ""
    122122    foreach path [option destroot.keepdirs] {
    123                 if {![file isdirectory ${path}]} {
    124                         xinstall -m 0755 -d ${path}
    125                 }
    126                 if {![file exists ${path}/.turd_${portname}]} {
    127                         xinstall -c -m 0644 /dev/null ${path}/.turd_${portname}
    128                 }
    129         lappend exclude_dirs "-path \"${path}\""
     123        if {![file isdirectory ${path}]} {
     124            xinstall -m 0755 -d ${path}
     125        }
     126        if {![file exists ${path}/.turd_${portname}]} {
     127            xinstall -c -m 0644 /dev/null ${path}/.turd_${portname}
     128        }
     129        lappend exclude_dirs "-path \"${path}\""
    130130    }
    131131    if { [llength ${exclude_dirs}] > 0 } {
    132         set exclude_phrase "! \\( [join ${exclude_dirs} " -or "] \\)"
     132        set exclude_phrase "! \\( [join ${exclude_dirs} " -or "] \\)"
    133133    }
    134134    catch {system "find \"${destroot}\" -depth -type d ${exclude_phrase} -exec rmdir -- \{\} \\; 2>/dev/null"}
    135135
    136136    # Compress all manpages with gzip (instead)
    137         # but NOT on Jaguar (Darwin 6.x)
    138         if {![regexp {darwin6} "${os.platform}${os.version}"]} {
    139     set manpath "${destroot}${prefix}/share/man"
    140     if {[file isdirectory ${manpath}] && [file type ${manpath}] == "directory"} {
    141         ui_info "$UI_PREFIX [format [msgcat::mc "Compressing man pages for %s"] ${portname}]"
    142         set found 0
    143         set manlinks [list]
    144         foreach mandir [readdir "${manpath}"] {
    145             if {![regexp {^(cat|man)(.)$} ${mandir} match ignore manindex]} { continue }
    146             set mandirpath [file join ${manpath} ${mandir}]
    147             if {[file isdirectory ${mandirpath}] && [file type ${mandirpath}] == "directory"} {
    148                 ui_debug "Scanning ${mandir}"
    149                 foreach manfile [readdir ${mandirpath}] {
    150                     set manfilepath [file join ${mandirpath} ${manfile}]
    151                     if {[file isfile ${manfilepath}] && [file type ${manfilepath}] == "file"} {
    152                         if {[regexp "^(.*\[.\]${manindex}\[a-z\]*)\[.\]gz\$" ${manfile} gzfile manfile]} {
    153                             set found 1
    154                             system "cd ${manpath} && \
    155                                                                 gunzip -f [file join ${mandir} ${gzfile}] && \
    156                                                                 gzip -9vf [file join ${mandir} ${manfile}]"
    157                         } elseif {[regexp "^(.*\[.\]${manindex}\[a-z\]*)\[.\]bz2\$" ${manfile} bz2file manfile]} {
    158                             set found 1
    159                             system "cd ${manpath} && \
    160                                                                 bunzip2 -f [file join ${mandir} ${bz2file}] && \
    161                                                                 gzip -9vf [file join ${mandir} ${manfile}]"
    162                         } elseif {[regexp "\[.\]${manindex}\[a-z\]*\$" ${manfile}]} {
    163                             set found 1
    164                             system "cd ${manpath} && \
    165                                                                 gzip -9vf [file join ${mandir} ${manfile}]"
    166                         }
    167                         set gzmanfile ${manfile}.gz
    168                         set gzmanfilepath [file join ${mandirpath} ${gzmanfile}]
    169                         if {[file exists ${gzmanfilepath}]} {
    170                             set desired 00444
    171                             set current [file attributes ${gzmanfilepath} -permissions]
    172                             if {$current != $desired} {
    173                                 ui_info "[file join ${mandir} ${gzmanfile}]: changing permissions from $current to $desired"
    174                                 file attributes ${gzmanfilepath} -permissions $desired
    175                             }
    176                         }
    177                     } elseif {[file type ${manfilepath}] == "link"} {
    178                         lappend manlinks [file join ${mandir} ${manfile}]
    179                     }
    180                 }
    181             }
    182         }
    183         if {$found == 1} {
    184             # check man page links and rename/repoint them if necessary
    185             foreach manlink $manlinks {
    186                 set manlinkpath [file join $manpath $manlink]
    187                 # if link destination is not gzipped, check it
    188                 set manlinksrc [file readlink $manlinkpath]
    189                 if {![regexp "\[.\]gz\$" ${manlinksrc}]} {
    190                     set mandir [file dirname $manlink]
    191                     set mandirpath [file join $manpath $mandir]
    192                     set pwd [pwd]
    193                     if {[catch {_cd $mandirpath} err]} {
    194                         puts $err
    195                         return
    196                     }
    197                     # if gzipped destination exists, fix link
    198                     if {[file isfile ${manlinksrc}.gz]} {
    199                         # if actual link name does not end with gz, rename it
    200                         if {![regexp "\[.\]gz\$" ${manlink}]} {
    201                             ui_debug "renaming link: $manlink to ${manlink}.gz"
    202                             file rename $manlinkpath ${manlinkpath}.gz
    203                             set manlink ${manlink}.gz
    204                             set manlinkpath [file join $manpath $manlink]
    205                         }
    206                         # repoint the link
    207                         ui_debug "repointing link: $manlink from $manlinksrc to ${manlinksrc}.gz"
    208                         file delete $manlinkpath
    209                         system "ln -s \"${manlinksrc}.gz\" \"$manlinkpath\""
    210                     }
    211                     _cd $pwd
    212                 }
    213             }
    214         } else {
    215             ui_debug "No man pages found to compress."
    216         }
    217     }
    218         } else {
    219             ui_debug "No man page compression on ${os.platform}${os.version}."
    220     }
    221 
    222         if [file exists "${destroot}${prefix}/share/info/dir"] {
    223                 ui_debug "Deleting stray info/dir file."
    224             file delete "${destroot}${prefix}/share/info/dir"
    225         }
    226 
    227         # test for violations of mtree
    228         if { ${destroot.violate_mtree} != "yes" } {
    229                 ui_debug "checking for mtree violations"
    230                 set mtree_violation "no"
    231 
    232                 set prefixPaths [list bin etc include lib libexec sbin share src var www Applications Developer Library]
    233 
    234                 set pathsToCheck [list /]
    235                 while {[llength $pathsToCheck] > 0} {
    236                         set pathToCheck [lshift pathsToCheck]
    237                         foreach file [glob -nocomplain -directory $destroot$pathToCheck .* *] {
    238                                 if {[file tail $file] eq "." || [file tail $file] eq ".."} {
    239                                         continue
    240                                 }
    241                                 if {[string equal -length [string length $destroot] $destroot $file]} {
    242                                         # just double-checking that $destroot is a prefix, as is appropriate
    243                                         set dfile [file join / [string range $file [string length $destroot] end]]
    244                                 } else {
    245                                         throw MACPORTS "Unexpected filepath `${file}' while checking for mtree violations"
    246                                 }
    247                                 if {$dfile eq $prefix} {
    248                                         # we've found our prefix
    249                                         foreach pfile [glob -nocomplain -tails -directory $file .* *] {
    250                                                 if {$pfile eq "." || $pfile eq ".."} {
    251                                                         continue
    252                                                 }
    253                                                 if {[lsearch -exact $prefixPaths $pfile] == -1} {
    254                                                         ui_warn "violation by [file join $dfile $pfile]"
    255                                                         set mtree_violation "yes"
    256                                                 }
    257                                         }
    258                                 } elseif {[string equal -length [expr [string length $dfile] + 1] $dfile/ $prefix]} {
    259                                         # we've found a subpath of our prefix
    260                                         lpush pathsToCheck $dfile
    261                                 } else {
    262                                         # these files are outside of the prefix
    263                                         switch $dfile {
    264                                                 /Applications -
    265                                                 /Developer -
    266                                                 /Library { ui_debug "port installs files in $dfile" }
    267                                                 default {
    268                                                         ui_warn "violation by $dfile"
    269                                                         set mtree_violation "yes"
    270                                                 }
    271                                         }
    272                                 }
    273                         }
    274                 }
    275 
    276                 # abort here only so all violations can be observed
    277                 if { ${mtree_violation} != "no" } {
    278                         ui_warn "[format [msgcat::mc "%s violates the layout of the ports-filesystems!"] [option portname]]"
    279                         ui_warn "Please fix or indicate this misbehavior (if it is intended), it will be an error in future releases!"
    280                         # error "mtree violation!"
    281                 }
    282         } else {
    283                 ui_warn "[format [msgcat::mc "%s requests to install files outside the common directory structure!"] [option portname]]"
    284         }
     137    # but NOT on Jaguar (Darwin 6.x)
     138    if {![regexp {darwin6} "${os.platform}${os.version}"]} {
     139        set manpath "${destroot}${prefix}/share/man"
     140        if {[file isdirectory ${manpath}] && [file type ${manpath}] == "directory"} {
     141            ui_info "$UI_PREFIX [format [msgcat::mc "Compressing man pages for %s"] ${portname}]"
     142            set found 0
     143            set manlinks [list]
     144            foreach mandir [readdir "${manpath}"] {
     145                if {![regexp {^(cat|man)(.)$} ${mandir} match ignore manindex]} { continue }
     146                set mandirpath [file join ${manpath} ${mandir}]
     147                if {[file isdirectory ${mandirpath}] && [file type ${mandirpath}] == "directory"} {
     148                    ui_debug "Scanning ${mandir}"
     149                    foreach manfile [readdir ${mandirpath}] {
     150                        set manfilepath [file join ${mandirpath} ${manfile}]
     151                        if {[file isfile ${manfilepath}] && [file type ${manfilepath}] == "file"} {
     152                            if {[regexp "^(.*\[.\]${manindex}\[a-z\]*)\[.\]gz\$" ${manfile} gzfile manfile]} {
     153                                set found 1
     154                                system "cd ${manpath} && \
     155                                gunzip -f [file join ${mandir} ${gzfile}] && \
     156                                gzip -9vf [file join ${mandir} ${manfile}]"
     157                            } elseif {[regexp "^(.*\[.\]${manindex}\[a-z\]*)\[.\]bz2\$" ${manfile} bz2file manfile]} {
     158                                set found 1
     159                                system "cd ${manpath} && \
     160                                bunzip2 -f [file join ${mandir} ${bz2file}] && \
     161                                gzip -9vf [file join ${mandir} ${manfile}]"
     162                            } elseif {[regexp "\[.\]${manindex}\[a-z\]*\$" ${manfile}]} {
     163                                set found 1
     164                                system "cd ${manpath} && \
     165                                gzip -9vf [file join ${mandir} ${manfile}]"
     166                            }
     167                            set gzmanfile ${manfile}.gz
     168                            set gzmanfilepath [file join ${mandirpath} ${gzmanfile}]
     169                            if {[file exists ${gzmanfilepath}]} {
     170                                set desired 00444
     171                                set current [file attributes ${gzmanfilepath} -permissions]
     172                                if {$current != $desired} {
     173                                    ui_info "[file join ${mandir} ${gzmanfile}]: changing permissions from $current to $desired"
     174                                    file attributes ${gzmanfilepath} -permissions $desired
     175                                }
     176                            }
     177                        } elseif {[file type ${manfilepath}] == "link"} {
     178                            lappend manlinks [file join ${mandir} ${manfile}]
     179                        }
     180                    }
     181                }
     182            }
     183            if {$found == 1} {
     184                # check man page links and rename/repoint them if necessary
     185                foreach manlink $manlinks {
     186                    set manlinkpath [file join $manpath $manlink]
     187                    # if link destination is not gzipped, check it
     188                    set manlinksrc [file readlink $manlinkpath]
     189                    if {![regexp "\[.\]gz\$" ${manlinksrc}]} {
     190                        set mandir [file dirname $manlink]
     191                        set mandirpath [file join $manpath $mandir]
     192                        set pwd [pwd]
     193                        if {[catch {_cd $mandirpath} err]} {
     194                            puts $err
     195                            return
     196                        }
     197                        # if gzipped destination exists, fix link
     198                        if {[file isfile ${manlinksrc}.gz]} {
     199                            # if actual link name does not end with gz, rename it
     200                            if {![regexp "\[.\]gz\$" ${manlink}]} {
     201                                ui_debug "renaming link: $manlink to ${manlink}.gz"
     202                                file rename $manlinkpath ${manlinkpath}.gz
     203                                set manlink ${manlink}.gz
     204                                set manlinkpath [file join $manpath $manlink]
     205                            }
     206                            # repoint the link
     207                            ui_debug "repointing link: $manlink from $manlinksrc to ${manlinksrc}.gz"
     208                            file delete $manlinkpath
     209                            system "ln -s \"${manlinksrc}.gz\" \"$manlinkpath\""
     210                        }
     211                        _cd $pwd
     212                    }
     213                }
     214            } else {
     215                ui_debug "No man pages found to compress."
     216            }
     217        }
     218    } else {
     219        ui_debug "No man page compression on ${os.platform}${os.version}."
     220    }
     221
     222    if [file exists "${destroot}${prefix}/share/info/dir"] {
     223        ui_debug "Deleting stray info/dir file."
     224        file delete "${destroot}${prefix}/share/info/dir"
     225    }
     226
     227    # test for violations of mtree
     228    if { ${destroot.violate_mtree} != "yes" } {
     229        ui_debug "checking for mtree violations"
     230        set mtree_violation "no"
     231
     232        set prefixPaths [list bin etc include lib libexec sbin share src var www Applications Developer Library]
     233
     234        set pathsToCheck [list /]
     235        while {[llength $pathsToCheck] > 0} {
     236            set pathToCheck [lshift pathsToCheck]
     237            foreach file [glob -nocomplain -directory $destroot$pathToCheck .* *] {
     238                if {[file tail $file] eq "." || [file tail $file] eq ".."} {
     239                    continue
     240                }
     241                if {[string equal -length [string length $destroot] $destroot $file]} {
     242                    # just double-checking that $destroot is a prefix, as is appropriate
     243                    set dfile [file join / [string range $file [string length $destroot] end]]
     244                } else {
     245                    throw MACPORTS "Unexpected filepath `${file}' while checking for mtree violations"
     246                }
     247                if {$dfile eq $prefix} {
     248                    # we've found our prefix
     249                    foreach pfile [glob -nocomplain -tails -directory $file .* *] {
     250                        if {$pfile eq "." || $pfile eq ".."} {
     251                            continue
     252                        }
     253                        if {[lsearch -exact $prefixPaths $pfile] == -1} {
     254                            ui_warn "violation by [file join $dfile $pfile]"
     255                            set mtree_violation "yes"
     256                        }
     257                    }
     258                } elseif {[string equal -length [expr [string length $dfile] + 1] $dfile/ $prefix]} {
     259                    # we've found a subpath of our prefix
     260                    lpush pathsToCheck $dfile
     261                } else {
     262                    # these files are outside of the prefix
     263                    switch $dfile {
     264                        /Applications -
     265                        /Developer -
     266                        /Library { ui_debug "port installs files in $dfile" }
     267                        default {
     268                            ui_warn "violation by $dfile"
     269                            set mtree_violation "yes"
     270                        }
     271                    }
     272                }
     273            }
     274        }
     275
     276        # abort here only so all violations can be observed
     277        if { ${mtree_violation} != "no" } {
     278            ui_warn "[format [msgcat::mc "%s violates the layout of the ports-filesystems!"] [option portname]]"
     279            ui_warn "Please fix or indicate this misbehavior (if it is intended), it will be an error in future releases!"
     280            # error "mtree violation!"
     281        }
     282    } else {
     283        ui_warn "[format [msgcat::mc "%s requests to install files outside the common directory structure!"] [option portname]]"
     284    }
    285285
    286286    # Restore umask
Note: See TracChangeset for help on using the changeset viewer.