Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Aug 2000 05:50:43 -0700 (PDT)
From:      tkato@prontomail.ne.jp
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/20594: Update port: audio/dagrab (fix ports/20592)
Message-ID:  <20000814125043.6380F37B9A3@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         20594
>Category:       ports
>Synopsis:       Update port: audio/dagrab (fix ports/20592)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon Aug 14 06:00:02 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     KATO Tsuguru
>Release:        4.1-RELEASE i386
>Organization:
>Environment:
>Description:
It seems ports/20553 was not processed correctly as I intended.
Following patch is needed for fixing.

New file:
patches/patch-ab

This PR supersedes ports/20592.
>How-To-Repeat:

>Fix:
diff -urN /usr/ports/audio/dagrab/patches/patch-ab audio/dagrab/patches/patch-ab
--- /usr/ports/audio/dagrab/patches/patch-ab	Thu Jan  1 09:00:00 1970
+++ audio/dagrab/patches/patch-ab	Mon Aug  7 19:29:48 2000
@@ -0,0 +1,175 @@
+--- dagrab.c.orig	Sun Feb 20 01:32:46 2000
++++ dagrab.c	Mon Aug  7 19:29:28 2000
+@@ -94,26 +94,20 @@
+ #include <string.h>
+ #include <errno.h>
+ #include <fcntl.h>
+-#include <getopt.h>
+ #include <dirent.h>
+ #include <netdb.h>
+-#include <unistd.h>
+ #include <pwd.h>
+ #include <ctype.h>
+-#define __need_timeval   /* needed by glibc */
+-#include <time.h>
+-#include <linux/cdrom.h>
+-#ifdef USE_UCDROM
+-#include <linux/ucdrom.h>
+-#endif
+-#include <sys/vfs.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <sys/ioctl.h>
+ #include <sys/socket.h>
+ #include <netinet/in.h>
++#include <sys/cdio.h>
++#include <sys/param.h>
++#include <sys/mount.h>
+ #define CDDEVICE "/dev/cdrom"
+-#define N_BUF 8
++#define N_BUF 12
+ #define OVERLAP 2
+ #define KEYLEN 12
+ #define OFS 12
+@@ -123,12 +117,18 @@
+ #define D_MODE 0660
+ #define CDDB_MAX  65535
+ #define CDDB_PORT 888
++#ifndef CDDB_PATH
+ #define CDDB_PATH "/usr/lib/X11/xmcd/cddb"
++#endif
+ #define CDDB_HOST "freedb.freedb.org"
+ //#define USE_CDDB (opt_save||opt_name)
+ #define USE_CDDB opt_cddb
+ #define PROGNAME "dagrab"
+ #define VERSION "0.3.5"
++#define CD_MSF_OFFSET 150
++#define CDROM_DATA_TRACK 4
++#define CDROM_LEADOUT 0xaa
++#define CD_FRAMESIZE_RAW 2352
+ #define KW_TRACK 0
+ #define KW_FULLD 1
+ #define KW_AUTHOR 2
+@@ -226,16 +226,16 @@
+   return buf;
+ }
+ 
+-int cd_get_tochdr(struct cdrom_tochdr *Th)
++int cd_get_tochdr(struct ioc_toc_header *Th)
+ {
+-	return ioctl(cdrom_fd,CDROMREADTOCHDR,Th);
++	return ioctl(cdrom_fd,CDIOREADTOCHEADER,Th);
+ }
+ 
+-int cd_get_tocentry(int trk,struct cdrom_tocentry *Te,int mode)
++int cd_get_tocentry(int trk,struct ioc_read_toc_single_entry *Te,int mode)
+ {
+-  Te->cdte_track=trk;
+-  Te->cdte_format=mode;
+-  return ioctl(cdrom_fd,CDROMREADTOCENTRY,Te);
++  Te->track=trk;
++  Te->address_format=mode;
++  return ioctl(cdrom_fd,CDIOREADTOCENTRY,Te);
+ }
+ 
+ void cd_read_audio(int lba,int num,char *buf)
+@@ -244,13 +244,13 @@
+ 	/*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;
++	struct ioc_read_audio ra;
+ 
+-	ra.addr.lba=lba;
+-	ra.addr_format=CDROM_LBA;
++	ra.address.lba=lba;
++	ra.address_format=CD_LBA_FORMAT;
+ 	ra.nframes=num;
+-	ra.buf=buf;
+-	if(ioctl(cdrom_fd,CDROMREADAUDIO,&ra)){
++	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 +471,7 @@
+   DIR *d;
+   struct dirent *e;
+   char *id2,*p,*cddb,*loc;
+-  int i,cddbs,locs;
++  int i,cddbs,locs=0;
+   char id[12];
+   char *path;
+   char path2[500];
+@@ -645,10 +645,10 @@
+ int cd_getinfo(char *cd_dev,struct cd_trk_list *tl)
+ {
+ 	int i;
+-	struct cdrom_tochdr Th;
+-	struct cdrom_tocentry Te;
++	struct ioc_toc_header Th;
++	struct ioc_read_toc_single_entry Te;
+ 
+-	if ((cdrom_fd=open(cd_dev,O_RDONLY|O_NONBLOCK))==-1){
++	if ((cdrom_fd=open(cd_dev,O_RDONLY))==-1){
+ 		fprintf(stderr,"%s: error opening device %s\n",progname,cd_dev);
+ 		exit(1);
+ 	}
+@@ -656,7 +656,7 @@
+ 		fprintf(stderr,"%s: read TOC ioctl failed: %s\n",progname,strerror(errno));
+ 		exit(1);
+ 	}
+-	tl->min=Th.cdth_trk0;tl->max=Th.cdth_trk1;
++	tl->min=Th.starting_track;tl->max=Th.ending_track;
+ 	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 +668,21 @@
+ 
+ 	for (i=tl->min;i<=tl->max;i++)
+ 	{
+-		if(cd_get_tocentry(i,&Te,CDROM_LBA)){
++		if(cd_get_tocentry(i,&Te,CD_LBA_FORMAT)){
+ 			fprintf(stderr,"%s: read TOC entry ioctl failed: %s\n",
+ 				progname,strerror(errno));
+ 			exit(1);
+ 		}
+-		tl->starts[i-tl->min]=Te.cdte_addr.lba;
+-		tl->types[i-tl->min]=Te.cdte_ctrl&CDROM_DATA_TRACK;
++		tl->starts[i-tl->min]=ntohl(Te.entry.addr.lba);
++		tl->types[i-tl->min]=Te.entry.control&CDROM_DATA_TRACK;
+ 	}
+ 	i=CDROM_LEADOUT;
+-	if(cd_get_tocentry(i,&Te,CDROM_LBA)){
++	if(cd_get_tocentry(i,&Te,CD_LBA_FORMAT)){
+ 		fprintf(stderr,"%s: read TOC entry ioctl failed: %s\n",progname,strerror(errno));
+ 		exit(1);
+ 	}
+-	tl->starts[tl->max-tl->min+1]=Te.cdte_addr.lba;
+-	tl->types[tl->max-tl->min+1]=Te.cdte_ctrl&CDROM_DATA_TRACK;
++	tl->starts[tl->max-tl->min+1]=ntohl(Te.entry.addr.lba);
++	tl->types[tl->max-tl->min+1]=Te.entry.control&CDROM_DATA_TRACK;
+ 	
+         i=cddb_main(tl);
+ 	if(i==-1) {
+@@ -961,7 +961,7 @@
+ int main(int ac,char **av)
+ {
+ 	int i,l,disp_TOC=0;
+-	char c;
++	int c;
+ 	int all_tracks=0;
+ 	struct cd_trk_list tl;
+ 	char cd_dev[BLEN+1]=CDDEVICE;
+@@ -969,10 +969,8 @@
+ 	char filter[BLEN+1] = "";
+ 	char path[500];
+ 	FILE *f;
+-
+ 	progname=av[0];
+-	optind=0;
+-	while((c=getopt(ac,av,"d:f:n:o:k:r:t:m:e:H:P:D:pshaivCSN"))!=EOF){
++	while((c=getopt(ac,av,"pshaivCSNd:f:n:o:k:r:t:m:e:H:P:D:"))!=-1){
+ 		switch(c){
+ 			case 'h':usage();break;
+ 			case 'd':CPARG(cd_dev);break;


>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




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