Package: xcdroast
Version: 0.98+0alpha16-1
Severity: normal

This bug is caused by the fact that wodim (now?) returns the version
string to stderr instead of stdout. The attached three patches (the
other two treat related bugs with mkisofs and cdda2wav) make xcdroast
accepting wodim and Ko, but there is need for more changes to allow
for DVD writing: an adaptation of 13_cdrecord_to_wodim.patch is needed.
Anyone interested in doing that?

For myself I conclude that Debian's xcdroast in its current state is
unusable and I will switch to another frontend.

-- System Information:
Debian Release: squeeze/sid
  APT prefers proposed-updates
  APT policy: (500, 'proposed-updates'), (500, 'unstable'), (500, 'testing'), 
(500, 'stable'), (100, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.26-2-686 (SMP w/2 CPU cores)
Locale: LANG=ru_RU.UTF-8, LC_CTYPE=ru_RU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages xcdroast depends on:
ii  debconf [debconf-2.0]        1.5.26      Debian configuration management sy
ii  genisoimage                  9:1.1.9-1   Creates ISO-9660 CD-ROM filesystem
ii  icedax                       9:1.1.9-1   Creates WAV files from audio CDs
ii  libatk1.0-0                  1.24.0-2    The ATK accessibility toolkit
ii  libc6                        2.9-7       GNU C Library: Shared libraries
ii  libcairo2                    1.8.6-2+b1  The Cairo 2D vector graphics libra
ii  libfontconfig1               2.6.0-3     generic font configuration library
ii  libfreetype6                 2.3.9-4     FreeType 2 font engine, shared lib
ii  libglib2.0-0                 2.20.1-1    The GLib library of C routines
ii  libgtk2.0-0                  2.16.1-2    The GTK+ graphical user interface 
ii  libpango1.0-0                1.24.0-3+b1 Layout and rendering of internatio
ii  wodim                        9:1.1.9-1   command line CD/DVD writing tool

xcdroast recommends no packages.

Versions of packages xcdroast suggests:
pn  cdparanoia                    <none>     (no description available)

-- no debconf information
Index: xcdroast-0.98+0alpha16/src/io.c
===================================================================
--- xcdroast-0.98+0alpha16.orig/src/io.c	2009-04-19 16:56:53.000000000 +0400
+++ xcdroast-0.98+0alpha16/src/io.c	2009-04-19 16:57:34.000000000 +0400
@@ -9909,7 +9909,7 @@
 	*isProDVD = 0;
 	strcpy(ver,"");
 	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) {
Index: xcdroast-0.98+0alpha16/src/io.c
===================================================================
--- xcdroast-0.98+0alpha16.orig/src/io.c	2009-04-19 17:36:50.000000000 +0400
+++ xcdroast-0.98+0alpha16/src/io.c	2009-04-19 17:42:15.000000000 +0400
@@ -10004,6 +10004,7 @@
 
 gint check_version_mkisofs(gchar *match, gchar *found) {
 gchar line[MAXLINE];
+gchar vline[MAXLINE];
 gchar ver[MAXLINE];
 FILE *fpin;
 gchar *p;
@@ -10018,17 +10019,24 @@
         }
 
 	strcpy(line,"");
+        strcpy(vline,"");
         for (;;) {
                 if (fgets(line,MAXLINE,fpin) == NULL) 
                         break;
-		dodebug(10,"got: %s",line);
+
+                /* only get first line */
+		if (strcmp(vline,"") == 0) {
+			strncpy(vline, line, MAXLINE);
+		}
+
+                dodebug(10,"got: %s",line);
         }
 
         if (pclose(fpin) == -1) {
                 g_error("pclose error\n");
         }
 
-	if (strcmp(line,"") == 0 || strstr(line,"sh:") != NULL) {
+	if (strcmp(vline,"") == 0 || strstr(vline,"sh:") != NULL) {
 		/* failed to open - permission denied */
 		return 2;
 	}
@@ -10037,7 +10045,7 @@
 	/* 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) {
Index: xcdroast-0.98+0alpha16/src/io.c
===================================================================
--- xcdroast-0.98+0alpha16.orig/src/io.c	2009-04-19 18:32:26.000000000 +0400
+++ xcdroast-0.98+0alpha16/src/io.c	2009-04-19 18:34:05.000000000 +0400
@@ -10119,6 +10119,12 @@
 			if (p != NULL) {
 				strcpy(ver,p);
 			}
+		} else {
+                        p = strstr(line,"icedax");
+                        if (p != NULL) {
+			        strcpy(found,match);
+                                return 0;
+			}
 		}
 	}
 

Reply via email to