Bug 1166690

Summary: zypper dup removes essential packages
Product: [openSUSE] openSUSE Distribution Reporter: Andreas Jaeger <aj>
Component: libzyppAssignee: E-mail List <zypp-maintainers>
Status: RESOLVED INVALID QA Contact: E-mail List <qa-bugs>
Severity: Critical    
Priority: P5 - None    
Version: Leap 15.2   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: solver test case - created with "zypper dup --debug-solver --force-resolution -r packman"

Description Andreas Jaeger 2020-03-15 18:54:47 UTC
Created attachment 832807 [details]
solver test case - created with "zypper dup --debug-solver --force-resolution -r packman"

zypper dup -r packman broke my system by removing some essential packages. In the past I used "zypper dup -r packman" to just upgrade the packages. But with 15.2 - for the first time - it removes a lot of packages.

# zypper dup  --force-resolution -r packman
Loading repository data...
Reading installed packages...
Computing distribution upgrade...

The following 48 items are locked and will not be changed by any action:
 Available:
  asunder-lang avidemux3-qt5-lang avidemux-lang bino-lang bombono-lang clawsker-lang curlew-lang deadbeef-lang
  deepin-media-player-lang devede-lang easymp3gain-lang flacon-lang fpm2-lang freetuxtv-lang
  gmerlin-avdecoder-lang gmerlin-lang gogglesmm-lang grip-lang gxine-lang handbrake-gtk-lang imagination-lang
  isomaster-lang kplayer-lang lightspark-lang MP4Tools-lang ncmpc-lang ogmrip-ac3-lang ogmrip-dirac-lang
  ogmrip-lang ogmrip-nero-aac-lang ogmrip-oggz-lang OpenOctaveMidi-lang OpenOctaveMidi-unstable-lang
  plasma5-radiotray-lang pmount-lang qmp3gain-lang qtsmbstatus-lang recorditnow-lang rosa-media-player-lang
  selene-lang silicon-lang smtube-lang synfig-lang synfigstudio-lang vlc-lang winff-lang wput-lang xcfa-lang

The following 73 packages are going to be REMOVED:
  aaa_base-extras checkmedia chrony cpio-mt cron cronie cyrus-sasl-crammd5 cyrus-sasl-gssapi ghostscript-x11 git
  git-cvs git-email git-gui gitk git-svn gnome-shell-search-provider-nautilus graphviz graphviz-gd graphviz-gnome
  graphviz-plugins-core gtk3-immodule-amharic gtk3-immodule-inuktitut gtk3-immodule-thai gtk3-immodule-vietnamese
  gvfs gvfs-backend-afc gvfs-backends gvfs-backend-samba gvfs-fuse libdouble-conversion1 libfreebl3
  libfreebl3-hmac libicu60_2 libicu60_2-ledata libmediacheck5 libpeas-loader-python
  libqt5-qtbase-platformtheme-gtk3 libsamba-policy0-python3 libsoftokn3 libsoftokn3-hmac
  libsvn_auth_gnome_keyring-1-0 libvdpau_nouveau libvirt libvirt-daemon-config-nwfilter libvirt-daemon-driver-lxc
  libvirt-devel Mesa-dri-nouveau Mesa-libva myspell-lightproof-en openldap2-client openssh-helpers ovmf
  PackageKit-gstreamer-plugin PackageKit-gtk3-module permissions-doc pinentry-gnome3 plymouth plymouth-dracut
  plymouth-plugin-label-ft plymouth-plugin-script postfix python3-dbm python3-devel re2-devel samba-python3
  speech-dispatcher-module-espeak subversion-perl terminfo terminfo-iterm terminfo-screen wicked zlib-devel zstd

The following package is going to be upgraded:
  perl-YAML-LibYAML

The following package is going to be downgraded:
  flash-player-ppapi

The following 2 packages are going to change vendor:
  flash-player-ppapi  Adobe Systems Inc. -> http://packman.links2linux.de
  perl-YAML-LibYAML   openSUSE -> http://packman.links2linux.de          

1 package to upgrade, 1 to downgrade, 73 to remove, 2  to change vendor.
Overall download size: 7.5 MiB. Already cached: 0 B. After the operation, 129.7 MiB will be freed.
Continue? [y/n/v/...? shows all options] (y): n
Comment 1 Andreas Jaeger 2020-03-15 18:55:26 UTC
This is a regression from 15.1 that breaks my system, therefore Critical.
Comment 2 Michael Andres 2020-03-16 09:51:54 UTC
This is no regression. It behaves as expected:

See man zypper and use of -r. '-r packman' only loads the packman repo, so all packages originally installed from other repos are considered to be  unwanted/orphaned. If you use -r you must specify ALL relevant repos.

You want 'dup --from packman':

           --from alias|name|#|URI
               The option can be used multiple times and restricts the
               upgrade to the specified repositories only. Nevertheless
               all enabled repositories are visible to the resolver and
               will be considered to satisfy dependency problems.
Comment 3 Andreas Jaeger 2020-03-16 09:58:47 UTC
Wasn't aware of --from - thanks.