pkg icon indicating copy to clipboard operation
pkg copied to clipboard

Multiple repos can cause pkg upgrade to install unneeded compat packages for library dependencies

Open bdrewery opened this issue 3 years ago • 4 comments

On a fresh 12.3 bastille jail. pkg 1.18.4 (though this is not a very recent regression as I saw it a few months ago at least). I don't usually try such a contrived multi repo setup but the only 2 times I have I ran into this.

If 2 repositories are used, such as quarterly priority=99 and latest=98 it happens that compatXX packages get installed when not needed.

Steps

  1. install tshark
root@test:~ # pkg install tshark
Updating FreeBSD repository catalogue...
[test] Fetching meta.conf: 100%    163 B   0.2kB/s    00:01
[test] Fetching packagesite.pkg: 100%    6 MiB   6.6MB/s    00:01
Processing entries: 100%
FreeBSD repository update completed. 31693 packages processed.
All repositories are up to date.
Updating database digests format: 100%
The following 28 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        c-ares: 1.18.1
        ca_root_nss: 3.78
        gettext-runtime: 0.21
        glib: 2.72.2,2
        gmp: 6.2.1
        gnutls: 3.7.7
        indexinfo: 0.3.1
        libffi: 3.4.2
        libgcrypt: 1.9.4_1
        libgpg-error: 1.45
        libiconv: 1.16
        libidn2: 2.3.2
        liblz4: 1.9.3,1
        libmaxminddb: 1.6.0
        libnghttp2: 1.48.0
        libsmi: 0.4.8_1
        libtasn1: 4.18.0
        libunistring: 1.0
        libxml2: 2.9.13_2
        mpdecimal: 2.5.1
        nettle: 3.8
        p11-kit: 0.24.1_1
        pcre: 8.45_1
        python39: 3.9.13
        readline: 8.1.2
        snappy: 1.1.9_1
        tshark: 3.6.6
        zstd: 1.5.2
...
  1. Then modify /etc/pkg/FreeBSD.conf (or /usr/local/etc/pkg/repos/...) to have the 2 repositories with priorities:
root@test:~ # cat /etc/pkg/FreeBSD.conf
# $FreeBSD$
#
# To disable this repository, instead of modifying or removing this file,
# create a /usr/local/etc/pkg/repos/FreeBSD.conf file:
#
#   mkdir -p /usr/local/etc/pkg/repos
#   echo "FreeBSD: { enabled: no }" > /usr/local/etc/pkg/repos/FreeBSD.conf
#

FreeBSD: {
  url: "pkg+http://pkg.FreeBSD.org/${ABI}/quarterly",
  mirror_type: "srv",
  signature_type: "fingerprints",
  fingerprints: "/usr/share/keys/pkg",
  priority: 99
  enabled: yes
}

FreeBSD2: {
  url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
  mirror_type: "srv",
  signature_type: "fingerprints",
  fingerprints: "/usr/share/keys/pkg",
  priority: 98
  enabled: yes
}

In this configuration I would expect nothing to happen with a pkg upgrade but it wants to install unneeded lib dependencies. There are 3 packages here but I'm only focusing on compat10x since my real case is seeing that.

root@test:~ # pkg upgrade -n
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
Updating FreeBSD2 repository catalogue...
FreeBSD2 repository is up to date.
All repositories are up to date.
Checking for upgrades (12 candidates): 100%
Processing candidates (12 candidates): 100%
The following 3 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        compat10x-amd64: 10.4.1004000.20181014 [FreeBSD]
        gdbm: 1.23 [FreeBSD2]
        libedit: 3.1.20210910,1 [FreeBSD2]

Number of packages to be installed: 3

