[Pkg-libburnia-commits] r277 - in trunk/libburn/debian: . patches

George Danchev danchev at alioth.debian.org
Thu Jul 12 06:08:30 UTC 2012


Author: danchev
Date: 2012-07-12 06:08:29 +0000 (Thu, 12 Jul 2012)
New Revision: 277

Added:
   trunk/libburn/debian/patches/
   trunk/libburn/debian/patches/01_sao-tracks-started-by-audio-pause
   trunk/libburn/debian/patches/02_sao-2-sectors-short-fix
   trunk/libburn/debian/patches/03_cdrskin-sigsegv-track-source-added-no-drive-available
   trunk/libburn/debian/patches/series
Modified:
   trunk/libburn/debian/changelog
Log:
bugfix patch release, targetting wheezy

Modified: trunk/libburn/debian/changelog
===================================================================
--- trunk/libburn/debian/changelog	2012-04-03 19:36:19 UTC (rev 276)
+++ trunk/libburn/debian/changelog	2012-07-12 06:08:29 UTC (rev 277)
@@ -1,3 +1,22 @@
+libburn (1.2.2-2) unstable; urgency=low
+
+  * Bugfix patch (Closes: #680910)
+    01_sao-tracks-started-by-audio-pause:
+    CD SAO sessions with data tracks was started by an audio pause.
+    Affected is an old Sony CD burner, refusing to burn SAO.
+  * Bugfix patch (Closes: #680911)
+    02_sao-2-sectors-short-fix:
+    CD tracks are perceived 2 sectors too short.
+    A correclty burnt CD media in SAO mode, will not be recognized
+    as correct burn by xorriso inspection, which believes that the
+    track size is two sectors shorter, where it is not.
+  * Bugfix patch (Closes: #680968)
+    03_cdrskin-sigsegv-track-source-added-no-drive-available
+    cdrskin could SIGSEGV if track source was added when no drive
+    was available.
+
+ -- George Danchev <danchev at spnet.net>  Mon, 09 Jul 2012 10:47:15 +0200
+
 libburn (1.2.2-1) unstable; urgency=low
 
   * New upstream release

Added: trunk/libburn/debian/patches/01_sao-tracks-started-by-audio-pause
===================================================================
--- trunk/libburn/debian/patches/01_sao-tracks-started-by-audio-pause	                        (rev 0)
+++ trunk/libburn/debian/patches/01_sao-tracks-started-by-audio-pause	2012-07-12 06:08:29 UTC (rev 277)
@@ -0,0 +1,99 @@
+Description: CD SAO sessions with data tracks was started by an audio pause.
+             Affected is an old Sony CD burner, refusing to burn SAO.
+Author: Thomas Schmitt <scdbackup at gmx.net>
+Origin: upstream, http://libburnia-project.org/changeset/4744
+Bug: none
+Bug-Debian: http://bugs.debian.org/680910
+Forwarded: not-needed
+Reviewed-By: George Danchev <danchev at spnet.net>
+Last-Update: 2012-07-10>
+
+--- libburn-1.2.2.orig/doc/cookbook.txt
++++ libburn-1.2.2/doc/cookbook.txt
+@@ -296,8 +296,9 @@ A pre-gap of 2 seconds is mandatory only
+ post-gap may be needed with further tracks if they have neighbors with
+ different DATA FORM values. (Such mixing is not yet supported by libburn.)
+ 
+-DATA FORM is 00h for audio payload, 01h for audio pause, 10h for data,
+-41h for CD-TEXT in Lead-in. 
++DATA FORM is 00h for audio payload, 01h for audio pause (Lead-in and Lead-out),
++10h for data, 14h for data pause (Lead-in and Lead-out).
++This shall be ored with 40h for CD-TEXT in Lead-in. 
+ (mmc5r03c.pdf 6.33.3.11 CD-DA Data Form, 6.33.3.12 CD-ROM mode 1 Form)
+ 
+ SCMS value 80h in conjunction with bit5 of CTL is an indicator for exhausted
+@@ -318,7 +319,8 @@ The next entry (eventually being the fir
+ Its content is 
+ (CTL|ADR ,00h,00h, DATA FORM ,00h,00h,00h,00h)
+ With the CTL|ADR for the first track: 41h for data, 01h for audio.
+-DATA FORM is 41h if CD-TEXT shall be stored in Lean-in. Else it is 01h.
++DATA FORM is pause (audio=01h, data=14h). Ored with 40h if CD-TEXT shall
++be stored in Lean-in.
+ 
+ The LBA for the first write is negative: -150. This corresponds to MSF address
+ 00h:00h:00h. All addresses are to be given in MSF format.
+@@ -354,8 +356,9 @@ A track must at least contain 300 payloa
+ (mmc5r03c.pdf 6.33.3.6)
+ 
+ At the end of the session there is a lead-out entry
+-(CTL|ADR,AAh,01h,01h,00h,MIN,SEC,FRAME)
++(CTL|ADR,AAh,01h,DATA FORM,00h,MIN,SEC,FRAME)
+ marking the end of the last track. (With libburn CTL is as of the last track.)
++DATA FORM is 01h for audio, 14h for data.
+ 
+ 
+ -------------------------------------------------------------------------------
+--- libburn-1.2.2.orig/libburn/write.c
++++ libburn-1.2.2/libburn/write.c
+@@ -508,11 +508,13 @@ struct cue_sheet *burn_create_toc_entrie
+ 			"Track mode has unusable value", 0, 0);
+ 		goto failed;
+ 	}
++	if (tar[0]->mode & BURN_AUDIO)
++		leadin_form = 0x01;
++	else
++		leadin_form = 0x14;
+ 	if (o->num_text_packs > 0) {
+-		leadin_form = 0x41;
++		leadin_form |= 0x40;
+ 	} else {
+-		leadin_form = 0x01;
+-
+ 		/* Check for CD-TEXT in session. Not the final creation,
+ 		   because the cue sheet content might be needed for CD-TEXT
+ 		   pack type 0x88 "TOC".
+@@ -522,7 +524,7 @@ struct cue_sheet *burn_create_toc_entrie
+ 			if (ret < 0)
+ 				goto failed;
+ 			else if (ret > 0)
+-				leadin_form = 0x41;
++				leadin_form |= 0x40;
+ 		}
+ 	}
+ 
+@@ -803,7 +805,9 @@ XXX this is untested :)
+ 	e[2].pmin = m;
+ 	e[2].psec = s;
+ 	e[2].pframe = f;
+-	ret = add_cue(sheet, ctladr | 1, 0xAA, 1, 1, 0, runtime);
++
++	ret = add_cue(sheet, ctladr | 1, 0xAA, 1, leadin_form & 0x3f,
++                      0, runtime);
+ 	if (ret <= 0)
+ 		goto failed;
+ 	return sheet;
+--- libburn-1.2.2.orig/libburn/mmc.c
++++ libburn-1.2.2/libburn/mmc.c
+@@ -908,6 +908,12 @@ int mmc_write(struct burn_drive *d, int
+ 	extern int burn_sg_log_scsi;
+ #endif
+ 
++/*
++fprintf(stderr, "libburn_DEBUG: buffer sectors= %d  bytes= %d\n",
++        buf->sectors, buf->bytes);
++*/
++
++
+ 	c = &(d->casual_command);
+ 
+ #ifdef Libburn_log_in_and_out_streaM

Added: trunk/libburn/debian/patches/02_sao-2-sectors-short-fix
===================================================================
--- trunk/libburn/debian/patches/02_sao-2-sectors-short-fix	                        (rev 0)
+++ trunk/libburn/debian/patches/02_sao-2-sectors-short-fix	2012-07-12 06:08:29 UTC (rev 277)
@@ -0,0 +1,25 @@
+Description: CD tracks are perceived 2 sectors too short.
+ A correclty burnt CD media in SAO mode, will not be recognized
+ as correct burn by xorriso inspection, which believes that the
+ track size is two sectors shorter, where it is not.
+Author: Thomas Schmitt <scdbackup at gmx.net>
+Origin: upstream, http://libburnia-project.org/changeset/4778
+Bug: none
+Bug-Debian: http://bugs.debian.org/680911
+Forwarded: not-needed
+Reviewed-By: George Danchev <danchev at spnet.net>
+Last-Update: 2012-07-10
+
+--- libburn-1.2.2.orig/libburn/structure.c
++++ libburn-1.2.2/libburn/structure.c
+@@ -794,7 +794,9 @@ int burn_disc_cd_toc_extensions(struct b
+ 				if (ret > 0) {
+ 					ret = mmc_four_char_to_int(
+ 							buf->data + 24);
+-					if (ret < prev_entry->track_blocks)
++					if (ret < prev_entry->track_blocks &&
++					    ((!drive->current_is_cd_profile) ||
++					   ret < prev_entry->track_blocks - 2))
+ 						prev_entry->track_blocks = ret;
+ 				}
+ 				prev_entry->extensions_valid |= 1;

Added: trunk/libburn/debian/patches/03_cdrskin-sigsegv-track-source-added-no-drive-available
===================================================================
--- trunk/libburn/debian/patches/03_cdrskin-sigsegv-track-source-added-no-drive-available	                        (rev 0)
+++ trunk/libburn/debian/patches/03_cdrskin-sigsegv-track-source-added-no-drive-available	2012-07-12 06:08:29 UTC (rev 277)
@@ -0,0 +1,90 @@
+Description: cdrskin SIGSEGV if track source was added when no drive was available
+Author: Thomas Schmitt <scdbackup at gmx.net>
+Origin: upstream, http://libburnia-project.org/changeset/4698
+Bug: none
+Bug-Debian: http://bugs.debian.org/680968
+Forwarded: not-needed
+Reviewed-By: George Danchev <danchev at spnet.net>
+Last-Update: 2012-07-10
+
+--- libburn-1.2.2.orig/cdrskin/cdrskin.c
++++ libburn-1.2.2/cdrskin/cdrskin.c
+@@ -1341,8 +1341,13 @@ int Cdrtrack_open_source_path(struct Cdr
+  else {
+    *fd= -1;
+ 
+-   Cdrskin_get_device_adr(track->boss,&device_adr,&raw_adr,
+-                          &no_convert_fs_adr,0);
++ ret= Cdrskin_get_device_adr(track->boss,&device_adr,&raw_adr,
++                             &no_convert_fs_adr,0);
++ if(ret <= 0) {
++   fprintf(stderr,
++           "cdrskin: FATAL : No drive found. Cannot prepare track.\n");
++   return(0);
++ }
+ /*    
+    fprintf(stderr,
+            "cdrskin: DEBUG : device_adr='%s' , raw_adr='%s' , ncfs=%d\n",
+@@ -3706,12 +3711,25 @@ int Cdrskin_destroy(struct CdrskiN **o,
+ }
+ 
+ 
++int Cdrskin_assert_driveno(struct CdrskiN *skin, int flag)
++{
++ if(skin->driveno < 0 || (unsigned int) skin->driveno >= skin->n_drives) {
++   fprintf(stderr,
++       "cdrskin: FATAL : No drive found. Cannot perform desired operation.\n");
++   return(0);
++ }
++ return(1);
++}
++
++
+ /** Return the addresses of the drive. device_adr is the libburn persistent
+     address of the drive, raw_adr is the address as given by the user.
+ */
+ int Cdrskin_get_device_adr(struct CdrskiN *skin,
+            char **device_adr, char **raw_adr, int *no_convert_fs_adr, int flag)
+ {
++ if(skin->driveno < 0 || (unsigned int) skin->driveno >= skin->n_drives)
++   return(0);
+  burn_drive_get_adr(&skin->drives[skin->driveno],skin->device_adr);
+  *device_adr= skin->device_adr;
+  *raw_adr= skin->preskin->raw_device_adr;
+@@ -3782,6 +3800,10 @@ int Cdrskin_attach_fifo(struct CdrskiN *
+  int profile_number;
+  char profile_name[80];
+ 
++ ret= Cdrskin_assert_driveno(skin, 0);
++ if(ret <= 0)
++   return(ret);
++
+  /* Refuse here and thus use libburn fifo only with single track, non-CD */
+  ret= burn_disc_get_profile(skin->drives[skin->driveno].drive,
+                             &profile_number, profile_name);
+@@ -3960,6 +3982,9 @@ int Cdrskin_grab_drive(struct CdrskiN *s
+      drive= NULL;
+      skin->grabbed_drive= drive;
+    } else {
++     ret= Cdrskin_assert_driveno(skin, 0);
++     if(ret <= 0)
++       return(ret);
+      drive= skin->drives[skin->driveno].drive;
+      skin->grabbed_drive= drive;
+    }
+@@ -8720,12 +8745,15 @@ int Cdrskin_create(struct CdrskiN **o, s
+      {*exit_value= 2; goto ex;}
+    }
+    skin->n_drives= 1;
++   skin->driveno= 0;
+    burn_drive_release(skin->drives[0].drive, 0);
+  } else {
+    while (!burn_drive_scan(&(skin->drives), &(skin->n_drives))) {
+      usleep(20000);
+      /* >>> ??? set a timeout ? */
+    }
++   if(skin->n_drives <= 0)
++     skin->driveno= -1;
+  }
+ 
+  burn_msgs_set_severities(skin->preskin->queue_severity,

Added: trunk/libburn/debian/patches/series
===================================================================
--- trunk/libburn/debian/patches/series	                        (rev 0)
+++ trunk/libburn/debian/patches/series	2012-07-12 06:08:29 UTC (rev 277)
@@ -0,0 +1,3 @@
+01_sao-tracks-started-by-audio-pause
+02_sao-2-sectors-short-fix
+03_cdrskin-sigsegv-track-source-added-no-drive-available




More information about the Pkg-libburnia-commits mailing list