CD Paranoia for MacOS X, ported by Scott Wood Version 5 This is a quick hack to get cdparanoia running on MacOS X. It has been tested on 10.2, 10.3, and 10.4, but will not work on older versions without some changes. If you want a binary that works on both 10.2 and newer versions, you'll have to build it on 10.2; otherwise, it uses the system library's getopt_long(), which 10.2 doesn't have. This source tree should still build and work on Linux as well. I don't know if it will work on CD-ROM drives that aren't burners; Apple's documentation seems to assume that the only reason you'd need raw access to a SCSI device (apart from those with no existing driver) is to write an "Authoring Application", and thus it directs one to look for a device node that has a "SCSITaskDeviceCategory" property of "SCSITaskAuthoringDevice" in order to find something with which you can get to an MMC interface. If this property is set on ordinary CD-ROMs, it should work fine. Otherwise, I don't know how to send raw SCSI commands to such a device. Note that the standard CD-ROM driver has exclusive access to the drive while the CD is mounted (which happens automatically). You could unmount it with umount, but as soon as you run cdparanoia the Finder gets upset, remounts it, and throws up a nasty pop-up. Instead, you can use disktool to unmount the device cleanly. For example, if your CD-ROM is disk1 (type "mount" to find out), then run "disktool -u disk1" before every invocation of cdparanoia. This ported version, as a whole, is covered by the GPL, as required by the license on the original code. However, any new code I have written for this is in the public domain. Do what you want with it. As of this writing, you can download this port from: http://www.buserror.net/cdparanoia/ Changes in version 2: The specific CD-ROM device may be selected by using "-d ", where num is the number of the device in the order that they are enumerated. Changes in version 3: USB and FireWire drives should now work; previously, the code tried to treat them as SCSI devices rather than ATAPI. Changes in version 4: Multi-session CDs are now properly supported (OS X only, though the change could be easily applied to the Linux code as well). Previously, cdparanoia would treat the end of the last track of one session as being the same as the start of the next session, which caused the inter-session gap to be included. This gap lasts about two minutes, and gets read errors (and sometimes nasty noise) near the end. Now, it checks the session lead-out to determine the end of the last track of each session. Changes in version 5: Fix the bug that caused non-multisession CDs from working in version 4. Also, remove a debugging message.