Tatsuki Makino wrote:
What will be the result of pkg check -dan when such a condition occurs?

  # pkg check -dan
  Checking all packages: 100%
  gnupg1 has a missing dependency: curl
  gnupg1 is missing a required shared library: libcurl.so.4
  openjdk8 has a missing dependency: fontconfig
  openjdk8 has a missing dependency: dejavu
  openjdk8 has a missing dependency: freetype2
  openjdk8 is missing a required shared library: libfreetype.so.6
  (all intentionally missing)

Edward Sanford Sutton, III wrote:
libxml2 was upgraded to 2.14.4 then reverted to 2.11.9 on 06/21 within an hour, then reupgraded on 6/28 if I read logs correctly. Freshports lists quarterly package repository is still on 2.11 while latest is on 2.14; have you switched or activated multiple repos?

No repo changes, using a single repo built daily on a local poudriere
server.

Upgrades lead to errors, including on Linux; I broke multiple distros through updates to varying degrees but they were definitely broken by the action.

It looks like that may be the issue here...

  # pkg upgrade
  pkg: ...: duplicate dependency listing: ... (repeated many times)
  Cannot solve problem using SAT solver, trying another plan
  Checking integrity... done (0 conflicting)
  The following 5 package(s) will be affected (of 0 checked):
  Installed packages to be UPGRADED:
        protobuf-c: 1.5.1_2 -> 1.5.1_3
  Installed packages to be DOWNGRADED:
        bind-tools: 9.20.10 -> 9.20.9
        libxml2: 2.14.4 -> 2.11.9
  Installed packages to be REMOVED:
        apache24: 2.4.63_1
        py311-html5-parser: 0.4.12_2
  # pkg install
  The following 15 package(s) will be affected (of 0 checked):
  New packages to be INSTALLED:
        curl: 8.13.0_1
        fontconfig: 2.15.0_3,1
        freetype2: 2.13.3
        libX11: 1.8.12,1
        libXScrnSaver: 1.2.4_1
        libXau: 1.0.12
        libXdmcp: 1.1.5
        libXext: 1.3.6,1
        libXft: 2.3.8
        libXrender: 0.9.12
        libxcb: 1.17.0
        tcl86: 8.6.16_2
        tk86: 8.6.16
        xorgproto: 2024.1
        (all intentionally removed -f)
  Installed packages to be UPGRADED:
        protobuf-c: 1.5.1_2 -> 1.5.1_3

As a workaround, you could first run an upgrade with -n and check if the output contains REMOVED or even DOWNGRADED (rarely happens, but can legitimately happen) and error out + contact admin. If automating, remember that without an option to run autoremove during the upgrade that you still need a second command to try to handle dependency cleanup. Without it, any unused dependencies will remain until they conflict. With the effort to report upgrade used space, you would think such cleanup would be a default (but preferrably optional) part of upgrading.

Two great tips, thanks!

Roger


Reply via email to