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.
Package configuration files should be found in ${PKG_SYSCONFDIR},
which can be modified by a user-settable variable. Look for the
default sandboxctl(8) configuration files in
${PKG_SYSCONFDIR.sandboxctl} if that variable is set, or else in
${PKG_SYSCONFBASE}/sandboxctl.
Fixes problem noted by Iain Hibbert on tech-pkg@.
Bump the PKGREVISION to 2 due to changes in the binary package if
PKG_SYSCONFDIR.pkg_comp is set to a non-default value.
Fix bug where "ocaml_findlib" and "shells" tasks were not
preserving the ownership and permissions of existing system files,
e.g., /etc/shells, when updating their contents.
This project uses BSD makefiles to build and install the binaries
and manpages. Add "MANDIR=..." to the flags passed to
"make install" so that the manpages are installed in the correct
location under ${PKGMANDIR}.
* Add a "icon_themes" task to cache GTK+ icon theme directories.
* Change the way that install-info(1) is invoked.
* Clarify the output from the "groups" and "users" tasks.
* Bug fixes.
go14 has no relro support AFAICT.
go-1.8.3 has if you use -buildmode=pie, but it claims it's not supported
on Linux.
Disable relro checking for go packages until bsiegert has time to
look at this.
- Add recursive handling of dependencies.
- Simplify updating pre-existing R packages.
- Improve handling of packages that conflict with base R packages.
Introduce Icon Theme cache handling framework
Icon Theme cache files are used by GTK+ and maintained with the
gtk-update-icon-cache tool. Each Icon Theme package duplicates
its own maintainance scripts: only the specified icon theme directory
differs. With this framework, if packages have ICON_THEMES=yes,
associated icon themes will be detected and their cache files will
be maintained automatically.
Change cache handling behaviour as follows:
* Icon theme caches will be updated if either gtk2+ or gtk3+
gtk-update-icon-cache tool is available.
* With installation of gtk2+ package, not only hicolor icon theme but
also any other icon theme cache files will be updated.
* Prevent removal of icon caches at deinstall, gtk3+ may be installed and
using them.
* Ditto with gtk3+, gtk2+ may not be installed now, so caches must be
maintained by gtk3+.
Add new configuration options {ap,pre}pend_{shared,executable} for
adding options when the operation mode is identified as linking.
Based loosely on patch from khorben.
pkgtasks is a shell script library to ease writing POSIX-compliant
shell scripts to handle common tasks during installation or removal
of a package, e.g.,
* creating groups and users needed by the package
* creating and removing directories with special permissions and
ownership,
* copying example config files to their final locations during
package installation, and removing them during package removal
if they don't differ from the example ones,
* reminding the user of files that may be customized after
package installation.
- Convert to libarchive 3.x interfaces, avoiding the legacy glue.
- Rename local copy of netpgpverify to match installed headers.
- Shuffle bootstrap code to reduce special cases in pkg_add.
- Always read/write file names in tar archives as binary. While they are
supposed to be UTF-8, locale conversion creates more problems than it
solves here.
- Fix const correctness in gpg_verify.
- Add format string annotation for xasprintf for GCC-like compilers.
- Restrict supported archive formats for binary packages to ar (signed
packages) and tar (actual content) with uncompressed/gzip/bzip2/xz as
compression choices. This reduces the exposed libarchive surface.
- The pkg-vulnerability file correspondingly supports only the same
compression choices.
Changes since 5.4.18:
* Added generated Go yacc source files to CVS, since starting with Go 1.8
the yacc tool is no longer part of the core distribution. The dependency
on yacc would pull in all the Go tools, which are quite a few, and some
of these do not currently build since they depend on go-crypto. See
https://mail-index.netbsd.org/tech-pkg/2017/03/17/msg017900.html
This package sets up periodic builds of binary packages using the
pkgtools/pkg_comp utility given minimal configuration. All that is
needed from the user is to determine which packages to build
automatically.
If you are on NetBSD, see also sysutils/sysbuild-user, which is the
perfect companion to this package to periodically build the base system.
**Released on 2017-02-17.**
This is the first release of the pkg_comp project as a standalone
package. This new release shares no code with previous versions and is
not compatible with them.
The following are the major differences between pkg_comp 2.0 and all
previous releases, which incidentally are the reasons that triggered
this rewrite:
* Support for multiple platforms.
* Use of pbulk to (re)build packages within the sandbox. This results
in more reliable incremental builds after pkgsrc updates.
* Support for bootstrap, generating binary kits as part of the builds.
* Better scriptability to allow running from cron(8) trivially.
This is to make room for pkg_comp 2.0, which is coming soon. The new release
is significantly different from the 1.x series in features (supports multiple
platforms, bootstrap, and pbulk) but also comes with a different configuration
syntax.
MASTER_SITES= site1 \
site2
style continuation lines to be simple repeated
MASTER_SITES+= site1
MASTER_SITES+= site2
lines. As previewed on tech-pkg. With thanks to rillig for fixing pkglint
accordingly.
Changes since 5.4.15:
* updated vardefs from mk/defaults/mk.conf from v1.118 (2006) to v1.269
Gone:
* PKG_SUFX
* USETBL
* PKGSRC_SHOW_PATCH_ERRORMSG
* USE_XPKGWEDGE
* PKGVULNDIR
Adjusted:
* USE_GAMESGROUP
* BIN_INSTALL_FLAG -> BIN_INSTALL_FLAGS
* fixed license parsing to be more realistic
(the previous version didn't handle parentheses correctly)
* lots of housekeeping
* moved some code to separate packages, allowing re-use
* separated Line checks into LineChecker type
* separated MkLine checks into MkLineChecker type
* made Line an interface, for further refactorings
The getopt and pkgver code have been extracted to separate packages to make
them reusable.
Several other functions have been moved to make the structure easier to
understand:
* dir.go and main.go have been moved to pkglint.go
* utility functions from pkglint.go have been moved to mkline.go
Now pkglint.go contains only high-level code.
Introduce a separate client-prepare script. The default configuration
runs the renamed client_prepare_action for each scan/build client once,
dropping duplicates in the list. Clients are prepared in parallel, but
the master waits for all before starting the actual scan. Make
bulkbuild-restart re-prepare the clients, i.e. in case they have a
pkgsrc tree in a local tmpfs.
Changes since 5.4.12:
* Added check for unintended # comments, especially in HOMEPAGE
* Added check for quotes in COMMENT
* Fixed hardcoded package versions for PHP, Python, Lua, etc.
* Code cleanup in the tests
Many of these definitely do not depend on readline.
So there must be a different underlying problem, and that
should be tracked down instead of papering over it.
Changes since 5.4.11:
* warn when PKGSRC_COMPILER is compared with "==", since it may be a chain
of compilers
* warn about listing Python .egg-info files directly in PLIST files, since
lang/python/egg.mk takes care of this
* code cleanup: unify Error{0,1,2,3} into Errorf to make understanding the
code easier; use interface{} for MkLine data; use regular expression
instead of handwritten matching code, since one line is easier to read
than 50
Solves:
/usr/libexec/binutils225/elf/ld.gold: error: cannot find -lreadline
The missing specification is obvious on DragonFly because there's
no publically accessible version of readline in base.
- Add progress when fetching (number of files to fetch)
- Improved messages about locked packages
- Return 1 when a user rejects the proposed plan
- When dealing with configuration files '@config' never overwrites
untracked files
- Warn everyone about deprecation of @dirrm and @exec
- Deduplicate metadata loading code
- pkg register now understands context aware messages
The default for PKG_DBDIR changed from /var/db/pkg to ${LOCALBASE}/pkgdb
Accordingly, the pkgng location is changing from /var/db/pkgng to
${LOCALBASE}/pkgng-db
Several updates in pkgsrc-synth work are applicable to pkgtools/pkg so
let's bring them in. Some changes:
1) fetching segfault fixed
2) change VULNXML URL from FreeBSD ports to pkgsrc version
3) Fix vulnerability report URLs (404) to valid ones (DragonFlyBSD.org)
4) Add ability to build debuggable version
5) Fix PKG_DBDIR default setting for pkg (honor mk.conf)
6) Fix another segfault on NetBSD when pkg(8) attempts to read elfhints.
This is only valid on FreeBSD and DragonFly, so bring in upstream
fix to block on other platforms.
7) Set as BOOTSTRAP_PKG and block USE_CWRAPPERS for bootstrap reasons
8) realign SUBST* definitions
Changes since 5.4.10:
* Replaced regular expression with hand-written matching code, since
it is 30 times as fast.
* Reduced number of syscalls by remembering os.Lstat results and
CVS/Entries.
* Reduced number of syscalls by querying the current user only once.
* Added warning for comparing ${PKGSRC_COMPILER} == "clang", which
should rather be ${PKGSRC_COMPILER:Mclang}.
* Added variable definitions for NOT_PAX_ASLR_SAFE and NOT_PAX_MPROTECT_SAFE.
Changes since 5.4.9:
* Check for mismatch between conditional and unconditional includes
of other files (mostly depending on PKG_OPTIONS or OPSYS)
* Check that PLIST files contain "man" instead of "${PKGMANDIR}"
The CONF_FILES are never installed if their target directories don't
already exist due to other previous installation. This adds several
@pkgdir entries to ensure the CONF_FILES installation can always succeed.
While here, simplify the post-install target.
Rather than defaulting to /var/db/pkgng, use the variable that exists
already for this purpose. Similarly, change cache directory definition
from /var/cache/pkgng to ${VARBASE}/cache/pkgng
As pointed out by jperkins, defaulting to builder's setting for PKGSRCDIR
for the sources isn't aways correct for the binary package consumers.
This is not a problem unique to pkgtools/pkg and really requires a system-
wide solution. Until there is such a global variable, rename the PORTSDIR
variable to PKG.portsdir and allow it to be modified by e.g. make.conf.
In the case of pkg, PORTSDIR just refers to a default configuration
location which is overridable by a configuration file.
This:
- fixes the "/usr/ports" paths in code and man pages to
${PKGSRCDIR} (normal) or hardcoded to "/usr/pkgsrc" (future, its for
builders like Synth and poudriere)
- changes default DB path from "/var/db/pkg" to "/var/db/pkgng". It
seems the original default was too ambiguous as "pkg" is used
everywhere in pkgsrc and it's the default format (not pkgng format)
- similarly, changes default CACHE patch from "/var/cache/pkg" to
"/var/cache/pkgng"
- bumps PKGREVISION again
Another relevant comment from John and reworded by myself for context:
(all misquotings mine)
« Importantly, FreeBSD, NetBSD, and DragonFly all provide libarchive
in base. Therefore, this changes the port to use the base version when
available because the libarchive requirement is considered heavy. The
OpenSSL dependency brings a lot with, including perl. When trying to
update the bootstrap to build pkgng instead of pkg_* tools, it is
critical that the dependencies remain low. Other platforms will have
to suffer with the libarchive requirement if they want to use pkgng.
Following this, special linking code is needed for DragonFly since the
SSL libraries are now private. In fact, the only userland program
allowed to link with them is pkg(8) for bootstrapping reasons listed
above. »
Thanks again!
This does:
- remove the requirement for C++ (there is no C++ code there)
- properly substitute $PKGSRCDIR for PORTSDIR
- remove sbin/pkg2ng as it is inapplicable for pkgsrc
- bump PKGREVISION accordingly
More changes pending...
This also adds two patches, to fix the "major OS upgrade detected" error
in NetBSD. A file missing from the original archive was imported too.
Bump package revision as the upstream was changed. The archive downloaded
has a different filename, so there should be no conflict in the
"distfiles" folder.
From John Marino, thanks!
- Handle /run/resolvconf/resolv.conf explicitly rather than mounting all of
/run. If /run exists then systemd will dynamically create /run/user/uid
tmpfs mounts inside the chroot which mksandbox is unable to unmount.
The plist-utils suite aims to facilitate management of PLIST entries.
It handles PLIST options and variables, and is especially useful for
keeping PLISTs of packages with quickly changing file-lists, such
as those closely tracking upstream development branch, up to date.
Import approved by <wiz>.
That package was removedi and caused pkglint errors like:
ERROR: ../../lang/php/ext.mk:25: Cannot read
"./../../lang/php55/Makefile.common".
So update to later php56.
I don't understand why the ChecklinesDistinfo function in distinfo.go
has an exception for the php patches directory but changed there too.
I received an okay on packages@ list.
Note that the make check for the pkglint package failed for me
but the pkglint worked for me in my tests of some php using packages.
Increase version of pkglint.
Changes since 5.4.8:
* Disallow lib/charset.alias in PLIST. This file may only be installed
by converters/libiconv. (That package is currently broken, since
it only touches that file when installing from source, not from a
binary package. But pkglint is prepared for it to be fixed.)
For 1.8.0:
New features:
- new vital flag that prevent from removing a package with pkg delete when not specifying -f
- upgrade process now has atomicity per packages meaning now we can safely check the return of the pre* scripts
- handle ctrl-c during upgrade/install/update
- solver improvements
- pkg clean now runs in a capsicum sandbox on supported plateforms
Changes:
- pkg delete now fails if one tries to delete it (the pkg package) without -f. Before it was just warning and skipping it
- pkg install --from-root has been renamed pkg install --recursive to avoir confusion
Fixes:
- correctly handle hardlinked setuid files
- better handling of setuid
- fix elf analysis when some bad libraries have SONAME specified by empty
- fix elf analysis when a binary provides elf_notes but not the expected ones and are still valid freebsd binaries
(this fixes the case when libgdk_pixbuf was not found as a provided lib on i386)
- NAMESERVER option is now working again and inputs are better checked
- lots of bug fixes: potential leaks mostly
For 1.7.0:
Changes:
- Support new "vital" notion: prevent from implicit deletion
- Improved support for OpenBSD/bitrig (still lacks some functions in libc)
- Improved ZSH completion
- Updated libucl
- Lots of fixes in error messages
- Fixed "pkg lock" handling
- Allow to specify "inline" respositories in pkg.conf
- ipv6 fixes
- Allow to restrict the accepted url schemes
- More commands supports "-q"
- Multiple bug fixes
- As usual multiple new bugs
- Improved support for shlibs dependency generation when packaging base via ALLOW_BASE_SHLIBES
For 1.6.0:
- Lots of improvements in the solver (in particular fixes the case like the
recent jpeg upgrade)
- Lots of fixes in the 3 way merge code
- pkg add can now work without a version specified in the dependency line
- pkg check -d now also check the required libraries
- Improved support for partial upgrades
- Improved zsh completion support
- Improved linux support (now all regression tests passes on linux)
- Messages can now be context aware: (only print a given message during
installation, upgrade - version aware -, removal, or always)
- @keywords now accepts new entries to add context aware messages
- Add the ability to generate graphiz's dot format representation of the
solver's problem
- pkg search now default on showing the comments of of the matched packages
- Lots of bug fixes and code cleanup
- Plenty of new bugs
From the commit log, since 1.5.4:
- More fixes to pkg-check.8
- Important improvements in the pkg check manpage
- HBSD: fix format specifier in libpkg's pkg_vets(...)
- Fix libexpat buffer overflow: CVE-2015-1283
- Always use sqlite3_column_int64 for reading integers from the db
- Add a new configuration item to define custom HTTP User-Agent
- Don't attempt to set file ownership when INSTALL_AS_USER is set
- zsh-completion: updated all of the currently handled subcommands
- Fix typo s/conpact/compact/
- Fix two typos in pkg_vset(), to correspond to pkg_vget()'s code
- Implement AUTOCLEAN
- Clean up some grammar and formatting in pkg.conf(5).
- Update zsh completion
- Do not distribute generated source files
- Add a random delay to pkg-audit when invoked without a TTY
- Fix display of <root directory>
Changes since 5.4.6:
* Allow conditionals of the form "${var1}" == "${var2}"
* Check for indentation of .include directives
* Check arbitrarily complex license conditions
* General code cleanup
Changes since 5.4.5:
* Fixed shell command parser to correctly parse redirections
* Added type definitions for several variables
* Allowed version numbers to be single digits
Changes since 5.4.4:
* Removed autofix for variables in BUILDLINK_TREE, since that change
affects multiple variables in the file and therefore cannot be done
automatically
* Fixed PLIST sorting to not lose lines
Changes since 5.4.3:
* Improved detection for undocumented patches from Git
* Added warning about unnecessary space after variable names
* Lots of internal housekeeping