Many libabsl new packages in last dup v2

Hello! Almost a similar situation happened to me now, on the 20261018 snapshot sudo zypper ref && sudo zypper -vvv dup appeared this way It wants to install some new packages that i am not sure if they are accurate

What should i do? I don’t want to install them unless they are necessary, but they seem more like an error than a necessity to me.

 $ zypper lr -d
# | Alias                            | Name                                   | Enabled | GPG Check | Refresh | Keep | Priority | Type   | URI                                                      | Service
--+----------------------------------+----------------------------------------+---------+-----------+---------+------+----------+--------+----------------------------------------------------------+--------
1 | VLC                              | VLC                                    | Yes     | (r ) Yes  | Yes     | -    |   99     | rpm-md | https://download.videolan.org/SuSE/Tumbleweed/           | 
2 | download.opensuse.org-non-oss    | Main Repository (NON-OSS)              | Yes     | (r ) Yes  | Yes     | -    |   99     | rpm-md | http://download.opensuse.org/tumbleweed/repo/non-oss/    | 
3 | download.opensuse.org-oss        | Main Repository (OSS)                  | Yes     | (r ) Yes  | Yes     | -    |   99     | rpm-md | http://download.opensuse.org/tumbleweed/repo/oss/        | 
4 | download.opensuse.org-tumbleweed | Main Update Repository                 | Yes     | (r ) Yes  | Yes     | -    |   99     | rpm-md | http://download.opensuse.org/update/tumbleweed/          | 
5 | repo-debug                       | openSUSE-Tumbleweed-Debug              | No      | ----      | ----    | -    |   99     | N/A    | http://download.opensuse.org/debug/tumbleweed/repo/oss/  | 
6 | repo-openh264                    | Open H.264 Codec (openSUSE Tumbleweed) | Yes     | (r ) Yes  | Yes     | -    |   99     | rpm-md | http://codecs.opensuse.org/openh264/openSUSE_Tumbleweed  | 
7 | repo-source                      | openSUSE-Tumbleweed-Source             | No      | ----      | ----    | -    |   99     | N/A    | http://download.opensuse.org/source/tumbleweed/repo/oss/ |

Does zypper dup --no-recommends bring in those as well?
BTW, zypper ref is not needed before a zypper dup (unless you tweaked the standard zypper config of course).

Yes it does even with --no-recoomends flag.

$ sudo zypper dup --no-recommends
Loading repository data...
Reading installed packages...
Warning: You are about to do a distribution upgrade with all enabled repositories. Make sure these repositories are compatible before you continue. See 'man zypper' for more information about this command.
Computing distribution upgrade...

The following 231 packages are going to be upgraded:
  bluedevil6 dolphin dolphin-part dracut elisa gstreamer-plugins-good gwenview kate kate-plugins kde-cli-tools6 kf6-bluez-qt kf6-bluez-qt-imports kf6-kcmutils kf6-kcmutils-imports kf6-kcolorscheme kf6-kconfigwidgets kf6-kcoreaddons
  kf6-kcoreaddons-imports kf6-kdbusaddons kf6-kdbusaddons-tools kf6-kdeclarative-imports kf6-kglobalaccel kf6-kguiaddons kf6-kguiaddons-imports kf6-kiconthemes kf6-kiconthemes-imports kf6-kio kf6-kirigami kf6-kirigami-imports
  kf6-kjobwidgets kf6-knewstuff kf6-knewstuff-imports kf6-knotifications kf6-knotifications-imports kf6-kquickcharts kf6-kstatusnotifieritem kf6-kunitconversion kf6-kwidgetsaddons kf6-kwindowsystem kf6-kwindowsystem-imports kf6-kxmlgui
  kf6-purpose kf6-purpose-services kf6-qqc2-desktop-style kinfocenter6 kirigami-addons6 kquickimageeditor6-imports kscreen6 ksysguardsystemstats6-data kwayland6 kwin6 layer-shell-qt6 libdolphinvcs6 libffado2 libfreetype6 libgbm1
  libKF6BluezQt6 libKF6CalendarEvents6 libKF6ColorScheme6 libKF6ConfigWidgets6 libKF6CoreAddons6 libKF6DBusAddons6 libKF6GlobalAccel6 libKF6GuiAddons6 libKF6IconThemes6 libKF6IconWidgets6 libKF6JobWidgets6 libKF6KCMUtils6
  libKF6KCMUtilsCore6 libKF6KCMUtilsQuick6 libKF6KIO6 libKF6NewStuffCore6 libKF6NewStuffWidgets6 libKF6Notifications6 libKF6Purpose6 libKF6PurposeWidgets6 libKF6StatusNotifierItem6 libKF6UnitConversion6 libKF6WidgetsAddons6
  libKF6WindowSystem6 libKF6XmlGui6 libKirigamiAddonsComponents6 libKirigamiAddonsStatefulApp6 libKirigamiPlatform6 libKQuickImageEditor1 libksysguard6 libksysguard6-imports libKSysGuardSystemStats2 libKWaylandClient6 libkwin6
  libLayerShellQtInterface6 libpipewire-0_3-0 libQCoro6DBus0 libQt6Concurrent6 libQt6Core5Compat6 libQt6Core6 libQt6DBus6 libQt6Gui6 libQt6HunspellInputMethod6 libQt6LabsAnimation6 libQt6LabsFolderListModel6 libQt6LabsPlatform6
  libQt6LabsQmlModels6 libQt6LabsSettings6 libQt6LabsSharedImage6 libQt6LabsStyleKit6 libQt6LabsSynchronizer6 libQt6LabsWavefrontMesh6 libQt6Location6 libQt6Multimedia6 libQt6MultimediaQuick6 libQt6MultimediaWidgets6 libQt6Network6
  libQt6OpenGL6 libQt6OpenGLWidgets6 libQt6Positioning6 libQt6PositioningQuick6 libQt6PrintSupport6 libQt6Qml6 libQt6QmlCompiler6 libQt6QmlCore6 libQt6QmlLocalStorage6 libQt6QmlMeta6 libQt6QmlModels6 libQt6QmlNetwork6
  libQt6QmlWorkerScript6 libQt6QmlXmlListModel6 libQt6Quick3D6 libQt6Quick3DRuntimeRender6 libQt6Quick3DSpatialAudio6 libQt6Quick3DUtils6 libQt6Quick6 libQt6QuickControls2-6 libQt6QuickControls2Impl6 libQt6QuickDialogs2-6
  libQt6QuickDialogs2QuickImpl6 libQt6QuickDialogs2Utils6 libQt6QuickEffects6 libQt6QuickLayouts6 libQt6QuickParticles6 libQt6QuickShapes6 libQt6QuickTemplates2-6 libQt6QuickTest6 libQt6QuickVectorImage6 libQt6QuickWidgets6
  libQt6ShaderTools6 libQt6SpatialAudio6 libQt6Sql6 libQt6Svg6 libQt6SvgWidgets6 libQt6Test6 libQt6TextToSpeech6 libQt6UiTools6 libQt6VirtualKeyboard6 libQt6VirtualKeyboardQml6 libQt6WaylandClient6 libQt6WebChannel6 libQt6WebChannelQuick6
  libQt6WebEngineCore6 libQt6WebEngineQuick6 libQt6WebEngineWidgets6 libQt6Widgets6 libQt6WlShellIntegration6 libQt6Xml6 libtesseract5 libvidstab1_2 libvulkan_intel libvulkan_lvp libwtmpdb0 libX11-6 libX11-data libX11-xcb1 libXi6 libXpm4
  libXrender1 libXtst6 libzix-0-0 Mesa Mesa-dri Mesa-libEGL1 Mesa-libGL1 Mesa-vulkan-device-select milou6 openSUSE-release openSUSE-release-ftp pipewire pipewire-modules-0_3 pipewire-pulseaudio pipewire-spa-plugins-0_2 pipewire-spa-tools
  pipewire-tools plasma6-desktop plasma6-integration-plugin plasma6-pa plasma6-session plasma6-systemmonitor plasma6-workspace plasma6-workspace-libs qqc2-breeze-style6 qt6-base-common-devel qt6-declarative-imports qt6-declarative-tools
  qt6-imageformats qt6-location qt6-multimedia qt6-multimedia-imports qt6-networkinformation-connman qt6-networkinformation-glib qt6-networkinformation-nm qt6-network-tls qt6-positioning-imports qt6-printsupport-cups qt6-qt5compat-imports
  qt6-sql-sqlite qt6-texttospeech qt6-tools-qdbus qt6-virtualkeyboard qt6-virtualkeyboard-imports qt6-wayland qt6-webchannel-imports qt6-webengine qt6-webengine-imports qtdeclarative-imports-provides-qt6 sof-firmware spectacle
  systemsettings6 tesseract-ocr-common tesseract-ocr-traineddata-eng union6 wtmpdb xdg-desktop-portal-kde6

