pkgng/pkgng c6a935dlibpkg Makefile.autosetup, src Makefile.autosetup

Fix overlinking on macOS

On macOS, --as-needed isn't available, so avoid overlinking.
DeltaFile
+6-7src/Makefile.autosetup
+1-3libpkg/Makefile.autosetup
+7-102 files

pkgng/pkgng df7c6bdsrc search.c utils.c, tests/frontend search.sh

Fix handling when search returns multiple JSON formatted results

Previously this was returning invalid JSON and needed to be inside a
JSON array and on a single line.
DeltaFile
+19-0tests/frontend/search.sh
+13-0src/search.c
+0-2src/utils.c
+32-23 files

pkgng/pkgng 70eac91. NEWS auto.def

2.6.99.6
DeltaFile
+5-0NEWS
+1-1auto.def
+6-12 files

pkgng/pkgng d12cf2bsrc query.c

query: do not print empty line for purely multiline formats

Commit 5e8bc8c6c introduced a fallback that prints a line even when
there is no multiline data (e.g., no deps, no shlibs). This was needed
for mixed formats like "%n %L" where the non-multiline part (%n) should
still be displayed even when the multiline part has no data.

However, for purely multiline formats like "%do %dn-%dv", this fallback
produced a spurious " -" line for packages without dependencies. This
broke poudriere's incremental builds: its sanity check parses the output
as origin/pkgname pairs, and the malformed line caused packages to be
incorrectly flagged as corrupted and deleted, cascading into a full
rebuild.

Only trigger the fallback when the format string contains at least one
non-multiline specifier.
DeltaFile
+20-1src/query.c
+20-11 files

pkgng/pkgng d6fbc78scripts/periodic 411.pkg-backup.in

pkg-backup: make the configuration configurable
DeltaFile
+13-5scripts/periodic/411.pkg-backup.in
+13-51 files

pkgng/pkgng f7b2f2dscripts sign_pkg.sh

sign_pkg.sh: use the .pkg extension
DeltaFile
+1-1scripts/sign_pkg.sh
+1-11 files

pkgng/pkgng e88f7ab. NEWS auto.def

2.6.99.5
DeltaFile
+4-0NEWS
+1-1auto.def
+5-12 files

pkgng/pkgng a8a53cflibpkg pkg_printf.c, src query.c

query: fix multiline SIGBUS on case like %dn with no deps
DeltaFile
+32-32libpkg/pkg_printf.c
+1-1src/query.c
+33-332 files

pkgng/pkgng 1f99b96libpkg pkg_add.c, tests/frontend install.sh

libpkg: fix --register-only with empty packages

Currently we end up calling archive_read_next_header() in
populate_config_file_contents() even when there are no files in the
package. This results in the following libarchive error:

pkg: archive_read_next_header(): INTERNAL ERROR: Function
'archive_read_next_header' invoked with archive structure in
state 'eof', should be in state 'header/data'

This commit fixes the error and adds a test to prevent regression.

Sponsored by:   The FreeBSD Foundation
DeltaFile
+41-0tests/frontend/install.sh
+1-1libpkg/pkg_add.c
+42-12 files

pkgng/pkgng eaa2efc. NEWS auto.def

2.6.99.4
DeltaFile
+6-0NEWS
+1-1auto.def
+7-12 files

pkgng/pkgng 60bea38src info.c, tests/frontend version.sh

info: fix version comparison after e1841f2e9
DeltaFile
+32-1tests/frontend/version.sh
+5-2src/info.c
+37-32 files

pkgng/pkgng 9169aa5libpkg pkg_jobs.c

libpkg: attempt config file merge for force install

Currently `pkg install -f` always overwrite config files.
This commit changes this behavior to attempt to merge them.

Sponsored by:   The FreeBSD Foundation
DeltaFile
+6-0libpkg/pkg_jobs.c
+6-01 files

pkgng/pkgng 2ec66d7libpkg pkg_add.c pkg.c

libpkg: fix --register-only to populate config file contents

Currently `pkg install --register-only` does not acutally populate
config file contents in the pkg database. This leads to config files
potentially getting silently overwritten during upgrade/reinstall.

Sponsored by:   The FreeBSD Foundation
DeltaFile
+48-1libpkg/pkg_add.c
+3-0libpkg/pkg.c
+51-12 files

pkgng/pkgng cce541atests/frontend configmerge.sh

tests: add failing test that should pass

