--- /dev/null
+--- cdrtools-2.01.01.orig/autoconf/configure.in 2009-12-31 16:15:52.000000000 +0100
++++ cdrtools-2.01.01/autoconf/configure.in 2010-01-06 09:38:12.000000000 +0100
+@@ -354,13 +354,13 @@
+ dnl fexecve() that returns ENOSYS an AC_CHECK_FUNCS() would return FALSE
+ dnl
+ echo Checking for POSIX violations by the POSIX.1-2008 standard:
+-AC_RCHECK_FUNCS(fexecl fexecle fexecv fexecve)
+-AC_RCHECK_FUNCS(fspawnv fspawnl fspawnv_nowait)
++AC_CHECK_FUNCS(fexecl fexecle fexecv fexecve)
++AC_CHECK_FUNCS(fspawnv fspawnl fspawnv_nowait)
+
+ dnl A similar problem exists with the new POSIX.1-2008 interfaces
+ dnl getline() and fgetline(). These interfaces are also incompatible
+ dnl with our interfaces defined in 1982.
+-AC_RCHECK_FUNCS(getline fgetline)
++AC_CHECK_FUNCS(getline fgetline)
+ echo End of tests for POSIX violations by the POSIX.1-2008 standard.
+
+ dnl Check whether a symbol is either defined in an include file or
+--- cdrtools-2.01.01/include/schily/schily.h.orig 2010-01-06 08:17:45.000000000 +0100
++++ cdrtools-2.01.01/include/schily/schily.h 2010-01-06 08:19:08.000000000 +0100
+@@ -144,7 +144,6 @@
+ #define fexecl js_fexecl
+ #define fexecle js_fexecle
+ #define fexecv js_fexecv
+-#define fexecve js_fexecve
+ #endif
+ #ifdef RENAME_FSPAWN
+ #define fspawnv js_fspawnv
+@@ -152,7 +151,6 @@
+ #define fspawnl js_fspawnl
+ #endif
+ #ifdef RENAME_GETLINE
+-#define getline js_getline
+ #define fgetline js_fgetline
+ #endif
+
+@@ -174,7 +172,7 @@
+ /* 6th arg not const, fexecv forces av[ac] = NULL */
+ extern int fexecv __PR((const char *, FILE *, FILE *, FILE *, int,
+ char **));
+-extern int fexecve __PR((const char *, FILE *, FILE *, FILE *,
++extern int js_fexecve __PR((const char *, FILE *, FILE *, FILE *,
+ char * const *, char * const *));
+ extern int fspawnv __PR((FILE *, FILE *, FILE *, int, char * const *));
+ extern int fspawnl __PR((FILE *, FILE *, FILE *, const char *, ...));
+@@ -311,7 +309,7 @@
+ extern char *findinpath __PR((char *__name, int __mode, BOOL __plain_file));
+ extern int findline __PR((const char *, char, const char *,
+ int, char **, int));
+-extern int getline __PR((char *, int));
++extern int js_getline __PR((char *, int));
+ extern int getstr __PR((char *, int));
+ extern int breakline __PR((char *, char, char **, int));
+ extern int getallargs __PR((int *, char * const**, const char *, ...));
+--- cdrtools-2.01.01/libfind/find.c.orig 2010-01-06 08:21:03.000000000 +0100
++++ cdrtools-2.01.01/libfind/find.c 2010-01-06 08:21:50.000000000 +0100
+@@ -1747,7 +1747,7 @@
+ #endif
+ av[ac] = NULL; /* -exec {} \; is not NULL terminated */
+
+- fexecve(av[0], state->std[0], state->std[1], state->std[2],
++ js_fexecve(av[0], state->std[0], state->std[1], state->std[2],
+ av, state->env);
+ err = geterrno();
+ #ifdef PLUS_DEBUG
+--- cdrtools-2.01.01/libscg/scsitransp.c.orig 2009-09-07 21:09:48.000000000 +0200
++++ cdrtools-2.01.01/libscg/scsitransp.c 2010-01-06 08:37:33.000000000 +0100
+@@ -338,7 +338,7 @@
+
+ js_printf("%s", msg);
+ flush();
+- if (getline(okbuf, sizeof (okbuf)) == EOF)
++ if (js_getline(okbuf, sizeof (okbuf)) == EOF)
+ exit(EX_BAD);
+ if (streql(okbuf, "y") || streql(okbuf, "yes") ||
+ streql(okbuf, "Y") || streql(okbuf, "YES"))
+--- cdrtools-2.01.01/libschily/fexec.c.orig 2009-11-15 15:14:28.000000000 +0100
++++ cdrtools-2.01.01/libschily/fexec.c 2010-01-06 08:41:20.000000000 +0100
+@@ -135,7 +135,7 @@
+ } while (p != NULL);
+ va_end(args);
+
+- ret = fexecv(name, in, out, err, ac, av);
++ ret = js_fexecv(name, in, out, err, ac, av);
+ if (av != xav)
+ free(av);
+ return (ret);
+@@ -143,10 +143,10 @@
+
+ #ifdef PROTOTYPES
+ EXPORT int
+-fexecle(const char *name, FILE *in, FILE *out, FILE *err, const char *arg0, ...)
++js_fexecle(const char *name, FILE *in, FILE *out, FILE *err, const char *arg0, ...)
+ #else
+ EXPORT int
+-fexecle(name, in, out, err, arg0, va_alist)
++js_fexecle(name, in, out, err, arg0, va_alist)
+ char *name;
+ FILE *in;
+ FILE *out;
+@@ -198,25 +198,25 @@
+ } while (p != NULL);
+ va_end(args);
+
+- ret = fexecve(name, in, out, err, av, env);
++ ret = js_fexecve(name, in, out, err, av, env);
+ if (av != xav)
+ free(av);
+ return (ret);
+ }
+
+ EXPORT int
+-fexecv(name, in, out, err, ac, av)
++js_fexecv(name, in, out, err, ac, av)
+ const char *name;
+ FILE *in, *out, *err;
+ int ac;
+ char *av[];
+ {
+ av[ac] = NULL; /* force list to be null terminated */
+- return (fexecve(name, in, out, err, av, environ));
++ return (js_fexecve(name, in, out, err, av, environ));
+ }
+
+ EXPORT int
+-fexecve(name, in, out, err, av, env)
++js_fexecve(name, in, out, err, av, env)
+ const char *name;
+ FILE *in, *out, *err;
+ char * const av[], * const env[];
+--- cdrtools-2.01.01/libschily/spawn.c.orig 2010-01-06 08:45:54.000000000 +0100
++++ cdrtools-2.01.01/libschily/spawn.c 2010-01-06 08:45:43.000000000 +0100
+@@ -127,10 +127,10 @@
+ if (pid != 0)
+ return (pid);
+ /*
+- * silly: fexecv must set av[ac] = NULL
++ * silly: js_fexecv must set av[ac] = NULL
+ * so we have to cast argv tp (char **)
+ */
+- fexecv(name, in, out, err, argc, (char **)argv);
++ js_fexecv(name, in, out, err, argc, (char **)argv);
+ _exit(geterrno());
+ /* NOTREACHED */
+ #ifndef lint
+--- cdrtools-2.01.01/libschily/stdio/fgetline.c.orig 2004-09-25 14:23:36.000000000 +0200
++++ cdrtools-2.01.01/libschily/stdio/fgetline.c 2010-01-06 08:34:46.000000000 +0100
+@@ -61,7 +61,7 @@
+ }
+
+ EXPORT int
+-getline(buf, len)
++js_getline(buf, len)
+ char *buf;
+ int len;
+ {
+--- cdrtools-2.01.01/readcd/io.c.orig 2010-01-06 08:29:06.000000000 +0100
++++ cdrtools-2.01.01/readcd/io.c 2010-01-06 08:29:31.000000000 +0100
+@@ -136,7 +136,7 @@
+ (*prt)(s, *lp, mini, maxi, dp);
+ flush();
+ line[0] = '\0';
+- if (getline(line, 80) == EOF)
++ if (js_getline(line, 80) == EOF)
+ exit(EX_BAD);
+
+ linep = skipwhite(line);
+@@ -204,7 +204,7 @@
+ printf("%r", form, args);
+ va_end(args);
+ flush();
+- if (getline(okbuf, sizeof (okbuf)) == EOF)
++ if (js_getline(okbuf, sizeof (okbuf)) == EOF)
+ exit(EX_BAD);
+ if (okbuf[0] == '?') {
+ printf("Enter 'y', 'Y', 'yes' or 'YES' if you agree with the previous asked question.\n");
+--- cdrtools-2.01.01/readcd/readcd.c.orig 2010-01-06 08:27:59.000000000 +0100
++++ cdrtools-2.01.01/readcd/readcd.c 2010-01-06 08:28:36.000000000 +0100
+@@ -2098,7 +2098,7 @@
+ error("Copy from SCSI (%d,%d,%d) disk to file\n",
+ scg_scsibus(scgp), scg_target(scgp), scg_lun(scgp));
+ error("Enter filename [%s]: ", defname); flush();
+- (void) getline(filename, sizeof (filename));
++ (void) js_getline(filename, sizeof (filename));
+ }
+
+ if (askrange) {
+@@ -2285,7 +2285,7 @@
+ error("Copy from file to SCSI (%d,%d,%d) disk\n",
+ scg_scsibus(scgp), scg_target(scgp), scg_lun(scgp));
+ error("Enter filename [%s]: ", defname); flush();
+- (void) getline(filename, sizeof (filename));
++ (void) js_getline(filename, sizeof (filename));
+ error("Notice: reading from file always starts at file offset 0.\n");
+
+ getlong("Enter starting sector for copy:", &addr, 0L, end-1);
+--- cdrtools-2.01.01/scgcheck/dmaresid.c.orig 2010-01-06 08:24:34.000000000 +0100
++++ cdrtools-2.01.01/scgcheck/dmaresid.c 2010-01-06 08:25:01.000000000 +0100
+@@ -84,7 +84,7 @@
+ printf("Ready to start test for working DMA residual count == DMA count? Enter <CR> to continue: ");
+ fprintf(logfile, "**********> Testing for working DMA residual count == DMA count.\n");
+ flushit();
+- (void) getline(abuf, sizeof (abuf));
++ (void) js_getline(abuf, sizeof (abuf));
+ passed = TRUE;
+ dmacnt = cnt;
+ ret = xtinquiry(scgp, 0, dmacnt);
+@@ -118,7 +118,7 @@
+
+ printf("Ready to start test for working DMA residual count == 1? Enter <CR> to continue: ");
+ flushit();
+- (void) getline(abuf, sizeof (abuf));
++ (void) js_getline(abuf, sizeof (abuf));
+ chkprint("**********> Testing for working DMA residual count == 1.\n");
+ passed = TRUE;
+ dmacnt = cnt+1;
+@@ -147,7 +147,7 @@
+
+ printf("Ready to start test for working DMA overrun detection? Enter <CR> to continue: ");
+ flushit();
+- (void) getline(abuf, sizeof (abuf));
++ (void) js_getline(abuf, sizeof (abuf));
+ chkprint("**********> Testing for working DMA overrun detection.\n");
+ passed = TRUE;
+ dmacnt = cnt-1;
+--- cdrtools-2.01.01/scgcheck/scgcheck.c.orig 2010-01-06 08:26:33.000000000 +0100
++++ cdrtools-2.01.01/scgcheck/scgcheck.c 2010-01-06 08:27:29.000000000 +0100
+@@ -191,7 +191,7 @@
+ break;
+ error("Enter SCSI device name for bus scanning [%s]: ", device);
+ flushit();
+- (void) getline(device, sizeof (device));
++ (void) js_getline(device, sizeof (device));
+ if (device[0] == '\0')
+ strcpy(device, "0,6,0");
+
+@@ -616,5 +616,5 @@
+ lbuf[0] = '\0';
+ return (0);
+ }
+- return (getline(lbuf, len));
++ return (js_getline(lbuf, len));
+ }
+--- cdrtools-2.01.01/scgcheck/sense.c.orig 2010-01-06 08:22:58.000000000 +0100
++++ cdrtools-2.01.01/scgcheck/sense.c 2010-01-06 08:24:02.000000000 +0100
+@@ -116,7 +116,7 @@
+
+ printf("Ready to eject tray? Enter <CR> to continue: ");
+ flushit();
+- (void) getline(abuf, sizeof(abuf));
++ (void) js_getline(abuf, sizeof(abuf));
+ if (abuf[0] != 'n') {
+ scsi_unload(scgp, (cdr_t *)0);
+ needload = TRUE;