The process will require 9 MiB more space.
3 MiB to be downloaded.
root@test:~ # pkg -dddd upgrade -n 2>&1 | grep compat10
DBG(3)[77370]> added shlib provide libugidfw.so.4 for compat10x-amd64
DBG(3)[77370]> added shlib provide libssl.so.7 for compat10x-amd64
DBG(3)[77370]> added shlib provide libreadline.so.8 for compat10x-amd64
DBG(3)[77370]> added shlib provide libproc.so.2 for compat10x-amd64
DBG(3)[77370]> added shlib provide libpam.so.5 for compat10x-amd64
DBG(3)[77370]> added shlib provide libopie.so.7 for compat10x-amd64
DBG(3)[77370]> added shlib provide libkvm.so.6 for compat10x-amd64
DBG(3)[77370]> added shlib provide libipx.so.5 for compat10x-amd64
DBG(3)[77370]> added shlib provide libhistory.so.8 for compat10x-amd64
DBG(3)[77370]> added shlib provide libheimsqlite.so.11 for compat10x-amd64
DBG(3)[77370]> added shlib provide libgpib.so.3 for compat10x-amd64
DBG(3)[77370]> added shlib provide libgomp.so.1 for compat10x-amd64
DBG(3)[77370]> added shlib provide libelf.so.1 for compat10x-amd64
DBG(3)[77370]> added shlib provide libdwarf.so.3 for compat10x-amd64
DBG(3)[77370]> added shlib provide libdevinfo.so.5 for compat10x-amd64
DBG(3)[77370]> added shlib provide libcrypto.so.7 for compat10x-amd64
DBG(3)[77370]> added shlib provide libcam.so.6 for compat10x-amd64
DBG(3)[77370]> added shlib provide libbsnmptools.so.0 for compat10x-amd64
DBG(4)[77370]> Pkgdb: running 'SELECT DISTINCT p.id, origin, p.name, p.name as uniqueid, version, comment, desc, message, arch, maintainer, www, prefix, flatsize, licenselogic, automatic, locked, time, manifestdigest, vital FROM packages AS p  WHERE p.na
me = 'compat10x-amd64' ORDER BY p.name'
DBG(4)[77370]> Processing item compat10x-amd64
DBG(2)[77370]> universe: add new remote pkg: compat10x-amd64, (compat10x-amd64-10.4.1004000.20181014:2$2$79wxp91mn8pnx967qm1euuodcaidzdtxbf7aa3eqjzdayeu5q3namu84zpfzj49h6aqurm9gop9khgdad61msw1s9q35tpfbcfj4t5d)
DBG(4)[77370]> Processing deps for compat10x-amd64
DBG(4)[77370]> Processing rdeps for compat10x-amd64 (remote)
DBG(4)[77370]> Pkgdb: running 'SELECT DISTINCT p.id, origin, p.name, p.name as uniqueid, version, comment, desc, message, arch, maintainer, www, prefix, flatsize, licenselogic, automatic, locked, time, manifestdigest, vital FROM packages AS p  WHERE p.na
me = 'compat10x-amd64' ORDER BY p.name'
DBG(4)[77370]> universe: append provide compat10x-amd64-10.4.1004000.20181014(r) for require libreadline.so.8
DBG(3)[77370]> added shlib provide libugidfw.so.4 for compat10x-amd64
DBG(3)[77370]> added shlib provide libssl.so.7 for compat10x-amd64
DBG(3)[77370]> added shlib provide libreadline.so.8 for compat10x-amd64
DBG(3)[77370]> added shlib provide libproc.so.2 for compat10x-amd64
DBG(3)[77370]> added shlib provide libpam.so.5 for compat10x-amd64
DBG(3)[77370]> added shlib provide libopie.so.7 for compat10x-amd64
DBG(3)[77370]> added shlib provide libkvm.so.6 for compat10x-amd64
DBG(3)[77370]> added shlib provide libipx.so.5 for compat10x-amd64
DBG(3)[77370]> added shlib provide libhistory.so.8 for compat10x-amd64
DBG(3)[77370]> added shlib provide libheimsqlite.so.11 for compat10x-amd64
DBG(3)[77370]> added shlib provide libgpib.so.3 for compat10x-amd64
DBG(3)[77370]> added shlib provide libgomp.so.1 for compat10x-amd64
DBG(3)[77370]> added shlib provide libelf.so.1 for compat10x-amd64
DBG(3)[77370]> added shlib provide libdwarf.so.3 for compat10x-amd64
DBG(3)[77370]> added shlib provide libdevinfo.so.5 for compat10x-amd64
DBG(3)[77370]> added shlib provide libcrypto.so.7 for compat10x-amd64
DBG(3)[77370]> added shlib provide libcam.so.6 for compat10x-amd64
DBG(3)[77370]> added shlib provide libbsnmptools.so.0 for compat10x-amd64
DBG(4)[77370]> Processing item compat10x-amd64
DBG(2)[77370]> universe: add new remote pkg: compat10x-amd64, (compat10x-amd64-10.4.1004000.20181014:2$2$79wxp91mn8pnx967qm1euuodcaidzdtxbf7aa3eqjzdayeu5q3namu84zpfzj49h6aqurm9gop9khgdad61msw1s9q35tpfbcfj4t5d)
DBG(4)[77370]> Processing deps for compat10x-amd64
DBG(4)[77370]> Processing rdeps for compat10x-amd64 (remote)
DBG(4)[77370]> Pkgdb: running 'SELECT DISTINCT p.id, origin, p.name, p.name as uniqueid, version, comment, desc, message, arch, maintainer, www, prefix, flatsize, licenselogic, automatic, locked, time, manifestdigest, vital FROM packages AS p  WHERE p.na
me = 'compat10x-amd64' ORDER BY p.name'
DBG(4)[77370]> universe: append provide compat10x-amd64-10.4.1004000.20181014(r) for require libreadline.so.8
DBG(3)[77370]> added shlib provide libugidfw.so.4 for compat10x-amd64
DBG(3)[77370]> added shlib provide libssl.so.7 for compat10x-amd64
DBG(3)[77370]> added shlib provide libreadline.so.8 for compat10x-amd64
DBG(3)[77370]> added shlib provide libproc.so.2 for compat10x-amd64
DBG(3)[77370]> added shlib provide libpam.so.5 for compat10x-amd64
DBG(3)[77370]> added shlib provide libopie.so.7 for compat10x-amd64
DBG(3)[77370]> added shlib provide libkvm.so.6 for compat10x-amd64
DBG(3)[77370]> added shlib provide libipx.so.5 for compat10x-amd64
DBG(3)[77370]> added shlib provide libhistory.so.8 for compat10x-amd64
DBG(3)[77370]> added shlib provide libheimsqlite.so.11 for compat10x-amd64
DBG(3)[77370]> added shlib provide libgpib.so.3 for compat10x-amd64
DBG(3)[77370]> added shlib provide libgomp.so.1 for compat10x-amd64
DBG(3)[77370]> added shlib provide libelf.so.1 for compat10x-amd64
DBG(3)[77370]> added shlib provide libdwarf.so.3 for compat10x-amd64
DBG(3)[77370]> added shlib provide libdevinfo.so.5 for compat10x-amd64
DBG(3)[77370]> added shlib provide libcrypto.so.7 for compat10x-amd64
DBG(3)[77370]> added shlib provide libcam.so.6 for compat10x-amd64
DBG(3)[77370]> added shlib provide libbsnmptools.so.0 for compat10x-amd64
DBG(4)[77370]> Processing item compat10x-amd64
DBG(4)[77370]> universe: append provide compat10x-amd64-10.4.1004000.20181014(r) for require libhistory.so.8
DBG(3)[77370]> added shlib provide libugidfw.so.4 for compat10x-amd64
DBG(3)[77370]> added shlib provide libssl.so.7 for compat10x-amd64
DBG(3)[77370]> added shlib provide libreadline.so.8 for compat10x-amd64
DBG(3)[77370]> added shlib provide libproc.so.2 for compat10x-amd64
DBG(3)[77370]> added shlib provide libpam.so.5 for compat10x-amd64
DBG(3)[77370]> added shlib provide libopie.so.7 for compat10x-amd64
DBG(3)[77370]> added shlib provide libkvm.so.6 for compat10x-amd64
DBG(3)[77370]> added shlib provide libipx.so.5 for compat10x-amd64
DBG(3)[77370]> added shlib provide libhistory.so.8 for compat10x-amd64
DBG(3)[77370]> added shlib provide libheimsqlite.so.11 for compat10x-amd64
DBG(3)[77370]> added shlib provide libgpib.so.3 for compat10x-amd64
DBG(3)[77370]> added shlib provide libgomp.so.1 for compat10x-amd64
DBG(3)[77370]> added shlib provide libelf.so.1 for compat10x-amd64
DBG(3)[77370]> added shlib provide libdwarf.so.3 for compat10x-amd64
DBG(3)[77370]> added shlib provide libdevinfo.so.5 for compat10x-amd64
DBG(3)[77370]> added shlib provide libcrypto.so.7 for compat10x-amd64
DBG(3)[77370]> added shlib provide libcam.so.6 for compat10x-amd64
DBG(3)[77370]> added shlib provide libbsnmptools.so.0 for compat10x-amd64
DBG(4)[77370]> Processing item compat10x-amd64
DBG(4)[77370]> universe: append provide compat10x-amd64-10.4.1004000.20181014(r) for require libhistory.so.8
DBG(2)[77370]> set automatic flag for compat10x-amd64
DBG(4)[77370]> solver: add variable from universe with uid compat10x-amd64
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libhistory.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libhistory.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libhistory.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libhistory.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libhistory.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libhistory.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libhistory.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libhistory.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libhistory.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libhistory.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libhistory.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libhistory.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(4)[77370]> solver: libreadline.so.8 provide is satisfied by compat10x-amd64-10.4.1004000.20181014(r)
DBG(2)[77370]> require rule: package gdbm(r) depends on a requirement provided by: readline(l)readline(r)readline(r)readline(l)readline(r)readline(r)compat10x-amd64(r)compat10x-amd64(r)readline(l)readline(r)readline(r)compat10x-amd64(r)compat10x-amd64(r)
DBG(2)[77370]> require rule: package gdbm(r) depends on a requirement provided by: readline(l)readline(r)readline(r)readline(l)readline(r)readline(r)compat10x-amd64(r)compat10x-amd64(r)readline(l)readline(r)readline(r)compat10x-amd64(r)compat10x-amd64(r)
DBG(2)[77370]> require rule: package wazuh-manager(r) depends on a requirement provided by: readline(l)readline(r)readline(r)readline(l)readline(r)readline(r)compat10x-amd64(r)compat10x-amd64(r)readline(l)readline(r)readline(r)compat10x-amd64(r)compat10x
-amd64(r)
DBG(2)[77370]> upgrade rule: upgrade local compat10x-amd64-10.4.1004000.20181014 to remote compat10x-amd64-10.4.1004000.20181014
DBG(2)[77370]> require rule: package python39(r) depends on a requirement provided by: readline(l)readline(r)readline(r)readline(l)readline(r)readline(r)compat10x-amd64(r)compat10x-amd64(r)readline(l)readline(r)readline(r)compat10x-amd64(r)compat10x-amd6
4(r)
DBG(2)[77370]> require rule: package python39(r) depends on a requirement provided by: readline(l)readline(r)readline(r)readline(l)readline(r)readline(r)compat10x-amd64(r)compat10x-amd64(r)readline(l)readline(r)readline(r)compat10x-amd64(r)compat10x-amd6
4(r)
DBG(2)[77370]> require rule: package python39(l) depends on a requirement provided by: readline(l)readline(r)readline(r)readline(l)readline(r)readline(r)compat10x-amd64(r)compat10x-amd64(r)readline(l)readline(r)readline(r)compat10x-amd64(r)compat10x-amd6
4(r)
DBG(2)[77370]> require rule: package libxml2(r) depends on a requirement provided by: readline(l)readline(r)readline(r)readline(l)readline(r)readline(r)compat10x-amd64(r)compat10x-amd64(r)readline(l)readline(r)readline(r)compat10x-amd64(r)compat10x-amd64
(r)
DBG(2)[77370]> require rule: package libxml2(r) depends on a requirement provided by: readline(l)readline(r)readline(r)readline(l)readline(r)readline(r)compat10x-amd64(r)compat10x-amd64(r)readline(l)readline(r)readline(r)compat10x-amd64(r)compat10x-amd64
(r)
DBG(2)[77370]> require rule: package libxml2(r) depends on a requirement provided by: readline(l)readline(r)readline(r)readline(l)readline(r)readline(r)compat10x-amd64(r)compat10x-amd64(r)readline(l)readline(r)readline(r)compat10x-amd64(r)compat10x-amd64
(r)
DBG(2)[77370]> require rule: package libxml2(r) depends on a requirement provided by: readline(l)readline(r)readline(r)readline(l)readline(r)readline(r)compat10x-amd64(r)compat10x-amd64(r)readline(l)readline(r)readline(r)compat10x-amd64(r)compat10x-amd64
(r)
DBG(2)[77370]> require rule: package libxml2(l) depends on a requirement provided by: readline(l)readline(r)readline(r)readline(l)readline(r)readline(r)compat10x-amd64(r)compat10x-amd64(r)readline(l)readline(r)readline(r)compat10x-amd64(r)compat10x-amd64
(r)
DBG(2)[77370]> require rule: package libxml2(l) depends on a requirement provided by: readline(l)readline(r)readline(r)readline(l)readline(r)readline(r)compat10x-amd64(r)compat10x-amd64(r)readline(l)readline(r)readline(r)compat10x-amd64(r)compat10x-amd64
(r)
DBG(2)[77370]> decided remote compat10x-amd64-2$2$79wxp91mn8pnx967qm1euuodcaidzdtxbf7aa3eqjzdayeu5q3namu84zpfzj49h6aqurm9gop9khgdad61msw1s9q35tpfbcfj4t5d to install
DBG(2)[77370]> decided remote compat10x-amd64-2$2$79wxp91mn8pnx967qm1euuodcaidzdtxbf7aa3eqjzdayeu5q3namu84zpfzj49h6aqurm9gop9khgdad61msw1s9q35tpfbcfj4t5d to delete
DBG(4)[77370]> solver: check variable with uid compat10x-amd64
DBG(3)[77370]> pkg_solve: schedule installation of compat10x-amd64 2$2$79wxp91mn8pnx967qm1euuodcaidzdtxbf7aa3eqjzdayeu5q3namu84zpfzj49h6aqurm9gop9khgdad61msw1s9q35tpfbcfj4t5d
        compat10x-amd64: 10.4.1004000.20181014 [FreeBSD]

