freebsd / pkg

Package management tool for FreeBSD. Help at #pkg on Libera Chat or pkg@FreeBSD.org
Other
748 stars 279 forks source link

Downgrades a package without need #1705

Open yurivict opened 6 years ago

yurivict commented 6 years ago

I had my local higher version of devel/ode: ode-0.15.2,1 installed, higher than the current version.

While installing the unrelated package castxml, pkg insisted on downgrading ode:

$ sudo pkg install castxml
Updating FreeBSD repository catalogue...
Fetching meta.txz: 100%    944 B   0.9kB/s    00:01    
Fetching packagesite.txz: 100%    6 MiB   3.4MB/s    00:02    
Processing entries: 100%
FreeBSD repository update completed. 32499 packages processed.
All repositories are up to date.
The following 2 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
    castxml: g20180728

Installed packages to be DOWNGRADED:
    ode: 0.15.2,1 -> 0.13_4,1

Number of packages to be installed: 1
Number of packages to be downgraded: 1

The process will require 54 MiB more space.
11 MiB to be downloaded.

Proceed with this action? [y/N]: y

ode is completely unrelated, therefore pkg shouldn't touch it at this time. pkg acts too invasively.

pkg-1.10.5

yurivict commented 6 years ago

Here's another action that is questionable. It should never just reinstall pkg to the same version. pkg has no dependencies, therefore should never be "just reinstalled" with the same exact version.

Additionally, it first said that 10 packages will be affected, then it wanted to upgrade more. This is also not reasonable. It should just say once how many packages are affected/installed/upgraded/etc. Otherwise this is confusing.

$ sudo pkg install calibre
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 10 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
    calibre: 3.31.0
    py27-qt5-widgets: 5.9.2_5
    py27-qt5-gui: 5.9.2_2
    py27-qt5-core: 5.9.2_6
    py27-qt5-webkitwidgets: 5.9.2_5
    py27-qt5-webkit: 5.9.2_5
    py27-qt5-network: 5.9.2_5
    py27-qt5-printsupport: 5.9.2_5
    py27-qt5-xmlpatterns: 5.9.2_5
    py27-qt5-svg: 5.9.2_5

Number of packages to be installed: 10

The process will require 81 MiB more space.
28 MiB to be downloaded.

Proceed with this action? [y/N]: y
[1/10] Fetching calibre-3.31.0.txz: 100%   25 MiB   8.9MB/s    00:03    
[2/10] Fetching py27-qt5-widgets-5.9.2_5.txz: 100%    1 MiB   1.1MB/s    00:01    
[3/10] Fetching py27-qt5-gui-5.9.2_2.txz: 100%  748 KiB 765.5kB/s    00:01    
[4/10] Fetching py27-qt5-core-5.9.2_6.txz: 100%  764 KiB 781.9kB/s    00:01    
[5/10] Fetching py27-qt5-webkitwidgets-5.9.2_5.txz: 100%   92 KiB  93.9kB/s    00:01    
[6/10] Fetching py27-qt5-webkit-5.9.2_5.txz: 100%   59 KiB  60.5kB/s    00:01    
[7/10] Fetching py27-qt5-network-5.9.2_5.txz: 100%  206 KiB 210.7kB/s    00:01    
[8/10] Fetching py27-qt5-printsupport-5.9.2_5.txz: 100%   73 KiB  74.3kB/s    00:01    
[9/10] Fetching py27-qt5-xmlpatterns-5.9.2_5.txz: 100%   59 KiB  60.1kB/s    00:01    
[10/10] Fetching py27-qt5-svg-5.9.2_5.txz: 100%   41 KiB  41.6kB/s    00:01    
Checking integrity... done (6 conflicting)
  - py27-qt5-widgets-5.9.2_5 conflicts with py36-qt5-widgets-5.9.2_5 on /usr/local/share/py-sip/PyQt5/QtWidgets/QtWidgetsmod.sip
  - py27-qt5-gui-5.9.2_2 conflicts with py36-qt5-gui-5.9.2_2 on /usr/local/share/py-sip/PyQt5/QtGui/QtGuimod.sip
  - py27-qt5-core-5.9.2_6 conflicts with py36-qt5-core-5.9.2_6 on /usr/local/bin/pyuic5
  - py27-qt5-network-5.9.2_5 conflicts with py36-qt5-network-5.9.2_5 on /usr/local/share/py-sip/PyQt5/QtNetwork/QtNetworkmod.sip
  - py27-qt5-printsupport-5.9.2_5 conflicts with py36-qt5-printsupport-5.9.2_5 on /usr/local/share/py-sip/PyQt5/QtPrintSupport/QtPrintSupportmod.sip
  - py27-qt5-svg-5.9.2_5 conflicts with py36-qt5-svg-5.9.2_5 on /usr/local/share/py-sip/PyQt5/QtSvg/QtSvgmod.sip
Checking integrity... done (0 conflicting)
Conflicts with the existing packages have been found.
One more solver iteration is needed to resolve them.
The following 24 package(s) will be affected (of 0 checked):

