FreeDOS Blog

❮ Back

March, 2010

The Software List as XML

When I wrote the new FreeDOS software list, one of the "targets" was to provide a method for the FDUPDATE program to get a list of packages that it needed to update. An easy way to do this is to query the database, and format the output in an XML file that the FDUPDATE program can read.

I've already shared this with Mateusz, but in case anyone else wants to write their own program to check FreeDOS program information via an XML file, here's how to export the software list as XML.

You start here:

Without any parameters, the fdupdate.cgi program returns an unformatted list of "categories" (also called "disk sets") in the software list. When you installed your distribution of FreeDOS, you may only have installed the "Base" disk set. But others may have installed the "Full" distribution, and might have chosen to include things like "Devel" and "Edit". The FDUPDATE program knows what disk sets you installed, so it also knows what disk sets it needs to update. It does the right magic in the background to fetch the right category lists.

Let's say you wanted to get the data for just the "Base" category. You just give fdupdate.cgi the "cat=" parameter:

That will give you an XML list of all the packages (and their version numbers) in the "Base" category. The FDUPDATE program can easily parse this to figure out which programs need updating.

Since the software list was only recently converted to a database, obviously the FDUPDATE program doesn't support the new fdupdate.cgi method yet. That's probably a good thing for right now, since the database doesn't contain any information (yet) about the specific package zip file names. We haven't entered that into the database yet, but we will.

So this is sort of a "coming soon" feature of the software list. But I wanted to share this with you now, so you can see the flexibility that a database back-end gives us.

Old software list

As promised, it's been a week, so I have replaced the old software list with a friendly message that redirects you to the new software list. Now, if you try to visit the old (lsm.cgi) software list, you'll just get a message that the software list has moved, and a URL to the new page you were looking for.

For the last week, the old software list has worked, but had a note added to it, letting you know that it was the old version. This was so program maintainers could compare the new software list with the old software list, and verify for themselves that all the data was correctly imported.

If you still want to validate the data in the new software list against the old data, you will need to use the old LSM files directly. The old LSM files are still there, but I haven't linked to them so web search engines can't find them (these files were never meant to be indexed or views directly, but rather through the software list web interface.) But you can still get there if you know where to look.

Let's say you want to compare entries in the "Base" disk set. The LSM files from the old software list are still on the web server. Go to and you'll see a list of files ending with ".lsm". Those are the original LSM files. Just put that at the end of the "" URL.