--- /dev/null
+$NetBSD$
+
+--- plugins/cdripper/cdripper.C.orig 2010-01-29 09:03:11.000000000 +0000
++++ plugins/cdripper/cdripper.C
+@@ -19,6 +19,8 @@
+ *
+ */
+
++#include "config.h"
++
+ #include "errorbox.h"
+ #include "bcdisplayinfo.h"
+ #include "cdripper.h"
+@@ -126,7 +128,9 @@ int CDRipMain::get_parameters()
+
+ int CDRipMain::open_drive()
+ {
++#if defined(HAVE_LINUX_CDROM_H)
+ if((cdrom = open(device, O_RDONLY)) < 0)
++#endif
+ {
+ BC_DisplayInfo info;
+ ErrorBox window(PROGRAM_NAME ": CD Ripper",
+@@ -137,17 +141,22 @@ int CDRipMain::open_drive()
+ return 1;
+ }
+
++#if defined(HAVE_LINUX_CDROM_H)
+ ioctl(cdrom, CDROMSTART); // start motor
++#endif
+ return 0;
+ }
+
+ int CDRipMain::close_drive()
+ {
++#if defined(HAVE_LINUX_CDROM_H)
+ ioctl(cdrom, CDROMSTOP);
+ close(cdrom);
++#endif
+ return 0;
+ }
+
++#if defined(HAVE_LINUX_CDROM_H)
+ int CDRipMain::get_toc()
+ {
+ // test CD
+@@ -263,6 +272,17 @@ int CDRipMain::get_toc()
+ close_drive();
+ return result;
+ }
++#else
++int CDRipMain::get_toc() {
++ BC_DisplayInfo info;
++ ErrorBox window(PROGRAM_NAME ": CD Ripper",
++ info.get_abs_cursor_x(),
++ info.get_abs_cursor_y());
++ window.create_objects(_("Can't get total from table of contents."));
++ window.run_window();
++ return 1;
++}
++#endif
+
+ int CDRipMain::start_loop()
+ {
+@@ -294,9 +314,11 @@ int CDRipMain::start_loop()
+ currentlength = 0;
+ startlba_fragment = startlba - fragment_length * previewing / FRAMESIZE;
+ buffer = new char[fragment_length];
++#if defined(HAVE_LINUX_CDROM_H)
+ arg.addr.lba = startlba_fragment;
+ arg.addr_format = CDROM_LBA;
+ arg.nframes = NFRAMES;
++#endif
+ //printf("CDRipMain::start_loop 2\n");
+
+ return result;
+@@ -316,6 +338,7 @@ int CDRipMain::stop_loop()
+ return 0;
+ }
+
++#if defined(HAVE_LINUX_CDROM_H)
+ int CDRipMain::process_loop(double **plugin_buffer, int64_t &write_length)
+ {
+ int result = 0;
+@@ -385,3 +408,8 @@ int CDRipMain::process_loop(double **plu
+ //printf("CDRipMain::process_loop 8 %d %d\n", endofselection, result);
+ return endofselection || result;
+ }
++#else
++int CDRipMain::process_loop(double **, int64_t &) {
++ return 0;
++}
++#endif