https://bugzilla.novell.com/show_bug.cgi?id=866257 https://bugzilla.novell.com/show_bug.cgi?id=866257#c6 --- Comment #6 from Michael Andres <ma@suse.com> 2014-09-11 16:32:40 CEST ---
Would that make things easier?
I try to explain...
As for 'temporary' repositories: I guess they should not be a problem: if it refreshes, we 'install' the appdata (which likely won't be found in the flat repo) and, as it's a temp repo, we delete it again on repo removal.
- Temp repos are never added, thus never removed, just refreshed - There are zypper commands which 'silently' scan through disabled repos (i.e. refresh them) to look for specific packages (e.g debuginfo packages) The coupling between system repository actions (add/remove/enable/disable/rename) and metadata download (refresh) is quite loose. The repo data download (refresh) in libzypp is using a repo description (URLs, a few settings, a bunch of cache directories consider). The origin of such a description is basically unknown to the downloader. It just tries to provide a consistent set of metadata based on the settings in the description. The purpose these data serve is also unknown. The 'system repos' are serialized repo descriptions. Repository actions (add/remove/enable/disable/rename) create/remove/modify these serialized descriptions. But you may also use cp, vi and rm. libzypp offers the 'system repos' descriptions to the application. But it's the application that picks/creates descriptions and passes them to the downloader according to it's needs. 'zypper --no-refresh' won't refresh any repo 'zypper --plus-repo' will refresh using a self created repo description 'zypper --plus-content' will also refresh disabled system repos If libzypp indicates a 'repo add' you should use the repo, but at that time only the serialized description exists. Your app won't get any data from the repo. However if libzypp indicates a 'refresh', it's not necessarily a repo that you want to use in your application. Can't you simply poll the list of currently active system repos and their current metadata path? ===[requires libzypp-bindings]=== #! /usr/bin/python import zypp for repo in zypp.RepoManager().knownRepositories(): if not repo.enabled(): continue print '%-40s %s' % ( repo.alias(), repo.metadataPath() ) ======== - not imported: import if metadata are already present (else e.g 'zypper ref') - imported: update (e.g. if metadata dir is newer than last import) - imported but not listed -> delete import (repo deleted/disabed). -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.