rpms/xcdroast/devel xcdroast-0.98alpha15-01_upstream_configure.patch, NONE, 1.1 xcdroast-0.98alpha15-02_upstream_gtk2locale.patch, NONE, 1.1 xcdroast-0.98alpha15-03_upstream_64bit_gsize.patch, NONE, 1.1 xcdroast-0.98alpha15-04_upstream_read_eagain.patch, NONE, 1.1 xcdroast-0.98alpha15-05_upstream_wav.patch, NONE, 1.1 xcdroast-0.98alpha15-06_man.patch, NONE, 1.1 xcdroast-0.98alpha15-07_case_cmp.patch, NONE, 1.1 xcdroast-0.98alpha15-08_desktop.patch, NONE, 1.1 xcdroast-0.98alpha15-09_share_dir.patch, NONE, 1.1 xcdroast-0.98alpha15-10_cddbtool.patch, NONE, 1.1 xcdroast-0.98alpha15-11_mkisofs_options.patch, NONE, 1.1 xcdroast-0.98alpha15-12_cdrecord_versions.patch, NONE, 1.1 xcdroast-0.98alpha15-13_cdrecord_to_wodim.patch, NONE, 1.1 xcdroast-0.98alpha15-14_atapi_to_oldatapi.patch, NONE, 1.1 xcdroast-0.98alpha15-15_no_readcd_version.patch, NONE, 1.1 xcdroast-0.98alpha15-prodvd.patch, 1.2, 1.3 xcdroast-0.98alpha15-scan.patch, 1.3, 1.4 xcdroast.spec, 1.29, 1.30 xcdroast-0.98alpha15-64bit_gsize.patch, 1.1, NONE xcdroast-0.98alpha15-conf.patch, 1.1, NONE

Harald Hoyer (harald) fedora-extras-commits at redhat.com
Mon Aug 13 14:18:25 UTC 2007


Author: harald

Update of /cvs/pkgs/rpms/xcdroast/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv26475

Modified Files:
	xcdroast-0.98alpha15-prodvd.patch 
	xcdroast-0.98alpha15-scan.patch xcdroast.spec 
Added Files:
	xcdroast-0.98alpha15-01_upstream_configure.patch 
	xcdroast-0.98alpha15-02_upstream_gtk2locale.patch 
	xcdroast-0.98alpha15-03_upstream_64bit_gsize.patch 
	xcdroast-0.98alpha15-04_upstream_read_eagain.patch 
	xcdroast-0.98alpha15-05_upstream_wav.patch 
	xcdroast-0.98alpha15-06_man.patch 
	xcdroast-0.98alpha15-07_case_cmp.patch 
	xcdroast-0.98alpha15-08_desktop.patch 
	xcdroast-0.98alpha15-09_share_dir.patch 
	xcdroast-0.98alpha15-10_cddbtool.patch 
	xcdroast-0.98alpha15-11_mkisofs_options.patch 
	xcdroast-0.98alpha15-12_cdrecord_versions.patch 
	xcdroast-0.98alpha15-13_cdrecord_to_wodim.patch 
	xcdroast-0.98alpha15-14_atapi_to_oldatapi.patch 
	xcdroast-0.98alpha15-15_no_readcd_version.patch 
Removed Files:
	xcdroast-0.98alpha15-64bit_gsize.patch 
	xcdroast-0.98alpha15-conf.patch 
Log Message:
- more cdrkit compat patches


xcdroast-0.98alpha15-01_upstream_configure.patch:

--- NEW FILE xcdroast-0.98alpha15-01_upstream_configure.patch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 01_upstream_configure.dpatch by  <Hector Garcia <hector at debian.org>>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: No description.

@DPATCH@
diff -urNad trunk~/configure trunk/configure
--- trunk~/configure	2006-01-20 13:34:14.000000000 +0100
+++ trunk/configure	2006-01-20 13:51:55.000000000 +0100
@@ -4361,55 +4361,6 @@
 	LIBS="$LIBS $PKGCONFIG_LIBS"
 	CFLAGS="$CFLAGS $PKGCONFIG_CFLAGS"
 
-	# Extract the first word of "pcre-config", so it can be a program name with args.
-set dummy pcre-config; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_PCRE_CONFIG+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $PCRE_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_PCRE_CONFIG="$PCRE_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_PCRE_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  test -z "$ac_cv_path_PCRE_CONFIG" && ac_cv_path_PCRE_CONFIG="no"
-  ;;
-esac
-fi
-PCRE_CONFIG=$ac_cv_path_PCRE_CONFIG
-
-if test -n "$PCRE_CONFIG"; then
-  echo "$as_me:$LINENO: result: $PCRE_CONFIG" >&5
-echo "${ECHO_T}$PCRE_CONFIG" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-	if test "x$PCRE_CONFIG" = "xno" ; then
-        	{ { echo "$as_me:$LINENO: error: pcre-config not found please install libpcre3-dev or similar" >&5
-echo "$as_me: error: pcre-config not found please install libpcre3-dev or similar" >&2;}
-   { (exit 1); exit 1; }; }
-	else
-        	LIBS="$LIBS `$PCRE_CONFIG --libs`"
-        	CFLAGS="$CFLAGS `$PCRE_CONFIG --cflags`"
-	fi
-
 else
 
 
@@ -9249,7 +9200,6 @@
 s, at PKG_CONFIG@,$PKG_CONFIG,;t t
 s, at PKGCONFIG_CFLAGS@,$PKGCONFIG_CFLAGS,;t t
 s, at PKGCONFIG_LIBS@,$PKGCONFIG_LIBS,;t t
-s, at PCRE_CONFIG@,$PCRE_CONFIG,;t t
 s, at GLIB_CONFIG@,$GLIB_CONFIG,;t t
 s, at GLIB_CFLAGS@,$GLIB_CFLAGS,;t t
 s, at GLIB_LIBS@,$GLIB_LIBS,;t t
diff -urNad trunk~/configure.in trunk/configure.in
--- trunk~/configure.in	2006-01-20 13:34:14.000000000 +0100
+++ trunk/configure.in	2006-01-20 13:51:58.000000000 +0100
@@ -105,14 +105,6 @@
 	LIBS="$LIBS $PKGCONFIG_LIBS"
 	CFLAGS="$CFLAGS $PKGCONFIG_CFLAGS"
 
-	AC_PATH_PROG(PCRE_CONFIG, pcre-config, no)
-	if test "x$PCRE_CONFIG" = "xno" ; then
-        	AC_MSG_ERROR(pcre-config not found please install libpcre3-dev or similar)
-	else 
-        	LIBS="$LIBS `$PCRE_CONFIG --libs`"
-        	CFLAGS="$CFLAGS `$PCRE_CONFIG --cflags`"
-	fi
-
 else 
 	dnl pure plain GTK+-1.2.x support
 

xcdroast-0.98alpha15-02_upstream_gtk2locale.patch:

--- NEW FILE xcdroast-0.98alpha15-02_upstream_gtk2locale.patch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 02_upstream_gtk2locale.patch.dpatch by  <Hector Garcia <hector at debian.org>>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: No description.

@DPATCH@
diff -urNad trunk~/src/xtools.c trunk/src/xtools.c
--- trunk~/src/xtools.c	2006-01-20 16:07:46.000000000 +0100
+++ trunk/src/xtools.c	2006-01-20 16:08:06.000000000 +0100
@@ -3662,9 +3662,13 @@
 	if (c_locale_is_utf8)
 		return str;
 
-	/* should be logical to use g_filename_from_utf8() here, but
-	   somehow this works not correctly on my testsystem */
+#ifdef BROKEN_GTK2_LOCALE
+	/* on my redhat 7.3 system it does only work that way, but
+	   on other systems the correct way is in the #else branch */ 
 	locstr = g_locale_from_utf8(str, strlen(str), &in, &out, NULL);
+#else
+	locstr = g_filename_from_utf8(str, strlen(str), &in, &out, NULL);
+#endif
 	if (locstr) {
 		strncpy(str, locstr, MAXLINE);
 	}

xcdroast-0.98alpha15-03_upstream_64bit_gsize.patch:

--- NEW FILE xcdroast-0.98alpha15-03_upstream_64bit_gsize.patch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 03_upstream_64bit_gsize.patch.dpatch by  <Hector Garcia <hector at debian.org>>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: No description.

@DPATCH@
diff -urNad trunk~/src/xtools.c trunk/src/xtools.c
--- trunk~/src/xtools.c	2006-01-20 16:07:46.000000000 +0100
+++ trunk/src/xtools.c	2006-01-20 16:10:23.000000000 +0100
@@ -3635,7 +3635,7 @@
 	return str;
 #else
 gchar *locstr;
-gint in, out;
+gsize in, out;
 
 	locstr = g_locale_from_utf8(str, strlen(str), &in, &out, NULL);
 	if (locstr) {
@@ -3655,7 +3655,7 @@
 	return str;
 #else
 gchar *locstr;
-gint in, out;
+gsize in, out;
 
 	/* ok, if your filesystem is already UTF8 we are not 
 	   allowed to change the filenames here. */

xcdroast-0.98alpha15-04_upstream_read_eagain.patch:

--- NEW FILE xcdroast-0.98alpha15-04_upstream_read_eagain.patch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 04_upstream_read_eagain.patch.dpatch by  <Hector Garcia <hector at debian.org>>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: No description.

@DPATCH@
diff -urNad trunk~/src/tools.c trunk/src/tools.c
--- trunk~/src/tools.c	2006-01-20 16:15:30.000000000 +0100
+++ trunk/src/tools.c	2006-01-20 16:25:51.000000000 +0100
@@ -559,6 +559,33 @@
 }
 
 
+/* read a single char from a file descriptor. If the descriptor
+   says that it is not available, then try again up to 5 times,
+   before giving up.
+   Required for Mac OS 10.3
+*/
+
+static gint read_char(gint fd, gchar *c) {
+gint rc;
+gint retries;
+
+        retries = 5;
+
+        while (retries) {
+                rc = read(fd, c, 1);
+
+                /* all ok, read one char or EOF */
+                if (rc != -1) {
+                        return rc;
+                }
+
+                /* error code, try again after a little while */
+                usleep(100);
+                retries--;
+        }
+        return rc;
+}
+
 /*
  * Read a line from a descriptor.  Read the line one byte at a time,
  * looking for the newline. Works fine in nonblocking mode..here
@@ -576,7 +603,7 @@
 	str = ptr;
  
         for (n = 1; n < maxlen; n++) {
-                if ( (rc = read(fd, &c, 1)) == 1) {
+                if ( (rc = read_char(fd, &c)) == 1) {
                         *ptr++ = c;
                         if (c == '\n') {
                                 break;

xcdroast-0.98alpha15-05_upstream_wav.patch:

--- NEW FILE xcdroast-0.98alpha15-05_upstream_wav.patch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 05_upstream_wav.patch.dpatch by  <Hector Garcia <hector at debian.org>>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: No description.

@DPATCH@
diff -urNad trunk~/src/main.h trunk/src/main.h
--- trunk~/src/main.h	2006-01-20 16:26:51.000000000 +0100
+++ trunk/src/main.h	2006-01-20 16:29:30.000000000 +0100
@@ -175,8 +175,7 @@
 void wavplay_frontend(GtkWidget *widget);
 void wavplay_dodouble();
 
-gint is_std_wav_file(guchar *hdr);
-gint is_in_cd_quality(guchar *hdr);
+off_t is_std_wav_file(int f, off_t *offset);
 
 void dodebug(gint debuglevel, gchar *fmt, ...);
 void dolog(gint loglevel, gchar *fmt, ...);
diff -urNad trunk~/src/wav_id.c trunk/src/wav_id.c
--- trunk~/src/wav_id.c	2006-01-20 16:29:11.000000000 +0100
+++ trunk/src/wav_id.c	2006-01-20 16:29:30.000000000 +0100
@@ -5,6 +5,11 @@
 	machine-independent (work both on big and little endian)
 	code to check if we have valid wavheader that is configured
 	for cd-quality (16 bit, stereo, 44.1kHz)
+
+	01.04.04 steve wahl
+
+	Do correct RIFF parsing, don't assume a static header style.
+	Code borrowed from cdrecord.
 */
 
 #ifdef HAVE_CONFIG_H
@@ -13,62 +18,147 @@
 
 #include "largefile.h"
 
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
 #include <string.h>
 #include <glib.h>
 #include "xcdroast.h"
 
-/* check if valid wav-header */
-/* endian independent version */
-/* return 1 if true, 0 if not */
+typedef struct {
+	guchar	ckid[4];
+	guchar	cksize[4];
+} chunk_t;
 
-gint is_std_wav_file(guchar *hdr) {
-gchar tmp[MAXLINE];
-guint wFormatTag;
-guint fmtOffset;
+typedef struct {
+	guchar	wave[4];
+} riff_chunk;
 
-	strncpy(tmp,(char *) hdr+0,4);
-	if (strncmp(tmp,"RIFF",4) != 0) 
-		return 0;
+typedef struct {
+	guchar	fmt_tag[2];
+	guchar	channels[2];
+	guchar	sample_rate[4];
+	guchar	av_byte_rate[4];
+	guchar	block_size[2];
+	guchar	bits_per_sample[2];
+} fmt_chunk;
 
-	strncpy(tmp,(char *) hdr+8,4);
-	if (strncmp(tmp,(char *)"WAVE",4) != 0) 
-		return 0;
+#define	WAV_RIFF_MAGIC		"RIFF"		/* Magic for file format     */
+#define	WAV_WAVE_MAGIC		"WAVE"		/* Magic for Waveform Audio  */
+#define	WAV_FMT_MAGIC		"fmt "		/* Start of Waveform format  */
+#define	WAV_DATA_MAGIC		"data"		/* Start of data chunk	     */
+#define	WAV_FORMAT_PCM		0x0001		/* Linear PCM format	     */
+#define	WAV_FORMAT_ULAW		0x0101		/* American ISDN Telephonie  */
+#define	WAV_FORMAT_ALAW		0x0102		/* International ISDN Tel.   */
+#define	WAV_FORMAT_ADPCM	0x0103		/* ADPCM format		     */
 
-	strncpy(tmp,(char *) hdr+12,4);
-	if (strncmp(tmp,(char *)"fmt ",4) != 0) 
-		return 0;
+#define	le_a_to_u_short(a)	((unsigned short) \
+				((((unsigned char*) a)[0]       & 0xFF) | \
+				 (((unsigned char*) a)[1] << 8  & 0xFF00)))
 
-	fmtOffset = (hdr[19]<<24) + (hdr[18]<<16) + (hdr[17]<<8) + hdr[16];
-	strncpy(tmp,(char *) hdr+20+fmtOffset,4);
-	if (strncmp(tmp,(char *)"data",4) != 0) 
-		return 0;
+#ifdef	__STDC__
+#define	le_a_to_u_long(a)	((unsigned long) \
+				((((unsigned char*) a)[0]       & 0xFF) | \
+				 (((unsigned char*) a)[1] << 8  & 0xFF00) | \
+				 (((unsigned char*) a)[2] << 16 & 0xFF0000) | \
+				 (((unsigned char*) a)[3] << 24 & 0xFF000000UL)))
+#else
+#define	le_a_to_u_long(a)	((unsigned long) \
+				((((unsigned char*) a)[0]       & 0xFF) | \
+				 (((unsigned char*) a)[1] << 8  & 0xFF00) | \
+				 (((unsigned char*) a)[2] << 16 & 0xFF0000) | \
+				 (((unsigned char*) a)[3] << 24 & 0xFF000000)))
+#endif
 
-	wFormatTag = (hdr[21] << 8) + hdr[20];
-	if (wFormatTag != 1) 
-		return 0;
+/* check if valid wav-header */
+/* endian independent version */
+/* return number of bytes if valid, 0 if not */
+/* if offset is non NULL, place offset in file to base of wave data there */
+/* leaves file pointer at begining of wave data if valid */
 
