Skip to content

New Freshmeat.net; Long-Live Package Management

2009 April 12
by robbyt

No, freshmeat.net is not a porn site…

Freshmeat.net is an extensive directory of FOSS/UNIX software, that gets automatically updated from several sources when new updates are released. The fact that many parts of the site are automatically updated is a positive side-effect of intelligent Package Management; something that both OS X and Windows lack.

Why does Package Management matter, why should you care, why OS X and Windows will never really have it?
First off, kudos to the freshmeat.net team on the new design. You really can’t call yourself “freshmeat” when your site looks like it was designed in 1997.
So back to the topic of Package Management, and why it’s important. Does anyone remember the GDI+ flaw that hit Microsoft back in 2004? It affected almost all of Microsoft’s products, because all of these products contain a copy of Microsoft’s GDI+ JPEG rendering libraries. All of these applications needed to be patched separately, otherwise they would be vulnerable to security exploits. So how does Package Management help this situation?

The answer is in the code sharing.
Here’s how it works in practice: Package Management in Linux/UNIX means that when there is a flaw found in something like a JPEG library, that library can be easily updated. All the software on the system then receives the benefit of that security update. This is possible in modern Linux/UNIX distributions because a Package Management system insures consistent binary builds and library linkage.

Yes, Microsoft has DLL Hell and more recently their .net framework, but it’s still common for software in Windows (that is not written in .net) to install all libraries necessary to run the application. Too bad that most major Windows applications still do not use the .net managed code framework.

What about the impenetrable Apple? While it’s true that OS X has loads of UNIX-like libraries available for developers to use… many developers still choose to package their own libraries. They do this for a couple reasons- primarily so they can have access to all of the latest hot stuff! For example, Apple ships Python 2.4 with 10.5, but all the Python guys really want v2.5, so they choose to package their own copy of Python with their application! Look around some time in your OS X application bundles (right click, then click ‘Show Package Contents’) Shipping software this way has 2 negative side-effects: 1. applications take up more hard drive space, and 2. applications risk having un-patched security vulnerabilities since they’re not being managed by the OS vendor.
Do you ever get sick of opening OS X apps, only for them to ask you to install some update via Sparkle? I definitely get sick of this… As exciting as it is to get new software, sometimes you just need to get work done and do not want to be bothered by software updates.

So to finally get to my point… OS X and Windows will never have solid Package Management because the development is far too fragmented. I argue that the modern Linux/UNIX distribution is far more organized than OS X or Windows ever could be, due to the level of application congruence that a centralized Package Management system provides. With Package Management in a clean distribution, all software has uniformly formatted documentation, all software gets installed in a predictable folder, and all software installs/uninstalls cleanly.

I know that you’ve been disappointed by the lack of documentation in OS X apps, and who hasn’t had a Windows application that has refused to uninstall.

I urge you to try for a month, and enjoy all that Package Management has to offer!

No comments yet

Leave a Reply

Note: You can use basic XHTML in your comments. Your email address will never be published.

Subscribe to this comment feed via RSS