pkgtools/pkglint: update to 5.7.11

Changes since 5.7.10:

Fixed wrong warnings about autoconf being an unknown shell command when
an included file had defined USE_TOOLS+=autoconf213.
This commit is contained in:
rillig 2019-05-22 16:07:16 +00:00
parent d44a34ebb5
commit 0493e834c1
4 changed files with 50 additions and 15 deletions

View file

@ -1,6 +1,6 @@
# $NetBSD: Makefile,v 1.580 2019/05/21 17:59:48 rillig Exp $
# $NetBSD: Makefile,v 1.581 2019/05/22 16:07:16 rillig Exp $
PKGNAME= pkglint-5.7.10
PKGNAME= pkglint-5.7.11
CATEGORIES= pkgtools
DISTNAME= tools
MASTER_SITES= ${MASTER_SITE_GITHUB:=golang/}

View file

@ -293,8 +293,8 @@ func (pkg *Package) loadPackageMakefile() (MkLines, MkLines) {
// See mk/tools/cmake.mk
if pkg.vars.Defined("USE_CMAKE") {
mainLines.Tools.def("cmake", "", false, AtRunTime, nil)
mainLines.Tools.def("cpack", "", false, AtRunTime, nil)
allLines.Tools.def("cmake", "", false, AtRunTime, nil)
allLines.Tools.def("cpack", "", false, AtRunTime, nil)
}
allLines.collectUsedVariables()
@ -600,6 +600,8 @@ func (pkg *Package) checkfilePackageMakefile(filename string, mklines MkLines, a
}
pkg.checkUpdate()
allLines.collectDefinedVariables() // To get the tool definitions
mklines.Tools = allLines.Tools // TODO: also copy the other collected data
mklines.Check()
pkg.CheckVarorder(mklines)
SaveAutofixChanges(mklines.lines)

View file

@ -302,25 +302,40 @@ func (tr *Tools) parseUseTools(mkline MkLine, createIfAbsent bool, addToUseTools
return
}
deps := mkline.ValueFields(value)
// See mk/tools/autoconf.mk:/^\.if !defined/
if matches(value, `\bautoconf213\b`) {
deps = append(deps, "autoconf-2.13", "autoheader-2.13", "autoreconf-2.13", "autoscan-2.13", "autoupdate-2.13", "ifnames-2.13")
}
if matches(value, `\bautoconf\b`) {
deps = append(deps, "autoheader", "autom4te", "autoreconf", "autoscan", "autoupdate", "ifnames")
}
validity := tr.validity(mkline.Basename, addToUseTools)
for _, dep := range deps {
for _, dep := range mkline.ValueFields(value) {
name := strings.Split(dep, ":")[0]
if createIfAbsent || tr.ByName(name) != nil {
tr.def(name, "", false, validity, nil)
for _, implicitName := range tr.implicitTools(name) {
tr.def(implicitName, "", false, validity, nil)
}
}
}
}
func (tr *Tools) implicitTools(toolName string) []string {
// See mk/tools/autoconf.mk:/^\.if !defined/
if toolName == "autoconf213" {
return []string{
"autoconf-2.13", "autoheader-2.13", "autoreconf-2.13",
"autoscan-2.13", "autoupdate-2.13", "ifnames-2.13",
"autoconf",
"autoheader", "autom4te", "autoreconf",
"autoscan", "autoupdate", "ifnames"}
}
if toolName == "autoconf" {
return []string{
"autoheader", "autom4te", "autoreconf",
"autoscan", "autoupdate", "ifnames"}
}
return nil
}
func (tr *Tools) validity(basename string, useTools bool) Validity {
switch {
case IsPrefs(basename): // IsPrefs is not 100% accurate here but good enough

View file

@ -606,3 +606,21 @@ func (s *Suite) Test_Tools__gmake(c *check.C) {
t.CheckOutputEmpty()
}
func (s *Suite) Test_Tools__autoconf213(c *check.C) {
t := s.Init(c)
t.SetUpPackage("category/package",
"USE_TOOLS=\tautoconf213",
"",
"do-test:",
"\tautoconf")
t.CreateFileLines("mk/tools/defaults.mk",
"_TOOLS_DEPMETHOD.autoconf213=\tDEPENDS")
t.FinishSetUp()
G.Check(t.File("category/package"))
// No warning, since autoconf213 defines autoconf implicitly.
t.CheckOutputEmpty()
}