pkg install --register-only followed by pkg install -f should
merge config files, but it currently does not.

Fixing this behavior will allow pkgbasify to be simpler and more robust.

Sponsored by:   The FreeBSD Foundation
DeltaFile
+41-1tests/frontend/configmerge.sh
+41-11 files

pkgng/pkgng 7b50923docs pkg-query.8, src query.c

query: add %y and %Y for provides/requires
DeltaFile
+43-3src/query.c
+19-3docs/pkg-query.8
+62-62 files

pkgng/pkgng b4966fd. NEWS auto.def

2.6.99.3
DeltaFile
+4-0NEWS
+1-1auto.def
+5-12 files

pkgng/pkgng 8a4f0cdlibpkg pkg_jobs_universe.c

solver: avoid spurious reinstall from wrong repo with multi-repo setups

When the same package version exists in multiple repositories,
select_candidate() could fall through all heuristics (same repo,
max version, max priority) and return the first item in the chain,
which depends on repo config ordering.  If that candidate has a
different digest than the installed package, a needless reinstall
was proposed from the wrong repository.

Add a digest-matching fallback in select_candidate(): when all
other heuristics fail and a local package exists, prefer the
remote candidate whose digest matches the installed one.
DeltaFile
+17-0libpkg/pkg_jobs_universe.c
+17-01 files

pkgng/pkgng 655fcd8libpkg fetch_libfetch.c

fetch: fix crash when cleaing up the mirror list
DeltaFile
+13-6libpkg/fetch_libfetch.c
+13-61 files

pkgng/pkgng 22a108d. NEWS auto.def

2.6.99.2
DeltaFile
+11-0NEWS
+1-1auto.def
+12-12 files

pkgng/pkgng 846d5casrc create.c

create: update usage
DeltaFile
+8-8src/create.c
+8-81 files

pkgng/pkgng 457b871src set.c

set: add missing -p to usage
DeltaFile
+1-1src/set.c
+1-11 files

pkgng/pkgng 4268e27src install.c

install: update usage

Fixes:  #2623
DeltaFile
+1-1src/install.c
+1-11 files

pkgng/pkgng 013f3batests/frontend add.sh

add: skip the latest new tests on linux
DeltaFile
+5-0tests/frontend/add.sh
+5-01 files

pkgng/pkgng a263bb8tests/frontend add.sh

test: ensure we use --no-as-needed when linking

On linux distros ld oftens default on --as-needed, so make sure
have they DT_NEEDED
DeltaFile
+2-1tests/frontend/add.sh
+2-11 files

pkgng/pkgng 5f29dcascripts/periodic 400.status-pkg.in

400.status-pkg: provide an option pour select the source to check
DeltaFile
+10-1scripts/periodic/400.status-pkg.in
+10-11 files

pkgng/pkgng 4b0ddcelibpkg pkg_add.c, tests/frontend add.sh

add: ignore dead symlinks for provides/requires
DeltaFile
+43-1tests/frontend/add.sh
+6-0libpkg/pkg_add.c
+49-12 files

pkgng/pkgng a8e6f14libpkg pkg_add.c, tests/frontend add.sh

add: resolve shlibs and provides via symlink directory layout

When pkg add installs a package, it now resolves shlibs_required and
abstract requires by looking up provider packages in a pre-built symlink
directory alongside the package archive:

PACKAGEDIR/
  All/pkgname-1.0.pkg
  shlibs/libfoo.so.1/provider.pkg -> ../../All/provider-1.0.pkg
  provides/vi-editor/vim.pkg -> ../../All/vim-9.0.pkg

Provider selection supports:
- Single provider: used directly
- Alphabetically sorted, the first win

System shlibs and already-installed providers are skipped.
Resolution is disabled for stdin and upgrade modes.

Symlink directory creation is a poudriere/ports concern.
DeltaFile
+238-2tests/frontend/add.sh
+144-0libpkg/pkg_add.c
+382-22 files

pkgng/pkgng 51d1a4aexternal/libfetch common.c

libfetch: move back to realloc to build on macOS
DeltaFile
+1-1external/libfetch/common.c
+1-11 files

pkgng/pkgng 88be255external/libfetch Makefile.autosetup

libfetch: fix typo
DeltaFile
+1-1external/libfetch/Makefile.autosetup
+1-11 files

pkgng/pkgng f0bca8d.builds debian.yml

curl m: fix more fallout
DeltaFile
+1-2.builds/debian.yml
+1-21 files