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
(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 http://packman.inode.at/suse/openSUSE_11.4/Essentials/packman-essentials.repo
zypper ar -r http://packman.inode.at/suse/openSUSE_11.4/Multimedia/packman-multimedia.repo
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 http://packman.inode.at/suse/openSUSE_11.4/packman.repo
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) packman@links2linux.de
- 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 packman@links2linux.de
Mirrors
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 packman.unixheads.com in the US:
zypper ar -n packman-essentials http://packman.unixheads.com/suse/openSUSE_11.4/Essentials packman-essentials
zypper ar -n packman-multimedia http://packman.unixheads.com/suse/openSUSE_11.4/Multimedia packman-multimedia
or
zypper ar -n packman http://packman.unixheads.com/suse/openSUSE_11.4 packman