Fri Jun 10 19:42:42 2016 UTC ()
Updated pkglint to 5.4.1.

Changes since 5.4.0:

* PKG_SKIP_REASON is no longer marked as deprecated, since it still
  has its value
* When PKG_SKIP_REASON is defined depending on OPSYS, suggest to
  use NOT_FOR_PLATFORM instead.
* Check for ROOT_USER/ROOT_GROUP being used in special file
  permissions; using REAL_ROOT_USER/REAL_ROOT_GROUP is better.


(rillig)
diff -r1.485 -r1.486 pkgsrc/pkgtools/pkglint/Makefile
diff -r1.9 -r1.10 pkgsrc/pkgtools/pkglint/files/globaldata.go
diff -r1.9 -r1.10 pkgsrc/pkgtools/pkglint/files/vartypecheck_test.go
diff -r1.11 -r1.12 pkgsrc/pkgtools/pkglint/files/mkline.go
diff -r1.5 -r1.6 pkgsrc/pkgtools/pkglint/files/mklines.go
diff -r1.4 -r1.5 pkgsrc/pkgtools/pkglint/files/mklines_test.go
diff -r1.8 -r1.9 pkgsrc/pkgtools/pkglint/files/vardefs.go
diff -r1.7 -r1.8 pkgsrc/pkgtools/pkglint/files/vartype.go
diff -r1.13 -r1.14 pkgsrc/pkgtools/pkglint/files/vartypecheck.go

cvs diff -r1.485 -r1.486 pkgsrc/pkgtools/pkglint/Makefile (expand / switch to unified diff)

--- pkgsrc/pkgtools/pkglint/Makefile 2016/06/05 11:24:32 1.485
+++ pkgsrc/pkgtools/pkglint/Makefile 2016/06/10 19:42:41 1.486
@@ -1,16 +1,16 @@ @@ -1,16 +1,16 @@
1# $NetBSD: Makefile,v 1.485 2016/06/05 11:24:32 rillig Exp $ 1# $NetBSD: Makefile,v 1.486 2016/06/10 19:42:41 rillig Exp $
2 2
3PKGNAME= pkglint-5.4.0 3PKGNAME= pkglint-5.4.1
4DISTFILES= # none 4DISTFILES= # none
5CATEGORIES= pkgtools 5CATEGORIES= pkgtools
6 6
7OWNER= rillig@NetBSD.org 7OWNER= rillig@NetBSD.org
8HOMEPAGE= http://www.NetBSD.org/docs/pkgsrc/ 8HOMEPAGE= http://www.NetBSD.org/docs/pkgsrc/
9COMMENT= Verifier for NetBSD packages 9COMMENT= Verifier for NetBSD packages
10LICENSE= 2-clause-bsd 10LICENSE= 2-clause-bsd
11CONFLICTS+= pkglint4-[0-9]* 11CONFLICTS+= pkglint4-[0-9]*
12 12
13WRKSRC= ${WRKDIR}/netbsd.org/pkglint 13WRKSRC= ${WRKDIR}/netbsd.org/pkglint
14NO_CHECKSUM= yes 14NO_CHECKSUM= yes
15USE_LANGUAGES= # none 15USE_LANGUAGES= # none
16USE_TOOLS+= pax 16USE_TOOLS+= pax

cvs diff -r1.9 -r1.10 pkgsrc/pkgtools/pkglint/files/Attic/globaldata.go (expand / switch to unified diff)

--- pkgsrc/pkgtools/pkglint/files/Attic/globaldata.go 2016/06/05 11:24:32 1.9
+++ pkgsrc/pkgtools/pkglint/files/Attic/globaldata.go 2016/06/10 19:42:42 1.10
@@ -468,27 +468,26 @@ func (gd *GlobalData) loadDeprecatedVars @@ -468,27 +468,26 @@ func (gd *GlobalData) loadDeprecatedVars
468 468
469 // July 2006 469 // July 2006
470 "USE_DIGEST": "You can just remove it.", 470 "USE_DIGEST": "You can just remove it.",
471 "LTCONFIG_OVERRIDE": "You can just remove it.", 471 "LTCONFIG_OVERRIDE": "You can just remove it.",
472 "USE_GNU_GETTEXT": "You can just remove it.", 472 "USE_GNU_GETTEXT": "You can just remove it.",
473 "BUILD_ENV": "Use PKGSRC_MAKE_ENV instead.", 473 "BUILD_ENV": "Use PKGSRC_MAKE_ENV instead.",
474 "DYNAMIC_MASTER_SITES": "You can just remove it.", 474 "DYNAMIC_MASTER_SITES": "You can just remove it.",
475 475
476 // September 2006 476 // September 2006
477 "MAKEFILE": "Use MAKE_FILE instead.", 477 "MAKEFILE": "Use MAKE_FILE instead.",
478 478
479 // November 2006 479 // November 2006
480 "SKIP_PORTABILITY_CHECK": "Use CHECK_PORTABILITY_SKIP (a list of patterns) instead.", 480 "SKIP_PORTABILITY_CHECK": "Use CHECK_PORTABILITY_SKIP (a list of patterns) instead.",
481 "PKG_SKIP_REASON": "Use PKG_FAIL_REASON instead.", 
482 481
483 // January 2007 482 // January 2007
484 "BUILDLINK_TRANSFORM.*": "Use BUILDLINK_FNAME_TRANSFORM.* instead.", 483 "BUILDLINK_TRANSFORM.*": "Use BUILDLINK_FNAME_TRANSFORM.* instead.",
485 484
486 // March 2007 485 // March 2007
487 "SCRIPTDIR": "You can just remove it.", 486 "SCRIPTDIR": "You can just remove it.",
488 "NO_PKG_REGISTER": "You can just remove it.", 487 "NO_PKG_REGISTER": "You can just remove it.",
489 "NO_DEPENDS": "You can just remove it.", 488 "NO_DEPENDS": "You can just remove it.",
490 489
491 // October 2007 490 // October 2007
492 "_PKG_SILENT": "Use RUN (with more error checking) instead.", 491 "_PKG_SILENT": "Use RUN (with more error checking) instead.",
493 "_PKG_DEBUG": "Use RUN (with more error checking) instead.", 492 "_PKG_DEBUG": "Use RUN (with more error checking) instead.",
494 "LICENCE": "Use LICENSE instead.", 493 "LICENCE": "Use LICENSE instead.",

cvs diff -r1.9 -r1.10 pkgsrc/pkgtools/pkglint/files/Attic/vartypecheck_test.go (expand / switch to unified diff)

--- pkgsrc/pkgtools/pkglint/files/Attic/vartypecheck_test.go 2016/06/05 11:24:32 1.9
+++ pkgsrc/pkgtools/pkglint/files/Attic/vartypecheck_test.go 2016/06/10 19:42:42 1.10
@@ -267,26 +267,36 @@ func (s *Suite) TestVartypeCheck_Option( @@ -267,26 +267,36 @@ func (s *Suite) TestVartypeCheck_Option(
267 "undocumented", 267 "undocumented",
268 "unknown") 268 "unknown")
269 269
270 c.Check(s.Output(), equals, "WARN: fname:3: Unknown option \"unknown\".\n") 270 c.Check(s.Output(), equals, "WARN: fname:3: Unknown option \"unknown\".\n")
271} 271}
272 272
273func (s *Suite) TestVartypeCheck_Pathlist(c *check.C) { 273func (s *Suite) TestVartypeCheck_Pathlist(c *check.C) {
274 runVartypeChecks("PATH", opAssign, (*VartypeCheck).Pathlist, 274 runVartypeChecks("PATH", opAssign, (*VartypeCheck).Pathlist,
275 "/usr/bin:/usr/sbin:.:${LOCALBASE}/bin") 275 "/usr/bin:/usr/sbin:.:${LOCALBASE}/bin")
276 276
277 c.Check(s.Output(), equals, "WARN: fname:1: All components of PATH (in this case \".\") should be absolute paths.\n") 277 c.Check(s.Output(), equals, "WARN: fname:1: All components of PATH (in this case \".\") should be absolute paths.\n")
278} 278}
279 279
 280func (s *Suite) Test_VartypeCheck_Perms(c *check.C) {
 281 runVartypeChecks("CONF_FILES_PERMS", opAssignAppend, (*VartypeCheck).Perms,
 282 "root",
 283 "${ROOT_USER}",
 284 "ROOT_USER",
 285 "${REAL_ROOT_USER}")
 286
 287 c.Check(s.Output(), equals, "ERROR: fname:2: ROOT_USER must not be used in permission definitions. Use REAL_ROOT_USER instead.\n")
 288}
 289
280func (s *Suite) TestVartypeCheck_PkgOptionsVar(c *check.C) { 290func (s *Suite) TestVartypeCheck_PkgOptionsVar(c *check.C) {
281 runVartypeChecks("PKG_OPTIONS_VAR.screen", opAssign, (*VartypeCheck).PkgOptionsVar, 291 runVartypeChecks("PKG_OPTIONS_VAR.screen", opAssign, (*VartypeCheck).PkgOptionsVar,
282 "PKG_OPTIONS.${PKGBASE}") 292 "PKG_OPTIONS.${PKGBASE}")
283 293
284 c.Check(s.Output(), equals, "ERROR: fname:1: PKGBASE must not be used in PKG_OPTIONS_VAR.\n") 294 c.Check(s.Output(), equals, "ERROR: fname:1: PKGBASE must not be used in PKG_OPTIONS_VAR.\n")
285} 295}
286 296
287func (s *Suite) TestVartypeCheck_PkgRevision(c *check.C) { 297func (s *Suite) TestVartypeCheck_PkgRevision(c *check.C) {
288 runVartypeChecks("PKGREVISION", opAssign, (*VartypeCheck).PkgRevision, 298 runVartypeChecks("PKGREVISION", opAssign, (*VartypeCheck).PkgRevision,
289 "3a") 299 "3a")
290 300
291 c.Check(s.Output(), equals, ""+ 301 c.Check(s.Output(), equals, ""+
292 "WARN: fname:1: PKGREVISION must be a positive integer number.\n"+ 302 "WARN: fname:1: PKGREVISION must be a positive integer number.\n"+

cvs diff -r1.11 -r1.12 pkgsrc/pkgtools/pkglint/files/Attic/mkline.go (expand / switch to unified diff)

--- pkgsrc/pkgtools/pkglint/files/Attic/mkline.go 2016/06/05 11:24:32 1.11
+++ pkgsrc/pkgtools/pkglint/files/Attic/mkline.go 2016/06/10 19:42:42 1.12
@@ -206,28 +206,29 @@ func (mkline *MkLine) checkInclude() { @@ -206,28 +206,29 @@ func (mkline *MkLine) checkInclude() {
206 mkline.Error1("%s must not be included directly. Include \"../../mk/x11.buildlink3.mk\" instead.", includefile) 206 mkline.Error1("%s must not be included directly. Include \"../../mk/x11.buildlink3.mk\" instead.", includefile)
207 207
208 case hasSuffix(includefile, "/jpeg/buildlink3.mk"): 208 case hasSuffix(includefile, "/jpeg/buildlink3.mk"):
209 mkline.Error1("%s must not be included directly. Include \"../../mk/jpeg.buildlink3.mk\" instead.", includefile) 209 mkline.Error1("%s must not be included directly. Include \"../../mk/jpeg.buildlink3.mk\" instead.", includefile)
210 210
211 case hasSuffix(includefile, "/intltool/buildlink3.mk"): 211 case hasSuffix(includefile, "/intltool/buildlink3.mk"):
212 mkline.Warn0("Please write \"USE_TOOLS+= intltool\" instead of this line.") 212 mkline.Warn0("Please write \"USE_TOOLS+= intltool\" instead of this line.")
213 213
214 case hasSuffix(includefile, "/builtin.mk"): 214 case hasSuffix(includefile, "/builtin.mk"):
215 mkline.Line.Error2("%s must not be included directly. Include \"%s/buildlink3.mk\" instead.", includefile, path.Dir(includefile)) 215 mkline.Line.Error2("%s must not be included directly. Include \"%s/buildlink3.mk\" instead.", includefile, path.Dir(includefile))
216 } 216 }
217} 217}
218 218
219func (mkline *MkLine) checkCond(indentation *Indentation, forVars map[string]bool) { 219func (mkline *MkLine) checkCond(forVars map[string]bool) {
220 indent, directive, args := mkline.Indent(), mkline.Directive(), mkline.Args() 220 indent, directive, args := mkline.Indent(), mkline.Directive(), mkline.Args()
 221 indentation := &G.Mk.indentation
221 222
222 switch directive { 223 switch directive {
223 case "endif", "endfor", "elif", "else": 224 case "endif", "endfor", "elif", "else":
224 if indentation.Len() > 1 { 225 if indentation.Len() > 1 {
225 indentation.Pop() 226 indentation.Pop()
226 } else { 227 } else {
227 mkline.Error1("Unmatched .%s.", directive) 228 mkline.Error1("Unmatched .%s.", directive)
228 } 229 }
229 } 230 }
230 231
231 // Check the indentation 232 // Check the indentation
232 if expected := strings.Repeat(" ", indentation.Depth()); indent != expected { 233 if expected := strings.Repeat(" ", indentation.Depth()); indent != expected {
233 if G.opts.WarnSpace && !mkline.Line.AutofixReplace("."+indent, "."+expected) { 234 if G.opts.WarnSpace && !mkline.Line.AutofixReplace("."+indent, "."+expected) {
@@ -933,26 +934,30 @@ func (mkline *MkLine) checkVarassignSpec @@ -933,26 +934,30 @@ func (mkline *MkLine) checkVarassignSpec
933 "only the state of the variable), whose meaning could be described", 934 "only the state of the variable), whose meaning could be described",
934 "with \"none\". It is this meaning that should be described.") 935 "with \"none\". It is this meaning that should be described.")
935 } 936 }
936 937
937 if m, revvarname := match1(value, `\$\{(PKGNAME|PKGVERSION)[:\}]`); m { 938 if m, revvarname := match1(value, `\$\{(PKGNAME|PKGVERSION)[:\}]`); m {
938 if varname == "DIST_SUBDIR" || varname == "WRKSRC" { 939 if varname == "DIST_SUBDIR" || varname == "WRKSRC" {
939 mkline.Line.Warnf("%s should not be used in %s, as it includes the PKGREVISION. Please use %s_NOREV instead.", revvarname, varname, revvarname) 940 mkline.Line.Warnf("%s should not be used in %s, as it includes the PKGREVISION. Please use %s_NOREV instead.", revvarname, varname, revvarname)
940 } 941 }
941 } 942 }
942 943
943 if hasPrefix(varname, "SITES_") { 944 if hasPrefix(varname, "SITES_") {
944 mkline.Warn0("SITES_* is deprecated. Please use SITES.* instead.") 945 mkline.Warn0("SITES_* is deprecated. Please use SITES.* instead.")
945 } 946 }
 947
 948 if varname == "PKG_SKIP_REASON" && G.Mk.indentation.DependsOn("OPSYS") {
 949 mkline.Note0("Consider defining NOT_FOR_PLATFORM instead of setting PKG_SKIP_REASON depending on ${OPSYS}.")
 950 }
946} 951}
947 952
948func (mkline *MkLine) checkVarassignBsdPrefs() { 953func (mkline *MkLine) checkVarassignBsdPrefs() {
949 if G.opts.WarnExtra && mkline.Op() == opAssignDefault && G.Pkg != nil && !G.Pkg.SeenBsdPrefsMk { 954 if G.opts.WarnExtra && mkline.Op() == opAssignDefault && G.Pkg != nil && !G.Pkg.SeenBsdPrefsMk {
950 switch mkline.Varcanon() { 955 switch mkline.Varcanon() {
951 case "BUILDLINK_PKGSRCDIR.*", "BUILDLINK_DEPMETHOD.*", "BUILDLINK_ABI_DEPENDS.*": 956 case "BUILDLINK_PKGSRCDIR.*", "BUILDLINK_DEPMETHOD.*", "BUILDLINK_ABI_DEPENDS.*":
952 return 957 return
953 } 958 }
954 959
955 mkline.Warn0("Please include \"../../mk/bsd.prefs.mk\" before using \"?=\".") 960 mkline.Warn0("Please include \"../../mk/bsd.prefs.mk\" before using \"?=\".")
956 Explain( 961 Explain(
957 "The ?= operator is used to provide a default value to a variable.", 962 "The ?= operator is used to provide a default value to a variable.",
958 "In pkgsrc, many variables can be set by the pkgsrc user in the", 963 "In pkgsrc, many variables can be set by the pkgsrc user in the",
@@ -1214,26 +1219,54 @@ func (mkline *MkLine) CheckCond() { @@ -1214,26 +1219,54 @@ func (mkline *MkLine) CheckCond() {
1214 }) 1219 })
1215 1220
1216 cond.Visit("compareVarStr", func(node *Tree) { 1221 cond.Visit("compareVarStr", func(node *Tree) {
1217 varuse := node.args[0].(MkVarUse) 1222 varuse := node.args[0].(MkVarUse)
1218 varname := varuse.varname 1223 varname := varuse.varname
1219 varmods := varuse.modifiers 1224 varmods := varuse.modifiers
1220 value := node.args[2].(string) 1225 value := node.args[2].(string)
1221 if len(varmods) == 0 { 1226 if len(varmods) == 0 {
1222 mkline.CheckVartype(varname, opUse, value, "") 1227 mkline.CheckVartype(varname, opUse, value, "")
1223 } else if len(varmods) == 1 && matches(varmods[0], `^[MN]`) && value != "" { 1228 } else if len(varmods) == 1 && matches(varmods[0], `^[MN]`) && value != "" {
1224 mkline.CheckVartype(varname, opUseMatch, value, "") 1229 mkline.CheckVartype(varname, opUseMatch, value, "")
1225 } 1230 }
1226 }) 1231 })
 1232
 1233 mkline.rememberUsedVariables(cond)
 1234}
 1235
 1236func (mkline *MkLine) rememberUsedVariables(cond *Tree) {
 1237 if G.Mk == nil {
 1238 return
 1239 }
 1240
 1241 indentation := &G.Mk.indentation
 1242 arg0varname := func(node *Tree) {
 1243 varname := node.args[0].(string)
 1244 indentation.AddVar(varname)
 1245 }
 1246 arg0varuse := func(node *Tree) {
 1247 varuse := node.args[0].(MkVarUse)
 1248 indentation.AddVar(varuse.varname)
 1249 }
 1250 arg2varuse := func(node *Tree) {
 1251 varuse := node.args[2].(MkVarUse)
 1252 indentation.AddVar(varuse.varname)
 1253 }
 1254 cond.Visit("defined", arg0varname)
 1255 cond.Visit("empty", arg0varuse)
 1256 cond.Visit("compareVarNum", arg0varuse)
 1257 cond.Visit("compareVarStr", arg0varuse)
 1258 cond.Visit("compareVarVar", arg0varuse)
 1259 cond.Visit("compareVarVar", arg2varuse)
1227} 1260}
1228 1261
1229func (mkline *MkLine) CheckValidCharactersInValue(reValid string) { 1262func (mkline *MkLine) CheckValidCharactersInValue(reValid string) {
1230 rest := regcomp(reValid).ReplaceAllString(mkline.Value(), "") 1263 rest := regcomp(reValid).ReplaceAllString(mkline.Value(), "")
1231 if rest != "" { 1264 if rest != "" {
1232 uni := "" 1265 uni := ""
1233 for _, c := range rest { 1266 for _, c := range rest {
1234 uni += fmt.Sprintf(" %U", c) 1267 uni += fmt.Sprintf(" %U", c)
1235 } 1268 }
1236 mkline.Warn2("%s contains invalid characters (%s).", mkline.Varname(), uni[1:]) 1269 mkline.Warn2("%s contains invalid characters (%s).", mkline.Varname(), uni[1:])
1237 } 1270 }
1238} 1271}
1239 1272
@@ -1669,20 +1702,52 @@ const ( @@ -1669,20 +1702,52 @@ const (
1669) 1702)
1670 1703
1671func (e vucExtent) String() string { return [...]string{"word", "wordpart"}[e] } 1704func (e vucExtent) String() string { return [...]string{"word", "wordpart"}[e] }
1672 1705
1673func (vuc *VarUseContext) String() string { 1706func (vuc *VarUseContext) String() string {
1674 typename := "no-type" 1707 typename := "no-type"
1675 if vuc.vartype != nil { 1708 if vuc.vartype != nil {
1676 typename = vuc.vartype.String() 1709 typename = vuc.vartype.String()
1677 } 1710 }
1678 return fmt.Sprintf("(%s time:%s quoting:%s extent:%s)", typename, vuc.time, vuc.quoting, vuc.extent) 1711 return fmt.Sprintf("(%s time:%s quoting:%s extent:%s)", typename, vuc.time, vuc.quoting, vuc.extent)
1679} 1712}
1680 1713
1681type Indentation struct { 1714type Indentation struct {
1682 data []int 1715 depth []int // Number of space characters; always a multiple of 2
 1716 conditionVars []map[string]bool // Variables on which the current path depends
 1717}
 1718
 1719func (ind *Indentation) Len() int {
 1720 return len(ind.depth)
1683} 1721}
1684 1722
1685func (ind *Indentation) Len() int { return len(ind.data) } 1723func (ind *Indentation) Depth() int {
1686func (ind *Indentation) Depth() int { return ind.data[len(ind.data)-1] } 1724 return ind.depth[len(ind.depth)-1]
1687func (ind *Indentation) Pop() { ind.data = ind.data[:len(ind.data)-1] } 1725}
1688func (ind *Indentation) Push(indent int) { ind.data = append(ind.data, indent) } 1726
 1727func (ind *Indentation) Pop() {
 1728 newlen := ind.Len() - 1
 1729 ind.depth = ind.depth[:newlen]
 1730 ind.conditionVars = ind.conditionVars[:newlen]
 1731}
 1732
 1733func (ind *Indentation) Push(indent int) {
 1734 ind.depth = append(ind.depth, indent)
 1735 ind.conditionVars = append(ind.conditionVars, nil)
 1736}
 1737
 1738func (ind *Indentation) AddVar(varname string) {
 1739 level := ind.Len() - 1
 1740 if ind.conditionVars[level] == nil {
 1741 ind.conditionVars[level] = make(map[string]bool)
 1742 }
 1743 ind.conditionVars[level][varname] = true
 1744}
 1745
 1746func (ind *Indentation) DependsOn(varname string) bool {
 1747 for _, vars := range ind.conditionVars {
 1748 if vars[varname] {
 1749 return true
 1750 }
 1751 }
 1752 return false
 1753}

cvs diff -r1.5 -r1.6 pkgsrc/pkgtools/pkglint/files/Attic/mklines.go (expand / switch to unified diff)

--- pkgsrc/pkgtools/pkglint/files/Attic/mklines.go 2016/06/05 11:24:32 1.5
+++ pkgsrc/pkgtools/pkglint/files/Attic/mklines.go 2016/06/10 19:42:42 1.6
@@ -7,51 +7,53 @@ import ( @@ -7,51 +7,53 @@ import (
7 7
8// MkLines contains data for the Makefile (or *.mk) that is currently checked. 8// MkLines contains data for the Makefile (or *.mk) that is currently checked.
9type MkLines struct { 9type MkLines struct {
10 mklines []*MkLine 10 mklines []*MkLine
11 lines []*Line 11 lines []*Line
12 forVars map[string]bool // The variables currently used in .for loops 12 forVars map[string]bool // The variables currently used in .for loops
13 target string // Current make(1) target 13 target string // Current make(1) target
14 vardef map[string]*MkLine // varname => line; for all variables that are defined in the current file 14 vardef map[string]*MkLine // varname => line; for all variables that are defined in the current file
15 varuse map[string]*MkLine // varname => line; for all variables that are used in the current file 15 varuse map[string]*MkLine // varname => line; for all variables that are used in the current file
16 buildDefs map[string]bool // Variables that are registered in BUILD_DEFS, to ensure that all user-defined variables are added to it. 16 buildDefs map[string]bool // Variables that are registered in BUILD_DEFS, to ensure that all user-defined variables are added to it.
17 plistVars map[string]bool // Variables that are registered in PLIST_VARS, to ensure that all user-defined variables are added to it. 17 plistVars map[string]bool // Variables that are registered in PLIST_VARS, to ensure that all user-defined variables are added to it.
18 tools map[string]bool // Set of tools that are declared to be used. 18 tools map[string]bool // Set of tools that are declared to be used.
19 SeenBsdPrefsMk bool 19 SeenBsdPrefsMk bool
 20 indentation Indentation // Indentation depth of preprocessing directives
20} 21}
21 22
22func NewMkLines(lines []*Line) *MkLines { 23func NewMkLines(lines []*Line) *MkLines {
23 mklines := make([]*MkLine, len(lines)) 24 mklines := make([]*MkLine, len(lines))
24 for i, line := range lines { 25 for i, line := range lines {
25 mklines[i] = NewMkLine(line) 26 mklines[i] = NewMkLine(line)
26 } 27 }
27 tools := make(map[string]bool) 28 tools := make(map[string]bool)
28 for toolname, tool := range G.globalData.Tools.byName { 29 for toolname, tool := range G.globalData.Tools.byName {
29 if tool.Predefined { 30 if tool.Predefined {
30 tools[toolname] = true 31 tools[toolname] = true
31 } 32 }
32 } 33 }
33 34
34 return &MkLines{ 35 return &MkLines{
35 mklines, 36 mklines,
36 lines, 37 lines,
37 make(map[string]bool), 38 make(map[string]bool),
38 "", 39 "",
39 make(map[string]*MkLine), 40 make(map[string]*MkLine),
40 make(map[string]*MkLine), 41 make(map[string]*MkLine),
41 make(map[string]bool), 42 make(map[string]bool),
42 make(map[string]bool), 43 make(map[string]bool),
43 tools, 44 tools,
44 false} 45 false,
 46 Indentation{}}
45} 47}
46 48
47func (mklines *MkLines) DefineVar(mkline *MkLine, varname string) { 49func (mklines *MkLines) DefineVar(mkline *MkLine, varname string) {
48 if mklines.vardef[varname] == nil { 50 if mklines.vardef[varname] == nil {
49 mklines.vardef[varname] = mkline 51 mklines.vardef[varname] = mkline
50 } 52 }
51 varcanon := varnameCanon(varname) 53 varcanon := varnameCanon(varname)
52 if mklines.vardef[varcanon] == nil { 54 if mklines.vardef[varcanon] == nil {
53 mklines.vardef[varcanon] = mkline 55 mklines.vardef[varcanon] = mkline
54 } 56 }
55} 57}
56 58
57func (mklines *MkLines) UseVar(mkline *MkLine, varname string) { 59func (mklines *MkLines) UseVar(mkline *MkLine, varname string) {
@@ -89,48 +91,49 @@ func (mklines *MkLines) Check() { @@ -89,48 +91,49 @@ func (mklines *MkLines) Check() {
89 } 91 }
90 92
91 // In the first pass, all additions to BUILD_DEFS and USE_TOOLS 93 // In the first pass, all additions to BUILD_DEFS and USE_TOOLS
92 // are collected to make the order of the definitions irrelevant. 94 // are collected to make the order of the definitions irrelevant.
93 mklines.DetermineUsedVariables() 95 mklines.DetermineUsedVariables()
94 mklines.determineDefinedVariables() 96 mklines.determineDefinedVariables()
95 97
96 // In the second pass, the actual checks are done. 98 // In the second pass, the actual checks are done.
97 99
98 mklines.lines[0].CheckRcsid(`#\s+`, "# ") 100 mklines.lines[0].CheckRcsid(`#\s+`, "# ")
99 101
100 var substcontext SubstContext 102 var substcontext SubstContext
101 var varalign VaralignBlock 103 var varalign VaralignBlock
102 indentation := Indentation{[]int{0}} // Indentation depth of preprocessing directives 104 indentation := &mklines.indentation
 105 indentation.Push(0)
103 for _, mkline := range mklines.mklines { 106 for _, mkline := range mklines.mklines {
104 mkline.Check() 107 mkline.Check()
105 varalign.Check(mkline) 108 varalign.Check(mkline)
106 109
107 switch { 110 switch {
108 case mkline.IsEmpty(): 111 case mkline.IsEmpty():
109 substcontext.Finish(mkline) 112 substcontext.Finish(mkline)
110 113
111 case mkline.IsVarassign(): 114 case mkline.IsVarassign():
112 mklines.target = "" 115 mklines.target = ""
113 substcontext.Varassign(mkline) 116 substcontext.Varassign(mkline)
114 117
115 case mkline.IsInclude(): 118 case mkline.IsInclude():
116 mklines.target = "" 119 mklines.target = ""
117 switch path.Base(mkline.Includefile()) { 120 switch path.Base(mkline.Includefile()) {
118 case "bsd.prefs.mk", "bsd.fast.prefs.mk", "bsd.builtin.mk": 121 case "bsd.prefs.mk", "bsd.fast.prefs.mk", "bsd.builtin.mk":
119 mklines.setSeenBsdPrefsMk() 122 mklines.setSeenBsdPrefsMk()
120 } 123 }
121 124
122 case mkline.IsCond(): 125 case mkline.IsCond():
123 mkline.checkCond(&indentation, mklines.forVars) 126 mkline.checkCond(mklines.forVars)
124 127
125 case mkline.IsDependency(): 128 case mkline.IsDependency():
126 mkline.checkDependencyRule(allowedTargets) 129 mkline.checkDependencyRule(allowedTargets)
127 mklines.target = mkline.Targets() 130 mklines.target = mkline.Targets()
128 } 131 }
129 } 132 }
130 lastMkline := mklines.mklines[len(mklines.mklines)-1] 133 lastMkline := mklines.mklines[len(mklines.mklines)-1]
131 substcontext.Finish(lastMkline) 134 substcontext.Finish(lastMkline)
132 varalign.Finish() 135 varalign.Finish()
133 136
134 ChecklinesTrailingEmptyLines(mklines.lines) 137 ChecklinesTrailingEmptyLines(mklines.lines)
135 138
136 if indentation.Len() != 1 && indentation.Depth() != 0 { 139 if indentation.Len() != 1 && indentation.Depth() != 0 {

cvs diff -r1.4 -r1.5 pkgsrc/pkgtools/pkglint/files/Attic/mklines_test.go (expand / switch to unified diff)

--- pkgsrc/pkgtools/pkglint/files/Attic/mklines_test.go 2016/06/05 11:24:32 1.4
+++ pkgsrc/pkgtools/pkglint/files/Attic/mklines_test.go 2016/06/10 19:42:42 1.5
@@ -234,13 +234,27 @@ func (s *Suite) Test_MkLines_LoopModifie @@ -234,13 +234,27 @@ func (s *Suite) Test_MkLines_LoopModifie
234 mklines := s.NewMkLines("chat/xchat/Makefile", 234 mklines := s.NewMkLines("chat/xchat/Makefile",
235 "# $"+"NetBSD$", 235 "# $"+"NetBSD$",
236 "GCONF_SCHEMAS=\tapps_xchat_url_handler.schemas", 236 "GCONF_SCHEMAS=\tapps_xchat_url_handler.schemas",
237 "post-install:", 237 "post-install:",
238 "\t${GCONF_SCHEMAS:@.s.@"+ 238 "\t${GCONF_SCHEMAS:@.s.@"+
239 "${INSTALL_DATA} ${WRKSRC}/src/common/dbus/${.s.} ${DESTDIR}${GCONF_SCHEMAS_DIR}/@}") 239 "${INSTALL_DATA} ${WRKSRC}/src/common/dbus/${.s.} ${DESTDIR}${GCONF_SCHEMAS_DIR}/@}")
240 240
241 mklines.Check() 241 mklines.Check()
242 242
243 c.Check(s.Output(), equals, ""+ // No warning about missing @ at the end 243 c.Check(s.Output(), equals, ""+ // No warning about missing @ at the end
244 "WARN: chat/xchat/Makefile:4: Unknown shell command \"${GCONF_SCHEMAS:@.s.@"+ 244 "WARN: chat/xchat/Makefile:4: Unknown shell command \"${GCONF_SCHEMAS:@.s.@"+
245 "${INSTALL_DATA} ${WRKSRC}/src/common/dbus/${.s.} ${DESTDIR}${GCONF_SCHEMAS_DIR}/@}\".\n") 245 "${INSTALL_DATA} ${WRKSRC}/src/common/dbus/${.s.} ${DESTDIR}${GCONF_SCHEMAS_DIR}/@}\".\n")
246} 246}
 247
 248func (s *Suite) Test_MkLines_Indentation_DependsOn(c *check.C) {
 249 G.globalData.InitVartypes()
 250 mklines := s.NewMkLines("Makefile",
 251 "# $"+"NetBSD$",
 252 "PKG_SKIP_REASON+=\t\"Fails everywhere\"",
 253 ".if ${OPSYS} == \"Cygwin\"",
 254 "PKG_SKIP_REASON+=\t\"Fails on Cygwin\"",
 255 ".endif")
 256
 257 mklines.Check()
 258
 259 c.Check(s.Output(), equals, "NOTE: Makefile:4: Consider defining NOT_FOR_PLATFORM instead of setting PKG_SKIP_REASON depending on ${OPSYS}.\n")
 260}

cvs diff -r1.8 -r1.9 pkgsrc/pkgtools/pkglint/files/Attic/vardefs.go (expand / switch to unified diff)

--- pkgsrc/pkgtools/pkglint/files/Attic/vardefs.go 2016/06/05 11:24:32 1.8
+++ pkgsrc/pkgtools/pkglint/files/Attic/vardefs.go 2016/06/10 19:42:42 1.9
@@ -196,27 +196,27 @@ func (gd *GlobalData) InitVartypes() { @@ -196,27 +196,27 @@ func (gd *GlobalData) InitVartypes() {
196 pkglist("CONFIGURE_DIRS", lkShell, CheckvarWrksrcSubdirectory) 196 pkglist("CONFIGURE_DIRS", lkShell, CheckvarWrksrcSubdirectory)
197 acl("CONFIGURE_ENV", lkShell, CheckvarShellWord, "Makefile, Makefile.common: append, set, use; buildlink3.mk, builtin.mk: append; *.mk: append, use") 197 acl("CONFIGURE_ENV", lkShell, CheckvarShellWord, "Makefile, Makefile.common: append, set, use; buildlink3.mk, builtin.mk: append; *.mk: append, use")
198 pkg("CONFIGURE_HAS_INFODIR", lkNone, CheckvarYesNo) 198 pkg("CONFIGURE_HAS_INFODIR", lkNone, CheckvarYesNo)
199 pkg("CONFIGURE_HAS_LIBDIR", lkNone, CheckvarYesNo) 199 pkg("CONFIGURE_HAS_LIBDIR", lkNone, CheckvarYesNo)
200 pkg("CONFIGURE_HAS_MANDIR", lkNone, CheckvarYesNo) 200 pkg("CONFIGURE_HAS_MANDIR", lkNone, CheckvarYesNo)
201 pkg("CONFIGURE_SCRIPT", lkNone, CheckvarPathname) 201 pkg("CONFIGURE_SCRIPT", lkNone, CheckvarPathname)
202 acl("CONFIG_GUESS_OVERRIDE", lkShell, CheckvarPathmask, "Makefile, Makefile.common: set, append") 202 acl("CONFIG_GUESS_OVERRIDE", lkShell, CheckvarPathmask, "Makefile, Makefile.common: set, append")
203 acl("CONFIG_STATUS_OVERRIDE", lkShell, CheckvarPathmask, "Makefile, Makefile.common: set, append") 203 acl("CONFIG_STATUS_OVERRIDE", lkShell, CheckvarPathmask, "Makefile, Makefile.common: set, append")
204 acl("CONFIG_SHELL", lkNone, CheckvarPathname, "Makefile, Makefile.common: set") 204 acl("CONFIG_SHELL", lkNone, CheckvarPathname, "Makefile, Makefile.common: set")
205 acl("CONFIG_SUB_OVERRIDE", lkShell, CheckvarPathmask, "Makefile, Makefile.common: set, append") 205 acl("CONFIG_SUB_OVERRIDE", lkShell, CheckvarPathmask, "Makefile, Makefile.common: set, append")
206 pkglist("CONFLICTS", lkSpace, CheckvarDependency) 206 pkglist("CONFLICTS", lkSpace, CheckvarDependency)
207 pkglist("CONF_FILES", lkShell, CheckvarShellWord) 207 pkglist("CONF_FILES", lkShell, CheckvarShellWord)
208 pkg("CONF_FILES_MODE", lkNone, enum("0644 0640 0600 0400")) 208 pkg("CONF_FILES_MODE", lkNone, enum("0644 0640 0600 0400"))
209 pkglist("CONF_FILES_PERMS", lkShell, CheckvarShellWord) 209 pkglist("CONF_FILES_PERMS", lkShell, CheckvarPerms)
210 sys("COPY", lkNone, enum("-c")) // The flag that tells ${INSTALL} to copy a file 210 sys("COPY", lkNone, enum("-c")) // The flag that tells ${INSTALL} to copy a file
211 sys("CPP", lkNone, CheckvarShellCommand) 211 sys("CPP", lkNone, CheckvarShellCommand)
212 pkglist("CPPFLAGS*", lkShell, CheckvarCFlag) 212 pkglist("CPPFLAGS*", lkShell, CheckvarCFlag)
213 acl("CRYPTO", lkNone, CheckvarYes, "Makefile: set") 213 acl("CRYPTO", lkNone, CheckvarYes, "Makefile: set")
214 sys("CXX", lkNone, CheckvarShellCommand) 214 sys("CXX", lkNone, CheckvarShellCommand)
215 pkglist("CXXFLAGS*", lkShell, CheckvarCFlag) 215 pkglist("CXXFLAGS*", lkShell, CheckvarCFlag)
216 acl("DEINSTALL_FILE", lkNone, CheckvarPathname, "Makefile: set") 216 acl("DEINSTALL_FILE", lkNone, CheckvarPathname, "Makefile: set")
217 acl("DEINSTALL_SRC", lkShell, CheckvarPathname, "Makefile: set; Makefile.common: default, set") 217 acl("DEINSTALL_SRC", lkShell, CheckvarPathname, "Makefile: set; Makefile.common: default, set")
218 acl("DEINSTALL_TEMPLATES", lkShell, CheckvarPathname, "Makefile: set, append; Makefile.common: set, default, append") 218 acl("DEINSTALL_TEMPLATES", lkShell, CheckvarPathname, "Makefile: set, append; Makefile.common: set, default, append")
219 sys("DELAYED_ERROR_MSG", lkNone, CheckvarShellCommand) 219 sys("DELAYED_ERROR_MSG", lkNone, CheckvarShellCommand)
220 sys("DELAYED_WARNING_MSG", lkNone, CheckvarShellCommand) 220 sys("DELAYED_WARNING_MSG", lkNone, CheckvarShellCommand)
221 pkglist("DEPENDS", lkSpace, CheckvarDependencyWithPath) 221 pkglist("DEPENDS", lkSpace, CheckvarDependencyWithPath)
222 usr("DEPENDS_TARGET", lkShell, CheckvarIdentifier) 222 usr("DEPENDS_TARGET", lkShell, CheckvarIdentifier)
@@ -390,27 +390,27 @@ func (gd *GlobalData) InitVartypes() { @@ -390,27 +390,27 @@ func (gd *GlobalData) InitVartypes() {
390 pkg("LICENSE_FILE", lkNone, CheckvarPathname) 390 pkg("LICENSE_FILE", lkNone, CheckvarPathname)
391 sys("LINKER_RPATH_FLAG", lkNone, CheckvarShellWord) 391 sys("LINKER_RPATH_FLAG", lkNone, CheckvarShellWord)
392 sys("LOWER_OPSYS", lkNone, CheckvarIdentifier) 392 sys("LOWER_OPSYS", lkNone, CheckvarIdentifier)
393 acl("LTCONFIG_OVERRIDE", lkShell, CheckvarPathmask, "Makefile: set, append; Makefile.common: append") 393 acl("LTCONFIG_OVERRIDE", lkShell, CheckvarPathmask, "Makefile: set, append; Makefile.common: append")
394 sys("MACHINE_ARCH", lkNone, enumMachineArch) 394 sys("MACHINE_ARCH", lkNone, enumMachineArch)
395 sys("MACHINE_GNU_ARCH", lkNone, enumMachineGnuArch) 395 sys("MACHINE_GNU_ARCH", lkNone, enumMachineGnuArch)
396 sys("MACHINE_GNU_PLATFORM", lkNone, CheckvarMachineGnuPlatform) 396 sys("MACHINE_GNU_PLATFORM", lkNone, CheckvarMachineGnuPlatform)
397 sys("MACHINE_PLATFORM", lkNone, CheckvarMachinePlatform) 397 sys("MACHINE_PLATFORM", lkNone, CheckvarMachinePlatform)
398 acl("MAINTAINER", lkNone, CheckvarMailAddress, "Makefile: set; Makefile.common: default") 398 acl("MAINTAINER", lkNone, CheckvarMailAddress, "Makefile: set; Makefile.common: default")
399 sys("MAKE", lkNone, CheckvarShellCommand) 399 sys("MAKE", lkNone, CheckvarShellCommand)
400 pkglist("MAKEFLAGS", lkShell, CheckvarShellWord) 400 pkglist("MAKEFLAGS", lkShell, CheckvarShellWord)
401 acl("MAKEVARS", lkShell, CheckvarVarname, "builtin.mk: append; buildlink3.mk: append; hacks.mk: append") 401 acl("MAKEVARS", lkShell, CheckvarVarname, "builtin.mk: append; buildlink3.mk: append; hacks.mk: append")
402 pkglist("MAKE_DIRS", lkShell, CheckvarPathname) 402 pkglist("MAKE_DIRS", lkShell, CheckvarPathname)
403 pkglist("MAKE_DIRS_PERMS", lkShell, CheckvarShellWord) 403 pkglist("MAKE_DIRS_PERMS", lkShell, CheckvarPerms)
404 acl("MAKE_ENV", lkShell, CheckvarShellWord, "Makefile: append, set, use; Makefile.common: append, set, use; buildlink3.mk: append; builtin.mk: append; *.mk: append, use") 404 acl("MAKE_ENV", lkShell, CheckvarShellWord, "Makefile: append, set, use; Makefile.common: append, set, use; buildlink3.mk: append; builtin.mk: append; *.mk: append, use")
405 pkg("MAKE_FILE", lkNone, CheckvarPathname) 405 pkg("MAKE_FILE", lkNone, CheckvarPathname)
406 pkglist("MAKE_FLAGS", lkShell, CheckvarShellWord) 406 pkglist("MAKE_FLAGS", lkShell, CheckvarShellWord)
407 usr("MAKE_JOBS", lkNone, CheckvarInteger) 407 usr("MAKE_JOBS", lkNone, CheckvarInteger)
408 pkg("MAKE_JOBS_SAFE", lkNone, CheckvarYesNo) 408 pkg("MAKE_JOBS_SAFE", lkNone, CheckvarYesNo)
409 pkg("MAKE_PROGRAM", lkNone, CheckvarShellCommand) 409 pkg("MAKE_PROGRAM", lkNone, CheckvarShellCommand)
410 acl("MANCOMPRESSED", lkNone, CheckvarYesNo, "Makefile: set; Makefile.common: default, set") 410 acl("MANCOMPRESSED", lkNone, CheckvarYesNo, "Makefile: set; Makefile.common: default, set")
411 acl("MANCOMPRESSED_IF_MANZ", lkNone, CheckvarYes, "Makefile: set; Makefile.common: default, set") 411 acl("MANCOMPRESSED_IF_MANZ", lkNone, CheckvarYes, "Makefile: set; Makefile.common: default, set")
412 sys("MANGRP", lkNone, CheckvarUserGroupName) 412 sys("MANGRP", lkNone, CheckvarUserGroupName)
413 sys("MANMODE", lkNone, CheckvarFileMode) 413 sys("MANMODE", lkNone, CheckvarFileMode)
414 sys("MANOWN", lkNone, CheckvarUserGroupName) 414 sys("MANOWN", lkNone, CheckvarUserGroupName)
415 pkglist("MASTER_SITES", lkShell, CheckvarFetchURL) 415 pkglist("MASTER_SITES", lkShell, CheckvarFetchURL)
416 sys("MASTER_SITE_APACHE", lkShell, CheckvarFetchURL) 416 sys("MASTER_SITE_APACHE", lkShell, CheckvarFetchURL)
@@ -467,27 +467,27 @@ func (gd *GlobalData) InitVartypes() { @@ -467,27 +467,27 @@ func (gd *GlobalData) InitVartypes() {
467 acl("NO_SRC_ON_CDROM", lkNone, CheckvarRestricted, "Makefile, Makefile.common: set") 467 acl("NO_SRC_ON_CDROM", lkNone, CheckvarRestricted, "Makefile, Makefile.common: set")
468 acl("NO_SRC_ON_FTP", lkNone, CheckvarRestricted, "Makefile, Makefile.common: set") 468 acl("NO_SRC_ON_FTP", lkNone, CheckvarRestricted, "Makefile, Makefile.common: set")
469 pkglist("ONLY_FOR_COMPILER", lkShell, enum("ccc clang gcc hp icc ido mipspro mipspro-ucode pcc sunpro xlc")) 469 pkglist("ONLY_FOR_COMPILER", lkShell, enum("ccc clang gcc hp icc ido mipspro mipspro-ucode pcc sunpro xlc"))
470 pkglist("ONLY_FOR_PLATFORM", lkSpace, CheckvarMachinePlatformPattern) 470 pkglist("ONLY_FOR_PLATFORM", lkSpace, CheckvarMachinePlatformPattern)
471 pkg("ONLY_FOR_UNPRIVILEGED", lkNone, CheckvarYesNo) 471 pkg("ONLY_FOR_UNPRIVILEGED", lkNone, CheckvarYesNo)
472 sys("OPSYS", lkNone, CheckvarIdentifier) 472 sys("OPSYS", lkNone, CheckvarIdentifier)
473 acl("OPSYSVARS", lkShell, CheckvarVarname, "Makefile, Makefile.common: append") 473 acl("OPSYSVARS", lkShell, CheckvarVarname, "Makefile, Makefile.common: append")
474 acl("OSVERSION_SPECIFIC", lkNone, CheckvarYes, "Makefile, Makefile.common: set") 474 acl("OSVERSION_SPECIFIC", lkNone, CheckvarYes, "Makefile, Makefile.common: set")
475 sys("OS_VERSION", lkNone, CheckvarVersion) 475 sys("OS_VERSION", lkNone, CheckvarVersion)
476 pkg("OVERRIDE_DIRDEPTH*", lkNone, CheckvarInteger) 476 pkg("OVERRIDE_DIRDEPTH*", lkNone, CheckvarInteger)
477 pkg("OVERRIDE_GNU_CONFIG_SCRIPTS", lkNone, CheckvarYes) 477 pkg("OVERRIDE_GNU_CONFIG_SCRIPTS", lkNone, CheckvarYes)
478 acl("OWNER", lkNone, CheckvarMailAddress, "Makefile: set; Makefile.common: default") 478 acl("OWNER", lkNone, CheckvarMailAddress, "Makefile: set; Makefile.common: default")
479 pkglist("OWN_DIRS", lkShell, CheckvarPathname) 479 pkglist("OWN_DIRS", lkShell, CheckvarPathname)
480 pkglist("OWN_DIRS_PERMS", lkShell, CheckvarShellWord) 480 pkglist("OWN_DIRS_PERMS", lkShell, CheckvarPerms)
481 sys("PAMBASE", lkNone, CheckvarPathname) 481 sys("PAMBASE", lkNone, CheckvarPathname)
482 usr("PAM_DEFAULT", lkNone, enum("linux-pam openpam solaris-pam")) 482 usr("PAM_DEFAULT", lkNone, enum("linux-pam openpam solaris-pam"))
483 acl("PATCHDIR", lkNone, CheckvarRelativePkgPath, "Makefile: set; Makefile.common: default, set") 483 acl("PATCHDIR", lkNone, CheckvarRelativePkgPath, "Makefile: set; Makefile.common: default, set")
484 pkglist("PATCHFILES", lkShell, CheckvarFilename) 484 pkglist("PATCHFILES", lkShell, CheckvarFilename)
485 acl("PATCH_ARGS", lkShell, CheckvarShellWord, "") 485 acl("PATCH_ARGS", lkShell, CheckvarShellWord, "")
486 acl("PATCH_DIST_ARGS", lkShell, CheckvarShellWord, "Makefile: set, append") 486 acl("PATCH_DIST_ARGS", lkShell, CheckvarShellWord, "Makefile: set, append")
487 acl("PATCH_DIST_CAT", lkNone, CheckvarShellCommand, "") 487 acl("PATCH_DIST_CAT", lkNone, CheckvarShellCommand, "")
488 acl("PATCH_DIST_STRIP*", lkNone, CheckvarShellWord, "Makefile, Makefile.common: set; buildlink3.mk:; builtin.mk:; *.mk: set") 488 acl("PATCH_DIST_STRIP*", lkNone, CheckvarShellWord, "Makefile, Makefile.common: set; buildlink3.mk:; builtin.mk:; *.mk: set")
489 acl("PATCH_SITES", lkShell, CheckvarFetchURL, "Makefile: set; options.mk: set; Makefile.common: set") 489 acl("PATCH_SITES", lkShell, CheckvarFetchURL, "Makefile: set; options.mk: set; Makefile.common: set")
490 acl("PATCH_STRIP", lkNone, CheckvarShellWord, "") 490 acl("PATCH_STRIP", lkNone, CheckvarShellWord, "")
491 pkg("PERL5_USE_PACKLIST", lkNone, CheckvarYesNo) 491 pkg("PERL5_USE_PACKLIST", lkNone, CheckvarYesNo)
492 acl("PERL5_PACKLIST", lkShell, CheckvarPerl5Packlist, "Makefile: set; options.mk: set, append") 492 acl("PERL5_PACKLIST", lkShell, CheckvarPerl5Packlist, "Makefile: set; options.mk: set, append")
493 acl("PERL5_PACKLIST_DIR", lkNone, CheckvarPathname, "") 493 acl("PERL5_PACKLIST_DIR", lkNone, CheckvarPathname, "")
@@ -554,27 +554,27 @@ func (gd *GlobalData) InitVartypes() { @@ -554,27 +554,27 @@ func (gd *GlobalData) InitVartypes() {
554 acl("PKG_OPTIONS_NONEMPTY_SETS", lkSpace, CheckvarIdentifier, "") 554 acl("PKG_OPTIONS_NONEMPTY_SETS", lkSpace, CheckvarIdentifier, "")
555 acl("PKG_OPTIONS_OPTIONAL_GROUPS", lkSpace, CheckvarIdentifier, "options.mk: set, append") 555 acl("PKG_OPTIONS_OPTIONAL_GROUPS", lkSpace, CheckvarIdentifier, "options.mk: set, append")
556 acl("PKG_OPTIONS_REQUIRED_GROUPS", lkSpace, CheckvarIdentifier, "options.mk: set; Makefile: set") 556 acl("PKG_OPTIONS_REQUIRED_GROUPS", lkSpace, CheckvarIdentifier, "options.mk: set; Makefile: set")
557 acl("PKG_OPTIONS_SET.*", lkSpace, CheckvarOption, "") 557 acl("PKG_OPTIONS_SET.*", lkSpace, CheckvarOption, "")
558 acl("PKG_OPTIONS_VAR", lkNone, CheckvarPkgOptionsVar, "options.mk: set; Makefile, Makefile.common: set; bsd.options.mk: use-loadtime") 558 acl("PKG_OPTIONS_VAR", lkNone, CheckvarPkgOptionsVar, "options.mk: set; Makefile, Makefile.common: set; bsd.options.mk: use-loadtime")
559 acl("PKG_PRESERVE", lkNone, CheckvarYes, "Makefile: set") 559 acl("PKG_PRESERVE", lkNone, CheckvarYes, "Makefile: set")
560 acl("PKG_SHELL", lkNone, CheckvarPathname, "Makefile, Makefile.common: set") 560 acl("PKG_SHELL", lkNone, CheckvarPathname, "Makefile, Makefile.common: set")
561 acl("PKG_SHELL.*", lkNone, CheckvarPathname, "Makefile, Makefile.common: set") 561 acl("PKG_SHELL.*", lkNone, CheckvarPathname, "Makefile, Makefile.common: set")
562 acl("PKG_SHLIBTOOL", lkNone, CheckvarPathname, "") 562 acl("PKG_SHLIBTOOL", lkNone, CheckvarPathname, "")
563 pkglist("PKG_SKIP_REASON", lkShell, CheckvarShellWord) 563 pkglist("PKG_SKIP_REASON", lkShell, CheckvarShellWord)
564 acl("PKG_SUGGESTED_OPTIONS", lkShell, CheckvarOption, "options.mk: set, append; Makefile: set, append; Makefile.common: set") 564 acl("PKG_SUGGESTED_OPTIONS", lkShell, CheckvarOption, "options.mk: set, append; Makefile: set, append; Makefile.common: set")
565 acl("PKG_SUPPORTED_OPTIONS", lkShell, CheckvarOption, "options.mk: set, append, use; Makefile: set, append; Makefile.common: set") 565 acl("PKG_SUPPORTED_OPTIONS", lkShell, CheckvarOption, "options.mk: set, append, use; Makefile: set, append; Makefile.common: set")
566 pkg("PKG_SYSCONFDIR*", lkNone, CheckvarPathname) 566 pkg("PKG_SYSCONFDIR*", lkNone, CheckvarPathname)
567 pkglist("PKG_SYSCONFDIR_PERMS", lkShell, CheckvarShellWord) 567 pkglist("PKG_SYSCONFDIR_PERMS", lkShell, CheckvarPerms)
568 sys("PKG_SYSCONFBASEDIR", lkNone, CheckvarPathname) 568 sys("PKG_SYSCONFBASEDIR", lkNone, CheckvarPathname)
569 pkg("PKG_SYSCONFSUBDIR", lkNone, CheckvarPathname) 569 pkg("PKG_SYSCONFSUBDIR", lkNone, CheckvarPathname)
570 acl("PKG_SYSCONFVAR", lkNone, CheckvarIdentifier, "") // FIXME: name/type mismatch. 570 acl("PKG_SYSCONFVAR", lkNone, CheckvarIdentifier, "") // FIXME: name/type mismatch.
571 acl("PKG_UID", lkNone, CheckvarInteger, "Makefile: set") 571 acl("PKG_UID", lkNone, CheckvarInteger, "Makefile: set")
572 acl("PKG_USERS", lkShell, CheckvarShellWord, "Makefile: set, append") 572 acl("PKG_USERS", lkShell, CheckvarShellWord, "Makefile: set, append")
573 pkg("PKG_USERS_VARS", lkShell, CheckvarVarname) 573 pkg("PKG_USERS_VARS", lkShell, CheckvarVarname)
574 acl("PKG_USE_KERBEROS", lkNone, CheckvarYes, "Makefile, Makefile.common: set") 574 acl("PKG_USE_KERBEROS", lkNone, CheckvarYes, "Makefile, Makefile.common: set")
575 // PLIST.* has special handling code 575 // PLIST.* has special handling code
576 pkglist("PLIST_VARS", lkShell, CheckvarIdentifier) 576 pkglist("PLIST_VARS", lkShell, CheckvarIdentifier)
577 pkglist("PLIST_SRC", lkShell, CheckvarRelativePkgPath) 577 pkglist("PLIST_SRC", lkShell, CheckvarRelativePkgPath)
578 pkglist("PLIST_SUBST", lkShell, CheckvarShellWord) 578 pkglist("PLIST_SUBST", lkShell, CheckvarShellWord)
579 acl("PLIST_TYPE", lkNone, enum("dynamic static"), "") 579 acl("PLIST_TYPE", lkNone, enum("dynamic static"), "")
580 acl("PREPEND_PATH", lkShell, CheckvarPathname, "") 580 acl("PREPEND_PATH", lkShell, CheckvarPathname, "")
@@ -604,47 +604,47 @@ func (gd *GlobalData) InitVartypes() { @@ -604,47 +604,47 @@ func (gd *GlobalData) InitVartypes() {
604 pkglist("REPLACE_AWK", lkShell, CheckvarPathmask) 604 pkglist("REPLACE_AWK", lkShell, CheckvarPathmask)
605 pkglist("REPLACE_BASH", lkShell, CheckvarPathmask) 605 pkglist("REPLACE_BASH", lkShell, CheckvarPathmask)
606 pkglist("REPLACE_CSH", lkShell, CheckvarPathmask) 606 pkglist("REPLACE_CSH", lkShell, CheckvarPathmask)
607 acl("REPLACE_EMACS", lkShell, CheckvarPathmask, "") 607 acl("REPLACE_EMACS", lkShell, CheckvarPathmask, "")
608 acl("REPLACE_FILES.*", lkShell, CheckvarPathmask, "Makefile, Makefile.common: set, append") 608 acl("REPLACE_FILES.*", lkShell, CheckvarPathmask, "Makefile, Makefile.common: set, append")
609 acl("REPLACE_INTERPRETER", lkShell, CheckvarIdentifier, "Makefile, Makefile.common: append") 609 acl("REPLACE_INTERPRETER", lkShell, CheckvarIdentifier, "Makefile, Makefile.common: append")
610 pkglist("REPLACE_KSH", lkShell, CheckvarPathmask) 610 pkglist("REPLACE_KSH", lkShell, CheckvarPathmask)
611 pkglist("REPLACE_LOCALEDIR_PATTERNS", lkShell, CheckvarFilemask) 611 pkglist("REPLACE_LOCALEDIR_PATTERNS", lkShell, CheckvarFilemask)
612 pkglist("REPLACE_LUA", lkShell, CheckvarPathmask) 612 pkglist("REPLACE_LUA", lkShell, CheckvarPathmask)
613 pkglist("REPLACE_PERL", lkShell, CheckvarPathmask) 613 pkglist("REPLACE_PERL", lkShell, CheckvarPathmask)
614 pkglist("REPLACE_PYTHON", lkShell, CheckvarPathmask) 614 pkglist("REPLACE_PYTHON", lkShell, CheckvarPathmask)
615 pkglist("REPLACE_SH", lkShell, CheckvarPathmask) 615 pkglist("REPLACE_SH", lkShell, CheckvarPathmask)
616 pkglist("REQD_DIRS", lkShell, CheckvarPathname) 616 pkglist("REQD_DIRS", lkShell, CheckvarPathname)
617 pkglist("REQD_DIRS_PERMS", lkShell, CheckvarShellWord) 617 pkglist("REQD_DIRS_PERMS", lkShell, CheckvarPerms)
618 pkglist("REQD_FILES", lkShell, CheckvarPathname) 618 pkglist("REQD_FILES", lkShell, CheckvarPathname)
619 pkg("REQD_FILES_MODE", lkNone, enum("0644 0640 0600 0400")) 619 pkg("REQD_FILES_MODE", lkNone, enum("0644 0640 0600 0400"))
620 pkglist("REQD_FILES_PERMS", lkShell, CheckvarShellWord) 620 pkglist("REQD_FILES_PERMS", lkShell, CheckvarPerms)
621 pkg("RESTRICTED", lkNone, CheckvarMessage) 621 pkg("RESTRICTED", lkNone, CheckvarMessage)
622 usr("ROOT_USER", lkNone, CheckvarUserGroupName) 622 usr("ROOT_USER", lkNone, CheckvarUserGroupName)
623 usr("ROOT_GROUP", lkNone, CheckvarUserGroupName) 623 usr("ROOT_GROUP", lkNone, CheckvarUserGroupName)
624 usr("RUBY_VERSION_REQD", lkNone, CheckvarVersion) 624 usr("RUBY_VERSION_REQD", lkNone, CheckvarVersion)
625 sys("RUN", lkNone, CheckvarShellCommand) 625 sys("RUN", lkNone, CheckvarShellCommand)
626 sys("RUN_LDCONFIG", lkNone, CheckvarYesNo) 626 sys("RUN_LDCONFIG", lkNone, CheckvarYesNo)
627 acl("SCRIPTS_ENV", lkShell, CheckvarShellWord, "Makefile, Makefile.common: append") 627 acl("SCRIPTS_ENV", lkShell, CheckvarShellWord, "Makefile, Makefile.common: append")
628 usr("SETUID_ROOT_PERMS", lkShell, CheckvarShellWord) 628 usr("SETUID_ROOT_PERMS", lkShell, CheckvarShellWord)
629 sys("SHAREGRP", lkNone, CheckvarUserGroupName) 629 sys("SHAREGRP", lkNone, CheckvarUserGroupName)
630 sys("SHAREMODE", lkNone, CheckvarFileMode) 630 sys("SHAREMODE", lkNone, CheckvarFileMode)
631 sys("SHAREOWN", lkNone, CheckvarUserGroupName) 631 sys("SHAREOWN", lkNone, CheckvarUserGroupName)
632 sys("SHCOMMENT", lkNone, CheckvarShellCommand) 632 sys("SHCOMMENT", lkNone, CheckvarShellCommand)
633 acl("SHLIB_HANDLING", lkNone, enum("YES NO no"), "") 633 acl("SHLIB_HANDLING", lkNone, enum("YES NO no"), "")
634 acl("SHLIBTOOL", lkNone, CheckvarShellCommand, "Makefile: use") 634 acl("SHLIBTOOL", lkNone, CheckvarShellCommand, "Makefile: use")
635 acl("SHLIBTOOL_OVERRIDE", lkShell, CheckvarPathmask, "Makefile: set, append; Makefile.common: append") 635 acl("SHLIBTOOL_OVERRIDE", lkShell, CheckvarPathmask, "Makefile: set, append; Makefile.common: append")
636 acl("SITES.*", lkShell, CheckvarFetchURL, "Makefile, Makefile.common, options.mk: set, append, use") 636 acl("SITES.*", lkShell, CheckvarFetchURL, "Makefile, Makefile.common, options.mk: set, append, use")
637 pkglist("SPECIAL_PERMS", lkShell, CheckvarShellWord) 637 pkglist("SPECIAL_PERMS", lkShell, CheckvarPerms)
638 sys("STEP_MSG", lkNone, CheckvarShellCommand) 638 sys("STEP_MSG", lkNone, CheckvarShellCommand)
639 acl("SUBDIR", lkShell, CheckvarFilename, "Makefile: append; *:") 639 acl("SUBDIR", lkShell, CheckvarFilename, "Makefile: append; *:")
640 acl("SUBST_CLASSES", lkShell, CheckvarIdentifier, "Makefile: set, append; *: append") 640 acl("SUBST_CLASSES", lkShell, CheckvarIdentifier, "Makefile: set, append; *: append")
641 acl("SUBST_FILES.*", lkShell, CheckvarPathmask, "Makefile: set, append; Makefile.*, *.mk: set, append") 641 acl("SUBST_FILES.*", lkShell, CheckvarPathmask, "Makefile: set, append; Makefile.*, *.mk: set, append")
642 acl("SUBST_FILTER_CMD.*", lkNone, CheckvarShellCommand, "Makefile, Makefile.*, *.mk: set") 642 acl("SUBST_FILTER_CMD.*", lkNone, CheckvarShellCommand, "Makefile, Makefile.*, *.mk: set")
643 acl("SUBST_MESSAGE.*", lkNone, CheckvarMessage, "Makefile, Makefile.*, *.mk: set") 643 acl("SUBST_MESSAGE.*", lkNone, CheckvarMessage, "Makefile, Makefile.*, *.mk: set")
644 acl("SUBST_SED.*", lkNone, CheckvarSedCommands, "Makefile, Makefile.*, *.mk: set, append") 644 acl("SUBST_SED.*", lkNone, CheckvarSedCommands, "Makefile, Makefile.*, *.mk: set, append")
645 pkg("SUBST_STAGE.*", lkNone, CheckvarStage) 645 pkg("SUBST_STAGE.*", lkNone, CheckvarStage)
646 pkglist("SUBST_VARS.*", lkShell, CheckvarVarname) 646 pkglist("SUBST_VARS.*", lkShell, CheckvarVarname)
647 pkglist("SUPERSEDES", lkSpace, CheckvarDependency) 647 pkglist("SUPERSEDES", lkSpace, CheckvarDependency)
648 pkglist("TEST_DIRS", lkShell, CheckvarWrksrcSubdirectory) 648 pkglist("TEST_DIRS", lkShell, CheckvarWrksrcSubdirectory)
649 pkglist("TEST_ENV", lkShell, CheckvarShellWord) 649 pkglist("TEST_ENV", lkShell, CheckvarShellWord)
650 acl("TEST_TARGET", lkShell, CheckvarIdentifier, "Makefile: set; Makefile.common: default, set; options.mk: set, append") 650 acl("TEST_TARGET", lkShell, CheckvarIdentifier, "Makefile: set; Makefile.common: default, set; options.mk: set, append")
@@ -662,26 +662,27 @@ func (gd *GlobalData) InitVartypes() { @@ -662,26 +662,27 @@ func (gd *GlobalData) InitVartypes() {
662 sys("TOOLS_PATH.*", lkNone, CheckvarPathname) 662 sys("TOOLS_PATH.*", lkNone, CheckvarPathname)
663 sys("TOOLS_PLATFORM.*", lkNone, CheckvarShellCommand) 663 sys("TOOLS_PLATFORM.*", lkNone, CheckvarShellCommand)
664 sys("TOUCH_FLAGS", lkShell, CheckvarShellWord) 664 sys("TOUCH_FLAGS", lkShell, CheckvarShellWord)
665 pkglist("UAC_REQD_EXECS", lkShell, CheckvarPrefixPathname) 665 pkglist("UAC_REQD_EXECS", lkShell, CheckvarPrefixPathname)
666 acl("UNLIMIT_RESOURCES", lkShell, enum("datasize stacksize memorysize"), "Makefile: set, append; Makefile.common: append") 666 acl("UNLIMIT_RESOURCES", lkShell, enum("datasize stacksize memorysize"), "Makefile: set, append; Makefile.common: append")
667 usr("UNPRIVILEGED_USER", lkNone, CheckvarUserGroupName) 667 usr("UNPRIVILEGED_USER", lkNone, CheckvarUserGroupName)
668 usr("UNPRIVILEGED_GROUP", lkNone, CheckvarUserGroupName) 668 usr("UNPRIVILEGED_GROUP", lkNone, CheckvarUserGroupName)
669 pkglist("UNWRAP_FILES", lkShell, CheckvarPathmask) 669 pkglist("UNWRAP_FILES", lkShell, CheckvarPathmask)
670 usr("UPDATE_TARGET", lkShell, CheckvarIdentifier) 670 usr("UPDATE_TARGET", lkShell, CheckvarIdentifier)
671 pkg("USE_BSD_MAKEFILE", lkNone, CheckvarYes) 671 pkg("USE_BSD_MAKEFILE", lkNone, CheckvarYes)
672 acl("USE_BUILTIN.*", lkNone, CheckvarYesNoIndirectly, "builtin.mk: set") 672 acl("USE_BUILTIN.*", lkNone, CheckvarYesNoIndirectly, "builtin.mk: set")
673 pkg("USE_CMAKE", lkNone, CheckvarYes) 673 pkg("USE_CMAKE", lkNone, CheckvarYes)
674 acl("USE_CROSSBASE", lkNone, CheckvarYes, "Makefile: set") 674 acl("USE_CROSSBASE", lkNone, CheckvarYes, "Makefile: set")
 675 usr("USE_DESTDIR", lkNone, CheckvarYes)
675 pkg("USE_FEATURES", lkShell, CheckvarIdentifier) 676 pkg("USE_FEATURES", lkShell, CheckvarIdentifier)
676 pkg("USE_GCC_RUNTIME", lkNone, CheckvarYesNo) 677 pkg("USE_GCC_RUNTIME", lkNone, CheckvarYesNo)
677 pkg("USE_GNU_CONFIGURE_HOST", lkNone, CheckvarYesNo) 678 pkg("USE_GNU_CONFIGURE_HOST", lkNone, CheckvarYesNo)
678 acl("USE_GNU_ICONV", lkNone, CheckvarYes, "Makefile, Makefile.common: set; options.mk: set") 679 acl("USE_GNU_ICONV", lkNone, CheckvarYes, "Makefile, Makefile.common: set; options.mk: set")
679 acl("USE_IMAKE", lkNone, CheckvarYes, "Makefile: set") 680 acl("USE_IMAKE", lkNone, CheckvarYes, "Makefile: set")
680 pkg("USE_JAVA", lkNone, enum("run yes build")) 681 pkg("USE_JAVA", lkNone, enum("run yes build"))
681 pkg("USE_JAVA2", lkNone, enum("YES yes no 1.4 1.5 6 7 8")) 682 pkg("USE_JAVA2", lkNone, enum("YES yes no 1.4 1.5 6 7 8"))
682 acl("USE_LANGUAGES", lkShell, enum("ada c c99 c++ fortran fortran77 java objc"), "Makefile, Makefile.common, options.mk: set, append") 683 acl("USE_LANGUAGES", lkShell, enum("ada c c99 c++ fortran fortran77 java objc"), "Makefile, Makefile.common, options.mk: set, append")
683 pkg("USE_LIBTOOL", lkNone, CheckvarYes) 684 pkg("USE_LIBTOOL", lkNone, CheckvarYes)
684 pkg("USE_MAKEINFO", lkNone, CheckvarYes) 685 pkg("USE_MAKEINFO", lkNone, CheckvarYes)
685 pkg("USE_MSGFMT_PLURALS", lkNone, CheckvarYes) 686 pkg("USE_MSGFMT_PLURALS", lkNone, CheckvarYes)
686 pkg("USE_NCURSES", lkNone, CheckvarYes) 687 pkg("USE_NCURSES", lkNone, CheckvarYes)
687 pkg("USE_OLD_DES_API", lkNone, CheckvarYesNo) 688 pkg("USE_OLD_DES_API", lkNone, CheckvarYesNo)

cvs diff -r1.7 -r1.8 pkgsrc/pkgtools/pkglint/files/Attic/vartype.go (expand / switch to unified diff)

--- pkgsrc/pkgtools/pkglint/files/Attic/vartype.go 2016/06/05 11:24:32 1.7
+++ pkgsrc/pkgtools/pkglint/files/Attic/vartype.go 2016/06/10 19:42:42 1.8
@@ -226,26 +226,27 @@ var ( @@ -226,26 +226,27 @@ var (
226 CheckvarInteger = &VarChecker{"Integer", (*VartypeCheck).Integer} 226 CheckvarInteger = &VarChecker{"Integer", (*VartypeCheck).Integer}
227 CheckvarLdFlag = &VarChecker{"LdFlag", (*VartypeCheck).LdFlag} 227 CheckvarLdFlag = &VarChecker{"LdFlag", (*VartypeCheck).LdFlag}
228 CheckvarLicense = &VarChecker{"License", (*VartypeCheck).License} 228 CheckvarLicense = &VarChecker{"License", (*VartypeCheck).License}
229 CheckvarMachineGnuPlatform = &VarChecker{"MachineGnuPlatform", (*VartypeCheck).MachineGnuPlatform} 229 CheckvarMachineGnuPlatform = &VarChecker{"MachineGnuPlatform", (*VartypeCheck).MachineGnuPlatform}
230 CheckvarMachinePlatform = &VarChecker{"MachinePlatform", (*VartypeCheck).MachinePlatform} 230 CheckvarMachinePlatform = &VarChecker{"MachinePlatform", (*VartypeCheck).MachinePlatform}
231 CheckvarMachinePlatformPattern = &VarChecker{"MachinePlatformPattern", (*VartypeCheck).MachinePlatformPattern} 231 CheckvarMachinePlatformPattern = &VarChecker{"MachinePlatformPattern", (*VartypeCheck).MachinePlatformPattern}
232 CheckvarMailAddress = &VarChecker{"MailAddress", (*VartypeCheck).MailAddress} 232 CheckvarMailAddress = &VarChecker{"MailAddress", (*VartypeCheck).MailAddress}
233 CheckvarMessage = &VarChecker{"Message", (*VartypeCheck).Message} 233 CheckvarMessage = &VarChecker{"Message", (*VartypeCheck).Message}
234 CheckvarOption = &VarChecker{"Option", (*VartypeCheck).Option} 234 CheckvarOption = &VarChecker{"Option", (*VartypeCheck).Option}
235 CheckvarPathlist = &VarChecker{"Pathlist", (*VartypeCheck).Pathlist} 235 CheckvarPathlist = &VarChecker{"Pathlist", (*VartypeCheck).Pathlist}
236 CheckvarPathmask = &VarChecker{"Pathmask", (*VartypeCheck).Pathmask} 236 CheckvarPathmask = &VarChecker{"Pathmask", (*VartypeCheck).Pathmask}
237 CheckvarPathname = &VarChecker{"Pathname", (*VartypeCheck).Pathname} 237 CheckvarPathname = &VarChecker{"Pathname", (*VartypeCheck).Pathname}
238 CheckvarPerl5Packlist = &VarChecker{"Perl5Packlist", (*VartypeCheck).Perl5Packlist} 238 CheckvarPerl5Packlist = &VarChecker{"Perl5Packlist", (*VartypeCheck).Perl5Packlist}
 239 CheckvarPerms = &VarChecker{"Perms", (*VartypeCheck).Perms}
239 CheckvarPkgName = &VarChecker{"PkgName", (*VartypeCheck).PkgName} 240 CheckvarPkgName = &VarChecker{"PkgName", (*VartypeCheck).PkgName}
240 CheckvarPkgPath = &VarChecker{"PkgPath", (*VartypeCheck).PkgPath} 241 CheckvarPkgPath = &VarChecker{"PkgPath", (*VartypeCheck).PkgPath}
241 CheckvarPkgOptionsVar = &VarChecker{"PkgOptionsVar", (*VartypeCheck).PkgOptionsVar} 242 CheckvarPkgOptionsVar = &VarChecker{"PkgOptionsVar", (*VartypeCheck).PkgOptionsVar}
242 CheckvarPkgRevision = &VarChecker{"PkgRevision", (*VartypeCheck).PkgRevision} 243 CheckvarPkgRevision = &VarChecker{"PkgRevision", (*VartypeCheck).PkgRevision}
243 CheckvarPrefixPathname = &VarChecker{"PrefixPathname", (*VartypeCheck).PrefixPathname} 244 CheckvarPrefixPathname = &VarChecker{"PrefixPathname", (*VartypeCheck).PrefixPathname}
244 CheckvarPythonDependency = &VarChecker{"PythonDependency", (*VartypeCheck).PythonDependency} 245 CheckvarPythonDependency = &VarChecker{"PythonDependency", (*VartypeCheck).PythonDependency}
245 CheckvarRelativePkgDir = &VarChecker{"RelativePkgDir", (*VartypeCheck).RelativePkgDir} 246 CheckvarRelativePkgDir = &VarChecker{"RelativePkgDir", (*VartypeCheck).RelativePkgDir}
246 CheckvarRelativePkgPath = &VarChecker{"RelativePkgPath", (*VartypeCheck).RelativePkgPath} 247 CheckvarRelativePkgPath = &VarChecker{"RelativePkgPath", (*VartypeCheck).RelativePkgPath}
247 CheckvarRestricted = &VarChecker{"Restricted", (*VartypeCheck).Restricted} 248 CheckvarRestricted = &VarChecker{"Restricted", (*VartypeCheck).Restricted}
248 CheckvarSedCommand = &VarChecker{"SedCommand", (*VartypeCheck).SedCommand} 249 CheckvarSedCommand = &VarChecker{"SedCommand", (*VartypeCheck).SedCommand}
249 CheckvarSedCommands = &VarChecker{"SedCommands", nil} 250 CheckvarSedCommands = &VarChecker{"SedCommands", nil}
250 CheckvarShellCommand = &VarChecker{"ShellCommand", nil} 251 CheckvarShellCommand = &VarChecker{"ShellCommand", nil}
251 CheckvarShellCommands = &VarChecker{"ShellCommands", nil} 252 CheckvarShellCommands = &VarChecker{"ShellCommands", nil}

cvs diff -r1.13 -r1.14 pkgsrc/pkgtools/pkglint/files/Attic/vartypecheck.go (expand / switch to unified diff)

--- pkgsrc/pkgtools/pkglint/files/Attic/vartypecheck.go 2016/06/05 11:24:32 1.13
+++ pkgsrc/pkgtools/pkglint/files/Attic/vartypecheck.go 2016/06/10 19:42:42 1.14
@@ -652,26 +652,33 @@ func (cv *VartypeCheck) Pathname() { @@ -652,26 +652,33 @@ func (cv *VartypeCheck) Pathname() {
652 } 652 }
653 if !matches(cv.valueNovar, `^[#\-0-9A-Za-z._~+%/]*$`) { 653 if !matches(cv.valueNovar, `^[#\-0-9A-Za-z._~+%/]*$`) {
654 cv.line.Warn1("%q is not a valid pathname.", cv.value) 654 cv.line.Warn1("%q is not a valid pathname.", cv.value)
655 } 655 }
656 cv.line.CheckAbsolutePathname(cv.value) 656 cv.line.CheckAbsolutePathname(cv.value)
657} 657}
658 658
659func (cv *VartypeCheck) Perl5Packlist() { 659func (cv *VartypeCheck) Perl5Packlist() {
660 if cv.value != cv.valueNovar { 660 if cv.value != cv.valueNovar {
661 cv.line.Warn1("%s should not depend on other variables.", cv.varname) 661 cv.line.Warn1("%s should not depend on other variables.", cv.varname)
662 } 662 }
663} 663}
664 664
 665func (cv *VartypeCheck) Perms() {
 666 if cv.value == "${ROOT_USER}" || cv.value == "${ROOT_GROUP}" {
 667 valuename := cv.value[2 : len(cv.value)-1]
 668 cv.line.Error1("%s must not be used in permission definitions. Use REAL_%[1]s instead.", valuename)
 669 }
 670}
 671
665func (cv *VartypeCheck) PkgName() { 672func (cv *VartypeCheck) PkgName() {
666 if cv.op != opUseMatch && cv.value == cv.valueNovar && !matches(cv.value, rePkgname) { 673 if cv.op != opUseMatch && cv.value == cv.valueNovar && !matches(cv.value, rePkgname) {
667 cv.line.Warn1("%q is not a valid package name. A valid package name has the form packagename-version, where version consists only of digits, letters and dots.", cv.value) 674 cv.line.Warn1("%q is not a valid package name. A valid package name has the form packagename-version, where version consists only of digits, letters and dots.", cv.value)
668 } 675 }
669} 676}
670 677
671func (cv *VartypeCheck) PkgOptionsVar() { 678func (cv *VartypeCheck) PkgOptionsVar() {
672 cv.mkline.CheckVartypePrimitive(cv.varname, CheckvarVarname, cv.op, cv.value, cv.comment, false, cv.guessed) 679 cv.mkline.CheckVartypePrimitive(cv.varname, CheckvarVarname, cv.op, cv.value, cv.comment, false, cv.guessed)
673 if matches(cv.value, `\$\{PKGBASE[:\}]`) { 680 if matches(cv.value, `\$\{PKGBASE[:\}]`) {
674 cv.line.Error0("PKGBASE must not be used in PKG_OPTIONS_VAR.") 681 cv.line.Error0("PKGBASE must not be used in PKG_OPTIONS_VAR.")
675 Explain3( 682 Explain3(
676 "PKGBASE is defined in bsd.pkg.mk, which is included as the", 683 "PKGBASE is defined in bsd.pkg.mk, which is included as the",
677 "very last file, but PKG_OPTIONS_VAR is evaluated earlier.", 684 "very last file, but PKG_OPTIONS_VAR is evaluated earlier.",