Packman migration complete

Well, we can pretty much say that the Packman migration is now complete.

Repository layout
As already explained in earlier posts, the repository structure has been changed. Before the migration, we only had one big, mean repository
with everything in it, which had pros and cons:

  • pro: just one repository to add, can’t be much simpler
  • con: it had everything and the kitchen sink, which also meant a high chance of conflicts with packages that ship with openSUSE releases as well as other repositories on download.o.o
  • con: the metadata of the repository (the stuff under repodata/) was pretty large and meant a few megabytes to download on each repository refresh

The new layout is as follows (already explained, but just recapping here ;)), split into four repositories:

  • Essentials: contains what everyone needs (mplayer, smplayer, vlc, ffmpeg, gnome-mplayer, gstreamer, k3b-codecs, libxine1-codecs, mpg123, xmms, … – see here for a complete list), which is built for openSUSE 11.4, 11.3, 11.2, Tumbleweed, Evergreen (11.1) and Factory (snapshot)
  • Multimedia: contains many additional multimedia related applications (2ManDVD, audacious, audacity, bino, devede, dvdrip, gpodder, handbrake, k9copy, LiVES, kdenlive, ogmrip, puddletag, pinkytagger, qdvdauthor, xbmc, … – see here for a complete list), which is “only” built for openSUSE 11.4, 11.3 and 11.2
  • Extra: contains usually network related applications (aMule, amsn, deluge, gnunet, nicotine-plus, rtorrent, … – see here for a complete list), which is “only” built for openSUSE 11.4, 11.3 and 11.2
  • Games: says it all :wink: (package list), which is “only” built for openSUSE 11.4, 11.3 and 11.2

The idea behind this, is that people can pick which packages they want from Packman. If you’re only interested in codecs and audio/video players, then only add Essentials. If you want more, add more.

Note that in any case, you must add the Essentials repository, as the other repositories (Multimedia, Extra and Games) build upon Essentials and if you don’t, you will end up with unsatisfiable dependencies.

Now, if you happen to prefer the “old way” and have just one repository to add to get everything from Packman, we have what you need as well, as we aggregate the package metadata of all the above mentioned repositories in a “top-level” repository.

If we take openSUSE 11.4, this is what you would do to add e.g. Essentials and Multimedia:

zypper ar -r
zypper ar -r

If you want to add everything as a single repository, do this instead (no need to add Essentials separately in this case):

zypper ar -r

Same goes for openSUSE_11.2 and openSUSE_11.3. You may also do the above for Factory, openSUSE_Tumbleweed and Evergreen_11.1, except that you won’t be able to add the Multimedia repository as it does not exist for those (but both Essentials and the “big” repository do).

Package signatures
Most of you who have been using the Packman repository for some time probably remember the hassle that YaST and zypper were always complaining about NOKEY on the packages.

The reason was that our packages were signed with a different key than the repository metadata.
Zypper and YaST have a mechanism to import keys when you refresh a repository for the first time: it’s when it prompts you whether you want to accept that key temporarily/always/etc…

The problem for Packman is that it imports the key (repodata/repomd.xml.key) that is used to sign the repository metadata (repodata/repomd.xml.asc), but it doesn’t have any mechanism to also import another key that is used to sign the RPM files (the signatures are inside the RPM files).

We now implemented a mechanism to re-sign the packages with the same key as the one used for the repository metadata and, hence, there won’t be any “NOKEY” warnings nor any need to install the package rpmkey-packman any more.

On a side note, here is the relevant data about that key:

  • it’s a 4096 bit RSA key
  • Key ID: 45A1D0671ABD1AFB (shows up as ID “1ABD1AFB” in RPM)
  • Key Name: PackMan Project (signing key)
  • Key Fingerprint: F8875B880D518B6B8C530D1345A1D0671ABD1AFB
  • Key Created: Mon Sep 20 20:37:32 2010
  • Key Expires: Fri Sep 19 20:37:11 2014

Apart from that, Marc Schiffbauer and I finished implementing a mechanism to prevent mirrors from pulling files while our OBS instance is pushing files into the same tree, which has lead to repositories being a bit corrupt/incomplete over the past week.

As already explained, if you’re missing a package that used to be in the Packman repository but isn’t any more, please poke us (gently ;)) at

The openSUSE package management stack only recently added support for client side configuration of mirrors, I didn’t have time to implement it for Packman yet, and it doesn’t apply to openSUSE below 11.4 either. Hence, you have to pick one of our mirrors yourself. Note that in this case, you cannot use the zypper ar -r way of adding repositories, as the URLs are hard-coded in that .repo file.

Instead, proceed as follows, e.g. for openSUSE 11.4, using in the US:

zypper ar -n packman-essentials packman-essentials
zypper ar -n packman-multimedia packman-multimedia


zypper ar -n packman packman

I just love it!

I did the two zypper statements:

boven:~ # zypper ar -r
Adding repository 'Packman Essentials repository (openSUSE_11.2)' [done]                            
Repository 'Packman Essentials repository (openSUSE_11.2)' successfully added                       
Enabled: Yes                                                                                        
Autorefresh: No                                                                                     

boven:~ # zypper ar -r -n 'Packman Multimedia'                                                                                                            
Adding repository 'Packman Multimedia repository (openSUSE_11.2)' [done]                                            
Repository named 'packman' already exists. Please use another alias.


