An RPM packaging utter FAIL

January 29, 2009

Every so often, I run into examples of bad RPM packaging. Today's encounter takes the cake for utter packaging failure, though:

The RPM for VMWare Workstation 6.5.1 contains exactly one file, which the postinstall script runs and then removes. This one file is of course the regular self-extracting installer that VMWare gives you if you opt for the non-RPM version of VMWare Workstation, which means that it dumps all sorts of things over your filesystems, thereby completely defeating almost all of the purpose of installing an RPM in the first place.

(One of the things defeated is the ability to automate the installation of RPMs, because it quizzes you about agreeing to the license agreement. They went out of their way to enable this in the postinstall script.)

This is especially sad because previous versions of VMWare Workstation had reasonably well done RPM packages. I speculate wildly that VMWare felt that it was now too much work to package things up properly, but if that was so I wish they would just stop having an RPM package entirely; it would be more honest, and I'd know what I was getting into ahead of time.

(I disagree about the amount of work, as you might expect. If you are packaging something in any way, you ought to have a list of the files that get installed and where they get installed to, and that is all you need to have in order to generate a sensible RPM. Just run your installer and package up the extracted files using the list.)

Comments on this page:

From at 2009-01-31 14:30:00:

You may have mentioned checkinstall before, but it sometimes helps with this level of stupidity. It's been a while since I've used it this way, but I believe its -si / --showinstall=yes option usually solves this for installers that aren't static binaries. I recall VMWare has had at least at one point had a Linux installer that was dynamically linked, but it's been a long time. I definitely prefer to build or install from srpms if I can't find a binary rpm that matches my system, but checkinstall is significantly better than nothing with bad installers and has the advantage that without the --install flag can prevent most damage to your current files.


By cks at 2009-02-05 11:57:33:

I don't think I've mentioned checkinstall before, although it's interesting. It might not have helped in this situation (at least initially), because unfortunately I only discovered this as I was watching what happened when I did the RPM installation.

(Since past versions of VMWare had been well behaved, I didn't bother to look at the 6.5.1 RPM before installing it.)

It's not clear if the current 6.5.1 installer is ultimately a dynamically linked executable, because the 'bundle' in the RPM is actually a shell script with a bunch of binary stuff tacked on the end; I don't feel like trying to reverse engineer and duplicate the extraction process to get the real installer binaries and so on.

Written on 29 January 2009.
« The (or an) attraction of Twitter
A surprising lack on Linux: browsers for camera RAW photos »

Page tools: View Source, View Normal, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Thu Jan 29 17:52:55 2009
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.