Michael Andres changed bug 1214135
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

Comment # 16 on bug 1214135 from Michael Andres
@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.


You are receiving this mail because: