summaryrefslogtreecommitdiff
path: root/audio/cdparanoia/patches
diff options
context:
space:
mode:
authormycroft <mycroft>2004-10-10 10:48:39 +0000
committermycroft <mycroft>2004-10-10 10:48:39 +0000
commit106fd5ec1f0753c8335b497c08f117eafba452ae (patch)
tree64d84aae8761c0d6f38d1b66fc61e2e3f3d95076 /audio/cdparanoia/patches
parent8ed1ee087acc99239d9b346877db5964496a2ebb (diff)
downloadpkgsrc-106fd5ec1f0753c8335b497c08f117eafba452ae.tar.gz
Fix a problem with our hacked version of cdda_identify_scsi() that was
causing kaudiocreator to fail with a mysterious "Unknown error".
Diffstat (limited to 'audio/cdparanoia/patches')
-rw-r--r--audio/cdparanoia/patches/patch-cf55
1 files changed, 29 insertions, 26 deletions
diff --git a/audio/cdparanoia/patches/patch-cf b/audio/cdparanoia/patches/patch-cf
index 51bd63d8491..495a546565a 100644
--- a/audio/cdparanoia/patches/patch-cf
+++ b/audio/cdparanoia/patches/patch-cf
@@ -1,4 +1,4 @@
-$NetBSD: patch-cf,v 1.4 2003/10/20 12:07:23 grant Exp $
+$NetBSD: patch-cf,v 1.5 2004/10/10 10:48:39 mycroft Exp $
--- interface/scan_devices.c.orig 2001-03-26 15:44:01.000000000 +1000
+++ interface/scan_devices.c
@@ -11,7 +11,7 @@ $NetBSD: patch-cf,v 1.4 2003/10/20 12:07:23 grant Exp $
#define MAX_DEV_LEN 20 /* Safe because strings only come from below */
/* must be absolute paths! */
static char *scsi_cdrom_prefixes[]={
-@@ -49,10 +51,18 @@ static char *cdrom_devices[]={
+@@ -49,10 +51,18 @@
"/dev/cm206cd",
"/dev/gscd",
"/dev/optcd",NULL};
@@ -30,7 +30,7 @@ $NetBSD: patch-cf,v 1.4 2003/10/20 12:07:23 grant Exp $
cdrom_drive *cdda_find_a_cdrom(int messagedest,char **messages){
/* Brute force... */
-@@ -75,10 +85,12 @@ cdrom_drive *cdda_find_a_cdrom(int messa
+@@ -75,10 +85,12 @@
if((d=cdda_identify(buffer,messagedest,messages)))
return(d);
idmessage(messagedest,messages,"",NULL);
@@ -43,7 +43,7 @@ $NetBSD: patch-cf,v 1.4 2003/10/20 12:07:23 grant Exp $
}
}else{
/* Name. Go for it. */
-@@ -98,6 +110,16 @@ cdrom_drive *cdda_find_a_cdrom(int messa
+@@ -98,6 +110,16 @@
}
return(NULL);
}
@@ -60,7 +60,7 @@ $NetBSD: patch-cf,v 1.4 2003/10/20 12:07:23 grant Exp $
cdrom_drive *cdda_identify(const char *device, int messagedest,char **messages){
struct stat st;
-@@ -117,8 +139,14 @@ cdrom_drive *cdda_identify(const char *d
+@@ -117,8 +139,14 @@
}
#endif
@@ -75,7 +75,7 @@ $NetBSD: patch-cf,v 1.4 2003/10/20 12:07:23 grant Exp $
#ifdef CDDA_TEST
if(!d)d=cdda_identify_test(device,messagedest,messages);
-@@ -146,6 +174,7 @@ char *test_resolve_symlink(const char *f
+@@ -146,6 +174,7 @@
cdrom_drive *cdda_identify_cooked(const char *dev, int messagedest,
char **messages){
@@ -83,7 +83,7 @@ $NetBSD: patch-cf,v 1.4 2003/10/20 12:07:23 grant Exp $
cdrom_drive *d=NULL;
struct stat st;
int fd=-1;
-@@ -273,8 +302,59 @@ cdrom_drive *cdda_identify_cooked(const
+@@ -273,8 +302,59 @@
idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",description);
return(d);
@@ -143,7 +143,7 @@ $NetBSD: patch-cf,v 1.4 2003/10/20 12:07:23 grant Exp $
struct sg_id {
long l1; /* target | lun << 8 | channel << 16 | low_ino << 24 */
long l2; /* Unique id */
-@@ -289,12 +369,18 @@ typedef struct scsiid{
+@@ -289,12 +369,18 @@
/* Even *this* isn't as simple as it bloody well should be :-P */
/* SG has an easy interface, but SCSI overall does not */
static int get_scsi_id(int fd, scsiid *id){
@@ -162,7 +162,7 @@ $NetBSD: patch-cf,v 1.4 2003/10/20 12:07:23 grant Exp $
if(ioctl(fd,SCSI_IOCTL_GET_IDLUN,&argid))return(-1);
id->bus=argid.l2; /* for now */
id->id=argid.l1&0xff;
-@@ -302,6 +388,13 @@ static int get_scsi_id(int fd, scsiid *i
+@@ -302,6 +388,13 @@
if(ioctl(fd,SCSI_IOCTL_GET_BUS_NUMBER,&busarg)==0)
id->bus=busarg;
@@ -176,7 +176,7 @@ $NetBSD: patch-cf,v 1.4 2003/10/20 12:07:23 grant Exp $
return(0);
}
-@@ -390,6 +483,7 @@ matchfail:
+@@ -390,6 +483,7 @@
if(dev!=-1)close(dev);
return(NULL);
}
@@ -184,7 +184,7 @@ $NetBSD: patch-cf,v 1.4 2003/10/20 12:07:23 grant Exp $
void strscat(char *a,char *b,int n){
int i;
-@@ -401,6 +495,7 @@ void strscat(char *a,char *b,int n){
+@@ -401,6 +495,7 @@
strcat(a," ");
}
@@ -192,7 +192,7 @@ $NetBSD: patch-cf,v 1.4 2003/10/20 12:07:23 grant Exp $
/* At this point, we're going to punt compatability before SG2, and
allow only SG2 and SG3 */
static int verify_SG_version(cdrom_drive *d,int messagedest,
-@@ -430,7 +525,9 @@ static int verify_SG_version(cdrom_drive
+@@ -430,7 +525,9 @@
idmessage(messagedest,messages,buffer,"");
return(major);
}
@@ -202,7 +202,7 @@ $NetBSD: patch-cf,v 1.4 2003/10/20 12:07:23 grant Exp $
cdrom_drive *cdda_identify_scsi(const char *generic_device,
const char *ioctl_device, int messagedest,
char **messages){
-@@ -460,6 +557,7 @@ cdrom_drive *cdda_identify_scsi(const ch
+@@ -460,6 +557,7 @@
generic_device);
return(NULL);
}
@@ -210,7 +210,7 @@ $NetBSD: patch-cf,v 1.4 2003/10/20 12:07:23 grant Exp $
if((int)(g_st.st_rdev>>8)!=SCSI_GENERIC_MAJOR){
if((int)(g_st.st_rdev>>8)!=SCSI_CDROM_MAJOR){
idmessage(messagedest,messages,"\t\t%s is not a SCSI device",
-@@ -471,6 +569,7 @@ cdrom_drive *cdda_identify_scsi(const ch
+@@ -471,6 +569,7 @@
ioctl_device=temp;
}
}
@@ -218,7 +218,7 @@ $NetBSD: patch-cf,v 1.4 2003/10/20 12:07:23 grant Exp $
}
if(ioctl_device){
if(stat(ioctl_device,&i_st)){
-@@ -478,6 +577,7 @@ cdrom_drive *cdda_identify_scsi(const ch
+@@ -478,6 +577,7 @@
ioctl_device);
return(NULL);
}
@@ -226,7 +226,7 @@ $NetBSD: patch-cf,v 1.4 2003/10/20 12:07:23 grant Exp $
if((int)(i_st.st_rdev>>8)!=SCSI_CDROM_MAJOR){
if((int)(i_st.st_rdev>>8)!=SCSI_GENERIC_MAJOR){
idmessage(messagedest,messages,"\t\t%s is not a SCSI device",
-@@ -489,6 +589,7 @@ cdrom_drive *cdda_identify_scsi(const ch
+@@ -489,6 +589,7 @@
ioctl_device=temp;
}
}
@@ -234,7 +234,7 @@ $NetBSD: patch-cf,v 1.4 2003/10/20 12:07:23 grant Exp $
}
/* we need to resolve any symlinks for the lookup code to work */
-@@ -505,6 +606,7 @@ cdrom_drive *cdda_identify_scsi(const ch
+@@ -505,6 +606,7 @@
}
if(!generic_device || !ioctl_device){
@@ -242,17 +242,20 @@ $NetBSD: patch-cf,v 1.4 2003/10/20 12:07:23 grant Exp $
if(generic_device){
ioctl_device=
scsi_match(generic_device,scsi_cdrom_prefixes,
-@@ -520,6 +622,9 @@ cdrom_drive *cdda_identify_scsi(const ch
+@@ -520,6 +622,12 @@
if(!generic_device)
goto cdda_identify_scsi_fail;
}
+#else
-+ goto cdda_identify_scsi_fail;
++ if(!generic_device)
++ generic_device = strdup(ioctl_device);
++ else
++ ioctl_device = strdup(generic_device);
+#endif
}
idmessage(messagedest,messages,"\t\tgeneric device: %s",generic_device);
-@@ -556,6 +661,7 @@ cdrom_drive *cdda_identify_scsi(const ch
+@@ -556,6 +664,7 @@
type=(int)(i_st.st_rdev>>8);
@@ -260,7 +263,7 @@ $NetBSD: patch-cf,v 1.4 2003/10/20 12:07:23 grant Exp $
if(type==SCSI_CDROM_MAJOR){
if (!S_ISBLK(i_st.st_mode)) {
idmessage(messagedest,messages,"\t\tSCSI CDROM device %s not a "
-@@ -567,8 +673,10 @@ cdrom_drive *cdda_identify_scsi(const ch
+@@ -567,8 +676,10 @@
"major number",ioctl_device);
goto cdda_identify_scsi_fail;
}
@@ -271,7 +274,7 @@ $NetBSD: patch-cf,v 1.4 2003/10/20 12:07:23 grant Exp $
if((int)(g_st.st_rdev>>8)==SCSI_GENERIC_MAJOR){
if (!S_ISCHR(g_st.st_mode)) {
idmessage(messagedest,messages,"\t\tGeneric SCSI device %s not a "
-@@ -580,6 +688,7 @@ cdrom_drive *cdda_identify_scsi(const ch
+@@ -580,6 +691,7 @@
"major number",generic_device);
goto cdda_identify_scsi_fail;
}
@@ -279,7 +282,7 @@ $NetBSD: patch-cf,v 1.4 2003/10/20 12:07:23 grant Exp $
d=calloc(1,sizeof(cdrom_drive));
-@@ -590,6 +699,7 @@ cdrom_drive *cdda_identify_scsi(const ch
+@@ -590,6 +702,7 @@
d->bigendianp=-1; /* We don't know yet... */
d->nsectors=-1;
@@ -287,7 +290,7 @@ $NetBSD: patch-cf,v 1.4 2003/10/20 12:07:23 grant Exp $
version=verify_SG_version(d,messagedest,messages);
switch(version){
case -1:case 0:case 1:
-@@ -599,6 +709,9 @@ cdrom_drive *cdda_identify_scsi(const ch
+@@ -599,6 +712,9 @@
d->interface=GENERIC_SCSI;
break;
}
@@ -297,7 +300,7 @@ $NetBSD: patch-cf,v 1.4 2003/10/20 12:07:23 grant Exp $
/* malloc our big buffer for scsi commands */
d->sg=malloc(MAX_BIG_BUFF_SIZE);
-@@ -617,7 +730,16 @@ cdrom_drive *cdda_identify_scsi(const ch
+@@ -617,7 +733,16 @@
/* It would seem some TOSHIBA CDROMs gets things wrong */
@@ -315,7 +318,7 @@ $NetBSD: patch-cf,v 1.4 2003/10/20 12:07:23 grant Exp $
!strncmp (p + 16, "CD-ROM", 6) &&
p[0] == TYPE_DISK) {
p[0] = TYPE_ROM;
-@@ -653,6 +775,87 @@ cdda_identify_scsi_fail:
+@@ -653,6 +778,87 @@
if(g_fd!=-1)close(g_fd);
return(NULL);
}