Installed packages to be REMOVED:
    py36-qt5-webengine-5.9.2_4
    py36-qt5-webchannel-5.9.2_4
    urh-2.2.4
    py36-qt5-qml-5.9.2_5
    py36-qt5-test-5.9.2_5
    py36-qt5-xml-5.9.2_6
    onionshare-1.3.1
    py36-qt5-core-5.9.2_6
    py36-qt5-gui-5.9.2_2
    py36-qt5-widgets-5.9.2_5
    py36-qt5-network-5.9.2_5
    py36-qt5-printsupport-5.9.2_5
    py36-qt5-svg-5.9.2_5

New packages to be INSTALLED:
    py27-qt5-core: 5.9.2_6
    py27-qt5-gui: 5.9.2_2
    py27-qt5-widgets: 5.9.2_5
    py27-qt5-network: 5.9.2_5
    py27-qt5-webkit: 5.9.2_5
    py27-qt5-printsupport: 5.9.2_5
    py27-qt5-webkitwidgets: 5.9.2_5
    py27-qt5-xmlpatterns: 5.9.2_5
    py27-qt5-svg: 5.9.2_5
    calibre: 3.31.0

Installed packages to be REINSTALLED:
    pkg-1.10.5_2

Number of packages to be removed: 13
brd commented 6 years ago

Please add your output from pkg -vv

yurivict commented 6 years ago
$ pkg -vv 
Version                 : 1.10.5
PKG_DBDIR = "/var/db/pkg";
PKG_CACHEDIR = "/var/cache/pkg";
PORTSDIR = "/usr/ports";
INDEXDIR = "";
INDEXFILE = "INDEX-11";
HANDLE_RC_SCRIPTS = false;
DEFAULT_ALWAYS_YES = false;
ASSUME_ALWAYS_YES = false;
REPOS_DIR [
    "/etc/pkg/",
    "/usr/local/etc/pkg/repos/",
]
PLIST_KEYWORDS_DIR = "";
SYSLOG = true;
ABI = "FreeBSD:11:amd64";
ALTABI = "freebsd:11:x86:64";
DEVELOPER_MODE = false;
VULNXML_SITE = "http://vuxml.freebsd.org/freebsd/vuln.xml.bz2";
FETCH_RETRY = 3;
PKG_PLUGINS_DIR = "/usr/local/lib/pkg/";
PKG_ENABLE_PLUGINS = true;
PLUGINS [
]
DEBUG_SCRIPTS = false;
PLUGINS_CONF_DIR = "/usr/local/etc/pkg/";
PERMISSIVE = false;
REPO_AUTOUPDATE = true;
NAMESERVER = "";
HTTP_USER_AGENT = "pkg/1.10.5";
EVENT_PIPE = "";
FETCH_TIMEOUT = 30;
UNSET_TIMESTAMP = false;
SSH_RESTRICT_DIR = "";
PKG_ENV {
}
PKG_SSH_ARGS = "";
DEBUG_LEVEL = 0;
ALIAS {
    all-depends = "query %dn-%dv";
    annotations = "info -A";
    build-depends = "info -qd";
    cinfo = "info -Cx";
    comment = "query -i \"%c\"";
    csearch = "search -Cx";
    desc = "query -i \"%e\"";
    download = "fetch";
    iinfo = "info -ix";
    isearch = "search -ix";
    prime-list = "query -e '%a = 0' '%n'";
    prime-origins = "query -e '%a = 0' '%o'";
    leaf = "query -e '%#r == 0' '%n-%v'";
    list = "info -ql";
    noauto = "query -e '%a == 0' '%n-%v'";
    options = "query -i \"%n - %Ok: %Ov\"";
    origin = "info -qo";
    provided-depends = "info -qb";
    raw = "info -R";
    required-depends = "info -qr";
    roptions = "rquery -i \"%n - %Ok: %Ov\"";
    shared-depends = "info -qB";
    show = "info -f -k";
    size = "info -sq";
}
CUDF_SOLVER = "";
SAT_SOLVER = "";
RUN_SCRIPTS = true;
CASE_SENSITIVE_MATCH = false;
LOCK_WAIT = 1;
LOCK_RETRIES = 5;
SQLITE_PROFILE = false;
WORKERS_COUNT = 0;
READ_LOCK = false;
PLIST_ACCEPT_DIRECTORIES = false;
IP_VERSION = 0;
AUTOMERGE = true;
VERSION_SOURCE = "";
CONSERVATIVE_UPGRADE = true;
PKG_CREATE_VERBOSE = false;
AUTOCLEAN = false;
DOT_FILE = "";
REPOSITORIES {
}
VALID_URL_SCHEME [
    "pkg+http",
    "pkg+https",
    "https",
    "http",
    "file",
    "ssh",
    "ftp",
    "ftps",
    "pkg+ssh",
    "pkg+ftp",
    "pkg+ftps",
]
ALLOW_BASE_SHLIBS = false;
WARN_SIZE_LIMIT = 1048576;
METALOG = "";
OSVERSION = 1102501;
IGNORE_OSVERSION = false;

Repositories:
  FreeBSD: { 
    url             : "pkg+http://pkg.FreeBSD.org/FreeBSD:11:amd64/latest",
    enabled         : yes,
    priority        : 0,
    mirror_type     : "SRV",
    signature_type  : "FINGERPRINTS",
    fingerprints    : "/usr/share/keys/pkg"
  }
brd commented 6 years ago

oh, ode is from a local pkg.

yurivict commented 6 years ago

oh, ode is from a local pkg.

Yes. It shouldn't downgrade unrelated packages, even if thinks that the the highest available version is lower.