Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 5 Nov 2003 05:50:16 -0800 (PST)
From:      Simon Barner <barner@in.tum.de>
To:        freebsd-ports-bugs@FreeBSD.org
Subject:   Re: ports/57227: audio/dagrab fix to work under -CURRENT
Message-ID:  <200311051350.hA5DoGQL002606@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/57227; it has been noted by GNATS.

From: Simon Barner <barner@in.tum.de>
To: freebsd-gnats-submit@FreeBSD.org, vkushnir@Alfacom.net
Cc:  
Subject: Re: ports/57227: audio/dagrab fix to work under -CURRENT
Date: Wed, 5 Nov 2003 14:40:57 +0100

 I modified the patch to make a case distinction using
 __FreeBSD_version.
 
 diff -ruN dagrab.orig/Makefile dagrab/Makefile
 --- dagrab.orig/Makefile	Mon Oct 27 07:17:10 2003
 +++ dagrab/Makefile	Wed Nov  5 14:14:08 2003
 @@ -7,7 +7,7 @@
  
  PORTNAME=	dagrab
  PORTVERSION=	0.3.5
 -PORTREVISION=	1
 +PORTREVISION=	2
  CATEGORIES=	audio
  MASTER_SITES=	${MASTER_SITE_SUNSITE}
  MASTER_SITE_SUBDIR=	apps/sound/cdrom
 @@ -21,10 +21,4 @@
  	${INSTALL_PROGRAM} ${WRKSRC}/dagrab ${PREFIX}/bin
  	${INSTALL_MAN} ${WRKSRC}/dagrab.1 ${MANPREFIX}/man/man1
  
 -.include <bsd.port.pre.mk>
 -
 -.if ${OSVERSION} >= 501106
 -BROKEN=		"Broken by new ATA driver"
 -.endif
 -
 -.include <bsd.port.post.mk>
 +.include <bsd.port.mk>
 diff -ruN dagrab.orig/files/patch-ab dagrab/files/patch-ab
 --- dagrab.orig/files/patch-ab	Wed Mar  5 11:14:11 2003
 +++ dagrab/files/patch-ab	Wed Nov  5 14:33:03 2003
 @@ -1,5 +1,5 @@
 ---- dagrab.c.orig	Sat Feb 19 08:32:46 2000
 -+++ dagrab.c	Wed Mar  5 02:12:38 2003
 +--- dagrab.c.orig	Sat Feb 19 17:32:46 2000
 ++++ dagrab.c	Wed Nov  5 14:32:35 2003
  @@ -94,26 +94,20 @@
   #include <string.h>
   #include <errno.h>
 @@ -104,11 +104,22 @@
   }
   
   void cd_read_audio(int lba,int num,char *buf)
 -@@ -244,13 +248,13 @@
 +@@ -244,16 +248,27 @@
   	/*NOTE: if num>CDROM_NBLOCKS_BUFFER as defined in ide_cd.c (8 in linux 2.0.32)
   	  jitter correction may be required inside the block. */					   
   {
  -	struct cdrom_read_audio ra;
 ++/* CDIOCREADAUDIO has been removed in FreeBSD 5.1-CURRENT */
 ++#if defined (__FreeBSD__) &&  (__FreeBSD_version >= 501106)
 ++	int bsize = 2352;
 ++        if(ioctl(cdrom_fd,CDRIOCSETBLOCKSIZE,&bsize) == -1) {
 ++		fprintf(stderr, "setblocksize");
 ++		exit(1);
 ++        }
 ++	if (pread(cdrom_fd, buf, num*bsize, lba*bsize) != num*bsize){
 ++		fprintf(stderr,"\n%s: read device at lba %d length %d: %s\n",
 ++				progname,lba,num,strerror(errno));
 ++#else
  +	struct ioc_read_audio ra;
   
  -	ra.addr.lba=lba;
 @@ -118,12 +129,16 @@
   	ra.nframes=num;
  -	ra.buf=buf;
  -	if(ioctl(cdrom_fd,CDROMREADAUDIO,&ra)){
 +-		/*fprintf(stderr,"%s: read raw ioctl failed \n",progname);*/
  +	ra.buffer=buf;
  +	if(ioctl(cdrom_fd,CDIOCREADAUDIO,&ra)){
 - 		/*fprintf(stderr,"%s: read raw ioctl failed \n",progname);*/
   		fprintf(stderr,"\n%s: read raw ioctl failed at lba %d length %d: %s\n",
   				progname,lba,num,strerror(errno));
 -@@ -471,7 +475,7 @@
 ++#endif
 + 		exit(1);
 + 	}
 + }
 +@@ -471,7 +486,7 @@
     DIR *d;
     struct dirent *e;
     char *id2,*p,*cddb,*loc;
 @@ -132,7 +147,7 @@
     char id[12];
     char *path;
     char path2[500];
 -@@ -645,10 +649,10 @@
 +@@ -645,10 +660,10 @@
   int cd_getinfo(char *cd_dev,struct cd_trk_list *tl)
   {
   	int i;
 @@ -146,7 +161,7 @@
   		fprintf(stderr,"%s: error opening device %s\n",progname,cd_dev);
   		exit(1);
   	}
 -@@ -656,7 +660,7 @@
 +@@ -656,7 +671,7 @@
   		fprintf(stderr,"%s: read TOC ioctl failed: %s\n",progname,strerror(errno));
   		exit(1);
   	}
 @@ -155,7 +170,7 @@
   	if((tl->starts=(int *)malloc((tl->max-tl->min+2)*sizeof(int)))==NULL){
   		fprintf(stderr,"%s: list data allocation failed\n",progname);
   		exit(1);
 -@@ -668,21 +672,21 @@
 +@@ -668,21 +683,21 @@
   
   	for (i=tl->min;i<=tl->max;i++)
   	{
 @@ -183,7 +198,7 @@
   	
           i=cddb_main(tl);
   	if(i==-1) {
 -@@ -796,6 +800,7 @@
 +@@ -796,6 +811,7 @@
   	struct Wavefile header;
   	int fd,bytes,i,n,q,space;
   	int bcount, sc, missing, speed = 0, ldp, now;
 @@ -191,7 +206,7 @@
   
   	if(tn<tl->min || tn>tl->max) return (-1);
   	space = ((tl->starts[tn-tl->min+1]-tl->starts[tn-tl->min]) * 
 -@@ -879,8 +884,10 @@
 +@@ -879,8 +895,10 @@
   					d = p1[c];
   					buf3[c] = ((short)(d&65535) + (short)(d>>16)) >> 1;
   				}
 @@ -204,7 +219,7 @@
   				fprintf(stderr,"%s: error writing wave file %s: %s\n",
   					progname,nam,strerror(errno));
   				exit(1);
 -@@ -896,7 +903,17 @@
 +@@ -896,7 +914,17 @@
   	/* dump last bytes */
   	if (bytes<(tl->starts[tn+1]-tl->starts[tn])*CD_FRAMESIZE_RAW){
   		n=(tl->starts[tn+1]-tl->starts[tn])*CD_FRAMESIZE_RAW-bytes;
 @@ -223,7 +238,7 @@
   			fprintf(stderr,"%s: error writing wave file %s: %s\n",progname,nam,strerror(errno));
   			exit(1);
   		};
 -@@ -961,7 +978,7 @@
 +@@ -961,7 +989,7 @@
   int main(int ac,char **av)
   {
   	int i,l,disp_TOC=0;
 @@ -232,7 +247,7 @@
   	int all_tracks=0;
   	struct cd_trk_list tl;
   	char cd_dev[BLEN+1]=CDDEVICE;
 -@@ -969,10 +986,8 @@
 +@@ -969,10 +997,8 @@
   	char filter[BLEN+1] = "";
   	char path[500];
   	FILE *f;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200311051350.hA5DoGQL002606>