[Bug 1194264] New: Switching from pulseaudio to pipewire produces unusually large solution
http://bugzilla.opensuse.org/show_bug.cgi?id=1194264 Bug ID: 1194264 Summary: Switching from pulseaudio to pipewire produces unusually large solution Classification: openSUSE Product: openSUSE Tumbleweed Version: Current Hardware: x86-64 OS: Linux Status: NEW Severity: Normal Priority: P5 - None Component: libzypp Assignee: zypp-maintainers@suse.de Reporter: jengelh@inai.de QA Contact: qa-bugs@suse.de Found By: --- Blocker: --- Created attachment 854917 --> http://bugzilla.opensuse.org/attachment.cgi?id=854917&action=edit /var/log/zy* == Observed == # zypper -R /test in --no-recommends pipewire-pulseaudio Loading repository data... Reading installed packages... Resolving package dependencies... Problem: the installed pulseaudio-15.0-7.1.x86_64 conflicts with 'pulseaudio-daemon' provided by the to be installed pipewire-pulseaudio-0.3.42-1.1.x86_64 Solution 1: deinstallation of pulseaudio-15.0-7.1.x86_64 Solution 2: do not install pipewire-pulseaudio-0.3.42-1.1.x86_64 Choose from above solutions by number or cancel [1/2/c/d/?] (c): 1 Resolving dependencies... Resolving package dependencies... The following 454 NEW packages are going to be installed: Mesa Mesa-dri Mesa-gallium Mesa-libEGL1 Mesa-libGL1 Mesa-libglapi0 OpenPrintingPPDs apparmor-abstractions apparmor-parser at-spi2-core avahi bash-completion bluez-cups bluez-firmware boost-license1_78_0 branding-openSUSE ca-certificates ca-certificates-mozilla checkpolicy cpio cracklib cracklib-dict-full cryptsetup cups cups-client cups-config cups-filters device-mapper distribution-logos-openSUSE-Tumbleweed distribution-logos-openSUSE-icons dosfstools dracut dracut-mkinitrd-deprecated e2fsprogs elfutils expat file file-magic fontconfig fonts-config gdk-pixbuf-loader-rsvg gdk-pixbuf-query-loaders ghostscript girepository-1_0 glibc-locale glibc-locale-base gpg2 gptfdisk gstreamer gstreamer-plugin-pipewire gstreamer-plugins-base gtk3-data gtk3-schema gtk3-tools hicolor-icon-theme hicolor-icon-theme-branding-openSUSE hostname hplip-hpijs kpartx krb5 libLLVM13 libSvtAv1Enc0 libXcomposite1 libXcursor1 libXdamage1 libXdmcp6 libXext6 libXfixes3 libXfont2-2 libXft2 libXi6 libXinerama1 libXrandr2 libXrender1 libXtst6 libXv1 libXxf86vm1 libaio1 libaom3 libasm1 libassuan0 libatasmart-utils libatasmart4 libatk-1_0-0 libatk-bridge-2_0-0 libatspi0 libaugeas0 libauparse0 libavahi-client3 libavahi-common3 libavahi-core7 libavahi-glib1 libavcodec58_134 libavutil56_70 libbd_crypto2 libbd_fs2 libbd_loop2 libbd_lvm2 libbd_mdraid2 libbd_part2 libbd_swap2 libbd_utils2 libblas3 libblockdev libblockdev2 libbluetooth3 libboost_thread1_78_0 libbrotlicommon1 libbrotlidec1 libbytesize1 libcairo-gobject2 libcairo2 libcamera-suse7 libcares2 libcblas3 libcdda_interface0 libcdda_paranoia0 libcelt0-2 libcodec2-1_0 libcolord2 libcom_err2 libcrack2 libcups2 libcupsimage2 libcurl4 libdaemon0 libdatrie1 libdav1d5 libdb-4_8 libdcerpc-binding0 libdcerpc0 libdevmapper-event1_03 libdrm2 libdrm_amdgpu1 libdrm_intel1 libdrm_nouveau2 libdrm_radeon1 libdw1 libedit0 libepoxy0 libevdev2 libext2fs2 libfdk-aac2 libfontconfig1 libfontenc1 libfreebl3 libfreetype6 libfribidi0 libgbm1 libgdbm6 libgdbm_compat4 libgdk_pixbuf-2_0-0 libgfortran5 libgirepository-1_0-1 libglvnd libgnutls30 libgpgme11 libgraphene-1_0-0 libgraphite2-3 libgsm1 libgstallocators-1_0-0 libgstapp-1_0-0 libgstaudio-1_0-0 libgstgl-1_0-0 libgstpbutils-1_0-0 libgstreamer-1_0-0 libgstriff-1_0-0 libgsttag-1_0-0 libgstvideo-1_0-0 libgtk-3-0 libgudev-1_0-0 libharfbuzz-gobject0 libharfbuzz0 libhogweed6 libibmtss1 libidn2-0 libimagequant0 libimobiledevice-1_0-6 libinih0 libinput10 libjack0 libjansson4 libjbig2 libjpeg8 libkeyutils1 libksba8 liblapack3 liblcms2-2 libldac2 libldap-2_4-2 libldb2 liblilv-0-0 liblmdb-0_9_29 liblvm2cmd2_03 libmagic1 libmetalink3 libmfx1 libmp3lame0 libmpath0 libmtdev1 libndr-krb5pac0 libndr-nbt0 libndr-standard0 libndr2 libnetapi0 libnettle8 libnghttp2-14 libnotify4 libnpth0 libnscd1 libnsl3 libopenblas_pthreads0 libopenjp2-7 libpackagekit-glib2-18 libpango-1_0-0 libparted-fs-resize0 libparted2 libpciaccess0 libpipewire-0_3-0 libpixman-1-0 libplist-2_0-3 libpng16-16 libpoppler-cpp0 libpoppler116 libprocps8 libprotobuf-lite28 libproxy1 libpsl5 libpwquality1 libqpdf28 libquadmath0 librav1e0 librsvg-2-2 libsamba-credentials1 libsamba-errors0 libsamba-hostconfig0 libsamba-passdb0 libsamba-util0 libsamdb0 libsasl2-3 libsbc1 libsecret-1-0 libsemanage-conf libsemanage2 libsensors4 libserd-0-0 libsgutils2-1_47-2 libsigc-2_0-0 libsmbclient0 libsmbconf0 libsmbldap2 libsnmp40 libsoftokn3 libsolv-tools libsord-0-0 libsqlite3-0 libsratom-0-0 libssh-config libssh4 libswresample3_9 libtalloc2 libtasn1-6 libtevent-util0 libtevent0 libthai-data libthai0 libtheoradec1 libtheoraenc1 libtiff5 libtirpc-netconfig libtirpc3 libtwolame0 libudisks2-0 libunistring2 libunwind libupower-glib3 liburcu6 libusb-1_0-0 libusbmuxd-2_0-6 libva-drm2 libva2 libvdpau1 libverto1 libvisual libvpx7 libvulkan1 libwacom-data libwacom2 libwayland-client0 libwayland-cursor0 libwayland-egl1 libwayland-server0 libwbclient0 libwebp7 libwebpdemux2 libwebpmux3 libwrap0 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-render0 libxcb-shm0 libxcb-sync1 libxcb-xfixes0 libxcvt0 libxkbcommon0 libxkbfile1 libxshmfence1 libyaml-cpp0_6 libzck1 libzypp login_defs lvm2 mdadm mozilla-nspr mozilla-nss mozilla-nss-certs multipath-tools nss-mdns openSUSE-build-key p11-kit p11-kit-tools patterns-base-base patterns-base-minimal_base patterns-base-x11 patterns-microos-desktop-common perl perl-Encode-Locale perl-File-Listing perl-HTML-Parser perl-HTML-Tagset perl-HTTP-Cookies perl-HTTP-Date perl-HTTP-Message perl-HTTP-Negotiate perl-IO-HTML perl-LWP-MediaTypes perl-Net-DBus perl-Net-HTTP perl-TimeDate perl-Try-Tiny perl-URI perl-WWW-RobotRules perl-X11-Protocol perl-XML-Parser perl-XML-Twig perl-libwww-perl pigz pinentry pipewire-alsa pipewire-modules-0_3 pipewire-pulseaudio pipewire-spa-plugins-0_2 pipewire-spa-tools pipewire-tools policycoreutils policycoreutils-python-utils polkit-default-privs procps purge-kernels-service python3-audit python3-cupshelpers python3-policycoreutils python3-selinux python38 python38-Cycler python38-FontTools python38-Pillow python38-apipkg python38-appdirs python38-cached-property python38-certifi python38-cffi python38-charset-normalizer python38-cryptography python38-dbus-python python38-dragonmapper python38-fs python38-gobject python38-gobject-Gdk python38-gobject-cairo python38-hanzidentifier python38-idna python38-iniconfig python38-kiwisolver python38-loguru python38-matplotlib python38-networkx python38-numpy python38-olefile python38-ordered-set python38-packaging python38-pandas python38-prettytable python38-psutil python38-py python38-pyOpenSSL python38-pybind11 python38-pycairo python38-pycparser python38-pycups python38-pycurl python38-pyparsing python38-pysmbc python38-python-dateutil python38-pytz python38-requests python38-scipy python38-semanage python38-setools python38-setuptools python38-six python38-urllib3 python38-wcwidth python38-zhon samba-libs selinux-tools sg3_utils shadow snmp-mibs sudo system-config-printer-common system-config-printer-dbus-service system-user-lp system-user-nobody systemd-sysvinit thin-provisioning-tools typelib-1_0-Atk-1_0 typelib-1_0-GdkPixbuf-2_0 typelib-1_0-Gtk-3_0 typelib-1_0-HarfBuzz-0_0 typelib-1_0-Notify-0_7 typelib-1_0-PackageKitGlib-1_0 typelib-1_0-Pango-1_0 typelib-1_0-Polkit-1_0 typelib-1_0-Secret-1 udev-configure-printer udisks2 unzip update-alternatives upower wget which xdg-utils xf86-input-libinput xfsprogs xkbcomp xkeyboard-config xorg-x11-fonts-core xorg-x11-server xorg-x11-server-Xvfb zstd zypper The following 4 NEW patterns are going to be installed: base microos_desktop_common minimal_base x11 The following 2 packages are going to be REMOVED: alsa-plugins-pulse pulseaudio 454 new packages to install, 2 to remove. Overall download size: 267.9 MiB. Already cached: 0 B. After the operation, additional 1.1 GiB will be used. Continue? [y/n/v/...? shows all options] (y): == Expected to see == <<something similar in function to>> # zypper -R /test al patterns-microos-desktop-common Specified lock has been successfully added. # zypper -R /test in --no-recommends pipewire-pulseaudio Loading repository data... Reading installed packages... Resolving package dependencies... Problem: the installed pulseaudio-15.0-7.1.x86_64 conflicts with 'pulseaudio-daemon' provided by the to be installed pipewire-pulseaudio-0.3.42-1.1.x86_64 Solution 1: deinstallation of pulseaudio-15.0-7.1.x86_64 Solution 2: do not install pipewire-pulseaudio-0.3.42-1.1.x86_64 Choose from above solutions by number or cancel [1/2/c/d/?] (c): 1 Resolving dependencies... Resolving package dependencies... Problem: the installed alsa-plugins-pulse-1.2.6-1.1.x86_64 requires 'pulseaudio', but this requirement cannot be provided Solution 1: deinstallation of alsa-plugins-pulse-1.2.6-1.1.x86_64 Solution 2: remove lock to allow installation of patterns-microos-desktop-common-5.0-40.1.x86_64[oss] Solution 3: keep pulseaudio-15.0-7.1.x86_64 Solution 4: break alsa-plugins-pulse-1.2.6-1.1.x86_64 by ignoring some of its dependencies Choose from above solutions by number or cancel [1/2/3/4/c/d/?] (c): 1 Resolving dependencies... Resolving package dependencies... The following 48 NEW packages are going to be installed: libSvtAv1Enc0 libXext6 libaom3 libavahi-client3 libavahi-common3 libavcodec58_134 libavutil56_70 libbluetooth3 libcamera-suse7 libcelt0-2 libcodec2-1_0 libdav1d5 libdrm2 libfdk-aac2 libgnutls30 libgsm1 libhogweed6 libidn2-0 libjack0 libldac2 liblilv-0-0 libmfx1 libmp3lame0 libnettle8 libopenjp2-7 libpipewire-0_3-0 librav1e0 libsbc1 libserd-0-0 libsord-0-0 libsratom-0-0 libswresample3_9 libtasn1-6 libtheoradec1 libtheoraenc1 libtwolame0 libunistring2 libusb-1_0-0 libva-drm2 libva2 libvdpau1 libvpx7 libvulkan1 libwebp7 libwebpmux3 pipewire-modules-0_3 pipewire-pulseaudio pipewire-spa-plugins-0_2 The following 2 packages are going to be REMOVED: alsa-plugins-pulse pulseaudio 48 new packages to install, 2 to remove. Overall download size: 18.3 MiB. Already cached: 0 B. After the operation, additional 62.2 MiB will be used. Continue? [y/n/v/...? shows all options] (y): -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1194264 http://bugzilla.opensuse.org/show_bug.cgi?id=1194264#c1 --- Comment #1 from Jan Engelhardt <jengelh@inai.de> --- === What happens if... === 1. Going forward. # zypper in pipewire-pulseaudio [install 454+ packages] 2. Going backward: # zypper in alsa-plugins-pulse Problem: the installed patterns-microos-desktop-common-5.0-40.1.x86_64 obsoletes 'alsa-plugins-pulse < 1.3' provided by the to be installed alsa-plugins-pulse-1.2.6-1.1.x86_64 Solution 1: deinstallation of patterns-microos-desktop-common-5.0-40.1.x86_64 Solution 2: do not install alsa-plugins-pulse-1.2.6-1.1.x86_64 -> Tells us that patterns-microos-desktop-common.spec has a "Obsoletes: alsa-plugins-pulse < 1.3" line. 3. Asking for forward resolution again. This gives us now a minified view of the exhibited problem: === Observed === # zypper -R /test in --no-recommends pipewire-pulseaudio Loading repository data... Reading installed packages... Resolving package dependencies... Problem: the installed pulseaudio-15.0-7.1.x86_64 conflicts with 'pulseaudio-daemon' provided by the to be installed pipewire-pulseaudio-0.3.42-1.1.x86_64 Solution 1: deinstallation of pulseaudio-15.0-7.1.x86_64 Solution 2: do not install pipewire-pulseaudio-0.3.42-1.1.x86_64 Choose from above solutions by number or cancel [1/2/c/d/?] (c): 1 Resolving dependencies... Resolving package dependencies... The following 2 NEW packages are going to be installed: patterns-microos-desktop-common pipewire-pulseaudio The following NEW pattern is going to be installed: microos_desktop_common The following 2 packages are going to be REMOVED: alsa-plugins-pulse pulseaudio 2 new packages to install, 2 to remove. Overall download size: 164.5 KiB. Already cached: 0 B. After the operation, 3.9 MiB will be freed. === Expected to see === # zypper -R /test al patterns-microos-desktop-common Specified lock has been successfully added. # zypper -R /test in --no-recommends pipewire-pulseaudio Loading repository data... Reading installed packages... Resolving package dependencies... Problem: the installed pulseaudio-15.0-7.1.x86_64 conflicts with 'pulseaudio-daemon' provided by the to be installed pipewire-pulseaudio-0.3.42-1.1.x86_64 Solution 1: deinstallation of pulseaudio-15.0-7.1.x86_64 Solution 2: do not install pipewire-pulseaudio-0.3.42-1.1.x86_64 Choose from above solutions by number or cancel [1/2/c/d/?] (c): 1 Resolving dependencies... Resolving package dependencies... Problem: the installed alsa-plugins-pulse-1.2.6-1.1.x86_64 requires 'pulseaudio', but this requirement cannot be provided Solution 1: deinstallation of alsa-plugins-pulse-1.2.6-1.1.x86_64 Solution 2: remove lock to allow installation of patterns-microos-desktop-common-5.0-40.1.x86_64[oss] Solution 3: keep pulseaudio-15.0-7.1.x86_64 Solution 4: break alsa-plugins-pulse-1.2.6-1.1.x86_64 by ignoring some of its dependencies Choose from above solutions by number or cancel [1/2/3/4/c/d/?] (c): 1 Resolving dependencies... Resolving package dependencies... The following NEW package is going to be installed: pipewire-pulseaudio The following 2 packages are going to be REMOVED: alsa-plugins-pulse pulseaudio 1 new package to install, 2 to remove. Overall download size: 144.5 KiB. Already cached: 0 B. After the operation, 3.9 MiB will be freed. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1194264 http://bugzilla.opensuse.org/show_bug.cgi?id=1194264#c2 --- Comment #2 from Jan Engelhardt <jengelh@inai.de> --- cross-reference https://github.com/openSUSE/libzypp/issues/370 -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1194264 http://bugzilla.opensuse.org/show_bug.cgi?id=1194264#c3 Michael Andres <ma@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jengelh@inai.de Flags| |needinfo?(jengelh@inai.de) --- Comment #3 from Michael Andres <ma@suse.com> --- Please provide a solver testcase (--debug-solver):
zypper -R /test in --debug-solver --no-recommends pipewire-pulseaudio
Then pack the testcase directory (zypper tells) together with the/var/log/zypper.log and attach it to the bugreport. --- In case the testcase exceeds the 10MB limit for bugzilla uploads, you can use 'split' to divide the file into smaller pieces: cd /tmp split -b 10M --additional-suffix=-zypper-testcase.bz2 zypper-testcase.bz2 The created pieces will be named: xaa-zypper-testcase.bz2 xab-zypper-testcase.bz2 xac-... -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1194264 http://bugzilla.opensuse.org/show_bug.cgi?id=1194264#c4 --- Comment #4 from Jan Engelhardt <jengelh@inai.de> --- You did see attachment 854917 that was already posted together with comment #0, right? -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1194264 http://bugzilla.opensuse.org/show_bug.cgi?id=1194264#c5 Michael Andres <ma@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Flags|needinfo?(jengelh@inai.de) | --- Comment #5 from Michael Andres <ma@suse.com> --- No, I did not. Sorry. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1194264 http://bugzilla.opensuse.org/show_bug.cgi?id=1194264#c6 Michael Andres <ma@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mls@suse.com Flags| |needinfo?(mls@suse.com) --- Comment #6 from Michael Andres <ma@suse.com> --- @MLS: What do you think from the solvers POV? Jan' Summary from github: - alsa-plugins-pulse has a dependency on pulseaudio. - user requests installation of pipewire-pulseaudio, which has a 'Conflicts: pulseaudio` - alsa-plugins-pulse, pulseaudio has to be thrown out for any solution (other than the "Do nothing" solution) - zypp notices that patterns-microos-desktop-common.spec has a 'Obsoletes: alsa-plugins-pulse < 1.3' and thus seems to prefer selecting a solution which installs patterns-microos-desktop-common over a solution which does not install that package. IMO patterns-microos-desktop-common abuses the Obsoletes (should be Conflict). Though I see that it is tempting for the patterns-packages to use obsoletes for cleaning up. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1194264 http://bugzilla.opensuse.org/show_bug.cgi?id=1194264#c7 Jan Engelhardt <jengelh@inai.de> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rbrown@suse.com --- Comment #7 from Jan Engelhardt <jengelh@inai.de> --- If, as you say on github, Obsoletes is the magic keyword to elicit a replacement (rather than Obsoletes+Provides), then I would currently conclude that microos.spec should not have an Obsoletes tag, but a Conflicts tag, on alsa-plugins-pulse, because pulse is still available as an installation candidate in openSUSE:Factory and thus not obsolete. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1194264 http://bugzilla.opensuse.org/show_bug.cgi?id=1194264#c8 Michael Schr�der <mls@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Flags|needinfo?(mls@suse.com) | --- Comment #8 from Michael Schr�der <mls@suse.com> --- How can a pattern package obsolete a real package? That's obviously wrong. A conflict is also highly suspicious... -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1194264 http://bugzilla.opensuse.org/show_bug.cgi?id=1194264#c9 Michael Andres <ma@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|libzypp |Patterns Assignee|zypp-maintainers@suse.de |dimstar@opensuse.org --- Comment #9 from Michael Andres <ma@suse.com> --- Forwarding it to the pattern maintainers. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1194264 Michael Andres <ma@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |zypp-maintainers@suse.de -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1194264 Dominique Leuenberger <dimstar@opensuse.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|dimstar@opensuse.org |rbrown@suse.com -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1194264 http://bugzilla.opensuse.org/show_bug.cgi?id=1194264#c10 --- Comment #10 from Jan Engelhardt <jengelh@inai.de> ---
How can a pattern package obsolete a real package?
That would mean zypp treats pattern packages as real packages ;-) -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1194264 http://bugzilla.opensuse.org/show_bug.cgi?id=1194264#c11 --- Comment #11 from Michael Andres <ma@suse.com> --- (In reply to Jan Engelhardt from comment #10)
That would mean zypp treats pattern packages as real packages ;-)
Of course, because they are real .rpm packages. They are built, solved and installed like any other .rpm package. A 'pattern:microos_desktop_common` e.g is just an artificial view provided by zypp on behalf of the task package patterns-microos-desktop-common.rpm. The result of 'rpm -Uvh patterns-microos-desktop-common.rpm +all_dependencies' and 'zypper in pattern::microos_desktop_common' is basically the same. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1194264 http://bugzilla.opensuse.org/show_bug.cgi?id=1194264#c26 --- Comment #26 from Jan Engelhardt <jengelh@inai.de> ---
But Tumbleweed users must not see this package.
Mh. If zypper sees it, users see it.
Provides: libsolv-self-destruct-pkg()
Or maybe Provides: weakremover(%name) Then, because weakremover(%name) is available, and %name (the transitional package) does not have anything requiring it, the transitional package would lead to its own weakremoval one dup later. Not as good as self-destruct-pkg(), but a thought nevertheless.. -- You are receiving this mail because: You are on the CC list for the bug.
participants (1)
-
bugzilla_noreply@suse.com