diff options
author | rillig <rillig@pkgsrc.org> | 2015-12-05 10:09:00 +0000 |
---|---|---|
committer | rillig <rillig@pkgsrc.org> | 2015-12-05 10:09:00 +0000 |
commit | 445f748f44e4c53c0a64916db8df2a456a1c2563 (patch) | |
tree | a68c715fb044c34998385e8a92f5b965bf3e20fa /pkgtools/pkglint | |
parent | 6ae83107ba4e9b39105ebb6d7f47cc8804fd8041 (diff) | |
download | pkgsrc-445f748f44e4c53c0a64916db8df2a456a1c2563.tar.gz |
Code cleanup: converted ALL_CAPS to camelCase
Diffstat (limited to 'pkgtools/pkglint')
27 files changed, 1112 insertions, 1102 deletions
diff --git a/pkgtools/pkglint/files/category.go b/pkgtools/pkglint/files/category.go index 06dd0acd10f..4c2e5e8665b 100644 --- a/pkgtools/pkglint/files/category.go +++ b/pkgtools/pkglint/files/category.go @@ -171,6 +171,6 @@ func checkdirCategory() { saveAutofixChanges(lines) if G.opts.Recursive { - G.todo = append(subdirs, G.todo...) + G.todo = append(append([]string(nil), subdirs...), G.todo...) } } diff --git a/pkgtools/pkglint/files/dir.go b/pkgtools/pkglint/files/dir.go index bad950ef0c0..4c7832c67bb 100644 --- a/pkgtools/pkglint/files/dir.go +++ b/pkgtools/pkglint/files/dir.go @@ -10,7 +10,7 @@ func CheckDirent(fname string) { st, err := os.Lstat(fname) if err != nil || !st.Mode().IsDir() && !st.Mode().IsRegular() { - errorf(fname, NO_LINES, "No such file or directory.") + errorf(fname, noLines, "No such file or directory.") return } isDir := st.Mode().IsDir() @@ -22,7 +22,7 @@ func CheckDirent(fname string) { G.isInfrastructure = matches(absCurrentDir, `/mk/|/mk$`) G.curPkgsrcdir = findPkgsrcTopdir(G.currentDir) if G.curPkgsrcdir == "" { - errorf(fname, NO_LINES, "Cannot determine the pkgsrc root directory for %q.", G.currentDir) + errorf(fname, noLines, "Cannot determine the pkgsrc root directory for %q.", G.currentDir) return } @@ -42,6 +42,6 @@ func CheckDirent(fname string) { case ".": checkdirToplevel() default: - errorf(fname, NO_LINES, "Cannot check directories outside a pkgsrc tree.") + errorf(fname, noLines, "Cannot check directories outside a pkgsrc tree.") } } diff --git a/pkgtools/pkglint/files/distinfo.go b/pkgtools/pkglint/files/distinfo.go index e76d7e624c0..7e54085d245 100644 --- a/pkgtools/pkglint/files/distinfo.go +++ b/pkgtools/pkglint/files/distinfo.go @@ -18,7 +18,7 @@ func checklinesDistinfo(lines []*Line) { if G.pkgContext != nil && hasSuffix(fname, "/lang/php54/distinfo") { patchesDir = G.curPkgsrcdir + "/lang/php54/patches" } - _ = G.opts.DebugMisc && debugf(fname, NO_LINES, "patchesDir=%q", patchesDir) + _ = G.opts.DebugMisc && debugf(fname, noLines, "patchesDir=%q", patchesDir) ck := &distinfoLinesChecker{ fname, patchesDir, isCommitted(fname), @@ -109,14 +109,14 @@ func (ck *distinfoLinesChecker) checkPatchSha1(line *Line, patchFname, distinfoS func (ck *distinfoLinesChecker) checkUnrecordedPatches() { files, err := ioutil.ReadDir(G.currentDir + "/" + ck.patchdir) if err != nil { - _ = G.opts.DebugUnchecked && debugf(ck.distinfoFilename, NO_LINES, "Cannot read patchesDir %q: %s", ck.patchdir, err) + _ = G.opts.DebugUnchecked && debugf(ck.distinfoFilename, noLines, "Cannot read patchesDir %q: %s", ck.patchdir, err) return } for _, file := range files { patch := file.Name() if !ck.patches[patch] { - errorf(ck.distinfoFilename, NO_LINES, "patch %q is not recorded. Run \"%s makepatchsum\".", ck.patchdir+"/"+patch, confMake) + errorf(ck.distinfoFilename, noLines, "patch %q is not recorded. Run \"%s makepatchsum\".", ck.patchdir+"/"+patch, confMake) } } } diff --git a/pkgtools/pkglint/files/files.go b/pkgtools/pkglint/files/files.go index 1a211e3ea59..07c66862cc6 100644 --- a/pkgtools/pkglint/files/files.go +++ b/pkgtools/pkglint/files/files.go @@ -9,11 +9,11 @@ import ( func LoadNonemptyLines(fname string, joinContinuationLines bool) []*Line { lines, err := readLines(fname, joinContinuationLines) if err != nil { - errorf(fname, NO_LINES, "Cannot be read.") + errorf(fname, noLines, "Cannot be read.") return nil } if len(lines) == 0 { - errorf(fname, NO_LINES, "Must not be empty.") + errorf(fname, noLines, "Must not be empty.") return nil } return lines @@ -22,7 +22,7 @@ func LoadNonemptyLines(fname string, joinContinuationLines bool) []*Line { func LoadExistingLines(fname string, foldBackslashLines bool) []*Line { lines, err := readLines(fname, foldBackslashLines) if lines == nil || err != nil { - fatalf(fname, NO_LINES, "Cannot be read.") + fatalf(fname, noLines, "Cannot be read.") } return lines } @@ -128,14 +128,14 @@ func saveAutofixChanges(lines []*Line) { } err := ioutil.WriteFile(tmpname, []byte(text), 0777) if err != nil { - errorf(tmpname, NO_LINES, "Cannot write.") + errorf(tmpname, noLines, "Cannot write.") continue } err = os.Rename(tmpname, fname) if err != nil { - errorf(fname, NO_LINES, "Cannot overwrite with auto-fixed content.") + errorf(fname, noLines, "Cannot overwrite with auto-fixed content.") continue } - notef(fname, NO_LINES, "Has been auto-fixed. Please re-run pkglint.") + notef(fname, noLines, "Has been auto-fixed. Please re-run pkglint.") } } diff --git a/pkgtools/pkglint/files/getopt.go b/pkgtools/pkglint/files/getopt.go index 6cea5d037c9..884cee58eff 100644 --- a/pkgtools/pkglint/files/getopt.go +++ b/pkgtools/pkglint/files/getopt.go @@ -37,7 +37,8 @@ func (o *Options) Parse(args []string) (remainingArgs []string, err error) { arg := args[i] switch { case arg == "--": - return append(remainingArgs, args[i+1:]...), err + remainingArgs = append(remainingArgs, args[i+1:]...) + return case hasPrefix(arg, "--"): skip, err = o.parseLongOption(args, i, arg[2:]) i += skip diff --git a/pkgtools/pkglint/files/globaldata.go b/pkgtools/pkglint/files/globaldata.go index f3557bc5c75..bc6299c50b6 100644 --- a/pkgtools/pkglint/files/globaldata.go +++ b/pkgtools/pkglint/files/globaldata.go @@ -90,7 +90,7 @@ func (gd *GlobalData) loadDistSites() { names["MASTER_SITE_SUSE_UPD"] = true names["MASTER_SITE_LOCAL"] = true - _ = G.opts.DebugMisc && debugf(fname, NO_LINES, "Loaded %d MASTER_SITE_* URLs.", len(url2name)) + _ = G.opts.DebugMisc && debugf(fname, noLines, "Loaded %d MASTER_SITE_* URLs.", len(url2name)) gd.masterSiteUrls = url2name gd.masterSiteVars = names } @@ -123,7 +123,7 @@ func (gd *GlobalData) loadTools() { } } if len(toolFiles) <= 1 { - fatalf(toolFiles[0], NO_LINES, "Too few tool files.") + fatalf(toolFiles[0], noLines, "Too few tool files.") } tools := make(map[string]bool) @@ -329,7 +329,7 @@ func (gd *GlobalData) loadDocChanges() { docdir := G.globalData.pkgsrcdir + "/doc" files, err := ioutil.ReadDir(docdir) if err != nil { - fatalf(docdir, NO_LINES, "Cannot be read.") + fatalf(docdir, noLines, "Cannot be read.") } var fnames []string diff --git a/pkgtools/pkglint/files/licenses.go b/pkgtools/pkglint/files/licenses.go index 858017bb98b..d04ca062263 100644 --- a/pkgtools/pkglint/files/licenses.go +++ b/pkgtools/pkglint/files/licenses.go @@ -23,7 +23,7 @@ func checktoplevelUnusedLicenses() { licensepath := licensedir + "/" + licensename if fileExists(licensepath) { if !G.ipcUsedLicenses[licensename] { - warnf(licensepath, NO_LINES, "This license seems to be unused.") + warnf(licensepath, noLines, "This license seems to be unused.") } } } diff --git a/pkgtools/pkglint/files/line.go b/pkgtools/pkglint/files/line.go index ba256fbdc05..66eb1cbef45 100644 --- a/pkgtools/pkglint/files/line.go +++ b/pkgtools/pkglint/files/line.go @@ -44,7 +44,7 @@ func NewLine(fname, linenos, text string, rawLines []*RawLine) *Line { } func (ln *Line) rawLines() []*RawLine { - return append(ln.before, append(ln.raw, ln.after...)...) + return append(append(append([]*RawLine(nil), ln.before...), ln.raw...), ln.after...) } func (ln *Line) printSource(out io.Writer) { diff --git a/pkgtools/pkglint/files/logging.go b/pkgtools/pkglint/files/logging.go index cf6df702b5e..bd76f6c343a 100644 --- a/pkgtools/pkglint/files/logging.go +++ b/pkgtools/pkglint/files/logging.go @@ -4,8 +4,8 @@ import ( "io" ) -const NO_FILE = "" -const NO_LINES = "" +const noFile = "" +const noLines = "" type LogLevel struct { traditionalName string @@ -13,17 +13,17 @@ type LogLevel struct { } var ( - LL_FATAL = LogLevel{"FATAL", "fatal"} - LL_ERROR = LogLevel{"ERROR", "error"} - LL_WARN = LogLevel{"WARN", "warning"} - LL_NOTE = LogLevel{"NOTE", "note"} - LL_DEBUG = LogLevel{"DEBUG", "debug"} + llFatal = LogLevel{"FATAL", "fatal"} + llError = LogLevel{"ERROR", "error"} + llWarn = LogLevel{"WARN", "warning"} + llNote = LogLevel{"NOTE", "note"} + llDebug = LogLevel{"DEBUG", "debug"} ) -var dummyLine = NewLine(NO_FILE, NO_LINES, "", nil) +var dummyLine = NewLine(noFile, noLines, "", nil) func logMessage(level LogLevel, fname, lineno, message string) { - if fname != NO_FILE { + if fname != noFile { fname = cleanpath(fname) } @@ -32,10 +32,10 @@ func logMessage(level LogLevel, fname, lineno, message string) { text += sep + level.traditionalName + ":" sep = " " } - if fname != NO_FILE { + if fname != noFile { text += sep + fname sep = ": " - if lineno != NO_LINES { + if lineno != noLines { text += ":" + lineno } } @@ -44,7 +44,7 @@ func logMessage(level LogLevel, fname, lineno, message string) { sep = " " } text += sep + message + "\n" - if level != LL_FATAL { + if level != llFatal { io.WriteString(G.logOut, text) } else { io.WriteString(G.logErr, text) @@ -53,29 +53,29 @@ func logMessage(level LogLevel, fname, lineno, message string) { func fatalf(fname, lineno, format string, args ...interface{}) bool { message := sprintf(format, args...) - logMessage(LL_FATAL, fname, lineno, message) + logMessage(llFatal, fname, lineno, message) panic(pkglintFatal{}) } func errorf(fname, lineno, format string, args ...interface{}) bool { message := sprintf(format, args...) - logMessage(LL_ERROR, fname, lineno, message) + logMessage(llError, fname, lineno, message) G.errors++ return true } func warnf(fname, lineno, format string, args ...interface{}) bool { message := sprintf(format, args...) - logMessage(LL_WARN, fname, lineno, message) + logMessage(llWarn, fname, lineno, message) G.warnings++ return true } func notef(fname, lineno, format string, args ...interface{}) bool { message := sprintf(format, args...) - logMessage(LL_NOTE, fname, lineno, message) + logMessage(llNote, fname, lineno, message) return true } func debugf(fname, lineno, format string, args ...interface{}) bool { message := sprintf(format, args...) - logMessage(LL_DEBUG, fname, lineno, message) + logMessage(llDebug, fname, lineno, message) return true } diff --git a/pkgtools/pkglint/files/makefiles.go b/pkgtools/pkglint/files/makefiles.go index 49c991fd03d..681712e7105 100644 --- a/pkgtools/pkglint/files/makefiles.go +++ b/pkgtools/pkglint/files/makefiles.go @@ -479,22 +479,22 @@ func ChecklinesMk(lines []*Line) { } // Check if any of the value's types is not guessed. - guessed := GUESSED + guessed := guGuessed for _, value := range splitOnSpace(values) { if m, vname := match1(value, `^\$\{(.*)\}`); m { vartype := getVariableType(line, vname) if vartype != nil && !vartype.guessed { - guessed = NOT_GUESSED + guessed = guNotGuessed } } } - forLoopType := &Vartype{LK_SPACE, CheckvarUnchecked, []AclEntry{{"*", "pu"}}, guessed} + forLoopType := &Vartype{lkSpace, CheckvarUnchecked, []AclEntry{{"*", "pu"}}, guessed} forLoopContext := &VarUseContext{ - VUC_TIME_LOAD, + vucTimeParse, forLoopType, - VUC_SHW_FOR, - VUC_EXT_WORD, + vucQuotFor, + vucExtentWord, } for _, fvar := range extractUsedVariables(line, values) { checklineMkVaruse(line, fvar, "", forLoopContext) diff --git a/pkgtools/pkglint/files/mkline.go b/pkgtools/pkglint/files/mkline.go index e4f8201309f..e72005ec76d 100644 --- a/pkgtools/pkglint/files/mkline.go +++ b/pkgtools/pkglint/files/mkline.go @@ -57,7 +57,7 @@ func checklineMkVaruse(line *Line, varname string, mod string, vuc *VarUseContex vartype := getVariableType(line, varname) if G.opts.WarnExtra && - (vartype == nil || vartype.guessed == GUESSED) && + (vartype == nil || vartype.guessed == guGuessed) && !varIsUsed(varname) && (G.mkContext == nil || !G.mkContext.forVars[varname]) { line.warnf("%s is used but not defined. Spelling mistake?", varname) @@ -73,11 +73,11 @@ func checklineMkVaruse(line *Line, varname string, mod string, vuc *VarUseContex needsQuoting := variableNeedsQuoting(line, varname, vuc) - if vuc.shellword == VUC_SHW_FOR { + if vuc.shellword == vucQuotFor { checklineMkVaruseFor(line, varname, vartype, needsQuoting) } - if G.opts.WarnQuoting && vuc.shellword != VUC_SHW_UNKNOWN && needsQuoting != NQ_DONT_KNOW { + if G.opts.WarnQuoting && vuc.shellword != vucQuotUnknown && needsQuoting != nqDontKnow { checklineMkVaruseShellword(line, varname, vartype, vuc, mod, needsQuoting) } @@ -102,10 +102,10 @@ func checklineMkVarusePerm(line *Line, varname string, vuc *VarUseContext) { isIndirect := false switch { - case vuc.vartype != nil && vuc.vartype.guessed == GUESSED: + case vuc.vartype != nil && vuc.vartype.guessed == guGuessed: // Don't warn about unknown variables. - case vuc.time == VUC_TIME_LOAD && !contains(perms, "p"): + case vuc.time == vucTimeParse && !contains(perms, "p"): isLoadTime = true case vuc.vartype != nil && contains(vuc.vartype.union(), "p") && !contains(perms, "p"): @@ -177,10 +177,10 @@ func checklineMkVaruseFor(line *Line, varname string, vartype *Vartype, needsQuo case vartype == nil: // Cannot check anything here. - case vartype.kindOfList == LK_SPACE: + case vartype.kindOfList == lkSpace: // Fine - case needsQuoting == NQ_DOESNT_MATTER || needsQuoting == NQ_NO: + case needsQuoting == nqDoesntMatter || needsQuoting == nqNo: // Fine, this variable is not supposed to contain special characters. default: @@ -212,8 +212,8 @@ func checklineMkVaruseShellword(line *Line, varname string, vartype *Vartype, vu if mod == ":M*:Q" && !needMstar { line.notef("The :M* modifier is not needed here.") - } else if mod != correctMod && needsQuoting == NQ_YES { - if vuc.shellword == VUC_SHW_PLAIN { + } else if mod != correctMod && needsQuoting == nqYes { + if vuc.shellword == vucQuotPlain { line.warnf("Please use ${%s%s} instead of ${%s%s}.", varname, correctMod, varname, mod) } else { line.warnf("Please use ${%s%s} instead of ${%s%s} and make sure the variable appears outside of any quoting characters.", varname, correctMod, varname, mod) @@ -240,10 +240,10 @@ func checklineMkVaruseShellword(line *Line, varname string, vartype *Vartype, vu } switch needsQuoting { - case NQ_NO: + case nqNo: line.warnf("The :Q operator should not be used for ${%s} here.", varname) line.explain(expl...) - case NQ_DOESNT_MATTER: + case nqDoesntMatter: line.notef("The :Q operator isn't necessary for ${%s} here.", varname) line.explain(expl...) } @@ -407,18 +407,18 @@ func checklineMkVarassign(line *Line, varname, op, value, comment string) { } } - time := VUC_TIME_RUN + time := vucTimeRun switch op { case ":=", "!=": - time = VUC_TIME_LOAD + time = vucTimeParse } usedVars := extractUsedVariables(line, value) vuc := &VarUseContext{ time, getVariableType(line, varname), - VUC_SHW_UNKNOWN, - VUC_EXTENT_UNKNOWN} + vucQuotUnknown, + vucExtentUnknown} for _, usedVar := range usedVars { checklineMkVaruse(line, usedVar, "", vuc) } @@ -507,12 +507,12 @@ func checklineMkVartype(line *Line, varname, op, value, comment string) { case op == "!=": _ = G.opts.DebugMisc && line.debugf("Use of !=: %q", value) - case vartype.kindOfList == LK_NONE: + case vartype.kindOfList == lkNone: checklineMkVartypePrimitive(line, varname, vartype.checker, op, value, comment, vartype.isConsideredList(), vartype.guessed) default: var words []string - if vartype.kindOfList == LK_SPACE { + if vartype.kindOfList == lkSpace { words = splitOnSpace(value) } else { words, _ = splitIntoShellwords(line, value) @@ -520,7 +520,7 @@ func checklineMkVartype(line *Line, varname, op, value, comment string) { for _, word := range words { checklineMkVartypePrimitive(line, varname, vartype.checker, op, word, comment, true, vartype.guessed) - if vartype.kindOfList != LK_SPACE { + if vartype.kindOfList != lkSpace { checklineMkShellword(line, word, true) } } @@ -533,7 +533,7 @@ func checklineMkVartype(line *Line, varname, op, value, comment string) { func checklineMkVartypePrimitive(line *Line, varname string, checker *VarChecker, op, value, comment string, isList bool, guessed Guessed) { defer tracecall("checklineMkVartypePrimitive", varname, op, value, comment, isList, guessed)() - ctx := &VartypeCheck{line, varname, op, value, "", comment, isList, guessed == GUESSED} + ctx := &VartypeCheck{line, varname, op, value, "", comment, isList, guessed == guGuessed} ctx.valueNovar = withoutMakeVariables(line, value, isList) checker.checker(ctx) diff --git a/pkgtools/pkglint/files/mkline_test.go b/pkgtools/pkglint/files/mkline_test.go index 5092b8fac4c..c4d0657910c 100644 --- a/pkgtools/pkglint/files/mkline_test.go +++ b/pkgtools/pkglint/files/mkline_test.go @@ -11,14 +11,14 @@ func (s *Suite) TestChecklineMkVartype_SimpleType(c *check.C) { vartype1 := G.globalData.vartypes["COMMENT"] c.Assert(vartype1, check.NotNil) - c.Check(vartype1.guessed, equals, NOT_GUESSED) + c.Check(vartype1.guessed, equals, guNotGuessed) vartype := getVariableType(line, "COMMENT") c.Assert(vartype, check.NotNil) c.Check(vartype.checker.name, equals, "Comment") - c.Check(vartype.guessed, equals, NOT_GUESSED) - c.Check(vartype.kindOfList, equals, LK_NONE) + c.Check(vartype.guessed, equals, guNotGuessed) + c.Check(vartype.kindOfList, equals, lkNone) checklineMkVartype(line, "COMMENT", "=", "A nice package", "") diff --git a/pkgtools/pkglint/files/package.go b/pkgtools/pkglint/files/package.go index f5a1c716990..57bdd429e7d 100644 --- a/pkgtools/pkglint/files/package.go +++ b/pkgtools/pkglint/files/package.go @@ -68,7 +68,7 @@ func checkdirPackage(pkgpath string) { // we need to handle the Makefile first to get some variables lines := loadPackageMakefile(G.currentDir + "/Makefile") if lines == nil { - errorf(G.currentDir+"/Makefile", NO_LINES, "Cannot be read.") + errorf(G.currentDir+"/Makefile", noLines, "Cannot be read.") return } @@ -116,12 +116,12 @@ func checkdirPackage(pkgpath string) { if G.opts.CheckDistinfo && G.opts.CheckPatches { if havePatches && !haveDistinfo { - warnf(G.currentDir+"/"+ctx.distinfoFile, NO_LINES, "File not found. Please run \"%s makepatchsum\".", confMake) + warnf(G.currentDir+"/"+ctx.distinfoFile, noLines, "File not found. Please run \"%s makepatchsum\".", confMake) } } if !isEmptyDir(G.currentDir + "/scripts") { - warnf(G.currentDir+"/scripts", NO_LINES, "This directory and its contents are deprecated! Please call the script(s) explicitly from the corresponding target(s) in the pkg's Makefile.") + warnf(G.currentDir+"/scripts", noLines, "This directory and its contents are deprecated! Please call the script(s) explicitly from the corresponding target(s) in the pkg's Makefile.") } } @@ -134,16 +134,16 @@ func checkfilePackageMakefile(fname string, lines []*Line) { vardef["META_PACKAGE"] == nil && !fileExists(G.currentDir+"/"+G.pkgContext.pkgdir+"/PLIST") && !fileExists(G.currentDir+"/"+G.pkgContext.pkgdir+"/PLIST.common") { - warnf(fname, NO_LINES, "Neither PLIST nor PLIST.common exist, and PLIST_SRC is unset. Are you sure PLIST handling is ok?") + warnf(fname, noLines, "Neither PLIST nor PLIST.common exist, and PLIST_SRC is unset. Are you sure PLIST handling is ok?") } if (vardef["NO_CHECKSUM"] != nil || vardef["META_PACKAGE"] != nil) && isEmptyDir(G.currentDir+"/"+G.pkgContext.patchdir) { if distinfoFile := G.currentDir + "/" + G.pkgContext.distinfoFile; fileExists(distinfoFile) { - warnf(distinfoFile, NO_LINES, "This file should not exist if NO_CHECKSUM or META_PACKAGE is set.") + warnf(distinfoFile, noLines, "This file should not exist if NO_CHECKSUM or META_PACKAGE is set.") } } else { if distinfoFile := G.currentDir + "/" + G.pkgContext.distinfoFile; !containsVarRef(distinfoFile) && !fileExists(distinfoFile) { - warnf(distinfoFile, NO_LINES, "File not found. Please run \"%s makesum\".", confMake) + warnf(distinfoFile, noLines, "File not found. Please run \"%s makesum\".", confMake) } } @@ -153,7 +153,7 @@ func checkfilePackageMakefile(fname string, lines []*Line) { } if vardef["LICENSE"] == nil { - errorf(fname, NO_LINES, "Each package must define its LICENSE.") + errorf(fname, noLines, "Each package must define its LICENSE.") } if vardef["GNU_CONFIGURE"] != nil && vardef["USE_LANGUAGES"] != nil { @@ -208,7 +208,7 @@ func checkfilePackageMakefile(fname string, lines []*Line) { checkpackagePossibleDowngrade() if vardef["COMMENT"] == nil { - warnf(fname, NO_LINES, "No COMMENT given.") + warnf(fname, noLines, "No COMMENT given.") } if vardef["USE_IMAKE"] != nil && vardef["USE_X11"] != nil { diff --git a/pkgtools/pkglint/files/patches.go b/pkgtools/pkglint/files/patches.go index 86f454256a8..b3c82439abd 100644 --- a/pkgtools/pkglint/files/patches.go +++ b/pkgtools/pkglint/files/patches.go @@ -10,13 +10,13 @@ import ( type FileType int const ( - FT_SOURCE FileType = iota - FT_SHELL - FT_MAKE - FT_TEXT - FT_CONFIGURE - FT_IGNORE - FT_UNKNOWN + ftSource FileType = iota + ftShell + ftMakefile + ftText + ftConfigure + ftIgnore + ftUnknown ) // This is used to select the proper subroutine for detecting absolute pathnames. @@ -27,24 +27,24 @@ func guessFileType(line *Line, fname string) FileType { switch { case matches(basename, `^I?[Mm]akefile|\.ma?k$`): - return FT_MAKE + return ftMakefile case basename == "configure" || basename == "configure.ac": - return FT_CONFIGURE + return ftConfigure } switch ext { case "m4", "sh": - return FT_SHELL + return ftShell case "c", "cc", "cpp", "cxx", "el", "h", "hh", "hpp", "l", "pl", "pm", "py", "s", "t", "y": - return FT_SOURCE + return ftSource case "conf", "html", "info", "man", "po", "tex", "texi", "texinfo", "txt", "xml": - return FT_TEXT + return ftText case "": - return FT_UNKNOWN + return ftUnknown } _ = G.opts.DebugMisc && line.debugf("Unknown file type for %q", fname) - return FT_UNKNOWN + return ftUnknown } func checkwordAbsolutePathname(line *Line, word string) { @@ -136,20 +136,20 @@ const ( type PatchState string const ( - PST_OUTSIDE PatchState = "PST_OUTSIDE" // Outside of a diff - - PST_CTX_FILE_ADD PatchState = "PST_CTX_FILE_ADD" // After the DeleteFile line of a context diff - PST_CTX_HUNK PatchState = "PST_CTX_HUNK" // After the AddFile line of a context diff - PST_CTX_HUNK_DEL PatchState = "PST_CTX_HUNK_DEL" // - PST_CTX_LINE_DEL0 PatchState = "PST_CTX_LINE_DEL0" // - PST_CTX_LINE_DEL PatchState = "PST_CTX_LINE_DEL" // - PST_CTX_LINE_ADD0 PatchState = "PST_CTX_LINE_ADD0" // - PST_CTX_LINE_ADD PatchState = "PST_CTX_LINE_ADD" // - - PST_UNI_FILE_DEL_ERR PatchState = "PST_UNI_FILE_DEL_ERR" // Sometimes, the DeleteFile and AddFile are reversed - PST_UNI_FILE_ADD PatchState = "PST_UNI_FILE_ADD" // After the DeleteFile line of a unified diff - PST_UNI_HUNK PatchState = "PST_UNI_HUNK" // After the AddFile line of a unified diff - PST_UNI_LINE PatchState = "PST_UNI_LINE" // After reading the hunk header + pstOutside PatchState = "pstOutside" // Outside of a diff + + pstCtxFileAdd PatchState = "pstCtxFileAdd" // After the DeleteFile line of a context diff + pstCtxHunk PatchState = "pstCtxHunk" // After the AddFile line of a context diff + pstCtxHunkDel PatchState = "pstCtxHunkDel" // + pstCtxLineDel0 PatchState = "pstCtxLineDel0" // + pstCtxLineDel PatchState = "pstCtxLineDel" // + pstCtxLineAdd0 PatchState = "pstCtxLineAdd0" // + pstCtxLineAdd PatchState = "pstCtxLineAdd" // + + pstUniFileDelErr PatchState = "pstUniFileDelErr" // Sometimes, the DeleteFile and AddFile are reversed + pstUniFileAdd PatchState = "pstUniFileAdd" // After the DeleteFile line of a unified diff + pstUniHunk PatchState = "pstUniHunk" // After the AddFile line of a unified diff + pstUniLine PatchState = "pstUniLine" // After reading the hunk header ) func ptNop(ctx *CheckPatchContext) {} @@ -202,27 +202,27 @@ func (ctx *CheckPatchContext) checkBeginDiff() { } var patchTransitions = map[PatchState][]transition{ - PST_OUTSIDE: { - {rePatchEmpty, PST_OUTSIDE, (*CheckPatchContext).checkOutside}, - {rePatchTextError, PST_OUTSIDE, (*CheckPatchContext).checkOutside}, - {rePatchCtxFileDel, PST_CTX_FILE_ADD, func(ctx *CheckPatchContext) { + pstOutside: { + {rePatchEmpty, pstOutside, (*CheckPatchContext).checkOutside}, + {rePatchTextError, pstOutside, (*CheckPatchContext).checkOutside}, + {rePatchCtxFileDel, pstCtxFileAdd, func(ctx *CheckPatchContext) { ctx.checkBeginDiff() ctx.line.warnf("Please use unified diffs (diff -u) for patches.") }}, - {rePatchUniFileDel, PST_UNI_FILE_ADD, (*CheckPatchContext).checkBeginDiff}, - {rePatchUniFileAdd, PST_UNI_FILE_DEL_ERR, ptUniFileAdd}, - {rePatchNonempty, PST_OUTSIDE, (*CheckPatchContext).checkOutside}, + {rePatchUniFileDel, pstUniFileAdd, (*CheckPatchContext).checkBeginDiff}, + {rePatchUniFileAdd, pstUniFileDelErr, ptUniFileAdd}, + {rePatchNonempty, pstOutside, (*CheckPatchContext).checkOutside}, }, - PST_UNI_FILE_DEL_ERR: { - {rePatchUniFileDel, PST_UNI_HUNK, func(ctx *CheckPatchContext) { + pstUniFileDelErr: { + {rePatchUniFileDel, pstUniHunk, func(ctx *CheckPatchContext) { ctx.line.warnf("Unified diff headers should be first ---, then +++.") }}, - {"", PST_OUTSIDE, ptNop}, + {"", pstOutside, ptNop}, }, - PST_CTX_FILE_ADD: { - {rePatchCtxFileAdd, PST_CTX_HUNK, func(ctx *CheckPatchContext) { + pstCtxFileAdd: { + {rePatchCtxFileAdd, pstCtxHunk, func(ctx *CheckPatchContext) { ctx.currentFilename = ctx.m[1] ctx.currentFiletype = new(FileType) *ctx.currentFiletype = guessFileType(ctx.line, ctx.currentFilename) @@ -232,15 +232,15 @@ var patchTransitions = map[PatchState][]transition{ }}, }, - PST_CTX_HUNK: { - {rePatchCtxHunk, PST_CTX_HUNK_DEL, func(ctx *CheckPatchContext) { + pstCtxHunk: { + {rePatchCtxHunk, pstCtxHunkDel, func(ctx *CheckPatchContext) { ctx.hunks++ }}, - {"", PST_OUTSIDE, ptNop}, + {"", pstOutside, ptNop}, }, - PST_CTX_HUNK_DEL: { - {rePatchCtxHunkDel, PST_CTX_LINE_DEL0, func(ctx *CheckPatchContext) { + pstCtxHunkDel: { + {rePatchCtxHunkDel, pstCtxLineDel0, func(ctx *CheckPatchContext) { if ctx.m[2] != "" { ctx.dellines = 1 + toInt(ctx.m[2]) - toInt(ctx.m[1]) } else { @@ -249,17 +249,17 @@ var patchTransitions = map[PatchState][]transition{ }}, }, - PST_CTX_LINE_DEL0: { - {rePatchCtxLineContext, PST_CTX_LINE_DEL, func(ctx *CheckPatchContext) { - ctx.checkHunkLine(1, 0, PST_CTX_LINE_DEL0) + pstCtxLineDel0: { + {rePatchCtxLineContext, pstCtxLineDel, func(ctx *CheckPatchContext) { + ctx.checkHunkLine(1, 0, pstCtxLineDel0) }}, - {rePatchCtxLineDel, PST_CTX_LINE_DEL, func(ctx *CheckPatchContext) { - ctx.checkHunkLine(1, 0, PST_CTX_LINE_DEL0) + {rePatchCtxLineDel, pstCtxLineDel, func(ctx *CheckPatchContext) { + ctx.checkHunkLine(1, 0, pstCtxLineDel0) }}, - {rePatchCtxLineMod, PST_CTX_LINE_DEL, func(ctx *CheckPatchContext) { - ctx.checkHunkLine(1, 0, PST_CTX_LINE_DEL0) + {rePatchCtxLineMod, pstCtxLineDel, func(ctx *CheckPatchContext) { + ctx.checkHunkLine(1, 0, pstCtxLineDel0) }}, - {rePatchCtxHunkAdd, PST_CTX_LINE_ADD0, func(ctx *CheckPatchContext) { + {rePatchCtxHunkAdd, pstCtxLineAdd0, func(ctx *CheckPatchContext) { ctx.dellines = 0 if 2 < len(ctx.m) { ctx.addlines = 1 + toInt(ctx.m[2]) - toInt(ctx.m[1]) @@ -269,59 +269,59 @@ var patchTransitions = map[PatchState][]transition{ }}, }, - PST_CTX_LINE_DEL: { - {rePatchCtxLineContext, PST_CTX_LINE_DEL, func(ctx *CheckPatchContext) { - ctx.checkHunkLine(1, 0, PST_CTX_LINE_DEL0) + pstCtxLineDel: { + {rePatchCtxLineContext, pstCtxLineDel, func(ctx *CheckPatchContext) { + ctx.checkHunkLine(1, 0, pstCtxLineDel0) }}, - {rePatchCtxLineDel, PST_CTX_LINE_DEL, func(ctx *CheckPatchContext) { - ctx.checkHunkLine(1, 0, PST_CTX_LINE_DEL0) + {rePatchCtxLineDel, pstCtxLineDel, func(ctx *CheckPatchContext) { + ctx.checkHunkLine(1, 0, pstCtxLineDel0) }}, - {rePatchCtxLineMod, PST_CTX_LINE_DEL, func(ctx *CheckPatchContext) { - ctx.checkHunkLine(1, 0, PST_CTX_LINE_DEL0) + {rePatchCtxLineMod, pstCtxLineDel, func(ctx *CheckPatchContext) { + ctx.checkHunkLine(1, 0, pstCtxLineDel0) }}, - {"", PST_CTX_LINE_DEL0, func(ctx *CheckPatchContext) { + {"", pstCtxLineDel0, func(ctx *CheckPatchContext) { if ctx.dellines != 0 { ctx.line.warnf("Invalid number of deleted lines (%d missing).", ctx.dellines) } }}, }, - PST_CTX_LINE_ADD0: { - {rePatchCtxLineContext, PST_CTX_LINE_ADD, func(ctx *CheckPatchContext) { - ctx.checkHunkLine(0, 1, PST_CTX_HUNK) + pstCtxLineAdd0: { + {rePatchCtxLineContext, pstCtxLineAdd, func(ctx *CheckPatchContext) { + ctx.checkHunkLine(0, 1, pstCtxHunk) }}, - {rePatchCtxLineMod, PST_CTX_LINE_ADD, func(ctx *CheckPatchContext) { - ctx.checkHunkLine(0, 1, PST_CTX_HUNK) + {rePatchCtxLineMod, pstCtxLineAdd, func(ctx *CheckPatchContext) { + ctx.checkHunkLine(0, 1, pstCtxHunk) }}, - {rePatchCtxLineAdd, PST_CTX_LINE_ADD, func(ctx *CheckPatchContext) { - ctx.checkHunkLine(0, 1, PST_CTX_HUNK) + {rePatchCtxLineAdd, pstCtxLineAdd, func(ctx *CheckPatchContext) { + ctx.checkHunkLine(0, 1, pstCtxHunk) }}, - {"", PST_CTX_HUNK, ptNop}, + {"", pstCtxHunk, ptNop}, }, - PST_CTX_LINE_ADD: { - {rePatchCtxLineContext, PST_CTX_LINE_ADD, func(ctx *CheckPatchContext) { - ctx.checkHunkLine(0, 1, PST_CTX_HUNK) + pstCtxLineAdd: { + {rePatchCtxLineContext, pstCtxLineAdd, func(ctx *CheckPatchContext) { + ctx.checkHunkLine(0, 1, pstCtxHunk) }}, - {rePatchCtxLineMod, PST_CTX_LINE_ADD, func(ctx *CheckPatchContext) { - ctx.checkHunkLine(0, 1, PST_CTX_HUNK) + {rePatchCtxLineMod, pstCtxLineAdd, func(ctx *CheckPatchContext) { + ctx.checkHunkLine(0, 1, pstCtxHunk) }}, - {rePatchCtxLineAdd, PST_CTX_LINE_ADD, func(ctx *CheckPatchContext) { - ctx.checkHunkLine(0, 1, PST_CTX_HUNK) + {rePatchCtxLineAdd, pstCtxLineAdd, func(ctx *CheckPatchContext) { + ctx.checkHunkLine(0, 1, pstCtxHunk) }}, - {"", PST_CTX_LINE_ADD0, func(ctx *CheckPatchContext) { + {"", pstCtxLineAdd0, func(ctx *CheckPatchContext) { if ctx.addlines != 0 { ctx.line.warnf("Invalid number of added lines (%d missing).", ctx.addlines) } }}, }, - PST_UNI_FILE_ADD: { - {rePatchUniFileAdd, PST_UNI_HUNK, ptUniFileAdd}, + pstUniFileAdd: { + {rePatchUniFileAdd, pstUniHunk, ptUniFileAdd}, }, - PST_UNI_HUNK: { - {rePatchUniHunk, PST_UNI_LINE, func(ctx *CheckPatchContext) { + pstUniHunk: { + {rePatchUniHunk, pstUniLine, func(ctx *CheckPatchContext) { m := ctx.m if m[1] != "" { ctx.dellines = toInt(m[2]) @@ -350,33 +350,33 @@ var patchTransitions = map[PatchState][]transition{ ctx.leadingContextLines = 0 ctx.trailingContextLines = 0 }}, - {"", PST_OUTSIDE, func(ctx *CheckPatchContext) { + {"", pstOutside, func(ctx *CheckPatchContext) { if ctx.hunks == 0 { ctx.line.warnf("No hunks for file %q.", ctx.currentFilename) } }}, }, - PST_UNI_LINE: { - {rePatchUniLineDel, PST_UNI_LINE, func(ctx *CheckPatchContext) { - ctx.checkHunkLine(1, 0, PST_UNI_HUNK) + pstUniLine: { + {rePatchUniLineDel, pstUniLine, func(ctx *CheckPatchContext) { + ctx.checkHunkLine(1, 0, pstUniHunk) }}, - {rePatchUniLineAdd, PST_UNI_LINE, func(ctx *CheckPatchContext) { - ctx.checkHunkLine(0, 1, PST_UNI_HUNK) + {rePatchUniLineAdd, pstUniLine, func(ctx *CheckPatchContext) { + ctx.checkHunkLine(0, 1, pstUniHunk) }}, - {rePatchUniLineContext, PST_UNI_LINE, func(ctx *CheckPatchContext) { - ctx.checkHunkLine(1, 1, PST_UNI_HUNK) + {rePatchUniLineContext, pstUniLine, func(ctx *CheckPatchContext) { + ctx.checkHunkLine(1, 1, pstUniHunk) }}, - {rePatchUniLineNoNewline, PST_UNI_LINE, func(ctx *CheckPatchContext) { + {rePatchUniLineNoNewline, pstUniLine, func(ctx *CheckPatchContext) { }}, - {rePatchEmpty, PST_UNI_LINE, func(ctx *CheckPatchContext) { + {rePatchEmpty, pstUniLine, func(ctx *CheckPatchContext) { if G.opts.WarnSpace { ctx.line.notef("Leading white-space missing in hunk.") ctx.line.replaceRegex(`^`, " ") } - ctx.checkHunkLine(1, 1, PST_UNI_HUNK) + ctx.checkHunkLine(1, 1, pstUniHunk) }}, - {"", PST_UNI_HUNK, func(ctx *CheckPatchContext) { + {"", pstUniHunk, func(ctx *CheckPatchContext) { if ctx.dellines != 0 || ctx.addlines != 0 { ctx.line.warnf("Unexpected end of hunk (-%d,+%d expected).", ctx.dellines, ctx.addlines) } @@ -389,7 +389,7 @@ func checklinesPatch(lines []*Line) { checklineRcsid(lines[0], ``, "") - ctx := CheckPatchContext{state: PST_OUTSIDE, needEmptyLineNow: true} + ctx := CheckPatchContext{state: pstOutside, needEmptyLineNow: true} for lineno := 1; lineno < len(lines); { line := lines[lineno] text := line.text @@ -424,13 +424,13 @@ func checklinesPatch(lines []*Line) { if !found { ctx.line.errorf("Internal pkglint error: checklinesPatch state=%s", ctx.state) - ctx.state = PST_OUTSIDE + ctx.state = pstOutside lineno++ } } fname := lines[0].fname - for ctx.state != PST_OUTSIDE { + for ctx.state != pstOutside { _ = G.opts.DebugPatches && debugf(fname, "EOF", "state=%s hunks=%d del=%d add=%d", ctx.state, ctx.hunks, ctx.dellines, ctx.addlines) @@ -458,9 +458,9 @@ func checklinesPatch(lines []*Line) { } if ctx.patchedFiles > 1 { - warnf(fname, NO_LINES, "Contains patches for %d files, should be only one.", ctx.patchedFiles) + warnf(fname, noLines, "Contains patches for %d files, should be only one.", ctx.patchedFiles) } else if ctx.patchedFiles == 0 { - errorf(fname, NO_LINES, "Contains no patch.") + errorf(fname, noLines, "Contains no patch.") } checklinesTrailingEmptyLines(lines) @@ -523,8 +523,8 @@ func (ctx *CheckPatchContext) checkAddedContents() { addedText := ctx.m[1] switch *ctx.currentFiletype { - case FT_SHELL: - case FT_MAKE: + case ftShell: + case ftMakefile: // This check is not as accurate as the similar one in checklineMkShelltext. shellwords, _ := splitIntoShellwords(line, addedText) for _, shellword := range shellwords { @@ -532,9 +532,9 @@ func (ctx *CheckPatchContext) checkAddedContents() { checklineMkAbsolutePathname(line, shellword) } } - case FT_SOURCE: + case ftSource: checklineSourceAbsolutePathname(line, addedText) - case FT_CONFIGURE: + case ftConfigure: if matches(addedText, `: Avoid regenerating within pkgsrc$`) { line.errorf("This code must not be included in patches.") line.explain( @@ -543,7 +543,7 @@ func (ctx *CheckPatchContext) checkAddedContents() { "For more details, look for \"configure-scripts-override\" in", "mk/configure/gnu-configure.mk.") } - case FT_IGNORE: + case ftIgnore: break default: checklineOtherAbsolutePathname(line, addedText) diff --git a/pkgtools/pkglint/files/pkglint.go b/pkgtools/pkglint/files/pkglint.go index b188e129472..020d79c80d2 100644 --- a/pkgtools/pkglint/files/pkglint.go +++ b/pkgtools/pkglint/files/pkglint.go @@ -42,12 +42,12 @@ func loadPackageMakefile(fname string) []*Line { var mainLines, allLines []*Line if !readMakefile(fname, &mainLines, &allLines) { - errorf(fname, NO_LINES, "Cannot be read.") + errorf(fname, noLines, "Cannot be read.") return nil } if G.opts.DumpMakefile { - debugf(G.currentDir, NO_LINES, "Whole Makefile (with all included files) follows:") + debugf(G.currentDir, noLines, "Whole Makefile (with all included files) follows:") for _, line := range allLines { fmt.Printf("%s\n", line.String()) } @@ -128,11 +128,11 @@ func getVariableType(line *Line, varname string) *Vartype { } if G.globalData.varnameToToolname[varname] != "" { - return &Vartype{LK_NONE, CheckvarShellCommand, []AclEntry{{"*", "u"}}, NOT_GUESSED} + return &Vartype{lkNone, CheckvarShellCommand, []AclEntry{{"*", "u"}}, guNotGuessed} } if m, toolvarname := match1(varname, `^TOOLS_(.*)`); m && G.globalData.varnameToToolname[toolvarname] != "" { - return &Vartype{LK_NONE, CheckvarPathname, []AclEntry{{"*", "u"}}, NOT_GUESSED} + return &Vartype{lkNone, CheckvarPathname, []AclEntry{{"*", "u"}}, guNotGuessed} } allowAll := []AclEntry{{"*", "adpsu"}} @@ -142,33 +142,33 @@ func getVariableType(line *Line, varname string) *Vartype { var gtype *Vartype switch { case hasSuffix(varname, "DIRS"): - gtype = &Vartype{LK_SHELL, CheckvarPathmask, allowRuntime, GUESSED} + gtype = &Vartype{lkShell, CheckvarPathmask, allowRuntime, guGuessed} case hasSuffix(varname, "DIR"), hasSuffix(varname, "_HOME"): - gtype = &Vartype{LK_NONE, CheckvarPathname, allowRuntime, GUESSED} + gtype = &Vartype{lkNone, CheckvarPathname, allowRuntime, guGuessed} case hasSuffix(varname, "FILES"): - gtype = &Vartype{LK_SHELL, CheckvarPathmask, allowRuntime, GUESSED} + gtype = &Vartype{lkShell, CheckvarPathmask, allowRuntime, guGuessed} case hasSuffix(varname, "FILE"): - gtype = &Vartype{LK_NONE, CheckvarPathname, allowRuntime, GUESSED} + gtype = &Vartype{lkNone, CheckvarPathname, allowRuntime, guGuessed} case hasSuffix(varname, "PATH"): - gtype = &Vartype{LK_NONE, CheckvarPathlist, allowRuntime, GUESSED} + gtype = &Vartype{lkNone, CheckvarPathlist, allowRuntime, guGuessed} case hasSuffix(varname, "PATHS"): - gtype = &Vartype{LK_SHELL, CheckvarPathname, allowRuntime, GUESSED} + gtype = &Vartype{lkShell, CheckvarPathname, allowRuntime, guGuessed} case hasSuffix(varname, "_USER"): - gtype = &Vartype{LK_NONE, CheckvarUserGroupName, allowAll, GUESSED} + gtype = &Vartype{lkNone, CheckvarUserGroupName, allowAll, guGuessed} case hasSuffix(varname, "_GROUP"): - gtype = &Vartype{LK_NONE, CheckvarUserGroupName, allowAll, GUESSED} + gtype = &Vartype{lkNone, CheckvarUserGroupName, allowAll, guGuessed} case hasSuffix(varname, "_ENV"): - gtype = &Vartype{LK_SHELL, CheckvarShellWord, allowRuntime, GUESSED} + gtype = &Vartype{lkShell, CheckvarShellWord, allowRuntime, guGuessed} case hasSuffix(varname, "_CMD"): - gtype = &Vartype{LK_NONE, CheckvarShellCommand, allowRuntime, GUESSED} + gtype = &Vartype{lkNone, CheckvarShellCommand, allowRuntime, guGuessed} case hasSuffix(varname, "_ARGS"): - gtype = &Vartype{LK_SHELL, CheckvarShellWord, allowRuntime, GUESSED} + gtype = &Vartype{lkShell, CheckvarShellWord, allowRuntime, guGuessed} case hasSuffix(varname, "_CFLAGS"), hasSuffix(varname, "_CPPFLAGS"), hasSuffix(varname, "_CXXFLAGS"), hasSuffix(varname, "_LDFLAGS"): - gtype = &Vartype{LK_SHELL, CheckvarShellWord, allowRuntime, GUESSED} + gtype = &Vartype{lkShell, CheckvarShellWord, allowRuntime, guGuessed} case hasSuffix(varname, "_MK"): - gtype = &Vartype{LK_NONE, CheckvarUnchecked, allowAll, GUESSED} + gtype = &Vartype{lkNone, CheckvarUnchecked, allowAll, guGuessed} case hasPrefix(varname, "PLIST."): - gtype = &Vartype{LK_NONE, CheckvarYes, allowAll, GUESSED} + gtype = &Vartype{lkNone, CheckvarYes, allowAll, guGuessed} } if gtype != nil { @@ -425,19 +425,19 @@ func checkfile(fname string) { basename := path.Base(fname) if matches(basename, `^(?:work.*|.*~|.*\.orig|.*\.rej)$`) { if G.opts.Import { - errorf(fname, NO_LINES, "Must be cleaned up before committing the package.") + errorf(fname, noLines, "Must be cleaned up before committing the package.") } return } st, err := os.Lstat(fname) if err != nil { - errorf(fname, NO_LINES, "%s", err) + errorf(fname, noLines, "%s", err) return } if st.Mode().IsRegular() && st.Mode().Perm()&0111 != 0 && !isCommitted(fname) { - line := NewLine(fname, NO_LINES, "", nil) + line := NewLine(fname, noLines, "", nil) line.warnf("Should not be executable.") line.explain( "No package file should ever be executable. Even the INSTALL and", @@ -454,16 +454,16 @@ func checkfile(fname string) { case matches(fname, `(?:^|/)files/[^/]*$`): // Ok case !isEmptyDir(fname): - warnf(fname, NO_LINES, "Unknown directory name.") + warnf(fname, noLines, "Unknown directory name.") } case st.Mode()&os.ModeSymlink != 0: if !matches(basename, `^work`) { - warnf(fname, NO_LINES, "Unknown symlink name.") + warnf(fname, noLines, "Unknown symlink name.") } case !st.Mode().IsRegular(): - errorf(fname, NO_LINES, "Only files and directories are allowed in pkgsrc.") + errorf(fname, noLines, "Only files and directories are allowed in pkgsrc.") case basename == "ALTERNATIVES": if G.opts.CheckAlternatives { @@ -512,11 +512,11 @@ func checkfile(fname string) { case matches(fname, `(?:^|/)patches/manual[^/]*$`): if G.opts.DebugUnchecked { - debugf(fname, NO_LINES, "Unchecked file %q.", fname) + debugf(fname, noLines, "Unchecked file %q.", fname) } case matches(fname, `(?:^|/)patches/[^/]*$`): - warnf(fname, NO_LINES, "Patch files should be named \"patch-\", followed by letters, '-', '_', '.', and digits only.") + warnf(fname, noLines, "Patch files should be named \"patch-\", followed by letters, '-', '_', '.', and digits only.") case matches(basename, `^(?:.*\.mk|Makefile.*)$`) && !matches(fname, `files/`) && !matches(fname, `patches/`): if G.opts.CheckMk { @@ -541,7 +541,7 @@ func checkfile(fname string) { // Skip default: - warnf(fname, NO_LINES, "Unexpected file found.") + warnf(fname, noLines, "Unexpected file found.") if G.opts.CheckExtra { checkfileExtra(fname) } diff --git a/pkgtools/pkglint/files/plist.go b/pkgtools/pkglint/files/plist.go index da8f49c3c4b..40d5fec0897 100644 --- a/pkgtools/pkglint/files/plist.go +++ b/pkgtools/pkglint/files/plist.go @@ -43,7 +43,7 @@ func checklinesPlist(lines []*Line) { } // Collect all files and directories that appear in the PLIST file. - for _, line := range append(extraLines, lines...) { + for _, line := range append(append([]*Line(nil), extraLines...), lines...) { text := line.text if hasPrefix(text, "${") { diff --git a/pkgtools/pkglint/files/shell.go b/pkgtools/pkglint/files/shell.go index e7606ba27de..190bb7614d8 100644 --- a/pkgtools/pkglint/files/shell.go +++ b/pkgtools/pkglint/files/shell.go @@ -59,29 +59,29 @@ const ( type scState string const ( - SCST_START scState = "start" - SCST_CONT scState = "continuation" - SCST_INSTALL scState = "install" - SCST_INSTALL_D scState = "install -d" - SCST_MKDIR scState = "mkdir" - SCST_PAX scState = "pax" - SCST_PAX_S scState = "pax -s" - SCST_SED scState = "sed" - SCST_SED_E scState = "sed -e" - SCST_SET scState = "set" - SCST_SET_CONT scState = "set-continuation" - SCST_COND scState = "cond" - SCST_COND_CONT scState = "cond-continuation" - SCST_CASE scState = "case" - SCST_CASE_IN scState = "case in" - SCST_CASE_LABEL scState = "case label" - SCST_CASE_LABEL_CONT scState = "case-label-continuation" - SCST_FOR scState = "for" - SCST_FOR_IN scState = "for-in" - SCST_FOR_CONT scState = "for-continuation" - SCST_ECHO scState = "echo" - SCST_INSTALL_DIR scState = "install-dir" - SCST_INSTALL_DIR2 scState = "install-dir2" + scstStart scState = "start" + scstCont scState = "continuation" + scstInstall scState = "install" + scstInstallD scState = "install -d" + scstMkdir scState = "mkdir" + scstPax scState = "pax" + scstPaxS scState = "pax -s" + scstSed scState = "sed" + scstSedE scState = "sed -e" + scstSet scState = "set" + scstSetCont scState = "set-continuation" + scstCond scState = "cond" + scstCondCont scState = "cond-continuation" + scstCase scState = "case" + scstCaseIn scState = "case in" + scstCaseLabel scState = "case label" + scstCaseLabelCont scState = "case-label-continuation" + scstFor scState = "for" + scstForIn scState = "for-in" + scstForCont scState = "for-continuation" + scstEcho scState = "echo" + scstInstallDir scState = "install-dir" + scstInstallDir2 scState = "install-dir2" ) type MkShellLine struct { @@ -99,8 +99,8 @@ func (msline *MkShellLine) checklineMkShellword(shellword string, checkQuoting b return } - shellcommandContextType := &Vartype{LK_NONE, CheckvarShellCommand, []AclEntry{{"*", "adsu"}}, NOT_GUESSED} - shellwordVuc := &VarUseContext{VUC_TIME_UNKNOWN, shellcommandContextType, VUC_SHW_PLAIN, VUC_EXT_WORD} + shellcommandContextType := &Vartype{lkNone, CheckvarShellCommand, []AclEntry{{"*", "adsu"}}, guNotGuessed} + shellwordVuc := &VarUseContext{vucTimeUnknown, shellcommandContextType, vucQuotPlain, vucExtentWord} line := msline.line if m, varname, mod := match2(shellword, `^\$\{(`+reVarnameDirect+`)(:[^{}]+)?\}$`); m { @@ -117,15 +117,15 @@ func (msline *MkShellLine) checklineMkShellword(shellword string, checkQuoting b type ShellwordState string const ( - SWST_PLAIN ShellwordState = "plain" - SWST_SQUOT ShellwordState = "squot" - SWST_DQUOT ShellwordState = "dquot" - SWST_DQUOT_BACKT ShellwordState = "dquot+backt" - SWST_BACKT ShellwordState = "backt" + swstPlain ShellwordState = "plain" + swstSquot ShellwordState = "squot" + swstDquot ShellwordState = "dquot" + swstDquotBackt ShellwordState = "dquot+backt" + swstBackt ShellwordState = "backt" ) rest := shellword - state := SWST_PLAIN + state := swstPlain outer: for rest != "" { _ = G.opts.DebugShell && line.debugf("shell state %s: %q", state, rest) @@ -136,7 +136,7 @@ outer: // reasonable to check the whole shell command // recursively, instead of splitting off the first // make(1) variable. - case state == SWST_BACKT || state == SWST_DQUOT_BACKT: + case state == swstBackt || state == swstDquotBackt: // Scan for the end of the backticks, checking // for single backslashes and removing one level // of backslashes. Backslashes are only removed @@ -148,10 +148,10 @@ outer: for rest != "" { switch { case replacePrefix(&rest, &m, "^`"): - if state == SWST_BACKT { - state = SWST_PLAIN + if state == swstBackt { + state = swstPlain } else { - state = SWST_DQUOT + state = swstDquot } goto endOfBackticks @@ -162,7 +162,7 @@ outer: line.warnf("Backslashes should be doubled inside backticks.") stripped += m[1] - case state == SWST_DQUOT_BACKT && replacePrefix(&rest, &m, `^"`): + case state == swstDquotBackt && replacePrefix(&rest, &m, `^"`): line.warnf("Double quotes inside backticks inside double quotes are error prone.") line.explain( "According to the SUSv3, they produce undefined results.", @@ -197,13 +197,13 @@ outer: } switch { - case state == SWST_PLAIN && hasSuffix(mod, ":Q"): + case state == swstPlain && hasSuffix(mod, ":Q"): // Fine. - case state == SWST_BACKT: + case state == swstBackt: // Don't check anything here, to avoid false positives for tool names. - case (state == SWST_SQUOT || state == SWST_DQUOT) && matches(varname, `^(?:.*DIR|.*FILE|.*PATH|.*_VAR|PREFIX|.*BASE|PKGNAME)$`): + case (state == swstSquot || state == swstDquot) && matches(varname, `^(?:.*DIR|.*FILE|.*PATH|.*_VAR|PREFIX|.*BASE|PKGNAME)$`): // This is ok if we don't allow these variables to have embedded [\$\\\"\'\`]. - case state == SWST_DQUOT && hasSuffix(mod, ":Q"): + case state == swstDquot && hasSuffix(mod, ":Q"): line.warnf("Please don't use the :Q operator in double quotes.") line.explain( "Either remove the :Q or the double quotes. In most cases, it is more", @@ -211,18 +211,18 @@ outer: } if varname != "@" { - vucstate := VUC_SHW_UNKNOWN + vucstate := vucQuotUnknown switch state { - case SWST_PLAIN: - vucstate = VUC_SHW_PLAIN - case SWST_DQUOT: - vucstate = VUC_SHW_DQUOT - case SWST_SQUOT: - vucstate = VUC_SHW_SQUOT - case SWST_BACKT: - vucstate = VUC_SHW_BACKT + case swstPlain: + vucstate = vucQuotPlain + case swstDquot: + vucstate = vucQuotDquot + case swstSquot: + vucstate = vucQuotSquot + case swstBackt: + vucstate = vucQuotBackt } - vuc := &VarUseContext{VUC_TIME_UNKNOWN, shellcommandContextType, vucstate, VUC_EXT_WORDPART} + vuc := &VarUseContext{vucTimeUnknown, shellcommandContextType, vucstate, vucExtentWordpart} checklineMkVaruse(line, varname, mod, vuc) } @@ -245,16 +245,16 @@ outer: } } - case state == SWST_PLAIN: + case state == swstPlain: switch { case replacePrefix(&rest, &m, `^[!#\%&\(\)*+,\-.\/0-9:;<=>?@A-Z\[\]^_a-z{|}~]+`), replacePrefix(&rest, &m, `^\\(?:[ !"#'\(\)*;?\\^{|}]|\$\$)`): case replacePrefix(&rest, &m, `^'`): - state = SWST_SQUOT + state = swstSquot case replacePrefix(&rest, &m, `^"`): - state = SWST_DQUOT + state = swstDquot case replacePrefix(&rest, &m, "^`"): - state = SWST_BACKT + state = swstBackt case replacePrefix(&rest, &m, `^\$\$([0-9A-Z_a-z]+|\#)`), replacePrefix(&rest, &m, `^\$\$\{([0-9A-Z_a-z]+|\#)\}`), replacePrefix(&rest, &m, `^\$\$(\$)\$`): @@ -297,10 +297,10 @@ outer: break outer } - case state == SWST_SQUOT: + case state == swstSquot: switch { case replacePrefix(&rest, &m, `^'`): - state = SWST_PLAIN + state = swstPlain case replacePrefix(&rest, &m, `^[^\$\']+`): // just skip case replacePrefix(&rest, &m, `^\$\$`): @@ -309,12 +309,12 @@ outer: break outer } - case state == SWST_DQUOT: + case state == swstDquot: switch { case replacePrefix(&rest, &m, `^"`): - state = SWST_PLAIN + state = swstPlain case replacePrefix(&rest, &m, "^`"): - state = SWST_DQUOT_BACKT + state = swstDquotBackt case replacePrefix(&rest, &m, "^[^$\"\\\\`]+"): // just skip case replacePrefix(&rest, &m, "^\\\\(?:[\\\\\"`]|\\$\\$)"): @@ -392,24 +392,24 @@ func (msline *MkShellLine) checklineMkShelltext(shelltext string) { msline.checkLineStart(hidden, macro, rest, &setE) } - state := SCST_START + state := scstStart for replacePrefix(&rest, &m, reShellword) { shellword := m[1] _ = G.opts.DebugShell && line.debugf("checklineMkShelltext state=%v shellword=%q", state, shellword) { - quotingNecessary := state != SCST_CASE && - state != SCST_FOR_CONT && - state != SCST_SET_CONT && - !(state == SCST_START && matches(shellword, reShVarassign)) + quotingNecessary := state != scstCase && + state != scstForCont && + state != scstSetCont && + !(state == scstStart && matches(shellword, reShVarassign)) msline.checklineMkShellword(shellword, quotingNecessary) } st := &ShelltextContext{line, state, shellword} st.checkCommandStart() st.checkConditionalCd() - if state != SCST_PAX_S && state != SCST_SED_E && state != SCST_CASE_LABEL { + if state != scstPaxS && state != scstSedE && state != scstCaseLabel { checklineMkAbsolutePathname(line, shellword) } st.checkAutoMkdirs() @@ -420,7 +420,7 @@ func (msline *MkShellLine) checklineMkShelltext(shelltext string) { st.checkPipeExitcode() st.checkSetE(setE) - if state == SCST_SET && matches(shellword, `^-.*e`) || state == SCST_START && shellword == "${RUN}" { + if state == scstSet && matches(shellword, `^-.*e`) || state == scstStart && shellword == "${RUN}" { setE = true } @@ -485,7 +485,7 @@ func (ctx *ShelltextContext) checkCommandStart() { defer tracecall("ShelltextContext.checkCommandStart", ctx.state, ctx.shellword)() line, state, shellword := ctx.line, ctx.state, ctx.shellword - if state != SCST_START && state != SCST_COND { + if state != scstStart && state != scstCond { return } @@ -608,7 +608,7 @@ func (ctx *ShelltextContext) handleComment() bool { func (ctx *ShelltextContext) checkConditionalCd() { line, state, shellword := ctx.line, ctx.state, ctx.shellword - if state == SCST_COND && shellword == "cd" { + if state == scstCond && shellword == "cd" { line.errorf("The Solaris /bin/sh cannot handle \"cd\" inside conditionals.") line.explain( "When the Solaris shell is in \"set -e\" mode and \"cd\" fails, the", @@ -620,9 +620,9 @@ func (ctx *ShelltextContext) checkConditionalCd() { func (ctx *ShelltextContext) checkAutoMkdirs() { line, state, shellword := ctx.line, ctx.state, ctx.shellword - if (state == SCST_INSTALL_D || state == SCST_MKDIR) && matches(shellword, `^(?:\$\{DESTDIR\})?\$\{PREFIX(?:|:Q)\}/`) { + if (state == scstInstallD || state == scstMkdir) && matches(shellword, `^(?:\$\{DESTDIR\})?\$\{PREFIX(?:|:Q)\}/`) { line.warnf("Please use AUTO_MKDIRS instead of %q.", - ifelseStr(state == SCST_MKDIR, "${MKDIR}", "${INSTALL} -d")) + ifelseStr(state == scstMkdir, "${MKDIR}", "${INSTALL} -d")) line.explain( "Setting AUTO_MKDIRS=yes automatically creates all directories that are", "mentioned in the PLIST. If you need additional directories, specify", @@ -630,7 +630,7 @@ func (ctx *ShelltextContext) checkAutoMkdirs() { "${PREFIX}.") } - if (state == SCST_INSTALL_DIR || state == SCST_INSTALL_DIR2) && !matches(shellword, reMkShellvaruse) { + if (state == scstInstallDir || state == scstInstallDir2) && !matches(shellword, reMkShellvaruse) { if m, dirname := match1(shellword, `^(?:\$\{DESTDIR\})?\$\{PREFIX(?:|:Q)\}/(.*)`); m { line.notef("You can use AUTO_MKDIRS=yes or \"INSTALLATION_DIRS+= %s\" instead of this command.", dirname) line.explain( @@ -650,7 +650,7 @@ func (ctx *ShelltextContext) checkAutoMkdirs() { func (ctx *ShelltextContext) checkInstallMulti() { line, state, shellword := ctx.line, ctx.state, ctx.shellword - if state == SCST_INSTALL_DIR2 && hasPrefix(shellword, "$") { + if state == scstInstallDir2 && hasPrefix(shellword, "$") { line.warnf("The INSTALL_*_DIR commands can only handle one directory at a time.") line.explain( "Many implementations of install(1) can handle more, but pkgsrc aims at", @@ -661,7 +661,7 @@ func (ctx *ShelltextContext) checkInstallMulti() { func (ctx *ShelltextContext) checkPaxPe() { line, state, shellword := ctx.line, ctx.state, ctx.shellword - if state == SCST_PAX && shellword == "-pe" { + if state == scstPax && shellword == "-pe" { line.warnf("Please use the -pp option to pax(1) instead of -pe.") line.explain( "The -pe option tells pax to preserve the ownership of the files, which", @@ -673,7 +673,7 @@ func (ctx *ShelltextContext) checkPaxPe() { func (ctx *ShelltextContext) checkQuoteSubstitution() { line, state, shellword := ctx.line, ctx.state, ctx.shellword - if state == SCST_PAX_S || state == SCST_SED_E { + if state == scstPaxS || state == scstSedE { if false && !matches(shellword, `"^[\"\'].*[\"\']$`) { line.warnf("Substitution commands like %q should always be quoted.", shellword) line.explain( @@ -687,7 +687,7 @@ func (ctx *ShelltextContext) checkQuoteSubstitution() { func (ctx *ShelltextContext) checkEchoN() { line, state, shellword := ctx.line, ctx.state, ctx.shellword - if state == SCST_ECHO && shellword == "-n" { + if state == scstEcho && shellword == "-n" { line.warnf("Please use ${ECHO_N} instead of \"echo -n\".") } } @@ -695,7 +695,7 @@ func (ctx *ShelltextContext) checkEchoN() { func (ctx *ShelltextContext) checkPipeExitcode() { line, state, shellword := ctx.line, ctx.state, ctx.shellword - if G.opts.WarnExtra && state != SCST_CASE_LABEL_CONT && shellword == "|" { + if G.opts.WarnExtra && state != scstCaseLabelCont && shellword == "|" { line.warnf("The exitcode of the left-hand-side command of the pipe operator is ignored.") line.explain( "In a shell command like \"cat *.txt | grep keyword\", if the command", @@ -709,7 +709,7 @@ func (ctx *ShelltextContext) checkPipeExitcode() { func (ctx *ShelltextContext) checkSetE(eflag bool) { line, state, shellword := ctx.line, ctx.state, ctx.shellword - if G.opts.WarnExtra && shellword == ";" && state != SCST_COND_CONT && state != SCST_FOR_CONT && !eflag { + if G.opts.WarnExtra && shellword == ";" && state != scstCondCont && state != scstForCont && !eflag { line.warnf("Please switch to \"set -e\" mode before using a semicolon to separate commands.") line.explain( "Older versions of the NetBSD make(1) had run the shell commands using", @@ -768,105 +768,105 @@ func (msline *MkShellLine) checkCommandUse(shellcmd string) { func nextState(line *Line, state scState, shellword string) scState { switch { case shellword == ";;": - return SCST_CASE_LABEL - case state == SCST_CASE_LABEL_CONT && shellword == "|": - return SCST_CASE_LABEL + return scstCaseLabel + case state == scstCaseLabelCont && shellword == "|": + return scstCaseLabel case matches(shellword, `^[;&\|]+$`): - return SCST_START - case state == SCST_START: + return scstStart + case state == scstStart: switch shellword { case "${INSTALL}": - return SCST_INSTALL + return scstInstall case "${MKDIR}": - return SCST_MKDIR + return scstMkdir case "${PAX}": - return SCST_PAX + return scstPax case "${SED}": - return SCST_SED + return scstSed case "${ECHO}", "echo": - return SCST_ECHO + return scstEcho case "${RUN}", "then", "else", "do", "(": - return SCST_START + return scstStart case "set": - return SCST_SET + return scstSet case "if", "elif", "while": - return SCST_COND + return scstCond case "case": - return SCST_CASE + return scstCase case "for": - return SCST_FOR + return scstFor default: switch { case matches(shellword, `^\$\{INSTALL_[A-Z]+_DIR\}$`): - return SCST_INSTALL_DIR + return scstInstallDir case matches(shellword, reShVarassign): - return SCST_START + return scstStart default: - return SCST_CONT + return scstCont } } - case state == SCST_MKDIR: - return SCST_MKDIR - case state == SCST_INSTALL && shellword == "-d": - return SCST_INSTALL_D - case state == SCST_INSTALL, state == SCST_INSTALL_D: + case state == scstMkdir: + return scstMkdir + case state == scstInstall && shellword == "-d": + return scstInstallD + case state == scstInstall, state == scstInstallD: if matches(shellword, `^-[ogm]$`) { - return SCST_CONT // XXX: why not keep the state? + return scstCont // XXX: why not keep the state? } return state - case state == SCST_INSTALL_DIR && hasPrefix(shellword, "-"): - return SCST_CONT - case state == SCST_INSTALL_DIR && hasPrefix(shellword, "$"): - return SCST_INSTALL_DIR2 - case state == SCST_INSTALL_DIR || state == SCST_INSTALL_DIR2: + case state == scstInstallDir && hasPrefix(shellword, "-"): + return scstCont + case state == scstInstallDir && hasPrefix(shellword, "$"): + return scstInstallDir2 + case state == scstInstallDir || state == scstInstallDir2: return state - case state == SCST_PAX && shellword == "-s": - return SCST_PAX_S - case state == SCST_PAX && hasPrefix(shellword, "-"): - return SCST_PAX - case state == SCST_PAX: - return SCST_CONT - case state == SCST_PAX_S: - return SCST_PAX - case state == SCST_SED && shellword == "-e": - return SCST_SED_E - case state == SCST_SED && hasPrefix(shellword, "-"): - return SCST_SED - case state == SCST_SED: - return SCST_CONT - case state == SCST_SED_E: - return SCST_SED - case state == SCST_SET: - return SCST_SET_CONT - case state == SCST_SET_CONT: - return SCST_SET_CONT - case state == SCST_CASE: - return SCST_CASE_IN - case state == SCST_CASE_IN && shellword == "in": - return SCST_CASE_LABEL - case state == SCST_CASE_LABEL && shellword == "esac": - return SCST_CONT - case state == SCST_CASE_LABEL: - return SCST_CASE_LABEL_CONT - case state == SCST_CASE_LABEL_CONT && shellword == ")": - return SCST_START - case state == SCST_CONT: - return SCST_CONT - case state == SCST_COND: - return SCST_COND_CONT - case state == SCST_COND_CONT: - return SCST_COND_CONT - case state == SCST_FOR: - return SCST_FOR_IN - case state == SCST_FOR_IN && shellword == "in": - return SCST_FOR_CONT - case state == SCST_FOR_CONT: - return SCST_FOR_CONT - case state == SCST_ECHO: - return SCST_CONT + case state == scstPax && shellword == "-s": + return scstPaxS + case state == scstPax && hasPrefix(shellword, "-"): + return scstPax + case state == scstPax: + return scstCont + case state == scstPaxS: + return scstPax + case state == scstSed && shellword == "-e": + return scstSedE + case state == scstSed && hasPrefix(shellword, "-"): + return scstSed + case state == scstSed: + return scstCont + case state == scstSedE: + return scstSed + case state == scstSet: + return scstSetCont + case state == scstSetCont: + return scstSetCont + case state == scstCase: + return scstCaseIn + case state == scstCaseIn && shellword == "in": + return scstCaseLabel + case state == scstCaseLabel && shellword == "esac": + return scstCont + case state == scstCaseLabel: + return scstCaseLabelCont + case state == scstCaseLabelCont && shellword == ")": + return scstStart + case state == scstCont: + return scstCont + case state == scstCond: + return scstCondCont + case state == scstCondCont: + return scstCondCont + case state == scstFor: + return scstForIn + case state == scstForIn && shellword == "in": + return scstForCont + case state == scstForCont: + return scstForCont + case state == scstEcho: + return scstCont default: _ = G.opts.DebugShell && line.errorf("Internal pkglint error: shellword.nextState state=%s shellword=%q", state, shellword) - return SCST_START + return scstStart } } diff --git a/pkgtools/pkglint/files/shell_test.go b/pkgtools/pkglint/files/shell_test.go index 8b47bdfd9fe..013b6d52c9a 100644 --- a/pkgtools/pkglint/files/shell_test.go +++ b/pkgtools/pkglint/files/shell_test.go @@ -54,33 +54,33 @@ func (s *Suite) TestChecklineMkShelltext(c *check.C) { G.mkContext = newMkContext() G.globalData.InitVartypes() - msline.checklineMkShelltext("echo ${PKGNAME:Q}") // VUC_SHW_PLAIN + msline.checklineMkShelltext("echo ${PKGNAME:Q}") // vucQuotPlain c.Check(s.Output(), equals, ""+ "WARN: fname:1: PKGNAME may not be used in this file.\n"+ "NOTE: fname:1: The :Q operator isn't necessary for ${PKGNAME} here.\n") - msline.checklineMkShelltext("echo \"${CFLAGS:Q}\"") // VUC_SHW_DQUOT + msline.checklineMkShelltext("echo \"${CFLAGS:Q}\"") // vucQuotDquot c.Check(s.Output(), equals, ""+ "WARN: fname:1: Please don't use the :Q operator in double quotes.\n"+ "WARN: fname:1: CFLAGS may not be used in this file.\n"+ "WARN: fname:1: Please use ${CFLAGS:M*:Q} instead of ${CFLAGS:Q} and make sure the variable appears outside of any quoting characters.\n") - msline.checklineMkShelltext("echo '${COMMENT:Q}'") // VUC_SHW_SQUOT + msline.checklineMkShelltext("echo '${COMMENT:Q}'") // vucQuotSquot c.Check(s.Output(), equals, "WARN: fname:1: COMMENT may not be used in this file.\n") - - msline.checklineMkShelltext("echo $$@") + + msline.checklineMkShelltext("echo $$@") c.Check(s.Output(), equals, "WARN: fname:1: The $@ shell variable should only be used in double quotes.\n") - + msline.checklineMkShelltext("echo \"$$\"") // As seen by make(1); the shell sees: echo $ - + c.Check(s.Output(), equals, "WARN: fname:1: Unquoted $ or strange shell variable found.\n") - + msline.checklineMkShelltext("echo \"\\n\"") // As seen by make(1); the shell sees: echo "\n" - + c.Check(s.Output(), equals, "WARN: fname:1: Please use \"\\\\n\" instead of \"\\n\".\n") } diff --git a/pkgtools/pkglint/files/util.go b/pkgtools/pkglint/files/util.go index bd11f08ca96..e2b12e22e4e 100644 --- a/pkgtools/pkglint/files/util.go +++ b/pkgtools/pkglint/files/util.go @@ -56,7 +56,7 @@ func isEmptyDir(fname string) bool { func getSubdirs(fname string) []string { dirents, err := ioutil.ReadDir(fname) if err != nil { - fatalf(fname, NO_LINES, "Cannot be read: %s", err) + fatalf(fname, noLines, "Cannot be read: %s", err) } var subdirs []string @@ -368,7 +368,7 @@ func stringStringMapKeys(m map[string]string) []string { func abspath(fname string) string { abs, err := filepath.Abs(fname) if err != nil { - fatalf(fname, NO_LINES, "Cannot determine absolute path.") + fatalf(fname, noLines, "Cannot determine absolute path.") } return filepath.ToSlash(abs) } diff --git a/pkgtools/pkglint/files/vardefs.go b/pkgtools/pkglint/files/vardefs.go index ac2eaa4b538..5ec76322763 100644 --- a/pkgtools/pkglint/files/vardefs.go +++ b/pkgtools/pkglint/files/vardefs.go @@ -3,691 +3,691 @@ package main // This file defines the specific type of some variables. // // There are two types of lists: -// * LK_SHELL is a list whose elements are split by shell rules -// * LK_SPACE is a list whose elements are split by whitespace +// * lkShell is a list whose elements are split by shell rules +// * lkSpace is a list whose elements are split by whitespace // // See vartypecheck.go for how these types are checked. // // Last synced with mk/defaults/mk.conf revision 1.118 func (gd *GlobalData) InitVartypes() { - usr("ALLOW_VULNERABLE_PACKAGES", LK_NONE, CheckvarYes) - usr("MANINSTALL", LK_SHELL, enum("maninstall catinstall")) - usr("MANZ", LK_NONE, CheckvarYes) - usr("GZIP", LK_SHELL, CheckvarShellWord) - usr("MKCRYPTO", LK_NONE, CheckvarYesNo) - usr("OBJHOSTNAME", LK_NONE, CheckvarYes) - usr("OBJMACHINE", LK_NONE, CheckvarYes) - usr("PKG_SUFX", LK_NONE, CheckvarFilename) - usr("PKGSRC_LOCKTYPE", LK_NONE, enum("none sleep once")) - usr("PKGSRC_SLEEPSECS", LK_NONE, CheckvarInteger) - usr("USETBL", LK_NONE, CheckvarYes) - usr("ABI", LK_NONE, enum("32 64")) - usr("PKG_DEVELOPER", LK_NONE, CheckvarYes) - usr("USE_ABI_DEPENDS", LK_NONE, CheckvarYesNo) - usr("PKG_REGISTER_SHELLS", LK_NONE, enum("YES NO")) - usr("PKGSRC_COMPILER", LK_SHELL, enum("ccache ccc clang distcc f2c gcc hp icc ido gcc mipspro mipspro-ucode pcc sunpro xlc")) - usr("PKGSRC_MESSAGE_RECIPIENTS", LK_SHELL, CheckvarMailAddress) - usr("PKGSRC_SHOW_BUILD_DEFS", LK_NONE, CheckvarYesNo) - usr("PKGSRC_SHOW_PATCH_ERRORMSG", LK_NONE, CheckvarYesNo) - usr("PKGSRC_RUN_TEST", LK_NONE, CheckvarYesNo) - usr("PREFER_PKGSRC", LK_SHELL, CheckvarIdentifier) - usr("PREFER_NATIVE", LK_SHELL, CheckvarIdentifier) - usr("PREFER_NATIVE_PTHREADS", LK_NONE, CheckvarYesNo) - usr("LOCALBASE", LK_NONE, CheckvarPathname) - usr("CROSSBASE", LK_NONE, CheckvarPathname) - usr("VARBASE", LK_NONE, CheckvarPathname) - usr("X11_TYPE", LK_NONE, enum("modular native")) - usr("X11BASE", LK_NONE, CheckvarPathname) - usr("MOTIFBASE", LK_NONE, CheckvarPathname) - usr("PKGINFODIR", LK_NONE, CheckvarPathname) - usr("PKGMANDIR", LK_NONE, CheckvarPathname) - usr("USE_XPKGWEDGE", LK_NONE, CheckvarYesNo) - usr("BSDSRCDIR", LK_NONE, CheckvarPathname) - usr("BSDXSRCDIR", LK_NONE, CheckvarPathname) - usr("DISTDIR", LK_NONE, CheckvarPathname) - usr("DIST_PATH", LK_NONE, CheckvarPathlist) - usr("DEFAULT_VIEW", LK_NONE, CheckvarUnchecked) - usr("FETCH_CMD", LK_NONE, CheckvarShellCommand) - usr("FETCH_USING", LK_NONE, enum("curl custom fetch ftp manual wget")) - usr("FETCH_RESUME_ARGS", LK_SHELL, CheckvarShellWord) - usr("FETCH_OUTPUT_ARGS", LK_SHELL, CheckvarShellWord) - usr("LIBTOOLIZE_PLIST", LK_NONE, CheckvarYesNo) - usr("PKG_RESUME_TRANSFERS", LK_NONE, CheckvarYesNo) - usr("PKG_SYSCONFBASE", LK_NONE, CheckvarPathname) - usr("RCD_SCRIPTS_DIR", LK_NONE, CheckvarPathname) - usr("PACKAGES", LK_NONE, CheckvarPathname) - usr("PKGVULNDIR", LK_NONE, CheckvarPathname) - usr("PASSIVE_FETCH", LK_NONE, CheckvarYes) - usr("PATCH_FUZZ_FACTOR", LK_NONE, enum("-F0 -F1 -F2 -F3")) - usr("ACCEPTABLE_LICENSES", LK_SHELL, CheckvarIdentifier) - usr("SPECIFIC_PKGS", LK_NONE, CheckvarYes) - usr("SITE_SPECIFIC_PKGS", LK_SHELL, CheckvarPkgPath) - usr("HOST_SPECIFIC_PKGS", LK_SHELL, CheckvarPkgPath) - usr("GROUP_SPECIFIC_PKGS", LK_SHELL, CheckvarPkgPath) - usr("USER_SPECIFIC_PKGS", LK_SHELL, CheckvarPkgPath) - usr("FAILOVER_FETCH", LK_NONE, CheckvarYes) - usr("MASTER_SORT", LK_SHELL, CheckvarUnchecked) - usr("MASTER_SORT_REGEX", LK_SHELL, CheckvarUnchecked) - usr("PATCH_DEBUG", LK_NONE, CheckvarYes) - usr("PKG_FC", LK_NONE, CheckvarShellCommand) - usr("IMAKE", LK_NONE, CheckvarShellCommand) - usr("IMAKEOPTS", LK_SHELL, CheckvarShellWord) - usr("PRE_ROOT_CMD", LK_NONE, CheckvarShellCommand) - pkg("USE_GAMESGROUP", LK_NONE, CheckvarYesNo) - usr("SU_CMD", LK_NONE, CheckvarShellCommand) - usr("SU_CMD_PATH_APPEND", LK_NONE, CheckvarPathlist) - usr("FATAL_OBJECT_FMT_SKEW", LK_NONE, CheckvarYesNo) - usr("WARN_NO_OBJECT_FMT", LK_NONE, CheckvarYesNo) - usr("SMART_MESSAGES", LK_NONE, CheckvarYes) - usr("BINPKG_SITES", LK_SHELL, CheckvarURL) - usr("BIN_INSTALL_FLAG", LK_SHELL, CheckvarShellWord) - usr("LOCALPATCHES", LK_NONE, CheckvarPathname) + usr("ALLOW_VULNERABLE_PACKAGES", lkNone, CheckvarYes) + usr("MANINSTALL", lkShell, enum("maninstall catinstall")) + usr("MANZ", lkNone, CheckvarYes) + usr("GZIP", lkShell, CheckvarShellWord) + usr("MKCRYPTO", lkNone, CheckvarYesNo) + usr("OBJHOSTNAME", lkNone, CheckvarYes) + usr("OBJMACHINE", lkNone, CheckvarYes) + usr("PKG_SUFX", lkNone, CheckvarFilename) + usr("PKGSRC_LOCKTYPE", lkNone, enum("none sleep once")) + usr("PKGSRC_SLEEPSECS", lkNone, CheckvarInteger) + usr("USETBL", lkNone, CheckvarYes) + usr("ABI", lkNone, enum("32 64")) + usr("PKG_DEVELOPER", lkNone, CheckvarYes) + usr("USE_ABI_DEPENDS", lkNone, CheckvarYesNo) + usr("PKG_REGISTER_SHELLS", lkNone, enum("YES NO")) + usr("PKGSRC_COMPILER", lkShell, enum("ccache ccc clang distcc f2c gcc hp icc ido gcc mipspro mipspro-ucode pcc sunpro xlc")) + usr("PKGSRC_MESSAGE_RECIPIENTS", lkShell, CheckvarMailAddress) + usr("PKGSRC_SHOW_BUILD_DEFS", lkNone, CheckvarYesNo) + usr("PKGSRC_SHOW_PATCH_ERRORMSG", lkNone, CheckvarYesNo) + usr("PKGSRC_RUN_TEST", lkNone, CheckvarYesNo) + usr("PREFER_PKGSRC", lkShell, CheckvarIdentifier) + usr("PREFER_NATIVE", lkShell, CheckvarIdentifier) + usr("PREFER_NATIVE_PTHREADS", lkNone, CheckvarYesNo) + usr("LOCALBASE", lkNone, CheckvarPathname) + usr("CROSSBASE", lkNone, CheckvarPathname) + usr("VARBASE", lkNone, CheckvarPathname) + usr("X11_TYPE", lkNone, enum("modular native")) + usr("X11BASE", lkNone, CheckvarPathname) + usr("MOTIFBASE", lkNone, CheckvarPathname) + usr("PKGINFODIR", lkNone, CheckvarPathname) + usr("PKGMANDIR", lkNone, CheckvarPathname) + usr("USE_XPKGWEDGE", lkNone, CheckvarYesNo) + usr("BSDSRCDIR", lkNone, CheckvarPathname) + usr("BSDXSRCDIR", lkNone, CheckvarPathname) + usr("DISTDIR", lkNone, CheckvarPathname) + usr("DIST_PATH", lkNone, CheckvarPathlist) + usr("DEFAULT_VIEW", lkNone, CheckvarUnchecked) + usr("FETCH_CMD", lkNone, CheckvarShellCommand) + usr("FETCH_USING", lkNone, enum("curl custom fetch ftp manual wget")) + usr("FETCH_RESUME_ARGS", lkShell, CheckvarShellWord) + usr("FETCH_OUTPUT_ARGS", lkShell, CheckvarShellWord) + usr("LIBTOOLIZE_PLIST", lkNone, CheckvarYesNo) + usr("PKG_RESUME_TRANSFERS", lkNone, CheckvarYesNo) + usr("PKG_SYSCONFBASE", lkNone, CheckvarPathname) + usr("RCD_SCRIPTS_DIR", lkNone, CheckvarPathname) + usr("PACKAGES", lkNone, CheckvarPathname) + usr("PKGVULNDIR", lkNone, CheckvarPathname) + usr("PASSIVE_FETCH", lkNone, CheckvarYes) + usr("PATCH_FUZZ_FACTOR", lkNone, enum("-F0 -F1 -F2 -F3")) + usr("ACCEPTABLE_LICENSES", lkShell, CheckvarIdentifier) + usr("SPECIFIC_PKGS", lkNone, CheckvarYes) + usr("SITE_SPECIFIC_PKGS", lkShell, CheckvarPkgPath) + usr("HOST_SPECIFIC_PKGS", lkShell, CheckvarPkgPath) + usr("GROUP_SPECIFIC_PKGS", lkShell, CheckvarPkgPath) + usr("USER_SPECIFIC_PKGS", lkShell, CheckvarPkgPath) + usr("FAILOVER_FETCH", lkNone, CheckvarYes) + usr("MASTER_SORT", lkShell, CheckvarUnchecked) + usr("MASTER_SORT_REGEX", lkShell, CheckvarUnchecked) + usr("PATCH_DEBUG", lkNone, CheckvarYes) + usr("PKG_FC", lkNone, CheckvarShellCommand) + usr("IMAKE", lkNone, CheckvarShellCommand) + usr("IMAKEOPTS", lkShell, CheckvarShellWord) + usr("PRE_ROOT_CMD", lkNone, CheckvarShellCommand) + pkg("USE_GAMESGROUP", lkNone, CheckvarYesNo) + usr("SU_CMD", lkNone, CheckvarShellCommand) + usr("SU_CMD_PATH_APPEND", lkNone, CheckvarPathlist) + usr("FATAL_OBJECT_FMT_SKEW", lkNone, CheckvarYesNo) + usr("WARN_NO_OBJECT_FMT", lkNone, CheckvarYesNo) + usr("SMART_MESSAGES", lkNone, CheckvarYes) + usr("BINPKG_SITES", lkShell, CheckvarURL) + usr("BIN_INSTALL_FLAG", lkShell, CheckvarShellWord) + usr("LOCALPATCHES", lkNone, CheckvarPathname) // some other variables, sorted alphabetically - sys(".CURDIR", LK_NONE, CheckvarPathname) - sys(".TARGET", LK_NONE, CheckvarPathname) - acl("ALL_ENV", LK_SHELL, CheckvarShellWord) - acl("ALTERNATIVES_FILE", LK_NONE, CheckvarFilename) - acl("ALTERNATIVES_SRC", LK_SHELL, CheckvarPathname) - pkg("APACHE_MODULE", LK_NONE, CheckvarYes) - sys("AR", LK_NONE, CheckvarShellCommand) - sys("AS", LK_NONE, CheckvarShellCommand) - pkglist("AUTOCONF_REQD", LK_SHELL, CheckvarVersion) - acl("AUTOMAKE_OVERRIDE", LK_SHELL, CheckvarPathmask) - pkglist("AUTOMAKE_REQD", LK_SHELL, CheckvarVersion) - pkg("AUTO_MKDIRS", LK_NONE, CheckvarYesNo) - usr("BATCH", LK_NONE, CheckvarYes) - acl("BDB185_DEFAULT", LK_NONE, CheckvarUnchecked) - sys("BDBBASE", LK_NONE, CheckvarPathname) - pkg("BDB_ACCEPTED", LK_SHELL, enum("db1 db2 db3 db4 db5")) - acl("BDB_DEFAULT", LK_NONE, enum("db1 db2 db3 db4 db5")) - sys("BDB_LIBS", LK_SHELL, CheckvarLdFlag) - sys("BDB_TYPE", LK_NONE, enum("db1 db2 db3 db4 db5")) - sys("BINGRP", LK_NONE, CheckvarUserGroupName) - sys("BINMODE", LK_NONE, CheckvarFileMode) - sys("BINOWN", LK_NONE, CheckvarUserGroupName) - acl("BOOTSTRAP_DEPENDS", LK_SPACE, CheckvarDependencyWithPath, "Makefile.common:a", "Makefile:a", "options.mk:a", "*.mk:a") - pkg("BOOTSTRAP_PKG", LK_NONE, CheckvarYesNo) - acl("BROKEN", LK_NONE, CheckvarMessage) - pkg("BROKEN_GETTEXT_DETECTION", LK_NONE, CheckvarYesNo) - pkglist("BROKEN_EXCEPT_ON_PLATFORM", LK_SHELL, CheckvarPlatformTriple) - pkglist("BROKEN_ON_PLATFORM", LK_SPACE, CheckvarPlatformTriple) - sys("BSD_MAKE_ENV", LK_SHELL, CheckvarShellWord) - acl("BUILDLINK_ABI_DEPENDS.*", LK_SPACE, CheckvarDependency, "*:a") - acl("BUILDLINK_API_DEPENDS.*", LK_SPACE, CheckvarDependency, "*:a") - acl("BUILDLINK_CONTENTS_FILTER", LK_SHELL, CheckvarShellWord) // Should better be ShellCommand - sys("BUILDLINK_CFLAGS", LK_SHELL, CheckvarCFlag) - bl3list("BUILDLINK_CFLAGS.*", LK_SHELL, CheckvarCFlag) - sys("BUILDLINK_CPPFLAGS", LK_SHELL, CheckvarCFlag) - bl3list("BUILDLINK_CPPFLAGS.*", LK_SHELL, CheckvarCFlag) - acl("BUILDLINK_CONTENTS_FILTER.*", LK_NONE, CheckvarShellCommand, "buildlink3.mk:s") - acl("BUILDLINK_DEPENDS", LK_SPACE, CheckvarIdentifier, "buildlink3.mk:a") - acl("BUILDLINK_DEPMETHOD.*", LK_SHELL, CheckvarBuildlinkDepmethod, "buildlink3.mk:ad", "Makefile:as", "Makefile.common:a", "*.mk:a") // FIXME: buildlink3.mk:d may lead to unexpected behavior. - sys("BUILDLINK_DIR", LK_NONE, CheckvarPathname) - bl3list("BUILDLINK_FILES.*", LK_SHELL, CheckvarPathmask) - acl("BUILDLINK_FILES_CMD.*", LK_SHELL, CheckvarShellWord) // Should better be ShellCommand - acl("BUILDLINK_INCDIRS.*", LK_SHELL, CheckvarPathname, "buildlink3.mk:ad") // Should [d]efault really be allowed in buildlink3.mk? - acl("BUILDLINK_JAVA_PREFIX.*", LK_NONE, CheckvarPathname, "buildlink3.mk:s") - acl("BUILDLINK_LDADD.*", LK_SHELL, CheckvarLdFlag, "builtin.mk:adsu", "buildlink3.mk:", "Makefile:u", "Makefile.common:u", "*.mk:u") - sys("BUILDLINK_LDFLAGS", LK_SHELL, CheckvarLdFlag) - bl3list("BUILDLINK_LDFLAGS.*", LK_SHELL, CheckvarLdFlag) - bl3list("BUILDLINK_LIBDIRS.*", LK_SHELL, CheckvarPathname) - acl("BUILDLINK_LIBS.*", LK_SHELL, CheckvarLdFlag, "buildlink3.mk:a") - acl("BUILDLINK_PASSTHRU_DIRS", LK_SHELL, CheckvarPathname, "Makefile:a", "Makefile.common:a", "buildlink3.mk:a", "hacks.mk:a") - acl("BUILDLINK_PASSTHRU_RPATHDIRS", LK_SHELL, CheckvarPathname, "Makefile:a", "Makefile.common:a", "buildlink3.mk:a", "hacks.mk:a") - acl("BUILDLINK_PKGSRCDIR.*", LK_NONE, CheckvarRelativePkgDir, "buildlink3.mk:dp") - acl("BUILDLINK_PREFIX.*", LK_NONE, CheckvarPathname, "builtin.mk:su", "buildlink3.mk:", "Makefile:u", "Makefile.common:u", "*.mk:u") - acl("BUILDLINK_RPATHDIRS.*", LK_SHELL, CheckvarPathname, "buildlink3.mk:a") - acl("BUILDLINK_TARGETS", LK_SHELL, CheckvarIdentifier) - acl("BUILDLINK_FNAME_TRANSFORM.*", LK_NONE, CheckvarSedCommands, "Makefile:a", "builtin.mk:a", "hacks.mk:a", "buildlink3.mk:a") - acl("BUILDLINK_TRANSFORM", LK_SHELL, CheckvarWrapperTransform, "*:a") - acl("BUILDLINK_TREE", LK_SHELL, CheckvarIdentifier, "buildlink3.mk:a") - acl("BUILD_DEFS", LK_SHELL, CheckvarVarname, "Makefile:a", "Makefile.common:a", "options.mk:a") - acl("BUILD_DEPENDS", LK_SPACE, CheckvarDependencyWithPath, "Makefile.common:a", "Makefile:a", "options.mk:a", "*.mk:a") - pkglist("BUILD_DIRS", LK_SHELL, CheckvarWrksrcSubdirectory) - pkglist("BUILD_ENV", LK_SHELL, CheckvarShellWord) - sys("BUILD_MAKE_CMD", LK_NONE, CheckvarShellCommand) - pkglist("BUILD_MAKE_FLAGS", LK_SHELL, CheckvarShellWord) - pkg("BUILD_TARGET", LK_SHELL, CheckvarIdentifier) - pkg("BUILD_USES_MSGFMT", LK_NONE, CheckvarYes) - acl("BUILTIN_PKG", LK_NONE, CheckvarIdentifier, "builtin.mk:psu") - acl("BUILTIN_PKG.*", LK_NONE, CheckvarPkgName, "builtin.mk:psu") - acl("BUILTIN_FIND_FILES_VAR", LK_SHELL, CheckvarVarname, "builtin.mk:s") - acl("BUILTIN_FIND_FILES.*", LK_SHELL, CheckvarPathname, "builtin.mk:s") - acl("BUILTIN_FIND_GREP.*", LK_NONE, CheckvarString, "builtin.mk:s") - acl("BUILTIN_FIND_LIBS", LK_SHELL, CheckvarPathname, "builtin.mk:s") - acl("BUILTIN_IMAKE_CHECK", LK_SHELL, CheckvarUnchecked, "builtin.mk:s") - acl("BUILTIN_IMAKE_CHECK.*", LK_NONE, CheckvarYesNo) - sys("BUILTIN_X11_TYPE", LK_NONE, CheckvarUnchecked) - sys("BUILTIN_X11_VERSION", LK_NONE, CheckvarUnchecked) - acl("CATEGORIES", LK_SHELL, CheckvarCategory, "Makefile:as", "Makefile.common:ads") - sys("CC_VERSION", LK_NONE, CheckvarMessage) - sys("CC", LK_NONE, CheckvarShellCommand) - pkglist("CFLAGS*", LK_SHELL, CheckvarCFlag) // may also be changed by the user - acl("CHECK_BUILTIN", LK_NONE, CheckvarYesNo, "builtin.mk:d", "Makefile:s") - acl("CHECK_BUILTIN.*", LK_NONE, CheckvarYesNo, "*:p") - acl("CHECK_FILES_SKIP", LK_SHELL, CheckvarBasicRegularExpression, "Makefile:a", "Makefile.common:a") - pkg("CHECK_FILES_SUPPORTED", LK_NONE, CheckvarYesNo) - usr("CHECK_HEADERS", LK_NONE, CheckvarYesNo) - pkglist("CHECK_HEADERS_SKIP", LK_SHELL, CheckvarPathmask) - usr("CHECK_INTERPRETER", LK_NONE, CheckvarYesNo) - pkglist("CHECK_INTERPRETER_SKIP", LK_SHELL, CheckvarPathmask) - usr("CHECK_PERMS", LK_NONE, CheckvarYesNo) - pkglist("CHECK_PERMS_SKIP", LK_SHELL, CheckvarPathmask) - usr("CHECK_PORTABILITY", LK_NONE, CheckvarYesNo) - pkglist("CHECK_PORTABILITY_SKIP", LK_SHELL, CheckvarPathmask) - acl("CHECK_SHLIBS", LK_NONE, CheckvarYesNo, "Makefile:s") - pkglist("CHECK_SHLIBS_SKIP", LK_SHELL, CheckvarPathmask) - acl("CHECK_SHLIBS_SUPPORTED", LK_NONE, CheckvarYesNo, "Makefile:s") - pkglist("CHECK_WRKREF_SKIP", LK_SHELL, CheckvarPathmask) - pkg("CMAKE_ARG_PATH", LK_NONE, CheckvarPathname) - pkglist("CMAKE_ARGS", LK_SHELL, CheckvarShellWord) - acl("COMMENT", LK_NONE, CheckvarComment, "Makefile:as", "Makefile.common:as") - sys("COMPILER_RPATH_FLAG", LK_NONE, enum("-Wl,-rpath")) - pkglist("CONFIGURE_ARGS", LK_SHELL, CheckvarShellWord) - pkglist("CONFIGURE_DIRS", LK_SHELL, CheckvarWrksrcSubdirectory) - pkglist("CONFIGURE_ENV", LK_SHELL, CheckvarShellWord) - pkg("CONFIGURE_HAS_INFODIR", LK_NONE, CheckvarYesNo) - pkg("CONFIGURE_HAS_LIBDIR", LK_NONE, CheckvarYesNo) - pkg("CONFIGURE_HAS_MANDIR", LK_NONE, CheckvarYesNo) - pkg("CONFIGURE_SCRIPT", LK_NONE, CheckvarPathname) - acl("CONFIG_GUESS_OVERRIDE", LK_SHELL, CheckvarPathmask, "Makefile:as", "Makefile.common:as") - acl("CONFIG_STATUS_OVERRIDE", LK_SHELL, CheckvarPathmask, "Makefile:as", "Makefile.common:as") - acl("CONFIG_SHELL", LK_NONE, CheckvarPathname, "Makefile:s", "Makefile.common:s") - acl("CONFIG_SUB_OVERRIDE", LK_SHELL, CheckvarPathmask, "Makefile:as", "Makefile.common:as") - pkglist("CONFLICTS", LK_SPACE, CheckvarDependency) - pkglist("CONF_FILES", LK_SHELL, CheckvarShellWord) - pkg("CONF_FILES_MODE", LK_NONE, enum("0644 0640 0600 0400")) - pkglist("CONF_FILES_PERMS", LK_SHELL, CheckvarShellWord) - sys("COPY", LK_NONE, enum("-c")) // The flag that tells ${INSTALL} to copy a file - sys("CPP", LK_NONE, CheckvarShellCommand) - pkglist("CPPFLAGS*", LK_SHELL, CheckvarCFlag) - acl("CRYPTO", LK_NONE, CheckvarYes, "Makefile:s") - sys("CXX", LK_NONE, CheckvarShellCommand) - pkglist("CXXFLAGS*", LK_SHELL, CheckvarCFlag) - acl("DEINSTALL_FILE", LK_NONE, CheckvarPathname, "Makefile:s") - acl("DEINSTALL_SRC", LK_SHELL, CheckvarPathname, "Makefile:s", "Makefile.common:ds") - acl("DEINSTALL_TEMPLATES", LK_SHELL, CheckvarPathname, "Makefile:as", "Makefile.common:ads") - sys("DELAYED_ERROR_MSG", LK_NONE, CheckvarShellCommand) - sys("DELAYED_WARNING_MSG", LK_NONE, CheckvarShellCommand) - pkglist("DEPENDS", LK_SPACE, CheckvarDependencyWithPath) - usr("DEPENDS_TARGET", LK_SHELL, CheckvarIdentifier) - acl("DESCR_SRC", LK_SHELL, CheckvarPathname, "Makefile:s", "Makefile.common:ds") - sys("DESTDIR", LK_NONE, CheckvarPathname) - acl("DESTDIR_VARNAME", LK_NONE, CheckvarVarname, "Makefile:s", "Makefile.common:s") - sys("DEVOSSAUDIO", LK_NONE, CheckvarPathname) - sys("DEVOSSSOUND", LK_NONE, CheckvarPathname) - pkglist("DISTFILES", LK_SHELL, CheckvarFilename) - pkg("DISTINFO_FILE", LK_NONE, CheckvarRelativePkgPath) - pkg("DISTNAME", LK_NONE, CheckvarFilename) - pkg("DIST_SUBDIR", LK_NONE, CheckvarPathname) - acl("DJB_BUILD_ARGS", LK_SHELL, CheckvarShellWord) - acl("DJB_BUILD_TARGETS", LK_SHELL, CheckvarIdentifier) - acl("DJB_CONFIG_CMDS", LK_SHELL, CheckvarShellWord, "options.mk:s") // ShellCommand, terminated by a semicolon - acl("DJB_CONFIG_DIRS", LK_SHELL, CheckvarWrksrcSubdirectory) - acl("DJB_CONFIG_HOME", LK_NONE, CheckvarFilename) - acl("DJB_CONFIG_PREFIX", LK_NONE, CheckvarPathname) - acl("DJB_INSTALL_TARGETS", LK_SHELL, CheckvarIdentifier) - acl("DJB_MAKE_TARGETS", LK_NONE, CheckvarYesNo) - acl("DJB_RESTRICTED", LK_NONE, CheckvarYesNo, "Makefile:s") - acl("DJB_SLASHPACKAGE", LK_NONE, CheckvarYesNo) - acl("DLOPEN_REQUIRE_PTHREADS", LK_NONE, CheckvarYesNo) - acl("DL_AUTO_VARS", LK_NONE, CheckvarYes, "Makefile:s", "Makefile.common:s", "options.mk:s") - acl("DL_LIBS", LK_SHELL, CheckvarLdFlag) - sys("DOCOWN", LK_NONE, CheckvarUserGroupName) - sys("DOCGRP", LK_NONE, CheckvarUserGroupName) - sys("DOCMODE", LK_NONE, CheckvarFileMode) - sys("DOWNLOADED_DISTFILE", LK_NONE, CheckvarPathname) - sys("DO_NADA", LK_NONE, CheckvarShellCommand) - pkg("DYNAMIC_SITES_CMD", LK_NONE, CheckvarShellCommand) - pkg("DYNAMIC_SITES_SCRIPT", LK_NONE, CheckvarPathname) - sys("ECHO", LK_NONE, CheckvarShellCommand) - sys("ECHO_MSG", LK_NONE, CheckvarShellCommand) - sys("ECHO_N", LK_NONE, CheckvarShellCommand) - pkg("EGDIR", LK_NONE, CheckvarPathname) // Not defined anywhere, but used in many places like this. - sys("EMACS_BIN", LK_NONE, CheckvarPathname) - sys("EMACS_ETCPREFIX", LK_NONE, CheckvarPathname) - sys("EMACS_FLAVOR", LK_NONE, enum("emacs xemacs")) - sys("EMACS_INFOPREFIX", LK_NONE, CheckvarPathname) - sys("EMACS_LISPPREFIX", LK_NONE, CheckvarPathname) - acl("EMACS_MODULES", LK_SHELL, CheckvarIdentifier, "Makefile:as", "Makefile.common:as") - sys("EMACS_PKGNAME_PREFIX", LK_NONE, CheckvarIdentifier) // Or the empty string. - sys("EMACS_TYPE", LK_NONE, enum("emacs xemacs")) - acl("EMACS_USE_LEIM", LK_NONE, CheckvarYes) - acl("EMACS_VERSIONS_ACCEPTED", LK_SHELL, enum("emacs25 emacs24 emacs24nox emacs23 emacs23nox emacs22 emacs22nox emacs21 emacs21nox emacs20 xemacs215 xemacs215nox xemacs214 xemacs214nox"), "Makefile:s") - sys("EMACS_VERSION_MAJOR", LK_NONE, CheckvarInteger) - sys("EMACS_VERSION_MINOR", LK_NONE, CheckvarInteger) - acl("EMACS_VERSION_REQD", LK_SHELL, enum("emacs24 emacs24nox emacs23 emacs23nox emacs22 emacs22nox emacs21 emacs21nox emacs20 xemacs215 xemacs214"), "Makefile:as") - sys("EMULDIR", LK_NONE, CheckvarPathname) - sys("EMULSUBDIR", LK_NONE, CheckvarPathname) - sys("OPSYS_EMULDIR", LK_NONE, CheckvarPathname) - sys("EMULSUBDIRSLASH", LK_NONE, CheckvarPathname) - sys("EMUL_ARCH", LK_NONE, enum("i386 none")) - sys("EMUL_DISTRO", LK_NONE, CheckvarIdentifier) - sys("EMUL_IS_NATIVE", LK_NONE, CheckvarYes) - pkg("EMUL_MODULES.*", LK_SHELL, CheckvarIdentifier) - sys("EMUL_OPSYS", LK_NONE, enum("freebsd hpux irix linux osf1 solaris sunos none")) - pkg("EMUL_PKG_FMT", LK_NONE, enum("plain rpm")) - usr("EMUL_PLATFORM", LK_NONE, CheckvarEmulPlatform) - pkg("EMUL_PLATFORMS", LK_SHELL, CheckvarEmulPlatform) - usr("EMUL_PREFER", LK_SHELL, CheckvarEmulPlatform) - pkg("EMUL_REQD", LK_SPACE, CheckvarDependency) - usr("EMUL_TYPE.*", LK_NONE, enum("native builtin suse suse-9.1 suse-9.x suse-10.0 suse-10.x")) - sys("ERROR_CAT", LK_NONE, CheckvarShellCommand) - sys("ERROR_MSG", LK_NONE, CheckvarShellCommand) - acl("EVAL_PREFIX", LK_SPACE, CheckvarShellWord, "Makefile:a", "Makefile.common:a") // XXX: Combining ShellWord with LK_SPACE looks weird. - sys("EXPORT_SYMBOLS_LDFLAGS", LK_SHELL, CheckvarLdFlag) - sys("EXTRACT_CMD", LK_NONE, CheckvarShellCommand) - pkg("EXTRACT_DIR", LK_NONE, CheckvarPathname) - pkglist("EXTRACT_ELEMENTS", LK_SHELL, CheckvarPathmask) - pkglist("EXTRACT_ENV", LK_SHELL, CheckvarShellWord) - pkglist("EXTRACT_ONLY", LK_SHELL, CheckvarPathname) - acl("EXTRACT_OPTS", LK_SHELL, CheckvarShellWord, "Makefile:as", "Makefile.common:as") - acl("EXTRACT_OPTS_BIN", LK_SHELL, CheckvarShellWord, "Makefile:as", "Makefile.common:as") - acl("EXTRACT_OPTS_LHA", LK_SHELL, CheckvarShellWord, "Makefile:as", "Makefile.common:as") - acl("EXTRACT_OPTS_PAX", LK_SHELL, CheckvarShellWord, "Makefile:as", "Makefile.common:as") - acl("EXTRACT_OPTS_RAR", LK_SHELL, CheckvarShellWord, "Makefile:as", "Makefile.common:as") - acl("EXTRACT_OPTS_TAR", LK_SHELL, CheckvarShellWord, "Makefile:as", "Makefile.common:as") - acl("EXTRACT_OPTS_ZIP", LK_SHELL, CheckvarShellWord, "Makefile:as", "Makefile.common:as") - acl("EXTRACT_OPTS_ZOO", LK_SHELL, CheckvarShellWord, "Makefile:as", "Makefile.common:as") - pkg("EXTRACT_SUFX", LK_NONE, CheckvarDistSuffix) - pkg("EXTRACT_USING", LK_NONE, enum("bsdtar gtar nbtar pax")) - sys("FAIL_MSG", LK_NONE, CheckvarShellCommand) - sys("FAMBASE", LK_NONE, CheckvarPathname) - pkg("FAM_ACCEPTED", LK_SHELL, enum("fam gamin")) - usr("FAM_DEFAULT", LK_NONE, enum("fam gamin")) - sys("FAM_TYPE", LK_NONE, enum("fam gamin")) - acl("FETCH_BEFORE_ARGS", LK_SHELL, CheckvarShellWord, "Makefile:as") - pkglist("FETCH_MESSAGE", LK_SHELL, CheckvarShellWord) - pkg("FILESDIR", LK_NONE, CheckvarRelativePkgPath) - pkglist("FILES_SUBST", LK_SHELL, CheckvarShellWord) - acl("FILES_SUBST_SED", LK_SHELL, CheckvarShellWord) - pkglist("FIX_RPATH", LK_SHELL, CheckvarVarname) - pkglist("FLEX_REQD", LK_SHELL, CheckvarVersion) - acl("FONTS_DIRS.*", LK_SHELL, CheckvarPathname, "Makefile:as", "Makefile.common:a") - sys("GAMEDATAMODE", LK_NONE, CheckvarFileMode) - sys("GAMES_GROUP", LK_NONE, CheckvarUserGroupName) - sys("GAMEMODE", LK_NONE, CheckvarFileMode) - sys("GAMES_USER", LK_NONE, CheckvarUserGroupName) - pkglist("GCC_REQD", LK_SHELL, CheckvarVersion) - pkglist("GENERATE_PLIST", LK_SHELL, CheckvarShellWord) // List of Shellcommand, terminated with a semicolon - pkg("GITHUB_PROJECT", LK_NONE, CheckvarIdentifier) - pkg("GITHUB_TAG", LK_NONE, CheckvarIdentifier) - pkg("GITHUB_RELEASE", LK_NONE, CheckvarFilename) - pkg("GITHUB_TYPE", LK_NONE, enum("tag release")) - acl("GNU_ARCH", LK_NONE, enum("mips")) - acl("GNU_CONFIGURE", LK_NONE, CheckvarYes, "Makefile.common:s", "Makefile:s") - acl("GNU_CONFIGURE_INFODIR", LK_NONE, CheckvarPathname, "Makefile:s", "Makefile.common:s") - acl("GNU_CONFIGURE_LIBDIR", LK_NONE, CheckvarPathname, "Makefile:s", "Makefile.common:s") - pkg("GNU_CONFIGURE_LIBSUBDIR", LK_NONE, CheckvarPathname) - acl("GNU_CONFIGURE_MANDIR", LK_NONE, CheckvarPathname, "Makefile:s", "Makefile.common:s") - acl("GNU_CONFIGURE_PREFIX", LK_NONE, CheckvarPathname, "Makefile:s") - acl("HAS_CONFIGURE", LK_NONE, CheckvarYes, "Makefile:s", "Makefile.common:s") - pkglist("HEADER_TEMPLATES", LK_SHELL, CheckvarPathname) - pkg("HOMEPAGE", LK_NONE, CheckvarURL) - acl("IGNORE_PKG.*", LK_NONE, CheckvarYes, "*:sp") - acl("INCOMPAT_CURSES", LK_SPACE, CheckvarPlatformTriple, "Makefile:as") - acl("INCOMPAT_ICONV", LK_SPACE, CheckvarPlatformTriple) - acl("INFO_DIR", LK_NONE, CheckvarPathname) // relative to PREFIX - pkg("INFO_FILES", LK_NONE, CheckvarYes) - sys("INSTALL", LK_NONE, CheckvarShellCommand) - pkglist("INSTALLATION_DIRS", LK_SHELL, CheckvarPrefixPathname) - pkg("INSTALLATION_DIRS_FROM_PLIST", LK_NONE, CheckvarYes) - sys("INSTALL_DATA", LK_NONE, CheckvarShellCommand) - sys("INSTALL_DATA_DIR", LK_NONE, CheckvarShellCommand) - pkglist("INSTALL_DIRS", LK_SHELL, CheckvarWrksrcSubdirectory) - pkglist("INSTALL_ENV", LK_SHELL, CheckvarShellWord) - acl("INSTALL_FILE", LK_NONE, CheckvarPathname, "Makefile:s") - sys("INSTALL_GAME", LK_NONE, CheckvarShellCommand) - sys("INSTALL_GAME_DATA", LK_NONE, CheckvarShellCommand) - sys("INSTALL_LIB", LK_NONE, CheckvarShellCommand) - sys("INSTALL_LIB_DIR", LK_NONE, CheckvarShellCommand) - pkglist("INSTALL_MAKE_FLAGS", LK_SHELL, CheckvarShellWord) - sys("INSTALL_MAN", LK_NONE, CheckvarShellCommand) - sys("INSTALL_MAN_DIR", LK_NONE, CheckvarShellCommand) - sys("INSTALL_PROGRAM", LK_NONE, CheckvarShellCommand) - sys("INSTALL_PROGRAM_DIR", LK_NONE, CheckvarShellCommand) - sys("INSTALL_SCRIPT", LK_NONE, CheckvarShellCommand) - acl("INSTALL_SCRIPTS_ENV", LK_SHELL, CheckvarShellWord) - sys("INSTALL_SCRIPT_DIR", LK_NONE, CheckvarShellCommand) - acl("INSTALL_SRC", LK_SHELL, CheckvarPathname, "Makefile:s", "Makefile.common:ds") - pkg("INSTALL_TARGET", LK_SHELL, CheckvarIdentifier) - acl("INSTALL_TEMPLATES", LK_SHELL, CheckvarPathname, "Makefile:as", "Makefile.common:ads") - acl("INSTALL_UNSTRIPPED", LK_NONE, CheckvarYesNo, "Makefile:s", "Makefile.common:s") - pkg("INTERACTIVE_STAGE", LK_SHELL, enum("fetch extract configure build install")) - acl("IS_BUILTIN.*", LK_NONE, CheckvarYesNoIndirectly, "builtin.mk:psu") - sys("JAVA_BINPREFIX", LK_NONE, CheckvarPathname) - pkg("JAVA_CLASSPATH", LK_NONE, CheckvarShellWord) - pkg("JAVA_HOME", LK_NONE, CheckvarPathname) - pkg("JAVA_NAME", LK_NONE, CheckvarFilename) - pkglist("JAVA_UNLIMIT", LK_SHELL, enum("cmdsize datasize stacksize")) - pkglist("JAVA_WRAPPERS", LK_SPACE, CheckvarFilename) - pkg("JAVA_WRAPPER_BIN.*", LK_NONE, CheckvarPathname) - sys("KRB5BASE", LK_NONE, CheckvarPathname) - acl("KRB5_ACCEPTED", LK_SHELL, enum("heimdal mit-krb5")) - usr("KRB5_DEFAULT", LK_NONE, enum("heimdal mit-krb5")) - sys("KRB5_TYPE", LK_NONE, CheckvarUnchecked) - sys("LD", LK_NONE, CheckvarShellCommand) - pkglist("LDFLAGS*", LK_SHELL, CheckvarLdFlag) - sys("LIBGRP", LK_NONE, CheckvarUserGroupName) - sys("LIBMODE", LK_NONE, CheckvarFileMode) - sys("LIBOWN", LK_NONE, CheckvarUserGroupName) - sys("LIBOSSAUDIO", LK_NONE, CheckvarPathname) - pkglist("LIBS*", LK_SHELL, CheckvarLdFlag) - sys("LIBTOOL", LK_NONE, CheckvarShellCommand) - acl("LIBTOOL_OVERRIDE", LK_SHELL, CheckvarPathmask, "Makefile:as") - pkglist("LIBTOOL_REQD", LK_SHELL, CheckvarVersion) - acl("LICENCE", LK_NONE, CheckvarLicense, "Makefile:s", "Makefile.common:s", "options.mk:s") - acl("LICENSE", LK_NONE, CheckvarLicense, "Makefile:s", "Makefile.common:s", "options.mk:s") - pkg("LICENSE_FILE", LK_NONE, CheckvarPathname) - sys("LINKER_RPATH_FLAG", LK_NONE, CheckvarShellWord) - sys("LOWER_OPSYS", LK_NONE, CheckvarIdentifier) - acl("LTCONFIG_OVERRIDE", LK_SHELL, CheckvarPathmask, "Makefile:as", "Makefile.common:a") - sys("MACHINE_ARCH", LK_NONE, CheckvarIdentifier) - sys("MACHINE_GNU_PLATFORM", LK_NONE, CheckvarPlatformTriple) - acl("MAINTAINER", LK_NONE, CheckvarMailAddress, "Makefile:s", "Makefile.common:d") - sys("MAKE", LK_NONE, CheckvarShellCommand) - pkglist("MAKEFLAGS", LK_SHELL, CheckvarShellWord) - acl("MAKEVARS", LK_SHELL, CheckvarVarname, "builtin.mk:a", "buildlink3.mk:a", "hacks.mk:a") - pkglist("MAKE_DIRS", LK_SHELL, CheckvarPathname) - pkglist("MAKE_DIRS_PERMS", LK_SHELL, CheckvarShellWord) - pkglist("MAKE_ENV", LK_SHELL, CheckvarShellWord) - pkg("MAKE_FILE", LK_NONE, CheckvarPathname) - pkglist("MAKE_FLAGS", LK_SHELL, CheckvarShellWord) - usr("MAKE_JOBS", LK_NONE, CheckvarInteger) - pkg("MAKE_JOBS_SAFE", LK_NONE, CheckvarYesNo) - pkg("MAKE_PROGRAM", LK_NONE, CheckvarShellCommand) - acl("MANCOMPRESSED", LK_NONE, CheckvarYesNo, "Makefile:s", "Makefile.common:ds") - acl("MANCOMPRESSED_IF_MANZ", LK_NONE, CheckvarYes, "Makefile:s", "Makefile.common:ds") - sys("MANGRP", LK_NONE, CheckvarUserGroupName) - sys("MANMODE", LK_NONE, CheckvarFileMode) - sys("MANOWN", LK_NONE, CheckvarUserGroupName) - pkglist("MASTER_SITES", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_APACHE", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_BACKUP", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_CYGWIN", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_DEBIAN", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_FREEBSD", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_FREEBSD_LOCAL", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_GENTOO", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_GITHUB", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_GNOME", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_GNU", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_GNUSTEP", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_IFARCHIVE", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_HASKELL_HACKAGE", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_KDE", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_LOCAL", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_MOZILLA", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_MOZILLA_ALL", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_MOZILLA_ESR", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_MYSQL", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_NETLIB", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_OPENOFFICE", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_OSDN", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_PERL_CPAN", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_R_CRAN", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_RUBYGEMS", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_SOURCEFORGE", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_SUNSITE", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_SUSE", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_TEX_CTAN", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_XCONTRIB", LK_SHELL, CheckvarFetchURL) - sys("MASTER_SITE_XEMACS", LK_SHELL, CheckvarFetchURL) - pkglist("MESSAGE_SRC", LK_SHELL, CheckvarPathname) - acl("MESSAGE_SUBST", LK_SHELL, CheckvarShellWord, "Makefile.common:a", "Makefile:a", "options.mk:a") - pkg("META_PACKAGE", LK_NONE, CheckvarYes) - sys("MISSING_FEATURES", LK_SHELL, CheckvarIdentifier) - acl("MYSQL_VERSIONS_ACCEPTED", LK_SHELL, enum("51 55 56"), "Makefile:s") - usr("MYSQL_VERSION_DEFAULT", LK_NONE, CheckvarVersion) - sys("NM", LK_NONE, CheckvarShellCommand) - sys("NONBINMODE", LK_NONE, CheckvarFileMode) - pkg("NOT_FOR_COMPILER", LK_SHELL, enum("ccache ccc clang distcc f2c gcc hp icc ido mipspro mipspro-ucode pcc sunpro xlc")) - pkglist("NOT_FOR_PLATFORM", LK_SPACE, CheckvarPlatformTriple) - pkg("NOT_FOR_UNPRIVILEGED", LK_NONE, CheckvarYesNo) - acl("NO_BIN_ON_CDROM", LK_NONE, CheckvarRestricted, "Makefile:s", "Makefile.common:s") - acl("NO_BIN_ON_FTP", LK_NONE, CheckvarRestricted, "Makefile:s", "Makefile.common:s") - acl("NO_BUILD", LK_NONE, CheckvarYes, "Makefile:s", "Makefile.common:s", "Makefile.*:ds") - pkg("NO_CHECKSUM", LK_NONE, CheckvarYes) - pkg("NO_CONFIGURE", LK_NONE, CheckvarYes) - acl("NO_EXPORT_CPP", LK_NONE, CheckvarYes, "Makefile:s") - pkg("NO_EXTRACT", LK_NONE, CheckvarYes) - pkg("NO_INSTALL_MANPAGES", LK_NONE, CheckvarYes) // only has an effect for Imake packages. - acl("NO_PKGTOOLS_REQD_CHECK", LK_NONE, CheckvarYes, "Makefile:s") - acl("NO_SRC_ON_CDROM", LK_NONE, CheckvarRestricted, "Makefile:s", "Makefile.common:s") - acl("NO_SRC_ON_FTP", LK_NONE, CheckvarRestricted, "Makefile:s", "Makefile.common:s") - pkglist("ONLY_FOR_COMPILER", LK_SHELL, enum("ccc clang gcc hp icc ido mipspro mipspro-ucode pcc sunpro xlc")) - pkglist("ONLY_FOR_PLATFORM", LK_SPACE, CheckvarPlatformTriple) - pkg("ONLY_FOR_UNPRIVILEGED", LK_NONE, CheckvarYesNo) - sys("OPSYS", LK_NONE, CheckvarIdentifier) - acl("OPSYSVARS", LK_SHELL, CheckvarVarname, "Makefile:a", "Makefile.common:a") - acl("OSVERSION_SPECIFIC", LK_NONE, CheckvarYes, "Makefile:s", "Makefile.common:s") - sys("OS_VERSION", LK_NONE, CheckvarVersion) - pkg("OVERRIDE_DIRDEPTH*", LK_NONE, CheckvarInteger) - pkg("OVERRIDE_GNU_CONFIG_SCRIPTS", LK_NONE, CheckvarYes) - acl("OWNER", LK_NONE, CheckvarMailAddress, "Makefile:s", "Makefile.common:d") - pkglist("OWN_DIRS", LK_SHELL, CheckvarPathname) - pkglist("OWN_DIRS_PERMS", LK_SHELL, CheckvarShellWord) - sys("PAMBASE", LK_NONE, CheckvarPathname) - usr("PAM_DEFAULT", LK_NONE, enum("linux-pam openpam solaris-pam")) - acl("PATCHDIR", LK_NONE, CheckvarRelativePkgPath, "Makefile:s", "Makefile.common:ds") - pkglist("PATCHFILES", LK_SHELL, CheckvarFilename) - acl("PATCH_ARGS", LK_SHELL, CheckvarShellWord) - acl("PATCH_DIST_ARGS", LK_SHELL, CheckvarShellWord, "Makefile:as") - acl("PATCH_DIST_CAT", LK_NONE, CheckvarShellCommand) - acl("PATCH_DIST_STRIP*", LK_NONE, CheckvarShellWord, "Makefile:s", "Makefile.common:s", "buildlink3.mk:", "builtin.mk:", "*.mk:s") - acl("PATCH_SITES", LK_SHELL, CheckvarURL, "Makefile:s", "options.mk:s", "Makefile.common:s") - acl("PATCH_STRIP", LK_NONE, CheckvarShellWord) - pkg("PERL5_USE_PACKLIST", LK_NONE, CheckvarYesNo) - acl("PERL5_PACKLIST", LK_SHELL, CheckvarPerl5Packlist, "Makefile:s", "options.mk:sa") - acl("PERL5_PACKLIST_DIR", LK_NONE, CheckvarPathname) - sys("PGSQL_PREFIX", LK_NONE, CheckvarPathname) - acl("PGSQL_VERSIONS_ACCEPTED", LK_SHELL, enum("91 92 93 94")) - usr("PGSQL_VERSION_DEFAULT", LK_NONE, CheckvarVersion) - sys("PG_LIB_EXT", LK_NONE, enum("dylib so")) - sys("PGSQL_TYPE", LK_NONE, enum("postgresql81-client postgresql80-client")) - sys("PGPKGSRCDIR", LK_NONE, CheckvarPathname) - sys("PHASE_MSG", LK_NONE, CheckvarShellCommand) - usr("PHP_VERSION_REQD", LK_NONE, CheckvarVersion) - sys("PKGBASE", LK_NONE, CheckvarIdentifier) - acl("PKGCONFIG_OVERRIDE", LK_SHELL, CheckvarPathmask, "Makefile:as", "Makefile.common:a") - pkg("PKGCONFIG_OVERRIDE_STAGE", LK_NONE, CheckvarStage) - pkg("PKGDIR", LK_NONE, CheckvarRelativePkgDir) - sys("PKGDIRMODE", LK_NONE, CheckvarFileMode) - sys("PKGLOCALEDIR", LK_NONE, CheckvarPathname) - pkg("PKGNAME", LK_NONE, CheckvarPkgName) - sys("PKGNAME_NOREV", LK_NONE, CheckvarPkgName) - sys("PKGPATH", LK_NONE, CheckvarPathname) - acl("PKGREPOSITORY", LK_NONE, CheckvarUnchecked) - acl("PKGREVISION", LK_NONE, CheckvarPkgRevision, "Makefile:s") - sys("PKGSRCDIR", LK_NONE, CheckvarPathname) - acl("PKGSRCTOP", LK_NONE, CheckvarYes, "Makefile:s") - acl("PKGTOOLS_ENV", LK_SHELL, CheckvarShellWord) - sys("PKGVERSION", LK_NONE, CheckvarVersion) - sys("PKGWILDCARD", LK_NONE, CheckvarFilemask) - sys("PKG_ADMIN", LK_NONE, CheckvarShellCommand) - sys("PKG_APACHE", LK_NONE, enum("apache22 apache24")) - pkg("PKG_APACHE_ACCEPTED", LK_SHELL, enum("apache22 apache24")) - usr("PKG_APACHE_DEFAULT", LK_NONE, enum("apache22 apache24")) - usr("PKG_CONFIG", LK_NONE, CheckvarYes) + sys(".CURDIR", lkNone, CheckvarPathname) + sys(".TARGET", lkNone, CheckvarPathname) + acl("ALL_ENV", lkShell, CheckvarShellWord) + acl("ALTERNATIVES_FILE", lkNone, CheckvarFilename) + acl("ALTERNATIVES_SRC", lkShell, CheckvarPathname) + pkg("APACHE_MODULE", lkNone, CheckvarYes) + sys("AR", lkNone, CheckvarShellCommand) + sys("AS", lkNone, CheckvarShellCommand) + pkglist("AUTOCONF_REQD", lkShell, CheckvarVersion) + acl("AUTOMAKE_OVERRIDE", lkShell, CheckvarPathmask) + pkglist("AUTOMAKE_REQD", lkShell, CheckvarVersion) + pkg("AUTO_MKDIRS", lkNone, CheckvarYesNo) + usr("BATCH", lkNone, CheckvarYes) + acl("BDB185_DEFAULT", lkNone, CheckvarUnchecked) + sys("BDBBASE", lkNone, CheckvarPathname) + pkg("BDB_ACCEPTED", lkShell, enum("db1 db2 db3 db4 db5")) + acl("BDB_DEFAULT", lkNone, enum("db1 db2 db3 db4 db5")) + sys("BDB_LIBS", lkShell, CheckvarLdFlag) + sys("BDB_TYPE", lkNone, enum("db1 db2 db3 db4 db5")) + sys("BINGRP", lkNone, CheckvarUserGroupName) + sys("BINMODE", lkNone, CheckvarFileMode) + sys("BINOWN", lkNone, CheckvarUserGroupName) + acl("BOOTSTRAP_DEPENDS", lkSpace, CheckvarDependencyWithPath, "Makefile.common:a", "Makefile:a", "options.mk:a", "*.mk:a") + pkg("BOOTSTRAP_PKG", lkNone, CheckvarYesNo) + acl("BROKEN", lkNone, CheckvarMessage) + pkg("BROKEN_GETTEXT_DETECTION", lkNone, CheckvarYesNo) + pkglist("BROKEN_EXCEPT_ON_PLATFORM", lkShell, CheckvarPlatformTriple) + pkglist("BROKEN_ON_PLATFORM", lkSpace, CheckvarPlatformTriple) + sys("BSD_MAKE_ENV", lkShell, CheckvarShellWord) + acl("BUILDLINK_ABI_DEPENDS.*", lkSpace, CheckvarDependency, "*:a") + acl("BUILDLINK_API_DEPENDS.*", lkSpace, CheckvarDependency, "*:a") + acl("BUILDLINK_CONTENTS_FILTER", lkShell, CheckvarShellWord) // Should better be ShellCommand + sys("BUILDLINK_CFLAGS", lkShell, CheckvarCFlag) + bl3list("BUILDLINK_CFLAGS.*", lkShell, CheckvarCFlag) + sys("BUILDLINK_CPPFLAGS", lkShell, CheckvarCFlag) + bl3list("BUILDLINK_CPPFLAGS.*", lkShell, CheckvarCFlag) + acl("BUILDLINK_CONTENTS_FILTER.*", lkNone, CheckvarShellCommand, "buildlink3.mk:s") + acl("BUILDLINK_DEPENDS", lkSpace, CheckvarIdentifier, "buildlink3.mk:a") + acl("BUILDLINK_DEPMETHOD.*", lkShell, CheckvarBuildlinkDepmethod, "buildlink3.mk:ad", "Makefile:as", "Makefile.common:a", "*.mk:a") // FIXME: buildlink3.mk:d may lead to unexpected behavior. + sys("BUILDLINK_DIR", lkNone, CheckvarPathname) + bl3list("BUILDLINK_FILES.*", lkShell, CheckvarPathmask) + acl("BUILDLINK_FILES_CMD.*", lkShell, CheckvarShellWord) // Should better be ShellCommand + acl("BUILDLINK_INCDIRS.*", lkShell, CheckvarPathname, "buildlink3.mk:ad") // Should [d]efault really be allowed in buildlink3.mk? + acl("BUILDLINK_JAVA_PREFIX.*", lkNone, CheckvarPathname, "buildlink3.mk:s") + acl("BUILDLINK_LDADD.*", lkShell, CheckvarLdFlag, "builtin.mk:adsu", "buildlink3.mk:", "Makefile:u", "Makefile.common:u", "*.mk:u") + sys("BUILDLINK_LDFLAGS", lkShell, CheckvarLdFlag) + bl3list("BUILDLINK_LDFLAGS.*", lkShell, CheckvarLdFlag) + bl3list("BUILDLINK_LIBDIRS.*", lkShell, CheckvarPathname) + acl("BUILDLINK_LIBS.*", lkShell, CheckvarLdFlag, "buildlink3.mk:a") + acl("BUILDLINK_PASSTHRU_DIRS", lkShell, CheckvarPathname, "Makefile:a", "Makefile.common:a", "buildlink3.mk:a", "hacks.mk:a") + acl("BUILDLINK_PASSTHRU_RPATHDIRS", lkShell, CheckvarPathname, "Makefile:a", "Makefile.common:a", "buildlink3.mk:a", "hacks.mk:a") + acl("BUILDLINK_PKGSRCDIR.*", lkNone, CheckvarRelativePkgDir, "buildlink3.mk:dp") + acl("BUILDLINK_PREFIX.*", lkNone, CheckvarPathname, "builtin.mk:su", "buildlink3.mk:", "Makefile:u", "Makefile.common:u", "*.mk:u") + acl("BUILDLINK_RPATHDIRS.*", lkShell, CheckvarPathname, "buildlink3.mk:a") + acl("BUILDLINK_TARGETS", lkShell, CheckvarIdentifier) + acl("BUILDLINK_FNAME_TRANSFORM.*", lkNone, CheckvarSedCommands, "Makefile:a", "builtin.mk:a", "hacks.mk:a", "buildlink3.mk:a") + acl("BUILDLINK_TRANSFORM", lkShell, CheckvarWrapperTransform, "*:a") + acl("BUILDLINK_TREE", lkShell, CheckvarIdentifier, "buildlink3.mk:a") + acl("BUILD_DEFS", lkShell, CheckvarVarname, "Makefile:a", "Makefile.common:a", "options.mk:a") + acl("BUILD_DEPENDS", lkSpace, CheckvarDependencyWithPath, "Makefile.common:a", "Makefile:a", "options.mk:a", "*.mk:a") + pkglist("BUILD_DIRS", lkShell, CheckvarWrksrcSubdirectory) + pkglist("BUILD_ENV", lkShell, CheckvarShellWord) + sys("BUILD_MAKE_CMD", lkNone, CheckvarShellCommand) + pkglist("BUILD_MAKE_FLAGS", lkShell, CheckvarShellWord) + pkg("BUILD_TARGET", lkShell, CheckvarIdentifier) + pkg("BUILD_USES_MSGFMT", lkNone, CheckvarYes) + acl("BUILTIN_PKG", lkNone, CheckvarIdentifier, "builtin.mk:psu") + acl("BUILTIN_PKG.*", lkNone, CheckvarPkgName, "builtin.mk:psu") + acl("BUILTIN_FIND_FILES_VAR", lkShell, CheckvarVarname, "builtin.mk:s") + acl("BUILTIN_FIND_FILES.*", lkShell, CheckvarPathname, "builtin.mk:s") + acl("BUILTIN_FIND_GREP.*", lkNone, CheckvarString, "builtin.mk:s") + acl("BUILTIN_FIND_LIBS", lkShell, CheckvarPathname, "builtin.mk:s") + acl("BUILTIN_IMAKE_CHECK", lkShell, CheckvarUnchecked, "builtin.mk:s") + acl("BUILTIN_IMAKE_CHECK.*", lkNone, CheckvarYesNo) + sys("BUILTIN_X11_TYPE", lkNone, CheckvarUnchecked) + sys("BUILTIN_X11_VERSION", lkNone, CheckvarUnchecked) + acl("CATEGORIES", lkShell, CheckvarCategory, "Makefile:as", "Makefile.common:ads") + sys("CC_VERSION", lkNone, CheckvarMessage) + sys("CC", lkNone, CheckvarShellCommand) + pkglist("CFLAGS*", lkShell, CheckvarCFlag) // may also be changed by the user + acl("CHECK_BUILTIN", lkNone, CheckvarYesNo, "builtin.mk:d", "Makefile:s") + acl("CHECK_BUILTIN.*", lkNone, CheckvarYesNo, "*:p") + acl("CHECK_FILES_SKIP", lkShell, CheckvarBasicRegularExpression, "Makefile:a", "Makefile.common:a") + pkg("CHECK_FILES_SUPPORTED", lkNone, CheckvarYesNo) + usr("CHECK_HEADERS", lkNone, CheckvarYesNo) + pkglist("CHECK_HEADERS_SKIP", lkShell, CheckvarPathmask) + usr("CHECK_INTERPRETER", lkNone, CheckvarYesNo) + pkglist("CHECK_INTERPRETER_SKIP", lkShell, CheckvarPathmask) + usr("CHECK_PERMS", lkNone, CheckvarYesNo) + pkglist("CHECK_PERMS_SKIP", lkShell, CheckvarPathmask) + usr("CHECK_PORTABILITY", lkNone, CheckvarYesNo) + pkglist("CHECK_PORTABILITY_SKIP", lkShell, CheckvarPathmask) + acl("CHECK_SHLIBS", lkNone, CheckvarYesNo, "Makefile:s") + pkglist("CHECK_SHLIBS_SKIP", lkShell, CheckvarPathmask) + acl("CHECK_SHLIBS_SUPPORTED", lkNone, CheckvarYesNo, "Makefile:s") + pkglist("CHECK_WRKREF_SKIP", lkShell, CheckvarPathmask) + pkg("CMAKE_ARG_PATH", lkNone, CheckvarPathname) + pkglist("CMAKE_ARGS", lkShell, CheckvarShellWord) + acl("COMMENT", lkNone, CheckvarComment, "Makefile:as", "Makefile.common:as") + sys("COMPILER_RPATH_FLAG", lkNone, enum("-Wl,-rpath")) + pkglist("CONFIGURE_ARGS", lkShell, CheckvarShellWord) + pkglist("CONFIGURE_DIRS", lkShell, CheckvarWrksrcSubdirectory) + pkglist("CONFIGURE_ENV", lkShell, CheckvarShellWord) + pkg("CONFIGURE_HAS_INFODIR", lkNone, CheckvarYesNo) + pkg("CONFIGURE_HAS_LIBDIR", lkNone, CheckvarYesNo) + pkg("CONFIGURE_HAS_MANDIR", lkNone, CheckvarYesNo) + pkg("CONFIGURE_SCRIPT", lkNone, CheckvarPathname) + acl("CONFIG_GUESS_OVERRIDE", lkShell, CheckvarPathmask, "Makefile:as", "Makefile.common:as") + acl("CONFIG_STATUS_OVERRIDE", lkShell, CheckvarPathmask, "Makefile:as", "Makefile.common:as") + acl("CONFIG_SHELL", lkNone, CheckvarPathname, "Makefile:s", "Makefile.common:s") + acl("CONFIG_SUB_OVERRIDE", lkShell, CheckvarPathmask, "Makefile:as", "Makefile.common:as") + pkglist("CONFLICTS", lkSpace, CheckvarDependency) + pkglist("CONF_FILES", lkShell, CheckvarShellWord) + pkg("CONF_FILES_MODE", lkNone, enum("0644 0640 0600 0400")) + pkglist("CONF_FILES_PERMS", lkShell, CheckvarShellWord) + sys("COPY", lkNone, enum("-c")) // The flag that tells ${INSTALL} to copy a file + sys("CPP", lkNone, CheckvarShellCommand) + pkglist("CPPFLAGS*", lkShell, CheckvarCFlag) + acl("CRYPTO", lkNone, CheckvarYes, "Makefile:s") + sys("CXX", lkNone, CheckvarShellCommand) + pkglist("CXXFLAGS*", lkShell, CheckvarCFlag) + acl("DEINSTALL_FILE", lkNone, CheckvarPathname, "Makefile:s") + acl("DEINSTALL_SRC", lkShell, CheckvarPathname, "Makefile:s", "Makefile.common:ds") + acl("DEINSTALL_TEMPLATES", lkShell, CheckvarPathname, "Makefile:as", "Makefile.common:ads") + sys("DELAYED_ERROR_MSG", lkNone, CheckvarShellCommand) + sys("DELAYED_WARNING_MSG", lkNone, CheckvarShellCommand) + pkglist("DEPENDS", lkSpace, CheckvarDependencyWithPath) + usr("DEPENDS_TARGET", lkShell, CheckvarIdentifier) + acl("DESCR_SRC", lkShell, CheckvarPathname, "Makefile:s", "Makefile.common:ds") + sys("DESTDIR", lkNone, CheckvarPathname) + acl("DESTDIR_VARNAME", lkNone, CheckvarVarname, "Makefile:s", "Makefile.common:s") + sys("DEVOSSAUDIO", lkNone, CheckvarPathname) + sys("DEVOSSSOUND", lkNone, CheckvarPathname) + pkglist("DISTFILES", lkShell, CheckvarFilename) + pkg("DISTINFO_FILE", lkNone, CheckvarRelativePkgPath) + pkg("DISTNAME", lkNone, CheckvarFilename) + pkg("DIST_SUBDIR", lkNone, CheckvarPathname) + acl("DJB_BUILD_ARGS", lkShell, CheckvarShellWord) + acl("DJB_BUILD_TARGETS", lkShell, CheckvarIdentifier) + acl("DJB_CONFIG_CMDS", lkShell, CheckvarShellWord, "options.mk:s") // ShellCommand, terminated by a semicolon + acl("DJB_CONFIG_DIRS", lkShell, CheckvarWrksrcSubdirectory) + acl("DJB_CONFIG_HOME", lkNone, CheckvarFilename) + acl("DJB_CONFIG_PREFIX", lkNone, CheckvarPathname) + acl("DJB_INSTALL_TARGETS", lkShell, CheckvarIdentifier) + acl("DJB_MAKE_TARGETS", lkNone, CheckvarYesNo) + acl("DJB_RESTRICTED", lkNone, CheckvarYesNo, "Makefile:s") + acl("DJB_SLASHPACKAGE", lkNone, CheckvarYesNo) + acl("DLOPEN_REQUIRE_PTHREADS", lkNone, CheckvarYesNo) + acl("DL_AUTO_VARS", lkNone, CheckvarYes, "Makefile:s", "Makefile.common:s", "options.mk:s") + acl("DL_LIBS", lkShell, CheckvarLdFlag) + sys("DOCOWN", lkNone, CheckvarUserGroupName) + sys("DOCGRP", lkNone, CheckvarUserGroupName) + sys("DOCMODE", lkNone, CheckvarFileMode) + sys("DOWNLOADED_DISTFILE", lkNone, CheckvarPathname) + sys("DO_NADA", lkNone, CheckvarShellCommand) + pkg("DYNAMIC_SITES_CMD", lkNone, CheckvarShellCommand) + pkg("DYNAMIC_SITES_SCRIPT", lkNone, CheckvarPathname) + sys("ECHO", lkNone, CheckvarShellCommand) + sys("ECHO_MSG", lkNone, CheckvarShellCommand) + sys("ECHO_N", lkNone, CheckvarShellCommand) + pkg("EGDIR", lkNone, CheckvarPathname) // Not defined anywhere, but used in many places like this. + sys("EMACS_BIN", lkNone, CheckvarPathname) + sys("EMACS_ETCPREFIX", lkNone, CheckvarPathname) + sys("EMACS_FLAVOR", lkNone, enum("emacs xemacs")) + sys("EMACS_INFOPREFIX", lkNone, CheckvarPathname) + sys("EMACS_LISPPREFIX", lkNone, CheckvarPathname) + acl("EMACS_MODULES", lkShell, CheckvarIdentifier, "Makefile:as", "Makefile.common:as") + sys("EMACS_PKGNAME_PREFIX", lkNone, CheckvarIdentifier) // Or the empty string. + sys("EMACS_TYPE", lkNone, enum("emacs xemacs")) + acl("EMACS_USE_LEIM", lkNone, CheckvarYes) + acl("EMACS_VERSIONS_ACCEPTED", lkShell, enum("emacs25 emacs24 emacs24nox emacs23 emacs23nox emacs22 emacs22nox emacs21 emacs21nox emacs20 xemacs215 xemacs215nox xemacs214 xemacs214nox"), "Makefile:s") + sys("EMACS_VERSION_MAJOR", lkNone, CheckvarInteger) + sys("EMACS_VERSION_MINOR", lkNone, CheckvarInteger) + acl("EMACS_VERSION_REQD", lkShell, enum("emacs24 emacs24nox emacs23 emacs23nox emacs22 emacs22nox emacs21 emacs21nox emacs20 xemacs215 xemacs214"), "Makefile:as") + sys("EMULDIR", lkNone, CheckvarPathname) + sys("EMULSUBDIR", lkNone, CheckvarPathname) + sys("OPSYS_EMULDIR", lkNone, CheckvarPathname) + sys("EMULSUBDIRSLASH", lkNone, CheckvarPathname) + sys("EMUL_ARCH", lkNone, enum("i386 none")) + sys("EMUL_DISTRO", lkNone, CheckvarIdentifier) + sys("EMUL_IS_NATIVE", lkNone, CheckvarYes) + pkg("EMUL_MODULES.*", lkShell, CheckvarIdentifier) + sys("EMUL_OPSYS", lkNone, enum("freebsd hpux irix linux osf1 solaris sunos none")) + pkg("EMUL_PKG_FMT", lkNone, enum("plain rpm")) + usr("EMUL_PLATFORM", lkNone, CheckvarEmulPlatform) + pkg("EMUL_PLATFORMS", lkShell, CheckvarEmulPlatform) + usr("EMUL_PREFER", lkShell, CheckvarEmulPlatform) + pkg("EMUL_REQD", lkSpace, CheckvarDependency) + usr("EMUL_TYPE.*", lkNone, enum("native builtin suse suse-9.1 suse-9.x suse-10.0 suse-10.x")) + sys("ERROR_CAT", lkNone, CheckvarShellCommand) + sys("ERROR_MSG", lkNone, CheckvarShellCommand) + acl("EVAL_PREFIX", lkSpace, CheckvarShellWord, "Makefile:a", "Makefile.common:a") // XXX: Combining ShellWord with lkSpace looks weird. + sys("EXPORT_SYMBOLS_LDFLAGS", lkShell, CheckvarLdFlag) + sys("EXTRACT_CMD", lkNone, CheckvarShellCommand) + pkg("EXTRACT_DIR", lkNone, CheckvarPathname) + pkglist("EXTRACT_ELEMENTS", lkShell, CheckvarPathmask) + pkglist("EXTRACT_ENV", lkShell, CheckvarShellWord) + pkglist("EXTRACT_ONLY", lkShell, CheckvarPathname) + acl("EXTRACT_OPTS", lkShell, CheckvarShellWord, "Makefile:as", "Makefile.common:as") + acl("EXTRACT_OPTS_BIN", lkShell, CheckvarShellWord, "Makefile:as", "Makefile.common:as") + acl("EXTRACT_OPTS_LHA", lkShell, CheckvarShellWord, "Makefile:as", "Makefile.common:as") + acl("EXTRACT_OPTS_PAX", lkShell, CheckvarShellWord, "Makefile:as", "Makefile.common:as") + acl("EXTRACT_OPTS_RAR", lkShell, CheckvarShellWord, "Makefile:as", "Makefile.common:as") + acl("EXTRACT_OPTS_TAR", lkShell, CheckvarShellWord, "Makefile:as", "Makefile.common:as") + acl("EXTRACT_OPTS_ZIP", lkShell, CheckvarShellWord, "Makefile:as", "Makefile.common:as") + acl("EXTRACT_OPTS_ZOO", lkShell, CheckvarShellWord, "Makefile:as", "Makefile.common:as") + pkg("EXTRACT_SUFX", lkNone, CheckvarDistSuffix) + pkg("EXTRACT_USING", lkNone, enum("bsdtar gtar nbtar pax")) + sys("FAIL_MSG", lkNone, CheckvarShellCommand) + sys("FAMBASE", lkNone, CheckvarPathname) + pkg("FAM_ACCEPTED", lkShell, enum("fam gamin")) + usr("FAM_DEFAULT", lkNone, enum("fam gamin")) + sys("FAM_TYPE", lkNone, enum("fam gamin")) + acl("FETCH_BEFORE_ARGS", lkShell, CheckvarShellWord, "Makefile:as") + pkglist("FETCH_MESSAGE", lkShell, CheckvarShellWord) + pkg("FILESDIR", lkNone, CheckvarRelativePkgPath) + pkglist("FILES_SUBST", lkShell, CheckvarShellWord) + acl("FILES_SUBST_SED", lkShell, CheckvarShellWord) + pkglist("FIX_RPATH", lkShell, CheckvarVarname) + pkglist("FLEX_REQD", lkShell, CheckvarVersion) + acl("FONTS_DIRS.*", lkShell, CheckvarPathname, "Makefile:as", "Makefile.common:a") + sys("GAMEDATAMODE", lkNone, CheckvarFileMode) + sys("GAMES_GROUP", lkNone, CheckvarUserGroupName) + sys("GAMEMODE", lkNone, CheckvarFileMode) + sys("GAMES_USER", lkNone, CheckvarUserGroupName) + pkglist("GCC_REQD", lkShell, CheckvarVersion) + pkglist("GENERATE_PLIST", lkShell, CheckvarShellWord) // List of Shellcommand, terminated with a semicolon + pkg("GITHUB_PROJECT", lkNone, CheckvarIdentifier) + pkg("GITHUB_TAG", lkNone, CheckvarIdentifier) + pkg("GITHUB_RELEASE", lkNone, CheckvarFilename) + pkg("GITHUB_TYPE", lkNone, enum("tag release")) + acl("GNU_ARCH", lkNone, enum("mips")) + acl("GNU_CONFIGURE", lkNone, CheckvarYes, "Makefile.common:s", "Makefile:s") + acl("GNU_CONFIGURE_INFODIR", lkNone, CheckvarPathname, "Makefile:s", "Makefile.common:s") + acl("GNU_CONFIGURE_LIBDIR", lkNone, CheckvarPathname, "Makefile:s", "Makefile.common:s") + pkg("GNU_CONFIGURE_LIBSUBDIR", lkNone, CheckvarPathname) + acl("GNU_CONFIGURE_MANDIR", lkNone, CheckvarPathname, "Makefile:s", "Makefile.common:s") + acl("GNU_CONFIGURE_PREFIX", lkNone, CheckvarPathname, "Makefile:s") + acl("HAS_CONFIGURE", lkNone, CheckvarYes, "Makefile:s", "Makefile.common:s") + pkglist("HEADER_TEMPLATES", lkShell, CheckvarPathname) + pkg("HOMEPAGE", lkNone, CheckvarURL) + acl("IGNORE_PKG.*", lkNone, CheckvarYes, "*:sp") + acl("INCOMPAT_CURSES", lkSpace, CheckvarPlatformTriple, "Makefile:as") + acl("INCOMPAT_ICONV", lkSpace, CheckvarPlatformTriple) + acl("INFO_DIR", lkNone, CheckvarPathname) // relative to PREFIX + pkg("INFO_FILES", lkNone, CheckvarYes) + sys("INSTALL", lkNone, CheckvarShellCommand) + pkglist("INSTALLATION_DIRS", lkShell, CheckvarPrefixPathname) + pkg("INSTALLATION_DIRS_FROM_PLIST", lkNone, CheckvarYes) + sys("INSTALL_DATA", lkNone, CheckvarShellCommand) + sys("INSTALL_DATA_DIR", lkNone, CheckvarShellCommand) + pkglist("INSTALL_DIRS", lkShell, CheckvarWrksrcSubdirectory) + pkglist("INSTALL_ENV", lkShell, CheckvarShellWord) + acl("INSTALL_FILE", lkNone, CheckvarPathname, "Makefile:s") + sys("INSTALL_GAME", lkNone, CheckvarShellCommand) + sys("INSTALL_GAME_DATA", lkNone, CheckvarShellCommand) + sys("INSTALL_LIB", lkNone, CheckvarShellCommand) + sys("INSTALL_LIB_DIR", lkNone, CheckvarShellCommand) + pkglist("INSTALL_MAKE_FLAGS", lkShell, CheckvarShellWord) + sys("INSTALL_MAN", lkNone, CheckvarShellCommand) + sys("INSTALL_MAN_DIR", lkNone, CheckvarShellCommand) + sys("INSTALL_PROGRAM", lkNone, CheckvarShellCommand) + sys("INSTALL_PROGRAM_DIR", lkNone, CheckvarShellCommand) + sys("INSTALL_SCRIPT", lkNone, CheckvarShellCommand) + acl("INSTALL_SCRIPTS_ENV", lkShell, CheckvarShellWord) + sys("INSTALL_SCRIPT_DIR", lkNone, CheckvarShellCommand) + acl("INSTALL_SRC", lkShell, CheckvarPathname, "Makefile:s", "Makefile.common:ds") + pkg("INSTALL_TARGET", lkShell, CheckvarIdentifier) + acl("INSTALL_TEMPLATES", lkShell, CheckvarPathname, "Makefile:as", "Makefile.common:ads") + acl("INSTALL_UNSTRIPPED", lkNone, CheckvarYesNo, "Makefile:s", "Makefile.common:s") + pkg("INTERACTIVE_STAGE", lkShell, enum("fetch extract configure build install")) + acl("IS_BUILTIN.*", lkNone, CheckvarYesNoIndirectly, "builtin.mk:psu") + sys("JAVA_BINPREFIX", lkNone, CheckvarPathname) + pkg("JAVA_CLASSPATH", lkNone, CheckvarShellWord) + pkg("JAVA_HOME", lkNone, CheckvarPathname) + pkg("JAVA_NAME", lkNone, CheckvarFilename) + pkglist("JAVA_UNLIMIT", lkShell, enum("cmdsize datasize stacksize")) + pkglist("JAVA_WRAPPERS", lkSpace, CheckvarFilename) + pkg("JAVA_WRAPPER_BIN.*", lkNone, CheckvarPathname) + sys("KRB5BASE", lkNone, CheckvarPathname) + acl("KRB5_ACCEPTED", lkShell, enum("heimdal mit-krb5")) + usr("KRB5_DEFAULT", lkNone, enum("heimdal mit-krb5")) + sys("KRB5_TYPE", lkNone, CheckvarUnchecked) + sys("LD", lkNone, CheckvarShellCommand) + pkglist("LDFLAGS*", lkShell, CheckvarLdFlag) + sys("LIBGRP", lkNone, CheckvarUserGroupName) + sys("LIBMODE", lkNone, CheckvarFileMode) + sys("LIBOWN", lkNone, CheckvarUserGroupName) + sys("LIBOSSAUDIO", lkNone, CheckvarPathname) + pkglist("LIBS*", lkShell, CheckvarLdFlag) + sys("LIBTOOL", lkNone, CheckvarShellCommand) + acl("LIBTOOL_OVERRIDE", lkShell, CheckvarPathmask, "Makefile:as") + pkglist("LIBTOOL_REQD", lkShell, CheckvarVersion) + acl("LICENCE", lkNone, CheckvarLicense, "Makefile:s", "Makefile.common:s", "options.mk:s") + acl("LICENSE", lkNone, CheckvarLicense, "Makefile:s", "Makefile.common:s", "options.mk:s") + pkg("LICENSE_FILE", lkNone, CheckvarPathname) + sys("LINKER_RPATH_FLAG", lkNone, CheckvarShellWord) + sys("LOWER_OPSYS", lkNone, CheckvarIdentifier) + acl("LTCONFIG_OVERRIDE", lkShell, CheckvarPathmask, "Makefile:as", "Makefile.common:a") + sys("MACHINE_ARCH", lkNone, CheckvarIdentifier) + sys("MACHINE_GNU_PLATFORM", lkNone, CheckvarPlatformTriple) + acl("MAINTAINER", lkNone, CheckvarMailAddress, "Makefile:s", "Makefile.common:d") + sys("MAKE", lkNone, CheckvarShellCommand) + pkglist("MAKEFLAGS", lkShell, CheckvarShellWord) + acl("MAKEVARS", lkShell, CheckvarVarname, "builtin.mk:a", "buildlink3.mk:a", "hacks.mk:a") + pkglist("MAKE_DIRS", lkShell, CheckvarPathname) + pkglist("MAKE_DIRS_PERMS", lkShell, CheckvarShellWord) + pkglist("MAKE_ENV", lkShell, CheckvarShellWord) + pkg("MAKE_FILE", lkNone, CheckvarPathname) + pkglist("MAKE_FLAGS", lkShell, CheckvarShellWord) + usr("MAKE_JOBS", lkNone, CheckvarInteger) + pkg("MAKE_JOBS_SAFE", lkNone, CheckvarYesNo) + pkg("MAKE_PROGRAM", lkNone, CheckvarShellCommand) + acl("MANCOMPRESSED", lkNone, CheckvarYesNo, "Makefile:s", "Makefile.common:ds") + acl("MANCOMPRESSED_IF_MANZ", lkNone, CheckvarYes, "Makefile:s", "Makefile.common:ds") + sys("MANGRP", lkNone, CheckvarUserGroupName) + sys("MANMODE", lkNone, CheckvarFileMode) + sys("MANOWN", lkNone, CheckvarUserGroupName) + pkglist("MASTER_SITES", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_APACHE", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_BACKUP", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_CYGWIN", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_DEBIAN", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_FREEBSD", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_FREEBSD_LOCAL", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_GENTOO", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_GITHUB", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_GNOME", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_GNU", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_GNUSTEP", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_IFARCHIVE", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_HASKELL_HACKAGE", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_KDE", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_LOCAL", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_MOZILLA", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_MOZILLA_ALL", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_MOZILLA_ESR", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_MYSQL", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_NETLIB", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_OPENOFFICE", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_OSDN", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_PERL_CPAN", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_R_CRAN", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_RUBYGEMS", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_SOURCEFORGE", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_SUNSITE", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_SUSE", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_TEX_CTAN", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_XCONTRIB", lkShell, CheckvarFetchURL) + sys("MASTER_SITE_XEMACS", lkShell, CheckvarFetchURL) + pkglist("MESSAGE_SRC", lkShell, CheckvarPathname) + acl("MESSAGE_SUBST", lkShell, CheckvarShellWord, "Makefile.common:a", "Makefile:a", "options.mk:a") + pkg("META_PACKAGE", lkNone, CheckvarYes) + sys("MISSING_FEATURES", lkShell, CheckvarIdentifier) + acl("MYSQL_VERSIONS_ACCEPTED", lkShell, enum("51 55 56"), "Makefile:s") + usr("MYSQL_VERSION_DEFAULT", lkNone, CheckvarVersion) + sys("NM", lkNone, CheckvarShellCommand) + sys("NONBINMODE", lkNone, CheckvarFileMode) + pkg("NOT_FOR_COMPILER", lkShell, enum("ccache ccc clang distcc f2c gcc hp icc ido mipspro mipspro-ucode pcc sunpro xlc")) + pkglist("NOT_FOR_PLATFORM", lkSpace, CheckvarPlatformTriple) + pkg("NOT_FOR_UNPRIVILEGED", lkNone, CheckvarYesNo) + acl("NO_BIN_ON_CDROM", lkNone, CheckvarRestricted, "Makefile:s", "Makefile.common:s") + acl("NO_BIN_ON_FTP", lkNone, CheckvarRestricted, "Makefile:s", "Makefile.common:s") + acl("NO_BUILD", lkNone, CheckvarYes, "Makefile:s", "Makefile.common:s", "Makefile.*:ds") + pkg("NO_CHECKSUM", lkNone, CheckvarYes) + pkg("NO_CONFIGURE", lkNone, CheckvarYes) + acl("NO_EXPORT_CPP", lkNone, CheckvarYes, "Makefile:s") + pkg("NO_EXTRACT", lkNone, CheckvarYes) + pkg("NO_INSTALL_MANPAGES", lkNone, CheckvarYes) // only has an effect for Imake packages. + acl("NO_PKGTOOLS_REQD_CHECK", lkNone, CheckvarYes, "Makefile:s") + acl("NO_SRC_ON_CDROM", lkNone, CheckvarRestricted, "Makefile:s", "Makefile.common:s") + acl("NO_SRC_ON_FTP", lkNone, CheckvarRestricted, "Makefile:s", "Makefile.common:s") + pkglist("ONLY_FOR_COMPILER", lkShell, enum("ccc clang gcc hp icc ido mipspro mipspro-ucode pcc sunpro xlc")) + pkglist("ONLY_FOR_PLATFORM", lkSpace, CheckvarPlatformTriple) + pkg("ONLY_FOR_UNPRIVILEGED", lkNone, CheckvarYesNo) + sys("OPSYS", lkNone, CheckvarIdentifier) + acl("OPSYSVARS", lkShell, CheckvarVarname, "Makefile:a", "Makefile.common:a") + acl("OSVERSION_SPECIFIC", lkNone, CheckvarYes, "Makefile:s", "Makefile.common:s") + sys("OS_VERSION", lkNone, CheckvarVersion) + pkg("OVERRIDE_DIRDEPTH*", lkNone, CheckvarInteger) + pkg("OVERRIDE_GNU_CONFIG_SCRIPTS", lkNone, CheckvarYes) + acl("OWNER", lkNone, CheckvarMailAddress, "Makefile:s", "Makefile.common:d") + pkglist("OWN_DIRS", lkShell, CheckvarPathname) + pkglist("OWN_DIRS_PERMS", lkShell, CheckvarShellWord) + sys("PAMBASE", lkNone, CheckvarPathname) + usr("PAM_DEFAULT", lkNone, enum("linux-pam openpam solaris-pam")) + acl("PATCHDIR", lkNone, CheckvarRelativePkgPath, "Makefile:s", "Makefile.common:ds") + pkglist("PATCHFILES", lkShell, CheckvarFilename) + acl("PATCH_ARGS", lkShell, CheckvarShellWord) + acl("PATCH_DIST_ARGS", lkShell, CheckvarShellWord, "Makefile:as") + acl("PATCH_DIST_CAT", lkNone, CheckvarShellCommand) + acl("PATCH_DIST_STRIP*", lkNone, CheckvarShellWord, "Makefile:s", "Makefile.common:s", "buildlink3.mk:", "builtin.mk:", "*.mk:s") + acl("PATCH_SITES", lkShell, CheckvarURL, "Makefile:s", "options.mk:s", "Makefile.common:s") + acl("PATCH_STRIP", lkNone, CheckvarShellWord) + pkg("PERL5_USE_PACKLIST", lkNone, CheckvarYesNo) + acl("PERL5_PACKLIST", lkShell, CheckvarPerl5Packlist, "Makefile:s", "options.mk:sa") + acl("PERL5_PACKLIST_DIR", lkNone, CheckvarPathname) + sys("PGSQL_PREFIX", lkNone, CheckvarPathname) + acl("PGSQL_VERSIONS_ACCEPTED", lkShell, enum("91 92 93 94")) + usr("PGSQL_VERSION_DEFAULT", lkNone, CheckvarVersion) + sys("PG_LIB_EXT", lkNone, enum("dylib so")) + sys("PGSQL_TYPE", lkNone, enum("postgresql81-client postgresql80-client")) + sys("PGPKGSRCDIR", lkNone, CheckvarPathname) + sys("PHASE_MSG", lkNone, CheckvarShellCommand) + usr("PHP_VERSION_REQD", lkNone, CheckvarVersion) + sys("PKGBASE", lkNone, CheckvarIdentifier) + acl("PKGCONFIG_OVERRIDE", lkShell, CheckvarPathmask, "Makefile:as", "Makefile.common:a") + pkg("PKGCONFIG_OVERRIDE_STAGE", lkNone, CheckvarStage) + pkg("PKGDIR", lkNone, CheckvarRelativePkgDir) + sys("PKGDIRMODE", lkNone, CheckvarFileMode) + sys("PKGLOCALEDIR", lkNone, CheckvarPathname) + pkg("PKGNAME", lkNone, CheckvarPkgName) + sys("PKGNAME_NOREV", lkNone, CheckvarPkgName) + sys("PKGPATH", lkNone, CheckvarPathname) + acl("PKGREPOSITORY", lkNone, CheckvarUnchecked) + acl("PKGREVISION", lkNone, CheckvarPkgRevision, "Makefile:s") + sys("PKGSRCDIR", lkNone, CheckvarPathname) + acl("PKGSRCTOP", lkNone, CheckvarYes, "Makefile:s") + acl("PKGTOOLS_ENV", lkShell, CheckvarShellWord) + sys("PKGVERSION", lkNone, CheckvarVersion) + sys("PKGWILDCARD", lkNone, CheckvarFilemask) + sys("PKG_ADMIN", lkNone, CheckvarShellCommand) + sys("PKG_APACHE", lkNone, enum("apache22 apache24")) + pkg("PKG_APACHE_ACCEPTED", lkShell, enum("apache22 apache24")) + usr("PKG_APACHE_DEFAULT", lkNone, enum("apache22 apache24")) + usr("PKG_CONFIG", lkNone, CheckvarYes) // ^^ No, this is not the popular command from GNOME, but the setting // whether the pkgsrc user wants configuration files automatically // installed or not. - sys("PKG_CREATE", LK_NONE, CheckvarShellCommand) - sys("PKG_DBDIR", LK_NONE, CheckvarPathname) - cmdline("PKG_DEBUG_LEVEL", LK_NONE, CheckvarInteger) - usr("PKG_DEFAULT_OPTIONS", LK_SHELL, CheckvarOption) - sys("PKG_DELETE", LK_NONE, CheckvarShellCommand) - acl("PKG_DESTDIR_SUPPORT", LK_SHELL, enum("destdir user-destdir"), "Makefile:s", "Makefile.common:s") - pkglist("PKG_FAIL_REASON", LK_SHELL, CheckvarShellWord) - acl("PKG_GECOS.*", LK_NONE, CheckvarMessage, "Makefile:s") - acl("PKG_GID.*", LK_NONE, CheckvarInteger, "Makefile:s") - acl("PKG_GROUPS", LK_SHELL, CheckvarShellWord, "Makefile:as") - pkglist("PKG_GROUPS_VARS", LK_SHELL, CheckvarVarname) - acl("PKG_HOME.*", LK_NONE, CheckvarPathname, "Makefile:s") - acl("PKG_HACKS", LK_SHELL, CheckvarIdentifier, "hacks.mk:a") - sys("PKG_INFO", LK_NONE, CheckvarShellCommand) - sys("PKG_JAVA_HOME", LK_NONE, CheckvarPathname) + sys("PKG_CREATE", lkNone, CheckvarShellCommand) + sys("PKG_DBDIR", lkNone, CheckvarPathname) + cmdline("PKG_DEBUG_LEVEL", lkNone, CheckvarInteger) + usr("PKG_DEFAULT_OPTIONS", lkShell, CheckvarOption) + sys("PKG_DELETE", lkNone, CheckvarShellCommand) + acl("PKG_DESTDIR_SUPPORT", lkShell, enum("destdir user-destdir"), "Makefile:s", "Makefile.common:s") + pkglist("PKG_FAIL_REASON", lkShell, CheckvarShellWord) + acl("PKG_GECOS.*", lkNone, CheckvarMessage, "Makefile:s") + acl("PKG_GID.*", lkNone, CheckvarInteger, "Makefile:s") + acl("PKG_GROUPS", lkShell, CheckvarShellWord, "Makefile:as") + pkglist("PKG_GROUPS_VARS", lkShell, CheckvarVarname) + acl("PKG_HOME.*", lkNone, CheckvarPathname, "Makefile:s") + acl("PKG_HACKS", lkShell, CheckvarIdentifier, "hacks.mk:a") + sys("PKG_INFO", lkNone, CheckvarShellCommand) + sys("PKG_JAVA_HOME", lkNone, CheckvarPathname) jvms := enum("{ blackdown-jdk13 jdk jdk14 kaffe run-jdk13 sun-jdk14 sun-jdk15 sun-jdk6 openjdk7 openjdk7-bin sun-jdk7}") - sys("PKG_JVM", LK_NONE, jvms) - acl("PKG_JVMS_ACCEPTED", LK_SHELL, jvms, "Makefile:s", "Makefile.common:ds") - usr("PKG_JVM_DEFAULT", LK_NONE, jvms) - acl("PKG_LEGACY_OPTIONS", LK_SHELL, CheckvarOption) - acl("PKG_LIBTOOL", LK_NONE, CheckvarPathname, "Makefile:s") - acl("PKG_OPTIONS", LK_SPACE, CheckvarOption, "bsd.options.mk:s", "*:pu") - usr("PKG_OPTIONS.*", LK_SPACE, CheckvarOption) - acl("PKG_OPTIONS_DEPRECATED_WARNINGS", LK_SHELL, CheckvarShellWord) - acl("PKG_OPTIONS_GROUP.*", LK_SPACE, CheckvarOption, "options.mk:s", "Makefile:s") - acl("PKG_OPTIONS_LEGACY_OPTS", LK_SPACE, CheckvarUnchecked, "Makefile:a", "Makefile.common:a", "options.mk:a") - acl("PKG_OPTIONS_LEGACY_VARS", LK_SPACE, CheckvarUnchecked, "Makefile:a", "Makefile.common:a", "options.mk:a") - acl("PKG_OPTIONS_NONEMPTY_SETS", LK_SPACE, CheckvarIdentifier) - acl("PKG_OPTIONS_OPTIONAL_GROUPS", LK_SPACE, CheckvarIdentifier, "options.mk:as") - acl("PKG_OPTIONS_REQUIRED_GROUPS", LK_SPACE, CheckvarIdentifier, "options.mk:s", "Makefile:s") - acl("PKG_OPTIONS_SET.*", LK_SPACE, CheckvarOption) - acl("PKG_OPTIONS_VAR", LK_NONE, CheckvarPkgOptionsVar, "options.mk:s", "Makefile:s", "Makefile.common:s", "bsd.options.mk:p") - acl("PKG_PRESERVE", LK_NONE, CheckvarYes, "Makefile:s") - acl("PKG_SHELL", LK_NONE, CheckvarPathname, "Makefile:s", "Makefile.common:s") - acl("PKG_SHELL.*", LK_NONE, CheckvarPathname, "Makefile:s", "Makefile.common:s") - acl("PKG_SHLIBTOOL", LK_NONE, CheckvarPathname) - pkglist("PKG_SKIP_REASON", LK_SHELL, CheckvarShellWord) - acl("PKG_SUGGESTED_OPTIONS", LK_SHELL, CheckvarOption, "options.mk:as", "Makefile:as", "Makefile.common:s") - acl("PKG_SUPPORTED_OPTIONS", LK_SHELL, CheckvarOption, "options.mk:as", "Makefile:as", "Makefile.common:s") - pkg("PKG_SYSCONFDIR*", LK_NONE, CheckvarPathname) - pkglist("PKG_SYSCONFDIR_PERMS", LK_SHELL, CheckvarShellWord) - sys("PKG_SYSCONFBASEDIR", LK_NONE, CheckvarPathname) - pkg("PKG_SYSCONFSUBDIR", LK_NONE, CheckvarPathname) - acl("PKG_SYSCONFVAR", LK_NONE, CheckvarIdentifier) // FIXME: name/type mismatch.") - acl("PKG_UID", LK_NONE, CheckvarInteger, "Makefile:s") - acl("PKG_USERS", LK_SHELL, CheckvarShellWord, "Makefile:as") - pkg("PKG_USERS_VARS", LK_SHELL, CheckvarVarname) - acl("PKG_USE_KERBEROS", LK_NONE, CheckvarYes, "Makefile:s", "Makefile.common:s") + sys("PKG_JVM", lkNone, jvms) + acl("PKG_JVMS_ACCEPTED", lkShell, jvms, "Makefile:s", "Makefile.common:ds") + usr("PKG_JVM_DEFAULT", lkNone, jvms) + acl("PKG_LEGACY_OPTIONS", lkShell, CheckvarOption) + acl("PKG_LIBTOOL", lkNone, CheckvarPathname, "Makefile:s") + acl("PKG_OPTIONS", lkSpace, CheckvarOption, "bsd.options.mk:s", "*:pu") + usr("PKG_OPTIONS.*", lkSpace, CheckvarOption) + acl("PKG_OPTIONS_DEPRECATED_WARNINGS", lkShell, CheckvarShellWord) + acl("PKG_OPTIONS_GROUP.*", lkSpace, CheckvarOption, "options.mk:s", "Makefile:s") + acl("PKG_OPTIONS_LEGACY_OPTS", lkSpace, CheckvarUnchecked, "Makefile:a", "Makefile.common:a", "options.mk:a") + acl("PKG_OPTIONS_LEGACY_VARS", lkSpace, CheckvarUnchecked, "Makefile:a", "Makefile.common:a", "options.mk:a") + acl("PKG_OPTIONS_NONEMPTY_SETS", lkSpace, CheckvarIdentifier) + acl("PKG_OPTIONS_OPTIONAL_GROUPS", lkSpace, CheckvarIdentifier, "options.mk:as") + acl("PKG_OPTIONS_REQUIRED_GROUPS", lkSpace, CheckvarIdentifier, "options.mk:s", "Makefile:s") + acl("PKG_OPTIONS_SET.*", lkSpace, CheckvarOption) + acl("PKG_OPTIONS_VAR", lkNone, CheckvarPkgOptionsVar, "options.mk:s", "Makefile:s", "Makefile.common:s", "bsd.options.mk:p") + acl("PKG_PRESERVE", lkNone, CheckvarYes, "Makefile:s") + acl("PKG_SHELL", lkNone, CheckvarPathname, "Makefile:s", "Makefile.common:s") + acl("PKG_SHELL.*", lkNone, CheckvarPathname, "Makefile:s", "Makefile.common:s") + acl("PKG_SHLIBTOOL", lkNone, CheckvarPathname) + pkglist("PKG_SKIP_REASON", lkShell, CheckvarShellWord) + acl("PKG_SUGGESTED_OPTIONS", lkShell, CheckvarOption, "options.mk:as", "Makefile:as", "Makefile.common:s") + acl("PKG_SUPPORTED_OPTIONS", lkShell, CheckvarOption, "options.mk:as", "Makefile:as", "Makefile.common:s") + pkg("PKG_SYSCONFDIR*", lkNone, CheckvarPathname) + pkglist("PKG_SYSCONFDIR_PERMS", lkShell, CheckvarShellWord) + sys("PKG_SYSCONFBASEDIR", lkNone, CheckvarPathname) + pkg("PKG_SYSCONFSUBDIR", lkNone, CheckvarPathname) + acl("PKG_SYSCONFVAR", lkNone, CheckvarIdentifier) // FIXME: name/type mismatch.") + acl("PKG_UID", lkNone, CheckvarInteger, "Makefile:s") + acl("PKG_USERS", lkShell, CheckvarShellWord, "Makefile:as") + pkg("PKG_USERS_VARS", lkShell, CheckvarVarname) + acl("PKG_USE_KERBEROS", lkNone, CheckvarYes, "Makefile:s", "Makefile.common:s") // PLIST.* has special handling code - pkglist("PLIST_VARS", LK_SHELL, CheckvarIdentifier) - pkglist("PLIST_SRC", LK_SHELL, CheckvarRelativePkgPath) - pkglist("PLIST_SUBST", LK_SHELL, CheckvarShellWord) - acl("PLIST_TYPE", LK_NONE, enum("dynamic static")) - acl("PREPEND_PATH", LK_SHELL, CheckvarPathname) - acl("PREFIX", LK_NONE, CheckvarPathname, "*:u") - acl("PREV_PKGPATH", LK_NONE, CheckvarPathname, "*:u") // doesn't exist any longer - acl("PRINT_PLIST_AWK", LK_NONE, CheckvarAwkCommand, "*:a") - acl("PRIVILEGED_STAGES", LK_SHELL, enum("install package clean")) - acl("PTHREAD_AUTO_VARS", LK_NONE, CheckvarYesNo, "Makefile:s") - sys("PTHREAD_CFLAGS", LK_SHELL, CheckvarCFlag) - sys("PTHREAD_LDFLAGS", LK_SHELL, CheckvarLdFlag) - sys("PTHREAD_LIBS", LK_SHELL, CheckvarLdFlag) - acl("PTHREAD_OPTS", LK_SHELL, enum("native optional require"), "Makefile:as", "Makefile.common:a", "buildlink3.mk:a") - sys("PTHREAD_TYPE", LK_NONE, CheckvarIdentifier) // Or "native" or "none". - pkg("PY_PATCHPLIST", LK_NONE, CheckvarYes) - acl("PYPKGPREFIX", LK_NONE, enum("py27 py33 py34"), "*:pu", "pyversion.mk:s", "*:") - pkg("PYTHON_FOR_BUILD_ONLY", LK_NONE, CheckvarYes) - pkglist("REPLACE_PYTHON", LK_SHELL, CheckvarPathmask) - pkg("PYTHON_VERSIONS_ACCEPTED", LK_SHELL, CheckvarVersion) - pkg("PYTHON_VERSIONS_INCOMPATIBLE", LK_SHELL, CheckvarVersion) - usr("PYTHON_VERSION_DEFAULT", LK_NONE, CheckvarVersion) - usr("PYTHON_VERSION_REQD", LK_NONE, CheckvarVersion) - pkglist("PYTHON_VERSIONED_DEPENDENCIES", LK_SHELL, CheckvarPythonDependency) - sys("RANLIB", LK_NONE, CheckvarShellCommand) - pkglist("RCD_SCRIPTS", LK_SHELL, CheckvarFilename) - acl("RCD_SCRIPT_SRC.*", LK_SHELL, CheckvarPathname, "Makefile:s") - acl("REPLACE.*", LK_NONE, CheckvarString, "Makefile:s") - pkglist("REPLACE_AWK", LK_SHELL, CheckvarPathmask) - pkglist("REPLACE_BASH", LK_SHELL, CheckvarPathmask) - pkglist("REPLACE_CSH", LK_SHELL, CheckvarPathmask) - acl("REPLACE_EMACS", LK_SHELL, CheckvarPathmask) - acl("REPLACE_FILES.*", LK_SHELL, CheckvarPathmask, "Makefile:as", "Makefile.common:as") - acl("REPLACE_INTERPRETER", LK_SHELL, CheckvarIdentifier, "Makefile:a", "Makefile.common:a") - pkglist("REPLACE_KSH", LK_SHELL, CheckvarPathmask) - pkglist("REPLACE_LOCALEDIR_PATTERNS", LK_SHELL, CheckvarFilemask) - pkglist("REPLACE_LUA", LK_SHELL, CheckvarPathmask) - pkglist("REPLACE_PERL", LK_SHELL, CheckvarPathmask) - pkglist("REPLACE_PYTHON", LK_SHELL, CheckvarPathmask) - pkglist("REPLACE_SH", LK_SHELL, CheckvarPathmask) - pkglist("REQD_DIRS", LK_SHELL, CheckvarPathname) - pkglist("REQD_DIRS_PERMS", LK_SHELL, CheckvarShellWord) - pkglist("REQD_FILES", LK_SHELL, CheckvarPathname) - pkg("REQD_FILES_MODE", LK_NONE, enum("0644 0640 0600 0400")) - pkglist("REQD_FILES_PERMS", LK_SHELL, CheckvarShellWord) - pkg("RESTRICTED", LK_NONE, CheckvarMessage) - usr("ROOT_USER", LK_NONE, CheckvarUserGroupName) - usr("ROOT_GROUP", LK_NONE, CheckvarUserGroupName) - usr("RUBY_VERSION_REQD", LK_NONE, CheckvarVersion) - sys("RUN", LK_NONE, CheckvarShellCommand) - acl("SCRIPTS_ENV", LK_SHELL, CheckvarShellWord, "Makefile:a", "Makefile.common:a") - usr("SETUID_ROOT_PERMS", LK_SHELL, CheckvarShellWord) - sys("SHAREGRP", LK_NONE, CheckvarUserGroupName) - sys("SHAREMODE", LK_NONE, CheckvarFileMode) - sys("SHAREOWN", LK_NONE, CheckvarUserGroupName) - sys("SHCOMMENT", LK_NONE, CheckvarShellCommand) - acl("SHLIB_HANDLING", LK_NONE, enum("YES NO no")) - acl("SHLIBTOOL", LK_NONE, CheckvarShellCommand) - acl("SHLIBTOOL_OVERRIDE", LK_SHELL, CheckvarPathmask, "Makefile:as", "Makefile.common:a") - acl("SITES.*", LK_SHELL, CheckvarFetchURL, "Makefile:asu", "Makefile.common:asu", "options.mk:asu") - pkglist("SPECIAL_PERMS", LK_SHELL, CheckvarShellWord) - sys("STEP_MSG", LK_NONE, CheckvarShellCommand) - acl("SUBDIR", LK_SHELL, CheckvarFilename, "Makefile:a", "*:") - acl("SUBST_CLASSES", LK_SHELL, CheckvarIdentifier, "Makefile:a", "Makefile.common:a", "hacks.mk:a", "Makefile.*:a") - acl("SUBST_FILES.*", LK_SHELL, CheckvarPathmask, "Makefile:as", "Makefile.common:as", "hacks.mk:as", "options.mk:as", "Makefile.*:as") - acl("SUBST_FILTER_CMD.*", LK_NONE, CheckvarShellCommand, "Makefile:s", "Makefile.common:s", "hacks.mk:s", "options.mk:s", "Makefile.*:s") - acl("SUBST_MESSAGE.*", LK_NONE, CheckvarMessage, "Makefile:s", "Makefile.common:s", "hacks.mk:s", "options.mk:s", "Makefile.*:s") - acl("SUBST_SED.*", LK_NONE, CheckvarSedCommands, "Makefile:as", "Makefile.common:as", "hacks.mk:as", "options.mk:as", "Makefile.*:as") - pkg("SUBST_STAGE.*", LK_NONE, CheckvarStage) - pkglist("SUBST_VARS.*", LK_SHELL, CheckvarVarname) - pkglist("SUPERSEDES", LK_SPACE, CheckvarDependency) - pkglist("TEST_DIRS", LK_SHELL, CheckvarWrksrcSubdirectory) - pkglist("TEST_ENV", LK_SHELL, CheckvarShellWord) - acl("TEST_TARGET", LK_SHELL, CheckvarIdentifier, "Makefile:s", "Makefile.common:ds", "options.mk:as") - acl("TEX_ACCEPTED", LK_SHELL, enum("teTeX1 teTeX2 teTeX3"), "Makefile:s", "Makefile.common:s") - acl("TEX_DEPMETHOD", LK_NONE, enum("build run"), "Makefile:s", "Makefile.common:s") - pkglist("TEXINFO_REQD", LK_SHELL, CheckvarVersion) - acl("TOOL_DEPENDS", LK_SPACE, CheckvarDependencyWithPath, "Makefile.common:a", "Makefile:a", "options.mk:a", "*.mk:a") - sys("TOOLS_ALIASES", LK_SHELL, CheckvarFilename) - sys("TOOLS_BROKEN", LK_SHELL, CheckvarTool) - sys("TOOLS_CREATE", LK_SHELL, CheckvarTool) - sys("TOOLS_DEPENDS.*", LK_SPACE, CheckvarDependencyWithPath) - sys("TOOLS_GNU_MISSING", LK_SHELL, CheckvarTool) - sys("TOOLS_NOOP", LK_SHELL, CheckvarTool) - sys("TOOLS_PATH.*", LK_NONE, CheckvarPathname) - sys("TOOLS_PLATFORM.*", LK_NONE, CheckvarShellCommand) - sys("TOUCH_FLAGS", LK_SHELL, CheckvarShellWord) - pkglist("UAC_REQD_EXECS", LK_SHELL, CheckvarPrefixPathname) - acl("UNLIMIT_RESOURCES", LK_SHELL, enum("datasize stacksize memorysize"), "Makefile:as", "Makefile.common:a") - usr("UNPRIVILEGED_USER", LK_NONE, CheckvarUserGroupName) - usr("UNPRIVILEGED_GROUP", LK_NONE, CheckvarUserGroupName) - pkglist("UNWRAP_FILES", LK_SHELL, CheckvarPathmask) - usr("UPDATE_TARGET", LK_SHELL, CheckvarIdentifier) - pkg("USE_BSD_MAKEFILE", LK_NONE, CheckvarYes) - acl("USE_BUILTIN.*", LK_NONE, CheckvarYesNoIndirectly, "builtin.mk:s") - pkg("USE_CMAKE", LK_NONE, CheckvarYes) - acl("USE_CROSSBASE", LK_NONE, CheckvarYes, "Makefile:s") - pkg("USE_FEATURES", LK_SHELL, CheckvarIdentifier) - pkg("USE_GCC_RUNTIME", LK_NONE, CheckvarYesNo) - pkg("USE_GNU_CONFIGURE_HOST", LK_NONE, CheckvarYesNo) - acl("USE_GNU_ICONV", LK_NONE, CheckvarYes, "Makefile:s", "Makefile.common:s", "options.mk:s") - acl("USE_IMAKE", LK_NONE, CheckvarYes, "Makefile:s") - pkg("USE_JAVA", LK_NONE, enum("run yes build")) - pkg("USE_JAVA2", LK_NONE, enum("YES yes no 1.4 1.5 6 7 8")) - acl("USE_LANGUAGES", LK_SHELL, enum("ada c c99 c++ fortran fortran77 java objc"), "Makefile:s", "Makefile.common:s", "options.mk:s") - pkg("USE_LIBTOOL", LK_NONE, CheckvarYes) - pkg("USE_MAKEINFO", LK_NONE, CheckvarYes) - pkg("USE_MSGFMT_PLURALS", LK_NONE, CheckvarYes) - pkg("USE_NCURSES", LK_NONE, CheckvarYes) - pkg("USE_OLD_DES_API", LK_NONE, CheckvarYesNo) - pkg("USE_PKGINSTALL", LK_NONE, CheckvarYes) - pkg("USE_PKGLOCALEDIR", LK_NONE, CheckvarYesNo) - usr("USE_PKGSRC_GCC", LK_NONE, CheckvarYes) - acl("USE_TOOLS", LK_SHELL, CheckvarTool, "*:a") - pkg("USE_X11", LK_NONE, CheckvarYes) - sys("WARNING_MSG", LK_NONE, CheckvarShellCommand) - sys("WARNING_CAT", LK_NONE, CheckvarShellCommand) - acl("WRAPPER_REORDER_CMDS", LK_SHELL, CheckvarWrapperReorder, "buildlink3.mk:a", "Makefile.common:a", "Makefile:a") - acl("WRAPPER_TRANSFORM_CMDS", LK_SHELL, CheckvarWrapperTransform, "buildlink3.mk:a", "Makefile.common:a", "Makefile:a") - sys("WRKDIR", LK_NONE, CheckvarPathname) - pkg("WRKSRC", LK_NONE, CheckvarWrkdirSubdirectory) - sys("X11_PKGSRCDIR.*", LK_NONE, CheckvarPathname) - usr("XAW_TYPE", LK_NONE, enum("3d neXtaw standard xpm")) - acl("XMKMF_FLAGS", LK_SHELL, CheckvarShellWord) + pkglist("PLIST_VARS", lkShell, CheckvarIdentifier) + pkglist("PLIST_SRC", lkShell, CheckvarRelativePkgPath) + pkglist("PLIST_SUBST", lkShell, CheckvarShellWord) + acl("PLIST_TYPE", lkNone, enum("dynamic static")) + acl("PREPEND_PATH", lkShell, CheckvarPathname) + acl("PREFIX", lkNone, CheckvarPathname, "*:u") + acl("PREV_PKGPATH", lkNone, CheckvarPathname, "*:u") // doesn't exist any longer + acl("PRINT_PLIST_AWK", lkNone, CheckvarAwkCommand, "*:a") + acl("PRIVILEGED_STAGES", lkShell, enum("install package clean")) + acl("PTHREAD_AUTO_VARS", lkNone, CheckvarYesNo, "Makefile:s") + sys("PTHREAD_CFLAGS", lkShell, CheckvarCFlag) + sys("PTHREAD_LDFLAGS", lkShell, CheckvarLdFlag) + sys("PTHREAD_LIBS", lkShell, CheckvarLdFlag) + acl("PTHREAD_OPTS", lkShell, enum("native optional require"), "Makefile:as", "Makefile.common:a", "buildlink3.mk:a") + sys("PTHREAD_TYPE", lkNone, CheckvarIdentifier) // Or "native" or "none". + pkg("PY_PATCHPLIST", lkNone, CheckvarYes) + acl("PYPKGPREFIX", lkNone, enum("py27 py33 py34"), "*:pu", "pyversion.mk:s", "*:") + pkg("PYTHON_FOR_BUILD_ONLY", lkNone, CheckvarYes) + pkglist("REPLACE_PYTHON", lkShell, CheckvarPathmask) + pkg("PYTHON_VERSIONS_ACCEPTED", lkShell, CheckvarVersion) + pkg("PYTHON_VERSIONS_INCOMPATIBLE", lkShell, CheckvarVersion) + usr("PYTHON_VERSION_DEFAULT", lkNone, CheckvarVersion) + usr("PYTHON_VERSION_REQD", lkNone, CheckvarVersion) + pkglist("PYTHON_VERSIONED_DEPENDENCIES", lkShell, CheckvarPythonDependency) + sys("RANLIB", lkNone, CheckvarShellCommand) + pkglist("RCD_SCRIPTS", lkShell, CheckvarFilename) + acl("RCD_SCRIPT_SRC.*", lkShell, CheckvarPathname, "Makefile:s") + acl("REPLACE.*", lkNone, CheckvarString, "Makefile:s") + pkglist("REPLACE_AWK", lkShell, CheckvarPathmask) + pkglist("REPLACE_BASH", lkShell, CheckvarPathmask) + pkglist("REPLACE_CSH", lkShell, CheckvarPathmask) + acl("REPLACE_EMACS", lkShell, CheckvarPathmask) + acl("REPLACE_FILES.*", lkShell, CheckvarPathmask, "Makefile:as", "Makefile.common:as") + acl("REPLACE_INTERPRETER", lkShell, CheckvarIdentifier, "Makefile:a", "Makefile.common:a") + pkglist("REPLACE_KSH", lkShell, CheckvarPathmask) + pkglist("REPLACE_LOCALEDIR_PATTERNS", lkShell, CheckvarFilemask) + pkglist("REPLACE_LUA", lkShell, CheckvarPathmask) + pkglist("REPLACE_PERL", lkShell, CheckvarPathmask) + pkglist("REPLACE_PYTHON", lkShell, CheckvarPathmask) + pkglist("REPLACE_SH", lkShell, CheckvarPathmask) + pkglist("REQD_DIRS", lkShell, CheckvarPathname) + pkglist("REQD_DIRS_PERMS", lkShell, CheckvarShellWord) + pkglist("REQD_FILES", lkShell, CheckvarPathname) + pkg("REQD_FILES_MODE", lkNone, enum("0644 0640 0600 0400")) + pkglist("REQD_FILES_PERMS", lkShell, CheckvarShellWord) + pkg("RESTRICTED", lkNone, CheckvarMessage) + usr("ROOT_USER", lkNone, CheckvarUserGroupName) + usr("ROOT_GROUP", lkNone, CheckvarUserGroupName) + usr("RUBY_VERSION_REQD", lkNone, CheckvarVersion) + sys("RUN", lkNone, CheckvarShellCommand) + acl("SCRIPTS_ENV", lkShell, CheckvarShellWord, "Makefile:a", "Makefile.common:a") + usr("SETUID_ROOT_PERMS", lkShell, CheckvarShellWord) + sys("SHAREGRP", lkNone, CheckvarUserGroupName) + sys("SHAREMODE", lkNone, CheckvarFileMode) + sys("SHAREOWN", lkNone, CheckvarUserGroupName) + sys("SHCOMMENT", lkNone, CheckvarShellCommand) + acl("SHLIB_HANDLING", lkNone, enum("YES NO no")) + acl("SHLIBTOOL", lkNone, CheckvarShellCommand) + acl("SHLIBTOOL_OVERRIDE", lkShell, CheckvarPathmask, "Makefile:as", "Makefile.common:a") + acl("SITES.*", lkShell, CheckvarFetchURL, "Makefile:asu", "Makefile.common:asu", "options.mk:asu") + pkglist("SPECIAL_PERMS", lkShell, CheckvarShellWord) + sys("STEP_MSG", lkNone, CheckvarShellCommand) + acl("SUBDIR", lkShell, CheckvarFilename, "Makefile:a", "*:") + acl("SUBST_CLASSES", lkShell, CheckvarIdentifier, "Makefile:a", "Makefile.common:a", "hacks.mk:a", "Makefile.*:a") + acl("SUBST_FILES.*", lkShell, CheckvarPathmask, "Makefile:as", "Makefile.common:as", "hacks.mk:as", "options.mk:as", "Makefile.*:as") + acl("SUBST_FILTER_CMD.*", lkNone, CheckvarShellCommand, "Makefile:s", "Makefile.common:s", "hacks.mk:s", "options.mk:s", "Makefile.*:s") + acl("SUBST_MESSAGE.*", lkNone, CheckvarMessage, "Makefile:s", "Makefile.common:s", "hacks.mk:s", "options.mk:s", "Makefile.*:s") + acl("SUBST_SED.*", lkNone, CheckvarSedCommands, "Makefile:as", "Makefile.common:as", "hacks.mk:as", "options.mk:as", "Makefile.*:as") + pkg("SUBST_STAGE.*", lkNone, CheckvarStage) + pkglist("SUBST_VARS.*", lkShell, CheckvarVarname) + pkglist("SUPERSEDES", lkSpace, CheckvarDependency) + pkglist("TEST_DIRS", lkShell, CheckvarWrksrcSubdirectory) + pkglist("TEST_ENV", lkShell, CheckvarShellWord) + acl("TEST_TARGET", lkShell, CheckvarIdentifier, "Makefile:s", "Makefile.common:ds", "options.mk:as") + acl("TEX_ACCEPTED", lkShell, enum("teTeX1 teTeX2 teTeX3"), "Makefile:s", "Makefile.common:s") + acl("TEX_DEPMETHOD", lkNone, enum("build run"), "Makefile:s", "Makefile.common:s") + pkglist("TEXINFO_REQD", lkShell, CheckvarVersion) + acl("TOOL_DEPENDS", lkSpace, CheckvarDependencyWithPath, "Makefile.common:a", "Makefile:a", "options.mk:a", "*.mk:a") + sys("TOOLS_ALIASES", lkShell, CheckvarFilename) + sys("TOOLS_BROKEN", lkShell, CheckvarTool) + sys("TOOLS_CREATE", lkShell, CheckvarTool) + sys("TOOLS_DEPENDS.*", lkSpace, CheckvarDependencyWithPath) + sys("TOOLS_GNU_MISSING", lkShell, CheckvarTool) + sys("TOOLS_NOOP", lkShell, CheckvarTool) + sys("TOOLS_PATH.*", lkNone, CheckvarPathname) + sys("TOOLS_PLATFORM.*", lkNone, CheckvarShellCommand) + sys("TOUCH_FLAGS", lkShell, CheckvarShellWord) + pkglist("UAC_REQD_EXECS", lkShell, CheckvarPrefixPathname) + acl("UNLIMIT_RESOURCES", lkShell, enum("datasize stacksize memorysize"), "Makefile:as", "Makefile.common:a") + usr("UNPRIVILEGED_USER", lkNone, CheckvarUserGroupName) + usr("UNPRIVILEGED_GROUP", lkNone, CheckvarUserGroupName) + pkglist("UNWRAP_FILES", lkShell, CheckvarPathmask) + usr("UPDATE_TARGET", lkShell, CheckvarIdentifier) + pkg("USE_BSD_MAKEFILE", lkNone, CheckvarYes) + acl("USE_BUILTIN.*", lkNone, CheckvarYesNoIndirectly, "builtin.mk:s") + pkg("USE_CMAKE", lkNone, CheckvarYes) + acl("USE_CROSSBASE", lkNone, CheckvarYes, "Makefile:s") + pkg("USE_FEATURES", lkShell, CheckvarIdentifier) + pkg("USE_GCC_RUNTIME", lkNone, CheckvarYesNo) + pkg("USE_GNU_CONFIGURE_HOST", lkNone, CheckvarYesNo) + acl("USE_GNU_ICONV", lkNone, CheckvarYes, "Makefile:s", "Makefile.common:s", "options.mk:s") + acl("USE_IMAKE", lkNone, CheckvarYes, "Makefile:s") + pkg("USE_JAVA", lkNone, enum("run yes build")) + pkg("USE_JAVA2", lkNone, enum("YES yes no 1.4 1.5 6 7 8")) + acl("USE_LANGUAGES", lkShell, enum("ada c c99 c++ fortran fortran77 java objc"), "Makefile:s", "Makefile.common:s", "options.mk:s") + pkg("USE_LIBTOOL", lkNone, CheckvarYes) + pkg("USE_MAKEINFO", lkNone, CheckvarYes) + pkg("USE_MSGFMT_PLURALS", lkNone, CheckvarYes) + pkg("USE_NCURSES", lkNone, CheckvarYes) + pkg("USE_OLD_DES_API", lkNone, CheckvarYesNo) + pkg("USE_PKGINSTALL", lkNone, CheckvarYes) + pkg("USE_PKGLOCALEDIR", lkNone, CheckvarYesNo) + usr("USE_PKGSRC_GCC", lkNone, CheckvarYes) + acl("USE_TOOLS", lkShell, CheckvarTool, "*:a") + pkg("USE_X11", lkNone, CheckvarYes) + sys("WARNING_MSG", lkNone, CheckvarShellCommand) + sys("WARNING_CAT", lkNone, CheckvarShellCommand) + acl("WRAPPER_REORDER_CMDS", lkShell, CheckvarWrapperReorder, "buildlink3.mk:a", "Makefile.common:a", "Makefile:a") + acl("WRAPPER_TRANSFORM_CMDS", lkShell, CheckvarWrapperTransform, "buildlink3.mk:a", "Makefile.common:a", "Makefile:a") + sys("WRKDIR", lkNone, CheckvarPathname) + pkg("WRKSRC", lkNone, CheckvarWrkdirSubdirectory) + sys("X11_PKGSRCDIR.*", lkNone, CheckvarPathname) + usr("XAW_TYPE", lkNone, enum("3d neXtaw standard xpm")) + acl("XMKMF_FLAGS", lkShell, CheckvarShellWord) } func enum(values string) *VarChecker { @@ -707,7 +707,7 @@ func acl(varname string, kindOfList KindOfList, checker *VarChecker, aclentries m := mustMatch(`^([A-Z_.][A-Z0-9_]*)(|\*|\.\*)$`, varname) varbase, varparam := m[1], m[2] - vtype := &Vartype{kindOfList, checker, parseAclEntries(aclentries), NOT_GUESSED} + vtype := &Vartype{kindOfList, checker, parseAclEntries(aclentries), guNotGuessed} if G.globalData.vartypes == nil { G.globalData.vartypes = make(map[string]*Vartype) diff --git a/pkgtools/pkglint/files/vars.go b/pkgtools/pkglint/files/vars.go index 0829e461247..089ab71b2fc 100644 --- a/pkgtools/pkglint/files/vars.go +++ b/pkgtools/pkglint/files/vars.go @@ -3,10 +3,10 @@ package main type NeedsQuoting int const ( - NQ_NO NeedsQuoting = iota - NQ_YES - NQ_DOESNT_MATTER - NQ_DONT_KNOW + nqNo NeedsQuoting = iota + nqYes + nqDoesntMatter + nqDontKnow ) func variableNeedsQuoting(line *Line, varname string, vuc *VarUseContext) NeedsQuoting { @@ -14,7 +14,7 @@ func variableNeedsQuoting(line *Line, varname string, vuc *VarUseContext) NeedsQ vartype := getVariableType(line, varname) if vartype == nil || vuc.vartype == nil { - return NQ_DONT_KNOW + return nqDontKnow } isPlainWord := vartype.checker.IsEnum() @@ -31,23 +31,23 @@ func variableNeedsQuoting(line *Line, varname string, vuc *VarUseContext) NeedsQ isPlainWord = true } if isPlainWord { - if vartype.kindOfList == LK_NONE { - return NQ_DOESNT_MATTER + if vartype.kindOfList == lkNone { + return nqDoesntMatter } - if vartype.kindOfList == LK_SHELL && vuc.extent != VUC_EXT_WORDPART { - return NQ_NO + if vartype.kindOfList == lkShell && vuc.extent != vucExtentWordpart { + return nqNo } } // In .for loops, the :Q operator is always misplaced, since // the items are broken up at white-space, not as shell words // like in all other parts of make(1). - if vuc.shellword == VUC_SHW_FOR { - return NQ_NO + if vuc.shellword == vucQuotFor { + return nqNo } // Determine whether the context expects a list of shell words or not. - wantList := vuc.vartype.isConsideredList() && (vuc.shellword == VUC_SHW_BACKT || vuc.extent != VUC_EXT_WORDPART) + wantList := vuc.vartype.isConsideredList() && (vuc.shellword == vucQuotBackt || vuc.extent != vucExtentWordpart) haveList := vartype.isConsideredList() _ = G.opts.DebugQuoting && line.debugf( @@ -55,9 +55,9 @@ func variableNeedsQuoting(line *Line, varname string, vuc *VarUseContext) NeedsQ varname, vuc, vartype, wantList, haveList) // A shell word may appear as part of a shell word, for example COMPILER_RPATH_FLAG. - if vuc.extent == VUC_EXT_WORDPART && vuc.shellword == VUC_SHW_PLAIN { - if vartype.kindOfList == LK_NONE && vartype.checker.name == "ShellWord" { - return NQ_NO + if vuc.extent == vucExtentWordpart && vuc.shellword == vucQuotPlain { + if vartype.kindOfList == lkNone && vartype.checker.name == "ShellWord" { + return nqNo } } @@ -66,12 +66,12 @@ func variableNeedsQuoting(line *Line, varname string, vuc *VarUseContext) NeedsQ if G.globalData.varnameToToolname[varname] != "" { shellword := vuc.shellword switch { - case shellword == VUC_SHW_PLAIN && vuc.extent != VUC_EXT_WORDPART: - return NQ_NO - case shellword == VUC_SHW_BACKT: - return NQ_NO - case shellword == VUC_SHW_DQUOT || shellword == VUC_SHW_SQUOT: - return NQ_DOESNT_MATTER + case shellword == vucQuotPlain && vuc.extent != vucExtentWordpart: + return nqNo + case shellword == vucQuotBackt: + return nqNo + case shellword == vucQuotDquot || shellword == vucQuotSquot: + return nqDoesntMatter } } @@ -79,21 +79,21 @@ func variableNeedsQuoting(line *Line, varname string, vuc *VarUseContext) NeedsQ // to be quoted. An exception is in the case of backticks, // because the whole backticks expression is parsed as a single // shell word by pkglint. - if vuc.extent == VUC_EXT_WORDPART && vuc.shellword != VUC_SHW_BACKT { - return NQ_YES + if vuc.extent == vucExtentWordpart && vuc.shellword != vucQuotBackt { + return nqYes } // Assigning lists to lists does not require any quoting, though // there may be cases like "CONFIGURE_ARGS+= -libs ${LDFLAGS:Q}" // where quoting is necessary. if wantList && haveList { - return NQ_DOESNT_MATTER + return nqDoesntMatter } if wantList != haveList { - return NQ_YES + return nqYes } _ = G.opts.DebugQuoting && line.debugf("Don't know whether :Q is needed for %q", varname) - return NQ_DONT_KNOW + return nqDontKnow } diff --git a/pkgtools/pkglint/files/vars_test.go b/pkgtools/pkglint/files/vars_test.go index c98bfbb9366..ca1277e3319 100644 --- a/pkgtools/pkglint/files/vars_test.go +++ b/pkgtools/pkglint/files/vars_test.go @@ -10,8 +10,8 @@ func (s *Suite) TestVariableNeedsQuoting(c *check.C) { pkgnameType := G.globalData.vartypes["PKGNAME"] // In Makefile: PKGNAME := ${UNKNOWN} - vuc := &VarUseContext{VUC_TIME_LOAD, pkgnameType, VUC_SHW_UNKNOWN, VUC_EXTENT_UNKNOWN} + vuc := &VarUseContext{vucTimeParse, pkgnameType, vucQuotUnknown, vucExtentUnknown} nq := variableNeedsQuoting(line, "UNKNOWN", vuc) - c.Check(nq, equals, NQ_DONT_KNOW) + c.Check(nq, equals, nqDontKnow) } diff --git a/pkgtools/pkglint/files/vartype.go b/pkgtools/pkglint/files/vartype.go index 1b22c897d8e..865268c944a 100644 --- a/pkgtools/pkglint/files/vartype.go +++ b/pkgtools/pkglint/files/vartype.go @@ -17,9 +17,9 @@ type Vartype struct { type KindOfList int const ( - LK_NONE KindOfList = iota // Plain data type - LK_SPACE // List entries are separated by whitespace; used in .for loops. - LK_SHELL // List entries are shell words; used in the :M, :S modifiers. + lkNone KindOfList = iota // Plain data type + lkSpace // List entries are separated by whitespace; used in .for loops. + lkShell // List entries are shell words; used in the :M, :S modifiers. ) type AclEntry struct { @@ -27,11 +27,13 @@ type AclEntry struct { permissions string // Some of: "a"ppend, "d"efault, "s"et; "p"reprocessing, "u"se } +// Whether the type definition is guessed (based on the variable name) +// or explicitly defined (see vardefs.go). type Guessed bool const ( - NOT_GUESSED Guessed = false - GUESSED Guessed = true + guNotGuessed Guessed = false + guGuessed Guessed = true ) // The allowed actions in this file, or "?" if unknown. @@ -81,9 +83,9 @@ func (vt *Vartype) union() string { // the implementation of checklineMkVartype easier. func (vt *Vartype) isConsideredList() bool { switch vt.kindOfList { - case LK_SHELL: + case lkShell: return true - case LK_SPACE: + case lkSpace: return false } switch vt.checker { @@ -94,18 +96,18 @@ func (vt *Vartype) isConsideredList() bool { } func (vt *Vartype) mayBeAppendedTo() bool { - return vt.kindOfList != LK_NONE || + return vt.kindOfList != lkNone || vt.checker == CheckvarAwkCommand || vt.checker == CheckvarSedCommands } func (vt *Vartype) String() string { switch vt.kindOfList { - case LK_NONE: + case lkNone: return vt.checker.name - case LK_SPACE: + case lkSpace: return "SpaceList of " + vt.checker.name - case LK_SHELL: + case lkShell: return "ShellList of " + vt.checker.name default: panic("Unknown list type") diff --git a/pkgtools/pkglint/files/vartypecheck.go b/pkgtools/pkglint/files/vartypecheck.go index 3d85d645161..dace8974ef4 100644 --- a/pkgtools/pkglint/files/vartypecheck.go +++ b/pkgtools/pkglint/files/vartypecheck.go @@ -361,7 +361,7 @@ func (cv *VartypeCheck) Option() { // The PATH environment variable func (cv *VartypeCheck) Pathlist() { - if !contains(cv.value, ":") && cv.guessed == GUESSED { + if !contains(cv.value, ":") && cv.guessed == guGuessed { checklineMkVartypePrimitive(cv.line, cv.varname, CheckvarPathname, cv.op, cv.value, cv.comment, cv.listContext, cv.guessed) return } diff --git a/pkgtools/pkglint/files/vartypecheck_test.go b/pkgtools/pkglint/files/vartypecheck_test.go index dee06908c27..e640ac84de7 100644 --- a/pkgtools/pkglint/files/vartypecheck_test.go +++ b/pkgtools/pkglint/files/vartypecheck_test.go @@ -264,5 +264,5 @@ func (s *Suite) TestVartypeCheck_Yes(c *check.C) { func newVartypeCheck(varname, op, value string) *VartypeCheck { line := NewLine("fname", "1", "dummy", nil) valueNovar := withoutMakeVariables(line, value, true) - return &VartypeCheck{line, varname, op, value, valueNovar, "", true, NOT_GUESSED} + return &VartypeCheck{line, varname, op, value, valueNovar, "", true, guNotGuessed} } diff --git a/pkgtools/pkglint/files/varusecontext.go b/pkgtools/pkglint/files/varusecontext.go index f45fd68db2a..cf0e4e61668 100644 --- a/pkgtools/pkglint/files/varusecontext.go +++ b/pkgtools/pkglint/files/varusecontext.go @@ -4,55 +4,62 @@ package main // or used. Whether that is allowed depends on: // // * The variable’s data type, as defined in vardefs.go. -// * Whether the variable is accessed at loading time (when the -// Makefiles are parsed) or at run time (when the shell commands are -// run). Especially at load time, there are several points of time -// (e.g. the bsd.pkg.mk file is loaded at the very end, therefore -// the variables that are defined there cannot be used at load time.) // * When used on the right-hand side of an assigment, the variable can // represent a list of words, a single word or even only part of a // word. This distinction decides upon the correct use of the :Q // operator. -// * When used in shell commands, the variable can appear inside single -// quotes, double quotes, backticks or some combination thereof. This -// also influences whether the variable is correctly used. // * When used in preprocessing statements like .if or .for, the other // operands of that statement should fit to the variable and are // checked against the variable type. For example, comparing OPSYS to // x86_64 doesn’t make sense. - type VarUseContext struct { time vucTime vartype *Vartype - shellword vucShellword + shellword vucQuoting extent vucExtent } type vucTime int const ( - VUC_TIME_UNKNOWN vucTime = iota - VUC_TIME_LOAD // During loading, not all variables are available yet. - VUC_TIME_RUN // All files have been read, especially bsd.pkg.mk. + vucTimeUnknown vucTime = iota + + // When Makefiles are loaded, the operators := and != are evaluated, + // as well as the conditionals .if, .elif and .for. + // During loading, not all variables are available yet. + // Variable values are still subject to change, especially lists. + vucTimeParse + + // All files have been read, all variables can be referenced. + // Variable values don’t change anymore. + vucTimeRun ) -type vucShellword int +// The quoting context in which the variable is used. +// Depending on this context, the modifiers :Q or :M can be allowed or not. +type vucQuoting int const ( - VUC_SHW_UNKNOWN vucShellword = iota - VUC_SHW_PLAIN // Example: echo LOCALBASE=${LOCALBASE} - VUC_SHW_DQUOT // Example: echo "The version is ${PKGVERSION}." - VUC_SHW_SQUOT // Example: echo 'The version is ${PKGVERSION}.' - VUC_SHW_BACKT // Example: echo \`sed 1q ${WRKSRC}/README\` - VUC_SHW_FOR // Example: for f in ${EXAMPLE_FILES} + vucQuotUnknown vucQuoting = iota + vucQuotPlain // Example: echo LOCALBASE=${LOCALBASE} + vucQuotDquot // Example: echo "The version is ${PKGVERSION}." + vucQuotSquot // Example: echo 'The version is ${PKGVERSION}.' + vucQuotBackt // Example: echo \`sed 1q ${WRKSRC}/README\` + + // The .for loop in Makefiles. This is the only place where + // variables are split on whitespace. Everywhere else (:Q, :M) + // they are split like in the shell. + // + // Example: .for f in ${EXAMPLE_FILES} + vucQuotFor ) type vucExtent int const ( - VUC_EXTENT_UNKNOWN vucExtent = iota - VUC_EXT_WORD // Example: echo ${LOCALBASE} - VUC_EXT_WORDPART // Example: echo LOCALBASE=${LOCALBASE} + vucExtentUnknown vucExtent = iota + vucExtentWord // Example: echo ${LOCALBASE} + vucExtentWordpart // Example: echo LOCALBASE=${LOCALBASE} ) func (vuc *VarUseContext) String() string { diff --git a/pkgtools/pkglint/files/varusecontext_test.go b/pkgtools/pkglint/files/varusecontext_test.go index 28697cd29a8..2c8d3f1c524 100644 --- a/pkgtools/pkglint/files/varusecontext_test.go +++ b/pkgtools/pkglint/files/varusecontext_test.go @@ -7,7 +7,7 @@ import ( func (s *Suite) TestVarUseContext_ToString(c *check.C) { G.globalData.InitVartypes() vartype := getVariableType(s.DummyLine(), "PKGNAME") - vuc := &VarUseContext{VUC_TIME_UNKNOWN, vartype, VUC_SHW_BACKT, VUC_EXT_WORD} + vuc := &VarUseContext{vucTimeUnknown, vartype, vucQuotBackt, vucExtentWord} c.Check(vuc.String(), equals, "(unknown PkgName backt word)") } |