This wiki was updated to MediaWiki 1.37. If you notice any issues, please report them to admin[at]

openSUSE:Libzypp plugins

Jump to: navigation, search

Plugins concept

ZYpp allows to hook and extend some functionality by adding scripts in the plugins location


Depending on the plugin type, they may need to communicate with libzypp via a protocol. This protocol is based on STOMP (Streaming Text Orientated Messaging Protocol).

Service Plugins

See this blog post]

For now, service plugins concept is that you call them and they return a repo list.

  • Question:* Use the protocol here too, and return the repo list in the body?

Url resolver plugins

Url resolver plugins convert urls of scheme "plugin" into the output of the plugin named $name using the protocol. Thanks to the protocol, each header returned is also added as HTTP headers. The current protocol sequence is:

ZYpp sees a url of the format:


And plugin named foo is executed and called with the following protocol:


The plugin answers:


And this url is used instead.


You have a repository with url:


The script looks which distribution you have installed, and via SLP finds the right repositories in the lan and selects the update one and returns it url. But in addition, it adds a header with the update status that can be collected on the server side.

This type of plugin can be combined with service plugins, because a local service could return a list of repos like this:

  name=Distribution repository
  name=Update repository

In this example, the service plugin could have inmediately resolved the urls and returned

  name=Distribution repository

But the url resolver allows also to add headers to the request.