zypp-closure is a small helper tool making use of libzypp and the metadata of product repositories.

The idea is to generate a dependency closure for a package or list of packages based on repositories metadata.

E.g. think about having a list of package you need to have in your minimal VM. Make sure you have a complete list package without doing an initial test install but doing it on your own system just based on metadata.

zypp-closure will first run with a list of repositories to setup a solving environment for you, in the next step you can run a check of a single package or a list of packages.

 zypp-closure  -u http://download.opensuse.org/tumbleweed/repo/non-oss/    -u http://download.opensuse.org/tumbleweed/repo/oss/ 

 zypp-closure bash

There are some open challenges:

  • meta requirements can be fulfilled by more packages, in such a case the options typically triggering a different set of additional requirements (e.g requirement for SMTPD which could be fulfilled by sendmail and postfix)
  • if a meta requirement is already solved within your package list you just might want to with this and not follow the other options as well

In Hackweek 17 idea is extend zypp-closure by:

  • if a meta requirement can be addressed within the packages list, do not look for further packages providing the dependency
  • enable use of "blacklist" or setting single package "taboo" (either full blacklist file or use a character like "!" or "-" to mark unwanted packages
  • command line switch to enable/disable pulling recommends/suggests in
  • optional - command line switch for "interactive" mode asking which possible meta requirements to use interactively
    • can be solved also none-interactively by finding out about meta requirements and adding the chossen pack to the package list
  • add some documentation and examples

Looking for hackers with the skills:

Nothing? Add some keywords!

This project is part of:

Hack Week 17


  • about 6 years ago: dsterba liked this project.
  • about 6 years ago: mlandres joined this project.
  • about 6 years ago: xgonzo liked this project.
  • about 6 years ago: xgonzo started this project.
  • about 6 years ago: xgonzo originated this project.

  • Comments

    • Pharaoh_Atem
      about 6 years ago by Pharaoh_Atem | Reply

      You might want to look at the dnf repoclosure command that's in the dnf-plugins-core package (in openSUSE Leap 15.0 and Tumbleweed). It may help in identifying what you're looking to do.

    • mlandres
      almost 6 years ago by mlandres | Reply

      Changes released in zypp-closure-0.3

    • xgonzo
      almost 6 years ago by xgonzo | Reply

      Get newest version of zypp-closure packages at software.opensuse.org

    Similar Projects

    This project is one of its kind!