pkgchkxx and pkgrrxx are complete rewrites of pkgsrc pkg_chk and pkg_rolling-replace respectively. These are functionally compatible but run faster:
pkgrrxx -uruns roughly N times faster thanpkg_rolling-replace -uwhere N is the number of CPUs you have.pkgrrxx -snruns 14.8x faster thanpkg_rolling-replace -sn.pkgchkxx -aur -bruns 11x faster thanpkg_chk -aur -bwhen pkg_summary(5) file is available.pkgchkxx -aur -sruns 3x faster thanpkg_chk -aur -s.pkgchkxx -lruns 185x faster thanpkg_chk -lwhenpkg_summary(5)file is available, and runs 24.8x faster when it's unavailable (and needs to scan archives).pkgchkxx -pruns 1.3x faster thanpkg_chk -p.pkgchkxx -gruns 1.6x faster thanpkg_chk -g.pkgchkxx -Nruns 22x faster thanpkg_chk -N.
This implementation achieves better performance by using a faster language, better algorithms, and making use of more than a single CPU whenever possible. The last one is the primary reason why a complete rewrite was needed: doing it in POSIX shell was simply not feasible.
- A C++17 compiler. For GCC it has to be GCC 8 or later.
- GNU Make, only needed for building the programs.
- pkg_install, obviously.
- pkg-config for determining what pkg_chk tags to predefine. This is a run-time dependency.
- bzip2 for reading bzip2-compressed
pkg_summary(5)files. - zlib for reading gzip-compressed
pkg_summary(5)files. - libfetch for fetching
pkg_summary(5)files from a remote host.
See NEWS.
% ./configure
% gmake
% sudo gmake install
You may need to give ./configure the path to your compiler if the
system compiler doesn't support C++17:
% ./configure CXX=/path/to/cxx
See HACKING.
BSD-2-Clause AND BSD-3-Clause. See COPYING.