The strangest line is this which claims compat10x is local.

DBG(2)[77370]> upgrade rule: upgrade local compat10x-amd64-10.4.1004000.20181014 to remote compat10x-amd64-10.4.1004000.20181014

It could be that some package metadata is different to cause this but I don't see what so far.

pkg autoremove deletes all of these too.

# pkg upgrade
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
Updating FreeBSD2 repository catalogue...
FreeBSD2 repository is up to date.
All repositories are up to date.
Checking for upgrades (12 candidates): 100%
Processing candidates (12 candidates): 100%
The following 3 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        compat10x-amd64: 10.4.1004000.20181014 [FreeBSD]
        gdbm: 1.23 [FreeBSD2]
        libedit: 3.1.20210910,1 [FreeBSD2]

Number of packages to be installed: 3

The process will require 9 MiB more space.
3 MiB to be downloaded.

Proceed with this action? [y/N]: y
[test] [1/3] Fetching libedit-3.1.20210910,1.pkg: 100%  135 KiB 138.1kB/s    00:01
[test] [2/3] Fetching compat10x-amd64-10.4.1004000.20181014.pkg: 100%    2 MiB   2.4MB/s    00:01
[test] [3/3] Fetching gdbm-1.23.pkg: 100%  208 KiB 212.9kB/s    00:01
Checking integrity... done (0 conflicting)
[test] [1/3] Installing libedit-3.1.20210910,1...
[test] [1/3] Extracting libedit-3.1.20210910,1: 100%
[test] [2/3] Installing compat10x-amd64-10.4.1004000.20181014...
[test] [2/3] Extracting compat10x-amd64-10.4.1004000.20181014: 100%
[test] [3/3] Installing gdbm-1.23...
[test] [3/3] Extracting gdbm-1.23: 100%
# pkg autoremove
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 3 packages:

