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.
When running pkg_chk, ignore packages marked "missing", which tend to
be the wrong python version.
This is a temporary kludge, but should allow pkg_rr to run on systems
that have changed python versions.
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.
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.
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.
Changes since 0.3:
* Fix recursion.
* Add both c and c++ to USE_LANGUAGES.
* Add maintainer email handling (-M).
* Use buildlink3.mk files for dependencies when available.
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.
Changes since 5.7.9:
* Fixed URL checking for MASTER_SITES, especially remove the wrong error
message about URLs of the form ${MASTER_SITE:S,^,-,:=subdir/}.
* Made warnings about invalid filenames, filename patterns, pathnames and
pathname patterns more detailed.
## Version 0.11.8 (2019-05-20)
* Improve SQL strictness, avoiding issues where excessive writes to the SQL
error log caused by changes in SQLite 3.27.0 would swamp regular operations.
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.
Changes since 5.7.7:
Warn about definitions of NOT_FOR_* and ONLY_FOR_* which are missing a
rationale. When maintaining such packages it helps a lot to know why the
package cannot be built on a particular platform or with a particular
compiler or Python version.
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.
When trying to extract PKGPATH from what is believed to be the PKGNAME
of an installed package, do not abort, but merely error (which is
nonfatal with -k). This is helpful, but not sufficient, when dealing
with pyNN-foo packages where the default version is depended on but
not installed.
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.
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.
libarchive 3.3.3:
Avoid super-linear slowdown on malformed mtree files
Many fixes for building with Visual Studio
NO_OVERWRITE doesn't change existing directory attributes
New support for Zstandard read and write filters
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.
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.
In addition to adding in BUILD_DEPENDS, catch up to long-ago
improvements to pkgsrc and also add in TOOL_DEPENDS.
Thanks to Hauke Fath for reporting the issue.
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.
## Version 0.11.7 (2019-03-07)
* Switch back to NetBSDfr/pkgin as the upstream repository.
* Improve database safety.
* Fix clang -Wmissing-noreturn and -Wformat-nonliteral warnings.
* Fix some typos in the manual page.
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.
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.
Changes in version 2.1
======================
**Released on 2019-01-14.**
* Issue 3: Added a new `PBULK_LOG` setting to point at a location that
holds all build logs, and made the `build` command print out details
about such logs on success and failure.
* Issue 4: Fixed the installable bootstrap kit generated during a build
to not leak pkg_comp-internal paths.
* Issue 10: Fixed generation of pkg_summary so that it includes all
packages and not only those that were explicitly given to the `auto`
or `build` commands after a clean rebuild of the sandbox.
* PR 20: Fixed the default Git repository from jsonn's to NetBSD's as
it has moved upstream.
* Added a new `PKG_DEVELOPER` setting to enable pkgsrc development
from within the sandbox.
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.
systemd detection. Tested on CentOS 6 (Red Hat init) and 7 (systemd),
Devuan (Debian init), and Debian 9 (systemd).
Add RCDBOOT_STYLE to BUILD_DEFS.
Bump version.
dependency ordering, so we compute the order of such rc.d scripts as are
present at install time (via a new "list" action in sbin/rc.d-boot).
Anything added or removed later is the sysadmin's job. I guess this is
what OpenBSD sysadmins expect.
While here, make "stop" run the commands in reverse order, like NetBSD
does on shutdown.
Bump version.
meaning of "rc.conf" (it's their "defaults/rc.conf", not to be edited).
If we're on OpenBSD and there's an /etc/rc.conf.local, source it.
Bump version.
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.
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
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.
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.
Pkglint needs goyacc, which is provided by devel/go-tools. But that
packages pulls in a lot of dependencies that are not needed for pkglint.
This includes a Perl interpreter and various cryptography packages.
Instead, during build, pkglint installs the only needed tool of that
collection (goyacc).
Since go-package.mk assumes that each pkgsrc package only downloads and
installs a single project, but pkglint now needs two of them (goyacc and
pkglint), most parts of go-package.mk had to be copied here and
implemented directly.
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).
Changes since 5.6.4:
* GCC_REQD should only contain the major version. For GCC versions up to
4.x, this consists of the first two numbers, such as 4.8, while starting
with the 5.x series, the major version is only the first number, such as
7.
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
(3cd071958e), 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.
BLAKE2 is a further development of the SHA-3 finalist BLAKE by its original
authors that improves its performance. BLAKE2b is the variant optimized for
64-bit systems.
ok riastradh
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
## Version 0.11.5 (2018-09-20)
* Fix crash when preferred.conf exists but is empty.
* Improve preferred.conf handling.
* Fix package not available message when attempting to install a non-existent
package.
* Small performance improvement in newline handling.
Most of the times setting NO_CONFIGURE is not needed and can badly
interact with SUBST framework like in this case as pointed out by
PR pkg/53606.
Fixes PR pkg/53606.
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.
This is based on the decision The NetBSD Foundation made in 2008 to
do so, which was already applied to src.
This change has been applied to code which is likely not in other
repositories.
ok board@, reviewed by riastradh@
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.
Building relocatable and omagic files are now recognized. They were
previously recognized as executables, which may require a different
behaviour in some environments (like when enforcing PIE).
Committing this before joerg@'s approval since a call for testing
PKGSRC_MKPIE has just been issued, and this helps with some packages.
OpenSSL 1.1.0 makes xkusage and ex_flags opaque.
Use X509_check_ca rather than a custom and nearly identical implementation.
This is available since OpenSSL 0.9.8 (even in RHEL5).
This is also done because we cannot implement it identically under
OpenSSL 1.1.0 due to missing getters.
Test EXFLAG_XKUSAGE rather than zero xkusage test no usage to avoid openssl
1.1.0 getter returning a different code on this case.
Use getter for xkusage in the non-zero test case.
Provide fallback definitions for getters.
PR pkg/52298, PR pkg/52648
The distributed rc.d scripts are "barrier" scripts that are used
by other rc.d scripts to hook into different points of the startup
process by either using REQUIRE or BEFORE. The barrier scripts
should not depend on other, non-barrier scripts. This change makes
the distributed scripts usable by a simple "rcorder /etc/rc.d/*",
whereas it was failing before due to lack of "mountcritremote".
Bump the package version to 20171024.