The NetBSD Project

CVS log for pkgsrc/pkgtools/pkglint/files/Attic/pkgsrc.go

[BACK] Up to [cvs.NetBSD.org] / pkgsrc / pkgtools / pkglint / files

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.72, Sat Apr 22 14:32:48 2023 UTC (11 months, 1 week ago) by rillig
Branch: MAIN
CVS Tags: HEAD
Changes since 1.71: +0 -0 lines
FILE REMOVED

pkgtools/pkglint: update to 23.1.7

Changes since 23.1.0:

No functional changes.

Instead of having two copies of the code, install the package by
downloading the releases from GitHub.

Reduce the build-time dependencies by delivering pre-generated parser
code.

Revision 1.71 / (download) - annotate - [select for diffs], Wed Mar 29 07:12:36 2023 UTC (12 months ago) by rillig
Branch: MAIN
Changes since 1.70: +20 -8 lines
Diff to previous 1.70 (colored) to selected 1.6 (colored)

Update pkgtools/pkglint to 23.1.0

Changes since 22.4.1:

In makefiles outside pkgsrc, don't require the first line to contain the
CVS Id.

When simplifying conditions, correctly handle the edge case that a
single-word value may evaluate numerically to zero.

In dependency lines, parse '#' signs correctly.

In error messages about malformed patch files, use the correct plural
form.

