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
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.
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
It is not currently largefile aware, leading to issues described in
PR#53489. This will be resolved upstream but it will take a while for
everyone to catch up.
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.
Changes since 5.5.13:
* Suppress duplicate warnings for unknown options in the same file
* Grab acceptable package versions directly from the infrastructure files
* Note about too deeply indented shell programs
Changes since 5.5.12:
* Allow underscore in package version.
* Warn about SUBST in post-patch and pre-patch phases.
* Allow multiple SUBST blocks per paragraph.
* Code cleanup.
Performing substitutions during post-patch breaks tools such as mkpatches,
making it very difficult to regenerate correct patches after making changes,
and often leading to substituted string replacements being committed.
## Version 0.11.4 (2018-07-03)
* Fix dependency matching to correctly consider DEPENDS rather than simply
attempting to pull in the highest version. Resolves issues with installing
packages depending on samba and their conflicts against tdb and talloc.
## Version 0.11.2 (2018-06-20)
* Fix a couple of issues with PKGPATH handling in import and upgrade.
* Fix an occasional memory corruption issue with commands that call
pkg_info for output.
## Version 0.11.1 (2018-06-14)
* Permit the user to install an older package version.
* Ensure warning and error counters are reset for each phase.
* Print total download size when using -d.
## Version 0.11.0 (2018-06-08)
* Fix build on NetBSD/evbarm.
* Skip download checks for packages that are being removed, prevents
erroneous "empty FILE_SIZE" failures.
* Perform in-place upgrades using `pkg_add -DU` rather than removing
and reinstalling. Should be faster and less error-prone.
* Output formatting improvements. Installs are now split between
refresh, upgrade, and install, with package lists formatted to be
easier to read.
## Version 0.10.1 (2018-06-01)
* Fix BUILD_DATE refresh support for preserved packages.
* Improve provides/requires output to avoid confusion for new users.
## Version 0.10.0 (2018-05-17)
* Add BUILD_DATE support, packages are now upgraded if the BUILD_DATE
has changed, to ensure rebuilt dependencies are correctly handled.
* Download handling fixes.
* Count packages correctly.
* Ensure the remote database is updated before performing upgrades.
* Internal code cleanups, refactoring, WARNS fixes, etc.
* Support nanosecond resolution on pkgdb mtime.
* Sync progressmeter and pkg_install with upstreams.
* Improve SQL logging.
* Fix -d when used with an upgrade action.
* Fix exit status for various commands and usage.
* Avoid segfault in show-category.
* Improve pkgin database initialisation and upgrade checks.
* Support libarchive 2.x and Minix 3.3.0
* Support PKG_INSTALL_DIR and PKGIN_DBDIR, primarily to support the
new pkgin test suite: https://github.com/joyent/pkgin-test-suite
In some cases, if an installed package's source directory did not
exist, pkg_rr could invoke "make clean" at top-level of pkgsrc. Bug
report and fix by Andreas Gustafsson in PR pkg/53157.
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.
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.
If PKG_DBDIR is /foo and a path like /foobar is given, it is not below
PKG_DBDIR, so don't translate it into a package name look up. The old
logic for giving a path to PKG_DBDIR remains for legacy compat.
OS is essentially the same as FreeBSD from our configuration point of view, with
the exception of the name of utiliy for nullfs mounts.
Tested on DragonFly 5.3-DEVELOPMENT.
Fix an issue in pkg_create where we may have been using corrupted owner and
group information. Noticed on macOS where libarchive would complain about
the owner entry being too long. Reviewed by joerg.
Also includes some manual page improvements committed recently.
The definitions from globaldata.go had been moved to pkgsrc.go. Having
these definitions twice led to compile errors.
While here, the file package_test.go doesn't need to be patched anymore
since it gets its @VERSION@ from the constants defined in pkglint.go.
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.
may exist in. i rebuilt the contents from the other xorg*proto
files here, which should make them functionally equivalent.
fixes builds of eg, devel/imake and devel/pango with native x11.
bump version to 1.09.
but is likely sufficient:
- add xorgproto support to x11-links, bump version
- add a builtin.mk for xorgproto. check for the list of packages
that xorgproto covers, eliding the few that native xsrc never
installed, and making sure xproto is last. use the
BUILTIN_VERSION_SCRIPT method to convert Version: 7.0.31 into
the necessary 2018.1.
the missing packages are a problem, but since we've never had a
report about it, it's not a big problem.
the things newer xorgproto has that are wanted may be a problem,
but probably only for X11_TYPE!=native builds that don't really
need these.
longer term native xsrc will get xorgproto (and maybe even for
netbsd-8), though i'm not sure it will help any unless we make
our native xsrc install a fake xorgproto.pc that pkgsrc can
find an use -- currently xorgproto installs .pc files for all
the replaced packages, but not one for itself, so the hack of
finding xproto version and switching may still be needed.
ok @wiz.
Changes since 5.5.5:
* Only offer explanations if an explainable diagnostic has actually
been logged.
* Clean up code.
* Improve a few diagnostics.
* In any Makefile, treat documented variables as used. This prevents
warning about defined but unused variables.
* Add support for some variables not previously known to pkglint.
Changes since 5.5.3:
- Removed check for PERL5_PACKLIST, since it was not fixable by the
package author.
- Completely rewrote the check for ordering variables in simple
package Makefiles. Now it reports the variables in the correct order
instead of just saying "this above that" for a few variables.
- Lots of code cleanup and documentation.
Changes since 5.5.2:
* Fixed lots of bugs regarding autofixing variable assignments in
continuation lines.
* Fixed checking of MESSAGE files, which also get fixed now.
* In variable assignments, commented assignments are aligned too.
* Fixed a crash when checking an empty patch file.
* The :Q modifier is only checked on predefined variables, to prevent
the --autofix mode from removing :Q from user-defined variables.
* Fixed lots of bugs in PLIST autofixing: relevant lines had been
removed, and the sorting was not correct.
Changes since 5.5.1:
* Fixed command line parsing for the --only option.
* Improved alignment of variable values in Makefiles.
* Code cleanup: better abstraction in the tests.
Changes since 5.5:
* Allow filtering log messages by keyword (--only)
* In --autofix and --show-autofix mode, show only fixable diagnostics
* When called with --source, show the source below the diagnostics
* Don't warn about USE_LANGUAGES in ../../mk/compiler.mk
* Fix autofix for .gz in PLIST
Changes since 5.4.26:
SUBST blocks are now checked correctly even if they contain conditionals
like .if ... .elif ... .endif.
AUTO_MKDIRS is only suggested for those directories that actually appear
in the PLIST since other directories are not affected by this variable.
Changes since 5.4.25:
* When autofixing a patch, fix the corresponding distinfo file as well.
* Properly parse ${VARNAME:[\#]};
the # was interpreted as a comment before.
* Don't add unnecessary :Q to PKG_OPTIONS and related variables.
* Don't warn about missing manual pages. While Debian and other
distributions do this work, pkgsrc keeps the packages as original as
possible.
* Autofix redundant ".gz" for manual pages in PLISTs.
The actual fix as been done by "pkglint -F */*/buildlink3.mk", and was
reviewed manually.
There are some .include lines that still are indented with zero spaces
although the surrounding .if is indented. This is existing practice.
Changes since 5.4.24:
* More specific warning for "exitcode with pipe shell commands"
* Don't warn that the echo in "echo | sed" could fail
* Allow packages to define custom make targets
* Don't warn about a misplaced LICENSE when a package doesn't define it
* Skip .git directories
* Reduce number of hicolor-icon-theme error messages in PLIST files
* Remove MKCRYPTO, USE_CRYPTO, CRYPTO variable definitions
Unsorted entries in PLIST files have generated a pkglint warning for at
least 12 years. Somewhat more recently, pkglint has learned to sort
PLIST files automatically. Since pkglint 5.4.23, the sorting is only
done in obvious, simple cases. These have been applied by running:
pkglint -Cnone,PLIST -Wnone,plist-sort -r -F
Changes since 5.4.22:
Only autofix PLIST sorting in simple cases. Before this version, pkglint
sorted the PLIST even when it contained unresolved variable references like
${IMAKE_MAN_DIR}, which resulted in strange and unintuitive orders. These
complicated files are left for human inspection.
Changes since 5.4.21:
* Refactoring: moved packages line and linechecks back into main
* Fixed panic when autofixing package Makefiles
* Removed apache22
* Added a bit of inline documentation
expanding the macro with ++len for size meant our memset to zero was
one bigger than the above allocated size.
while here simplify the problematic macro - malloc+memset zero is calloc.
bump pkgrevision
pkgsrc changes:
- Use SUBST_VARS instead of SUBST_SED to adjust the several variables in
files/lintpkgsrc.pl and avoid some make contortionism in the remaining
SUBST_SED
Changes:
- PKG_SYSCONFDIR can be different to ${PREFIX}/etc, instruct lintpkgsrc
about that to possibly pick mk.conf when an /etc/mk.conf file is not
available
Discussed on pkgsrc-changes@ with <adam> and <jperkin>.
Thanks to both <adam> and <jperkin> for feedback, suggestions and review!
This configuration parameter is used when linking executables, through
cc(1) or ld(1) for instance.
This allows passing multiple arguments via the "append_executable"
option, like "-fPIC -pie" for instance.
Committing this before joerg@'s approval since a call for testing
PKGSRC_MKPIE has just been issued, and this helps with some packages.