Bug 1226956 - 15.6 - some update renders all repos into .rpmsave state - all disabled? (nvidia repos update from today?)
Summary: 15.6 - some update renders all repos into .rpmsave state - all disabled? (nvi...
Status: RESOLVED INVALID
Alias: None
Product: openSUSE Distribution
Classification: openSUSE
Component: libzypp (show other bugs)
Version: Leap 15.6
Hardware: x86-64 Other
: P5 - None : Major (vote)
Target Milestone: ---
Assignee: E-mail List
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-06-25 12:49 UTC by andreas bittner
Modified: 2024-06-25 14:36 UTC (History)
1 user (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description andreas bittner 2024-06-25 12:49:41 UTC
15.6 normally working simple machine.

today, using yast on command line, ncurses/textmode, I wanted to simply exchange openjdk (java runtime) 11 for 21 version. i unselected the two (11 and 11 headless) packages inside the yast2 softwaremanagement sub applet (searching for "java-"  as package name

it automatically selected the java-21.... (21 and 21 headless) packages nicely. advancing forward inside yast brings a summary wind that it wanted to add some mozill-nss something and it brought up an NVIDIA-repos something package, this machine has some nvidia based gfx card but I only run very simple totally open source basic stuff so never dealt with nvidia drivers or so so far. that was also not my task and goal here today.

the yast finished and exited back to bash.

another zypper ref and similar commands after that, brought me odd messages until I read them properly and I figured, that I have no more (enabled) repos any more all of a sudden.

the /etc/zypp/repos.d/   directory shows me all the normal 15.6 very default repo files in there are all re/named with the .rpmsave suffix.

whats happening? :(

---------

zypper lr -d
Warning: No repositories defined.

-------

rpm -qi openSUSE-repos-Leap-NVIDIA --changelog | more
Name        : openSUSE-repos-Leap-NVIDIA
Version     : 20240516.5431918
Release     : lp156.1.2
Architecture: x86_64
Install Date: Tue 25 Jun 2024 02:39:36 PM CEST
Group       : System/Management
Size        : 330
License     : MIT
Signature   : RSA/SHA512, Tue 28 May 2024 09:04:57 AM CEST, Key ID 35a2f86e29b700a4
Source RPM  : openSUSE-repos-Leap-20240516.5431918-lp156.1.2.src.rpm
Build Date  : Tue 28 May 2024 09:04:55 AM CEST
Build Host  : i01-ch2d

---------

/etc/zypp/repos.d> ls -la
total 48
drwxr-xr-x  2 root root 4096 Jun 25 14:39 .
drwxr-xr-x 11 root root 4096 Jun 19 22:06 ..
-rw-r--r--  1 root root  254 Jun 20 07:51 repo-backports-debug-update.repo.rpmsave
-rw-r--r--  1 root root  199 Jun  4  2021 repo-backports-update.repo.rpmnew
-rw-r--r--  1 root root  188 Sep 11  2021 repo-backports-update.repo.rpmsave
-rw-r--r--  1 root root  178 Aug 24  2020 repo-non-oss.repo.rpmsave
-rw-r--r--  1 root root  167 Aug 24  2020 repo-oss.repo.rpmsave
-rw-r--r--  1 root root  234 Jun 20 07:51 repo-sle-debug-update.repo.rpmsave
-rw-r--r--  1 root root  208 Jun  4  2021 repo-sle-update.repo.rpmnew
-rw-r--r--  1 root root  197 Sep 11  2021 repo-sle-update.repo.rpmsave
-rw-r--r--  1 root root  183 Aug 24  2020 repo-update-non-oss.repo.rpmsave
-rw-r--r--  1 root root  165 Aug 24  2020 repo-update.repo.rpmsave
-----------

very odd :(
Comment 1 andreas bittner 2024-06-25 13:41:38 UTC
apparently yet another package came in during this situation I didnt notice:

-------

rpm -qi openSUSE-repos-Leap --changelog | more
Name        : openSUSE-repos-Leap
Version     : 20240516.5431918
Release     : lp156.1.2
Architecture: x86_64
Install Date: Tue Jun 25 14:39:36 2024
Group       : System/Management
Size        : 2576
License     : MIT
Signature   : RSA/SHA512, Tue May 28 09:04:57 2024, Key ID 35a2f86e29b700a4
Source RPM  : openSUSE-repos-Leap-20240516.5431918-lp156.1.2.src.rpm
Build Date  : Tue May 28 09:04:55 2024

---------

and /var/log/zypp/history
shows that this package renamed all these repos during install time?

---------

# 2024-06-25 14:39:36 openSUSE-repos-Leap-20240516.5431918-lp156.1.2.x86_64.rpm installed ok
# Additional rpm output:
# Content of repo-backports-debug-update.repo will be newly managed by zypp-services.
# Storing old copy as {_sysconfdir}/zypp/repos.d/repo-backports-debug-update.repo.rpmsave
# Content of repo-oss.repo will be newly managed by zypp-services.
# Storing old copy as {_sysconfdir}/zypp/repos.d/repo-oss.repo.rpmsave
# Content of repo-backports-update.repo will be newly managed by zypp-services.
# Storing old copy as {_sysconfdir}/zypp/repos.d/repo-backports-update.repo.rpmsave
# Content of repo-sle-debug-update.repo will be newly managed by zypp-services.
# Storing old copy as {_sysconfdir}/zypp/repos.d/repo-sle-debug-update.repo.rpmsave
# Content of repo-sle-update.repo will be newly managed by zypp-services.
# Storing old copy as {_sysconfdir}/zypp/repos.d/repo-sle-update.repo.rpmsave
# Content of repo-update.repo will be newly managed by zypp-services.
# Storing old copy as {_sysconfdir}/zypp/repos.d/repo-update.repo.rpmsave
# Content of repo-update-non-oss.repo will be newly managed by zypp-services.
# Storing old copy as {_sysconfdir}/zypp/repos.d/repo-update-non-oss.repo.rpmsave
# Content of repo-non-oss.repo will be newly managed by zypp-services.
# Storing old copy as {_sysconfdir}/zypp/repos.d/repo-non-oss.repo.rpmsave
# Adding service 'openSUSE'...
# Service 'openSUSE' has been successfully added.
#
# URI         : dir:/usr/share/zypp/local/service/openSUSE
# Enabled     : Yes
# Autorefresh : Yes
#
#
2024-06-25 14:39:36|install|openSUSE-repos-Leap|20240516.5431918-lp156.1.2|x86_64|4984:ruby.ruby2.5|repo-oss|b9d62c499786da43e1f7417c5547a25aa195b
7b53b9f67eb34555ed9e957136a6137d458f3f8ea9182e034b6837d1d907313ab69f7de22d7630e3315543f6013|
Comment 2 andreas bittner 2024-06-25 13:45:17 UTC
maybe I am missing some important new features here? after revisiting yast software repositories sub tool again, it kind of works a lage number of repos that look like the default opensuse leap repos and I quit after that without saving anything and the /etc/zypp/repos.d/   directory now shows a number of new files all from right now and all .repo suffinx and apparently a/the default set of repos are being re-activated after this step on this 15.6 machine?

what am I missing here? :)
Comment 3 Michael Andres 2024-06-25 14:13:37 UTC
# Content of repo-oss.repo will be newly managed by zypp-services.

AFAIK the openSUSE-repos-* packages introduce a local Service.

A Service is a kind of remote repo control. The Service retrieves a repoindex.xml file (local and provided by the package in this case). This file describes the repos which should be present on the system and associated with the Service.

It looks like the package installed the Service and removed the individual repos which are now maintained by the service. But it forgot to refresh the Service, which is the action that translates the repoindex.xml into a set of repos.

> hobbes:~ (0)# zypper as /Local/Service opensSUSE
> Adding service 'opensSUSE'...
> hobbes:~ (0)# zypper ls -r
> #  | Alias                       | Name                                       | Enabled | GPG Check | Refresh | Type
> ---+-----------------------------+--------------------------------------------+---------+-----------+---------+---------
>  1 | opensSUSE                   | opensSUSE                                  | Yes     | ----      | Yes     | N/A
>  2 | KDE3                        | KDE3 (15.4)                                | No      | ----      | ----    | N/A

This is how it probably looks like on your system. 

> hobbes:~ (0)# zypper refs
> Refreshing service 'opensSUSE'.
> All services have been refreshed.

This command is missing. It will create the repos. 

> hobbes:~ (0)# zypper ls -r
> #  | Alias                       | Name                                       | Enabled | GPG Check | Refresh | Type
> ---+-----------------------------+--------------------------------------------+---------+-----------+---------+---------
>  1 | opensSUSE                   | opensSUSE                                  | Yes     | ----      | Yes     | ris
>  - | opensSUSE:debug-non-oss     | debug-non-oss (15.4)                       | No      | ----      | ----    | N/A
>  - | opensSUSE:debug-oss         | debug-oss (15.4)                           | No      | ----      | ----    | N/A
>    | opensSUSE:repo-non-oss      | repo-non-oss (15.4)                        | Yes     | ( p) Yes  | Yes     | N/A
>    | opensSUSE:repo-oss          | repo-oss (15.4)                            | Yes     | ( p) Yes  | Yes     | N/A
>  - | opensSUSE:source-non-oss    | source-non-oss (15.4)                      | No      | ----      | ----    | N/A
>  - | opensSUSE:source-oss        | source-oss (15.4)                          | No      | ----      | ----    | N/A
>    | opensSUSE:upadte-non-oss    | upadte-non-oss (15.4)                      | Yes     | ( p) Yes  | Yes     | N/A
>    | opensSUSE:update-oss        | update-oss (15.4)                          | Yes     | ( p) Yes  | Yes     | N/A
>  2 | KDE3                        | KDE3 (15.4)                                | No      | ----      | ----    | N/A

Lubos should know more about the openSUSE-repos-* packages
Comment 4 Michael Andres 2024-06-25 14:15:18 UTC
NOTE that the example uses my personal service in /Local/Service, not the packages one.
Comment 5 Lubos Kocman 2024-06-25 14:18:16 UTC
Hello Andreas

openSUSE-repos is an optional package on Leap 15.X and it does what you described.

See https://news.opensuse.org/2023/07/31/try-out-cdn-with-opensuse-repos/
and 
https://github.com/openSUSE/openSUSE-repos/blob/main/README.md

Lubos
Comment 6 Lubos Kocman 2024-06-25 14:19:12 UTC
Release package has a suggests openSUSE-repos-Leap did you perhaps install all suggested packages/updates?
Comment 7 andreas bittner 2024-06-25 14:28:10 UTC
thanks for all the infos, I have never come across this "SERVICE" stuff regarding repos and their handling and grouping into these service(s) before, thats what happened only today, and my only deed and goal was to go for a newer java21 coming from java11 that was all

all the rest was some automatic stuff triggered by the yast software handling module.

i was never aware of /usr/share/zypp/local/service/  and its contents and meaning so far.

i kind of did this same thing yesterday on a similar 15.6 machine and there it didnt bring in this NVIDIA nor this suse repo package stuff as far as I can tell as it didnt mess up the repos on that machine and render them inactive, otherwise I would have reported this bug yesterday already.

all the repos re-created now are named NVIDIA:  (one) and openSUSE:  (several) right now as created by this new package and mechanism.

Whenever I had installed a leap before, even fresh, the repos (files) had never been named this way, wanting to say, thats why I was never aware of this grouping mechanism and "SERVICE" stuff to begin with and to know where to look at.

this whole stuff was completely new to me. thanks.
Comment 8 Michael Andres 2024-06-25 14:31:50 UTC
(In reply to Lubos Kocman from comment #6)
> Release package has a suggests openSUSE-repos-Leap did you perhaps install
> all suggested packages/updates?

@Lubos - A "suggests" will not add any package. Either it is "recommended" or the package itself "supplements" (AKA reverse-recommends) something installed.
Comment 9 Michael Andres 2024-06-25 14:33:29 UTC
(In reply to andreas bittner from comment #7)
> all the repos re-created now are named NVIDIA:  (one) and openSUSE: 
> (several) right now as created by this new package and mechanism.

Yes, service repos are prefixed by the service name.
Comment 10 Michael Andres 2024-06-25 14:36:45 UTC
> %package NVIDIA
> Summary:        openSUSE NVIDIA repository definitions
> Requires:       openSUSE-repos-%{theme}
> Supplements:    modalias(pci:v000010DEd*sv*sd*bc03sc*i*)
> Provides:       openSUSE-repos-NVIDIA
> Conflicts:      otherproviders(openSUSE-repos-NVIDIA)

This probably explains it. The openSUSE-repos-NVIDIA has a supplements on the hardware's modalias. If the hardware is present, the package wants to be installed.