diff options
author | rillig <rillig@pkgsrc.org> | 2021-05-25 21:48:46 +0000 |
---|---|---|
committer | rillig <rillig@pkgsrc.org> | 2021-05-25 21:48:46 +0000 |
commit | 2b57701cefe03cfc66968a94b47421351f7b51b1 (patch) | |
tree | 90ede6357ff75590394093d4dd37319a50b795ad /pkgtools | |
parent | 64b50335e0c534913f9587a6b735b92515ec72cc (diff) | |
download | pkgsrc-2b57701cefe03cfc66968a94b47421351f7b51b1.tar.gz |
pkglint: update to 21.1.2
Changes since 21.1.1:
Fixed the check for BUILDLINK3_PKGSRCDIR. Previously, pkglint had
complained about ${_EMACS_PKGDIR} in buildlink3.mk.
Diffstat (limited to 'pkgtools')
-rw-r--r-- | pkgtools/pkglint/Makefile | 5 | ||||
-rw-r--r-- | pkgtools/pkglint/files/buildlink3.go | 27 | ||||
-rw-r--r-- | pkgtools/pkglint/files/buildlink3_test.go | 36 |
3 files changed, 58 insertions, 10 deletions
diff --git a/pkgtools/pkglint/Makefile b/pkgtools/pkglint/Makefile index 5670c9b1de4..5c757d14f16 100644 --- a/pkgtools/pkglint/Makefile +++ b/pkgtools/pkglint/Makefile @@ -1,7 +1,6 @@ -# $NetBSD: Makefile,v 1.685 2021/05/24 19:53:43 wiz Exp $ +# $NetBSD: Makefile,v 1.686 2021/05/25 21:48:46 rillig Exp $ -PKGNAME= pkglint-21.1.1 -PKGREVISION= 2 +PKGNAME= pkglint-21.1.2 CATEGORIES= pkgtools DISTNAME= tools MASTER_SITES= ${MASTER_SITE_GITHUB:=golang/} diff --git a/pkgtools/pkglint/files/buildlink3.go b/pkgtools/pkglint/files/buildlink3.go index 25f3586c1e9..eb3e3a7f5a6 100644 --- a/pkgtools/pkglint/files/buildlink3.go +++ b/pkgtools/pkglint/files/buildlink3.go @@ -282,14 +282,27 @@ func (ck *Buildlink3Checker) checkVarassign(mkline *MkLine, pkgbase string) { ck.pkgbase, value) } - if varname == "BUILDLINK_PKGSRCDIR."+pkgbase { - pkgdir := mkline.Filename().Dir() - expected := "../../" + G.Pkgsrc.Rel(pkgdir).String() - if value != expected { - mkline.Errorf("%s must be set to the package's own path (%s), not %s.", - varname, expected, value) - } + ck.checkVarassignPkgsrcdir(mkline, pkgbase, varname, value) +} + +func (ck *Buildlink3Checker) checkVarassignPkgsrcdir(mkline *MkLine, + pkgbase string, varname string, value string) { + + if varname != "BUILDLINK_PKGSRCDIR."+pkgbase { + return } + if containsVarUse(value) { + return + } + + pkgdir := mkline.Filename().Dir() + expected := "../../" + G.Pkgsrc.Rel(pkgdir).String() + if value == expected { + return + } + + mkline.Errorf("%s must be set to the package's own path (%s), not %s.", + varname, expected, value) } func (ck *Buildlink3Checker) checkVaruseInPkgbase(pkgbaseLine *MkLine) { diff --git a/pkgtools/pkglint/files/buildlink3_test.go b/pkgtools/pkglint/files/buildlink3_test.go index 38989b159a6..000e67bdda0 100644 --- a/pkgtools/pkglint/files/buildlink3_test.go +++ b/pkgtools/pkglint/files/buildlink3_test.go @@ -928,6 +928,42 @@ func (s *Suite) Test_Buildlink3Checker_checkVarassign__other_variables(c *check. "not \"other\" may be set in this file.") } +func (s *Suite) Test_Buildlink3Checker_checkVarassignPkgsrcdir(c *check.C) { + t := s.Init(c) + + t.SetUpPackage("category/package") + t.SetUpPackage("category/other-package") + t.CreateFileBuildlink3("category/package/buildlink3.mk", + "BUILDLINK_PKGSRCDIR.package?=\t../../category/other-package", + "BUILDLINK_API_DEPENDS.package+=\tpackage>=3") + t.FinishSetUp() + + G.Check(t.File("category/package")) + + t.CheckOutputLines( + "ERROR: ~/category/package/buildlink3.mk:12: " + + "BUILDLINK_PKGSRCDIR.package must be set " + + "to the package's own path (../../category/package), " + + "not ../../category/other-package.") +} + +// An indirect BUILDLINK_PKGSRCDIR is used in editors/emacs, among others. +func (s *Suite) Test_Buildlink3Checker_checkVarassignPkgsrcdir__var(c *check.C) { + t := s.Init(c) + + t.SetUpPackage("category/package") + t.SetUpPackage("category/other-package") + t.CreateFileBuildlink3("category/package/buildlink3.mk", + "PACKAGE_SRCDIR=\t\t\t../../category/package", + "BUILDLINK_PKGSRCDIR.package?=\t${PACKAGE_SRCDIR}", + "BUILDLINK_API_DEPENDS.package+=\tpackage>=3") + t.FinishSetUp() + + G.Check(t.File("category/package")) + + t.CheckOutputEmpty() +} + func (s *Suite) Test_Buildlink3Checker_checkVaruseInPkgbase__PKGBASE_with_variable_PHP_PKG_PREFIX(c *check.C) { t := s.Init(c) |