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>