Skip to content

2.8.0

Choose a tag to compare

@bapt bapt released this 20 Jul 09:05

Major Changes

Database & performance

  • better read/write concurrency on the local DB
  • Schema bumped to v42: 15 redundant single-column indexes dropped, flavors VIEW added, shlib_id indexes added
  • Read-only databases opened with SQLITE_OPEN_READONLY, falling back to immutable=1
  • Binary repositories: 16K pages and synchronous=OFF during bulk catalog updates
  • Implicit SQL-89 JOINs converted to explicit JOIN syntax, several queries optimized
  • Some database concurrency issues fixed

New features

  • pkg-checksum(8): new command to generate and validate checksums
  • Blake2b used everywhere possible for checksums; repositories use blake2 instead of sha256
  • rwhich: file tracking and search for remote repositories (requires repositories to be built with -l)
  • pkg delete -G/--exclude-glob: exclude packages by glob pattern
  • Repositories: enable/disable/reset support
  • pkg autoremove -qn: quiet, script-friendly output
  • pkg query: %{...} falls back to pkg_printf(3) evaluation
  • lua: pkg.exec_capture -- captures stdout/stderr of pkg.exec
  • plist: @​for ... @​end loops and # comments
  • Triggers: per-file instead of per-directory
  • RC script support rewritten to be safer
  • DECOMPRESSION_THREADS respected when decompressing
  • Arbitrary data can be stored in the repository meta file
  • OSVf updated to official JSON schema 1.7.5 with CVE name parsing and osv_type for VuXML compatibility
  • Periodic script for dependency checking
  • CheriBSD and CheriABI OS/ABI declared

Minor Changes

  • Handle getgrnam_r/getpwnam_r upon ERANGE
  • Replace system() with execlp() for man page display
  • query_select no longer discards valid input on EOF without newline
  • Handle trailing %% in printf format strings
  • input validation hardened via fuzzing
  • which: always show the matched path
  • info -e: only return 0 if all packages on the command line exist
  • install: respect -q
  • upgrade: do not propose downgrades to solve provides/requires
  • upgrade: clarified messages for missing packages and changes
  • fetch: respect RFC 3986
  • lock: do not error in expected (un)lock state
  • shlibs: also remove ignored shlibs provided from shlibs required
  • backup_libraries: atomic replacement, fully respects rootdir
  • backup_lib: prevent accumulating old libs and badly matching them
  • DB: loudly complain if the DB cannot be opened
  • DB: in case of remote DB corruption, destroy it to allow rebuilding
  • Repo: do not delete repositories in overrides, simply disable them
  • Honor --repository flag for disabled repos as documented
  • search: improved error message and fixed multiple JSON formatted results
  • update: warn when trying to update a non-existent repository
  • fingerprints: fallback on the host to find them when using -r
  • libelf: fix Linux/powerpc64 build
  • libecc: support Linux/ppc64
  • pkg-which: fix spurious warning message with -p
  • extract: prefer mtime from manifest over archive
  • periodic: daily checksum is now off by default
  • plug multiple memory leaks and resource leaks

Dependency updates

  • SQLite 3.53.2
  • Lua 5.4.8
  • libucl 0.9.5