Changeset 139042 for trunk/base


Ignore:
Timestamp:
Jul 30, 2015, 12:42:12 PM (5 years ago)
Author:
raimue@…
Message:

port1.0/portlint.tcl: Validate port names in replaced_by and conflicts

File:
1 edited

Legend:

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

    r138099 r139042  
    342342           depends_fetch depends_extract depends_lib depends_build \
    343343           depends_run distfiles fetch.type lint_portsystem lint_platforms \
    344            lint_required lint_optional
     344           lint_required lint_optional replaced_by conflicts
    345345    set portarch [get_canonical_archs]
    346346
     
    539539    }
    540540
     541    if {[info exists replaced_by]} {
     542        if {[regexp {[^[:alnum:]_.-]} $replaced_by]} {
     543            ui_error "replaced_by should be a single port name, invalid value: $replaced_by"
     544            incr errors
     545        } else {
     546            if {[catch {set res [mport_lookup $replaced_by]} error]} {
     547                global errorInfo
     548                ui_debug "$errorInfo"
     549            }
     550            if {$res eq ""} {
     551                ui_error "replaced_by references unknown port: $replaced_by"
     552                incr errors
     553            } else {
     554                ui_info "OK: replaced_by $replaced_by"
     555            }
     556        }
     557    }
     558
     559    if {[info exists conflicts]} {
     560        foreach cport $conflicts {
     561            if {[regexp {[^[:alnum:]_.-]} $cport]} {
     562                ui_error "conflicts lists invalid value, should be port name: $cport"
     563                incr errors
     564                continue
     565            }
     566            if {[catch {set res [mport_lookup $cport]} error]} {
     567                global errorInfo
     568                ui_debug "$errorInfo"
     569                continue
     570            }
     571            if {$res eq ""} {
     572                ui_error "conflicts references unknown port: $cport"
     573                incr errors
     574            } else {
     575                ui_info "OK: conflicts $cport"
     576            }
     577        }
     578    }
     579
    541580    if {[regexp "^(.+)nomaintainer(@macports.org)?(.+)$" $maintainers] } {
    542581        ui_error "Using nomaintainer together with other maintainer"
Note: See TracChangeset for help on using the changeset viewer.