pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/pkgtools/pkglint
Module Name: pkgsrc
Committed By: rillig
Date: Sun Aug 2 13:27:17 UTC 2020
Modified Files:
pkgsrc/pkgtools/pkglint: Makefile
pkgsrc/pkgtools/pkglint/files: mklexer.go mklexer_test.go patches.go
patches_test.go
Log Message:
pkgtools/pkglint: update to 20.2.6
Changes since 20.2.5:
Some selected absolute paths, such as /etc/passwd, /etc/shadow and
/etc/hosts are allowed in patch files. Other files in /etc should still
use PKG_SYSCONFDIR, to keep the package portable between platforms and
also in unprivileged mode. (Fixes PR pkg/55524.)
Absolute pathnames are also allowed in C-style end-of-line comments
(fixes PR pkg/55516) and in continuations of C-style block comments
(fixes PR pkg/55524).
The explanation for make's :ts modifier has been adjusted to the 2020
bmake update. The modifier :ts\040 is now interpreted as octal, as
opposed to decimal.
To generate a diff of this commit:
cvs rdiff -u -r1.666 -r1.667 pkgsrc/pkgtools/pkglint/Makefile
cvs rdiff -u -r1.9 -r1.10 pkgsrc/pkgtools/pkglint/files/mklexer.go
cvs rdiff -u -r1.6 -r1.7 pkgsrc/pkgtools/pkglint/files/mklexer_test.go
cvs rdiff -u -r1.44 -r1.45 pkgsrc/pkgtools/pkglint/files/patches.go
cvs rdiff -u -r1.42 -r1.43 pkgsrc/pkgtools/pkglint/files/patches_test.go
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/pkgtools/pkglint/Makefile
diff -u pkgsrc/pkgtools/pkglint/Makefile:1.666 pkgsrc/pkgtools/pkglint/Makefile:1.667
--- pkgsrc/pkgtools/pkglint/Makefile:1.666 Fri Jul 31 22:39:36 2020
+++ pkgsrc/pkgtools/pkglint/Makefile Sun Aug 2 13:27:17 2020
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.666 2020/07/31 22:39:36 rillig Exp $
+# $NetBSD: Makefile,v 1.667 2020/08/02 13:27:17 rillig Exp $
-PKGNAME= pkglint-20.2.5
+PKGNAME= pkglint-20.2.6
CATEGORIES= pkgtools
DISTNAME= tools
MASTER_SITES= ${MASTER_SITE_GITHUB:=golang/}
Index: pkgsrc/pkgtools/pkglint/files/mklexer.go
diff -u pkgsrc/pkgtools/pkglint/files/mklexer.go:1.9 pkgsrc/pkgtools/pkglint/files/mklexer.go:1.10
--- pkgsrc/pkgtools/pkglint/files/mklexer.go:1.9 Wed Jul 1 13:17:41 2020
+++ pkgsrc/pkgtools/pkglint/files/mklexer.go Sun Aug 2 13:27:17 2020
@@ -367,7 +367,7 @@ func (p *MkLexer) varUseModifierTs(
mod string, closing byte, lexer *textproc.Lexer, varname string,
mark textproc.LexerMark) MkVarUseModifier {
- // See devel/bmake/files/var.c:/case 't'
+ // See devel/bmake/files/var.c:/^ApplyModifier_ToSep/
sep := mod[2:] + p.varUseText(closing)
switch {
case sep == "":
@@ -380,7 +380,7 @@ func (p *MkLexer) varUseModifierTs(
p.Warnf("Invalid separator %q for :ts modifier of %q.", sep, varname)
p.Explain(
"The separator for the :ts modifier must be either a single character",
- "or an escape sequence like \\t or \\n or an octal or decimal escape",
+ "or an escape sequence like \\t or \\n or an octal or hexadecimal escape",
"sequence; see the bmake man page for further details.")
}
return MkVarUseModifier(lexer.Since(mark))
Index: pkgsrc/pkgtools/pkglint/files/mklexer_test.go
diff -u pkgsrc/pkgtools/pkglint/files/mklexer_test.go:1.6 pkgsrc/pkgtools/pkglint/files/mklexer_test.go:1.7
--- pkgsrc/pkgtools/pkglint/files/mklexer_test.go:1.6 Wed Jul 1 13:17:41 2020
+++ pkgsrc/pkgtools/pkglint/files/mklexer_test.go Sun Aug 2 13:27:17 2020
@@ -641,8 +641,8 @@ func (s *Suite) Test_MkLexer_varUseModif
"WARN: filename.mk:123: Invalid separator \"abc\" for :ts modifier of \"VAR\".",
"",
"\tThe separator for the :ts modifier must be either a single character",
- "\tor an escape sequence like \\t or \\n or an octal or decimal escape",
- "\tsequence; see the bmake man page for further details.",
+ "\tor an escape sequence like \\t or \\n or an octal or hexadecimal",
+ "\tescape sequence; see the bmake man page for further details.",
"")
}
Index: pkgsrc/pkgtools/pkglint/files/patches.go
diff -u pkgsrc/pkgtools/pkglint/files/patches.go:1.44 pkgsrc/pkgtools/pkglint/files/patches.go:1.45
--- pkgsrc/pkgtools/pkglint/files/patches.go:1.44 Thu Jul 23 18:40:41 2020
+++ pkgsrc/pkgtools/pkglint/files/patches.go Sun Aug 2 13:27:17 2020
@@ -296,11 +296,21 @@ func (ck *PatchChecker) checkAddedAbsPat
return
}
- // Ignore paths inside C-style comments.
+ // Ignore paths inside C-style block comments.
if contains(before, "/*") && contains(after, "*/") {
return
}
+ // Ignore paths inside multiline C-style block comments.
+ if hasPrefix(trimHspace(before), "*") {
+ return
+ }
+
+ // Ignore paths inside C-style end-of-line comments.
+ if contains(before, "//") {
+ return
+ }
+
// Ignore composed C string literals such as PREFIX "/etc".
if matches(before, `\w+[ \t]*"$`) {
return
@@ -313,6 +323,11 @@ func (ck *PatchChecker) checkAddedAbsPat
return
}
+ // Allow well-known pathnames that belong to the base system.
+ if matches(after, `hosts|passwd|shadow`) {
+ return
+ }
+
switch dir {
case "/usr/pkg":
Index: pkgsrc/pkgtools/pkglint/files/patches_test.go
diff -u pkgsrc/pkgtools/pkglint/files/patches_test.go:1.42 pkgsrc/pkgtools/pkglint/files/patches_test.go:1.43
--- pkgsrc/pkgtools/pkglint/files/patches_test.go:1.42 Thu Jul 23 18:40:41 2020
+++ pkgsrc/pkgtools/pkglint/files/patches_test.go Sun Aug 2 13:27:17 2020
@@ -975,13 +975,15 @@ func (s *Suite) Test_PatchChecker_checkA
// The dot before the "/etc" makes it a relative pathname.
test(
- "cp ./etc/hostname /tmp")
+ "cp ./etc/hostname /tmp",
+ nil...)
// +> +# from /etc/inittab (SYSV systems)
// +ERROR: devel/tet3/patches/patch-ac:51: Patches must not hard-code the pkgsrc PKG_SYSCONFDIR.
test(
- "# SysV /etc/install, /usr/sbin/install")
+ "# SysV /etc/install, /usr/sbin/install",
+ nil...)
// C or C++ program, macro definition.
// This is an absolute path since the PID_FILE is the macro name,
@@ -995,8 +997,28 @@ func (s *Suite) Test_PatchChecker_checkA
"#define PID_FILE PREFIX \"/etc/conf\"",
nil...)
+ // In C-style block comments, absolute pathnames are ok,
+ // even though they could still be confusing.
+ test(
+ "#define L 150 /* Length of a line in /etc/some/file */",
+ nil...)
+
+ // In multiline C-style block comment, absolute pathnames are ok,
+ // even though they could still be confusing.
+ test(
+ " * Length of a line in /etc/some/file",
+ nil...)
+
+ // In C-style end-of-line comments, absolute pathnames are ok,
+ // // even though they could still be confusing.
+ test(
+ "#define L 150 // Length of a line in /etc/some/file",
+ nil...)
+
+ // Allow /etc/passwd, /etc/shadow, /etc/hosts and their variants.
+ // These belong to the base system, not to pkgsrc.
test(
- "#define L 150 /* Length of a line in /etc/passwd */",
+ "#define PATH_SHADOW \"/etc/master.passwd\"",
nil...)
test(
Home |
Main Index |
Thread Index |
Old Index