MacPorts wrote:
#14147: port lint should warn on illegal variant names
-------------------------------------+--------------------------------------
 Reporter:  [EMAIL PROTECTED]  |       Owner:  [EMAIL PROTECTED]
Type: enhancement | Status: new Priority: Normal | Milestone: MacPorts base enhancements Component: ports | Version: 1.7.0 Keywords: | -------------------------------------+--------------------------------------
 `port lint` should warn when it encounters variants whose names are not
 composed entirely of legal characters. I'm not sure if the list of legal
 characters for variant names has ever been defined anywhere before, but
 looking through all variant names of all ports right now, I see that they
 are all composed of letters A-Z and a-z, numbers 0-9, underscore and
 hyphen/dash, and the hyphen/dash is the only one of those that causes
 problems. (A variant with a hyphen/dash in the name cannot be selected.)
 So `port lint` should warn if a variant name does not match the regular
 expression `^[A-Za-z0-9_]+$`

 Related: the guide should say something about valid variant names; see
 #14141.

In ''proc variant'' itself are no checks at all, the first argument ("provides") is taken as the variant name (see port1.0/portutil.tcl, proc variant {args}).

But in other places there are checks for validity.

port1.0/portutil.tcl, handle_default_variants:
 if {[regexp {([-+])([-A-Za-z0-9_]+)} $v whole val variant]} {

port/port.tcl, split_variants:
 set l [regexp -all -inline -- {([-+])([[:alpha:]_]+[\w\.]*)} $variants]


If there should be no hyphens/dashes in variant names, the regex in the ticket is correct and the one in handle_default_variants is wrong. I am unsure if I understand the regex in split_variants correctly... Maybe they should be unified to a single regex for variant names which can be used in multiple places.

Rainer
_______________________________________________
macports-dev mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo/macports-dev

Reply via email to