boven:~ # zypper lr -d
#  | Alias                                                                                   | Name                                                                                    | Enabled | Refresh | Priority | Type   | URI                                                                                     | Service
1  | KDE_Backports                                                                           | KDE Backports                                                                           | No      | Yes     |   99     | rpm-md |                  |
2  | KDE_Stable                                                                              | KDE Stable                                                                              | No      | Yes     |   99     | rpm-md |      |
3  | Kernel_                                                                                 | Kernel                                                                                  | No      | Yes     |   99     | rpm-md |                   |
4  |                                                            | NVIDIA Repository                                                                       | No      | Yes     |   98     | rpm-md |                                                |
5  |                                                              | VideoLan Repository                                                                     | No      | Yes     |   99     | rpm-md |                                |
6  |                                                     | Updates for openSUSE 11.2-0                                                             | Yes     | Yes     |   99     | rpm-md |                                               |
7  |                |                | No      | Yes     |   99     | rpm-md |                |
8  | | | No      | Yes     |   99     | rpm-md | |
9  | openSUSE 11.2-0                                                                         | openSUSE 11.2-0                                                                         | No      | No      |   99     | yast2  | cd:///                                                                                  |
10 | packman                                                                                 | Packman Essentials repository (openSUSE_11.2)                                           | Yes     | Yes     |   99     | rpm-md |                                   |
11 |                                                                   | Packman Repository OUD                                                                  | No      | Yes     |   99     | rpm-md |                                                      |
12 | repo-debug                                                                              | openSUSE-11.2-Debug                                                                     | No      | Yes     |   99     | NONE   |                          |
13 | repo-non-oss                                                                            | openSUSE-11.2-Non-Oss                                                                   | Yes     | Yes     |   99     | yast2  |                            |
14 | repo-oss                                                                                | openSUSE-11.2-Oss                                                                       | Yes     | Yes     |   99     | yast2  |                                |
15 | repo-source                                                                             | openSUSE-11.2-Source                                                                    | No      | Yes     |   99     | NONE   |                         |
boven:~ #

shows that #10 has the alias packman allready and that is the Essentials one. It seems that both* .repo* files use the same alias, but the aliases must be unique.

Indeed, thanks for pointing that out.

Fixed on our primary server, will take up to one hour for the fix to hit the mirrors.

You are welcome.

Thanks for explanation. It seems to be working well here, and on 11.4 it’s fast. :slight_smile:

Thanks a lot for all the work you do for us.
Packman is really amazing.

GLib-GIO:ERROR:gdbusconnection.c:2279:initable_init: assertion failed: (connection->initialization_error == NULL)

i started getting this after i added the repo(s)

One thing I’m slightly confused about is how to handle non-Essential packages when using Tumbleweed. If I am tracking the Tumbleweed repository, then I need to be using the Tumbleweed version of Packman Essentials. That much is clear.

But if I want to install puddletag, should I simply activate the 11.4 version of the Packman Multimedia repository in addition to Packman Essentials for Tumbleweed? That seems potentially problematic, but I don’t see another way at the moment.

O.K. i waited a bit but it seams that I have some more consistent problem.
When trying to update via yast the repo files I get the following error (example for 1 file but they are all the same):

Subprocess failed. Error: RPM non riuscito:error: /var/cache/zypp/packages/Packman_Evergreen_Essentials_1/Essentials/i586/ Header V4 RSA/SHA1 signature: BAD, key ID 1abd1afb
error: /var/cache/zypp/packages/Packman_Evergreen_Essentials_1/Essentials/i586/ cannot be installed

I then tried to do with zypper:

# zypper ar -r
Problem parsing the file at the specified URI:
/var/adm/mount/AP_0x0000000c/suse/Evergreen_11.1: Key in line 1 contains whitespace
Is it a .repo file? See for details.

So it appears something goes wrong here with the key. But it “should” be right, as I followed the right links and indications. Maybe there is still some tech-problem with that repo?
Any further advice?

Thank’s a lot to Packman team. I must say I’m very satisfied with the new layout. Currently using only Essentials and Extra repos and the full refresh of my repos is significantly faster. What’s more I’ve got everything I need form just those two so thanks again boys and girls :slight_smile:

Best regards,

I am (and have been for some time) using the packman repo - - and now
have the Essential, Multimedia and Extra sections separately enabled and
refreshed but have been left with a bunch of orphan rpms, some of which
should reside in the Multimedia repo, e.g. kde4-Kdenlive package.

Since the repo has
kde4-kdenlive package, I was wondering if it is a case of my repos not
being fully synced yet or are some packages going to reside on specific
repos only. Can someone please advise?

Thanks in advance for any feedback,

On 16/03/11 22:54, jmartini wrote:
> I am (and have been for some time) using the packman repo -
> - and now
> have the Essential, Multimedia and Extra sections separately enabled and
> refreshed but have been left with a bunch of orphan rpms, some of which
> should reside in the Multimedia repo, e.g. kde4-Kdenlive package.

Ok, I just worked out that there is no more kde4-kdenlive package on
either of the repos but only “kdenlive” as well as some other renaming
conventions for a few other packages and the repos I am using are synced.


Thanks a lot, the idea of streamlining the repos was indeed novel. Now that the migration is complete, wont you be adding any more packages? I have been using Vuze and hoped it would be maintained for the 11.4 release but no such luck sofar. It was even taken out for the 11.2 and 11.3 distributions. Is it possible to have it back please?

Return of Vuze rpm would be a great news.

Just wondering where httrack went? Could it be included for 11.4 x64?

If the application is not encumbered by any patent/copyright then it needs to be built on OBS as the packman resources are limited.

Give me a day or so and I will investigate and package, then find a location for it…

Here you go, enjoy :slight_smile:

Cheers Malcolm °¿° (Linux Counter #276890)
openSUSE 11.4 (x86_64) Kernel
up 6 days 20:39, 7 users, load average: 0.09, 0.33, 0.41
GPU GeForce 8600 GTS Silent - Driver Version: 270.41.19

Thanks to all of you to give us a wonderful information.

Software Boxes