Revision 1.70 / (download) - annotate - [select for diffs], Thu Mar 2 08:58:29 2023 UTC (12 months, 4 weeks ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2023Q1-base, pkgsrc-2023Q1
Changes since 1.69: +5 -2 lines
Diff to previous 1.69 (colored) to selected 1.6 (colored)

pkgtools/pkglint: Update to 22.4.1

Changes since 22.4.0:

Allow pkglint to be run outside the pkgsrc top directory, in order to
allow individual makefiles to be formatted and checked as well. The many
pkgsrc-specific checks don't apply in this case. This mode is
experimental, there are still crashes to be expected.

Fix a crash for syntactically invalid conditions in '.if'.

Fix parsing of dependency lines that contain an escaped '#', which is
used for switching to another shell using a '.SHELL: ...' line.

Revision 1.69 / (download) - annotate - [select for diffs], Sun Jan 29 13:36:31 2023 UTC (13 months, 4 weeks ago) by rillig
Branch: MAIN
Changes since 1.68: +13 -396 lines
Diff to previous 1.68 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 22.4.0

Changes since 22.3.2:

Numeric comparisons of _PYTHON_VERSION generate an error since that
variable can have the value 'none', which is not numeric.  Furthermore,
the variable is from the internal namespace and thus should not be used
by packages at all.

Warnings about COMPILER_RPATH_FLAG no longer suggest different and
conflicting replacements.

Cleanup: Handling of doc/CHANGES was moved to changes.go, and since
go1.19.4, comments are formatted differently.

Revision 1.68 / (download) - annotate - [select for diffs], Sat Nov 19 10:51:07 2022 UTC (16 months, 1 week ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2022Q4-base, pkgsrc-2022Q4
Changes since 1.67: +38 -33 lines
Diff to previous 1.67 (colored) to selected 1.6 (colored)

pkgtools/pkglint: Update to 22.3.1

Changes since 22.3.0:

In doc/CHANGES files, check for typos in month and day of the dates.

In conditions for YesNo variables, suggest to replace the modifier
':M[yY][eE][sS]' with a simpler comparison.

https://mail-index.netbsd.org/tech-pkg/2022/11/16/msg026992.html

Revision 1.67 / (download) - annotate - [select for diffs], Sun Oct 2 14:39:37 2022 UTC (17 months, 3 weeks ago) by rillig
Branch: MAIN
Changes since 1.66: +2 -2 lines
Diff to previous 1.66 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 22.3.0

Changes since 22.2.7:

Pkglint no longer wrongly warns about package options from optional or
required option groups. Fixes PR 57038.

Revision 1.66 / (download) - annotate - [select for diffs], Sat Jan 1 12:44:25 2022 UTC (2 years, 2 months ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2022Q3-base, pkgsrc-2022Q3, pkgsrc-2022Q2-base, pkgsrc-2022Q2, pkgsrc-2022Q1-base, pkgsrc-2022Q1
Changes since 1.65: +4 -4 lines
Diff to previous 1.65 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 21.4.1

Changes since 21.4.0:

Running 'pkglint doc/CHANGES-2021' now warns about issues for this
single file.  Previously, it was necessary to specify '-Cglobal' as
well, but then pkglint also warned about issues in all other CHANGES
files.

Pkglint no longer warns about the characters '!' and '@' in
GO_MODULES_FILES, since these are legitimate.  Fixes PR pkg/56595.

Small cleanups in the pkglint testing infrastructure.

Revision 1.65 / (download) - annotate - [select for diffs], Sat Nov 13 21:20:59 2021 UTC (2 years, 4 months ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2021Q4-base, pkgsrc-2021Q4
Changes since 1.64: +1 -0 lines
Diff to previous 1.64 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 21.3.3

Changes since 21.3.2:

Explain warning about invalid symlink.

Do not warn when a package uses MAKE_JOBS without adding it to
BUILD_DEFS, since MAKE_JOBS is supposed to be a build-time only
variable.

Revision 1.64 / (download) - annotate - [select for diffs], Sat Aug 14 15:11:30 2021 UTC (2 years, 7 months ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2021Q3-base, pkgsrc-2021Q3
Changes since 1.63: +20 -18 lines
Diff to previous 1.63 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 21.2.6

Changes since 21.2.5:

Do not warn when a variable SITES.* refers to a GitHub URL directly
instead of using MASTER_SITE_GITHUB.  The variable expression for
supporting multiple master sites would become quite complicated for
human readers, especially with a leading '-' and a long trailing path.

Revision 1.63 / (download) - annotate - [select for diffs], Sat Aug 14 08:19:49 2021 UTC (2 years, 7 months ago) by rillig
Branch: MAIN
Changes since 1.62: +1 -1 lines
Diff to previous 1.62 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 21.2.4

Changes since 21.2.3:

Fixed loading of the tool definitions.  This adds 76 warnings for
packages that use tools without adding them to USE_TOOLS.  It also fixes
the warning about gmake and Meson.

Revision 1.62 / (download) - annotate - [select for diffs], Sun Aug 8 22:04:15 2021 UTC (2 years, 7 months ago) by rillig
Branch: MAIN
Changes since 1.61: +13 -0 lines
Diff to previous 1.61 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 21.2.2

Changes since 21.2.1:

Check the variable names of OPSYS-specific variables for typos, such as
'Dragonfly' with a lowercase 'f'.  Suggested by David A. Holland in
PR pkg/56352.

Warn if variables like CFLAGS are assigned using the operator '='.
Suggested by David A. Holland in PR pkg/56352.

Revision 1.61 / (download) - annotate - [select for diffs], Fri Jun 25 14:15:01 2021 UTC (2 years, 9 months ago) by rillig
Branch: MAIN
Changes since 1.60: +1 -1 lines
Diff to previous 1.60 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 21.2.1

Changes since 21.2.0:

Files whose names ends in '~' are ignored by pkglint since they are
ignored by CVS as well.

Variables with name BUILDLINK_TRANSFORM.* may contain '-Wl,-rpath,'
directly in commands of the form 'rm:*', just like their counterpart
BUILDLINK_TRANSFORM without a package name in the variable name.

Several new tests.

Revision 1.60 / (download) - annotate - [select for diffs], Sun Jun 6 07:41:34 2021 UTC (2 years, 9 months ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2021Q2-base, pkgsrc-2021Q2
Changes since 1.59: +5 -5 lines
Diff to previous 1.59 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 21.1.3

Changes since 21.1.2:

The entries in doc/CHANGES are checked more strictly, they must always
consist of 4 words (for removed packages) or 6 words (for all other
changes).

Packages that include curses.buildlink3.mk may use all buildlink3
variables with the identifier "curses".  The previous pkglint warnings
had been wrong.

Python packages that directly contain .egg-info in their PLIST files
should include egg.mk instead.  Pkglint can now fix these packages
automatically.

Revision 1.59 / (download) - annotate - [select for diffs], Sat Mar 20 23:32:43 2021 UTC (3 years ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2021Q1-base, pkgsrc-2021Q1
Changes since 1.58: +36 -4 lines
Diff to previous 1.58 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 20.4.1

Changes since 20.4.0:

When a package has MAINTAINER set and there are modified local files,
only remind the user once per package that changes should likely be
approved by the maintainer.  Previously there was a reminder once per
file, which was just too much for a package that has Makefile and PLIST
and maybe some patches changed.

Small performance improvement for loading the doc/CHANGES files, since
that costs a few tenths of seconds at every startup.

Revision 1.58 / (download) - annotate - [select for diffs], Tue Oct 6 18:40:50 2020 UTC (3 years, 5 months ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2020Q4-base, pkgsrc-2020Q4
Changes since 1.57: +5 -3 lines
Diff to previous 1.57 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 20.3.1

Changes since 20.3.0:

URLs from cpan.metacpan.org should not be used as HOMEPAGE for Perl
packages since they don't provide an overview over the package, instead
the just list the distribution files.

Lines in doc/CHANGES may contain the pattern "Removed <pkgpath> version
<version>".  Before, only "Removed <pkgpath>" (without additional
information) or "Removed <pkgpath> successor <pkgpath>" were allowed.
Mentioning the last seen version number sounds useful.  It is not
cross-checked right now; that check may be added later.

Revision 1.57 / (download) - annotate - [select for diffs], Sun Jun 7 15:49:23 2020 UTC (3 years, 9 months ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2020Q3-base, pkgsrc-2020Q3, pkgsrc-2020Q2-base, pkgsrc-2020Q2
Changes since 1.56: +2 -1 lines
Diff to previous 1.56 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 20.1.15

Changes since 20.1.14:

Fix confusing wording of diagnostic "should contain text".  It's more
precise to say "this line should consist of this text".  Otherwise it's
too easy to interpret it as "the text should occur somewhere in the
line".

Allow BUILDLINK_PREFIX.* to be used in helper files.  Especially for
programming language packages, files like plugin.mk often include
buildlink3.mk and therefore may refer to the BUILDLINK_PREFIX of this
package.

Warn about redundant BUILDLINK_API_VERSION restrictions.  Previously, the
check had only been enabled if the operators from the default dependency
pattern (buildlink3.mk) and the additional dependency pattern (package)
used the same operators, which already covered most practical cases.

Determine SuSE versions from the pkgsrc tree.

Revision 1.56 / (download) - annotate - [select for diffs], Mon Jun 1 20:49:54 2020 UTC (3 years, 9 months ago) by rillig
Branch: MAIN
Changes since 1.55: +2 -2 lines
Diff to previous 1.55 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 20.1.12

Changes since 20.1.11:

The file bsd.pkg.mk must only ever be included by package Makefiles
directly, not by other Makefile fragments.  Seen in www/w3m.

The variable BUILDLINK_PREFIX.* should only be used for packages that
have actually been included by the package.  This catches the use of
BUILDLINK_PREFIX.libiconv, which should have been iconv instead.

Allow comments before line 3 in buildlink3.mk files. This is necessary
for mariadb55-client since its buildlink identifier is mysql-client,
which is so non-obvious that it needs to be documented.

Revision 1.55 / (download) - annotate - [select for diffs], Sun May 24 19:12:29 2020 UTC (3 years, 10 months ago) by rillig
Branch: MAIN
Changes since 1.54: +6 -0 lines
Diff to previous 1.54 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 20.1.10

Changes since 20.1.8:

Recognize SUBST_NOOP_OK and SUBST_SHOW_DIFF.

Allow plain -Wl,-R and -Wl,-rpath in BUILDLINK_TRANSFORM, when they are
used to remove compiler options.

Recognize ggrep and other platform tools as valid tool names.  Seen in
lang/rust.

Revision 1.54 / (download) - annotate - [select for diffs], Fri May 8 19:50:04 2020 UTC (3 years, 10 months ago) by rillig
Branch: MAIN
Changes since 1.53: +79 -23 lines
Diff to previous 1.53 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 20.1.4

Changes since 20.1.3:

For patches that patch a single file, the filename of the patch should
correspond to the patched file. There are a few different naming schemes
in action, therefore the check is relatively loose. Patches that are
called patch-[a-z][a-z] continue to be allowed for historic reasons.
Patches that are called patch-CVE-* are also allowed.

The entries in doc/CHANGES-* are checked for consistency. For example,
it doesn't make sense to add a package twice or "update" a package from
version 1.0 to version 1.0. All version numbers in these entries must
be valid pkgsrc versions, i.e. start with a digit and only use
characters from -.0-9A-Z_a-z.

Revision 1.53 / (download) - annotate - [select for diffs], Wed Mar 18 08:42:48 2020 UTC (4 years ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2020Q1-base, pkgsrc-2020Q1
Changes since 1.52: +7 -5 lines
Diff to previous 1.52 (colored) to selected 1.6 (colored)

pkgtools/pkglint: increase performance

Revision 1.52 / (download) - annotate - [select for diffs], Wed Mar 18 08:24:49 2020 UTC (4 years ago) by rillig
Branch: MAIN
Changes since 1.51: +5 -7 lines
Diff to previous 1.51 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 19.4.12

Changes since 19.4.11:

Redundant additions to BUILDLINK_API_DEPENDS and BUILDLINK_ABI_DEPENDS
get warnings since they may have been needed in the past but the
dependent package has increased its required version numbers over time.

Revision 1.51 / (download) - annotate - [select for diffs], Sat Mar 7 23:35:35 2020 UTC (4 years ago) by rillig
Branch: MAIN
Changes since 1.50: +83 -5 lines
Diff to previous 1.50 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 19.4.10

Changes since 19.4.9:

In continuation lines with long values, pkglint no longer suggests to
move the continuation backslash in the middle of the variable value, as
that would be impossible.

Warn when a shell command is assigned to a variable that only takes
pathnames. Shell commands can contain command line options, and these
are not pathnames.

The TOOLS_PLATFORM.tool variables are not defined on every platform.
When these variables are used outside an OPSYS check, a warning lists
the platforms where the tool is undefined or only defined conditionally.

Revision 1.50 / (download) - annotate - [select for diffs], Sat Feb 15 13:48:40 2020 UTC (4 years, 1 month ago) by rillig
Branch: MAIN
Changes since 1.49: +19 -9 lines
Diff to previous 1.49 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 19.4.8

Changes since 19.4.7:

The diagnostic for homepages using FTP is simpler now.

When running pkglint recursively on the top-level directory, the
inter-package checks (distfile hashes, unused licenses) are enabled
implicitly. This way, the only effect of the -Cglobal option is now
whether the pkgsrc infrastructure files are checked as well.

The check for removed packages that have not been recorded in
doc/CHANGES prints the correct lines when pkglint is run with the
--source option.

Fatal technical errors are no longer treated as diagnostics since they
are none. That was an early conceptual mistake, but since these fatal
error didn't happen often, it didn't matter.

In diagnostics, when referring to other lines, the previously used words
before/after have been replaced with above/below to avoid any confusion
whether space or time is meant.

In CONF_FILES, spaces and quotes are allowed.
See https://gnats.netbsd.org/42191.

Fixed unintended side-effects when running pkglint --autofix --only.
Before, all fixes were applied to the file, whether or not they matched
the --only option.

Fixed resolution of relative paths of the form ../../category/package
when they appeared in an infrastructure file.

Lots of refactorings and housekeeping, as usual.

Revision 1.49 / (download) - annotate - [select for diffs], Sat Jan 4 19:53:14 2020 UTC (4 years, 2 months ago) by rillig
Branch: MAIN
Changes since 1.48: +29 -22 lines
Diff to previous 1.48 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 19.4.1

Changes since 19.4.0:

The notes for inserting an empty line have been changed from "insert
after this line" to "insert before this line" to make the line numbers
in the diagnostics contiguous. There had been several places where the
diagnostics went from line 1 to line 2 and then back to line 1, which
was confusing.

The lines in ALTERNATIVES files are checked for trailing whitespace.
This is only for consistency with the other checks. In the whole pkgsrc
tree all ALTERNATIVES files are already fine.

The diagnostics for comments in .endif/.endfor lines that don't
correspond to their .if/.elif/.for counterparts now includes the exact
line number of the corresponding condition, to make the warning easier
to fix.

The diagnostics for wrong variable value alignment now mention the
current column in addition to the desired column, to make it easier to
see by how much and in which direction the indentation should be fixed.

Variables that are used in conditions before they are actually defined
need the :U modifier.

Revision 1.48 / (download) - annotate - [select for diffs], Fri Dec 13 01:39:23 2019 UTC (4 years, 3 months ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2019Q4-base, pkgsrc-2019Q4
Changes since 1.47: +0 -4 lines
Diff to previous 1.47 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 19.3.17

Changes since 19.3.16:

Pkglint now handles SUBST blocks correctly, even those in which some of
the variables are defined conditionally. It correctly reports those that
are missing in at least one of the possible branches.

PKG_JVM is no longer marked as deprecated. It was once package-settable.
Since 2002 it is system-provided, and the package-settable counterpart
is PKG_JVM_DEFAULT. This does not fit into pkglint's simple model of
deprecating variables since the variable name is still valid, it should
just not be defined by packages anymore.

The alignment of variable assignments has been fixed in some edge cases.
In continuation lines where the backslash is beyond column 72, the
whitespace before the continuation backslash is fixed to a single space.

Revision 1.47 / (download) - annotate - [select for diffs], Sun Dec 8 22:03:38 2019 UTC (4 years, 3 months ago) by rillig
Branch: MAIN
Changes since 1.46: +11 -12 lines
Diff to previous 1.46 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update pkglint to 19.3.15

Changes since 19.3.14:

Invalid lines in PLIST files are now reported as errors instead of
warnings. If pkglint doesn't know about it, it must be an error.

In PLIST files, all paths are validated to be canonical. That is, no
dotdot components, no absolute paths, no extra slashes, no intermediate
dot components.

Fewer notes for unexpanded variable expressions in DESCR files. Before,
the text $@ was reported as possible Makefile variable even though it
was just a Perl expression.

README files are allowed again in pkgsrc package directories. There was
no convincing argument why these should be forbidden.

A few diagnostics have been changed from NOTE to WARNING or from WARNING
to ERROR, to match their wording.

When pkglint suggests to replace :M with ==, the wording is now "can be
made" instead of "should".

Revision 1.46 / (download) - annotate - [select for diffs], Sun Dec 8 00:06:38 2019 UTC (4 years, 3 months ago) by rillig
Branch: MAIN
Changes since 1.45: +26 -23 lines
Diff to previous 1.45 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 19.3.14

Changes since 19.3.13:

When pkglint suggests to replace !empty(VARNAME:Mfixed) with ${VARNAME}
== fixed, the exact suggested expression is now part of the diagnostic.
The check and the autofix have been improved. They now apply only to the
last modifier in the whole chain, everything else was a bug in pkglint.

Pkglint now knows the scope of variables better than before. It knows
the difference between variables from <sys.mk> like MACHINE_ARCH, which
are always in scope, and those from mk/defaults/mk.conf, which only come
into scope later, after bsd.prefs.mk has been included. It warns when
variables are used too early, for example in .if conditions.

The pathnames in ALTERNATIVES files are now checked for absolute
pathnames. This mistake doesn't happen in practice, but the code for
converting the different path types internally made it necessary to add
these checks. At least this prevents typos.

The special check for obsolete licenses has been removed since their
license files have been removed and that is checked as well.

Variables named *_AWK may be appended to.

The variables _PKG_SILENT and _PKG_DEBUG are no longer deprecated, they
are obsolete now. They are not used in main pkgsrc and pkgsrc-wip
anymore.

When a package sets a default value for a user-settable variable (which
is something that should not happen anyway), it should .include
bsd.prefs.mk before, in order to not accidentally overwrite the
user-specified value.

Variable modifiers of the form :from=to are now parsed like in bmake.
They are greedy and eat up any following colons as well. This means that
${VAR:.c=.o:Q} replaces source.c with source.o:Q, instead of quoting it.
Pkglint now warns about such cases.

The handling of relative paths in diagnostics is now consistent. All
paths that are part of a diagnostic are relative to the line that issues
the diagnostic.

Fatal errors are no longer suppressed in --autofix mode.

Plus lots of refactoring, to prevent accidental mixing of incompatible
relative paths.

Revision 1.45 / (download) - annotate - [select for diffs], Mon Dec 2 23:32:09 2019 UTC (4 years, 3 months ago) by rillig
Branch: MAIN
Changes since 1.44: +38 -46 lines
Diff to previous 1.44 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 19.3.13

Changes since 19.3.12:

The command line option -Wspace has been removed. Warnings and notes
about whitespace are now generated by default and cannot be switched
off. This is to ensure a consistent visual appearance of the package
Makefiles.

Shell programs that are indented unnecessarily deep generate a note by
default now. Before, the option -Wall was necessary to get these notes.

The check for unintended comments in multi-line shell programs is now
enabled again. It had been disabled some time ago as byproduct of a bug
fix in the shell parser.

The check for unique buildlink3 package identifiers now also works if
pkglint is run from a package directory instead of the pkgsrc root
directory.

Revision 1.44 / (download) - annotate - [select for diffs], Sat Nov 30 20:35:11 2019 UTC (4 years, 3 months ago) by rillig
Branch: MAIN
Changes since 1.43: +5 -5 lines
Diff to previous 1.43 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 19.3.12

Changes since 19.3.11:

The command line option -Wstyle has been removed since it didn't have
any effect.

License names may contain underscores. This fixes 3 parse errors and 2
wrong notes about seemingly unused licenses.

The parser for Makefile variables has been improved for some edge cases.
The :M and :N modifiers behave surprisingly when they contain unbalanced
parentheses or braces. Pkglint now parses them in the same way as bmake,
but doesn't warn since these cases are not actually used in pkgsrc.

Revision 1.43 / (download) - annotate - [select for diffs], Wed Nov 27 22:10:07 2019 UTC (4 years, 4 months ago) by rillig
Branch: MAIN
Changes since 1.42: +93 -4 lines
Diff to previous 1.42 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 19.3.11

Changes since 19.3.10:

The check for buildlink3.mk files that are included conditionally in one
place and unconditionally in another place have been refined. Now they
also work in cases that do not involve any variables, such as when the
condition is a mere exists(filename).

References to variables that use parentheses instead of the usual braces
produce a warning now, even if pkglint cannot fix them automatically.
This affects only a few instances where more than one such variable
reference appeared in a single line.

The --log-verbose command line option has been removed since it does not
have any practical use other than improving the performance during
pkglint development itself. Because of that it hadn't even been
mentioned in the manual page.

Warnings for missing license files now report the path to the license
file relative to the line where the warning occurs, like everywhere
else.

Revision 1.42 / (download) - annotate - [select for diffs], Sat Nov 23 23:35:56 2019 UTC (4 years, 4 months ago) by rillig
Branch: MAIN
Changes since 1.41: +65 -64 lines
Diff to previous 1.41 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 19.3.10

Changes since 19.3.9:

In diagnostics for suggested package updates, the exact line of doc/TODO
is mentioned. If a suggested update has an additional comment, the
brackets around that comment are not output anymore.

The check for defined but not used variables has been improved for the
edge case of defining a variable in the package Makefile and using it
in the buildlink3.mk file of the same package, which just doesn't work.

Makefile fragments in patches/ directories are now completely ignored.
It was a hypothetical case anyway.

Comparing PKGSRC_COMPILER using the == or != operators is now considered
an error instead of a warning. The common cases can be autofixed.

Revision 1.41 / (download) - annotate - [select for diffs], Tue Nov 19 06:51:38 2019 UTC (4 years, 4 months ago) by rillig
Branch: MAIN
Changes since 1.40: +1 -1 lines
Diff to previous 1.40 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 19.3.9

Changes since 19.3.8:

Match man pages in ALTERNATIVES with their counterparts in PLIST. In
PLIST files, ${PKGMANDIR} may be abbreviated as a simple "man", but not
in ALTERNATIVES.

Revision 1.40 / (download) - annotate - [select for diffs], Sun Nov 17 02:55:56 2019 UTC (4 years, 4 months ago) by rillig
Branch: MAIN
Changes since 1.39: +27 -13 lines
Diff to previous 1.39 (colored) to selected 1.6 (colored)

pkgtools/pkglint: be strict about invalid doc/CHANGES entries

Revision 1.39 / (download) - annotate - [select for diffs], Sun Nov 17 02:06:01 2019 UTC (4 years, 4 months ago) by rillig
Branch: MAIN
Changes since 1.38: +1 -1 lines
Diff to previous 1.38 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 19.3.8

Changes since 19.3.7:

Made check for doc/CHANGES file stricter. The check now catches entries
for added packages that are missing the word "version".

Revision 1.38 / (download) - annotate - [select for diffs], Sun Nov 17 01:26:25 2019 UTC (4 years, 4 months ago) by rillig
Branch: MAIN
Changes since 1.37: +507 -505 lines
Diff to previous 1.37 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 19.3.7

Changes since 19.3.6:

Improved variable value alignment.

Fixed wrong warning about comment lines that were interpreted as shell
commands before.

Warn when the first category of a package doesn't correspond to the
path in the filesystem. This affects 603 packages.

No longer warn about deprecated BUILDLINK_TRANSFORM.${OPSYS}. The
deprecation warning was meant for BUILDLINK_TRANSFORM.${pkgbase}, but
since pkglint cannot distinguish between these, the warnings were wrong.

Revision 1.37 / (download) - annotate - [select for diffs], Fri Oct 11 23:30:02 2019 UTC (4 years, 5 months ago) by rillig
Branch: MAIN
Changes since 1.36: +2 -2 lines
Diff to previous 1.36 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 19.3.1

Changes since 19.3.0:

* In buildlink3.mk files, the package identifier doesn't have to match
  the PKGBASE from the package Makefile exactly. The PKGBASE may have a
  leading "lib" (for libiconv and libgettext), as well as a trailing
  number (for emacs20 and netatalk22).

* GITHUB_RELEASE is added to the variables that should appear in a fixed
  order in the package Makefile.

* In the MASTER_SITE URLs, the transport protocol is irrelevant for
  matching direct URLs to the predefined MASTER_SITE_* variables.

Revision 1.36 / (download) - annotate - [select for diffs], Tue Oct 1 21:37:59 2019 UTC (4 years, 5 months ago) by rillig
Branch: MAIN
Changes since 1.35: +7 -7 lines
Diff to previous 1.35 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 19.3.0

Changes since 5.7.24:

* There is no need to ask the dummy MAINTAINER from url2pkg whether
  committing changes is ok.

* When autofixing a condition like !empty(PKGPATH:Mliteral), don't
  generate unnecessary parentheses around ${PKGPATH} == literal.

* In a _VARGROUPS section, the public variables should be listed
  before the private variables, to put important things first.

* When pkglint suggests to be run again with the -e, -fs or -F options,
  repeat the whole command line, to allow for copy-and-paste.

* The checks for PKGPATH are fixed and enhanced. It is not a relative
  path like in ../../category/package, but relative to the pkgsrc root.

* Unintended file globbing in sed commands such as s,.*,any, gets a
  warning.

* MASTER_SITES should normally end with a slash, in rare cases an
  equals sign or a colon are correct, too.

* Detect redundant directories in INSTALLATION_DIRS.

Revision 1.35 / (download) - annotate - [select for diffs], Sun Sep 8 22:47:47 2019 UTC (4 years, 6 months ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2019Q3-base, pkgsrc-2019Q3
Changes since 1.34: +9 -0 lines
Diff to previous 1.34 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.7.23

Changes since 5.7.22:

* Added a warning for lines that look empty but are actually follow-up
  lines from a previous line.

* Added notes for unusual placement of the continuation backslash. It
  should always be preceded by a single space or tab, or be in column
  73.

* Improved check for needlessly complicated !empty(PKGPATH:Mcat/pkg)
  that is transformed into the simpler ${PKGPATH} == cat/pkg, even if
  the package name contains hyphens, dots, plus or slashes.

* Added check for the _VARGROUPS section since that section contains
  many redundancies that can easily be checked. For example, in
  mk/compiler/gcc.mk the _VARGROUPS section is 67 lines long and
  contains far more than 100 variables. It's tedious to manually check
  this file for internal consistency. That's better left to pkglint.

* The empty variable is no longer flagged as "used but not defined".
  It appears in expressions like ${:Ustring}.

* When --source is combined with --explain, don't unnecessarily
  repeat the source code for a single line if there are several
  diagnostics. Instead, even omit the empty line between the diagnostics
  for the same line.

Revision 1.34 / (download) - annotate - [select for diffs], Fri Aug 16 21:00:17 2019 UTC (4 years, 7 months ago) by rillig
Branch: MAIN
Changes since 1.33: +5 -8 lines
Diff to previous 1.33 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.7.20

Changes since 5.7.19:

* Fixed warning about unknown C++ standard versions, which had appeared
  after the code in mk/compiler.mk changed.

Revision 1.33 / (download) - annotate - [select for diffs], Tue Jul 30 18:31:43 2019 UTC (4 years, 8 months ago) by rillig
Branch: MAIN
Changes since 1.32: +1 -1 lines
Diff to previous 1.32 (colored) to selected 1.6 (colored)

pkgtools/pkglint: fix test for doc/CHANGES removals

Revision 1.32 / (download) - annotate - [select for diffs], Tue Jul 30 18:16:13 2019 UTC (4 years, 8 months ago) by rillig
Branch: MAIN
Changes since 1.31: +1 -1 lines
Diff to previous 1.31 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.7.17

Changes since 5.7.16:

* The warnings for doc/CHANGES are only enabled when the -Cglobal option
  is given. This is to avoid warnings that are unrelated to the package
  that is being checked.

Revision 1.31 / (download) - annotate - [select for diffs], Sun Jul 14 21:25:47 2019 UTC (4 years, 8 months ago) by rillig
Branch: MAIN
Changes since 1.30: +11 -10 lines
Diff to previous 1.30 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.7.16

Changes since 5.7.15:

* Completely rewrote the code for aligning multiple variable assignment
  lines. It works on the actual lines of the file now instead of the
  parsed lines. This provides more exact diagnostics and also makes the
  handling of these lines easier so that future requirements can be
  implemented more easily.

* Added support for exotic conditions in .if clauses. These conditions
  are not seen in the wild though.

* Fixed wrong diagnostics for ALTERNATIVES files that appear
  conditionally in the PLIST.

* As always: lots of refactorings and newly added tests.

Revision 1.30 / (download) - annotate - [select for diffs], Mon Jul 1 22:25:52 2019 UTC (4 years, 8 months ago) by rillig
Branch: MAIN
Changes since 1.29: +44 -5 lines
Diff to previous 1.29 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.7.15

Changes since 5.7.14:

* Added a check for packages that have been removed from the file system
  but not been recorded in doc/CHANGES. This will help produce more
  accurate release statistics.

* Small refactorings, as usual.

Revision 1.29 / (download) - annotate - [select for diffs], Sun Jun 30 20:56:19 2019 UTC (4 years, 8 months ago) by rillig
Branch: MAIN
Changes since 1.28: +159 -107 lines
Diff to previous 1.28 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.7.14

Changes since 5.7.13:

- Removed the -Cextra command line option since it didn't produce useful
  warnings.

- Removed unwarranted warnings about _WRAP_EXTRA_ARGS.CC being used in
  packages.

- Cleaned up the canonical order of variables in package Makefiles.

- Added a few commands to those that cannot fail, to reduce the number of
  "at the left of the | operator" in shell programs.

- Fixed warnings about "-ggdb" being an unknown shell command.

- Reduced number of warnings about lists being used where a single value
  is expected.

- Replaced unreliable check for invalid CFLAGS and LDFLAGS with a more
  practical check.

- Renamed "RCS tag" to "CVS tag" to make the diagnostics more modern.

- Added warning when PKGNAME or PKGVERSION is used in MASTER_SITES.

- Reworded warning for missing or superfluous PLIST files.

- Lots of other detail changes, refactorings and automatic tests.

Revision 1.28 / (download) - annotate - [select for diffs], Mon Jun 10 19:51:57 2019 UTC (4 years, 9 months ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2019Q2-base, pkgsrc-2019Q2
Changes since 1.27: +3 -3 lines
Diff to previous 1.27 (colored) to selected 1.6 (colored)

pkgtools/pkglint: updated to 5.7.13

Changes since 5.7.12:

* Fixed a warning in the variable permissions that previously said "this
  variable should not be used at load time in this file, it would be ok
  in .", with an empty list of alternative files.

* Lots of refactoring and new tests.

Revision 1.27 / (download) - annotate - [select for diffs], Sun May 26 14:05:57 2019 UTC (4 years, 10 months ago) by rillig
Branch: MAIN
Changes since 1.26: +43 -34 lines
Diff to previous 1.26 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.7.12

Changes since 5.7.11:

* Fixed an alignment bug when pkglint replaced SUBST_SED with
  SUBST_VARS.

* Added many test cases.

Revision 1.26 / (download) - annotate - [select for diffs], Mon May 6 20:27:17 2019 UTC (4 years, 10 months ago) by rillig
Branch: MAIN
Changes since 1.25: +7 -3 lines
Diff to previous 1.25 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.7.9

Changes since 5.7.8:

* Buildlink3.mk files are checked for typos in the identifier that is
  used for BUILDLINK_TREE, to detect copy-and-paste mistakes.

* Having a rationale is recommended for some variables, especially those
  that make a package fail to build or crash at runtime. This check is
  only active when -Wextra is given, since it is still actively debated
  whether such a check is actually useful.

* Files called Makefile.php can easily be mistaken to be PHP files.
  Therefore the recommended naming convention is to have auxiliary files
  called *.mk. There are already many more files called *.mk than those
  being called Makefile.*.

* The check for unquoted sed substitution commands has been made more
  detailed, but since it is completely disabled, there's nothing to see
  for now.

* The definitions for MASTER_SITE_* are loaded directly from the pkgsrc
  infrastructure instead of hard-coding them in pkglint.

Revision 1.25 / (download) - annotate - [select for diffs], Sat Apr 27 19:33:57 2019 UTC (4 years, 11 months ago) by rillig
Branch: MAIN
Changes since 1.24: +16 -7 lines
Diff to previous 1.24 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.7.7

Changes since 5.7.6:

Warn about packages that override user-settable variables. Packages that
define variables with the same value as the default value only get a
note instead of the warning since these definitions do not cause any
confusion.

Do not suppress technical error messages in autofix mode.

Do not warn about the package version being greater than the latest from
doc/CHANGES if the file defining the package version has been modified
locally and is about to be committed.

Revision 1.24 / (download) - annotate - [select for diffs], Tue Apr 23 21:20:49 2019 UTC (4 years, 11 months ago) by rillig
Branch: MAIN
Changes since 1.23: +3 -3 lines
Diff to previous 1.23 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.7.6

Changes since 5.7.5:

* The explanation for distfile hashes is only given when the distfiles
  actually need to be downloaded. If they are already there, no
  explanation is necessary.

* Makefile lines that are commented and have line continuations are
  properly parsed. This affects the autofix for variable value
  realignment.

* Variable permissions are not checked in hacks.mk since pkgsrc
  developers who know about hacks.mk probably know what they are doing.
  From hacks.mk files, builtin.mk files may be included directly, for
  the same reason.

* Expressions of the form !empty(PKGPATH:Mpattern), when PKGPATH is not
  a list variable and pattern has no wildcards, can be written in a
  simpler form, and pkglint autofixes this. For example the above
  expression is transformed into ${PKGPATH} == pattern. This
  transformation reduces the amount of double negations (!empty) in the
  code.

* Duplicate warnings about invalid relative ../package have been merged.

* TOOLS_ALIASES are properly resolved. The line USE_TOOLS=ggrep makes
  the tools grep, egrep and fgrep known to pkglint, in the same way as
  in the pkgsrc infrastructure.

* The diagnostics for missing or unnecessary distinfo files have been
  improved to provide some guidance.

* Packages that use MESSAGE_SRC to build the message from multiple files
  no longer produce a warning for malformed message files. These files
  are simply skipped.

Revision 1.23 / (download) - annotate - [select for diffs], Sat Apr 20 17:43:24 2019 UTC (4 years, 11 months ago) by rillig
Branch: MAIN
Changes since 1.22: +18 -18 lines
Diff to previous 1.22 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.7.5

Changes since 5.7.4:

* Warn about invalid variable uses in directives like
  .if and .for

* Do not warn when a package-settable variable is assigned using the ?=
  operator before including bsd.prefs.mk. This warning only makes sense
  for user-settable and system-provided variables.

* The parser for variable uses like ${VAR:@v@${v:Q}} is more robust now,
  which reduces the number of parse errors and leads to more appropriate
  diagnostics, in cases like ${URL:Mftp://*}, which should really be
  ${URL:Mftp\://*}.

* The valid values for OPSYS are now determined by the files in
  mk/platform instead of allowing arbitrary identifiers. This catches a
  few instances where "Solaris" is used instead of the correct "SunOS".

* Setting USE_LANGUAGES only has an effect if mk/compiler.mk has not yet
  been included. In all other cases, pkglint warns now.

* Missing entries in doc/CHANGES produce a note now. This will lead to
  more accurate statistics for the release notes.

Revision 1.22 / (download) - annotate - [select for diffs], Wed Apr 3 21:49:51 2019 UTC (4 years, 11 months ago) by rillig
Branch: MAIN
Changes since 1.21: +6 -11 lines
Diff to previous 1.21 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.7.4

Changes since 5.7.3:

* Warn about dependency patterns that are missing a version number,
  such as ${PYPKGPREFIX}-sqlite3:../../databases/py-sqlite3.

* Suggest to replace the := assignment operator with the :sh modifier,
  in some cases where the variable is not obviously used at load time.

Revision 1.21 / (download) - annotate - [select for diffs], Sun Mar 24 13:58:38 2019 UTC (5 years ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2019Q1-base, pkgsrc-2019Q1
Changes since 1.20: +32 -30 lines
Diff to previous 1.20 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.7.3

Changes since 5.7.2:

PLIST files are checked for non-ASCII characters. Even though pkgsrc
sets up the environment with LC_ALL=C, there are still some cases
of encoding errors. The case discussed on the tech-pkg mailing list
was lang/go112.

The checks for variable permissions ("may not be set in this file")
have been reworked completely. Many of the variable permissions had
different rules for Makefile and Makefile.common. These different
rules tried to prevent accidental overwriting of variables. Starting
in July 2018, pkglint got a check for redundant variables that is
far more accurate than the previous variable permissions. Therefore
these fine-grained permissions are no longer necessary. This removes
a few hundred wrong warnings about insufficient permissions.

The check that adds missing SHA512 hashes to distinfo files has been
fixed to work correctly in DIST_SUBDIR cases.

Improved the checks regarding tools that are used by a package but
not added to USE_TOOLS. For example, the "make" tool is always
available, as are all tools that are added to TOOLS_CREATE.

Lots of small improvements, as always.

Revision 1.20 / (download) - annotate - [select for diffs], Sun Mar 10 19:01:50 2019 UTC (5 years ago) by rillig
Branch: MAIN
Changes since 1.19: +9 -0 lines
Diff to previous 1.19 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.7.2

Changes since 5.7.1:

* Fixed detection of GNU_CONFIGURE=yes combined with USE_LANGUAGES
  missing c. This combination tends to fail in the configure phase.

* When the distinfo doesn't contain all hashes for the downloaded
  distfiles (typically SHA512 is missing) and the distfiles are actually
  downloaded to ${PKGSRCDIR}/distfiles, pkglint can now add the missing
  hashes. It only does this if there is at least one existing hash
  and if all existing hashes are correct.

* The check for redundant variables has been improved considerably.
  Before there were several situations in which pkglint didn't get the
  redundant variable definitions right because its internal model only
  mimicked reality. The model has been improved and so have the
  diagnostics.

* Pkglint only warns about wrong permissions (for defining or using
  a variable) when it knows the type of the variable and the permissions
  for the current file. Before, it had also warned if the permissions
  for the current file were not explicitly defined.

* CFLAGS and LDFLAGS may be appended in buildlink3.mk files. This
  had been disallowed before, for no apparent reason. There are several
  places in pkgsrc where especially CFLAGS.${OPSYS} is appended to.

* Cleaned up internal handling of relative paths. Previously pkglint
  sometimes resolved relative paths using the wrong base directory,
  which led to all kinds of wrong warnings and strange behavior.

* Fixed lots of edge cases when parsing Makefile lines. These cases
  don't occur often but experience tells that the most fundamental code
  must be as correct as possible (see the handling of relative paths
  above).

* Lots of refactoring and housekeeping, as always.

Revision 1.19 / (download) - annotate - [select for diffs], Thu Feb 21 22:49:03 2019 UTC (5 years, 1 month ago) by rillig
Branch: MAIN
Changes since 1.18: +12 -16 lines
Diff to previous 1.18 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.7.0

Changes since 5.6.12:

* Many of the -C and -W command line options have been removed since
  they are not used in practice. The -Wall and -Call options continue
  to work though; these are the only options mentioned in the pkgsrc
  guide.

* When a PLIST file contains redundant libtool libraries (.la and the
  corresponding .so), there is only a single warning per file.

* Warnings about the package COMMENT are now strictly ordered from left
  to right.

* The hashes for all distfiles must now contain the SHA512 hash. This
  hash has been added to many distfiles in 2015. It's time now to
  enforce it on all other distfiles as well.

* Makefile fragments that are included inside an .elif exists(...)
  are not reported as missing.

* The check for redundant variables and accidentally overwritten
  variables has been improved. Now the warning occurs at the later
  definition. This especially applies to cases where a file is included
  and after that, some of its variables are overridden. Variables in
  unrelated files are no longer marked as redundant.

* When a package contains multiple definitions of a single variable
  (typical for Makefile.common), the later definition overrides the
  earlier definition. That way, the location of DISTINFO_FILE and
  PATCHDIR is resolved correctly.

Revision 1.18 / (download) - annotate - [select for diffs], Sat Jan 26 16:31:33 2019 UTC (5 years, 2 months ago) by rillig
Branch: MAIN
Changes since 1.17: +103 -39 lines
Diff to previous 1.17 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.6.12

Changes since 5.6.11:

* In buildlink3.mk files, print the paths relative
  to the line, not to the pkgsrc root.

* When explaining that a variable cannot be set/used because of wrong
  permissions, list the permissions. This provides more transparency
  than just stating that the desired action is not allowed.

* When pkglint checks a pkgsrc-wip package, don't warn about malformed
  lines in doc/CHANGES-* since pkgsrc-wip users typically cannot do
  anything about these errors.

* In profiling mode, not only the code coverage and the performance
  statistics are dumped, the whole heap is also dumped to see which
  parts of pkglint consume the most heap memory. Pkglint now needs
  less heap memory than before, which mainly affects full scans.

* The checks for absolute pathnames have gone. They were of questionable
  value since pkglint has failed to give proper advice on how to fix
  them properly, at least for the last 12 years.

* The check that pkgsrc-wip packages should only use exact CVS Ids
  (the unexpanded variant) has been disabled again. It occurred about
  16000 times but even fixing it wouldn't improve anything since it
  was mostly a formatting issue without any practical consequences.

* Warn about trailing variable modifiers like in ${VAR:S,from,to,extra}.

* Properly parse ${VAR:!command!}.

* Suggest to replace SUBST_SED with SUBST_VARS where possible, even
  with complicated shell quoting. Pkglint can autofix most of these
  overly verbose cases.

* Load builtin.mk whenever the corresponding buildlink3.mk file is
  included. This fixes several warnings about undefined variables
  (especially for packages using OpenSSL).

* Parse .for lines like bmake does since 2015, splitting words like
  in brk_string.

* Optionally show a warning even if it cannot be autofixed by pkglint.
  This is useful for the SUBST_VARS replacement since even when
  pkglint cannot automatically replace the code, there are still cases
  where it can warn at least.

* As always, several refactorings.

Revision 1.17 / (download) - annotate - [select for diffs], Sun Jan 13 19:55:53 2019 UTC (5 years, 2 months ago) by rillig
Branch: MAIN
Changes since 1.16: +45 -31 lines
Diff to previous 1.16 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.6.11

Changes since 5.6.10:

* Improved the wording of several warnings

* Fixed parsing of complicated dependency patterns such as
  {ssh{,6}-[0-9]*,openssh-[0-9]*}. Pkglint still doesn't understand
  them but at least it doesn't mark them as "unknown" anymore.

* Lots of refactoring, as usual. This is the last part of the big
  refactoring, therefore future changes to pkglint are expected to be
  smaller than in the previous 3 months.

Revision 1.16 / (download) - annotate - [select for diffs], Fri Dec 21 08:05:24 2018 UTC (5 years, 3 months ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2018Q4-base, pkgsrc-2018Q4
Changes since 1.15: +1 -1 lines
Diff to previous 1.15 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.6.10

Changes since 5.6.9:

* ALTERNATIVES files are correctly checked now. Before, pkglint had
  suggested to remove the @PREFIX/ from the alternative, which was
  wrong and simply didn't work.

* Diagnostics about variable assignments are ordered to report the
  left-hand side first and then everything to the right of the
  assignment operator.

* The pkglint output is escaped properly to avoid sending unwanted
  escape sequences to the terminal.

* The items in .for loops are parsed taking "double" and 'single'
  quotes into account since bmake does it in the same way since 2015.

* In DESCR files, overly long lines are only warned about if they
  contain a space and therefore can be made shorter.

* In DESCR files, text like ${PREFIX} only gets a note if it refers
  to a commonly known pkgsrc variable. This avoids distraction when
  a package mentions ${prefix}/bin or ${template.property}.

* Lots of refactorings and small changes.

Revision 1.15 / (download) - annotate - [select for diffs], Mon Dec 17 00:15:39 2018 UTC (5 years, 3 months ago) by rillig
Branch: MAIN
Changes since 1.14: +4 -3 lines
Diff to previous 1.14 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.6.9

Changes since 5.6.8:

* In addition to the pkglint binary, the whole pkglint code is installed as
  a library, so that other packages can use the code for doing their own
  checks on pkgsrc packages, Makefiles, shell programs, or the other file
  types from pkgsrc.

* BUILDLINK_*.* may be used in all files.

* Lots of refactorings

Revision 1.14 / (download) - annotate - [select for diffs], Sun Dec 2 23:12:43 2018 UTC (5 years, 3 months ago) by rillig
Branch: MAIN
Changes since 1.13: +2 -2 lines
Diff to previous 1.13 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.6.8

Changes since 5.6.7:

In pkgsrc-wip, if the first line of a file contains an expanded CVS Id,
it is not an error but only a note that it should be an unexpanded CVS
Id. The autofix for this no longer inserts a new line but replaces the
existing line.

Several refactorings and small improvements to the existing diagnostics.

Revision 1.13 / (download) - annotate - [select for diffs], Sun Dec 2 01:57:48 2018 UTC (5 years, 3 months ago) by rillig
Branch: MAIN
Changes since 1.12: +64 -39 lines
Diff to previous 1.12 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.6.7

Changes since 5.6.6:

User-defined variables that are not yet added to BUILD_DEFS are only
reported once per file.

Unnecessary space after variable names is only worth a note instead of
a warning. Example:

        MASTER_SITES =  https://cdn.example.org/

All variable names that are defined in the pkgsrc infrastructure are
assumed to be available to the package Makefiles. This reduces the
number of wrong "used but not defined" warnings, at the expense of

Variable names that are used in other variable names are checked
whether they are defined somewhere. Example:

        CFLAGS+=        ${CFLAGS.${PARAM}}      # PARAM is now checked

In SUBST_SED, when the pattern is s,@VAR@,${VAR}, or a slight variant
thereof, pkglint suggests to define SUBST_VARS instead, which frees the
package author from thinking about how to escape special characters and
is generally easier to read. Example:

        SUBST_SED.class=        s,@VAR@,${VAR:Q},

        SUBST_VARS.class=       VAR

Directives like .if !defined(...) are now handled the same whether or
not there is a space after before the (...).

The check for locally modified files now works independently of the
timezone.

As always, lots of refactorings have happened under the hood. Many small
bugs have been discovered and fixed accordingly.

Revision 1.12 / (download) - annotate - [select for diffs], Wed Nov 7 20:58:23 2018 UTC (5 years, 4 months ago) by rillig
Branch: MAIN
Changes since 1.11: +131 -66 lines
Diff to previous 1.11 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.6.6

Changes since 5.6.5:

- Removed plist-clash since it had crashed unconditionally whenever it
  was called. This means that in the last 3 years, nobody can have
  used it in the originally intended way.

- Fixed interactions between the --source, --explain, --show-autofix,
  --autofix and --only options.

- Fixed "defined but not used" and "used but not defined" for variables
  from the pkgsrc infrastructure.

- Lots of small fixes and improvements found by the large pkglint code
  review (12% done).

Revision 1.11 / (download) - annotate - [select for diffs], Tue Oct 9 19:12:13 2018 UTC (5 years, 5 months ago) by rillig
Branch: MAIN
Changes since 1.10: +95 -30 lines
Diff to previous 1.10 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.6.4

Changes since 5.6.3:

* Allow += for COMMENT

* Sync variable type definitions with reality

* Fix check for "used but not defined" variables. This check had been
  broken since pkgtools/pkglint/files/pkglint.pl r1.776 from 2008-10-18
  (3cd071958e63), which missed its 10-year anniversary by just 9 days.

  After fixing this check, pkglint produces about 800 new warnings
  spread all over pkgsrc, most of which are real typos.

* Detect used variables also in .if and .elif conditions. This is
  closely related to the above fix and reduces the number of "defined
  but not used" variables, while at the same time producing new warnings
  because these variables are used at load time, where some of these
  variables are not yet defined.

* Detect variables for which pkglint doesn't know the exact data type
  by scanning all files under mk/ at startup. Currently there are about
  470 of these variables. No "used but not defined" warnings are issued
  for these variables anymore.

* To speed up pkglint when checking the whole pkgsrc tree at once, the
  most often needed files are cached to reduce IO load. The checks for
  USE_TOOLS are optimized now since they were a major bottleneck.
  Together with other performance improvements this makes pkglint about
  50% faster when checking the whole pkgsrc tree including pkgsrc-wip.

Revision 1.10 / (download) - annotate - [select for diffs], Wed Oct 3 22:27:53 2018 UTC (5 years, 5 months ago) by rillig
Branch: MAIN
Changes since 1.9: +49 -18 lines
Diff to previous 1.9 (colored) to selected 1.6 (colored)

pkgtools/pkglint: Update to 5.6.3

Changes since 5.6.2:

* Add check for version patterns 1.5*, which should rather be 1.5.*

* Re-enable check for "set -e" and commands that may silently fail
  because of missing error checking

* Lots of internal clean-up and tests

Revision 1.9 / (download) - annotate - [select for diffs], Wed Sep 5 17:56:22 2018 UTC (5 years, 6 months ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2018Q3-base, pkgsrc-2018Q3
Changes since 1.8: +172 -66 lines
Diff to previous 1.8 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.6.2

Changes since 5.6.1:

* Improved checks that depend on whether bsd.prefs.mk is included or
  not.

* Improved checks for tools, whether they may be used at load time
  or at run time.

* Improved tokenizer for shell commands. $| is not a variable but a
  dollar followed by a pipe.

* Warnings about SUBST context are now shown by default.

* A warning is shown when a SUBST block is declared for *-configure
  but the package has defined USE_CONFIGURE=no.

* Don't warn about USE_TOOLS:= ${USE_TOOLS:Ntool}.

* Don't warn about using the ?= operator in buildlink3.mk files before
  including bsd.prefs.mk (for some more variables, but not all).

* Report an error for packages from main pkgsrc that have a TODO or
  README file. Packages should be simple enough that they don't need
  a README file and ready for production so that they don't need a TODO.

* Lots of small bug fixes and new tests.

Revision 1.8 / (download) - annotate - [select for diffs], Thu Aug 16 20:41:42 2018 UTC (5 years, 7 months ago) by rillig
Branch: MAIN
Changes since 1.7: +47 -51 lines
Diff to previous 1.7 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.6.1

Changes since 5.6.0:

* Fix output of relative paths in the diagnostics (thanks @wiz)
* Fix parsing of ${VAR:ts---}; it is now a syntax error
* Load more type definitions from mk/* instead of hard-coding them
* Lots of refactoring to improve test coverage, fixing several
  small bugs as they were found

Revision 1.7 / (download) - annotate - [select for diffs], Sun Aug 12 16:31:56 2018 UTC (5 years, 7 months ago) by rillig
Branch: MAIN
Changes since 1.6: +1 -1 lines
Diff to previous 1.6 (colored)

pkgtools/pkglint: update to 5.6.0

Changes since 5.5.16:

* Check for negated shell commands (if ! test -z "foo"); they are not
  supported by Solaris.

* Don't check variable permissions for infrastructure files. A warning
  like "may not be set by any package" doesn't make sense for them.

* Check that PLIST_VARS matches PLIST.*, which is especially useful in
  options.mk files.

* Improve checks for options.mk files (for PKG_OPTIONS_SET).

* Prefer options handling with !empty() over checking empty() first.

* Prefer ${MACHINE_ARCH} == i386 over !empty(MACHINE_ARCH:Mi386), for
  single-valued variables.

Revision 1.6 / (download) - annotate - [selected], Thu Aug 9 20:08:12 2018 UTC (5 years, 7 months ago) by rillig
Branch: MAIN
Changes since 1.5: +24 -0 lines
Diff to previous 1.5 (colored)

pkgtools/pkglint: Update to 5.5.16

Changes since 5.5.15:

* Add checks for options.mk files

* Treat redundant variable definitions as notes, not as warnings

* Check doc/CHANGES-* for typos in the dates (only for 2018 and later)

* Lots of cleanup in the test code

Revision 1.5 / (download) - annotate - [select for diffs], Sat Jul 28 18:31:23 2018 UTC (5 years, 8 months ago) by rillig
Branch: MAIN
Changes since 1.4: +1 -1 lines
Diff to previous 1.4 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.5.15

Changes since 5.5.14:

* Check that the comments in .endif and .endfor lines match the
  corresponding conditions.

* Check for redundant variables (e.g. MASTER_SITES for R packages).

* Check for accidentally overwritten variables.

* Miscellaneous code cleanup and refactoring.

Revision 1.4 / (download) - annotate - [select for diffs], Sat May 19 12:58:25 2018 UTC (5 years, 10 months ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2018Q2-base, pkgsrc-2018Q2
Changes since 1.3: +6 -1 lines
Diff to previous 1.3 (colored) to selected 1.6 (colored)

pkgtools/pkglint: update to 5.5.12

Changes since 5.5.11:
* Improve support for TEST_DEPENDS and USE_TOOLS+= *:test (thanks @leot)
* Add checks for ALTERNATIVES files

Revision 1.3 / (download) - annotate - [select for diffs], Tue May 1 23:30:11 2018 UTC (5 years, 10 months ago) by rillig
Branch: MAIN
Changes since 1.2: +21 -23 lines
Diff to previous 1.2 (colored) to selected 1.6 (colored)

Update pkglint to 5.5.10.

Changes since 5.5.9:

* Fix wrong pkglint behavior for .include lines that are guarded by
  corresponding .if exists(...)
* A little bit of refactoring, as always.

Revision 1.2 / (download) - annotate - [select for diffs], Sat Apr 28 23:32:52 2018 UTC (5 years, 11 months ago) by rillig
Branch: MAIN
Changes since 1.1: +13 -15 lines
Diff to previous 1.1 (colored) to selected 1.6 (colored)

Update pkglint to 5.5.9

Changes since 5.5.8:
* Improved support for the "strip" tool, which has a special definition
  and is not directly connected to the STRIP variable.
* Miscellaneous code cleanup and new tests.

Revision 1.1 / (download) - annotate - [select for diffs], Sat Mar 24 14:32:49 2018 UTC (6 years ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2018Q1-base, pkgsrc-2018Q1
Diff to selected 1.6 (colored)

Update pkglint to 5.5.7

Changes since 5.5.6:

* When pkglint warns about files that are accidentally executable, it
  offers to fix the file permissions.

* Warn about ${HOMEPAGE:=repository/}, since the := modifier should
  only be used with MASTER_SITES.

* When the distinfo file is missing, suggest setting NO_CHECKSUM.

* Several refactorings.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>