[Debburn-changes] r486 - in cdrkit/trunk: . genisoimage libusal wodim

Eduard Bloch blade at alioth.debian.org
Sun Nov 26 12:58:35 CET 2006


Author: blade
Date: 2006-11-26 12:58:34 +0100 (Sun, 26 Nov 2006)
New Revision: 486

Modified:
   cdrkit/trunk/Changelog
   cdrkit/trunk/genisoimage/genisoimage.c
   cdrkit/trunk/genisoimage/tree.c
   cdrkit/trunk/genisoimage/write.c
   cdrkit/trunk/libusal/scsi-linux-ata.c
   cdrkit/trunk/libusal/scsi-linux-sg.c
   cdrkit/trunk/wodim/drv_mmc.c
Log:
Added some SuSE patches

Modified: cdrkit/trunk/Changelog
===================================================================
--- cdrkit/trunk/Changelog	2006-11-26 00:06:18 UTC (rev 485)
+++ cdrkit/trunk/Changelog	2006-11-26 11:58:34 UTC (rev 486)
@@ -15,6 +15,13 @@
   * reenabled selection of the DVD driver, accidentaly disabled in 1.0, when
     beeing in non-verbose mode
   * made dirsplit work with file symlinks
+  * incorporated some OpenSUSE patches:
+    + cdrkit-HZ.patch (with initialized value, *sic*)
+    + cdrkit-dvd-fix.patch (return code tracking)
+    + cdrkit-gcc-workaround.patch
+    + cdrkit-mkisofs-fail-on-large-file.patch (don't just skip them)
+    + cdrkit-mkisofs-grow-check.patch (tolerate grown files)
+    + cdrkit-perms.patch (not breaking on missing device files)
 
   [ Christian Fromme ]
   * big cleanup, phase I, getting rid from Cstyle function definitions in

Modified: cdrkit/trunk/genisoimage/genisoimage.c
===================================================================
--- cdrkit/trunk/genisoimage/genisoimage.c	2006-11-26 00:06:18 UTC (rev 485)
+++ cdrkit/trunk/genisoimage/genisoimage.c	2006-11-26 11:58:34 UTC (rev 486)
@@ -1248,8 +1248,7 @@
 
 extern char	*cdrecord_data;
 
-int
-main(int argc, char *argv[])
+int main(int argc, char *argv[])
 {
 	struct directory_entry de;
 
@@ -1286,6 +1285,8 @@
 	char		*root_info = 0;
 #endif	/* APPLE_HYB */
 
+  if(argc && strstr(argv[0], "mkisofs")) /* lame cheater detected */
+     argv[0]="genisoimage";
 
 #ifdef __EMX__
 	/* This gives wildcard expansion with Non-Posix shells with EMX */
@@ -3751,6 +3752,7 @@
 	 * Filling all allocated data with zeroes will help
 	 * to avoid core dumps.
 	 */
-	memset(pt, 0, size);
+  if (size > 0) /* a workaround for gcc bug gcc.gnu.org/PR25639 */
+     memset(pt, 0, size);
 	return (pt);
 }

Modified: cdrkit/trunk/genisoimage/tree.c
===================================================================
--- cdrkit/trunk/genisoimage/tree.c	2006-11-26 00:06:18 UTC (rev 485)
+++ cdrkit/trunk/genisoimage/tree.c	2006-11-26 11:58:34 UTC (rev 486)
@@ -1569,14 +1569,14 @@
 		errno = EFBIG;
 #endif
 #ifdef	USE_LIBSCHILY
-		errmsg("File %s is too large - ignoring\n",
+		comerr("File %s is too large - ignoring\n",
 			whole_path);
 #else
 		fprintf(stderr,
 			"File %s is too large (errno = %d) - ignoring\n",
 			whole_path, errno);
 #endif
-		return (0);
+    exit(1);
 	}
 	/*
 	 * Add this so that we can detect directory loops with hard links.

Modified: cdrkit/trunk/genisoimage/write.c
===================================================================
--- cdrkit/trunk/genisoimage/write.c	2006-11-26 00:06:18 UTC (rev 485)
+++ cdrkit/trunk/genisoimage/write.c	2006-11-26 11:58:34 UTC (rev 486)
@@ -475,7 +475,7 @@
 		memset(buffer, 0, use);
 		seterrno(0);
 		amt = fread(buffer, 1, use, infile);
-		if (amt < use && amt != remain) {
+		if (amt < use && amt < remain) {
 			/*
 			 * Note that genisoimage is not star and no 100% archiver.
 			 * We only detect file growth if the new size does not
@@ -483,17 +483,13 @@
 			 */
 			if (geterrno() == 0) {
 #ifdef	USE_LIBSCHILY
-				comerrno(EX_BAD,
-					"File '%s' did %s.\n",
-						filename,
-						amt < remain ?
-						"shrink":"grow");
+         comerrno(EX_BAD,
+               "File '%s' did shrink.\n",
+               filename);
 #else
-				fprintf(stderr,
-					"File '%s' did %s.\n",
-						filename,
-						amt < remain ?
-						"shrink":"grow");
+         fprintf(stderr,
+               "File '%s' did shrink.\n",
+               filename);
 				exit(EX_BAD);
 #endif
 			}

Modified: cdrkit/trunk/libusal/scsi-linux-ata.c
===================================================================
--- cdrkit/trunk/libusal/scsi-linux-ata.c	2006-11-26 00:06:18 UTC (rev 485)
+++ cdrkit/trunk/libusal/scsi-linux-ata.c	2006-11-26 11:58:34 UTC (rev 486)
@@ -343,7 +343,7 @@
 	}
 	if (!DEVFS) {
 		/* for /dev/sr0 - /dev/sr? */
-		for (i = 0; ; i++) {
+		for (i = 0; i<16 ; i++) {
 			sprintf(device, "/dev/sr%i", i);
 			if ((f = open(device, O_RDONLY | O_NONBLOCK)) < 0) {
 				if (errno != ENOENT && errno != ENXIO && errno != ENODEV && errno != EACCES) {
@@ -353,9 +353,7 @@
 						device, f, errno);
 					}
 					return (-2);
-				} else if (errno == ENOENT || errno == ENODEV) {
-					break;
-				}
+        }
 			} else {
 				if (sg_amapdev(usalp, f, device, &schilly_bus, &target, &lun)) {
 					(++(*nopen));
@@ -376,9 +374,7 @@
 						device, f, errno);
 					}
 					return (-2);
