[Bug 286510] pkgbase: make update-packages regressed after base be61deae0aa2

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 27 Aug 2025 21:45:21 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=286510

--- Comment #4 from commit-hook@FreeBSD.org ---
A commit in branch stable/14 references this bug:

URL:
https://cgit.FreeBSD.org/src/commit/?id=62947e5081616bff1e9623a0e4292e92b49c3910

commit 62947e5081616bff1e9623a0e4292e92b49c3910
Author:     Isaac Freund <ifreund@freebsdfoundation.org>
AuthorDate: 2025-04-23 10:27:35 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2025-08-27 21:42:53 +0000

    pkg: clarify argument parsing

    Currently pkg parses all arguments and subcommands in a single
    getopt_long() loop. This results in quite a bit of accidental
    complexity, especially around the -r option for the bootstrap and add
    subcommands.

    This also results in the undocumented behavior of all options understood
    by pkg(7) being accepted anywhere in the argument list regardless of
    their position. This contradicts the behavior of pkg(8) and I find it
    quite unexpected.

    This patch splits the argument parsing done by pkg(7) into two phases
    for global options and subcommand options. This gives behavior that
    matches pkg(8), accepting the subset of pkg(8) options supported by
    pkg(7) in the exact same positions that pkg(8) accepts them.

    This is however a somewhat breaking change, as options are no longer
    accepted by pkg(7) in places they are rejected by pkg(8). For example,
    `pkg -f bootstrap` no longer works, only `pkg bootstrap -f`.

    The original motivation for writing this patch was investigating support
    for --rootdir in pkg(7). Since pkg(8) uses -r as the short form for
    both --rootdir and --repository depending on the position, I decided
    that pkg(7) needed to be brought inline with pkg(8)'s argument parsing
    behavior to avoid confusion.

    This patch also gets rid of args_add_message (unused since 40b9f924b1)

    Relnotes:       yes
    Reviewed by:    bapt
    Sponsored by:   The FreeBSD Foundation
    Differential Revision: https://reviews.freebsd.org/D49977

    (cherry picked from commit be61deae0aa2923bb9908fc5b37b35712603e622)

    pkg: suppress error on unknown options

    pkg(7) does not understand all the options that pkg(8) understands and
    should never log errors about unknown options that it will pass on to
    pkg(8) without touching.

    PR:             286510
    Reviewed by:    bapt
    Fixes:          be61deae0aa2 ("pkg: clarify argument parsing")
    Sponsored by:   The FreeBSD Foundation
    Differential Revision: https://reviews.freebsd.org/D50163

    (cherry picked from commit 73ba568b1c35aabc1682540b5b4d5d77220c5468)

 usr.sbin/pkg/pkg.7 |   5 +-
 usr.sbin/pkg/pkg.c | 174 ++++++++++++++++++++++++++---------------------------
 2 files changed, 87 insertions(+), 92 deletions(-)

-- 
You are receiving this mail because:
You are the assignee for the bug.
You are on the CC list for the bug.