The following product is going to be upgraded:
  openSUSE Tumbleweed  20261017-0 -> 20261018-0

The following 41 NEW packages are going to be installed:
  kf6-kcoreaddons-lang libabsl_base2608_0_0 libabsl_city2608_0_0 libabsl_debugging_internal2608_0_0 libabsl_decode_rust_punycode2608_0_0 libabsl_demangle_internal2608_0_0 libabsl_demangle_rust2608_0_0 libabsl_examine_stack2608_0_0
  libabsl_hash2608_0_0 libabsl_hashtablez_sampler2608_0_0 libabsl_int128-2608_0_0 libabsl_kernel_timeout_internal2608_0_0 libabsl_log_globals2608_0_0 libabsl_log_internal_format2608_0_0 libabsl_log_internal_globals2608_0_0
  libabsl_log_internal_log_sink_set2608_0_0 libabsl_log_internal_message2608_0_0 libabsl_log_internal_nullguard2608_0_0 libabsl_log_internal_proto2608_0_0 libabsl_log_internal_structured_proto2608_0_0 libabsl_log_sink2608_0_0
  libabsl_malloc_internal2608_0_0 libabsl_raw_hash_set2608_0_0 libabsl_raw_logging_internal2608_0_0 libabsl_spinlock_wait2608_0_0 libabsl_stacktrace2608_0_0 libabsl_strerror2608_0_0 libabsl_str_format_internal2608_0_0
  libabsl_strings2608_0_0 libabsl_strings_internal2608_0_0 libabsl_symbolize2608_0_0 libabsl_synchronization2608_0_0 libabsl_throw_delegate2608_0_0 libabsl_time2608_0_0 libabsl_time_zone2608_0_0 libabsl_tracing_internal2608_0_0
  libabsl_utf8_for_code_point2608_0_0 libKF6JobWidgets6-lang libKF6WidgetsAddons6-lang libQt6QmlDesignSupport6 libre2-11

231 packages to upgrade, 41 new.

Package download size:   242.4 MiB

Package install size change:
              |     798.5 MiB  required by packages that will be installed
    14.8 MiB  |  -  783.7 MiB  released by packages that will be removed

Backend:  classic_rpmtrans
Continue? [y/n/v/...? shows all options] (y):

Related to zypper ref, yes, I have touched standard zypper conf to stop recommends somehow.

Thank you for writing

Yes, with the Tumbleweed snapshot 20261018 there were a couple of new packages which were installed due to a couple of new dependencies – I took a look at the Zypper log and the systemd Journal but couldn’t quickly find the relevant entries …

  • The new packages are accurate …
 > kinfo
