FreeBSD Bugzilla – Attachment 247628 Details for
Bug 200925
audio/cdparanoia: Update to cdparanoia-III-10.2 (3.10.2)
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
patch to update audio/cdparanoia to the latest released version
0001-audio-cdparanoia-Update-to-cdparanoia-III-10.2.patch (text/plain), 68.70 KB, created by
Tobias Rehbein
on 2024-01-13 16:33:21 UTC
(
hide
)
Description:
patch to update audio/cdparanoia to the latest released version
Filename:
MIME Type:
Creator:
Tobias Rehbein
Created:
2024-01-13 16:33:21 UTC
Size:
68.70 KB
patch
obsolete
>From 4dc4a113daca0a1ff74ade4f31afe735f2940c7c Mon Sep 17 00:00:00 2001 >From: Tobias Rehbein <tobias.rehbein@web.de> >Date: Sat, 13 Jan 2024 16:14:54 +0100 >Subject: [PATCH] audio/cdparanoia: Update to cdparanoia-III-10.2 > >Update cdparanoia to the latest release. >Additionally the patch adds support for audio CDs containing data >tracks. > >Three patches committed to the upstream SVN are also included: >-r15314: Optimizes autosense and fixes a bug in verify_read_command. >-r15337: fixes the "-p" option. >-r15338: fixes build on gcc architectures. >--- > audio/cdparanoia/Makefile | 19 +- > audio/cdparanoia/distinfo | 5 +- > .../files/extra-patch-upstream-patch-r15314 | 312 ++++++++++ > .../files/extra-patch-upstream-patch-r15337 | 31 + > .../files/extra-patch-upstream-patch-r15338 | 584 ++++++++++++++++++ > audio/cdparanoia/files/patch-Makefile.in | 16 +- > audio/cdparanoia/files/patch-configure | 15 - > .../files/patch-interface_Makefile.in | 24 +- > .../files/patch-interface_cdda__interface.h | 22 +- > .../files/patch-interface_common__interface.c | 35 +- > .../files/patch-interface_cooked__interface.c | 20 +- > .../files/patch-interface_interface.c | 37 +- > .../files/patch-interface_low__interface.h | 14 +- > .../files/patch-interface_scan__devices.c | 72 ++- > .../files/patch-interface_scsi__interface.c | 243 +++++--- > .../cdparanoia/files/patch-interface_utils.h | 38 +- > audio/cdparanoia/files/patch-main.c | 15 + > .../files/patch-paranoia_Makefile.in | 9 +- > .../files/patch-paranoia_cdda__paranoia.h | 4 +- > .../cdparanoia/files/patch-paranoia_overlap.c | 20 + > audio/cdparanoia/files/patch-version.h | 17 - > audio/cdparanoia/pkg-plist | 4 +- > 22 files changed, 1295 insertions(+), 261 deletions(-) > create mode 100644 audio/cdparanoia/files/extra-patch-upstream-patch-r15314 > create mode 100644 audio/cdparanoia/files/extra-patch-upstream-patch-r15337 > create mode 100644 audio/cdparanoia/files/extra-patch-upstream-patch-r15338 > delete mode 100644 audio/cdparanoia/files/patch-configure > create mode 100644 audio/cdparanoia/files/patch-main.c > create mode 100644 audio/cdparanoia/files/patch-paranoia_overlap.c > delete mode 100644 audio/cdparanoia/files/patch-version.h > >diff --git a/audio/cdparanoia/Makefile b/audio/cdparanoia/Makefile >index 3611f59c555b..c02e38cd6481 100644 >--- a/audio/cdparanoia/Makefile >+++ b/audio/cdparanoia/Makefile >@@ -1,9 +1,8 @@ > PORTNAME= cdparanoia >-PORTVERSION= 3.9.8 >-PORTREVISION= 10 >+PORTVERSION= 3.10.2 > CATEGORIES= audio sysutils >-MASTER_SITES= http://www.xiph.org/paranoia/download/ >-DISTNAME= ${PORTNAME}-${PORTVERSION:C/^3\./III-alpha/} >+MASTER_SITES= http://downloads.xiph.org/releases/cdparanoia/ >+DISTNAME= ${PORTNAME}-${PORTVERSION:C/^3\./III-/} > EXTRACT_SUFX= .src.tgz > > MAINTAINER= danfe@FreeBSD.org >@@ -11,17 +10,25 @@ COMMENT= CDDA extraction tool (also known as ripper) > WWW= https://www.xiph.org/paranoia/ > > LICENSE= GPLv2 >-LICENSE_FILE= ${WRKSRC}/GPL >+LICENSE_FILE= ${WRKSRC}/COPYING-GPL > >-GNU_CONFIGURE= yes > USES= gmake > USE_LDCONFIG= yes > >+GNU_CONFIGURE= yes >+ >+# Selected fixes commited to upstream SVN but not released for years. >+# To keep these apart from FreeBSD specific patches keep these as EXTRA_PATCHES. >+EXTRA_PATCHES= ${PATCHDIR}/extra-patch-upstream-patch-r15314 \ >+ ${PATCHDIR}/extra-patch-upstream-patch-r15337 \ >+ ${PATCHDIR}/extra-patch-upstream-patch-r15338 >+ > post-patch: > @${REINPLACE_CMD} -e 's/\(^ *default:\)/\1break;/' \ > ${WRKSRC}/interface/utils.h > > post-install: >+ @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/cdparanoia > @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libcdda_*.so > > .include <bsd.port.mk> >diff --git a/audio/cdparanoia/distinfo b/audio/cdparanoia/distinfo >index 9ceea7f991e6..1ec71239b051 100644 >--- a/audio/cdparanoia/distinfo >+++ b/audio/cdparanoia/distinfo >@@ -1,2 +1,3 @@ >-SHA256 (cdparanoia-III-alpha9.8.src.tgz) = 1b79fae1aedc692f87d1344410f5c6b666961afccdc78bc5c4c257c450dfa008 >-SIZE (cdparanoia-III-alpha9.8.src.tgz) = 116591 >+TIMESTAMP = 1563302547 >+SHA256 (cdparanoia-III-10.2.src.tgz) = 005db45ef4ee017f5c32ec124f913a0546e77014266c6a1c50df902a55fe64df >+SIZE (cdparanoia-III-10.2.src.tgz) = 183236 >diff --git a/audio/cdparanoia/files/extra-patch-upstream-patch-r15314 b/audio/cdparanoia/files/extra-patch-upstream-patch-r15314 >new file mode 100644 >index 000000000000..5b25847ed78f >--- /dev/null >+++ b/audio/cdparanoia/files/extra-patch-upstream-patch-r15314 >@@ -0,0 +1,312 @@ >+Fix the cdda_enable bug that would cause the -A tests to fail on >+drives that require a density set >+ >+Correct a bug that would cause a failed density set to abort out of >+verify_read_command >+ >+Improve autosense order; non-density-set modes should be chacked >+before even NULL-density modes because there's not necessarily any >+going back (eg, Plextor lets you *set* the mode descriptor density, >+but does not let you read it; it always reports '0') >+ >+Index: interface/interface.c >+=================================================================== >+--- interface/interface.c (revision 15313) >++++ interface/interface.c (revision 15314) >+@@ -90,11 +90,11 @@ >+ } >+ } >+ >++ if(d->bigendianp==-1)d->bigendianp=data_bigendianp(d); >++ >+ if((ret=d->enable_cdda(d,1))) >+ return(ret); >+ >+- /* d->select_speed(d,d->maxspeed); most drives are full speed by default */ >+- if(d->bigendianp==-1)d->bigendianp=data_bigendianp(d); >+ return(0); >+ } >+ >+Index: interface/scsi_interface.c >+=================================================================== >+--- interface/scsi_interface.c (revision 15313) >++++ interface/scsi_interface.c (revision 15314) >+@@ -1298,7 +1298,7 @@ >+ >+ static int verify_read_command(cdrom_drive *d){ >+ int i,j,k; >+- int audioflag=0; >++ int audioflag=1; >+ >+ int (*enablecommand) (struct cdrom_drive *d, int speed); >+ long (*readcommand) (struct cdrom_drive *d, void *p, long begin, >+@@ -1313,7 +1313,7 @@ >+ for data */ >+ >+ if(d->enable_cdda(d,1)==0){ >+- >++ audioflag=0; >+ for(i=1;i<=d->tracks;i++){ >+ if(cdda_track_audiop(d,i)==1){ >+ long firstsector=cdda_track_firstsector(d,i); >+@@ -1358,115 +1358,111 @@ >+ /* NEC test must come before sony; the nec drive expects d8 to be >+ 10 bytes, and a 12 byte verson (Sony) crashes the drive */ >+ >+- for(j=0;j<15;j++){ >+- int densitypossible=1; >+- >+- switch(j){ >++ for(i=0;i<5;i++){ >++ switch(i){ >+ case 0: >+- d->read_audio=scsi_read_28; >+- rs="28 0x,00"; >++ d->density=0; >++ d->enable_cdda=Dummy; >++ es="none "; >+ break; >+ case 1: >+- d->read_audio=scsi_read_A8; >+- rs="a8 0x,00"; >++ d->density=0; >++ d->enable_cdda=scsi_enable_cdda; >++ es="yes/0x00"; >+ break; >+- >+ case 2: >+- d->read_audio=scsi_read_mmcB; >+- rs="be 02,10"; >+- densitypossible=0; >++ d->density=0x04; >++ d->enable_cdda=scsi_enable_cdda; >++ es="yes/0x04"; >+ break; >+ case 3: >+- d->read_audio=scsi_read_mmc2B; >+- rs="be 02,f8"; >+- densitypossible=0; >++ d->density=0x82; >++ d->enable_cdda=scsi_enable_cdda; >++ es="yes/0x82"; >+ break; >+ case 4: >+- d->read_audio=scsi_read_mmc3B; >+- rs="be 06,f8"; >+- densitypossible=0; >++ d->density=0x81; >++ d->enable_cdda=scsi_enable_cdda; >++ es="yes/0x81"; >+ break; >++ } >+ >+- case 5: >+- d->read_audio=scsi_read_mmc; >+- rs="be 00,10"; >+- densitypossible=0; >+- break; >+- case 6: >+- d->read_audio=scsi_read_mmc2; >+- rs="be 00,f8"; >+- densitypossible=0; >+- break; >+- case 7: >+- d->read_audio=scsi_read_mmc3; >+- rs="be 04,f8"; >+- densitypossible=0; >+- break; >+- >+- case 8: >+- d->read_audio=scsi_read_msf; >+- rs="b9 00,10"; >+- densitypossible=0; >+- break; >+- case 9: >+- d->read_audio=scsi_read_msf2; >+- rs="b9 00,f8"; >+- densitypossible=0; >+- break; >+- case 10: >+- d->read_audio=scsi_read_msf3; >+- rs="b9 04,f8"; >+- densitypossible=0; >+- break; >+- >+- case 11: >+- d->read_audio=scsi_read_D4_10; >+- rs="d4(10)0x"; >+- break; >+- case 12: >+- d->read_audio=scsi_read_D4_12; >+- rs="d4(12)0x"; >+- break; >+- case 13: >+- d->read_audio=scsi_read_D5; >+- rs="d5 0x,00"; >+- break; >+- case 14: >+- d->read_audio=scsi_read_D8; >+- rs="d8 0x,00"; >+- break; >+- } >+- >+- for(i=0;i<5;i++){ >+- switch(i){ >++ for(j=0;j<15;j++){ >++ >++ switch(j){ >+ case 0: >+- d->density=0; >+- d->enable_cdda=Dummy; >+- es="none "; >+- if(!densitypossible)i=5; /* short circuit MMC style commands */ >++ d->read_audio=scsi_read_28; >++ rs="28 0x,00"; >+ break; >+ case 1: >+- d->density=0; >+- d->enable_cdda=scsi_enable_cdda; >+- es="yes/0x00"; >++ d->read_audio=scsi_read_A8; >++ rs="a8 0x,00"; >+ break; >++ >++ /* 2 through 10 do not allow/require density */ >+ case 2: >+- d->density=0x04; >+- d->enable_cdda=scsi_enable_cdda; >+- es="yes/0x04"; >+- break; >++ d->read_audio=scsi_read_mmcB; >++ rs="be 02,10"; >++ if(i==0)break; >+ case 3: >+- d->density=0x82; >+- d->enable_cdda=scsi_enable_cdda; >+- es="yes/0x82"; >+- break; >++ j=3; >++ d->read_audio=scsi_read_mmc2B; >++ rs="be 02,f8"; >++ if(i==0)break; >+ case 4: >+- d->density=0x81; >+- d->enable_cdda=scsi_enable_cdda; >+- es="yes/0x81"; >++ j=4; >++ d->read_audio=scsi_read_mmc3B; >++ rs="be 06,f8"; >++ if(i==0)break; >++ case 5: >++ j=5; >++ d->read_audio=scsi_read_mmc; >++ rs="be 00,10"; >++ if(i==0)break; >++ case 6: >++ j=6; >++ d->read_audio=scsi_read_mmc2; >++ rs="be 00,f8"; >++ if(i==0)break; >++ case 7: >++ j=7; >++ d->read_audio=scsi_read_mmc3; >++ rs="be 04,f8"; >++ if(i==0)break; >++ case 8: >++ j=8; >++ d->read_audio=scsi_read_msf; >++ rs="b9 00,10"; >++ if(i==0)break; >++ case 9: >++ j=9; >++ d->read_audio=scsi_read_msf2; >++ rs="b9 00,f8"; >++ if(i==0)break; >++ case 10: >++ j=10; >++ d->read_audio=scsi_read_msf3; >++ rs="b9 04,f8"; >++ if(i==0)break; >++ >++ case 11: >++ d->read_audio=scsi_read_D4_10; >++ rs="d4(10)0x"; >+ break; >++ case 12: >++ d->read_audio=scsi_read_D4_12; >++ rs="d4(12)0x"; >++ break; >++ case 13: >++ d->read_audio=scsi_read_D5; >++ rs="d5 0x,00"; >++ break; >++ case 14: >++ d->read_audio=scsi_read_D8; >++ rs="d8 0x,00"; >++ break; >+ } >+- >++ >+ cdmessage(d,"\ttest -> density: ["); >+ cdmessage(d,es); >+ cdmessage(d,"] command: ["); >+@@ -1525,21 +1521,21 @@ >+ if(zeroflag){ >+ char buffer[256]; >+ sprintf(buffer,"\t\tDrive returned %d packet(s), but contents\n" >+- "\t\twere entirely zero\n",zeroflag); >++ "\t\twere entirely zero\n",zeroflag); >+ cdmessage(d,buffer); >+ } >+ } >+ } >+ } >+- >++ >+ /* D'oh. */ >+ d->density=density; >+ d->read_audio=readcommand; >+ d->enable_cdda=enablecommand; >+- >++ >+ cdmessage(d,"\tUnable to find any suitable command set from probe;\n" >+ "\tdrive probably not CDDA capable.\n"); >+- >++ >+ cderror(d,"006: Could not read any data from drive\n"); >+ >+ } >+@@ -1690,33 +1686,20 @@ >+ if(d->is_atapi)d->lun=0; /* it should already be; just to make sure */ >+ >+ if(d->is_mmc){ >+- >+ d->read_audio = scsi_read_mmc2B; >+ d->bigendianp=0; >+- >+ check_exceptions(d,mmc_list); >+- >+ }else{ >+- >+ if(d->is_atapi){ >+ /* Not MMC maybe still uses 0xbe */ >+- >+ d->read_audio = scsi_read_mmc2B; >+ d->bigendianp=0; >+- >+ check_exceptions(d,atapi_list); >+- >+ }else{ >+- >+ check_exceptions(d,scsi_list); >+- >+ } >+ } >+ >+- if(!d->is_atapi)set_sectorsize(d,2048); /* we really do want the >+- sector size at 2048 to begin.*/ >+- d->enable_cdda(d,0); >+- >+ d->read_toc = (!memcmp(d->drive_model, "IMS", 3) && !d->is_atapi) ? scsi_read_toc2 : >+ scsi_read_toc; >+ d->set_speed = scsi_set_speed; >diff --git a/audio/cdparanoia/files/extra-patch-upstream-patch-r15337 b/audio/cdparanoia/files/extra-patch-upstream-patch-r15337 >new file mode 100644 >index 000000000000..4db47a9ad3f9 >--- /dev/null >+++ b/audio/cdparanoia/files/extra-patch-upstream-patch-r15337 >@@ -0,0 +1,31 @@ >+Commit fix to make debug (no optimization, please) >+ >+Commit fix to -p not actually outputting in host byte order (in fact, >+it always get s it reversed regardless of endianness) >+ >+Index: Makefile.in >+=================================================================== >+--- Makefile.in (revision 15336) >++++ Makefile.in (revision 15337) >+@@ -10,7 +10,7 @@ >+ @SET_MAKE@ >+ FLAGS=@TYPESIZES@ @CFLAGS@ >+ OPT=@OPT@ $(FLAGS) >+-DEBUG=@DEBUG@ $(FLAGS) >++DEBUG=@DEBUG@ >+ CC=@CC@ >+ LD=@CC@ >+ LDFLAGS=@LDFLAGS@ $(FLAGS) >+Index: main.c >+=================================================================== >+--- main.c (revision 15336) >++++ main.c (revision 15337) >+@@ -746,7 +746,7 @@ >+ break; >+ case 'p': >+ output_type=0; >+- output_endian=-1; >++ output_endian=bigendianp(); >+ break; >+ case 'r': >+ output_type=0; >diff --git a/audio/cdparanoia/files/extra-patch-upstream-patch-r15338 b/audio/cdparanoia/files/extra-patch-upstream-patch-r15338 >new file mode 100644 >index 000000000000..9b2fd9d055a9 >--- /dev/null >+++ b/audio/cdparanoia/files/extra-patch-upstream-patch-r15338 >@@ -0,0 +1,584 @@ >+Commit fix for 'private' becoming a reserved keyword as of GCC 4.3+ >+ >+Index: interface/test_interface.c >+=================================================================== >+--- interface/test_interface.c (revision 15337) >++++ interface/test_interface.c (revision 15338) >+@@ -66,9 +66,9 @@ >+ if(!fd)fd=fdopen(d->cdda_fd,"r"); >+ >+ if(begin<lastread) >+- d->private->last_milliseconds=20; >++ d->private_data->last_milliseconds=20; >+ else >+- d->private->last_milliseconds=sectors; >++ d->private_data->last_milliseconds=sectors; >+ >+ #ifdef CDDA_TEST_UNDERRUN >+ sectors-=1; >+Index: interface/cdda_interface.h >+=================================================================== >+--- interface/cdda_interface.h (revision 15337) >++++ interface/cdda_interface.h (revision 15338) >+@@ -84,7 +84,7 @@ >+ int is_atapi; >+ int is_mmc; >+ >+- cdda_private_data_t *private; >++ cdda_private_data_t *private_data; >+ void *reserved; >+ unsigned char inqbytes[4]; >+ >+Index: interface/interface.c >+=================================================================== >+--- interface/interface.c (revision 15337) >++++ interface/interface.c (revision 15338) >+@@ -39,9 +39,9 @@ >+ if(d->drive_model)free(d->drive_model); >+ if(d->cdda_fd!=-1)close(d->cdda_fd); >+ if(d->ioctl_fd!=-1 && d->ioctl_fd!=d->cdda_fd)close(d->ioctl_fd); >+- if(d->private){ >+- if(d->private->sg_hd)free(d->private->sg_hd); >+- free(d->private); >++ if(d->private_data){ >++ if(d->private_data->sg_hd)free(d->private_data->sg_hd); >++ free(d->private_data); >+ } >+ >+ free(d); >+@@ -127,7 +127,7 @@ >+ } >+ } >+ } >+- if(ms)*ms=d->private->last_milliseconds; >++ if(ms)*ms=d->private_data->last_milliseconds; >+ return(sectors); >+ } >+ >+Index: interface/scsi_interface.c >+=================================================================== >+--- interface/scsi_interface.c (revision 15337) >++++ interface/scsi_interface.c (revision 15338) >+@@ -15,13 +15,13 @@ >+ static int timed_ioctl(cdrom_drive *d, int fd, int command, void *arg){ >+ struct timespec tv1; >+ struct timespec tv2; >+- int ret1=clock_gettime(d->private->clock,&tv1); >++ int ret1=clock_gettime(d->private_data->clock,&tv1); >+ int ret2=ioctl(fd, command,arg); >+- int ret3=clock_gettime(d->private->clock,&tv2); >++ int ret3=clock_gettime(d->private_data->clock,&tv2); >+ if(ret1<0 || ret3<0){ >+- d->private->last_milliseconds=-1; >++ d->private_data->last_milliseconds=-1; >+ }else{ >+- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.; >++ d->private_data->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.; >+ } >+ return ret2; >+ } >+@@ -96,7 +96,7 @@ >+ static void clear_garbage(cdrom_drive *d){ >+ fd_set fdset; >+ struct timeval tv; >+- struct sg_header *sg_hd=d->private->sg_hd; >++ struct sg_header *sg_hd=d->private_data->sg_hd; >+ int flag=0; >+ >+ /* clear out any possibly preexisting garbage */ >+@@ -185,7 +185,7 @@ >+ struct timespec tv2; >+ int tret1,tret2; >+ int status = 0; >+- struct sg_header *sg_hd=d->private->sg_hd; >++ struct sg_header *sg_hd=d->private_data->sg_hd; >+ long writebytes=SG_OFF+cmd_len+in_size; >+ >+ /* generic scsi device services */ >+@@ -195,7 +195,7 @@ >+ >+ memset(sg_hd,0,sizeof(sg_hd)); >+ memset(sense_buffer,0,SG_MAX_SENSE); >+- memcpy(d->private->sg_buffer,cmd,cmd_len+in_size); >++ memcpy(d->private_data->sg_buffer,cmd,cmd_len+in_size); >+ sg_hd->twelve_byte = cmd_len == 12; >+ sg_hd->result = 0; >+ sg_hd->reply_len = SG_OFF + out_size; >+@@ -209,7 +209,7 @@ >+ tell if the command failed. Scared yet? */ >+ >+ if(bytecheck && out_size>in_size){ >+- memset(d->private->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size); >++ memset(d->private_data->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size); >+ /* the size does not remove cmd_len due to the way the kernel >+ driver copies buffers */ >+ writebytes+=(out_size-in_size); >+@@ -243,7 +243,7 @@ >+ } >+ >+ sigprocmask (SIG_BLOCK, &(d->sigset), NULL ); >+- tret1=clock_gettime(d->private->clock,&tv1); >++ tret1=clock_gettime(d->private_data->clock,&tv1); >+ errno=0; >+ status = write(d->cdda_fd, sg_hd, writebytes ); >+ >+@@ -289,7 +289,7 @@ >+ } >+ } >+ >+- tret2=clock_gettime(d->private->clock,&tv2); >++ tret2=clock_gettime(d->private_data->clock,&tv2); >+ errno=0; >+ status = read(d->cdda_fd, sg_hd, SG_OFF + out_size); >+ sigprocmask ( SIG_UNBLOCK, &(d->sigset), NULL ); >+@@ -313,7 +313,7 @@ >+ if(bytecheck && in_size+cmd_len<out_size){ >+ long i,flag=0; >+ for(i=in_size;i<out_size;i++) >+- if(d->private->sg_buffer[i]!=bytefill){ >++ if(d->private_data->sg_buffer[i]!=bytefill){ >+ flag=1; >+ break; >+ } >+@@ -326,9 +326,9 @@ >+ >+ errno=0; >+ if(tret1<0 || tret2<0){ >+- d->private->last_milliseconds=-1; >++ d->private_data->last_milliseconds=-1; >+ }else{ >+- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000; >++ d->private_data->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000; >+ } >+ return(0); >+ } >+@@ -347,7 +347,7 @@ >+ >+ memset(&hdr,0,sizeof(hdr)); >+ memset(sense,0,sizeof(sense)); >+- memcpy(d->private->sg_buffer,cmd+cmd_len,in_size); >++ memcpy(d->private_data->sg_buffer,cmd+cmd_len,in_size); >+ >+ hdr.cmdp = cmd; >+ hdr.cmd_len = cmd_len; >+@@ -355,7 +355,7 @@ >+ hdr.mx_sb_len = SG_MAX_SENSE; >+ hdr.timeout = 50000; >+ hdr.interface_id = 'S'; >+- hdr.dxferp = d->private->sg_buffer; >++ hdr.dxferp = d->private_data->sg_buffer; >+ hdr.flags = SG_FLAG_DIRECT_IO; /* direct IO if we can get it */ >+ >+ /* scary buffer fill hack */ >+@@ -400,7 +400,7 @@ >+ if(bytecheck && in_size<out_size){ >+ long i,flag=0; >+ for(i=in_size;i<out_size;i++) >+- if(d->private->sg_buffer[i]!=bytefill){ >++ if(d->private_data->sg_buffer[i]!=bytefill){ >+ flag=1; >+ break; >+ } >+@@ -412,7 +412,7 @@ >+ } >+ >+ /* Can't rely on .duration because we can't be certain kernel has HZ set to something useful */ >+- /* d->private->last_milliseconds = hdr.duration; */ >++ /* d->private_data->last_milliseconds = hdr.duration; */ >+ >+ errno = 0; >+ return 0; >+@@ -445,9 +445,9 @@ >+ >+ handle_scsi_cmd(d, cmd, 6, 0, 56, 0,0, sense); >+ >+- key = d->private->sg_buffer[2] & 0xf; >+- ASC = d->private->sg_buffer[12]; >+- ASCQ = d->private->sg_buffer[13]; >++ key = d->private_data->sg_buffer[2] & 0xf; >++ ASC = d->private_data->sg_buffer[12]; >++ ASCQ = d->private_data->sg_buffer[13]; >+ >+ if(key == 2 && ASC == 4 && ASCQ == 1) return 0; >+ return 1; >+@@ -492,7 +492,7 @@ >+ if (handle_scsi_cmd (d, cmd, 10, 0, size+4,'\377',1,sense)) return(1); >+ >+ { >+- unsigned char *b=d->private->sg_buffer; >++ unsigned char *b=d->private_data->sg_buffer; >+ if(b[0])return(1); /* Handles only up to 256 bytes */ >+ if(b[6])return(1); /* Handles only up to 256 bytes */ >+ >+@@ -604,8 +604,8 @@ >+ static unsigned int get_orig_sectorsize(cdrom_drive *d){ >+ if(mode_sense(d,12,0x01))return(-1); >+ >+- d->orgdens = d->private->sg_buffer[4]; >+- return(d->orgsize = ((int)(d->private->sg_buffer[10])<<8)+d->private->sg_buffer[11]); >++ d->orgdens = d->private_data->sg_buffer[4]; >++ return(d->orgsize = ((int)(d->private_data->sg_buffer[10])<<8)+d->private_data->sg_buffer[11]); >+ } >+ >+ /* switch CDROM scsi drives to given sector size */ >+@@ -664,8 +664,8 @@ >+ return(-4); >+ } >+ >+- first=d->private->sg_buffer[2]; >+- last=d->private->sg_buffer[3]; >++ first=d->private_data->sg_buffer[2]; >++ last=d->private_data->sg_buffer[3]; >+ tracks=last-first+1; >+ >+ if (last > MAXTRK || first > MAXTRK || last<0 || first<0) { >+@@ -683,7 +683,7 @@ >+ return(-5); >+ } >+ { >+- scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4); >++ scsi_TOC *toc=(scsi_TOC *)(d->private_data->sg_buffer+4); >+ >+ d->disc_toc[i-first].bFlags=toc->bFlags; >+ d->disc_toc[i-first].bTrack=i; >+@@ -704,7 +704,7 @@ >+ return(-2); >+ } >+ { >+- scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4); >++ scsi_TOC *toc=(scsi_TOC *)(d->private_data->sg_buffer+4); >+ >+ d->disc_toc[i-first].bFlags=toc->bFlags; >+ d->disc_toc[i-first].bTrack=0xAA; >+@@ -738,7 +738,7 @@ >+ } >+ >+ /* copy to our structure and convert start sector */ >+- tracks = d->private->sg_buffer[1]; >++ tracks = d->private_data->sg_buffer[1]; >+ if (tracks > MAXTRK) { >+ cderror(d,"003: CDROM reporting illegal number of tracks\n"); >+ return(-3); >+@@ -754,33 +754,33 @@ >+ return(-5); >+ } >+ >+- d->disc_toc[i].bFlags = d->private->sg_buffer[10]; >++ d->disc_toc[i].bFlags = d->private_data->sg_buffer[10]; >+ d->disc_toc[i].bTrack = i + 1; >+ >+ d->disc_toc[i].dwStartSector= d->adjust_ssize * >+- (((signed char)(d->private->sg_buffer[2])<<24) | >+- (d->private->sg_buffer[3]<<16)| >+- (d->private->sg_buffer[4]<<8)| >+- (d->private->sg_buffer[5])); >++ (((signed char)(d->private_data->sg_buffer[2])<<24) | >++ (d->private_data->sg_buffer[3]<<16)| >++ (d->private_data->sg_buffer[4]<<8)| >++ (d->private_data->sg_buffer[5])); >+ } >+ >+ d->disc_toc[i].bFlags = 0; >+ d->disc_toc[i].bTrack = i + 1; >+- memcpy (&foo, d->private->sg_buffer+2, 4); >+- memcpy (&bar, d->private->sg_buffer+6, 4); >++ memcpy (&foo, d->private_data->sg_buffer+2, 4); >++ memcpy (&bar, d->private_data->sg_buffer+6, 4); >+ d->disc_toc[i].dwStartSector = d->adjust_ssize * (be32_to_cpu(foo) + >+ be32_to_cpu(bar)); >+ >+ d->disc_toc[i].dwStartSector= d->adjust_ssize * >+- ((((signed char)(d->private->sg_buffer[2])<<24) | >+- (d->private->sg_buffer[3]<<16)| >+- (d->private->sg_buffer[4]<<8)| >+- (d->private->sg_buffer[5]))+ >++ ((((signed char)(d->private_data->sg_buffer[2])<<24) | >++ (d->private_data->sg_buffer[3]<<16)| >++ (d->private_data->sg_buffer[4]<<8)| >++ (d->private_data->sg_buffer[5]))+ >+ >+- ((((signed char)(d->private->sg_buffer[6])<<24) | >+- (d->private->sg_buffer[7]<<16)| >+- (d->private->sg_buffer[8]<<8)| >+- (d->private->sg_buffer[9])))); >++ ((((signed char)(d->private_data->sg_buffer[6])<<24) | >++ (d->private_data->sg_buffer[7]<<16)| >++ (d->private_data->sg_buffer[8]<<8)| >++ (d->private_data->sg_buffer[9])))); >+ >+ >+ d->cd_extra = FixupTOC(d,tracks+1); >+@@ -817,7 +817,7 @@ >+ cmd[8] = sectors; >+ if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) >+ return(ret); >+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); >++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); >+ return(0); >+ } >+ >+@@ -836,7 +836,7 @@ >+ cmd[9] = sectors; >+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) >+ return(ret); >+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); >++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); >+ return(0); >+ } >+ >+@@ -854,7 +854,7 @@ >+ cmd[8] = sectors; >+ if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) >+ return(ret); >+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); >++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); >+ return(0); >+ } >+ >+@@ -872,7 +872,7 @@ >+ cmd[9] = sectors; >+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) >+ return(ret); >+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); >++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); >+ return(0); >+ } >+ >+@@ -890,7 +890,7 @@ >+ cmd[8] = sectors; >+ if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) >+ return(ret); >+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); >++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); >+ return(0); >+ } >+ >+@@ -908,7 +908,7 @@ >+ cmd[9] = sectors; >+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) >+ return(ret); >+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); >++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); >+ return(0); >+ } >+ >+@@ -922,7 +922,7 @@ >+ cmd[8] = sectors; >+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) >+ return(ret); >+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); >++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); >+ return(0); >+ } >+ >+@@ -936,7 +936,7 @@ >+ cmd[8] = sectors; >+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) >+ return(ret); >+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); >++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); >+ return(0); >+ } >+ >+@@ -950,7 +950,7 @@ >+ cmd[8] = sectors; >+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) >+ return(ret); >+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); >++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); >+ return(0); >+ } >+ >+@@ -964,7 +964,7 @@ >+ cmd[8] = sectors; >+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) >+ return(ret); >+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); >++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); >+ return(0); >+ } >+ >+@@ -978,7 +978,7 @@ >+ cmd[8] = sectors; >+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) >+ return(ret); >+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); >++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); >+ return(0); >+ } >+ >+@@ -992,7 +992,7 @@ >+ cmd[8] = sectors; >+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) >+ return(ret); >+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); >++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); >+ return(0); >+ } >+ >+@@ -1026,7 +1026,7 @@ >+ >+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) >+ return(ret); >+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); >++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); >+ return(0); >+ } >+ >+@@ -1039,7 +1039,7 @@ >+ >+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) >+ return(ret); >+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); >++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); >+ return(0); >+ } >+ >+@@ -1052,7 +1052,7 @@ >+ >+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) >+ return(ret); >+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); >++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); >+ return(0); >+ } >+ >+@@ -1275,7 +1275,7 @@ >+ static int count_2352_bytes(cdrom_drive *d){ >+ long i; >+ for(i=2351;i>=0;i--) >+- if(d->private->sg_buffer[i]!=(unsigned char)'\177') >++ if(d->private_data->sg_buffer[i]!=(unsigned char)'\177') >+ return(((i+3)>>2)<<2); >+ >+ return(0); >+@@ -1284,7 +1284,7 @@ >+ static int verify_nonzero(cdrom_drive *d){ >+ long i,flag=0; >+ for(i=0;i<2352;i++) >+- if(d->private->sg_buffer[i]!=0){ >++ if(d->private_data->sg_buffer[i]!=0){ >+ flag=1; >+ break; >+ } >+@@ -1621,7 +1621,7 @@ >+ d->is_mmc=0; >+ if(mode_sense(d,22,0x2A)==0){ >+ >+- b=d->private->sg_buffer; >++ b=d->private_data->sg_buffer; >+ b+=b[3]+4; >+ >+ if((b[0]&0x3F)==0x2A){ >+@@ -1669,7 +1669,7 @@ >+ cderror(d,"008: Unable to identify CDROM model\n"); >+ return(NULL); >+ } >+- return (d->private->sg_buffer); >++ return (d->private_data->sg_buffer); >+ } >+ >+ int scsi_init_drive(cdrom_drive *d){ >+@@ -1725,8 +1725,8 @@ >+ check_cache(d); >+ >+ d->error_retry=1; >+- d->private->sg_hd=realloc(d->private->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128); >+- d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF; >++ d->private_data->sg_hd=realloc(d->private_data->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128); >++ d->private_data->sg_buffer=((unsigned char *)d->private_data->sg_hd)+SG_OFF; >+ d->report_all=1; >+ return(0); >+ } >+Index: interface/cooked_interface.c >+=================================================================== >+--- interface/cooked_interface.c (revision 15337) >++++ interface/cooked_interface.c (revision 15338) >+@@ -13,13 +13,13 @@ >+ static int timed_ioctl(cdrom_drive *d, int fd, int command, void *arg){ >+ struct timespec tv1; >+ struct timespec tv2; >+- int ret1=clock_gettime(d->private->clock,&tv1); >++ int ret1=clock_gettime(d->private_data->clock,&tv1); >+ int ret2=ioctl(fd, command,arg); >+- int ret3=clock_gettime(d->private->clock,&tv2); >++ int ret3=clock_gettime(d->private_data->clock,&tv2); >+ if(ret1<0 || ret3<0){ >+- d->private->last_milliseconds=-1; >++ d->private_data->last_milliseconds=-1; >+ }else{ >+- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.; >++ d->private_data->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.; >+ } >+ return ret2; >+ } >+Index: interface/scan_devices.c >+=================================================================== >+--- interface/scan_devices.c (revision 15337) >++++ interface/scan_devices.c (revision 15338) >+@@ -264,11 +264,11 @@ >+ d->interface=COOKED_IOCTL; >+ d->bigendianp=-1; /* We don't know yet... */ >+ d->nsectors=-1; >+- d->private=calloc(1,sizeof(*d->private)); >++ d->private_data=calloc(1,sizeof(*d->private_data)); >+ { >+ /* goddamnit */ >+ struct timespec tv; >+- d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC); >++ d->private_data->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC); >+ } >+ idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",description); >+ return(d); >+@@ -674,15 +674,15 @@ >+ d->bigendianp=-1; /* We don't know yet... */ >+ d->nsectors=-1; >+ d->messagedest = messagedest; >+- d->private=calloc(1,sizeof(*d->private)); >++ d->private_data=calloc(1,sizeof(*d->private_data)); >+ { >+ /* goddamnit */ >+ struct timespec tv; >+- d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC); >++ d->private_data->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC); >+ } >+ if(use_sgio){ >+ d->interface=SGIO_SCSI; >+- d->private->sg_buffer=(unsigned char *)(d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE)); >++ d->private_data->sg_buffer=(unsigned char *)(d->private_data->sg_hd=malloc(MAX_BIG_BUFF_SIZE)); >+ g_fd=d->cdda_fd=dup(d->ioctl_fd); >+ }else{ >+ version=verify_SG_version(d,messagedest,messages); >+@@ -696,8 +696,8 @@ >+ } >+ >+ /* malloc our big buffer for scsi commands */ >+- d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE); >+- d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF; >++ d->private_data->sg_hd=malloc(MAX_BIG_BUFF_SIZE); >++ d->private_data->sg_buffer=((unsigned char *)d->private_data->sg_hd)+SG_OFF; >+ } >+ >+ { >+@@ -772,9 +772,9 @@ >+ if(i_fd!=-1)close(i_fd); >+ if(g_fd!=-1)close(g_fd); >+ if(d){ >+- if(d->private){ >+- if(d->private->sg_hd)free(d->private->sg_hd); >+- free(d->private); >++ if(d->private_data){ >++ if(d->private_data->sg_hd)free(d->private_data->sg_hd); >++ free(d->private_data); >+ } >+ free(d); >+ } >+@@ -821,7 +821,7 @@ >+ d->interface=TEST_INTERFACE; >+ d->bigendianp=-1; /* We don't know yet... */ >+ d->nsectors=-1; >+- d->private=calloc(1,sizeof(*d->private)); >++ d->private_data=calloc(1,sizeof(*d->private_data)); >+ d->drive_model=copystring("File based test interface"); >+ idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",d->drive_model); >+ >diff --git a/audio/cdparanoia/files/patch-Makefile.in b/audio/cdparanoia/files/patch-Makefile.in >index 4137b02ec1aa..44eece9e3916 100644 >--- a/audio/cdparanoia/files/patch-Makefile.in >+++ b/audio/cdparanoia/files/patch-Makefile.in >@@ -1,4 +1,4 @@ >---- Makefile.in.orig 2001-03-27 22:46:58 UTC >+--- Makefile.in.orig 2019-07-25 21:55:03 UTC > +++ Makefile.in > @@ -8,7 +8,7 @@ VPATH=@srcdir@ > srcdir=@srcdir@ >@@ -7,23 +7,23 @@ > -FLAGS=@TYPESIZES@ @CFLAGS@ > +FLAGS=@TYPESIZES@ @CPPFLAGS@ @CFLAGS@ -I./interface > OPT=@OPT@ $(FLAGS) >- DEBUG=@DEBUG@ $(FLAGS) >+ DEBUG=@DEBUG@ > CC=@CC@ > @@ -32,7 +32,7 @@ export VERSION > > ifeq ($(STATIC),TRUE) > LIBS = interface/libcdda_interface.a paranoia/libcdda_paranoia.a \ >-- -static -lm >-+ -lm -lcam >+- -static -lm -lrt >++ -lm -lrt -lcam > LIBDEP = interface/libcdda_interface.a paranoia/libcdda_paranoia.a > else >- LIBS = -lcdda_interface -lcdda_paranoia -lm >-@@ -64,28 +64,27 @@ slib: >+ LIBS = -lcdda_interface -lcdda_paranoia -lm -lrt >+@@ -63,28 +63,27 @@ slib: > cd paranoia && $(MAKE) slib > > install: > - $(INSTALL) -d -m 0755 $(BINDIR) >-- $(INSTALL) -m 0755 $(srcdir)/cdparanoia $(BINDIR) >+- $(INSTALL) -m 755 $(srcdir)/cdparanoia $(BINDIR) > - $(INSTALL) -d -m 0755 $(MANDIR) > - $(INSTALL) -d -m 0755 $(MANDIR)/man1 > - $(INSTALL) -m 0644 $(srcdir)/cdparanoia.1 $(MANDIR)/man1 >@@ -37,7 +37,7 @@ > - $(INSTALL) -m 0644 $(srcdir)/interface/libcdda_interface.a $(LIBDIR) > - $(INSTALL) -m 0644 $(srcdir)/utils.h $(INCLUDEDIR) > + $(INSTALL) -d -m 0755 $(DESTDIR)$(BINDIR) >-+ $(INSTALL) -m 0755 $(srcdir)/cdparanoia $(DESTDIR)$(BINDIR) >++ $(INSTALL) -m 755 $(srcdir)/cdparanoia $(DESTDIR)$(BINDIR) > + $(INSTALL) -d -m 0755 $(DESTDIR)$(MANDIR) > + $(INSTALL) -d -m 0755 $(DESTDIR)$(MANDIR)/man1 > + $(INSTALL) -m 0644 $(srcdir)/cdparanoia.1 $(DESTDIR)$(MANDIR)/man1 >diff --git a/audio/cdparanoia/files/patch-configure b/audio/cdparanoia/files/patch-configure >deleted file mode 100644 >index 8bbd2f313ccf..000000000000 >--- a/audio/cdparanoia/files/patch-configure >+++ /dev/null >@@ -1,15 +0,0 @@ >-Index: configure >-=================================================================== >-RCS file: /home/cvs/cdparanoia/configure,v >-retrieving revision 1.1.1.1 >-retrieving revision 1.2 >---- configure.orig 2000-04-15 15:13:01 UTC >-+++ configure >-@@ -1084,7 +1084,6 @@ EOF >- fi >- >- >--CFLAGS="" >- >- TYPESIZES="" >- >diff --git a/audio/cdparanoia/files/patch-interface_Makefile.in b/audio/cdparanoia/files/patch-interface_Makefile.in >index fc54350e5acd..8111c1d30a03 100644 >--- a/audio/cdparanoia/files/patch-interface_Makefile.in >+++ b/audio/cdparanoia/files/patch-interface_Makefile.in >@@ -3,25 +3,25 @@ Index: interface/Makefile.in > RCS file: /home/cvs/cdparanoia/interface/Makefile.in,v > retrieving revision 1.1.1.1 > retrieving revision 1.3 >---- interface/Makefile.in.orig 1999-12-14 04:27:59 UTC >+--- interface/Makefile.in.orig 2008-08-21 16:08:54 UTC > +++ interface/Makefile.in > @@ -9,13 +9,13 @@ srcdir=@srcdir@ > @SET_MAKE@ > FLAGS=@SBPCD_H@ @UCDROM_H@ @TYPESIZES@ @CFLAGS@ > OPT=@OPT@ $(FLAGS) >--DEBUG=@DEBUG@ $(FLAGS) -DCDDA_TEST >+-DEBUG=@DEBUG@ -DCDDA_TEST > +DEBUG=@DEBUG@ $(FLAGS) > CC=@CC@ > LD=@CC@ > LDFLAGS=@LDFLAGS@ $(FLAGS) > AR=@AR@ > RANLIB=@RANLIB@ >--LIBS = -lm >-+LIBS = -lm -lcam >+-LIBS = -lm -lrt >++LIBS = -lm -lrt -lcam > CPPFLAGS+=-D_REENTRANT > > OFILES = scan_devices.o common_interface.o cooked_interface.o interface.o\ >-@@ -23,19 +23,15 @@ OFILES = scan_devices.o common_interface >+@@ -23,18 +23,14 @@ OFILES = scan_devices.o common_interface.o cooked_inte > > export VERSION > >@@ -38,19 +38,9 @@ retrieving revision 1.3 > $(MAKE) lessmessy > $(MAKE) libcdda_interface.so CFLAGS="$(OPT) -fpic" > [ -e libcdda_interface.so.0 ] || ln -s libcdda_interface.so libcdda_interface.so.0 >- >++ > +debug: > + $(MAKE) libcdda_interface.a CFLAGS="$(DEBUG)" >-+ >+ > test: > $(MAKE) libcdda_interface.a CFLAGS="$(DEBUG)" >- $(CC) $(DEBUG) -c test.c >-@@ -46,7 +42,7 @@ libcdda_interface.a: $(OFILES) >- $(RANLIB) libcdda_interface.a >- >- libcdda_interface.so: $(OFILES) >-- $(CC) -fpic -shared -o libcdda_interface.so.0.$(VERSION) -Wl,-soname -Wl,libcdda_interface.so.0 $(OFILES) >-+ $(CC) -fpic -shared -o libcdda_interface.so.0.$(VERSION) -Wl,-soname -Wl,libcdda_interface.so.0 $(OFILES) ${LIBS} >- [ -e libcdda_interface.so.0 ] || ln -s libcdda_interface.so.0.$(VERSION) libcdda_interface.so.0 >- [ -e libcdda_interface.so ] || ln -s libcdda_interface.so.0.$(VERSION) libcdda_interface.so >- >diff --git a/audio/cdparanoia/files/patch-interface_cdda__interface.h b/audio/cdparanoia/files/patch-interface_cdda__interface.h >index 5a1e76b22cfa..d6a4a6ea3576 100644 >--- a/audio/cdparanoia/files/patch-interface_cdda__interface.h >+++ b/audio/cdparanoia/files/patch-interface_cdda__interface.h >@@ -1,18 +1,20 @@ >---- interface/cdda_interface.h.orig 2001-03-24 01:15:46 UTC >+--- interface/cdda_interface.h.orig 2008-09-11 10:43:52 UTC > +++ interface/cdda_interface.h >-@@ -21,6 +21,11 @@ >+@@ -21,6 +21,13 @@ > #include <sys/types.h> > #include <signal.h> > > +#ifdef __FreeBSD__ > +#include <stdio.h> > +#include <camlib.h> >++ >++#define ENOMEDIUM 12345 > +#endif > + > #define MAXTRK 100 > > typedef struct TOC { /* structure of table of contents */ >-@@ -47,13 +52,19 @@ typedef struct cdrom_drive{ >+@@ -49,13 +56,19 @@ typedef struct cdrom_drive{ > int opened; /* This struct may just represent a candidate for opening */ > > char *cdda_device_name; >@@ -34,17 +36,3 @@ > int interface; > int bigendianp; > int nsectors; >-@@ -83,9 +94,13 @@ typedef struct cdrom_drive{ >- int is_mmc; >- >- /* SCSI command buffer and offset pointers */ >-+#ifdef Linux >- unsigned char *sg; >- unsigned char *sg_buffer; >- unsigned char inqbytes[4]; >-+#elif defined(__FreeBSD__) >-+ unsigned char *sg_buffer; >-+#endif >- >- /* Scsi parameters and state */ >- unsigned char density; >diff --git a/audio/cdparanoia/files/patch-interface_common__interface.c b/audio/cdparanoia/files/patch-interface_common__interface.c >index f631f86bae78..a086db6c417e 100644 >--- a/audio/cdparanoia/files/patch-interface_common__interface.c >+++ b/audio/cdparanoia/files/patch-interface_common__interface.c >@@ -3,29 +3,35 @@ Index: interface/common_interface.c > RCS file: /home/cvs/cdparanoia/interface/common_interface.c,v > retrieving revision 1.1.1.1 > retrieving revision 1.5 >---- interface/common_interface.c.orig 2000-04-19 22:41:04 UTC >+--- interface/common_interface.c.orig 2008-08-21 16:08:54 UTC > +++ interface/common_interface.c >-@@ -13,12 +13,19 @@ >+@@ -13,15 +13,25 @@ > #include "utils.h" > #include "smallft.h" > > +#ifdef Linux > #include <linux/hdreg.h> >++#elif defined(__FreeBSD__) >++#include <sys/cdio.h> > +#endif > > /* Test for presence of a cdrom by pinging with the 'CDROMVOLREAD' ioctl() */ >+ /* Also test using CDROM_GET_CAPABILITY (if available) as some newer DVDROMs will >+ reject CDROMVOLREAD ioctl for god-knows-what reason */ > int ioctl_ping_cdrom(int fd){ > +#ifdef Linux > struct cdrom_volctrl volctl; >- if (ioctl(fd, CDROMVOLREAD, &volctl)) >+ if (ioctl(fd, CDROMVOLREAD, &volctl) && >+ ioctl(fd, CDROM_GET_CAPABILITY, NULL)<0) > +#elif defined(__FreeBSD__) > + struct ioc_vol volctl; >-+ if (ioctl(fd, CDIOCGETVOL, &volctl)) >++ if (ioctl(fd, CDIOCGETVOL, &volctl) && >++ (ioctl(fd, CDIOCCAPABILITY, NULL)<0)) > +#endif > return(1); /* failure */ > > return(0); >-@@ -26,6 +33,7 @@ int ioctl_ping_cdrom(int fd){ >+@@ -29,6 +39,7 @@ int ioctl_ping_cdrom(int fd){ > } > > >@@ -33,7 +39,7 @@ retrieving revision 1.5 > /* Use the ioctl thingy above ping the cdrom; this will get model info */ > char *atapi_drive_info(int fd){ > /* Work around the fact that the struct grew without warning in >-@@ -46,6 +54,7 @@ char *atapi_drive_info(int fd){ >+@@ -49,6 +60,7 @@ char *atapi_drive_info(int fd){ > free(id); > return(ret); > } >@@ -41,8 +47,8 @@ retrieving revision 1.5 > > int data_bigendianp(cdrom_drive *d){ > float lsb_votes=0; >-@@ -171,7 +180,9 @@ int data_bigendianp(cdrom_drive *d){ >- knows the leasoud/leadin size. */ >+@@ -174,7 +186,9 @@ int data_bigendianp(cdrom_drive *d){ >+ knows the leadout/leadin size. */ > > int FixupTOC(cdrom_drive *d,int tracks){ > +#ifdef Linux >@@ -51,7 +57,7 @@ retrieving revision 1.5 > int j; > > /* First off, make sure the 'starting sector' is >=0 */ >-@@ -208,6 +219,8 @@ int FixupTOC(cdrom_drive *d,int tracks){ >+@@ -211,6 +225,8 @@ int FixupTOC(cdrom_drive *d,int tracks){ > /* For a scsi device, the ioctl must go to the specialized SCSI > CDROM device, not the generic device. */ > >@@ -60,10 +66,19 @@ retrieving revision 1.5 > if (d->ioctl_fd != -1) { > int result; > >-@@ -231,6 +244,7 @@ int FixupTOC(cdrom_drive *d,int tracks){ >+@@ -235,6 +251,16 @@ int FixupTOC(cdrom_drive *d,int tracks){ > return 1; > } > } >++#elif defined(__FreeBSD__) >++ for (j = tracks-1; j >= 0; j--) { >++ if (j > 0 && !IS_AUDIO(d,j) && IS_AUDIO(d,j-1)) { >++ if ((d->disc_toc[j].dwStartSector > d->disc_toc[j].dwStartSector - 11400) && >++ (d->disc_toc[j].dwStartSector - 11400 > d->disc_toc[j-1].dwStartSector)) >++ d->disc_toc[j].dwStartSector = d->disc_toc[j].dwStartSector - 11400; >++ break; >++ } >++ } > +#endif > return 0; > } >diff --git a/audio/cdparanoia/files/patch-interface_cooked__interface.c b/audio/cdparanoia/files/patch-interface_cooked__interface.c >index 8d739c3f6ad1..4cf26c9148f7 100644 >--- a/audio/cdparanoia/files/patch-interface_cooked__interface.c >+++ b/audio/cdparanoia/files/patch-interface_cooked__interface.c >@@ -1,24 +1,24 @@ >---- interface/cooked_interface.c.orig 2000-04-19 22:41:04 UTC >+--- interface/cooked_interface.c.orig 2008-08-26 09:55:22 UTC > +++ interface/cooked_interface.c > @@ -1,6 +1,8 @@ > /****************************************************************** >- * CopyPolicy: GNU Public License 2 applies >+ * CopyPolicy: GNU Lesser General Public License 2.1 applies > * Copyright (C) Monty xiphmont@mit.edu > + * FreeBSD porting (c) 2003 > + * Simon 'corecode' Schubert <corecode@corecode.ath.cx> > * > * CDROM code specific to the cooked ioctl interface > * >-@@ -10,6 +12,7 @@ >- #include "common_interface.h" >- #include "utils.h" >+@@ -24,6 +26,7 @@ static int timed_ioctl(cdrom_drive *d, int fd, int com >+ return ret2; >+ } > > +#ifdef Linux > static int cooked_readtoc (cdrom_drive *d){ > int i; > int tracks; >-@@ -129,6 +132,142 @@ static long cooked_read (cdrom_drive *d, >- return(sectors); >+@@ -157,6 +160,142 @@ static long cooked_read (cdrom_drive *d, void *p, long >+ return ret; > } > > +#elif defined(__FreeBSD__) >@@ -160,7 +160,7 @@ > /* hook */ > static int Dummy (cdrom_drive *d,int Switch){ > return(0); >-@@ -193,6 +332,7 @@ static void check_exceptions(cdrom_drive >+@@ -221,6 +360,7 @@ static void check_exceptions(cdrom_drive *d,exception > int cooked_init_drive (cdrom_drive *d){ > int ret; > >@@ -168,7 +168,7 @@ > switch(d->drive_type){ > case MATSUSHITA_CDROM_MAJOR: /* sbpcd 1 */ > case MATSUSHITA_CDROM2_MAJOR: /* sbpcd 2 */ >-@@ -243,6 +383,9 @@ int cooked_init_drive (cdrom_drive *d){ >+@@ -271,6 +411,9 @@ int cooked_init_drive (cdrom_drive *d){ > default: > d->nsectors=40; > } >@@ -177,4 +177,4 @@ > +#endif > d->enable_cdda = Dummy; > d->read_audio = cooked_read; >- d->set_speed = cooked_setspeed; >+ d->read_toc = cooked_readtoc; >diff --git a/audio/cdparanoia/files/patch-interface_interface.c b/audio/cdparanoia/files/patch-interface_interface.c >index 3b8a43d48496..47b5a048b84e 100644 >--- a/audio/cdparanoia/files/patch-interface_interface.c >+++ b/audio/cdparanoia/files/patch-interface_interface.c >@@ -1,6 +1,6 @@ >---- interface/interface.c.orig 2000-04-19 22:41:04 UTC >+--- interface/interface.c.orig 2008-09-11 10:43:52 UTC > +++ interface/interface.c >-@@ -30,11 +30,24 @@ int cdda_close(cdrom_drive *d){ >+@@ -35,10 +35,17 @@ int cdda_close(cdrom_drive *d){ > > _clean_messages(d); > if(d->cdda_device_name)free(d->cdda_device_name); >@@ -9,19 +9,26 @@ > if(d->drive_model)free(d->drive_model); > if(d->cdda_fd!=-1)close(d->cdda_fd); > if(d->ioctl_fd!=-1 && d->ioctl_fd!=d->cdda_fd)close(d->ioctl_fd); >- if(d->sg)free(d->sg); > +#elif defined(__FreeBSD__) >-+ if (d->drive_model) >-+ free(d->drive_model); >-+ if (d->ccb) >-+ cam_freeccb(d->ccb); >-+ if (d->dev) >-+ cam_close_device(d->dev); >-+ if (d->sg_buffer) >-+ free(d->sg_buffer); >-+ if (d->ioctl_fd != -1) >-+ close(d->ioctl_fd); >++ if(d->drive_model)free(d->drive_model); >++ if(d->ccb)cam_freeccb(d->ccb); >++ if(d->dev)cam_close_device(d->dev); >++ if(d->ioctl_fd != -1)close(d->ioctl_fd); > +#endif >- >- free(d); >+ if(d->private_data){ >+ if(d->private_data->sg_hd)free(d->private_data->sg_hd); >+ free(d->private_data); >+@@ -127,7 +134,13 @@ long cdda_read_timed(cdrom_drive *d, void *buffer, lon >+ } >+ } >+ } >++#ifdef Linux >+ if(ms)*ms=d->private_data->last_milliseconds; >++#elif defined(__FreeBSD__) >++ if(ms) { >++ *ms = (d->private_data == NULL) ? 0 : d->private_data->last_milliseconds; >++ } >++#endif >+ return(sectors); > } >+ >diff --git a/audio/cdparanoia/files/patch-interface_low__interface.h b/audio/cdparanoia/files/patch-interface_low__interface.h >index 4d8f491e4455..607db2429372 100644 >--- a/audio/cdparanoia/files/patch-interface_low__interface.h >+++ b/audio/cdparanoia/files/patch-interface_low__interface.h >@@ -3,9 +3,9 @@ Index: interface/low_interface.h > RCS file: /home/cvs/cdparanoia/interface/low_interface.h,v > retrieving revision 1.1.1.1 > retrieving revision 1.3 >---- interface/low_interface.h.orig 2001-03-26 06:12:11 UTC >+--- interface/low_interface.h.orig 2008-09-11 10:43:52 UTC > +++ interface/low_interface.h >-@@ -25,6 +25,8 @@ >+@@ -26,6 +26,8 @@ > #include <sys/time.h> > #include <sys/types.h> > >@@ -14,7 +14,7 @@ retrieving revision 1.3 > #include <linux/major.h> > #include <linux/version.h> > >-@@ -48,12 +50,27 @@ >+@@ -54,6 +56,17 @@ > #include <linux/cdrom.h> > #include <linux/major.h> > >@@ -24,12 +24,15 @@ retrieving revision 1.3 > +#include <sys/cdrio.h> > + > +#include <cam/scsi/scsi_message.h> >++#include <cam/scsi/scsi_sg.h> > +#include <camlib.h> > + > +#endif > + > #include "cdda_interface.h" > >+ #ifndef SG_EMULATED_HOST >+@@ -107,10 +120,17 @@ struct cdda_private_data { > #define MAX_RETRIES 8 > #define MAX_BIG_BUFF_SIZE 65536 > #define MIN_BIG_BUFF_SIZE 4096 >@@ -40,11 +43,6 @@ retrieving revision 1.3 > +#define SG_OFF (0) > +#endif > >- #ifndef SG_EMULATED_HOST >- /* old kernel version; the check for the ioctl is still runtime, this >-@@ -64,7 +81,9 @@ >- #endif >- > extern int cooked_init_drive (cdrom_drive *d); > +#ifdef Linux > extern unsigned char *scsi_inquiry (cdrom_drive *d); >diff --git a/audio/cdparanoia/files/patch-interface_scan__devices.c b/audio/cdparanoia/files/patch-interface_scan__devices.c >index ce83179151b5..b2f414f5e704 100644 >--- a/audio/cdparanoia/files/patch-interface_scan__devices.c >+++ b/audio/cdparanoia/files/patch-interface_scan__devices.c >@@ -1,15 +1,15 @@ >---- interface/scan_devices.c.orig 2001-03-26 05:44:01 UTC >+--- interface/scan_devices.c.orig 2008-08-26 09:55:22 UTC > +++ interface/scan_devices.c > @@ -1,6 +1,8 @@ > /****************************************************************** >- * CopyPolicy: GNU Public License 2 applies >- * Copyright (C) 1998 Monty xiphmont@mit.edu >+ * CopyPolicy: GNU Lesser General Public License 2.1 applies >+ * Copyright (C) 1998-2008 Monty xiphmont@mit.edu > + * FreeBSD porting (c) 2003 > + * Simon 'corecode' Schubert <corecode@corecode.ath.cx> > * > * Autoscan for or verify presence of a cdrom device > * >-@@ -21,6 +23,8 @@ >+@@ -24,6 +26,8 @@ > > #define MAX_DEV_LEN 20 /* Safe because strings only come from below */ > /* must be absolute paths! */ >@@ -18,7 +18,7 @@ > static char *scsi_cdrom_prefixes[]={ > "/dev/scd", > "/dev/sr", >-@@ -49,6 +53,17 @@ static char *cdrom_devices[]={ >+@@ -52,6 +56,17 @@ static char *cdrom_devices[]={ > "/dev/cm206cd", > "/dev/gscd", > "/dev/optcd",NULL}; >@@ -36,7 +36,17 @@ > > /* Functions here look for a cdrom drive; full init of a drive type > happens in interface.c */ >-@@ -75,10 +90,12 @@ cdrom_drive *cdda_find_a_cdrom(int messa >+@@ -61,6 +76,9 @@ cdrom_drive *cdda_find_a_cdrom(int messagedest,char ** >+ >+ int i=0; >+ cdrom_drive *d; >++#if defined(__FreeBSD__) >++ struct passwd *pwent; >++#endif >+ >+ while(cdrom_devices[i]!=NULL){ >+ >+@@ -78,10 +96,12 @@ cdrom_drive *cdda_find_a_cdrom(int messagedest,char ** > if((d=cdda_identify(buffer,messagedest,messages))) > return(d); > idmessage(messagedest,messages,"",NULL); >@@ -49,22 +59,31 @@ > } > }else{ > /* Name. Go for it. */ >-@@ -117,8 +134,14 @@ cdrom_drive *cdda_identify(const char *d >+@@ -92,9 +112,23 @@ cdrom_drive *cdda_find_a_cdrom(int messagedest,char ** >+ } >+ i++; > } >- #endif >- >-+#ifdef Linux /* is order of checks important? */ >- d=cdda_identify_cooked(device,messagedest,messages); >- if(!d)d=cdda_identify_scsi(device,NULL,messagedest,messages); >++ >++#if Linux >+ idmessage(messagedest,messages, >+ "\n\nNo cdrom drives accessible to %s found.\n", >+ cuserid(NULL)); > +#elif defined(__FreeBSD__) >-+ d = cdda_identify_scsi(device, NULL, messagedest, messages); >-+ if (d == NULL) >-+ d = cdda_identify_cooked(device, messagedest, messages); >++ pwent = getpwuid((uid_t)geteuid()); >++ if (pwent == NULL) { >++ idmessage(messagedest,messages, >++ "\n\nNo accessible cdrom drives found.\n", NULL); >++ return(NULL); >++ } >++ >++ idmessage(messagedest,messages, >++ "\n\nNo cdrom drives accessible to %s found.\n", >++ pwent->pw_name); > +#endif >+ return(NULL); >+ } > >- #ifdef CDDA_TEST >- if(!d)d=cdda_identify_test(device,messagedest,messages); >-@@ -143,6 +166,7 @@ char *test_resolve_symlink(const char *f >+@@ -145,6 +179,7 @@ char *test_resolve_symlink(const char *file,int messag > > } > >@@ -72,7 +91,7 @@ > cdrom_drive *cdda_identify_cooked(const char *dev, int messagedest, > char **messages){ > >-@@ -275,6 +299,61 @@ cdrom_drive *cdda_identify_cooked(const >+@@ -274,6 +309,61 @@ cdrom_drive *cdda_identify_cooked(const char *dev, int > return(d); > } > >@@ -134,7 +153,7 @@ > struct sg_id { > long l1; /* target | lun << 8 | channel << 16 | low_ino << 24 */ > long l2; /* Unique id */ >-@@ -390,6 +469,7 @@ matchfail: >+@@ -400,6 +490,7 @@ matchfail: > if(dev!=-1)close(dev); > return(NULL); > } >@@ -142,7 +161,7 @@ > > void strscat(char *a,char *b,int n){ > int i; >-@@ -401,6 +481,7 @@ void strscat(char *a,char *b,int n){ >+@@ -411,6 +502,7 @@ void strscat(char *a,char *b,int n){ > strcat(a," "); > } > >@@ -150,14 +169,14 @@ > /* 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, >-@@ -653,6 +734,89 @@ cdda_identify_scsi_fail: >- if(g_fd!=-1)close(g_fd); >+@@ -780,6 +872,90 @@ cdda_identify_scsi_fail: >+ } > return(NULL); > } > +#elif defined(__FreeBSD__) > + >-+cdrom_drive *cdda_identify_scsi(const char *device, >-+ const char *dummy, >++cdrom_drive *cdda_identify_scsi(const char *dummy, >++ const char *device, > + int messagedest, > + char **messages) > +{ >@@ -209,7 +228,8 @@ > + d->lun = d->dev->target_lun; > + d->interface = GENERIC_SCSI; > + >-+ if ((d->sg_buffer = malloc(MAX_BIG_BUFF_SIZE)) == NULL) { >++ d->private_data=calloc(1,sizeof(*d->private_data)); >++ if ((d->private_data->sg_buffer=(unsigned char *)(d->private_data->sg_hd=malloc(MAX_BIG_BUFF_SIZE))) == NULL) { > + idperror(messagedest, messages, "Could not allocate buffer memory", NULL); > + goto cdda_identify_scsi_fail; > + } >diff --git a/audio/cdparanoia/files/patch-interface_scsi__interface.c b/audio/cdparanoia/files/patch-interface_scsi__interface.c >index 15fe0300e0d7..dbc0dcaf56fa 100644 >--- a/audio/cdparanoia/files/patch-interface_scsi__interface.c >+++ b/audio/cdparanoia/files/patch-interface_scsi__interface.c >@@ -1,117 +1,118 @@ >---- interface/scsi_interface.c.orig 2001-03-24 01:15:46 UTC >+--- interface/scsi_interface.c.orig 2019-07-25 21:55:03 UTC > +++ interface/scsi_interface.c > @@ -3,6 +3,8 @@ > * Original interface.c Copyright (C) 1994-1997 > * Eissfeldt heiko@colossus.escape.de >- * Current blenderization Copyright (C) 1998-1999 Monty xiphmont@mit.edu >+ * Current incarnation Copyright (C) 1998-2008 Monty xiphmont@mit.edu > + * FreeBSD porting (c) 2003 > + * Simon 'corecode' Schubert <corecode@corecode.ath.cx> > * > * Generic SCSI interface specific code. > * >-@@ -23,6 +25,7 @@ static void tweak_SG_buffer(cdrom_drive >- int table,reserved; >+@@ -36,6 +38,7 @@ static void tweak_SG_buffer(cdrom_drive *d) { >+ int table, reserved, cur, err; > char buffer[256]; > > +#ifdef Linux >- /* maximum transfer size? */ >- if(ioctl(d->cdda_fd,SG_GET_RESERVED_SIZE,&reserved)){ >- /* Up, guess not. */ >-@@ -59,8 +62,17 @@ static void tweak_SG_buffer(cdrom_drive >- cdmessage(d,"\tCouldn't disable command queue! Continuing anyway...\n"); >- } >- >-+#elif defined(__FreeBSD__) >-+ d->nsectors = 26; /* FreeBSD only supports 64K I/O transfer size */ >-+ d->bigbuff = d->nsectors * CD_FRAMESIZE_RAW; >-+ >-+ sprintf(buffer,"\tSetting default read size to %d sectors (%d bytes).\n\n", >-+ d->nsectors,d->nsectors*CD_FRAMESIZE_RAW); >-+ cdmessage(d,buffer); >+ /* SG_SET_RESERVED_SIZE doesn't actually allocate or reserve anything. >+ * what it _does_ do is give you an error if you ask for a value >+ * larger than q->max_sectors (the length of the device's bio request >+@@ -54,6 +57,10 @@ static void tweak_SG_buffer(cdrom_drive *d) { >+ implement working sg lists with SG_IO devices, so who knows... */ >+ if (ioctl(d->cdda_fd, SG_GET_SG_TABLESIZE, &table) < 0) >+ table=1; >++#else >++ reserved = 26 * CD_FRAMESIZE_RAW; /* FreeBSD only supports 64K I/O transfer size */ >++ table = 1; > +#endif >- } > >-+#ifdef Linux >- static void reset_scsi(cdrom_drive *d){ >- int arg; >- d->enable_cdda(d,0); >-@@ -74,6 +86,30 @@ static void reset_scsi(cdrom_drive *d){ >- d->enable_cdda(d,1); >+ sprintf(buffer,"\tDMA scatter/gather table entries: %d\n\t" >+ "table entry size: %d bytes\n\t" >+@@ -93,6 +100,7 @@ static void tweak_SG_buffer(cdrom_drive *d) { >+ cdmessage(d,buffer); > } > >-+#elif defined(__FreeBSD__) >-+static void reset_scsi(cdrom_drive *d) { >-+ d->enable_cdda(d,0); >-+ >-+ d->ccb->ccb_h.func_code = XPT_RESET_DEV; >-+ d->ccb->ccb_h.timeout = 5000; >-+ >-+ cdmessage(d, "sending SCSI reset... "); >-+ if (cam_send_ccb(d->dev, d->ccb)) { >-+ cdmessage(d, "error sending XPT_RESET_DEV CCB"); >-+ } else { >-+ >-+ if (((d->ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) || >-+ ((d->ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_BDR_SENT)) >-+ cdmessage(d,"OK\n"); >-+ else >-+ cdmessage(d,"FAILED\n"); >-+ } >-+ >-+ d->enable_cdda(d,1); >-+} >-+#endif >-+ > +#ifdef Linux > static void clear_garbage(cdrom_drive *d){ > fd_set fdset; > struct timeval tv; >-@@ -104,8 +140,10 @@ static void clear_garbage(cdrom_drive *d >+@@ -123,6 +131,7 @@ static void clear_garbage(cdrom_drive *d){ > flag=1; > } > } > +#endif > >+ static int check_sbp_error(const unsigned char status, >+ const unsigned char *sbp) { >+@@ -172,6 +181,7 @@ static int check_sbp_error(const unsigned char status, >+ return 0; >+ } >+ >++#ifdef Linux > /* process a complete scsi command. */ >+ static int sg2_handle_scsi_cmd(cdrom_drive *d, >+ unsigned char *cmd, >+@@ -332,7 +342,9 @@ static int sg2_handle_scsi_cmd(cdrom_drive *d, >+ } >+ return(0); >+ } >++#endif >+ >++#ifdef Linux >+ static int sgio_handle_scsi_cmd(cdrom_drive *d, >+ unsigned char *cmd, >+ unsigned int cmd_len, >+@@ -417,7 +429,9 @@ static int sgio_handle_scsi_cmd(cdrom_drive *d, >+ errno = 0; >+ return 0; >+ } >++#endif >+ > +#ifdef Linux > static int handle_scsi_cmd(cdrom_drive *d, >+ unsigned char *cmd, > unsigned int cmd_len, >- unsigned int in_size, >-@@ -284,6 +322,95 @@ static int handle_scsi_cmd(cdrom_drive * >- return(0); >+@@ -433,6 +447,120 @@ static int handle_scsi_cmd(cdrom_drive *d, >+ > } > > +#elif defined(__FreeBSD__) > +static int handle_scsi_cmd(cdrom_drive *d, >-+ unsigned int cmd_len, >-+ unsigned int out_size, >++ unsigned char *cmd, >++ unsigned int cmd_len, > + unsigned int in_size, >++ unsigned int out_size, > + unsigned char bytefill, >-+ int bytecheck) { >++ int bytecheck, >++ unsigned char *sense){ > + int result; > + int error_code, sense_key, asc, ascq; > + > + bzero(&d->ccb->csio, sizeof(d->ccb->csio)); > + >-+ memcpy(d->ccb->csio.cdb_io.cdb_bytes, d->sg_buffer, cmd_len); >++ memcpy(d->ccb->csio.cdb_io.cdb_bytes, cmd, cmd_len); > + >-+ if (bytecheck && out_size == 0) >-+ memset(d->sg_buffer, bytefill, in_size); >++ if (bytecheck && in_size == 0) >++ memset(d->private_data->sg_buffer, bytefill, out_size); > + > + cam_fill_csio(&d->ccb->csio, > + /* retries */ 0, > + /* cbfcnp */ NULL, >-+ /* flags */ CAM_DEV_QFRZDIS | (out_size ? CAM_DIR_OUT : CAM_DIR_IN), >++ /* flags */ CAM_DEV_QFRZDIS | (in_size ? CAM_DIR_OUT : CAM_DIR_IN), > + /* tag_action */ MSG_SIMPLE_Q_TAG, >-+ /* data_ptr */ out_size ? d->sg_buffer + cmd_len : d->sg_buffer, >++ /* data_ptr */ in_size ? cmd + cmd_len : d->private_data->sg_buffer, > + /* dxfer_len */ out_size ? out_size : in_size, > + /* sense_len */ SSD_FULL_SIZE, > + /* cdb_len */ cmd_len, > + /* timeout */ 60000); /* XXX */ > + >++ struct timespec tv1; >++ struct timespec tv2; >++ int tret1=clock_gettime(d->private_data->clock,&tv1); > + if ((result = cam_send_ccb(d->dev, d->ccb)) < 0 || > + (d->ccb->ccb_h.status & CAM_STATUS_MASK) == 0 /* hack? */) > + return TR_EREAD; >++ int tret2=clock_gettime(d->private_data->clock,&tv2); > + > + if ((d->ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP && > + (d->ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_SCSI_STATUS_ERROR) { >@@ -121,7 +122,7 @@ > + return TR_UNKNOWN; > + } > + >-+ if (d->ccb->csio.dxfer_len != in_size) { >++ if (d->ccb->csio.dxfer_len != out_size) { > + errno = EIO; > + return TR_EREAD; > + } >@@ -165,21 +166,76 @@ > + break; > + } > + >++ if(bytecheck && out_size){ >++ long i,flag=0; >++ for(i=in_size;i<out_size;i++) >++ if(d->private_data->sg_buffer[i]!=bytefill){ >++ flag=1; >++ break; >++ } >++ >++ if(!flag){ >++ errno=EINVAL; >++ return(TR_ILLEGAL); >++ } >++ } >++ >++ if(tret1<0 || tret2<0){ >++ d->private_data->last_milliseconds=-1; >++ }else{ >++ d->private_data->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.; >++ } >++ > + return 0; > +} > +#endif > + >-+ >- /* Group 1 (10b) command */ >+ static int test_unit_ready(cdrom_drive *d){ >+ unsigned char sense[SG_MAX_SENSE]; >+ unsigned char key, ASC, ASCQ; >+@@ -453,6 +581,7 @@ static int test_unit_ready(cdrom_drive *d){ >+ return 1; >+ } > >- static int mode_sense_atapi(cdrom_drive *d,int size,int page){ >-@@ -833,30 +960,37 @@ static long scsi_read_map (cdrom_drive * >- while(1) { >- if((err=map(d,(p?buffer:NULL),begin,sectors))){ >- if(d->report_all){ > +#ifdef Linux >- struct sg_header *sg_hd=(struct sg_header *)d->sg; >+ static void reset_scsi(cdrom_drive *d){ >+ int arg,tries=0; >+ d->enable_cdda(d,0); >+@@ -472,6 +601,29 @@ static void reset_scsi(cdrom_drive *d){ >+ d->enable_cdda(d,1); >+ } >+ > +#elif defined(__FreeBSD__) >++static void reset_scsi(cdrom_drive *d) { >++ d->enable_cdda(d,0); >++ >++ d->ccb->ccb_h.func_code = XPT_RESET_DEV; >++ d->ccb->ccb_h.timeout = 5000; >++ >++ cdmessage(d, "sending SCSI reset... "); >++ if (cam_send_ccb(d->dev, d->ccb)) { >++ cdmessage(d, "error sending XPT_RESET_DEV CCB"); >++ } else { >++ >++ if (((d->ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) || >++ ((d->ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_BDR_SENT)) >++ cdmessage(d,"OK\n"); >++ else >++ cdmessage(d,"FAILED\n"); >++ } >++ >++ d->enable_cdda(d,1); >++} >++#endif >++ >+ static int mode_sense_atapi(cdrom_drive *d,int size,int page){ >+ unsigned char sense[SG_MAX_SENSE]; >+ unsigned char cmd[10]= {0x5A, /* MODE_SENSE */ >+@@ -1074,29 +1226,35 @@ static long scsi_read_map (cdrom_drive *d, void *p, lo >+ >+ if((err=map(d,(p?buffer:NULL),begin,sectors,sense))){ >+ if(d->report_all){ >++#ifdef __FreeBSD__ > + int error_code, sense_key, asc, ascq; > +#endif > char b[256]; >@@ -194,9 +250,9 @@ > +#endif > sprintf(b," Sense key: %x ASC: %x ASCQ: %x\n", > +#ifdef Linux >- (int)(sg_hd->sense_buffer[2]&0xf), >- (int)(sg_hd->sense_buffer[12]), >- (int)(sg_hd->sense_buffer[13])); >+ (int)(sense[2]&0xf), >+ (int)(sense[12]), >+ (int)(sense[13])); > +#elif defined(__FreeBSD__) > + sense_key, asc, ascq); > +#endif >@@ -212,23 +268,23 @@ > - 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", >-- (int)(sg_hd->sense_buffer[2]&0xf), >-- (int)(sg_hd->sense_buffer[12]), >-- (int)(sg_hd->sense_buffer[13])); >+- (int)(sense[2]&0xf), >+- (int)(sense[12]), >+- (int)(sense[13])); > - fprintf(stderr," Transport error: %s\n",strerror_tr[err]); > - fprintf(stderr," System error: %s\n",strerror(errno)); > } >- >- if(!d->error_retry)return(-7); >-@@ -1307,6 +1441,7 @@ static void check_fua_bit(cdrom_drive *d >- return; >+ >+ switch(errno){ >+@@ -1583,6 +1741,7 @@ static void check_cache(cdrom_drive *d){ >+ } > } > > +#ifdef Linux > static int check_atapi(cdrom_drive *d){ > int atapiret=-1; >- int fd = d->cdda_fd; /* this is the correct fd (not ioctl_fd), as the >-@@ -1333,6 +1468,53 @@ static int check_atapi(cdrom_drive *d){ >+ int fd = d->cdda_fd; /* check the device we'll actually be using to read */ >+@@ -1614,6 +1773,53 @@ static int check_atapi(cdrom_drive *d){ > } > } > >@@ -280,34 +336,21 @@ > +#endif > + > static int check_mmc(cdrom_drive *d){ >- char *b; >+ unsigned char *b; > cdmessage(d,"\nChecking for MMC style command set...\n"); >-@@ -1379,6 +1561,7 @@ static void check_exceptions(cdrom_drive >+@@ -1660,6 +1866,7 @@ static void check_exceptions(cdrom_drive *d,exception > } > } > > +#ifdef Linux > /* request vendor brand and model */ > unsigned char *scsi_inquiry(cdrom_drive *d){ >- memcpy(d->sg_buffer,(char[]){ 0x12,0,0,0,56,0},6); >-@@ -1389,6 +1572,7 @@ unsigned char *scsi_inquiry(cdrom_drive >+ unsigned char sense[SG_MAX_SENSE]; >+@@ -1671,6 +1878,7 @@ unsigned char *scsi_inquiry(cdrom_drive *d){ > } >- return (d->sg_buffer); >+ return (d->private_data->sg_buffer); > } > +#endif > >- > int scsi_init_drive(cdrom_drive *d){ >-@@ -1458,8 +1642,12 @@ int scsi_init_drive(cdrom_drive *d){ >- check_fua_bit(d); >- >- d->error_retry=1; >-+#ifdef Linux >- d->sg=realloc(d->sg,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128); >- d->sg_buffer=d->sg+SG_OFF; >-+#elif defined(__FreeBSD__) >-+ d->sg_buffer = realloc(d->sg_buffer, d->nsectors * CD_FRAMESIZE_RAW); >-+#endif >- d->report_all=1; >- return(0); >- } >+ int ret; >diff --git a/audio/cdparanoia/files/patch-interface_utils.h b/audio/cdparanoia/files/patch-interface_utils.h >index f89e36217135..72138048131b 100644 >--- a/audio/cdparanoia/files/patch-interface_utils.h >+++ b/audio/cdparanoia/files/patch-interface_utils.h >@@ -3,7 +3,7 @@ Index: interface/utils.h > RCS file: /home/cvs/cdparanoia/interface/utils.h,v > retrieving revision 1.1.1.1 > retrieving revision 1.3 >---- interface/utils.h.orig 2000-04-19 22:41:04 UTC >+--- interface/utils.h.orig 2008-08-14 13:56:20 UTC > +++ interface/utils.h > @@ -1,4 +1,9 @@ > +#ifdef LINUX >@@ -15,3 +15,39 @@ retrieving revision 1.3 > #include <stdio.h> > #include <errno.h> > #include <string.h> >+@@ -111,7 +116,7 @@ static void cderror(cdrom_drive *d,const char *s){ >+ d->errorbuf=catstring(d->errorbuf,s); >+ break; >+ case CDDA_MESSAGE_FORGETIT: >+- default: >++ default:break;break;break; >+ break; >+ } >+ } >+@@ -127,7 +132,7 @@ static void cdmessage(cdrom_drive *d,const char *s){ >+ d->messagebuf=catstring(d->messagebuf,s); >+ break; >+ case CDDA_MESSAGE_FORGETIT: >+- default: >++ default:break;break;break; >+ break; >+ } >+ } >+@@ -170,7 +175,7 @@ static void idperror(int messagedest,char **messages,c >+ } >+ break; >+ case CDDA_MESSAGE_FORGETIT: >+- default: >++ default:break;break;break; >+ break; >+ } >+ } >+@@ -207,7 +212,7 @@ static void idmessage(int messagedest,char **messages, >+ } >+ break; >+ case CDDA_MESSAGE_FORGETIT: >+- default: >++ default:break;break;break; >+ break; >+ } >+ } >diff --git a/audio/cdparanoia/files/patch-main.c b/audio/cdparanoia/files/patch-main.c >new file mode 100644 >index 000000000000..f34b292b307b >--- /dev/null >+++ b/audio/cdparanoia/files/patch-main.c >@@ -0,0 +1,15 @@ >+--- main.c.orig 2019-07-23 18:12:13 UTC >++++ main.c >+@@ -588,10 +588,10 @@ static void callback(long inpos, int function){ >+ buffer[aheadposition+19]='>'; >+ } >+ >+- fprintf(stderr,buffer); >++ fprintf(stderr,"%s",buffer); >+ >+ if (logfile != NULL && function==-1) { >+- fprintf(logfile,buffer+1); >++ fprintf(logfile,"%s",buffer+1); >+ fprintf(logfile,"\n\n"); >+ fflush(logfile); >+ } >diff --git a/audio/cdparanoia/files/patch-paranoia_Makefile.in b/audio/cdparanoia/files/patch-paranoia_Makefile.in >index f08e7c035cb2..0369fa727fd1 100644 >--- a/audio/cdparanoia/files/patch-paranoia_Makefile.in >+++ b/audio/cdparanoia/files/patch-paranoia_Makefile.in >@@ -1,6 +1,6 @@ >---- paranoia/Makefile.in.orig 1999-12-14 04:28:04 UTC >+--- paranoia/Makefile.in.orig 2008-09-04 19:02:47 UTC > +++ paranoia/Makefile.in >-@@ -24,18 +24,14 @@ OFILES = paranoia.o p_block.o overlap.o >+@@ -24,17 +24,13 @@ OFILES = paranoia.o p_block.o overlap.o gap.o isort.o > LIBS = ../interface/libcdda_interface.a -lm > export VERSION > >@@ -16,10 +16,9 @@ > -slib: > $(MAKE) lessmessy > $(MAKE) libcdda_paranoia.so CFLAGS="$(OPT) -fpic" >- >++ > +debug: > + $(MAKE) libcdda_paranoia.a CFLAGS="$(DEBUG)" >-+ >+ > #test: $(TFILES) > # >- >diff --git a/audio/cdparanoia/files/patch-paranoia_cdda__paranoia.h b/audio/cdparanoia/files/patch-paranoia_cdda__paranoia.h >index f49133c7992a..6828bcc5efe3 100644 >--- a/audio/cdparanoia/files/patch-paranoia_cdda__paranoia.h >+++ b/audio/cdparanoia/files/patch-paranoia_cdda__paranoia.h >@@ -3,9 +3,9 @@ Index: paranoia/cdda_paranoia.h > RCS file: /home/cvs/cdparanoia/paranoia/cdda_paranoia.h,v > retrieving revision 1.1.1.1 > retrieving revision 1.2 >---- paranoia/cdda_paranoia.h.orig 2001-03-24 01:15:47 UTC >+--- paranoia/cdda_paranoia.h.orig 2008-09-11 20:09:40 UTC > +++ paranoia/cdda_paranoia.h >-@@ -34,6 +34,8 @@ >+@@ -35,6 +35,8 @@ > #define PARANOIA_MODE_NEVERSKIP 32 > > #ifndef CDP_COMPILE >diff --git a/audio/cdparanoia/files/patch-paranoia_overlap.c b/audio/cdparanoia/files/patch-paranoia_overlap.c >new file mode 100644 >index 000000000000..eddce74fb540 >--- /dev/null >+++ b/audio/cdparanoia/files/patch-paranoia_overlap.c >@@ -0,0 +1,20 @@ >+--- paranoia/overlap.c.orig 2019-07-23 18:06:02 UTC >++++ paranoia/overlap.c >+@@ -107,7 +107,7 @@ void offset_adjust_settings(cdrom_paranoia *p, void(*c >+ sector, frob it. We just want a little hysteresis [sp?]*/ >+ long av=(p->stage2.offpoints?p->stage2.offaccum/p->stage2.offpoints:0); >+ >+- if(abs(av)>p->dynoverlap/4){ >++ if(labs(av)>p->dynoverlap/4){ >+ av=(av/MIN_SECTOR_EPSILON)*MIN_SECTOR_EPSILON; >+ >+ if(callback)(*callback)(ce(p->root.vector),PARANOIA_CB_DRIFT); >+@@ -207,7 +207,7 @@ void offset_add_value(cdrom_paranoia *p,offsets *o,lon >+ if(o->offpoints!=-1){ >+ >+ /* Track the average magnitude of jitter (in either direction) */ >+- o->offdiff+=abs(value); >++ o->offdiff+=labs(value); >+ o->offpoints++; >+ o->newpoints++; >+ >diff --git a/audio/cdparanoia/files/patch-version.h b/audio/cdparanoia/files/patch-version.h >deleted file mode 100644 >index ef314df2e976..000000000000 >--- a/audio/cdparanoia/files/patch-version.h >+++ /dev/null >@@ -1,17 +0,0 @@ >-Index: version.h >-=================================================================== >-RCS file: /home/cvs/cdparanoia/version.h,v >-retrieving revision 1.1.1.1 >-retrieving revision 1.2 >---- version.h.orig 2001-03-24 01:15:45 UTC >-+++ version.h >-@@ -8,6 +8,8 @@ >- >- >- #define VERSION "cdparanoia III release 9.8 (March 23, 2001)\n"\ >-- "(C) 2001 Monty <monty@xiph.org> and Xiphophorus\n\n"\ >-+ "(C) 2001 Monty <monty@xiph.org> and Xiphophorus\n"\ >-+ "FreeBSD porting (c) 2003\n"\ >-+ "\tSimon 'corecode' Schubert <corecode@corecode.ath.cx>\n\n"\ >- "Report bugs to paranoia@xiph.org\n"\ >- "http://www.xiph.org/paranoia/\n" >diff --git a/audio/cdparanoia/pkg-plist b/audio/cdparanoia/pkg-plist >index ac1b107f6ed5..418b95663350 100644 >--- a/audio/cdparanoia/pkg-plist >+++ b/audio/cdparanoia/pkg-plist >@@ -4,9 +4,9 @@ include/cdda_paranoia.h > lib/libcdda_interface.a > lib/libcdda_interface.so > lib/libcdda_interface.so.0 >-lib/libcdda_interface.so.0.9.8 >+lib/libcdda_interface.so.0.10.2 > lib/libcdda_paranoia.a > lib/libcdda_paranoia.so > lib/libcdda_paranoia.so.0 >-lib/libcdda_paranoia.so.0.9.8 >+lib/libcdda_paranoia.so.0.10.2 > man/man1/cdparanoia.1.gz >-- >2.43.0 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 200925
:
206100
|
247627
| 247628