-				} else if (errno == ENOENT || errno == ENODEV) {
-					break;
-				}
+        }
 			} else {
 				/* ugly hack, make better, when you can. Alex */
 				if (0 > ioctl(f, CDROM_DRIVE_STATUS, CDSL_CURRENT)) {

Modified: cdrkit/trunk/libusal/scsi-linux-sg.c
===================================================================
--- cdrkit/trunk/libusal/scsi-linux-sg.c	2006-11-26 00:06:18 UTC (rev 485)
+++ cdrkit/trunk/libusal/scsi-linux-sg.c	2006-11-26 11:58:34 UTC (rev 486)
@@ -1132,6 +1132,11 @@
 static void
 sg_settimeout(int f, int tmo)
 {
+#ifndef HZ
+	static int HZ=0;
+	if (!HZ)
+		HZ = sysconf(_SC_CLK_TCK);
+#endif
 	tmo *= HZ;
 	if (tmo)
 		tmo += HZ/2;

Modified: cdrkit/trunk/wodim/drv_mmc.c
===================================================================
--- cdrkit/trunk/wodim/drv_mmc.c	2006-11-26 00:06:18 UTC (rev 485)
+++ cdrkit/trunk/wodim/drv_mmc.c	2006-11-26 11:58:34 UTC (rev 486)
@@ -2679,23 +2679,24 @@
 static int 
 fixate_mdvd(SCSI *usalp, cdr_t *dp, track_t *trackp)
 {
+	int ret;
       /*set a really BIG timeout and call fixate_mmc
 	 The BIG timeout is needed in case there was a very short rzone to write at the 
 	 beginning of the disk, because lead-out needs to be at some distance.
       */
-	if(usalp->verbose)
+	if(debug)
 		printf("fixate_mdvd\n");
       usal_settimeout(usalp, 1000);
       if(is_packet(trackp) || dp->profile == 0x1B){
 	  scsi_close_tr_session(usalp, CL_TYPE_SESSION, 0, FALSE);
       }
-      fixate_mmc(usalp, dp, trackp);
+      ret=fixate_mmc(usalp, dp, trackp);
       if (dp->profile == 0x2B) {
 	  scsi_close_tr_session(usalp, CL_TYPE_OPEN_SESSION, 0, FALSE);
 	  scsi_close_tr_session(usalp, CL_TYPE_FINALISE_MINRAD, 0, FALSE);
       }
       usal_settimeout(usalp, 200);
-      
+      return ret;
 }
 
 char	*blank_types[] = {




More information about the Debburn-changes mailing list