-	return 1;
-}
+off_t is_std_wav_file(gint f, off_t *offset)
+{
+	chunk_t		chunk;
+	riff_chunk	riff;
+	fmt_chunk	fmt;
+	struct stat	sb;
+	off_t		cursor;
+	gint		gotFormat;
+	mode_t		mode;
+	off_t		size;
 
+	/*
+	 * First check if a bad guy tries to call wavsize()
+	 * with an unappropriate file descriptor.
+	 * return 0 in this case.
+	 */
 
-/* check if wav-file is in cd-quality */
-/* endian independent version */
-/* return 1 if true, 0 if not */
+	if (isatty(f))
+		return (0);
+	if (fstat(f, &sb) < 0)
+		return (0);
+	mode = sb.st_mode & S_IFMT;
+	if (!S_ISREG(mode) && !S_ISBLK(mode) && !S_ISCHR(mode))
+		return (0);
 
-gint is_in_cd_quality(guchar *hdr) {
-guint nChannels;
-guint wBitsPerSample;
-guint nSamplesPerSec;
+	cursor = (off_t)0;
+	lseek(f, cursor, SEEK_SET);
+	gotFormat = FALSE;
 
-	nChannels = (hdr[23] << 8) + hdr[22];
-	wBitsPerSample = (hdr[35] << 8) + hdr[34];
-	nSamplesPerSec = (hdr[27]<<24) + (hdr[26]<<16) + (hdr[25]<<8) + hdr[24];
+	for (;;) {
+		if (read(f, &chunk, sizeof (chunk)) != sizeof (chunk))
+			goto err;
+		size = (off_t)le_a_to_u_long(chunk.cksize);
 
-	if (nChannels != 2 || wBitsPerSample != 16 || 
-	    nSamplesPerSec != 44100)
-		return 0;
+		if (strncmp((char *)chunk.ckid, WAV_RIFF_MAGIC, 4) == 0) {
+			/*
+			 * We found (first) RIFF header. Check if a WAVE
+			 * magic follows. Set up size to be able to skip
+			 * past this header.
+			 */
+			if (read(f, &riff, sizeof (riff)) != sizeof (riff))
+				goto err;
+			if (strncmp((char *)riff.wave, WAV_WAVE_MAGIC, 4) != 0)
+				goto err;
+			size = (off_t)sizeof (riff);
 
-	return 1; 
+		} else if (strncmp((char *)chunk.ckid, WAV_FMT_MAGIC, 4) == 0) {
+			/*
+			 * We found WAVE "fmt " header. Check size (if it is
+			 * valid for a WAVE file) and coding whether it is
+			 * useable for a CD. 
+			 */
+			if (size < (off_t)sizeof (fmt)) goto err;
+			if (sizeof (fmt) != read(f, &fmt, sizeof (fmt))) goto err;
+			if (le_a_to_u_short(fmt.channels) != 2 ||
+			    le_a_to_u_long(fmt.sample_rate) != 44100 ||
+			    le_a_to_u_short(fmt.bits_per_sample) != 16) {
+				goto err;
+			}
+			gotFormat = TRUE;
+
+		} else if (strncmp((char *)chunk.ckid, WAV_DATA_MAGIC, 4) == 0) {
+			/*
+			 * We found WAVE "data" header. This contains the
+			 * size value of the audio part.
+			 */
+			if (!gotFormat) {
+				goto err;
+			}
+			if ((cursor + size + sizeof (chunk)) > sb.st_size)
+				size = sb.st_size - (cursor  + sizeof (chunk));
+			if (offset)
+				*offset = cursor + sizeof (chunk) ;
+			return (size);
+		}
+		cursor += size + sizeof (chunk);
+		lseek(f, cursor, SEEK_SET);	/* Skip over current chunk */
+	}
+err:
+	lseek(f, (off_t)0L, SEEK_SET);
+	return (0);
 }
 
 
+
+
diff -urNad trunk~/src/wavplay.c trunk/src/wavplay.c
--- trunk~/src/wavplay.c	2006-01-20 16:27:15.000000000 +0100
+++ trunk/src/wavplay.c	2006-01-20 16:29:30.000000000 +0100
@@ -64,13 +64,12 @@
 #include <dmedia/audio.h>
 #endif
 
-static guchar waveHdr[44];
+static off_t waveBase ;
 static gint abuf_size;
 static guchar *audiobuf;
 
 gint read_line(gint fd, gchar *ptr, gint maxlen);
-gint is_std_wav_file(guchar *hdr);
-gint is_in_cd_quality(guchar *hdr);
+off_t is_std_wav_file(int f, off_t *offset);
 
 
 #if defined(linux) || defined(__FreeBSD__)
@@ -747,7 +746,6 @@
 gint oldtick = 0;
 off_t bytessofar = 0;
 off_t totalbytes;
-struct stat stat_buf;
 gint min,sec;
 gchar keybuffer[MAXLINE];
 #if !(defined(linux))
@@ -830,20 +828,11 @@
 	}
 
 	/* get filesize */
-	fstat(fd, &stat_buf);
-	totalbytes = (off_t) (stat_buf.st_size - (off_t)sizeof(waveHdr));
-
-	read(fd, &waveHdr, sizeof(waveHdr));
+	totalbytes = is_std_wav_file(fd, &waveBase) ;
 
 	/* is it a wav-file? */
