X-CD-Roast For Mac OS X

If you run X Window server software on your CD burner-equipped Mac, you may be interested in an X package called X-CD-Roast, well-known in the Linux world, but fresh to Mac.

Our office is pretty much a Linux and Mac shop, very much in that order. We have a Linux server set up for burning standard CDs from all of our machines, including the Macs. Happily, Linux supports AppleTalk, which brings our Mac OS machines into the fold too. Anyway, X-CD-Roast is the vehicle we use anytime we need to burn a CD. It is eminently capable of all the standard modes, but we use it mostly for automated backups. X-CD-Roast burns a standard ISO disk, and does not support Mac's extended format. Yet. It'll come. It's on the X-CD-Roast wish list.

Because Mac OS X has a unix engine and X-CD-Roast is a standard unix application, it became possible to compile the latter on OS X. Not that mere mortals like ourselves should attempt such a feat, though of course it's not only possible but has been done already. One of the X-CD-Roast principals has kindly pre-built it into an OS X image for your convenience, all ready to go. While it's a first release and is labeled alpha software with all the commensurate caveats, it works like a jet, and in fact operates exactly like its Linux counterpart.

With one single but notable exception. Unlike its Linux counterpart, X-CD-Roast for Mac OS X has to contend for your disk drive against Finder, which automounts a disk the moment you insert one. In Linux-land, there is only one desktop environment, and that is your X Window manager. In OS X running X-CD-Roast, there will be two, an X Window manager in addition to Aqua. So you have to disable disk automounting first, then enable it afterwards. It's finicky and very unix. Fortunately we have the whole thing ready for you in a script that you run as an application. Even better, as I write, the program author is cooking all of those details into the OS X installation for the next Mac release of X-CD-Roast. That isn't quite ready as of press time, so I'll offer the scripted version here.

Before any of this is worth a moment of your time, you need an X Window server running on your Mac, because X-CD-Roast is a bona fide X11 application. To do that right, you also have to tweak a couple of shortcomings in OS X. These tweaks are described in Ten More Mac OS X Loose Ends Part Two, and an actual server installation in Setting Up XDarwin On Mac OS X. Good.

Now I might direct your attention to the X-CD-Roast web site for an explanation of why you might want this software on a machine that already burns disks like nobody's business right out of the box. You might, for example, want to cook a disk based on a standard ISO image. This is a standard way of distributing installation disks over the internet. Or you might need to do a multi-session burn of incremental document changes. And so on.

There is another reason. Apple has wired in software code that prevents Finder, iTunes, and Disk Burner from recognizing a non-Apple drive as a valid burner. Most of the time this is not a problem. But if you have an older tower that cooked its drive, you're stuck. And if you replace that Sony CD-ROM drive with a Sony CD-RW unit, you're still out of luck. Not a problem for X-CD-Roast, though. It doesn't rely on Apple code in any way. As long as it's a supported unit or essentially a clone of one, it'll work. Even if you don't see yourself described in these possibilities, it's still a good thing to have the facility there, in the unlikely event that you need it someday.

To install X-CD-Roast, of course read the instructions first. Then the steps basically boil down to these:

Download and install an X server package;
Download and install the X-CD-Roast package and DLcompat libraries;
Download and install my scripts.

The first couple come with their own explanations, and are guaranteed to work. Go for it. During this process you'll be asked for an administrator password. That'd be you, if you own the machine.

The last step, a scripts archive called xcd.sit, should unpack onto your desktop automatically. Your mileage may vary. The archive contains two text files, both of which are readable in any text editor, such as TextEdit. The file xcd is a script that calls the xcdroast program. The heart of it was cooked by my colleague and good friend from Linux-land. (Thanks, CP!) Primarily it disables the OS X automount function temporarily so that X-CD-Roast can access disks, then restores it after X-CD-Roast closes. Because of its file permissions, it also bypasses the need to input an administrator password. For security reasons, I recommend you examine this file in TextEdit before using it.

The second file is a launch script specifically for the OroborOSX window manager, and based on a standard template. Pull down OroborOSX's Launch, Open Launch Menu Items to add it, and select Rebuild Launch Menu afterwards. Xcdroast will now appear in the Launch list. If you use a different window manager, then simply ignore this file.

Installing the xcd script requires a Terminal window. Copy and paste the following commands, assuming the archive unpacked onto your desktop. Tweak to taste. I am sure there is room to improve the permissions settings.

sudo mv ~/Desktop/"xcd Folder"/xcd /usr/X11R6/bin
cd /usr/X11R6/bin
sudo chown root xcd
sudo chmod 4775 xcd

Now you can type xcd at a Terminal prompt, or use the OroborOSX menu to start X-CD-Roast. Give it a try now. If you want to see the tug-o'war with Finder, try running X-CD-Roast without the script, by using the xcdroast command directly, then inserting a disk.

In all likelihood, the next release of X-CD-Roast will incorporate the right stuff to deal with Finder, and xcd will no longer be required. It certainly won't hurt to leave it there anyway. In the unlikely event that you should ever want to delete the script, issue the following command:

sudo rm /usr/X11R6/bin/xcd

The first time you run X-CD-Roast, you need to set some things, mainly the type of drive you have. This is auto-detected. All you have to do is save the settings. However, you do need to tell X-CD-Roast where to place temporary files. As these are disk images, they're typically several hundred megabytes a pop. If you have a single hard disk, then use /tmp for this. Pretty much take the defaults for everything else.

X-CD-Roast is well aware that many users have a single CD-ROM drive. The drill for making a disk copy is to read the source disk and write a temporary image of it, eject the disk, insert a blank, then write the image to the blank disk. The first time you do this, set the read and write speeds. You can be pretty aggressive, as X-CD-Roast will throttle back if a drive isn't capable of a given speed. Be sure to do verify passes after both the read and the write operations.

Because of the contention between Finder and X-CD-Roast for your removable drives, use the Eject and Insert buttons from X-CD-Roast to eject and insert disks. Otherwise the program may not become aware that a disk has been loaded. Best bet: Start X-CD-Roast with no disk in the drive, and remove all disks before you exit the program. Slot-load drives can be tricky, for the simple reason that they load a disk on contact, whereas you can pull in a tray-load drive in software. So press Load as required; possibly press Eject first from the CD/Image Info menu. Once you close X-CD-Roast and drive control is handed back to Finder, you may get an OS X pop-up message something like "You have inserted a volume..." Just acknowledge it and carry on. No problem.

From a user point of view, and pretty much under the hood too, X-CD-Roast for OS X is identical to its Linux and other unix counterparts. If you've used it before elsewhere, you'll be right at home here. If you think the interface could work better in some way, let the developers know at xcdroast.org. Everyone will benefit, Mac users included.

X-CD-Roast is an excellent example of open source software ported to OS X. This and so many other examples of great programming, together with some terrific native OS X applications, make for a compelling case to go Mac. There you are! Enjoy. Ciao.