Installed packages to be REMOVED:
        compat10x-amd64: 10.4.1004000.20181014
        gdbm: 1.23
        libedit: 3.1.20210910,1

Number of packages to be removed: 3

The operation will free 9 MiB.

Proceed with deinstalling packages? [y/N]:

bdrewery avatar Sep 20 '22 20:09 bdrewery

This might be the same as #2054.

bdrewery avatar Sep 28 '22 20:09 bdrewery

346659bdfecdff9ba5b82c8ec16d1b65a599839f makes pkg autoremove not delete the bogus compat packages (which is better than a constant fight between upgrade and autoremove). But I still have a case where a brotli is being bogusly installed from the other repo that upgrade still brings in and autoremove removes it. Seem related to freetype2 wanting it.

bdrewery avatar Oct 04 '22 16:10 bdrewery

Right so in my highest priority repo I have freetype2-2.12.1, which does not require brotli. In my 2nd priority repo I have freetype2-2.12.1_2 which does require brotli. So currently master pkg upgrade brings in brotli and does not upgrade freetype2. Then pkg autoremove removes brotli.

pkg upgrade brings in brotli and no freetype2 updae. pkg upgrade -r priority1 does nothing. pkg upgrade -r priority2 brings in brotli and freetype2 (and lots of stuff) pkg upgrade freetype2 does nothing. pkg upgrade -r priority1 does nothing. pkg upgrade -r priority2 brings in brotli and the freetype2 update.

