summaryrefslogtreecommitdiff
path: root/pkgtools
diff options
context:
space:
mode:
authorrillig <rillig@pkgsrc.org>2021-05-25 21:48:46 +0000
committerrillig <rillig@pkgsrc.org>2021-05-25 21:48:46 +0000
commit2b57701cefe03cfc66968a94b47421351f7b51b1 (patch)
tree90ede6357ff75590394093d4dd37319a50b795ad /pkgtools
parent64b50335e0c534913f9587a6b735b92515ec72cc (diff)
downloadpkgsrc-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/Makefile5
-rw-r--r--pkgtools/pkglint/files/buildlink3.go27
-rw-r--r--pkgtools/pkglint/files/buildlink3_test.go36
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)