October 16, 2009

What is with rpm-metadata (createrepo) and yum on openSUSE?

Long time ago, I wrote about our interoperability efforts built around rpm-metadata format and first-class PackageKit support.

On the rpm-metadata side however, even if we depend a lot on these tools, the situation was far from ideal:

  • We need usually extensions to the rpm-metadata to support the features that make the openSUSE software management more powerful compared to other tools
  • We are in continuous talk with the yum team to make those extensions common so they can be standardized instead of staying in suseinfo/susedata.xml
  • Some of those extensions got implemented, in createrepo 0.9.x
  • We are stuck with createrepo 0.4.x plus a high stack of patches
  • createrepo 0.9.x requires a recent yum
  • yum on openSUSE is unmaintained, and not included in the distribution
  • openSUSE Build Service and other infrastructure depend on a proven createrepo (which means they depend on the custom patches)

This situation won’t sustain in the long term, so the following action plan was agreed between various stakeholders:

  • we will update yum and createrepo to the upstream latest versions, and maintain them in [the system:packagemanager] project
  • all patches except a couple were discarded, so don’t expect those versions to work flawlessly for now, we will reevaluate them one by one, upstream them or discard them
  • openSUSE infrastructure will freeze their production version from our project once the newer versions work, instead of maintaining a fork
  • as we don’t want to include yum in the default package selection, but createrepo depends on it, yum was split in yum and yum-common (libraries).
  • yum is still available in the system:packagemanager, and will be kept up-to-date. We are interested in competition, as it makes the ZYpp team work harder
  • I will improve enhancerepo (for custom tag extensions generation) and include it in this project in a near future
  • Most patches in the current packages were one liner fixes where the developer did not spent 5 minutes to upstream it. This attitude created a uncomfortable patch mess. We will change this by upstreaming fixes or just rejecting having those patches in the package.

If you use createrepo or yum in your infrastructure, we invite you to contribute to this project! yum-3.2.25 was released a couple of days ago, and it is already available there.