This brotli bug is then different than the bogus library dependency bug since it decided to bring in a dependency but not the thing that wanted it. 🤔 it might be the same I don't know.

bdrewery avatar Oct 04 '22 16:10 bdrewery

# /tmp/blah = dimacs format, blah = dot file
# grep '32[89]' /tmp/blah blah
/tmp/blah:-328 -329 0
/tmp/blah:-27 328 329 328 329 0  <---
/tmp/blah:-27 328 329 0                <---
blah:   p328 [shape=octagon label="brotli-1.0.9,1"]
blah:   p329 [shape=octagon label="brotli-1.0.9,1"]
blah:   p328 -> p329 [arrowhead=none,color=red];
blah:   p27 [shape=octagon label="freetype2-2.12.1_2"]  # manually inserted
blah:   p27 -> p328[arrowhead=diamond];
blah:   p27 -> p329[arrowhead=diamond];
blah:   p27 -> p328[arrowhead=diamond];
blah:   p27 -> p329[arrowhead=diamond];
blah:   p27 -> p328;
blah:   p27 -> p329;
...
# /tmp/blah = dimacs format, blah = dot file
 # grep -E '159|160' /tmp/blah blah
/tmp/blah:-871 956 957 958 956 957 958 159 160 956 957 958 159 160 0
/tmp/blah:-625 956 957 958 956 957 958 159 160 956 957 958 159 160 0  <-----
/tmp/blah:-625 956 957 958 956 957 958 159 160 956 957 958 159 160 0  <-----
/tmp/blah:-624 956 957 958 956 957 958 159 160 956 957 958 159 160 0  <-----
/tmp/blah:-624 956 957 958 956 957 958 159 160 956 957 958 159 160 0  <-----
/tmp/blah:-623 956 957 958 956 957 958 159 160 956 957 958 159 160 0  <-----
/tmp/blah:-623 956 957 958 956 957 958 159 160 956 957 958 159 160 0  <-----
/tmp/blah:-386 956 957 958 956 957 958 159 160 956 957 958 159 160 0
/tmp/blah:-385 956 957 958 956 957 958 159 160 956 957 958 159 160 0
/tmp/blah:-384 956 957 958 956 957 958 159 160 956 957 958 159 160 0
/tmp/blah:-349 956 957 958 956 957 958 159 160 956 957 958 159 160 0
/tmp/blah:-296 956 957 958 956 957 958 159 160 956 957 958 159 160 0
/tmp/blah:-261 956 957 958 956 957 958 159 160 956 957 958 159 160 0
/tmp/blah:-260 956 957 958 956 957 958 159 160 956 957 958 159 160 0
/tmp/blah:-259 956 957 958 956 957 958 159 160 956 957 958 159 160 0
/tmp/blah:-159 -160 0
/tmp/blah:-148 956 957 958 956 957 958 159 160 956 957 958 159 160 0
/tmp/blah:-147 956 957 958 956 957 958 159 160 956 957 958 159 160 0
/tmp/blah:-146 956 957 958 956 957 958 159 160 956 957 958 159 160 0
/tmp/blah:-127 956 957 958 956 957 958 159 160 956 957 958 159 160 0
blah:   p159 [shape=octagon label="compat10x-amd64-10.4.1004000.20181014"]
blah:   p160 [shape=octagon label="compat10x-amd64-10.4.1004000.20181014"]
...

Interesting that some rules are repeated and some have the same first variable.

bdrewery avatar Oct 04 '22 16:10 bdrewery