New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Changeset 81446


Ignore:
Timestamp:
07/30/11 17:37:13 (4 years ago)
Author:
fotanus@…
Message:

Fixed some bugs testing agains real ports.
Added whitelist conf files to installation.

Location:
branches/gsoc11-post-destroot/base
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • branches/gsoc11-post-destroot/base/doc/Makefile

    r71035 r81446  
    22MAN5=           macports.conf.5 
    33MAN7=           portfile.7 portstyle.7 porthier.7 portgroup.7 
    4 CONF=       macports.conf pubkeys.conf sources.conf variants.conf 
     4CONF=       macports.conf pubkeys.conf sources.conf variants.conf files_whitelist.conf folders_whitelist.conf 
    55INSTALLDIR=     ${DESTDIR}${prefix} 
    66TOPSRCDIR=      .. 
  • branches/gsoc11-post-destroot/base/src/port1.0/portcheckdestroot.tcl

    r81398 r81446  
    3636} 
    3737 
     38# escape chars in order to be usable as regexp. This function is for internal use.  
     39proc portcheckdestroot::escape_chars {str} { 
     40        return [regsub -all {\W} $str {\\&}] 
     41} 
    3842 
    3943# List all links on a directory recursively. This function is for internal use. 
     
    206210    set dep_files {} 
    207211    foreach dep [get_dependencies] { 
    208         lappend dep_files [file tail [registry_port_registered $dep]] 
    209     } 
     212        lappend dep_files [registry_port_registered $dep] 
     213    } 
     214 
    210215    set self_files [bin_list $destroot$prefix] 
    211216    set dep_files [concat $dep_files $self_files] 
    212  
    213217 
    214218    #Get package files 
     
    216220        foreach file_lib [list_dlibs $file] { 
    217221            set valid_lib 0 
    218             if { [regexp $file_lib $file] } { 
     222            # File itself 
     223            if { [regexp [escape_chars $file_lib] $file] } { 
    219224                set valid_lib 1 
    220225            } 
    221             if { ! $valid_lib } { 
    222                 if { [lsearch $dep_files $file_lib] != -1 } { 
    223                     set valid_lib 1 
    224                     ui_debug "$file_lib binary dependency is met" 
    225                 } 
    226             } 
     226 
     227            # File from the package or its depended ports 
     228            if { ! $valid_lib } { 
     229                foreach dep_file $dep_files { 
     230                    if { [regexp [escape_chars $file_lib] $dep_file] } { 
     231                        set valid_lib 1 
     232                        ui_debug "$file_lib binary dependency is met" 
     233                    } 
     234                } 
     235            } 
     236            # on files whitelist 
    227237            if { ! $valid_lib } { 
    228238                foreach dep_file $files_whitelist { 
    229                     if { [regexp $dep_file [regsub ".*/" $file_lib ""]] } { 
     239                    if { [regexp [escape_chars $dep_file] [file tail $file_lib]] } { 
    230240                        ui_debug "$file_lib binary dependency folder is on whitelist" 
    231241                        set valid_lib 1 
     
    234244                } 
    235245            } 
     246            # on folders whitelist 
    236247            if { ! $valid_lib } { 
    237248                foreach dep_folder $folders_whitelist { 
     
    244255            } 
    245256            if { ! $valid_lib } { 
    246                    return -code error "$file_lib binary dependencies are NOT met" 
     257                   return -code error "$file '$file_lib' binary dependencies are NOT met" 
    247258            } 
    248259        } 
Note: See TracChangeset for help on using the changeset viewer.