Operating System: openSUSE Tumbleweed 20261018
KDE Plasma Version: 6.8.0
KDE Frameworks Version: 6.31.0
Qt Version: 6.12.0
Kernel Version: 7.2.11-1-default (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 8600G w/ Radeon 760M Graphics
Memory: 34 GB of RAM (32.8 GB usable)
Graphics Processor: AMD Radeon 760M Graphics
 >

Hi! Do you know the parent(s) of those new libs?

AFAICS, all those packages are in the openSUSE:repo-oss repository → http://cdn.opensuse.org/tumbleweed/repo/oss

1 Like

Alright, I gave Y and continued.
Apparently they became an integral part of qt6-* setups.

No. The most likely explanation is the splitting of libabsl into separate packages. Reason I think so is that Leap has only one libabsl package, TW now has 99 packages.

1 Like

qt6-webengine has dependencies on those after a brief checkup i conducted.
I would prefer to sum it up in one package rather than fragmented one.

I’ve already installed them, it doesn’t matter anymore. Thank you for your clarification.

And taking a look at the upstream information about Abseil → <https://abseil.io/>

Abseil is an open source collection of C++ libraries drawn from the most fundamental pieces of Google’s internal codebase. These libraries are the nuts-and-bolts that underpin almost everything Google runs. Bits and pieces of these APIs are embedded in most of our open source projects, and Abseil aims to bring them together into one comprehensive project. Abseil encompasses the most basic building blocks of Google’s codebase: code that is production-tested and will be fully maintained for years to come.

There are a few main reasons we recommend Abseil as your first choice for utility code when starting a new C++ project:

  • Compatibility with current and future C++ standards, and planned evolution over time
  • Compatibility with Google OSS projects - these are the foundational types for things like Protocol Buffers, gRPC, and TensorFlow
  • Upgrade Support - make it easy to live at head
  • Production Experience - These are the interfaces that we are using in Google production
  • Interest in a different set of design priorities than the C++ standard

It seems that, Tumbleweed has split the Abseil collection of C++ libraries into a scheme of one package per library – instead of offering the library collection as a single package.

  • Exactly why it has been decided to do this – I have absolutely no idea → on a quick search, I’ve found nothing in the RPM Change Log which could shed some light on the reason why … :imp:
1 Like

@bmwiedemann can probably provide an answer, I suspect since it’s developed for MicroOS that it was split to keep space down for the likes of embedded systems…

For that particular Use Case, the change is understandable but, for the rest of the world???

In simple words: to hold the maintenance effort low. That means, if you ship a package divided in 10 subpackages for one distribution flavor, you ship it the same way for another flavor. And not x packages for flavour a, y packages for flavour b and z packages for flavour c.

1 Like

And, I’ve done a sanity check →

  • Currently this system has 56 Abseil library packages installed – including four 32-bit variants.
  • Attempted to “remove --clean-deps’ a few of the installed Abseil packages, which resulted in large lists of dependent packages (sometimes more than 200) which would also be removed.

Therefore, it seems that, the current list of installed Abseil library packages can not be reduced …

At the expense of further bloating /var/log/zypper.log with all those additional transactions, besides the additional zypper/rpm transaction overhead, right? :stuck_out_tongue: I see two parts to maintenance, output (package production, by a noble few), and input (updating, by the multitude).

And with what effect on mirrors, with gargantuan numbers of packages in a single directory, compared to numerous (? other + all the many Debian-based) other distros apparently taken aback long ago by huge directories and subdividing their repos into alphanumerics?

I wonder @bmwiedemann’s take on this?

I, like @hui I guess, prefer packager reasoning over user opinions. And I don’t have any_whatever to give about whether my beloved system is complete with 800 or 5000 packages. As long as it does what I want, the number of packages is totally irrelevant.

1 Like

@mrmazda:

In general, you’re correct but,

  • In this particular we’re talking about a collection of C++ libraries.
    And, programming language libraries tend to be stable – apart from changes made to adapt to changes in the related programming language – which don’t happen too often anyway, for the simple reason that, if a language changes too often, the programming community will either revolt, go crazy or, reject the affected language … :smiling_imp:

Therefore, I suspect that, the collection of C++ lilbraries with the name “Abseil” will be fairly stable and therefore, updates will tend to be quite rare … :roll_eyes: