tag 660403 + pending thanks On Tue, 2012-02-28 at 23:06 +0000, Adam D. Barratt wrote: > On Tue, 2012-02-28 at 18:59 -0300, Rogério Brito wrote: > > On Tue, Feb 28, 2012 at 18:07, Adam D. Barratt <a...@adam-barratt.org.uk> > > wrote: > > > The packages which have not been successfully rebuilt thus far are: > > > > > > - cdparanoia - maintainers, are there plans for an upload to resolve > > > #660403? If not, would you be averse to an NMU purely containing the > > > updated kBSD patch? > > > > Feel free to go ahead. Let us get kFBSD in shape. I'm OK with a 0-day NMU. > > Thanks. I'll look at that over the next couple of days or so.
As agreed, please find attached the diff for the NMU which I'll be uploading shortly. Regards, Adam
diff -Nru cdparanoia-3.10.2+debian/debian/changelog cdparanoia-3.10.2+debian/debian/changelog --- cdparanoia-3.10.2+debian/debian/changelog 2010-11-06 16:55:13.000000000 +0000 +++ cdparanoia-3.10.2+debian/debian/changelog 2012-02-29 18:41:09.000000000 +0000 @@ -1,3 +1,11 @@ +cdparanoia (3.10.2+debian-10.1) unstable; urgency=medium + + * Non-maintainer upload with maintainer's consent. + * Urgency "medium" for transition-related RC bug fix. + * Fix FTBFS on kfreebsd caused by libcam API changes. (Closes: #660403) + + -- Adam D. Barratt <a...@adam-barratt.org.uk> Wed, 29 Feb 2012 18:34:44 +0000 + cdparanoia (3.10.2+debian-10) unstable; urgency=low [ Rogério Brito ] diff -Nru cdparanoia-3.10.2+debian/debian/patches/05-kfreebsd.patch cdparanoia-3.10.2+debian/debian/patches/05-kfreebsd.patch --- cdparanoia-3.10.2+debian/debian/patches/05-kfreebsd.patch 2010-11-06 15:16:33.000000000 +0000 +++ cdparanoia-3.10.2+debian/debian/patches/05-kfreebsd.patch 2012-02-29 18:41:13.000000000 +0000 @@ -686,7 +686,7 @@ /* process a complete scsi command. */ static int sg2_handle_scsi_cmd(cdrom_drive *d, unsigned char *cmd, -@@ -432,6 +455,88 @@ +@@ -432,6 +455,91 @@ return sg2_handle_scsi_cmd(d,cmd,cmd_len,in_size,out_size,bytefill,bytecheck,sense); } @@ -740,8 +740,11 @@ + return TR_EREAD; + } + -+ if (d->private_data->ccb->csio.sense_data.error_code & SSD_ERRCODE) { -+ switch (d->private_data->ccb->csio.sense_data.flags & SSD_KEY) { ++ int errorCode, senseKey, addSenseCode, addSenseCodeQual; ++ scsi_extract_sense( &(d->private_data->ccb->csio.sense_data), &errorCode, &senseKey, &addSenseCode, ++ &addSenseCodeQual ); ++ if (errorCode) { ++ switch (senseKey) { + case SSD_KEY_NO_SENSE: + errno = EIO; + return TR_UNKNOWN; @@ -752,8 +755,8 @@ + return TR_BUSY; + case SSD_KEY_MEDIUM_ERROR: + errno = EIO; -+ if (d->private_data->ccb->csio.sense_data.add_sense_code == 0x0c && -+ d->private_data->ccb->csio.sense_data.add_sense_code_qual == 0x09) ++ if (addSenseCode == 0x0c && ++ addSenseCodeQual == 0x09) + return TR_STREAMING; + else + return TR_MEDIUM; @@ -813,34 +816,43 @@ static int mode_sense_atapi(cdrom_drive *d,int size,int page){ unsigned char sense[SG_MAX_SENSE]; -@@ -1080,9 +1209,15 @@ +@@ -1080,10 +1210,20 @@ + sprintf(b,"scsi_read error: sector=%ld length=%ld retry=%d\n", begin,sectors,retry_count); cdmessage(d,b); - sprintf(b," Sense key: %x ASC: %x ASCQ: %x\n", +#if defined(__linux__) + sprintf(b," Sense key: %x ASC: %x ASCQ: %x\n", (int)(sense[2]&0xf), (int)(sense[12]), (int)(sense[13])); +#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) -+ d->private_data->ccb->csio.sense_data.flags & SSD_KEY, -+ d->private_data->ccb->csio.sense_data.add_sense_code, -+ d->private_data->ccb->csio.sense_data.add_sense_code_qual); ++ int errorCode, senseKey, addSenseCode, addSenseCodeQual; ++ scsi_extract_sense( &(d->private_data->ccb->csio.sense_data), &errorCode, &senseKey, &addSenseCode, ++ &addSenseCodeQual ); ++ sprintf(b," Sense key: %x ASC: %x ASCQ: %x\n", ++ senseKey, ++ addSenseCode, ++ addSenseCodeQual); +#endif cdmessage(d,b); sprintf(b," Transport error: %s\n",strerror_tr[err]); cdmessage(d,b); -@@ -1092,9 +1227,15 @@ +@@ -1092,10 +1228,19 @@ + fprintf(stderr,"scsi_read error: sector=%ld length=%ld retry=%d\n", begin,sectors,retry_count); - fprintf(stderr," Sense key: %x ASC: %x ASCQ: %x\n", +#if defined(__linux__) + fprintf(stderr," Sense key: %x ASC: %x ASCQ: %x\n", (int)(sense[2]&0xf), (int)(sense[12]), (int)(sense[13])); +#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) -+ d->private_data->ccb->csio.sense_data.flags & SSD_KEY, -+ d->private_data->ccb->csio.sense_data.add_sense_code, -+ d->private_data->ccb->csio.sense_data.add_sense_code_qual); ++ scsi_extract_sense( &(d->private_data->ccb->csio.sense_data), &errorCode, &senseKey, &addSenseCode, ++ &addSenseCodeQual ); ++ fprintf(stderr," Sense key: %x ASC: %x ASCQ: %x\n", ++ senseKey, ++ addSenseCode, ++ addSenseCodeQual); +#endif fprintf(stderr," Transport error: %s\n",strerror_tr[err]); fprintf(stderr," System error: %s\n",strerror(errno));