Creating multi-distribution RPM/XML repositories

Well, as we do have quite a few custom built RPM’s, I was searching for a new solution to manage the repo(s). Currently I do have a single repository per distribution.

One thing one needs to know about createrepo (from createrepo), it doesn’t support this type of thing in the first place. So I had to come up with another way of doing it. First, I created a proper layout (much like the Debian Official Repository layout):

  • dists/
    • sle9/ (contains the repodata for SLES 9)
    • sle10/ (contains the repodata for SLES 10)
    • esx35/ (contains the repodata for VMware ESX 3.5)
  • i586/
  • noarch/
  • ppc64/
  • src/
  • x86_64/

As you can see, this is gonna get tricky in regards to managing the RPMS in a single place, while keeping the distributions apart.

So I went ahead, rewrote the script that perviously managed our two repositories for SLES 9/10. The limitation I pointed out above (keeping the RPMS in a single place), is easily overcome by using bind-mounts (sure it looks messy).

Now the only problem I’m still facing is that createrepo isn’t even looking at the excludes when it’s called by the script. But if I pass the raw command line the script is calling on a simple shell, it works like a charm .. So I don’t have the slightest clue right now, why in gods name it ain’t working … 🙁