What | Removed | Added |
---|---|---|
Summary | Installed opensuse-repos -- Now, zypper dup Tries To Add Repo That Exists | (Installed opensuse-repos -- Now, zypper dup Tries To Add Repo That Exists) |
Component | libzypp | YaST2 |
QA Contact | qa-bugs@suse.de | jsrain@suse.com |
@yast-maintainers: PID 4529 in the attached y2log-0 shows the issue. This is the openSUSE:repo-oss repo managed by `service: openSUSE` as read by libzypp from /etc/zypp/repos.d/openSUSE:repo-oss.repo: > [zypp] RepoFileReader.cc(repositories_in_stream):217 -------------------------------------- > [zypp] RepoFileReader.cc(repositories_in_stream):217 - alias : openSUSE:repo-oss > [zypp] RepoFileReader.cc(repositories_in_stream):217 - name : repo-oss > [zypp] RepoFileReader.cc(repositories_in_stream):217 - enabled : 1 > [zypp] RepoFileReader.cc(repositories_in_stream):217 - autorefresh : 1 > [zypp] RepoFileReader.cc(repositories_in_stream):217 - url : http://cdn.opensuse.org/tumbleweed//repo/oss > [zypp::media] RepoInfo.cc(probeCache):65 Probed cached type NONE at > [zypp] RepoFileReader.cc(repositories_in_stream):217 - type : NONE > [zypp] RepoFileReader.cc(repositories_in_stream):217 - priority : 99 > [zypp] RepoFileReader.cc(repositories_in_stream):217 - gpgcheck : D(Y) repoD(Y)* sig? pkgD(Y)* > [zypp] RepoFileReader.cc(repositories_in_stream):217 - service : openSUSE > [zypp] RepoFileReader.cc(repositories_in_stream):217 - filePath: /etc/zypp/repos.d/openSUSE:repo-oss.repo This seems to be the data YAST wants to write back after having changed the URL (http->https): > [Pkg] packager/repositories_include.rb:176 Pkg Builtin called: RepositoryAdd > [Pkg] Source_Create.cc(RepositoryAdd):441 Skipping alias check (check_alias == false) > [Pkg] Source_Create.cc(RepositoryAdd):504 Adding repository: > [Pkg] Source_Create.cc(RepositoryAdd):505 -------------------------------------- > [Pkg] Source_Create.cc(RepositoryAdd):505 - alias : openSUSE:repo-oss > [Pkg] Source_Create.cc(RepositoryAdd):505 - name : repo-oss > [Pkg] Source_Create.cc(RepositoryAdd):505 - enabled : 1 > [Pkg] Source_Create.cc(RepositoryAdd):505 - autorefresh : 1 > [Pkg] Source_Create.cc(RepositoryAdd):505 - url : https://cdn.opensuse.org/tumbleweed//repo/oss > [Pkg] Source_Create.cc(RepositoryAdd):505 - path : / > [Pkg] Source_Create.cc(RepositoryAdd):505 - type : rpm-md > [Pkg] Source_Create.cc(RepositoryAdd):505 - priority : 99 > [Pkg] Source_Create.cc(RepositoryAdd):505 - gpgcheck : D(Y) repoD(Y)* sigY pkgD(N) > [Ruby] packager/repositories_include.rb(block in createSourceImpl):181 Added repository: 12: {"enabled"=>true, "autorefresh"=>true, "raw_name"=>"repo-oss", "prod_dir"=>"/", "alias"=>"openSUSE:repo-oss", "base_urls"=>["https://cdn.opensuse.org/tumbleweed//repo/oss"], "type"=>"YUM", "check_alias"=>false} > [Pkg] Source_Create.cc(RepositoryAdd):505 - keeppackages: 0 > [Pkg] Source_Create.cc(RepositoryAdd):505 - metadataPath: /var/cache/zypp/raw/openSUSE:repo-oss > [Pkg] Source_Create.cc(RepositoryAdd):505 - packagesPath: /var/cache/zypp/packages/openSUSE:repo-oss > ... > [Pkg] Source_Save.cc(SourceSaveAll):162 Removing metadata for source 'openSUSE:repo-oss'... > [Pkg] Source_Save.cc(SourceSaveAll):177 Removing repository 'openSUSE:repo-oss'... > [Pkg] Source_Save.cc(SourceSaveAll):220 Adding repository 'openSUSE:repo-oss'... Apparently YAST does not amend the original RepoInfo (or a copy), but tries to create a new one based on incompletely extracted data (e.g. the missing service,filePath). Removing and re-adding the repo (rather than modifying it) would be no problem, IF you would not lose RepoInfo data. Your current workflow easily fails whenever zypp extends the RepoInfo. IN GENERAL: I'm not sure if YAST should support modification of service repos at all (except for enable/disable). At least a hint that changes may vanish on the next service refresh would be IMO appropriate.