-	if (!is_std_wav_file(waveHdr)) {
-		g_warning("No valid wavfile\n");
-		exit(0);
-	}
-
-	/* is it in cd-quality? */
-	if (!is_in_cd_quality(waveHdr)) {
-		g_warning("wavfile not in cd-quality\n");
+	if (totalbytes == 0) {
+		g_warning("No valid wavfile, or not in cd-quality\n");
 		exit(0);
 	}
 
@@ -871,7 +860,7 @@
 		if (guimode && (read_line(STDIN_FILENO,keybuffer,MAXLINE) > 0)) {
 			/* stop command */
 			if (g_strncasecmp(keybuffer,"stop",4) == 0) {
-				lseek(fd, sizeof(waveHdr), SEEK_SET);
+				lseek(fd, waveBase, SEEK_SET);
 				bytessofar = 0;
 				tick = 0;
 				doplay = 0;
@@ -895,7 +884,7 @@
 			if (g_strncasecmp(keybuffer,"set",3) == 0) {
 				tick = atoi(keybuffer+3);
 				bytessofar = (off_t)tick *CDDAFRAME*75; 
-				lseek(fd, (off_t)sizeof(waveHdr)+bytessofar,
+				lseek(fd, waveBase+bytessofar,
 					SEEK_SET);
 				g_print("%s%d\n",doplay?"play":"stop",tick);
 				fflush(stdout);
@@ -911,7 +900,15 @@
 		if (doplay) {	
 
 			/* read from wav-file */
-			l = read(fd, audiobuf, abuf_size);
+			/* but only up until we reach totalbytes */
+			l = totalbytes - bytessofar ;
+			if (l > abuf_size)
+				l = abuf_size ;
+			if (l < 0)
+				l = 0 ;
+
+			if (l > 0)
+				l = read(fd, audiobuf, l);
 			if (l > 0) {
 #if !(defined(linux))
 			/* turn byte order only on non linux platforms */
@@ -945,7 +942,7 @@
 					exit(-1);
 				}
 #endif
-				bytessofar+=(off_t)abuf_size;
+				bytessofar+=(off_t)l;
 
 			} else {
 				/* read error on wav-file */
@@ -958,7 +955,7 @@
 				doplay = 0;
 				if (guimode) {
 					/* roll back */
-					lseek(fd, sizeof(waveHdr), SEEK_SET);
+					lseek(fd, waveBase, SEEK_SET);
 					bytessofar = 0;
 					tick = 0;
 					g_print("done%d\n",tick);
diff -urNad trunk~/src/xtools.c trunk/src/xtools.c
--- trunk~/src/xtools.c	2006-01-20 16:27:42.000000000 +0100
+++ trunk/src/xtools.c	2006-01-20 16:29:30.000000000 +0100
@@ -1851,7 +1851,6 @@
 /* return 1 if, 0 if not */
 
 gint check_wav_file(gchar *wavname) {
-guchar waveHdr[44];
 gint fd;
 
 	fd = open (wavname, O_RDONLY, 0);
@@ -1859,16 +1858,8 @@
 		return 0;
 	}
 
-	read(fd, &waveHdr, sizeof(waveHdr));
-
-	if (!is_std_wav_file(waveHdr)) {
-		/* no wav at all */
-		close(fd);
-		return 0;
-	}
-
-	/* is it in cd-quality? */
-	if (!is_in_cd_quality(waveHdr)) {
+	if (!is_std_wav_file(fd, NULL)) {
+		/* no wav at all or not cd-quality */
 		close(fd);
 		return 0;
 	}

xcdroast-0.98alpha15-06_man.patch:

--- NEW FILE xcdroast-0.98alpha15-06_man.patch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 06_man.dpatch by  <Hector Garcia <hector at debian.org>>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: No description.

@DPATCH@
diff -urNad trunk~/man/xcdroast.1 trunk/man/xcdroast.1
--- trunk~/man/xcdroast.1	2006-01-20 17:39:36.000000000 +0100
+++ trunk/man/xcdroast.1	2006-01-20 17:40:40.000000000 +0100
@@ -84,7 +84,7 @@
 fine.)
 
 .SH BUGS 
-This 'man' page is to short. Really useable information can be found
+This 'man' page is too short. Really useable information can be found
 in the documentation included with X-CD-Roast, in the FAQ
 on 
 .IR http://www.xcdroast.org/faq 

xcdroast-0.98alpha15-07_case_cmp.patch:

--- NEW FILE xcdroast-0.98alpha15-07_case_cmp.patch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 07_case_cmp.dpatch by  <Hector Garcia <hector at debian.org>>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: No description.

@DPATCH@
diff -urNad trunk~/src/xtools.c trunk/src/xtools.c
--- trunk~/src/xtools.c	2006-01-20 17:09:43.000000000 +0100
+++ trunk/src/xtools.c	2006-01-20 18:28:52.000000000 +0100
@@ -974,9 +974,9 @@
 	isosize = 0;
 
 	/* now do some tests about file-contents */
-	if (strncmp(file+strlen(file)-4,".toc",4) == 0) {
+	if (strncasecmp(file+strlen(file)-4,".toc",4) == 0) {
 		type = 4;
-	} else if (strncmp(file+strlen(file)-4,".wav",4) == 0) {
+	} else if (strncasecmp(file+strlen(file)-4,".wav",4) == 0) {
 		/* wav-file */
 		if (check_wav_file(tmp) == 0) {
 			/* invalid wav */
@@ -1052,7 +1052,7 @@
 			/* skip to short filenames */
 			if (len2 < len) continue;
 
-			if (strncmp((ent->d_name)+len2-len,img_ext[i],len) == 0) {
+			if (strncasecmp((ent->d_name)+len2-len,img_ext[i],len) == 0) {
 				/* we found a match */
 				analyze_imgfile(path,ent->d_name,retlist);			
 			}

xcdroast-0.98alpha15-08_desktop.patch:

--- NEW FILE xcdroast-0.98alpha15-08_desktop.patch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 08_desktop.dpatch by  <Hector Garcia <hector at debian.org>>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: No description.

@DPATCH@
diff -urNad trunk~/extra/xcdroast.desktop trunk/extra/xcdroast.desktop
--- trunk~/extra/xcdroast.desktop	2006-01-20 13:34:14.000000000 +0100
+++ trunk/extra/xcdroast.desktop	2006-02-26 18:33:05.000000000 +0100
@@ -1,6 +1,8 @@
 [Desktop Entry]
+Encoding=UTF-8
 Name=X-CD-Roast
+Comment=Create a CD
+Exec=xcdroast
+Icon=xcdroast.xpm
 Type=Application
-Exec=/usr/bin/xcdroast
-Comment=CD creation tool
-Icon=/usr/lib/xcdroast-0.98/icons/xcdricon.png
+Categories=Application;AudioVideo;

xcdroast-0.98alpha15-09_share_dir.patch:

--- NEW FILE xcdroast-0.98alpha15-09_share_dir.patch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 09_share_dir.dpatch by  <Hector Garcia <hector at debian.org>>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Patch to provide different paths to /usr/lib and /usr/share.

@DPATCH@
diff -urNad trunk~/Makefile.in trunk/Makefile.in
--- trunk~/Makefile.in	2006-05-06 15:54:43.000000000 +0200
+++ trunk/Makefile.in	2006-05-06 15:55:04.000000000 +0200
@@ -108,6 +108,7 @@
 USE_NONROOTMODE = @USE_NONROOTMODE@
 VERSION = @VERSION@
 XCDRLIB_PREFIX = @XCDRLIB_PREFIX@
+XCDRSHARE_PREFIX = @XCDRSHARE_PREFIX@
 am__include = @am__include@
 am__quote = @am__quote@
 install_sh = @install_sh@
diff -urNad trunk~/acinclude.m4 trunk/acinclude.m4
--- trunk~/acinclude.m4	2006-05-06 15:18:20.000000000 +0200
+++ trunk/acinclude.m4	2006-05-06 15:54:54.000000000 +0200
@@ -24,7 +24,7 @@
 AC_DEFUN(AM_PATH_XCDRLIBDIR,
 [ AC_ARG_WITH(xcdroast-libdir-prefix,
             AC_HELP_STRING([--with-xcdroast-libdir-prefix=PFX],
-                           [set where the utils/images of xcdroast should be installed - default: PREFIX/lib/xcdroast-0.98]),
+                           [set where the utils of xcdroast should be installed - default: PREFIX/lib/xcdroast-0.98]),
      xcdrlibdir_config_prefix="$withval", xcdrlibdir_config_prefix="")
 
     if test "x$xcdrlibdir_config_prefix" = "x"; then
@@ -38,6 +38,26 @@
     AC_SUBST(XCDRLIB_PREFIX)
 ])
 
+dnl AM_PATH_XCDRSHAREDIR([MINIMUM-VERSION,
+dnl               [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
+dnl
+AC_DEFUN(AM_PATH_XCDRSHAREDIR,
+[ AC_ARG_WITH(xcdroast-sharedir-prefix,
+            AC_HELP_STRING([--with-xcdroast-sharedir-prefix=PFX],
+                           [set where the images of xcdroast should be installed - default: PREFIX/share/xcdroast-0.98]),
+     xcdrsharedir_config_prefix="$withval", xcdrsharedir_config_prefix="")
+
+    if test "x$xcdrsharedir_config_prefix" = "x"; then
+	XCDRSHARE_PREFIX="$prefix/share/xcdroast-0.98"
+    else 	
+    	XCDRSHARE_PREFIX=$xcdrsharedir_config_prefix
+    fi
+    if test "X$XCDRSHARE_PREFIX" = "XNONE/share/xcdroast-0.98"; then
+    	XCDRSHARE_PREFIX="$ac_default_prefix/share/xcdroast-0.98"
+    fi 
+    AC_SUBST(XCDRSHARE_PREFIX)
+])
+
 dnl AM_DEP_NONROOTMODE([MINIMUM-VERSION,
 dnl               [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
 dnl
diff -urNad trunk~/aclocal.m4 trunk/aclocal.m4
--- trunk~/aclocal.m4	2006-05-06 15:18:20.000000000 +0200
+++ trunk/aclocal.m4	2006-05-06 15:54:54.000000000 +0200
@@ -51,6 +51,26 @@
     AC_SUBST(XCDRLIB_PREFIX)
 ])
 
+dnl AM_PATH_XCDRSHAREDIR([MINIMUM-VERSION,
+dnl               [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
+dnl
+AC_DEFUN(AM_PATH_XCDRSHAREDIR,
+[ AC_ARG_WITH(xcdroast-sharedir-prefix,
+            AC_HELP_STRING([--with-xcdroast-sharedir-prefix=PFX],
+                           [set where the images of xcdroast should be installed - default: PREFIX/share/xcdroast-0.98]),
+     xcdrsharedir_config_prefix="$withval", xcdrsharedir_config_prefix="")
+
+    if test "x$xcdrsharedir_config_prefix" = "x"; then
+	XCDRSHARE_PREFIX="$prefix/share/xcdroast-0.98"
+    else 	
+    	XCDRSHARE_PREFIX=$xcdrsharedir_config_prefix
+    fi
+    if test "X$XCDRSHARE_PREFIX" = "XNONE/share/xcdroast-0.98"; then
+    	XCDRSHARE_PREFIX="$ac_default_prefix/share/xcdroast-0.98"
+    fi 
+    AC_SUBST(XCDRSHARE_PREFIX)
+])
+
 dnl AM_DEP_NONROOTMODE([MINIMUM-VERSION,
 dnl               [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
 dnl
diff -urNad trunk~/configure.in trunk/configure.in
--- trunk~/configure.in	2006-05-06 15:54:54.000000000 +0200
+++ trunk/configure.in	2006-05-06 15:54:54.000000000 +0200
@@ -96,6 +96,7 @@
 
 AM_PATH_CDRTOOLS
 AM_PATH_XCDRLIBDIR
+AM_PATH_XCDRSHAREDIR
 AM_DEP_NONROOTMODE
 AM_DEP_ENABLEGTK2
 
diff -urNad trunk~/src/Makefile.am trunk/src/Makefile.am
--- trunk~/src/Makefile.am	2006-05-06 15:18:20.000000000 +0200
+++ trunk/src/Makefile.am	2006-05-06 15:54:54.000000000 +0200
@@ -23,7 +23,7 @@
 	setup.c io.c duplicate.c wav_frontend.c wav_id.c create.c \
 	largefile.h language.h main.h xcdrdata.h xcdroast.h gettext.h
 
-xcdroast_CFLAGS = $(GNUCFLAGS) $(GDK_PIXBUF_CFLAGS) $(EXTRA_CFLAGS) $(AM_CFLAGS) -DPRE_PREFIX="\"$(prefix)\"" -DPRE_LIBDIR="\"$(XCDRLIB_PREFIX)\"" -DCDRTOOLS_PREFIX="\"$(CDRTOOLS_PREFIX)\"" -DSYSCONFDIR="\"$(sysconfdir)\"" -DUSE_NONROOTMODE="$(USE_NONROOTMODE)"
+xcdroast_CFLAGS = $(GNUCFLAGS) $(GDK_PIXBUF_CFLAGS) $(EXTRA_CFLAGS) $(AM_CFLAGS) -DPRE_PREFIX="\"$(prefix)\"" -DPRE_LIBDIR="\"$(XCDRLIB_PREFIX)\"" -DPRE_SHAREDIR="\"$(XCDRSHARE_PREFIX)\"" -DCDRTOOLS_PREFIX="\"$(CDRTOOLS_PREFIX)\"" -DSYSCONFDIR="\"$(sysconfdir)\"" -DUSE_NONROOTMODE="$(USE_NONROOTMODE)"
 xcdroast_LDFLAGS = $(EXTRA_LDFLAGS)
 xcdroast_LDADD = @LIBINTL@ @ALLOCA@ $(GTK_LIBS) $(GDK_PIXBUF_LIBS) $(AUDIO_LIBS)
 
@@ -48,5 +48,5 @@
 cddbtool_LDADD = $(GLIB_LIBS)
 
 xcdrwrap_SOURCES = xcdrwrap.c largefile.h xcdroast.h
-xcdrwrap_CFLAGS = $(GNUCFLAGS) $(EXTRA_CFLAGS) $(AM_CFLAGS) -DPRE_PREFIX="\"$(prefix)\"" -DPRE_LIBDIR="\"$(XCDRLIB_PREFIX)\"" -DCDRTOOLS_PREFIX="\"$(CDRTOOLS_PREFIX)\"" -DSYSCONFDIR="\"$(sysconfdir)\"" -DUSE_NONROOTMODE="$(USE_NONROOTMODE)"
+xcdrwrap_CFLAGS = $(GNUCFLAGS) $(EXTRA_CFLAGS) $(AM_CFLAGS) -DPRE_PREFIX="\"$(prefix)\"" -DPRE_LIBDIR="\"$(XCDRLIB_PREFIX)\"" -DPRE_SHAREDIR="\"$(XCDRSHARE_PREFIX)\"" -DCDRTOOLS_PREFIX="\"$(CDRTOOLS_PREFIX)\"" -DSYSCONFDIR="\"$(sysconfdir)\"" -DUSE_NONROOTMODE="$(USE_NONROOTMODE)"
 
diff -urNad trunk~/src/Makefile.in trunk/src/Makefile.in
--- trunk~/src/Makefile.in	2006-05-06 15:54:37.000000000 +0200
+++ trunk/src/Makefile.in	2006-05-06 15:55:04.000000000 +0200
@@ -108,6 +108,7 @@
 USE_NONROOTMODE = @USE_NONROOTMODE@
 VERSION = @VERSION@
 XCDRLIB_PREFIX = @XCDRLIB_PREFIX@
+XCDRSHARE_PREFIX = @XCDRSHARE_PREFIX@
 am__include = @am__include@
 am__quote = @am__quote@
 install_sh = @install_sh@
@@ -134,7 +135,7 @@
 	largefile.h language.h main.h xcdrdata.h xcdroast.h gettext.h
 
 
-xcdroast_CFLAGS = $(GNUCFLAGS) $(GDK_PIXBUF_CFLAGS) $(EXTRA_CFLAGS) $(AM_CFLAGS) -DPRE_PREFIX="\"$(prefix)\"" -DPRE_LIBDIR="\"$(XCDRLIB_PREFIX)\"" -DCDRTOOLS_PREFIX="\"$(CDRTOOLS_PREFIX)\"" -DSYSCONFDIR="\"$(sysconfdir)\"" -DUSE_NONROOTMODE="$(USE_NONROOTMODE)"
+xcdroast_CFLAGS = $(GNUCFLAGS) $(GDK_PIXBUF_CFLAGS) $(EXTRA_CFLAGS) $(AM_CFLAGS) -DPRE_PREFIX="\"$(prefix)\"" -DPRE_LIBDIR="\"$(XCDRLIB_PREFIX)\"" -DPRE_SHAREDIR="\"$(XCDRSHARE_PREFIX)\"" -DCDRTOOLS_PREFIX="\"$(CDRTOOLS_PREFIX)\"" -DSYSCONFDIR="\"$(sysconfdir)\"" -DUSE_NONROOTMODE="$(USE_NONROOTMODE)"
 xcdroast_LDFLAGS = $(EXTRA_LDFLAGS)
 xcdroast_LDADD = @LIBINTL@ @ALLOCA@ $(GTK_LIBS) $(GDK_PIXBUF_LIBS) $(AUDIO_LIBS)
 
@@ -159,7 +160,7 @@
 cddbtool_LDADD = $(GLIB_LIBS)
 
 xcdrwrap_SOURCES = xcdrwrap.c largefile.h xcdroast.h
-xcdrwrap_CFLAGS = $(GNUCFLAGS) $(EXTRA_CFLAGS) $(AM_CFLAGS) -DPRE_PREFIX="\"$(prefix)\"" -DPRE_LIBDIR="\"$(XCDRLIB_PREFIX)\"" -DCDRTOOLS_PREFIX="\"$(CDRTOOLS_PREFIX)\"" -DSYSCONFDIR="\"$(sysconfdir)\"" -DUSE_NONROOTMODE="$(USE_NONROOTMODE)"
+xcdrwrap_CFLAGS = $(GNUCFLAGS) $(EXTRA_CFLAGS) $(AM_CFLAGS) -DPRE_PREFIX="\"$(prefix)\"" -DPRE_LIBDIR="\"$(XCDRLIB_PREFIX)\"" -DPRE_SHAREDIR="\"$(XCDRSHARE_PREFIX)\"" -DCDRTOOLS_PREFIX="\"$(CDRTOOLS_PREFIX)\"" -DSYSCONFDIR="\"$(sysconfdir)\"" -DUSE_NONROOTMODE="$(USE_NONROOTMODE)"
 subdir = src
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
diff -urNad trunk~/src/init.c trunk/src/init.c
--- trunk~/src/init.c	2006-05-06 15:52:32.000000000 +0200
+++ trunk/src/init.c	2006-05-06 15:54:54.000000000 +0200
@@ -73,6 +73,7 @@
 gchar username[MAXLINE];
 gchar configdir[MAXLINE];
 gchar sharedir[MAXLINE];
+gchar libdir[MAXLINE];
 gchar rootconfig[MAXLINE];
 gchar prefixdir[MAXLINE];
 gint support_ontheflyaudio;
@@ -499,13 +500,13 @@
 		gtk_exit(1);
 	}
 
-	g_snprintf(tmp,MAXLINE,"%s/%s", sharedir, WAVPLAY);
+	g_snprintf(tmp,MAXLINE,"%s/%s", libdir, WAVPLAY);
 	check_executable(tmp,NULL,1);
-	g_snprintf(tmp,MAXLINE,"%s/%s", sharedir, RMTOOL);
+	g_snprintf(tmp,MAXLINE,"%s/%s", libdir, RMTOOL);
 	check_executable(tmp,NULL,1);
-	g_snprintf(tmp,MAXLINE,"%s/%s", sharedir, VRFYTOOL);
+	g_snprintf(tmp,MAXLINE,"%s/%s", libdir, VRFYTOOL);
 	check_executable(tmp,NULL,1);
-	g_snprintf(tmp,MAXLINE,"%s/%s", sharedir, CDDBTOOL);
+	g_snprintf(tmp,MAXLINE,"%s/%s", libdir, CDDBTOOL);
 	check_executable(tmp,NULL,1);
 
 	return isProDVD;
@@ -520,7 +521,7 @@
 gchar tmp[MAXLINE];
 gint stat;
 
-	g_snprintf(tmp,MAXLINE,"%s/%s", sharedir, WRAPPER);
+	g_snprintf(tmp,MAXLINE,"%s/%s", libdir, WRAPPER);
 	check_executable(tmp,NULL,1);
 
 	/* security check. If this fails then the wrapper is wrong */
@@ -662,7 +663,7 @@
 	nofail = 1;
 	
 	/* first check if the wrapper got the correct permissions */
-	g_snprintf(tmp,MAXLINE,"%s/%s", sharedir, WRAPPER);
+	g_snprintf(tmp,MAXLINE,"%s/%s", libdir, WRAPPER);
 	wrap_uid = get_file_owner(tmp);
 	wrap_gid = sgid_set(tmp);
 
@@ -764,7 +765,7 @@
 	g_print("Options:\n");
 	g_print("\t-d <debug level>\n");
 	g_print("\t-c <config directory>  (currently: %s)\n", configdir);
-	g_print("\t-l <lib directory>     (currently: %s)\n", sharedir);
+	g_print("\t-l <lib directory>     (currently: %s)\n", libdir);
 /*	g_print("\t-r <root config-file>  (currently: %s)\n", rootconfig); */
 	g_print("\t-o : Disable multibyte font support\n");
 	g_print("\t-n : Disable cdrtools version check (use at own risk)\n");
@@ -813,11 +814,17 @@
 	writerreaderdevs = NULL;
 
 #ifdef PRE_LIBDIR 
-	/* use prefix as sharedir as it came from the makefile-option */
-	strncpy(sharedir, PRE_LIBDIR, MAXLINE);
+	/* use prefix as libdir as it came from the makefile-option */
+	strncpy(libdir, PRE_LIBDIR, MAXLINE);
 #else
 	/* otherwise install our default prefix */
-	strncpy(sharedir, LIBDIR, MAXLINE);
+	strncpy(libdir, LIBDIR, MAXLINE);
+#endif
+
+#ifdef PRE_SHAREDIR
+	strncpy(sharedir, PRE_SHAREDIR, MAXLINE);
+#else
+	strncpy(sharedir, SHAREDIR, MAXLINE);
 #endif
 
 #ifdef CDRTOOLS_PREFIX
@@ -851,7 +858,7 @@
 		break;
 */
 	case 'l':
-		strncpy(sharedir, optarg, MAXLINE);
+		strncpy(libdir, optarg, MAXLINE);
 		break;
 
 	case 'a':
@@ -908,7 +915,7 @@
 	dodebug(1, "debug level: %d\n", debug);
 	dodebug(1, "configdir: %s\n", configdir);
 	dodebug(1, "rootconfig: %s\n", rootconfig);
-	dodebug(1, "libdir: %s\n",sharedir);
+	dodebug(1, "libdir: %s\n",libdir);
 	dodebug(1, "checking large file support: sizeof(off_t) = %d\n", sizeof(off_t));
 
 	/* gettext stuff */
diff -urNad trunk~/src/io.c trunk/src/io.c
--- trunk~/src/io.c	2006-05-06 15:18:20.000000000 +0200
+++ trunk/src/io.c	2006-05-06 15:54:54.000000000 +0200
@@ -114,6 +114,7 @@
 extern gchar hostname[MAXLINE];
 extern gchar username[MAXLINE];
 extern gchar sharedir[MAXLINE];
+extern gchar libdir[MAXLINE];
 extern gchar configdir[MAXLINE];
 extern gchar prefixdir[MAXLINE];
 extern GtkWidget *cddb_info_label;
@@ -7863,7 +7864,7 @@
 	gtk_label_set_text(GTK_LABEL(readtrack_info_label), _("Deleting tracks..."));
 
 	/* build of command line */
-	g_snprintf(orgcmd,MAXLINE,"%s/%s ", sharedir, RMTOOL);
+	g_snprintf(orgcmd,MAXLINE,"%s/%s ", libdir, RMTOOL);
 	strcpy(cmd,orgcmd);
 
 	length = g_list_length(delfiles);
@@ -8094,7 +8095,7 @@
 
 	/* always verify in 512 bytes blocks */
 	g_snprintf(cmd2,MAXLINE,"%s/%s -b \"%s\" -", 
-		   sharedir, VRFYTOOL, convert_escape(tmptmp));
+		   libdir, VRFYTOOL, convert_escape(tmptmp));
 
 	dodebug(1, "spawning: %s | %s\n",cmd,cmd2);
 	dolog(2, "Verify data track %s\n", fname);
@@ -8224,7 +8225,7 @@
 	
 	strcpy(tmptmp,fname);
 	g_snprintf(cmd2,MAXLINE,"%s/%s -a \"%s\" -", 
-		   sharedir, VRFYTOOL, convert_escape(tmptmp));
+		   libdir, VRFYTOOL, convert_escape(tmptmp));
 
 	dodebug(1, "spawning: %s | %s\n",cmd,cmd2);
 	dolog(2, "Verify audio track %s\n", fname);
@@ -8521,7 +8522,7 @@
 	if (setupdata.cddb_use_http == 0) {
 	  	g_snprintf(cmd,MAXLINE,
 		"%s/%s -s \"%s\" -p %d -u \"%s\" -h \"%s\" -q \"%s\"", 
-		sharedir, CDDBTOOL, tmp_cddbhost, setupdata.cddb_port,
+		libdir, CDDBTOOL, tmp_cddbhost, setupdata.cddb_port,
 		username, hostname, tmp);
 	} else {
 		/* we want to use http */
@@ -8529,13 +8530,13 @@
 			/* but no proxy */
 	  		g_snprintf(cmd,MAXLINE,
 			"%s/%s -s \"%s\" -u \"%s\" -h \"%s\" -H -q \"%s\"", 
-			sharedir, CDDBTOOL, tmp_cddbhost, 
+			libdir, CDDBTOOL, tmp_cddbhost, 
 			username, hostname, tmp);
 		} else {
 			/* http with proxy */
 	  		g_snprintf(cmd,MAXLINE,
 			"%s/%s -s \"%s\" -u \"%s\" -h \"%s\" -U \"%s\" -P %d -q \"%s\"", 
-			sharedir, CDDBTOOL, tmp_cddbhost, 
+			libdir, CDDBTOOL, tmp_cddbhost, 
 			username, hostname, tmp_cddbproxy,
 			setupdata.cddb_proxy_port, tmp);
 		}
@@ -8593,8 +8594,8 @@
 FILE *fpin;
 
 	/* allocate memory */
-	g_snprintf(line,MAXLINE,"%s/%s -d \"%s\" \"%s/%s\" 2>&1", sharedir, 
-			WAVPLAY, setupdata.dsp_device, sharedir, DSPTESTSOUND);
+	g_snprintf(line,MAXLINE,"%s/%s -d \"%s\" \"%s/%s\" 2>&1", libdir, 
+			WAVPLAY, setupdata.dsp_device, libdir, DSPTESTSOUND);
 
 	dodebug(1, "calling: %s\n", line);
 
@@ -10224,8 +10225,8 @@
 		if (strncmp(line,"X-CD-Roast ", 11) == 0) {
 			strcpy(xcdrver,line+11);
 		}
-		if (strncmp(line,"sharedir: ", 10) == 0) {
-			strcpy(sharever,line+10);
+		if (strncmp(line,"libdir: ", 8) == 0) {
+			strcpy(sharever,line+8);
 		}
 		if (strncmp(line,"prefixdir: ", 11) == 0) {
 			strcpy(prefixver,line+11);
@@ -10254,9 +10255,9 @@
 			tmp, xcdrver, XCDROAST_VERSION);
 		ret = 1;
 	}
-	if (strcmp(sharever,sharedir) != 0) {
-		fprintf(stderr, "WARNING: Wrapper %s configured\n\tsharedir %s instead of %s\n", 
-			tmp, sharever, sharedir);
+	if (strcmp(sharever,libdir) != 0) {
+		fprintf(stderr, "WARNING: Wrapper %s configured\n\tlibdir %s instead of %s\n", 
+			tmp, sharever, libdir);
 		ret = 0;
 	}
 	if (strcmp(prefixver,prefixdir) != 0) {
@@ -10370,7 +10371,7 @@
 #endif
 	
 	 /* set the correct permissions to the wrapper */
-	 g_snprintf(bin,MAXLINE,"%s/%s", sharedir, WRAPPER);
+	 g_snprintf(bin,MAXLINE,"%s/%s", libdir, WRAPPER);
 	 g_snprintf(tmp,MAXLINE,"%s root %s\n", cmd_chown, bin);
 	 strcat(ret,tmp);
 #if 0
@@ -10456,7 +10457,7 @@
 		}
 		free_nonrootvalues(&nrs_vals);
 #endif
-	 	g_snprintf(bin,MAXLINE,"%s/%s", sharedir, WRAPPER);
+	 	g_snprintf(bin,MAXLINE,"%s/%s", libdir, WRAPPER);
 	 	g_snprintf(tmp,MAXLINE,"%s 755 %s\n", cmd_chmod, bin);
 	 	strcat(ret,tmp);
 	}
diff -urNad trunk~/src/main.c trunk/src/main.c
--- trunk~/src/main.c	2006-05-06 15:52:28.000000000 +0200
+++ trunk/src/main.c	2006-05-06 15:54:54.000000000 +0200
@@ -57,6 +57,7 @@
 static gint lastxsize, lastysize;
 
 extern gchar sharedir[MAXLINE];
+extern gchar libdir[MAXLINE];
 extern gchar rootconfig[MAXLINE];
 extern gchar xcdroast_version_loaded[MAXLINE];
 
diff -urNad trunk~/src/menus.c trunk/src/menus.c
--- trunk~/src/menus.c	2006-05-06 15:18:20.000000000 +0200
+++ trunk/src/menus.c	2006-05-06 15:54:54.000000000 +0200
@@ -72,6 +72,7 @@
 extern GList *tocfiles;
 extern gint read_abort_mark;
 extern gchar sharedir[MAXLINE];
+extern gchar libdir[MAXLINE];
 extern GtkWidget *cdlist_l1, *imglist_l2;
 extern GtkCList *cdlist, *imglist2;
 extern gchar configdir[MAXLINE];
diff -urNad trunk~/src/setup.c trunk/src/setup.c
--- trunk~/src/setup.c	2006-05-06 15:18:20.000000000 +0200
+++ trunk/src/setup.c	2006-05-06 15:54:54.000000000 +0200
@@ -61,6 +61,7 @@
 extern gchar rootconfig[MAXLINE];
 extern gchar xcdroast_version_loaded[MAXLINE];
 extern gchar sharedir[MAXLINE];
+extern gchar libdir[MAXLINE];
 extern gint altdevscan;
 extern gchar security_key[MAXLINE];
 
diff -urNad trunk~/src/wav_frontend.c trunk/src/wav_frontend.c
--- trunk~/src/wav_frontend.c	2006-05-06 15:18:20.000000000 +0200
+++ trunk/src/wav_frontend.c	2006-05-06 15:54:54.000000000 +0200
@@ -50,6 +50,7 @@
 extern setup_data_t setupdata;
 extern GList *imagelist;
 extern gchar sharedir[MAXLINE];
+extern gchar libdir[MAXLINE];
 
 gint wav_in, wavplay_quit;
 GtkWidget *wav_quit_button;
@@ -157,7 +158,7 @@
 	}
 
 	strcpy(tmptmp,filename);
-	g_snprintf(cmd,MAXLINE,"%s/%s -g -d \"%s\" \"%s\" 2>&1", sharedir, WAVPLAY, 
+	g_snprintf(cmd,MAXLINE,"%s/%s -g -d \"%s\" \"%s\" 2>&1", libdir, WAVPLAY, 
 			setupdata.dsp_device, convert_escape(tmptmp));
 
 	dodebug(1, "spawning shell: %s\n",cmd);
diff -urNad trunk~/src/xcdroast.h trunk/src/xcdroast.h
--- trunk~/src/xcdroast.h	2006-05-06 15:18:20.000000000 +0200
+++ trunk/src/xcdroast.h	2006-05-06 15:54:54.000000000 +0200
@@ -174,6 +174,7 @@
 /* default paths/configfile */
 #define PREFIX "/usr/local"
 #define LIBDIR "lib/xcdroast-0.98"
+#define SHAREDIR "share/xcdroast-0.98"
 #define CONFIGDIR "~/.xcdroast"
 #define CONFFILE "xcdr098.cfg"
 #define LOGFILE "xcdr098.log"
diff -urNad trunk~/src/xcdrwrap.c trunk/src/xcdrwrap.c
--- trunk~/src/xcdrwrap.c	2006-05-06 15:18:20.000000000 +0200
+++ trunk/src/xcdrwrap.c	2006-05-06 15:54:54.000000000 +0200
@@ -91,6 +91,7 @@
 
 
 static char sharedir[MAXLINE];
+static char libdir[MAXLINE];
 static char prefixdir[MAXLINE];
 static char rootconfig[MAXLINE];
 static char username[MAXLINE];
@@ -298,6 +299,7 @@
 	}
 	if (strncmp(cmd,"-V",MAXLINE) == 0) {
 		printf("X-CD-Roast %s\n", XCDROAST_VERSION);
+		printf("libdir: %s\n", libdir);
 		printf("sharedir: %s\n", sharedir);
 		printf("prefixdir: %s\n", prefixdir);
 
@@ -359,8 +361,8 @@
 		return;
 	}
 
-	/* otherwise its relative - add sharedir first */
-	snprintf(ret,MAXLINE,"%s/%s", sharedir, app);
+	/* otherwise its relative - add libdir first */
+	snprintf(ret,MAXLINE,"%s/%s", libdir, app);
 
 	/* now check if this file does exist */
 	if (stat(ret,&buf) != 0) {
@@ -613,11 +615,13 @@
 	seen_device_spec = 0;
 
 #ifdef PRE_LIBDIR 
-        /* use prefix as sharedir as it came from the makefile-option */
-        strncpy(sharedir, PRE_LIBDIR, MAXLINE);
+        /* use prefix as libdir as it came from the makefile-option */
+        strncpy(libdir, PRE_LIBDIR, MAXLINE);
+		strncpy(sharedir, PRE_SHAREDIR, MAXLINE);
 #else
         /* otherwise install our default prefix */
-        strncpy(sharedir, LIBDIR, MAXLINE);
+        strncpy(libdir, LIBDIR, MAXLINE);
+		strncpy(sharedir, SHAREDIR, MAXLINE);
 #endif
 
 #ifdef CDRTOOLS_PREFIX
diff -urNad trunk~/src/xtools.c trunk/src/xtools.c
--- trunk~/src/xtools.c	2006-05-06 15:54:54.000000000 +0200
+++ trunk/src/xtools.c	2006-05-06 15:54:54.000000000 +0200
@@ -58,6 +58,7 @@
 extern gint bigfonts;
 extern gint oldfontcode;
 extern gchar sharedir[MAXLINE];
+extern gchar libdir[MAXLINE];
 extern gchar prefixdir[MAXLINE];
 extern gint c_locale_is_utf8;
 
@@ -2361,8 +2362,8 @@
 		return;
 	}
 
-	/* otherwise its relative - add sharedir first */
-	g_snprintf(ret,MAXLINE,"%s/%s", sharedir, app);
+	/* otherwise its relative - add libdir first */
+	g_snprintf(ret,MAXLINE,"%s/%s", libdir, app);
 
 	/* now check if this file does exist */
 	if (stat(ret,&buf) != 0) {
@@ -2380,7 +2381,7 @@
 gchar *get_wrap_path(gchar *cmd, gchar *ret) {
 gchar tmp[MAXLINE];
 
-	g_snprintf(tmp,MAXLINE,"%s/%s %s", sharedir, WRAPPER, cmd);
+	g_snprintf(tmp,MAXLINE,"%s/%s %s", libdir, WRAPPER, cmd);
 	strncpy(ret, tmp, MAXLINE);
 
 	return ret;
@@ -2394,10 +2395,10 @@
 
 	/* use DVD version if installed and media type > 1GB */
 	if (curset.isProDVD && curset.cdrtype > 1000) {
-		g_snprintf(tmp,MAXLINE,"%s/%s %s", sharedir, WRAPPER, 
+		g_snprintf(tmp,MAXLINE,"%s/%s %s", libdir, WRAPPER, 
 			"CDRECORDPRODVD");
 	} else {
-		g_snprintf(tmp,MAXLINE,"%s/%s %s", sharedir, WRAPPER, 
+		g_snprintf(tmp,MAXLINE,"%s/%s %s", libdir, WRAPPER, 
 			"CDRECORD");
 	}
 	strncpy(ret, tmp, MAXLINE);

xcdroast-0.98alpha15-10_cddbtool.patch:

--- NEW FILE xcdroast-0.98alpha15-10_cddbtool.patch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 10_cddbtool.dpatch by  <Hector Garcia <hector at debian.org>>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Patch to suppor sending utf8 char when using gtk2.
## DP: Provided by Robert Grimm. #336202

@DPATCH@
diff -urNad trunk~/src/cddbtool.c trunk/src/cddbtool.c
--- trunk~/src/cddbtool.c	2006-05-04 13:39:56.000000000 +0200
+++ trunk/src/cddbtool.c	2006-05-04 13:40:52.000000000 +0200
@@ -46,7 +46,11 @@
 
 #define CDDB_HTTP_CMD	"GET http://%s/~cddb/cddb.cgi?cmd="
 #define CDDB_HTTP_KEEP	" HTTP/1.0\r\nHost: %s\r\nConnection: Keep-Alive\r\nProxy-Connection: Keep-Alive\r\n%s\r\n"
+#if GTK_MAJOR_VERSION < 2
 #define CDDB_HTTP_HELLO	"hello=%s+%s+xcdroast+%s&proto=1"CDDB_HTTP_KEEP
+#else
+#define CDDB_HTTP_HELLO "hello=%s+%s+xcdroast+%s&proto=6"CDDB_HTTP_KEEP
+#endif
 #define CDDB_HTTP_STAT	CDDB_HTTP_CMD"stat&"CDDB_HTTP_HELLO
 #define CDDB_HTTP_MOTD	CDDB_HTTP_CMD"motd&"CDDB_HTTP_HELLO
 #define CDDB_HTTP_QUERY	CDDB_HTTP_CMD"cddb+query+%s&"CDDB_HTTP_HELLO
@@ -240,11 +244,30 @@
 		fflush(stdout);
 		return 1;
 	}
-
+	
+#if GTK_MAJOR_VERSION > 1
+	
+	g_snprintf(tmp,MAXLINE,"%s %d\r\n", "proto", 6);
+	if (writen(sockfd,tmp,strlen(tmp), 1) != strlen(tmp)) {
+                g_print("Error: write error on socket when setting protocol\n");
+                fflush(stdout);
+                return 1;
+        }
+        n = read_line2(sockfd, tmp, MAXLINE, 1);
+        if (n < 0) {
+                g_print("Error: read error on socket when setting protocol\n");
+                fflush(stdout);
+                return 1;
+        }
+#endif	
 	code = get_cddb_code(tmp);
 	switch(code) {
-		/* all ok */
+		/* all ok  */
+#if GTK_MAJOR_VERSION < 2
 		case 200:
+#else
+		case 201:
+#endif
 			return 0;
 
 		/* handshake failed */

xcdroast-0.98alpha15-11_mkisofs_options.patch:

--- NEW FILE xcdroast-0.98alpha15-11_mkisofs_options.patch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 11_mkisofs_options.dpatch by  <Hector Garcia <hector at debian.org>>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Support for changes on mkisofs.

@DPATCH@
Index: src/io.c
===================================================================
--- src/io.c.orig	2006-11-05 12:52:46.000000000 +0100
+++ src/io.c	2006-11-05 12:52:55.000000000 +0100
@@ -9027,7 +9027,7 @@
 		strcat(tmp2,"-D ");
 	}
 	if (masterparam.opt[7]) {
-		strcat(tmp2,"-L ");
+		strcat(tmp2,"-allow-leading-dots ");
 	}
 	if (masterparam.opt[8]) {
 		strcat(tmp2,"-d ");
@@ -9161,7 +9161,7 @@
 	}	
 	if (masterparam.publisher) {
 		strcpy(tmptmp, masterparam.publisher);
-		g_snprintf(tmp5,MAXLINE,"-P \"%s\" ",
+		g_snprintf(tmp5,MAXLINE,"-publisher \"%s\" ",
 			convert_escape(tmptmp));
 		strcat(tmp4,tmp5);
 	}	

xcdroast-0.98alpha15-12_cdrecord_versions.patch:

--- NEW FILE xcdroast-0.98alpha15-12_cdrecord_versions.patch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 12_cdrecord_versions.dpatch by  <Hector Garcia <hector at debian.org>>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: No description.

@DPATCH@
diff -urNad trunk~/src/xcdroast.h trunk/src/xcdroast.h
--- trunk~/src/xcdroast.h	2006-05-06 15:18:20.000000000 +0200
+++ trunk/src/xcdroast.h	2006-05-08 11:47:57.000000000 +0200
@@ -124,8 +124,8 @@
    IT WONT WORK WITH LOWER VERSIONS, EVEN WHEN YOU THINK IT DOES! */
  
 #define CDRECORD_VERSION "1.11a34"
-#define CDRECORD_PRODVD_VERSION "2.01a11"
-#define CDRECORD_VERSION_WITH_ONTHFLYAUDIO "2.01a13"
+#define CDRECORD_PRODVD_VERSION "2.01.01"
+#define CDRECORD_VERSION_WITH_ONTHFLYAUDIO "2.01.01"
 #define MKISOFS_VERSION "1.15a17"
 #define CDDA2WAV_VERSION "1.11a34"
 #define READCD_VERSION "1.11a34"

xcdroast-0.98alpha15-13_cdrecord_to_wodim.patch:

--- NEW FILE xcdroast-0.98alpha15-13_cdrecord_to_wodim.patch ---
--- xcdroast-0.98alpha15/src/xcdrdata.h.p23	2003-05-26 22:55:44.000000000 +0200
+++ xcdroast-0.98alpha15/src/xcdrdata.h	2007-08-13 15:36:40.000000000 +0200
@@ -60,7 +60,9 @@ typedef struct setup_data {
 	gboolean root_option_change_imagedirs;
 	gboolean root_option_change_logoptions;
 
+#ifndef CDRECORDDVD_IS_FREE
 	gchar *ProDVDkey;
+#endif
 	geometry_t mainwindow;
 	geometry_t burnwindow;
 	
@@ -120,7 +122,7 @@ typedef struct writer_driver {
 } writer_driver_t;
 
 typedef struct current_set {
-	gint isProDVD;
+	gint isDVD;
 	gint support_ontheflyaudio;
 	gint writer_devnr;
 	gint reader_devnr;
--- xcdroast-0.98alpha15/src/xcdrwrap.c.p23	2007-08-13 15:36:40.000000000 +0200
+++ xcdroast-0.98alpha15/src/xcdrwrap.c	2007-08-13 15:36:40.000000000 +0200
@@ -277,8 +277,8 @@ char tmp[MAXLINE];
 		strcpy(ret, CDRECORD);
 		return ret;
 	}
-	if (strncmp(cmd,"CDRECORDPRODVD",MAXLINE) == 0) {
-		strcpy(ret, CDRECORDPRODVD);
+	if (strncmp(cmd,"CDRECORDDVD",MAXLINE) == 0) {
+		strcpy(ret, CDRECORDDVD);
 		return ret;
 	}
 	if (strncmp(cmd,"CDDA2WAV",MAXLINE) == 0) {
@@ -314,9 +314,9 @@ char tmp[MAXLINE];
 #endif
 		/* show found paths of helper apps */
 		get_spawn_path(CDRECORD, tmp, 1);
-		printf("cdrecord found at: %s\n", tmp);
-		get_spawn_path(CDRECORDPRODVD, tmp, 1);
-		printf("cdrecord-ProDVD found at: %s\n", tmp);
+		printf(CDRECORD_NAME " found at: %s\n", tmp);
+		get_spawn_path(CDRECORDDVD, tmp, 1);
+		printf(CDRECORDDVD_NAME " found at: %s\n", tmp);
 		get_spawn_path(CDDA2WAV, tmp, 1);
 		printf("cdda2wav found at: %s\n", tmp);
 		get_spawn_path(READCD, tmp, 1);
--- xcdroast-0.98alpha15/src/create.c.p23	2003-10-30 12:28:10.000000000 +0100
+++ xcdroast-0.98alpha15/src/create.c	2007-08-13 15:36:40.000000000 +0200
@@ -523,7 +523,7 @@ GtkWidget *scrolled_win, *list;
         gtk_widget_show(tbl);
         vbox = gtk_vbox_new(FALSE,10);
         gtk_table_attach_defaults(GTK_TABLE(tbl),vbox,1,2,0,1);
-	if (!curset.isProDVD) {
+	if (!curset.isDVD) {
         	f1 = gtk_frame_new(_("CD-Information"));
 	} else {
         	f1 = gtk_frame_new(_("CD/DVD-Information"));
@@ -1260,7 +1260,7 @@ GtkWidget *scrolled_win, *img_list;
         gtk_widget_show(tbl);
         vbox = gtk_vbox_new(FALSE,10);
         gtk_table_attach_defaults(GTK_TABLE(tbl),vbox,0,1,0,1);
-	if (!curset.isProDVD) {
+	if (!curset.isDVD) {
         	f1 = gtk_frame_new(_("CD-Information"));
 	} else {
         	f1 = gtk_frame_new(_("CD/DVD-Information"));
@@ -2979,7 +2979,7 @@ GtkTargetEntry target_entry[3];
                 GTK_SIGNAL_FUNC(fixate_clicked), NULL);
         define_tooltip(b1,_("Just fixate (close) the CD, if for some reason the CD has been written but not fixated."));
 
-	if (!curset.isProDVD) {
+	if (!curset.isDVD) {
         	b1 = gtk_button_new_with_label(_("Blank CD-RW"));
 	} else {
         	b1 = gtk_button_new_with_label(_("Blank CD/DVD+-RW"));
@@ -3086,7 +3086,7 @@ GtkTargetEntry target_entry[3];
                 gtk_widget_show (menu_item);
                 i++;
         }
-        if (curset.isProDVD) {
+        if (curset.isDVD) {
                 i = 0;
                 tmpval = curset.cdrtype;
                 while (dvdtypes[i] != 0) {
@@ -5774,7 +5774,7 @@ GtkObject *adj;
 	bootable_frame1 = NULL;
 	bootable_frame2 = NULL;
 
-	if (!curset.isProDVD) {
+	if (!curset.isDVD) {
 		f1 = gtk_frame_new(_("Options to create a bootable CD"));
 	} else {
 		f1 = gtk_frame_new(_("Options to create a bootable CD/DVD"));
@@ -5794,7 +5794,7 @@ GtkObject *adj;
 	gtk_box_pack_start(GTK_BOX(vbox),tbl,FALSE,FALSE,0);
         gtk_widget_show(tbl);
 
-	if (!curset.isProDVD) {
+	if (!curset.isDVD) {
         	l1 = rightjust_gtk_label_new(_("Make CD bootable?"));
 	} else {
         	l1 = rightjust_gtk_label_new(_("Make CD/DVD bootable?"));
@@ -6792,7 +6792,7 @@ gint sel, btn;
 			fill_session_available();
 			/* force recalc of session size if dvd */
 			/* so he will get the multisession warning */
-			if (curset.cdrtype >= 1000 && curset.isProDVD == 1 && curset.multisession == 1) {
+			if (curset.cdrtype >= 1000 && curset.isDVD == 1 && curset.multisession == 1) {
 				set_sessionsize_unknown();	
 			}
 			break;
@@ -7023,7 +7023,7 @@ gchar tmp2[MAXLINE];
                 gtk_widget_show (menu_item);
                 i++;
         }
-        if (curset.isProDVD) {
+        if (curset.isDVD) {
                 i = 0;
                 tmpval = curset.cdrtype;
                 while (dvdtypes[i] != 0) {
@@ -7174,7 +7174,7 @@ gchar tmp2[MAXLINE];
         gtk_widget_show(b1);
         define_tooltip(b1,_("Set additional write options for advanced users."));
 	/* blank button */
-	if (!curset.isProDVD) {
+	if (!curset.isDVD) {
         	b1 = gtk_button_new_with_label(_("Blank CD-RW"));
 	} else {
         	b1 = gtk_button_new_with_label(_("Blank CD/DVD+-RW"));
--- xcdroast-0.98alpha15/src/xtools.c.p23	2007-08-13 15:36:40.000000000 +0200
+++ xcdroast-0.98alpha15/src/xtools.c	2007-08-13 15:36:40.000000000 +0200
@@ -2376,7 +2376,7 @@ struct stat buf;
 
 /* reroute a command through the wrapper */
 /* cmd is one of "CDRECORD", "MKISOFS", "CDDA2WAV", "READCD" 
-   or "CDRECORDPRODVD" */
+   or "CDRECORDDVD" */
 
 gchar *get_wrap_path(gchar *cmd, gchar *ret) {
 gchar tmp[MAXLINE];
@@ -2388,15 +2388,15 @@ gchar tmp[MAXLINE];
 }
 
 /* reroute the cdrecord command through the wrapper */
-/* determine automatically if proDVD version is needed or not */
+/* determine automatically if (pro)DVD version is needed or not */
 
 gchar *get_wrap_path_cdrecord(gchar *ret) {
 gchar tmp[MAXLINE];
 
 	/* use DVD version if installed and media type > 1GB */
-	if (curset.isProDVD && curset.cdrtype > 1000) {
+	if (curset.isDVD && curset.cdrtype > 1000) {
 		g_snprintf(tmp,MAXLINE,"%s/%s %s", libdir, WRAPPER, 
-			"CDRECORDPRODVD");
+			"CDRECORDDVD");
 	} else {
 		g_snprintf(tmp,MAXLINE,"%s/%s %s", libdir, WRAPPER, 
 			"CDRECORD");
@@ -2411,7 +2411,7 @@ gchar tmp[MAXLINE];
 
 gint get_gracetime() {
 
-	if (curset.isProDVD && curset.cdrtype > 1000) {
+	if (curset.isDVD && curset.cdrtype > 1000) {
 		/* use 10 seconds for prodvd, because the keycheck
 		   can take a while... */
 		return 10;
@@ -3522,7 +3522,7 @@ gint count;
 
 /* return whether we have a empty CD-R or DVD-R in the drive */
 /* we are sure that there IS a medium there - but we dont know which type */
-/* check only if device is dvdwriter and we have prodvd installed */
+/* check only if device is dvdwriter and we have (pro)dvd installed */
 
 gchar *return_media_type(gint devnr) {
 gchar drvflags[MAXLINE], drvmodes[MAXLINE];
@@ -3532,7 +3532,7 @@ gint isdvd,i;
 	isdvd = 0;
 	i = get_writerreaderdevs_index(devnr);
 
-	if (i >= 0 && curset.isProDVD && writerreaderdevs[i]->is_dvdwriter) {
+	if (i >= 0 && curset.isDVD && writerreaderdevs[i]->is_dvdwriter) {
 	        if (convert_devnr2busid(devnr,tmp) != 0) {
 	                g_error("non existing cdrom?");
 	        }
--- xcdroast-0.98alpha15/src/main.c.p23	2007-08-13 15:36:40.000000000 +0200
+++ xcdroast-0.98alpha15/src/main.c	2007-08-13 15:36:40.000000000 +0200
@@ -227,7 +227,7 @@ gchar tmp[MAXLINE];
 	gtk_box_pack_start(GTK_BOX(sidespace), side_t,TRUE,TRUE,0);
 
 	side_t_btn1 = gtk_button_new_with_label (_("Setup"));
-	if (!curset.isProDVD) {
+	if (!curset.isDVD) {
 		side_t_btn2 = gtk_button_new_with_label (_("Duplicate CD"));
 		side_t_btn3 = gtk_button_new_with_label (_("Create CD"));
 	} else {
@@ -582,18 +582,20 @@ gint stat;
 */
 
         /* warn about non-existing LFS support in dvd mode */
-        if (curset.isProDVD == 1 && sizeof(off_t) != 8) {
+        if (curset.isDVD == 1 && sizeof(off_t) != 8) {
                 show_dialog(ICO_WARN, _("Warning: Your system is not able to create files larger\nthan 2 GB. Writing DVDs will therefore not possible."), T_OK, NULL, NULL, 0);
         }
 
+#ifndef CDRECORDDVD_IS_FREE
         /* if we are in DVD mode, check if the security-key is set */
-        if (curset.isProDVD == 1) {
+        if (curset.isDVD == 1) {
                 keyenv = getenv("CDR_SECURITY");
                 if (keyenv == NULL) {
 			show_dialog(ICO_WARN, _("Warning: You have not entered a cdrecord-ProDVD key in setup.\nPlease see the FAQ on how to obtain your free key.\nYou also have to renew the key every few months because it got an\nexpire date. You will not be able to properly write DVDs without it."), T_OK, NULL, NULL, 0); 
                 }
 
 	}
+#endif
 
 	dolog(1,"Starting X-CD-Roast\n");
 
--- xcdroast-0.98alpha15/src/main.h.p23	2007-08-13 15:36:40.000000000 +0200
+++ xcdroast-0.98alpha15/src/main.h	2007-08-13 15:36:40.000000000 +0200
@@ -194,7 +194,7 @@ gint show_and_start_master();
 gint start_master_action();
 gint start_onthefly_master_action(gint write_devnr);
 
-gint check_version_cdrecord(gchar *match, gint dvd, gchar *found, gint *isProDVD);
+gint check_version_cdrecord(gchar *match, gint dvd, gchar *found, gint *isDVD);
 gint check_version_mkisofs(gchar *match, gchar *found);
 gint check_version_cdda2wav(gchar *match, gchar *found);
 gint check_version_readcd(gchar *match, gchar *found);
--- xcdroast-0.98alpha15/src/init.c.p23	2007-08-13 15:36:40.000000000 +0200
+++ xcdroast-0.98alpha15/src/init.c	2007-08-13 15:36:40.000000000 +0200
@@ -81,8 +81,10 @@ gint c_locale_is_utf8;
 gchar *language = NULL;
 GdkFont *fixedfont;
 
+#ifndef CDRECORDDVD_IS_FREE
 /* ProDVD key in global variable to let solaris-putenv access it */
 gchar security_key[MAXLINE];
+#endif
 
 /* give the setupdata-structure valid startvalues */
 
@@ -137,7 +139,9 @@ gint fullaccess;
         setupdata.root_option_change_imagedirs = fullaccess;
         setupdata.root_option_change_logoptions = fullaccess;
 
+#ifndef CDRECORDDVD_IS_FREE
 	setupdata.ProDVDkey = g_strdup("");	
+#endif
 
 	setupdata.mainwindow.x = -1;
 	setupdata.mainwindow.y = -1;
@@ -157,7 +161,7 @@ static void init_curset() {
 gint cdrtypes[] = CDR_TYPES_MIN;
 gint i;
 
-	curset.isProDVD = 0;
+	curset.isDVD = 0;
 	curset.support_ontheflyaudio = 0;
 	curset.writer_devnr = -1;
 	curset.reader_devnr = -1;
@@ -392,16 +396,16 @@ gint second;
 }
 
 /* check if needed binaries are installed */
-/* return if proDVD version found */
+/* return if (pro)DVD version found */
 
 static gint check_binaries(gint noversioncheck) {
 gchar tmp[MAXLINE];
 gchar ver[MAXLINE];
 gchar link[MAXLINE];
 gint stat;
-gint out, isProDVD;
+gint out, isDVD;
 	
-	isProDVD = 0;
+	isDVD = 0;
 	check_executable(UNAME,UNAME2,0);
 	check_executable(DF,DF2,0);
 
@@ -417,7 +421,7 @@ gint out, isProDVD;
 	}
 	stat = check_version_cdrecord(CDRECORD_VERSION, 0, ver, &out);
 	if (stat == 1 && !noversioncheck) {
-		g_warning("Invalid cdrecord version %s found.\n\tExpecting at least version %s\n\tStart xcdroast with the -n option to override (not recommended!)", ver, CDRECORD_VERSION);	
+		g_warning("Invalid " CDRECORD_NAME " version %s found.\n\tExpecting at least version %s\n\tStart xcdroast with the -n option to override (not recommended!)", ver, CDRECORD_VERSION);	
 		gtk_exit(1);
 	}
 	if (stat == 2) {
@@ -425,8 +429,8 @@ gint out, isProDVD;
 		gtk_exit(1);
 	}
 
-	/* check optional installation of ProDVD version */
-	get_spawn_path(CDRECORDPRODVD,tmp);
+	/* check optional installation of (Pro)DVD version */
+	get_spawn_path(CDRECORDDVD,tmp);
 	if (is_file(tmp)) {
 		if (check_islink(tmp, link)) {
 #if 0
@@ -435,9 +439,9 @@ gint out, isProDVD;
 		dodebug(3, "%s is a link to %s\n", tmp, link); 
 #endif
 		}
-		stat = check_version_cdrecord(CDRECORD_PRODVD_VERSION, 1, ver, &isProDVD);
+		stat = check_version_cdrecord(CDRECORDDVD_VERSION, 1, ver, &isDVD);
 		if (stat == 1 && !noversioncheck) {
-			g_warning("Invalid cdrecord-ProDVD version %s found.\n\tExpecting at least version %s\n\tStart xcdroast with the -n option to override (not recommended!)", ver, CDRECORD_PRODVD_VERSION);	
+			g_warning("Invalid " CDRECORDDVD_NAME " version %s found.\n\tExpecting at least version %s\n\tStart xcdroast with the -n option to override (not recommended!)", ver, CDRECORDDVD_VERSION);	
 			gtk_exit(1);
 		}
 	}
@@ -509,7 +513,7 @@ gint out, isProDVD;
 	g_snprintf(tmp,MAXLINE,"%s/%s", libdir, CDDBTOOL);
 	check_executable(tmp,NULL,1);
 
-	return isProDVD;
+	return isDVD;
 }
 
 
@@ -702,7 +706,7 @@ gint nofail;
 	}
 
 	/* check prodvd only when it is installed */
-	get_spawn_path(CDRECORDPRODVD,tmp);
+	get_spawn_path(CDRECORDDVD,tmp);
 	if (is_file(tmp)) {
 		if (check_nonroot_mode_cdrtools(tmp) == 0) {
 			nofail = 0;
@@ -769,7 +773,8 @@ static void usage(gchar *cmd) {
 /*	g_print("\t-r <root config-file>  (currently: %s)\n", rootconfig); */
 	g_print("\t-o : Disable multibyte font support\n");
 	g_print("\t-n : Disable cdrtools version check (use at own risk)\n");
-	g_print("\t-w : Don't use cdrecord-ProDVD, even when it is available.\n");
+	if (strcmp(CDRECORD, CDRECORDDVD))
+		g_print("\t-w : Don't use " CDRECORDDVD_NAME ", even when it is available.\n");
 #if (defined(__MACH__) && defined(__APPLE__)) 
 	g_print("\t-a : Don't display the autodiskmount daemon handling at startup\n");
 #else
@@ -797,7 +802,7 @@ gchar *mylocale;
 gchar *p1;
 gchar *alt_dev_string;
 gint c, usercnf, stat;
-gint isProDVD, ignoreProDVD;
+gint isDVD, ignoreDVD;
 	
 	if (!language) 
 		language = g_strdup("");
@@ -807,7 +812,7 @@ gint isProDVD, ignoreProDVD;
 	no_versioncheck = 0;
 	support_ontheflyaudio = 0;
 	c_locale_is_utf8 = 0;
-	ignoreProDVD = 0;
+	ignoreDVD = 0;
 	alt_dev_string = NULL;
 	strncpy(configdir, CONFIGDIR, MAXLINE);
 	g_snprintf(rootconfig, MAXLINE, "%s/%s", SYSCONFDIR, ROOTCONFIG);
@@ -874,7 +879,7 @@ gint isProDVD, ignoreProDVD;
 		break;
 
 	case 'w':
-		ignoreProDVD = 1;
+		ignoreDVD = 1;
 		break;
 
 	case 'f':
@@ -974,17 +979,19 @@ gint isProDVD, ignoreProDVD;
 #endif 
 
 	dodebug(3, "Checking for helper binaries (noversioncheck = %d)\n", no_versioncheck);
-	isProDVD = check_binaries(no_versioncheck);
+	isDVD = check_binaries(no_versioncheck);
 
-	if (isProDVD) {
-		if (ignoreProDVD) {
-			isProDVD = 0;
-			dodebug(1,"-> cdrecord.ProDVD detected but disabled\n");
-		} else {	
-			dodebug(1,"-> cdrecord.ProDVD detected\n");
+	if (strcmp(CDRECORD, CDRECORDDVD)) {
+		if (isDVD) {
+			if (ignoreDVD) {
+				isDVD = 0;
+				dodebug(1,"-> " CDRECORDDVD_NAME " detected but disabled\n");
+			} else {	
+				dodebug(1,"-> " CDRECORDDVD_NAME " detected\n");
+			}
+		} else {
+			dodebug(1,"-> " CDRECORDDVD_NAME " not detected\n");
 		}
-	} else {
-		dodebug(1,"-> cdrecord.ProDVD not detected\n");
 	}
 	if (support_ontheflyaudio == 1) {
 		dodebug(1, "   Enabled support for on-the-fly audio\n");
@@ -1025,7 +1032,7 @@ gint isProDVD, ignoreProDVD;
 	tocfiles = (GList *) NULL;
 	strcpy(xcdroast_version_loaded, "");
 
-	curset.isProDVD = isProDVD;
+	curset.isDVD = isDVD;
 	curset.support_ontheflyaudio = support_ontheflyaudio;
 
 	/* load iso-options if available */
@@ -1149,7 +1156,8 @@ gint isProDVD, ignoreProDVD;
 	}
 #endif
 
-	if (curset.isProDVD == 1) {
+#ifndef CDRECORDDVD_IS_FREE
+	if (curset.isDVD == 1) {
 		/* set key if we got one from the config-file */
 		if (strcmp(setupdata.ProDVDkey,"")) {
 
@@ -1162,6 +1170,7 @@ gint isProDVD, ignoreProDVD;
 #endif
 		}
 	}
+#endif
 
 	if (usercnf == 0) {
 		/* load ok */
--- xcdroast-0.98alpha15/src/duplicate.c.p23	2003-10-26 14:14:19.000000000 +0100
+++ xcdroast-0.98alpha15/src/duplicate.c	2007-08-13 15:36:40.000000000 +0200
@@ -1156,7 +1156,7 @@ GtkWidget *scrolled_win;
 	gtk_table_set_col_spacings(GTK_TABLE(tbl),10);
 	gtk_box_pack_start(GTK_BOX(actionspace),tbl,TRUE,TRUE,10);
 	gtk_widget_show(tbl);
-	if (!curset.isProDVD) {
+	if (!curset.isDVD) {
 		f1 = gtk_frame_new(_("CD-Information"));
 	} else {
 		f1 = gtk_frame_new(_("CD/DVD-Information"));
@@ -1739,7 +1739,7 @@ GtkWidget *tbl, *check;
 	gtk_widget_show(tbl);
 	vbox = gtk_vbox_new(FALSE,10);
 	gtk_table_attach_defaults(GTK_TABLE(tbl),vbox,0,1,0,1);
-	if (!curset.isProDVD) {
+	if (!curset.isDVD) {
 		f1 = gtk_frame_new(_("CD-Information"));
 	} else {
 		f1 = gtk_frame_new(_("CD/DVD-Information"));
@@ -2241,7 +2241,7 @@ GtkWidget *tbl, *omenu, *check;
 	gtk_widget_show(tbl);
 	vbox = gtk_vbox_new(FALSE,10);
 	gtk_table_attach_defaults(GTK_TABLE(tbl),vbox,0,1,0,1);
-	if (!curset.isProDVD) {
+	if (!curset.isDVD) {
 		f1 = gtk_frame_new(_("CD-Information"));
 	} else {
 		f1 = gtk_frame_new(_("CD/DVD-Information"));
@@ -3090,7 +3090,7 @@ gint menuidx, menuhistory;
 	gtk_table_set_col_spacings(GTK_TABLE(tbl),10);
 	gtk_box_pack_start(GTK_BOX(actionspace),tbl,TRUE,TRUE,10);
 	gtk_widget_show(tbl);
-	if (!curset.isProDVD) {
+	if (!curset.isDVD) {
 		f1 = gtk_frame_new(_("CD to write"));
 	} else {
 		f1 = gtk_frame_new(_("CD/DVD to write"));
@@ -3107,7 +3107,7 @@ gint menuidx, menuhistory;
 	hbox = gtk_hbox_new(TRUE,10);
 	gtk_box_pack_start(GTK_BOX(actionspace),hbox,FALSE,TRUE,5);
 	gtk_widget_show(hbox);
-	if (!curset.isProDVD) {
+	if (!curset.isDVD) {
 		b1 = gtk_button_new_with_label(_("Write CD"));
 	} else {
 		b1 = gtk_button_new_with_label(_("Write CD/DVD"));
@@ -3118,7 +3118,7 @@ gint menuidx, menuhistory;
 		GTK_SIGNAL_FUNC(writetracks_clicked), NULL);
 	define_tooltip(b1,_("Writes all tracks specified by the TOC file to a CD."));
 
-	if (!curset.isProDVD) {
+	if (!curset.isDVD) {
 		b1 = gtk_button_new_with_label(_("Blank CD-RW"));
 	} else {
 		b1 = gtk_button_new_with_label(_("Blank CD/DVD+-RW"));
@@ -3239,7 +3239,7 @@ gint menuidx, menuhistory;
 		gtk_widget_show (menu_item);
 		i++;
 	}
-	if (curset.isProDVD) {
+	if (curset.isDVD) {
 		i = 0;
 		tmpval = curset.cdrtype;
 		while (dvdtypes[i] != 0) {
@@ -3984,7 +3984,7 @@ GtkWidget *b1;
 	side_widgets[0] = b1;
 	define_tooltip(b1,_("Displays information about the currently inserted CD and tracks stored on the harddrive."));
 
-	if (!curset.isProDVD) {
+	if (!curset.isDVD) {
 		b1 = gtk_toggle_button_new_with_label(_("Read CD"));
 	} else {
 		b1 = gtk_toggle_button_new_with_label(_("Read CD/DVD"));
@@ -3996,7 +3996,7 @@ GtkWidget *b1;
 	side_widgets[1] = b1;
 	define_tooltip(b1,_("Reads all tracks of a CD and copy them to the harddrive."));
 
-	if (!curset.isProDVD) {
+	if (!curset.isDVD) {
 		b1 = gtk_toggle_button_new_with_label(_("Verify CD"));
 	} else {
 		b1 = gtk_toggle_button_new_with_label(_("Verify CD/DVD"));
@@ -4016,7 +4016,7 @@ GtkWidget *b1;
 	side_widgets[3] = b1;
 	define_tooltip(b1,_("Plays audio tracks (.wav files) from the harddrive via soundcard."));
 
-	if (!curset.isProDVD) {
+	if (!curset.isDVD) {
 		b1 = gtk_toggle_button_new_with_label(_("Write CD"));
 	} else {
 		b1 = gtk_toggle_button_new_with_label(_("Write CD/DVD"));
--- xcdroast-0.98alpha15/src/xcdroast.h.p23	2007-08-13 15:36:40.000000000 +0200
+++ xcdroast-0.98alpha15/src/xcdroast.h	2007-08-13 15:36:51.000000000 +0200
@@ -112,11 +112,19 @@
    then in $PREFIX (e.g. /usr/bin/cdrecord instead of 
    /usr/local/lib/xcdroast-0.98/bin/cdrecord) */
 
-#define CDRECORD "bin/cdrecord" 
-#define CDRECORDPRODVD "bin/cdrecord.prodvd" 
-#define CDDA2WAV "bin/cdda2wav"
-#define READCD "bin/readcd"
-#define MKISOFS "bin/mkisofs"
+#define CDRECORD "bin/wodim" 
+#define CDRECORDDVD "bin/wodim" 
+#define CDDA2WAV "bin/icedax"
+#define READCD "bin/readom"
+#define MKISOFS "bin/genisoimage"
+
+#define CDRECORD_NAME "wodim"
+#define CDRECORDDVD_NAME "wodim"
+#define CDRECORDDVD_IS_FREE
+
+#define CDDA2WAV_NAME "icedax"
+#define READCD_NAME "readom"
+#define MKISOFS_NAME "genisoimage"
 
 /* MINIMUM required versions. Greater versions are now silently
    accepted. 
@@ -124,11 +132,11 @@
    IT WONT WORK WITH LOWER VERSIONS, EVEN WHEN YOU THINK IT DOES! */
  
 #define CDRECORD_VERSION "1.11a34"
-#define CDRECORD_PRODVD_VERSION "2.01.01"
+#define CDRECORDDVD_VERSION "2.01.01"
 #define CDRECORD_VERSION_WITH_ONTHFLYAUDIO "2.01.01"
-#define MKISOFS_VERSION "1.15a17"
-#define CDDA2WAV_VERSION "1.11a34"
-#define READCD_VERSION "1.11a34"
+#define MKISOFS_VERSION "1.1.0"
+#define CDDA2WAV_VERSION "1.1.0"
+#define READCD_VERSION "1.1.0"
 
 /* group to use for non-root-mode */
 /* #define NONROOTMODEGROUP "xcdwrite"  - HISTORIC */
--- xcdroast-0.98alpha15/src/io.c.p23	2007-08-13 15:36:40.000000000 +0200
+++ xcdroast-0.98alpha15/src/io.c	2007-08-13 15:36:40.000000000 +0200
@@ -704,7 +704,7 @@ gint found;
 	strncpy(tmp2,dev,MAXLINE);
 	convert_escape(tmp2);
 
-	g_snprintf(tmp,MAXLINE," -scanbus dev= \"%s\" 2>&1",tmp2);
+	g_snprintf(tmp,MAXLINE," -scanbus dev= \"%s\" 2>/dev/null",tmp2);
 	strcat(line,tmp);
 
 	dodebug(1, "calling: %s\n", line);
@@ -923,7 +923,7 @@ scsi_devices_t **scsidevices;
 
 	/* traditional scanning first */
 	get_wrap_path_cdrecord(line);
-	strcat(line," -scanbus 2>&1");
+	strcat(line," -scanbus 2>/dev/null");
 
 	dodebug(1, "calling: %s\n", line);
         if ((fpin = popen(line,"r")) == NULL) {
@@ -974,7 +974,7 @@ scsi_devices_t **scsidevices;
 	scsicount = 0;
 
 	get_wrap_path_cdrecord(line);
-	g_snprintf(tmp,MAXLINE," dev=%s -scanbus 2>&1", transport);
+	g_snprintf(tmp,MAXLINE," dev=%s -scanbus 2>/dev/null", transport);
 	strcat(line, tmp);
 	
 	dodebug(1, "calling: %s\n", line);
@@ -1284,7 +1284,7 @@ FILE *fpin;
 	drvcount = 0;
 
 	get_wrap_path_cdrecord(line);
-	strcat(line," driver=help 2>&1");
+	strcat(line," driver=help 2>&1 | sed -n '/Driver types:/,//p'");
 
 	dodebug(1, "calling: %s\n", line);
         if ((fpin = popen(line,"r")) == NULL) {
@@ -1491,9 +1491,9 @@ gchar *p;
 
         if (!dev) return;
 
-	/* if prodvd available use it to get additional info */
-	if (curset.isProDVD) {
-        	get_wrap_path("CDRECORDPRODVD", tmp);
+	/* if (pro)dvd available use it to get additional info */
+	if (curset.isDVD) {
+        	get_wrap_path("CDRECORDDVD", tmp);
 	} else {
         	get_wrap_path("CDRECORD", tmp);
 	}
@@ -2111,9 +2111,11 @@ gint count;
 	g_snprintf(tmp,MAXLINE,"OPTION_SELECTIONMODE = %d\n",setupdata.option_selectionmode);
 	fputs(tmp,fd);
 
+#ifndef CDRECORDDVD_IS_FREE
 	strcpy(tmp2,setupdata.ProDVDkey);
 	g_snprintf(tmp,MAXLINE,"PRODVD_KEY = \"%s\"\n",convert_escape(tmp2));
 	fputs(tmp,fd);
+#endif
 
 	/* save geometry data? */
 	if (setupdata.option_savepos) {
@@ -2228,6 +2230,7 @@ gint count, i, newadded;
 		if (fgets(line,MAXLINE,fd) == NULL)
 			break;
 
+#ifndef CDRECORDDVD_IS_FREE
 		/* special case here to protect pro-dvd-key */
 		if (strstr(line, "PRODVD_KEY") && strlen(line) > 50) {
 			strncpy(tmp,line,50);
@@ -2236,6 +2239,7 @@ gint count, i, newadded;
 		} else {
 			dodebug(10,"config: %s", line);
 		}
+#endif
 
 		/* skip empty or hashed lines */
 		strip_string(line);
@@ -2515,6 +2519,7 @@ gint count, i, newadded;
 		if (strcmp("OPTION_SELECTIONMODE",id) == 0) {
 			setupdata.option_selectionmode = atoi(value);
 		}
+#ifndef CDRECORDDVD_IS_FREE
 		if (strcmp("PRODVD_KEY",id) == 0) {
 			/* dont overwrite evtuelly set value with empty key */
 			if (strcmp(value,"") != 0) {
@@ -2522,6 +2527,7 @@ gint count, i, newadded;
 				setupdata.ProDVDkey = g_strdup(value);
 			}
 		}
+#endif
 		if (setupdata.option_savepos) {
 			if (strcmp("GEOMETRY_MAINWINDOW_X",id) == 0) {
 				setupdata.mainwindow.x = atoi(value);
@@ -5557,8 +5563,8 @@ gint found_atip,errcount;
 	}
 
 	/* build command line */
-	if (curset.isProDVD) {
-        	get_wrap_path("CDRECORDPRODVD", tmp3);
+	if (curset.isDVD) {
+        	get_wrap_path("CDRECORDDVD", tmp3);
 	} else {
         	get_wrap_path("CDRECORD", tmp3);
 	}
@@ -5867,7 +5873,7 @@ FILE *fpin;
 	drvcount = 0;
 
 	get_wrap_path_cdrecord(line);
-	strcat(line," blank=help 2>&1");
+	strcat(line," blank=help 2>&1 | sed -n '/Blanking options:/,//p'");
 
 	dodebug(1, "calling: %s\n", line);
 
@@ -5991,11 +5997,12 @@ gchar tmp[MAXLINE];
 			dialog_done = -1;
 		}
 
+#ifndef CDRECORDDVD_IS_FREE
 		/* or cdrecord died by signal? e.g. SIGALRM */
 		if (WIFSIGNALED(ret) && read_done == 0) {
 
 			/* most likely invalid prodvd key */
-			if (curset.isProDVD) {
+			if (curset.isDVD) {
 				strncpy(tmp, "\nReceived ALARM from cdrecord-ProDVD. Aborting blank...\nInvalid ProDVD key?\n", MAXLINE);
 
 				convert_for_gtk2_textwidget(tmp);
@@ -6004,6 +6011,7 @@ gchar tmp[MAXLINE];
 				read_done = 1;
 			}
 		}
+#endif
 
                 dodebug(10,"Finished in read_blank_out with status: %d\n", 
                         read_done);
@@ -6169,8 +6177,8 @@ gint ret;
                 strcat(tmp3, tmp4);
         }
 	
-	if (curset.isProDVD) {
-        	get_wrap_path("CDRECORDPRODVD", tmp5);
+	if (curset.isDVD) {
+        	get_wrap_path("CDRECORDDVD", tmp5);
 	} else {
         	get_wrap_path("CDRECORD", tmp5);
 	}
@@ -6378,14 +6386,16 @@ gint cdrecord_stderr;
 			dialog_done = -1;
 		}
 
+#ifndef CDRECORDDVD_IS_FREE
 		/* or cdrecord died by signal? e.g. SIGALRM */
 		if (WIFSIGNALED(ret) && read_done == 0) {
 
 			/* most likely invalid prodvd key */
-			if (curset.isProDVD && curset.cdrtype > 1000) {
+			if (curset.isDVD && curset.cdrtype > 1000) {
 				read_done = 2;
 			}
 		}
+#endif
 
                 dodebug(10,"Finished in read_write_out with status: %d\n", 
                         read_done);
@@ -6411,8 +6421,9 @@ gint cdrecord_stderr;
 		return;
 	}
 
+#ifndef CDRECORDDVD_IS_FREE
 	/* prodvd and beginning to write soon? */
-	if (curset.isProDVD && curset.cdrtype > 1000) {
+	if (curset.isDVD && curset.cdrtype > 1000) {
 		if (strstr(line,"Last chance to quit")) {
 			cdrtimer = gtk_timeout_add(1000, 
 					cdrtimer_callback, NULL);
@@ -6427,6 +6438,7 @@ gint cdrecord_stderr;
 			}
 		}
 	}
+#endif
 
 	/* skip all lines that contain "seconds." */
 	if (n > 8) {
@@ -6717,6 +6729,7 @@ gchar *p;
 }
 
 
+#ifndef CDRECORDDVD_IS_FREE
 /* display an error when useing prodvd and cdrecord aborts */
 
 static void display_invalid_prodvdkey() {
@@ -6725,6 +6738,7 @@ static void display_invalid_prodvdkey() 
 		show_dialog(ICO_WARN, _("cdrecord-ProDVD terminated.\n\nMost likely because you have entered\nan invalid key. Please check if it is correct."), T_OK, NULL, NULL, 0);
 	}
 }
+#endif
 
 
 /* call cdrecord to write some tracks */
@@ -6973,10 +6987,12 @@ gint wrmode;
 	if (read_done != 0 || read_output_ctrl == 5) {
 		gtk_label_set_text(GTK_LABEL(readtrack_info_label), _("Error writing tracks"));
 		gtk_label_set_text(GTK_LABEL(readtrack_small_info),_("Write-Error:"));
+#ifndef CDRECORDDVD_IS_FREE
 		if (read_done == 2) {
 			/* invalid cdrecord key - show window */
 			display_invalid_prodvdkey();
 		}
+#endif
 		return 1;
 	} else {
 		/* all ok */
@@ -7571,10 +7587,12 @@ gfloat per;
 	if (read_done != 0 || read_output_ctrl == 5) {
 		gtk_label_set_text(GTK_LABEL(readtrack_info_label), _("Error writing tracks"));
 		gtk_label_set_text(GTK_LABEL(readtrack_small_info),_("Write-Error:"));
+#ifndef CDRECORDDVD_IS_FREE
                 if (read_done == 2) {
                         /* invalid cdrecord key - show window */
 			display_invalid_prodvdkey();
                 }
+#endif
 		return 1;
 	} else {
 		/* all ok */
@@ -7740,10 +7758,12 @@ gint wrmode;
 	if (read_done != 0 || read_output_ctrl == 5) {
 		gtk_label_set_text(GTK_LABEL(readtrack_info_label), _("Error writing tracks"));
 		gtk_label_set_text(GTK_LABEL(readtrack_small_info),_("Write-Error:"));
+#ifndef CDRECORDDVD_IS_FREE
                 if (read_done == 2) {
                         /* invalid cdrecord key - show window */
 			display_invalid_prodvdkey();
                 }
+#endif
 		return 1;
 	} else {
 		/* all ok */
@@ -9893,10 +9913,12 @@ gint wrmode;
 	if (read_done != 0 || read_output_ctrl == 5) {
 		gtk_label_set_text(GTK_LABEL(readtrack_info_label), _("Error writing tracks"));
 		gtk_label_set_text(GTK_LABEL(readtrack_small_info),_("Write-Error:"));
+#ifndef CDRECORDDVD_IS_FREE
                 if (read_done == 2) {
                         /* invalid cdrecord key - show window */
 			display_invalid_prodvdkey();
                 }
+#endif
 		return 1;
 	} else {
 		/* all ok */
@@ -9910,21 +9932,21 @@ gint wrmode;
 /* check the version of cdrecord */
 /* return 1 if not correct (to old) */
 
-gint check_version_cdrecord(gchar *match, gint dvd, gchar *found, gint *isProDVD) {
+gint check_version_cdrecord(gchar *match, gint dvd, gchar *found, gint *isDVD) {
 gchar line[MAXLINE];
 gchar vline[MAXLINE];
 gchar ver[MAXLINE];
 FILE *fpin;
 gchar *p;
 
-	*isProDVD = 0;
+	*isDVD = 0;
 	strcpy(ver,"");
 	if (dvd) {
-		get_wrap_path("CDRECORDPRODVD",line);
+		get_wrap_path("CDRECORDDVD",line);
 	} else {
 		get_wrap_path("CDRECORD",line);
 	}
-	strcat(line," -version 2>/dev/null");
+	strcat(line," -version 2>&1");
 
 	dodebug(1, "calling: %s\n", line);
         if ((fpin = popen(line,"r")) == NULL) {
@@ -9965,7 +9987,7 @@ gchar *p;
 	} else {
 		p = strstr(vline, "Cdrecord-ProDVD-Clone");
 		if (p != NULL) {
-			*isProDVD = 1;
+			*isDVD = 1;
 			p = strtok(p+22, " ");
 			if (p != NULL) {
 				strcpy(ver,p);
@@ -9979,6 +10001,9 @@ gchar *p;
 					p = strtok(NULL, " ");
 					if (p) {
 						strcpy(ver,p);
+						if (strstr(ver,"-dvd")) {
+							*isDVD = 1;
+						}
 					}
 				}
 			}
@@ -10045,9 +10070,9 @@ gchar *p;
 	/* now line contains the version string of mkisofs */
 	/* try to extract the version number */
 
-	p = strstr(line,"mkisofs");
+	p = strstr(line, MKISOFS_NAME);
 	if (p != NULL) {
-		p = strtok(p+8, " ");
+		p = strtok(p + (sizeof(MKISOFS_NAME) - 1) + 1, " ");
 		if (p != NULL) {
 			strcpy(ver,p);
 		}
@@ -10148,7 +10173,7 @@ gchar *p;
 
 	strcpy(ver,"");
 	get_wrap_path("READCD",line);
-	strcat(line," -version 2>/dev/null");
+	strcat(line," -version 2>/dev/null | head -n 1");
 
 	dodebug(1, "calling: %s\n", line);
         if ((fpin = popen(line,"r")) == NULL) {
@@ -10175,9 +10200,9 @@ gchar *p;
 	/* now line contains the version string of readcd */
 	/* try to extract the version number */
 
-	p = strstr(line,"readcd");
+	p = strstr(line, READCD_NAME);
 	if (p != NULL) {
-		p = strtok(p+7, " ");
+		p = strtok(p + (sizeof(READCD_NAME) - 1) + 1, " ");
 		if (p != NULL) {
 			strcpy(ver,p);
 		}
--- xcdroast-0.98alpha15/src/menus.c.p23	2007-08-13 15:36:40.000000000 +0200
+++ xcdroast-0.98alpha15/src/menus.c	2007-08-13 15:36:40.000000000 +0200
@@ -2702,7 +2702,7 @@ static const gchar *blanktrans[] = BLANK
 	gtk_container_set_border_width (GTK_CONTAINER (box1), 5);
         gtk_container_add(GTK_CONTAINER(dialog),box1);
 
-        if (!curset.isProDVD) {
+        if (!curset.isDVD) {
 		f1 = gtk_frame_new(_("Blank CD-RW"));
         } else {
 		f1 = gtk_frame_new(_("Blank CD/DVD+-RW"));
@@ -2812,7 +2812,7 @@ static const gchar *blanktrans[] = BLANK
 	gtk_box_pack_start(GTK_BOX(box1),box3,FALSE,TRUE,5);
 	gtk_widget_show(box3);
 
-        if (!curset.isProDVD) {
+        if (!curset.isDVD) {
 		button1 = gtk_button_new_with_label(_("Blank CD-RW"));
         } else {
 		button1 = gtk_button_new_with_label(_("Blank CD/DVD+-RW"));
--- xcdroast-0.98alpha15/src/setup.c.p23	2007-08-13 15:36:40.000000000 +0200
+++ xcdroast-0.98alpha15/src/setup.c	2007-08-13 15:36:40.000000000 +0200
@@ -135,8 +135,10 @@ gint i,j;
 	g_free(bak_setupdata.cddb_proxy_host);
 	setupdata.logfile = g_strdup(bak_setupdata.logfile);
 	g_free(bak_setupdata.logfile);
+#ifndef CDRECORDDVD_IS_FREE
 	setupdata.ProDVDkey = g_strdup(bak_setupdata.ProDVDkey);
 	g_free(bak_setupdata.ProDVDkey);
+#endif
 
 	/* restore and free also writerreader structure copy */
 	if (bak_writerreader) {
@@ -266,6 +268,7 @@ gchar *buf, *locreturn, *p;
 	/* check_tilde(tmp); */
 	setupdata.logfile = g_strdup(tmp);
 
+#ifndef CDRECORDDVD_IS_FREE
 	g_free(setupdata.ProDVDkey);
 	n = gtk_text_get_length(GTK_TEXT(prodvdkey_txt));
 	buf = gtk_editable_get_chars(GTK_EDITABLE(prodvdkey_txt),0,n);
@@ -284,6 +287,7 @@ gchar *buf, *locreturn, *p;
 #else  
         putenv(security_key);
 #endif
+#endif
 
 	/* save the current window size if we are asked to */
 	if (setupdata.option_savepos) {
@@ -308,8 +312,8 @@ gchar tmp[MAXLINE];
 	dolog(2, "Confirm setup\n");
 
 	/* some lasts checks and warnings */
-	if (is_dvdwriter(setupdata.writer_devnr) && !curset.isProDVD) {
-		ret = show_dialog(ICO_WARN, _("Please note that you have to install ProDVD support before\nyou can write DVDs. Currently you will only be able to\nwrite regular CDs with your DVD-Writer."), T_OK,T_CANCEL, NULL, 0);
+	if (is_dvdwriter(setupdata.writer_devnr) && !curset.isDVD) {
+		ret = show_dialog(ICO_WARN, _("Please note that you have to install DVD support before\nyou can write DVDs. Currently you will only be able to\nwrite regular CDs with your DVD-Writer."), T_OK,T_CANCEL, NULL, 0);
 		if (ret == 1) {
 			/* abort */
 			return;
@@ -333,7 +337,9 @@ gchar tmp[MAXLINE];
 		return;
 
 	/* free memory of backup-config */
+#ifndef CDRECORDDVD_IS_FREE
 	g_free(bak_setupdata.ProDVDkey);
+#endif
 	g_free(bak_setupdata.logfile);
 	g_free(bak_setupdata.cddb_host);
 	g_free(bak_setupdata.cddb_proxy_host);
@@ -1140,7 +1146,7 @@ static const gchar *helpwritemodes[] = H
 	gtk_box_pack_start(GTK_BOX(vbox2),tbl,FALSE,TRUE,0);
 	gtk_widget_show(tbl);
 
-	if (!curset.isProDVD) {
+	if (!curset.isDVD) {
 		l1 = rightjust_gtk_label_new(_("CD Writer Device:"));
 	} else {
 		l1 = rightjust_gtk_label_new(_("CD/DVD Writer Device:"));
@@ -2740,6 +2746,7 @@ GtkWidget *check;
 	define_tooltip(check, _("When enabled, then multiple selections in lists are handled like the lists in Windows (hold CTRL-Key to select more than one entry and use SHIFT to select a whole range of entries)."));
 
 
+#ifndef CDRECORDDVD_IS_FREE
 	f1 = gtk_frame_new(_("cdrecord-ProDVD key"));
 	set_font_and_color_frame(f1,BOLDFONT,NULL);
 	gtk_box_pack_start(GTK_BOX(vbox),f1,TRUE,TRUE,10);
@@ -2782,6 +2789,7 @@ GtkWidget *check;
 		gtk_widget_set_sensitive(l1, FALSE);
 		gtk_widget_set_sensitive(txt, FALSE);
 	}
+#endif // !defined(CDRECORDDVD_IS_FREE)
 }
 
 
@@ -3186,7 +3194,7 @@ gchar tmp[MAXLINE];
 	gtk_container_add (GTK_CONTAINER (f1), tbl);
 	gtk_widget_show(tbl);
 
-	if (!curset.isProDVD) {
+	if (!curset.isDVD) {
 		check = gtk_check_button_new_with_label(_("change CD Writer Device"));
 	} else {
 		check = gtk_check_button_new_with_label(_("change CD/DVD Writer Device"));
@@ -3208,7 +3216,7 @@ gchar tmp[MAXLINE];
 	gtk_widget_show(check);
 	define_tooltip(check, _("If enabled, then the user is allowed the change the write parameters for the CD Writer (e.g. Speed and FIFO-Buffer-Size)."));
 
-	if (!curset.isProDVD) {
+	if (!curset.isDVD) {
 		check = gtk_check_button_new_with_label(_("change CD Reader Device"));
 	} else {
 		check = gtk_check_button_new_with_label(_("change CD/DVD Reader Device"));
@@ -3290,7 +3298,9 @@ gint i;
 	bak_setupdata.cddb_host = g_strdup(setupdata.cddb_host);
 	bak_setupdata.cddb_proxy_host = g_strdup(setupdata.cddb_proxy_host);
 	bak_setupdata.logfile = g_strdup(setupdata.logfile);
+#ifndef CDRECORDDVD_IS_FREE
 	bak_setupdata.ProDVDkey = g_strdup(setupdata.ProDVDkey);
+#endif
 
 	/* backup the dynamic part of the readerwriter structure too */
 	bak_writerreader = g_new0(writerreader_bak_t *, MAXDEVICES);
@@ -3375,7 +3385,7 @@ gint i;
 	gtk_notebook_append_page(GTK_NOTEBOOK (notebook),f1,l1);
 	draw_scsi_scan(f1);
 
-	if (!curset.isProDVD) {
+	if (!curset.isDVD) {
 		l2 = gtk_label_new(_("CD Settings"));
 	} else {
 		l2 = gtk_label_new(_("CD/DVD Settings"));

xcdroast-0.98alpha15-14_atapi_to_oldatapi.patch:

--- NEW FILE xcdroast-0.98alpha15-14_atapi_to_oldatapi.patch ---
Index: src/io.c
===================================================================
--- src/io.c.orig	2006-12-19 13:02:15.000000000 +0100
+++ src/io.c	2006-12-19 13:18:53.000000000 +0100
@@ -985,7 +985,11 @@
 
 	/* add the found devices to the writerreader structure */
 	count = 0;
-	g_snprintf(tmp,MAXLINE,"%s:", transport);
+	if (strstr(transport,"ATAPI")) {
+		g_snprintf(tmp,MAXLINE,"OLD%s:", transport);
+	} else {
+		g_snprintf(tmp,MAXLINE,"%s:", transport);
+	}
 	while(scsidevices[count] != NULL) {
 		add_writerreader(scsidevices[count], tmp, txt);
 		g_free(scsidevices[count]);

xcdroast-0.98alpha15-15_no_readcd_version.patch:

--- NEW FILE xcdroast-0.98alpha15-15_no_readcd_version.patch ---
diff -urip xcdroast-0.98+0alpha15/src/io.c xcdroast-0.98+0alpha15-fixed/src/io.c
--- xcdroast-0.98+0alpha15/src/io.c	2003-10-26 15:24:48.000000000 +0100
+++ xcdroast-0.98+0alpha15-fixed/src/io.c	2007-01-17 23:04:29.000000000 +0100
@@ -10143,6 +10143,10 @@ gchar *p;
                 g_error("popen error\n");
         }
 
+	/* all versions of readom is good enough! */
+	return 0;
+	
+#if 0
 	strcpy(line,"");
         for (;;) {
                 if (fgets(line,MAXLINE,fpin) == NULL) 
@@ -10185,6 +10189,7 @@ gchar *p;
 		strcpy(found,ver);
 		return 1;
 	}
+#endif
 }
 
 

xcdroast-0.98alpha15-prodvd.patch:

Index: xcdroast-0.98alpha15-prodvd.patch
===================================================================
RCS file: /cvs/pkgs/rpms/xcdroast/devel/xcdroast-0.98alpha15-prodvd.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- xcdroast-0.98alpha15-prodvd.patch	20 Jun 2007 16:10:36 -0000	1.2
+++ xcdroast-0.98alpha15-prodvd.patch	13 Aug 2007 14:18:22 -0000	1.3
@@ -1,158 +1,6 @@
---- xcdroast-0.98alpha15/src/main.c.prodvd	2003-10-30 14:01:01.000000000 +0100
-+++ xcdroast-0.98alpha15/src/main.c	2007-06-20 14:15:36.000000000 +0200
-@@ -584,7 +584,7 @@ gint stat;
-         if (curset.isProDVD == 1 && sizeof(off_t) != 8) {
-                 show_dialog(ICO_WARN, _("Warning: Your system is not able to create files larger\nthan 2 GB. Writing DVDs will therefore not possible."), T_OK, NULL, NULL, 0);
-         }
--
-+#if 0
-         /* if we are in DVD mode, check if the security-key is set */
-         if (curset.isProDVD == 1) {
-                 keyenv = getenv("CDR_SECURITY");
-@@ -593,7 +593,7 @@ gint stat;
-                 }
- 
- 	}
--
-+#endif
- 	dolog(1,"Starting X-CD-Roast\n");
- 
- 	/* install a signal handler to catch CTRL-C */
---- xcdroast-0.98alpha15/src/xtools.c.prodvd	2007-06-20 14:55:15.000000000 +0200
-+++ xcdroast-0.98alpha15/src/xtools.c	2007-06-20 14:54:50.000000000 +0200
-@@ -2403,8 +2403,11 @@ gchar tmp[MAXLINE];
- 
- 	/* use DVD version if installed and media type > 1GB */
- 	if (curset.isProDVD && curset.cdrtype > 1000) {
-+	  get_spawn_path(CDRECORDPRODVD,tmp);
-+	  if (is_file(tmp)) {
- 		g_snprintf(tmp,MAXLINE,"%s/%s %s", sharedir, WRAPPER, 
- 			"CDRECORDPRODVD");
-+	  }
- 	} else {
- 		g_snprintf(tmp,MAXLINE,"%s/%s %s", sharedir, WRAPPER, 
- 			"CDRECORD");
---- xcdroast-0.98alpha15/src/init.c.prodvd	2007-06-20 14:15:36.000000000 +0200
-+++ xcdroast-0.98alpha15/src/init.c	2007-06-20 14:15:36.000000000 +0200
-@@ -440,6 +440,7 @@ gint out, isProDVD;
- 			gtk_exit(1);
- 		}
- 	}
-+	isProDVD = 1;
- 
- 	get_spawn_path(MKISOFS,tmp);
- 	check_executable(tmp,NULL,1);
---- xcdroast-0.98alpha15/src/io.c.prodvd	2007-06-20 14:15:36.000000000 +0200
-+++ xcdroast-0.98alpha15/src/io.c	2007-06-20 14:15:36.000000000 +0200
-@@ -1491,11 +1491,7 @@ gchar *p;
-         if (!dev) return;
- 
- 	/* if prodvd available use it to get additional info */
--	if (curset.isProDVD) {
--        	get_wrap_path("CDRECORDPRODVD", tmp);
--	} else {
--        	get_wrap_path("CDRECORD", tmp);
--	}
-+       	get_wrap_path_cdrecord(tmp);
-         g_snprintf(line, MAXLINE, "%s dev= \"%s\" -v -checkdrive 2>&1", tmp, dev);
- 
-         dodebug(1, "calling: %s\n", line);
-@@ -2970,7 +2966,7 @@ gchar line[MAXLINE];
- 
- 
-         /* read output of getcdtoc */
--        n = read_line(source, line, MAXLINE);
-+        n = read_line_wait(source, line, MAXLINE);
- 
-         /* getcdtoc finished */
-         if (n <= 0) {
-@@ -5556,11 +5552,7 @@ gint found_atip,errcount;
- 	}
- 
- 	/* build command line */
--	if (curset.isProDVD) {
--        	get_wrap_path("CDRECORDPRODVD", tmp3);
--	} else {
--        	get_wrap_path("CDRECORD", tmp3);
--	}
-+       	get_wrap_path_cdrecord(tmp3);
- 	g_snprintf(line,MAXLINE,"%s %s -atip 2>&1",
- 		tmp3,tmp);
- 
-@@ -5993,7 +5985,7 @@ gchar tmp[MAXLINE];
- 		/* or cdrecord died by signal? e.g. SIGALRM */
- 		if (WIFSIGNALED(ret) && read_done == 0) {
- 
--			/* most likely invalid prodvd key */
-+			/* most likely invalid prodvd key 
- 			if (curset.isProDVD) {
- 				strncpy(tmp, "\nReceived ALARM from cdrecord-ProDVD. Aborting blank...\nInvalid ProDVD key?\n", MAXLINE);
- 
-@@ -6001,7 +5993,7 @@ gchar tmp[MAXLINE];
- 				gtk_text_insert(GTK_TEXT(readtrack_textview),
- 					fixedfont,NULL,NULL,tmp, strlen(tmp));
- 				read_done = 1;
--			}
-+			} */
- 		}
- 
-                 dodebug(10,"Finished in read_blank_out with status: %d\n", 
-@@ -6168,11 +6160,7 @@ gint ret;
-                 strcat(tmp3, tmp4);
-         }
- 	
--	if (curset.isProDVD) {
--        	get_wrap_path("CDRECORDPRODVD", tmp5);
--	} else {
--        	get_wrap_path("CDRECORD", tmp5);
--	}
-+       	get_wrap_path_cdrecord(tmp5);
- 
- 	g_snprintf(cmd, MAXLINE,
- 		"%s %s gracetime=%d -v %sblank=%s", 
-@@ -6380,10 +6368,10 @@ gint cdrecord_stderr;
- 		/* or cdrecord died by signal? e.g. SIGALRM */
- 		if (WIFSIGNALED(ret) && read_done == 0) {
- 
--			/* most likely invalid prodvd key */
-+			/* most likely invalid prodvd key 
- 			if (curset.isProDVD && curset.cdrtype > 1000) {
- 				read_done = 2;
--			}
-+			} */
- 		}
- 
-                 dodebug(10,"Finished in read_write_out with status: %d\n", 
-@@ -6719,10 +6707,12 @@ gchar *p;
- /* display an error when useing prodvd and cdrecord aborts */
- 
- static void display_invalid_prodvdkey() {
--
-+	return;
-+#if 0
- 	if (curset.isProDVD && curset.cdrtype > 1000) {
- 		show_dialog(ICO_WARN, _("cdrecord-ProDVD terminated.\n\nMost likely because you have entered\nan invalid key. Please check if it is correct."), T_OK, NULL, NULL, 0);
- 	}
-+#endif
- }
- 
- 
-@@ -9918,12 +9908,8 @@ gchar *p;
- 
- 	*isProDVD = 0;
- 	strcpy(ver,"");
--	if (dvd) {
--		get_wrap_path("CDRECORDPRODVD",line);
--	} else {
--		get_wrap_path("CDRECORD",line);
--	}
--	strcat(line," -version 2>/dev/null");
-+	get_wrap_path_cdrecord(line);
-+	strcat(line," -version 2>&1");
- 
- 	dodebug(1, "calling: %s\n", line);
-         if ((fpin = popen(line,"r")) == NULL) {
-@@ -10011,6 +9997,7 @@ gchar *p;
+--- xcdroast-0.98alpha15/src/io.c.cdrkit	2007-08-13 15:53:39.000000000 +0200
++++ xcdroast-0.98alpha15/src/io.c	2007-08-13 15:56:35.000000000 +0200
+@@ -10041,6 +10041,7 @@ gchar *p;
  
  gint check_version_mkisofs(gchar *match, gchar *found) {
  gchar line[MAXLINE];
@@ -160,7 +8,7 @@
  gchar ver[MAXLINE];
  FILE *fpin;
  gchar *p;
-@@ -10025,17 +10012,22 @@ gchar *p;
+@@ -10055,17 +10056,22 @@ gchar *p;
          }
  
  	strcpy(line,"");
@@ -184,16 +32,7 @@
  		/* failed to open - permission denied */
  		return 2;
  	}
-@@ -10044,7 +10036,7 @@ gchar *p;
- 	/* now line contains the version string of mkisofs */
- 	/* try to extract the version number */
- 
--	p = strstr(line,"mkisofs");
-+	p = strstr(vline,"mkisofs");
- 	if (p != NULL) {
- 		p = strtok(p+8, " ");
- 		if (p != NULL) {
-@@ -10077,7 +10069,7 @@ gchar line2[MAXLINE];
+@@ -10107,7 +10113,7 @@ gchar line2[MAXLINE];
  gchar ver[MAXLINE];
  FILE *fpin;
  gchar *p;
@@ -202,7 +41,7 @@
  	strcpy(ver,"");
  	get_wrap_path("CDDA2WAV",line);
  	strcat(line," -h 2>&1");
-@@ -10092,6 +10084,9 @@ gchar *p;
+@@ -10126,6 +10132,9 @@ gchar *p;
                  if (fgets(line,MAXLINE,fpin) == NULL) 
                          break;
  		dodebug(11,"got: %s",line);
@@ -212,7 +51,7 @@
  		if (strncmp(line, "Version", 7) == 0) {
  			strcpy(line2, line);
  			dodebug(10,"got version: %s",line);
-@@ -10107,6 +10102,10 @@ gchar *p;
+@@ -10141,6 +10150,10 @@ gchar *p;
  		return 2;
  	}
  
@@ -223,7 +62,7 @@
  
  	/* now line2 contains the version string of cdda2wav */
  	/* try to extract the version number */
-@@ -10141,6 +10140,7 @@ gchar *p;
+@@ -10176,13 +10189,14 @@ gchar *p;
  
  gint check_version_readcd(gchar *match, gchar *found) {
  gchar line[MAXLINE];
@@ -231,7 +70,15 @@
  gchar ver[MAXLINE];
  FILE *fpin;
  gchar *p;
-@@ -10155,17 +10155,22 @@ gchar *p;
+ 
+ 	strcpy(ver,"");
+ 	get_wrap_path("READCD",line);
+-	strcat(line," -version 2>/dev/null | head -n 1");
++	strcat(line," -version 2>/dev/null | fgrep " READCD_NAME);
+ 
+ 	dodebug(1, "calling: %s\n", line);
+         if ((fpin = popen(line,"r")) == NULL) {
+@@ -10190,17 +10204,22 @@ gchar *p;
          }
  
  	strcpy(line,"");
@@ -255,12 +102,3 @@
  		/* failed to open - permission denied */
  		return 2;
  	}
-@@ -10174,7 +10179,7 @@ gchar *p;
- 	/* now line contains the version string of readcd */
- 	/* try to extract the version number */
- 
--	p = strstr(line,"readcd");
-+	p = strstr(vline,"readcd");
- 	if (p != NULL) {
- 		p = strtok(p+7, " ");
- 		if (p != NULL) {

xcdroast-0.98alpha15-scan.patch:

Index: xcdroast-0.98alpha15-scan.patch
===================================================================
RCS file: /cvs/pkgs/rpms/xcdroast/devel/xcdroast-0.98alpha15-scan.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- xcdroast-0.98alpha15-scan.patch	20 Jun 2007 16:10:36 -0000	1.3
+++ xcdroast-0.98alpha15-scan.patch	13 Aug 2007 14:18:22 -0000	1.4
@@ -70,12 +70,12 @@
 -		scanbus_new(txt, scanparam);
 +		glob_t globbuf;
 +		int i;
-+		glob("/dev/cdrom-*", GLOB_NOSORT, NULL, &globbuf);
++		if (glob("/dev/cdrom*", GLOB_NOSORT, NULL, &globbuf) == 0) {
 +		for (i = 0; globbuf.gl_pathv && globbuf.gl_pathv[i] != NULL ; i
 +++) {
 +			scanbus_new_single(globbuf.gl_pathv[i], txt);
 +		}
-+		globfree(&globbuf);
++		globfree(&globbuf); }
  	} else {
  		/* the syntax used to scan for REMOTE scsi devices */
  		if (strncmp(devicestr,"REMOTE:", 7) == 0 && 


Index: xcdroast.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xcdroast/devel/xcdroast.spec,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- xcdroast.spec	20 Jun 2007 16:10:36 -0000	1.29
+++ xcdroast.spec	13 Aug 2007 14:18:22 -0000	1.30
@@ -1,24 +1,40 @@
 Summary: An X Window System based tool for creating CDs.
 Name: xcdroast
 Version: 0.98a15
-Release: 14%{?dist}
+Release: 15%{?dist}
 License: GPL
 Group: Applications/Multimedia
-Source: http://prdownloads.sourceforge.net/xcdroast/xcdroast-0.98alpha15.tar.gz
+Source: http://xcdroast.sourceforge.net/RPMS/a15/src/xcdroast-0.98alpha15.tar.gz
 Source1: xcdroast.desktop
-Patch1: xcdroast-0.98alpha15-64bit_gsize.patch
-Patch2: xcdroast-0.98alpha15-conf.patch
-Patch3: xcdroast-0.98alpha15-linebuffer.patch
-Patch4: xcdroast-0.98alpha15-nowarn.patch
-Patch5: xcdroast-0.98alpha15-scan.patch
-Patch6: xcdroast-0.98alpha15-prodvd.patch
-Patch7: xcdroast-0.98alpha15-frozen_gui.patch
-Patch8: xcdroast-0.98alpha15-nogtk1.patch
+Patch1: xcdroast-0.98alpha15-linebuffer.patch
+Patch2: xcdroast-0.98alpha15-nowarn.patch
+Patch3: xcdroast-0.98alpha15-scan.patch
+
+Patch11: xcdroast-0.98alpha15-01_upstream_configure.patch
+Patch12: xcdroast-0.98alpha15-02_upstream_gtk2locale.patch
+Patch13: xcdroast-0.98alpha15-03_upstream_64bit_gsize.patch
+Patch14: xcdroast-0.98alpha15-04_upstream_read_eagain.patch
+Patch15: xcdroast-0.98alpha15-05_upstream_wav.patch
+Patch16: xcdroast-0.98alpha15-06_man.patch
+Patch17: xcdroast-0.98alpha15-07_case_cmp.patch
+Patch18: xcdroast-0.98alpha15-08_desktop.patch
+Patch19: xcdroast-0.98alpha15-09_share_dir.patch
+Patch20: xcdroast-0.98alpha15-10_cddbtool.patch
+Patch21: xcdroast-0.98alpha15-11_mkisofs_options.patch
+Patch22: xcdroast-0.98alpha15-12_cdrecord_versions.patch
+Patch23: xcdroast-0.98alpha15-13_cdrecord_to_wodim.patch
+Patch24: xcdroast-0.98alpha15-14_atapi_to_oldatapi.patch
+Patch25: xcdroast-0.98alpha15-15_no_readcd_version.patch
+
+Patch30: xcdroast-0.98alpha15-prodvd.patch
+Patch31: xcdroast-0.98alpha15-frozen_gui.patch
+Patch32: xcdroast-0.98alpha15-nogtk1.patch
+
 
 Url: http://www.xcdroast.org/
 BuildRoot: /var/tmp/%{name}-root
 Requires: cdrecord >= 2.0, mkisofs >= 2.0
-Requires: cdda2wav >= 2.0
+Requires(hint): cdda2wav >= 2.0
 BuildRequires: gtk2-devel >= 2.0.6
 BuildRequires: desktop-file-utils >= 0.2.92
 
@@ -31,14 +47,30 @@
 
 %prep
 %setup -q -n xcdroast-0.98alpha15
-%patch1 -p0 -b .64bit
-%patch2 -p1 -b .conf
-%patch3 -p1 -b .linebuffer
-%patch4 -p1 -b .nowarn
-%patch5 -p1 -b .scan
-%patch6 -p1 -b .prodvd
-%patch7 -p1 -b .frozen
-%patch8 -p1 -b .nogtk1
+%patch1 -p1 -b .linebuffer
+%patch2 -p1 -b .nowarn
+%patch3 -p1 -b .scan
+
+%patch11 -p1 -b .p11
+%patch12 -p1 -b .p12
+%patch13 -p1 -b .p13
+%patch14 -p1 -b .p14
+%patch15 -p1 -b .p15
+%patch16 -p1 -b .p16
+%patch17 -p1 -b .p17
+%patch18 -p1 -b .p18
+%patch19 -p1 -b .p19
+%patch20 -p1 -b .p20
+%patch21 -p0 -b .p21
+%patch22 -p1 -b .p22
+%patch23 -p1 -b .p23
+%patch24 -p0 -b .p24
+%patch25 -p1 -b .p25
+
+%patch30 -p1 -b .cdrkit
+%patch31 -p1 -b .frozen
+%patch32 -p1 -b .nogtk1
+
 
 %build
 %configure --enable-gtk2 --disable-nonrootmode
@@ -75,6 +107,9 @@
 %{_datadir}/applications/*
  
 %changelog
+* Mon Aug 13 2007 Harald Hoyer <harald at redhat.com> - 0.98a15-15
+- more cdrkit compat patches
+
 * Wed Jun 20 2007 Harald Hoyer <harald at redhat.com> - 0.98a15-13.1
 - added cdrkit compat patches
 


--- xcdroast-0.98alpha15-64bit_gsize.patch DELETED ---


--- xcdroast-0.98alpha15-conf.patch DELETED ---




More information about the fedora-extras-commits mailing list