An attempt to port cdparanoia-III-alpha9.7.
CD-DA extraction tool with excessive data corrections, such as jitter, loss of data, etc. This will soon be obsoleted by cdparanoia IV, I hope.... Most SCSI/ATAPI CD-ROM drives should work fine. However, the ATAPI stuff is totally untested, and if it happened to work, it was a miracle. :-) Currently, - the feature to search for CD-ROM device is not implemented and the -g option is required, - the libraries are not installed.
This commit is contained in:
parent
85439348bd
commit
03fef19591
19 changed files with 1039 additions and 0 deletions
19
audio/cdparanoia/Makefile
Normal file
19
audio/cdparanoia/Makefile
Normal file
|
@ -0,0 +1,19 @@
|
|||
# $NetBSD: Makefile,v 1.1.1.1 2000/01/19 08:03:00 itohy Exp $
|
||||
|
||||
DISTNAME= cdparanoia-III-alpha9.7
|
||||
PKGNAME= cdparanoia-3.a9.7
|
||||
CATEGORIES= audio
|
||||
MASTER_SITES= http://www.xiph.org/paranoia/download/
|
||||
EXTRACT_SUFX= .src.tgz
|
||||
|
||||
MAINTAINER= packages@netbsd.org
|
||||
HOMEPAGE= http://www.xiph.org/paranoia/
|
||||
|
||||
GNU_CONFIGURE= YES
|
||||
ALL_TARGET= static
|
||||
|
||||
do-install:
|
||||
${INSTALL_PROGRAM} ${WRKSRC}/cdparanoia ${PREFIX}/bin
|
||||
${INSTALL_MAN} ${WRKSRC}/cdparanoia.1 ${PREFIX}/man/man1
|
||||
|
||||
.include "../../mk/bsd.pkg.mk"
|
3
audio/cdparanoia/files/md5
Normal file
3
audio/cdparanoia/files/md5
Normal file
|
@ -0,0 +1,3 @@
|
|||
$NetBSD: md5,v 1.1.1.1 2000/01/19 08:03:00 itohy Exp $
|
||||
|
||||
MD5 (cdparanoia-III-alpha9.7.src.tgz) = 0820b2b52b721745f926c913c0a2653f
|
15
audio/cdparanoia/files/patch-sum
Normal file
15
audio/cdparanoia/files/patch-sum
Normal file
|
@ -0,0 +1,15 @@
|
|||
$NetBSD: patch-sum,v 1.1.1.1 2000/01/19 08:03:00 itohy Exp $
|
||||
|
||||
MD5 (patch-aa) = 598f4761b68407f819fa9b8c67ba627c
|
||||
MD5 (patch-ab) = c3ef67eeb817732c2f29c11dd7048ba4
|
||||
MD5 (patch-ac) = 3bcd421fb561a7b5abdf217f7b264f90
|
||||
MD5 (patch-ad) = 6ae48f279ad64674500eb41983221d61
|
||||
MD5 (patch-ae) = 8ade64b6451e4aa2814640655f777904
|
||||
MD5 (patch-ba) = 316c91a58bd361d96d86910ace6ba66a
|
||||
MD5 (patch-ca) = b5e83a7b1dfd50a0e0e969f563220ea1
|
||||
MD5 (patch-cb) = 60d5539a6bdd1ec81bb1cd4bb9f6dbbd
|
||||
MD5 (patch-cc) = c0832f9360f73d77988a1cf48e6b3457
|
||||
MD5 (patch-cd) = ab3d1eaaa4706c77a0e4795f20759c8c
|
||||
MD5 (patch-ce) = 6f15e3f28c38a0058428c5f5981029ad
|
||||
MD5 (patch-cf) = 021d133eafbefb81ffdcbe06f6805842
|
||||
MD5 (patch-cg) = 9a673c9509aea8b11122ba22896dcc22
|
19
audio/cdparanoia/patches/patch-aa
Normal file
19
audio/cdparanoia/patches/patch-aa
Normal file
|
@ -0,0 +1,19 @@
|
|||
$NetBSD: patch-aa,v 1.1.1.1 2000/01/19 08:03:00 itohy Exp $
|
||||
|
||||
--- configure.in.orig Mon Aug 16 07:29:43 1999
|
||||
+++ configure.in Mon Jan 17 23:05:41 2000
|
||||
@@ -63,11 +63,14 @@
|
||||
AC_CHECK_HEADERS(linux/sbpcd.h, SBPCD_H="-DSBPCD_H='1' ")
|
||||
AC_CHECK_HEADERS(linux/ucdrom.h, UCDROM_H="-DUCDROM_H='1' ")
|
||||
|
||||
+AC_CHECK_FUNCS(getopt_long, GETOPT_LONG="-DGETOPT_LONG='1' ")
|
||||
+
|
||||
AC_PROG_MAKE_SET
|
||||
AC_C_CONST
|
||||
|
||||
AC_SUBST(SBPCD_H)
|
||||
AC_SUBST(UCDROM_H)
|
||||
+AC_SUBST(GETOPT_LONG)
|
||||
AC_SUBST(TYPESIZES)
|
||||
AC_SUBST(OPT)
|
||||
AC_SUBST(DEBUG)
|
56
audio/cdparanoia/patches/patch-ab
Normal file
56
audio/cdparanoia/patches/patch-ab
Normal file
|
@ -0,0 +1,56 @@
|
|||
$NetBSD: patch-ab,v 1.1.1.1 2000/01/19 08:03:00 itohy Exp $
|
||||
|
||||
--- Makefile.in.orig Tue Dec 14 17:42:14 1999
|
||||
+++ Makefile.in Mon Jan 17 23:32:22 2000
|
||||
@@ -8,7 +8,7 @@
|
||||
srcdir=@srcdir@
|
||||
|
||||
@SET_MAKE@
|
||||
-FLAGS=@TYPESIZES@ @CFLAGS@
|
||||
+FLAGS=@GETOPT_LONG@ @TYPESIZES@ @CFLAGS@
|
||||
OPT=@OPT@ $(FLAGS)
|
||||
DEBUG=@DEBUG@ $(FLAGS)
|
||||
CC=@CC@
|
||||
@@ -27,29 +27,27 @@
|
||||
|
||||
OFILES = main.o report.o header.o buffering_write.o
|
||||
|
||||
-export STATIC
|
||||
-export VERSION
|
||||
+STLIBS = interface/libcdda_interface.a paranoia/libcdda_paranoia.a -lm
|
||||
+STLIBDEP = interface/libcdda_interface.a paranoia/libcdda_paranoia.a
|
||||
|
||||
-ifeq ($(STATIC),TRUE)
|
||||
- LIBS = interface/libcdda_interface.a paranoia/libcdda_paranoia.a \
|
||||
- -static -lm
|
||||
- LIBDEP = interface/libcdda_interface.a paranoia/libcdda_paranoia.a
|
||||
-else
|
||||
- LIBS = -lcdda_interface -lcdda_paranoia -lm
|
||||
- LIBDEP = interface/libcdda_interface.so paranoia/libcdda_paranoia.so
|
||||
-endif
|
||||
+SHLIBS = -lcdda_interface -lcdda_paranoia -lm
|
||||
+SHLIBDEP = interface/libcdda_interface.so paranoia/libcdda_paranoia.so
|
||||
|
||||
|
||||
-all:
|
||||
+all:
|
||||
cd interface && $(MAKE) all
|
||||
cd paranoia && $(MAKE) all
|
||||
- $(MAKE) cdparanoia CFLAGS="$(OPT)"
|
||||
- strip cdparanoia
|
||||
+ $(MAKE) cdparanoia CFLAGS="$(OPT)" LIBS="$(SHLIBS)" LIBDEP="$(SHLIBDEP)"
|
||||
|
||||
-debug:
|
||||
+static:
|
||||
+ cd interface && $(MAKE) lib
|
||||
+ cd paranoia && $(MAKE) lib
|
||||
+ $(MAKE) cdparanoia CFLAGS="$(OPT)" LIBS="$(STLIBS)" LIBDEP="$(STLIBDEP)"
|
||||
+
|
||||
+debug:
|
||||
cd interface && $(MAKE) debug
|
||||
cd paranoia && $(MAKE) debug
|
||||
- $(MAKE) cdparanoia CFLAGS="$(DEBUG)" STATIC=TRUE
|
||||
+ $(MAKE) cdparanoia CFLAGS="$(DEBUG)" LIBS="$(STLIBS)" LIBDEP="$(STLIBDEP)"
|
||||
|
||||
test:
|
||||
cd interface && $(MAKE) all
|
75
audio/cdparanoia/patches/patch-ac
Normal file
75
audio/cdparanoia/patches/patch-ac
Normal file
|
@ -0,0 +1,75 @@
|
|||
$NetBSD: patch-ac,v 1.1.1.1 2000/01/19 08:03:00 itohy Exp $
|
||||
|
||||
--- configure.orig Mon Aug 16 07:29:42 1999
|
||||
+++ configure Mon Jan 17 23:05:54 2000
|
||||
@@ -1272,6 +1272,62 @@
|
||||
done
|
||||
|
||||
|
||||
+for ac_func in getopt_long
|
||||
+do
|
||||
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
|
||||
+echo "configure:1356: checking for $ac_func" >&5
|
||||
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
|
||||
+ echo $ac_n "(cached) $ac_c" 1>&6
|
||||
+else
|
||||
+ cat > conftest.$ac_ext <<EOF
|
||||
+#line 1361 "configure"
|
||||
+#include "confdefs.h"
|
||||
+/* System header to define __stub macros and hopefully few prototypes,
|
||||
+ which can conflict with char $ac_func(); below. */
|
||||
+#include <assert.h>
|
||||
+/* Override any gcc2 internal prototype to avoid an error. */
|
||||
+/* We use char because int might match the return type of a gcc2
|
||||
+ builtin and then its argument prototype would still apply. */
|
||||
+char $ac_func();
|
||||
+
|
||||
+int main() {
|
||||
+
|
||||
+/* The GNU C library defines this for functions which it implements
|
||||
+ to always fail with ENOSYS. Some functions are actually named
|
||||
+ something starting with __ and the normal name is an alias. */
|
||||
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
|
||||
+choke me
|
||||
+#else
|
||||
+$ac_func();
|
||||
+#endif
|
||||
+
|
||||
+; return 0; }
|
||||
+EOF
|
||||
+if { (eval echo configure:1384: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
|
||||
+ rm -rf conftest*
|
||||
+ eval "ac_cv_func_$ac_func=yes"
|
||||
+else
|
||||
+ echo "configure: failed program was:" >&5
|
||||
+ cat conftest.$ac_ext >&5
|
||||
+ rm -rf conftest*
|
||||
+ eval "ac_cv_func_$ac_func=no"
|
||||
+fi
|
||||
+rm -f conftest*
|
||||
+fi
|
||||
+
|
||||
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
|
||||
+ echo "$ac_t""yes" 1>&6
|
||||
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
|
||||
+ cat >> confdefs.h <<EOF
|
||||
+#define $ac_tr_func 1
|
||||
+EOF
|
||||
+ GETOPT_LONG="-DGETOPT_LONG='1' "
|
||||
+else
|
||||
+ echo "$ac_t""no" 1>&6
|
||||
+fi
|
||||
+done
|
||||
+
|
||||
+
|
||||
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
|
||||
echo "configure:1277: checking whether ${MAKE-make} sets \${MAKE}" >&5
|
||||
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
|
||||
@@ -1537,6 +1593,7 @@
|
||||
s%@SET_MAKE@%$SET_MAKE%g
|
||||
s%@SBPCD_H@%$SBPCD_H%g
|
||||
s%@UCDROM_H@%$UCDROM_H%g
|
||||
+s%@GETOPT_LONG@%$GETOPT_LONG%g
|
||||
s%@TYPESIZES@%$TYPESIZES%g
|
||||
s%@OPT@%$OPT%g
|
||||
s%@DEBUG@%$DEBUG%g
|
39
audio/cdparanoia/patches/patch-ad
Normal file
39
audio/cdparanoia/patches/patch-ad
Normal file
|
@ -0,0 +1,39 @@
|
|||
$NetBSD: patch-ad,v 1.1.1.1 2000/01/19 08:03:00 itohy Exp $
|
||||
|
||||
--- utils.h.orig Sat Oct 9 04:18:21 1999
|
||||
+++ utils.h Sun Jan 16 19:05:14 2000
|
||||
@@ -1,5 +1,10 @@
|
||||
#include <stdlib.h>
|
||||
+#ifdef __linux__
|
||||
#include <endian.h>
|
||||
+#endif
|
||||
+#ifdef __NetBSD__
|
||||
+#include <sys/endian.h>
|
||||
+#endif
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
@@ -19,15 +24,23 @@
|
||||
}
|
||||
|
||||
static inline size32 swap32(size32 x){
|
||||
+#ifdef __NetBSD__
|
||||
+ return bswap32(x);
|
||||
+#else
|
||||
return((((unsigned size32)x & 0x000000ffU) << 24) |
|
||||
(((unsigned size32)x & 0x0000ff00U) << 8) |
|
||||
(((unsigned size32)x & 0x00ff0000U) >> 8) |
|
||||
(((unsigned size32)x & 0xff000000U) >> 24));
|
||||
+#endif
|
||||
}
|
||||
|
||||
static inline size16 swap16(size16 x){
|
||||
+#ifdef __NetBSD__
|
||||
+ return bswap16(x);
|
||||
+#else
|
||||
return((((unsigned size16)x & 0x00ffU) << 8) |
|
||||
(((unsigned size16)x & 0xff00U) >> 8));
|
||||
+#endif
|
||||
}
|
||||
|
||||
#if BYTE_ORDER == LITTLE_ENDIAN
|
122
audio/cdparanoia/patches/patch-ae
Normal file
122
audio/cdparanoia/patches/patch-ae
Normal file
|
@ -0,0 +1,122 @@
|
|||
$NetBSD: patch-ae,v 1.1.1.1 2000/01/19 08:03:00 itohy Exp $
|
||||
|
||||
--- main.c.orig Tue Dec 14 17:18:44 1999
|
||||
+++ main.c Mon Jan 17 23:12:58 2000
|
||||
@@ -49,7 +49,9 @@
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <fcntl.h>
|
||||
+#ifdef __linux__
|
||||
#include <getopt.h>
|
||||
+#endif
|
||||
#include <errno.h>
|
||||
#include <math.h>
|
||||
#include <sys/time.h>
|
||||
@@ -231,6 +233,7 @@
|
||||
" cdparanoia [options] <span> [outfile]\n\n"
|
||||
|
||||
"OPTIONS:\n"
|
||||
+#ifdef GETOPT_LONG
|
||||
" -v --verbose : extra verbose operation\n"
|
||||
" -q --quiet : quiet operation\n"
|
||||
" -e --stderr-progress : force output of progress information to\n"
|
||||
@@ -274,6 +277,46 @@
|
||||
" -Z --disable-paranoia : disable all paranoia checking\n"
|
||||
" -Y --disable-extra-paranoia : only do cdda2wav-style overlap checking\n"
|
||||
" -X --abort-on-skip : abort on imperfect reads/skips\n\n"
|
||||
+#else
|
||||
+" -v : extra verbose operation\n"
|
||||
+" -q : quiet operation\n"
|
||||
+" -e : force output of progress information to\n"
|
||||
+" stderr (for wrapper scripts)\n"
|
||||
+" -V : print version info and quit\n"
|
||||
+" -Q : autosense drive, query disc and quit\n"
|
||||
+" -B : 'batch' mode (saves each track to a seperate file.\n"
|
||||
+" -s : do an exhaustive search for drive\n"
|
||||
+" -h : print help\n\n"
|
||||
+
|
||||
+" -p : output raw 16 bit PCM in host byte order\n"
|
||||
+" -r : output raw 16 bit little-endian PCM\n"
|
||||
+" -R : output raw 16 bit big-endian PCM\n"
|
||||
+" -w : output as WAV file (default)\n"
|
||||
+" -f : output as AIFF file\n"
|
||||
+" -a : output as AIFF-C file\n"
|
||||
+" -i <file> : output human readable ripping info to file\n\n"
|
||||
+
|
||||
+" -c : force treating drive as little endian\n"
|
||||
+" -C : force treating drive as big endian\n"
|
||||
+" -n <n> : force default number of sectors in read to n sectors\n"
|
||||
+" -o <n> : force minimum overlap search during\n"
|
||||
+" verification to n sectors\n"
|
||||
+" -d <dev> : use specified device; disallow autosense\n"
|
||||
+" -g <dev> : use specified generic scsi device\n"
|
||||
+" -S <n> : read from device at specified speed\n"
|
||||
+" -t <n> : Add <n> sectors to the values reported\n"
|
||||
+" when addressing tracks. May be negative\n"
|
||||
+" -T : Assume that the beginning offset of\n"
|
||||
+" track 1 as reported in the TOC will be\n"
|
||||
+" addressed as LBA 0. Necessary for some\n"
|
||||
+" Toshiba drives to get track boundaries\n"
|
||||
+" correct\n"
|
||||
+" -z : never accept any less than perfect\n"
|
||||
+" data reconstruction (don't allow 'V's)\n"
|
||||
+" -Z : disable all paranoia checking\n"
|
||||
+" -Y : only do cdda2wav-style overlap checking\n"
|
||||
+" -X : abort on imperfect reads/skips\n\n"
|
||||
+#endif
|
||||
|
||||
"OUTPUT SMILIES:\n"
|
||||
" :-) Normal operation, low/no jitter\n"
|
||||
@@ -374,7 +417,7 @@
|
||||
int graph=30;
|
||||
char buffer[256];
|
||||
static long c_sector=0,v_sector=0;
|
||||
- static char dispcache[30]=" ";
|
||||
+ static char dispcache[30 + 1]=" ";
|
||||
static int last=0;
|
||||
static long lasttime=0;
|
||||
long sector,osector=0;
|
||||
@@ -585,6 +628,7 @@
|
||||
|
||||
const char *optstring = "escCn:o:d:g:S:prRwafvqVQhZzYXWBi:Tt:";
|
||||
|
||||
+#ifdef GETOPT_LONG
|
||||
struct option options [] = {
|
||||
{"stderr-progress",no_argument,NULL,'e'},
|
||||
{"search-for-drive",no_argument,NULL,'s'},
|
||||
@@ -618,6 +662,7 @@
|
||||
|
||||
{NULL,0,NULL,0}
|
||||
};
|
||||
+#endif
|
||||
|
||||
long blocking_write(int outf, char *buffer, long num){
|
||||
long words=0,temp;
|
||||
@@ -668,7 +713,12 @@
|
||||
|
||||
atexit(cleanup);
|
||||
|
||||
- while((c=getopt_long(argc,argv,optstring,options,&long_option_index))!=EOF){
|
||||
+#ifdef GETOPT_LONG
|
||||
+ while((c=getopt_long(argc,argv,optstring,options,&long_option_index))!=EOF)
|
||||
+#else
|
||||
+ while((c=getopt(argc,argv,optstring))!=EOF)
|
||||
+#endif
|
||||
+ {
|
||||
switch(c){
|
||||
case 'B':
|
||||
batch=1;
|
||||
@@ -797,6 +847,13 @@
|
||||
report(VERSION);
|
||||
|
||||
/* Query the cdrom/disc; we may need to override some settings */
|
||||
+
|
||||
+#ifndef __linux__ /* XXX */
|
||||
+ if (!force_generic_device)
|
||||
+ errx(1, "-g option is currently required by NetBSD version");
|
||||
+ if (!force_cdrom_device)
|
||||
+ force_cdrom_device=copystring(force_generic_device);
|
||||
+#endif
|
||||
|
||||
if(force_generic_device)
|
||||
d=cdda_identify_scsi(force_generic_device,force_cdrom_device,verbose,NULL);
|
21
audio/cdparanoia/patches/patch-ba
Normal file
21
audio/cdparanoia/patches/patch-ba
Normal file
|
@ -0,0 +1,21 @@
|
|||
$NetBSD: patch-ba,v 1.1.1.1 2000/01/19 08:03:00 itohy Exp $
|
||||
|
||||
--- paranoia/Makefile.in.orig Tue Dec 14 13:28:04 1999
|
||||
+++ paranoia/Makefile.in Mon Jan 17 23:26:01 2000
|
||||
@@ -22,7 +22,6 @@
|
||||
#TFILES = isort.t gap.t p_block.t paranoia.t
|
||||
|
||||
LIBS = ../interface/libcdda_interface.a -lm
|
||||
-export VERSION
|
||||
|
||||
all: lib slib
|
||||
|
||||
@@ -34,7 +33,7 @@
|
||||
|
||||
slib:
|
||||
$(MAKE) lessmessy
|
||||
- $(MAKE) libcdda_paranoia.so CFLAGS="$(OPT) -fpic"
|
||||
+ $(MAKE) libcdda_paranoia.so VERSION=$(VERSION) CFLAGS="$(OPT) -fpic"
|
||||
|
||||
#test: $(TFILES)
|
||||
#
|
22
audio/cdparanoia/patches/patch-ca
Normal file
22
audio/cdparanoia/patches/patch-ca
Normal file
|
@ -0,0 +1,22 @@
|
|||
$NetBSD: patch-ca,v 1.1.1.1 2000/01/19 08:03:00 itohy Exp $
|
||||
|
||||
--- interface/Makefile.in.orig Tue Dec 14 13:27:59 1999
|
||||
+++ interface/Makefile.in Mon Jan 17 23:26:00 2000
|
||||
@@ -21,8 +21,6 @@
|
||||
OFILES = scan_devices.o common_interface.o cooked_interface.o interface.o\
|
||||
scsi_interface.o smallft.o toc.o test_interface.o
|
||||
|
||||
-export VERSION
|
||||
-
|
||||
all: lib slib
|
||||
|
||||
debug:
|
||||
@@ -33,7 +31,7 @@
|
||||
|
||||
slib:
|
||||
$(MAKE) lessmessy
|
||||
- $(MAKE) libcdda_interface.so CFLAGS="$(OPT) -fpic"
|
||||
+ $(MAKE) libcdda_interface.so VERSION=$(VERSION) CFLAGS="$(OPT) -fpic"
|
||||
[ -e libcdda_interface.so.0 ] || ln -s libcdda_interface.so libcdda_interface.so.0
|
||||
|
||||
test:
|
37
audio/cdparanoia/patches/patch-cb
Normal file
37
audio/cdparanoia/patches/patch-cb
Normal file
|
@ -0,0 +1,37 @@
|
|||
$NetBSD: patch-cb,v 1.1.1.1 2000/01/19 08:03:00 itohy Exp $
|
||||
|
||||
--- interface/low_interface.h.orig Thu Dec 2 16:19:53 1999
|
||||
+++ interface/low_interface.h Sun Jan 16 18:48:11 2000
|
||||
@@ -25,6 +25,7 @@
|
||||
#include <sys/time.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
+#ifdef __linux__
|
||||
#include <linux/major.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
@@ -48,13 +49,24 @@
|
||||
|
||||
#include <linux/cdrom.h>
|
||||
#include <linux/major.h>
|
||||
+#endif
|
||||
+
|
||||
+#ifdef __NetBSD__
|
||||
+#include <sys/scsiio.h>
|
||||
+#include <sys/cdio.h>
|
||||
+#endif
|
||||
|
||||
#include "cdda_interface.h"
|
||||
|
||||
#define MAX_RETRIES 8
|
||||
#define MAX_BIG_BUFF_SIZE 65536
|
||||
#define MIN_BIG_BUFF_SIZE 4096
|
||||
+#ifdef __linux__
|
||||
#define SG_OFF sizeof(struct sg_header)
|
||||
+#endif
|
||||
+#ifdef __NetBSD__
|
||||
+#define SG_OFF sizeof(scsireq_t)
|
||||
+#endif
|
||||
|
||||
#ifndef SG_EMULATED_HOST
|
||||
/* old kernel version; the check for the ioctl is still runtime, this
|
15
audio/cdparanoia/patches/patch-cc
Normal file
15
audio/cdparanoia/patches/patch-cc
Normal file
|
@ -0,0 +1,15 @@
|
|||
$NetBSD: patch-cc,v 1.1.1.1 2000/01/19 08:03:00 itohy Exp $
|
||||
|
||||
--- interface/utils.h.orig Mon Aug 16 07:13:44 1999
|
||||
+++ interface/utils.h Sat Jan 15 19:51:10 2000
|
||||
@@ -1,4 +1,10 @@
|
||||
+#ifdef __linux__
|
||||
#include <endian.h>
|
||||
+#endif
|
||||
+#ifdef __NetBSD__
|
||||
+#include <sys/endian.h>
|
||||
+#include <err.h> /* XXX */
|
||||
+#endif
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
89
audio/cdparanoia/patches/patch-cd
Normal file
89
audio/cdparanoia/patches/patch-cd
Normal file
|
@ -0,0 +1,89 @@
|
|||
$NetBSD: patch-cd,v 1.1.1.1 2000/01/19 08:03:00 itohy Exp $
|
||||
|
||||
--- interface/common_interface.c.orig Tue Dec 14 13:28:00 1999
|
||||
+++ interface/common_interface.c Sat Jan 15 16:55:18 2000
|
||||
@@ -13,19 +13,29 @@
|
||||
#include "utils.h"
|
||||
#include "smallft.h"
|
||||
|
||||
+#ifdef __linux__
|
||||
#include <linux/hdreg.h>
|
||||
+#endif
|
||||
|
||||
/* Test for presence of a cdrom by pinging with the 'CDROMVOLREAD' ioctl() */
|
||||
int ioctl_ping_cdrom(int fd){
|
||||
+#ifdef __linux__
|
||||
struct cdrom_volctrl volctl;
|
||||
if (ioctl(fd, CDROMVOLREAD, &volctl))
|
||||
return(1); /* failure */
|
||||
+#endif
|
||||
+#ifdef __NetBSD__
|
||||
+ struct ioc_vol volctl;
|
||||
+ if (ioctl(fd, CDIOCGETVOL, &volctl))
|
||||
+ return(1); /* failure */
|
||||
+#endif
|
||||
|
||||
return(0);
|
||||
/* success! */
|
||||
}
|
||||
|
||||
|
||||
+#ifdef __linux__
|
||||
/* 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 +56,7 @@
|
||||
free(id);
|
||||
return(ret);
|
||||
}
|
||||
+#endif
|
||||
|
||||
int data_bigendianp(cdrom_drive *d){
|
||||
float lsb_votes=0;
|
||||
@@ -171,7 +182,9 @@
|
||||
knows the leasoud/leadin size. */
|
||||
|
||||
int FixupTOC(cdrom_drive *d,int tracks){
|
||||
+#ifdef __linux__
|
||||
struct cdrom_multisession ms_str;
|
||||
+#endif
|
||||
int j;
|
||||
|
||||
/* First off, make sure the 'starting sector' is >=0 */
|
||||
@@ -209,13 +222,24 @@
|
||||
CDROM device, not the generic device. */
|
||||
|
||||
if (d->ioctl_fd != -1) {
|
||||
+#ifdef __linux__
|
||||
int result;
|
||||
|
||||
ms_str.addr_format = CDROM_LBA;
|
||||
result = ioctl(d->ioctl_fd, CDROMMULTISESSION, &ms_str);
|
||||
if (result == -1) return -1;
|
||||
+# define ms_addr (ms_str.addr.lba)
|
||||
+#endif
|
||||
+
|
||||
+#ifdef __NetBSD__
|
||||
+ int ms_addr;
|
||||
+
|
||||
+ ms_addr = 0; /* last session */
|
||||
+ if (ioctl(d->ioctl_fd, CDIOREADMSADDR, &ms_addr) == -1)
|
||||
+ return -1;
|
||||
+#endif
|
||||
|
||||
- if (ms_str.addr.lba > 100) {
|
||||
+ if (ms_addr > 100) {
|
||||
|
||||
/* This is an odd little piece of code --Monty */
|
||||
|
||||
@@ -223,8 +247,8 @@
|
||||
/* adjust end of last audio track to be in the first session */
|
||||
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 > ms_str.addr.lba - 11400)
|
||||
- d->disc_toc[j].dwStartSector = ms_str.addr.lba - 11400;
|
||||
+ if (d->disc_toc[j].dwStartSector > ms_addr - 11400)
|
||||
+ d->disc_toc[j].dwStartSector = ms_addr - 11400;
|
||||
break;
|
||||
}
|
||||
}
|
111
audio/cdparanoia/patches/patch-ce
Normal file
111
audio/cdparanoia/patches/patch-ce
Normal file
|
@ -0,0 +1,111 @@
|
|||
$NetBSD: patch-ce,v 1.1.1.1 2000/01/19 08:03:00 itohy Exp $
|
||||
|
||||
--- interface/cooked_interface.c.orig Wed Aug 18 15:54:32 1999
|
||||
+++ interface/cooked_interface.c Mon Jan 17 23:43:14 2000
|
||||
@@ -13,6 +13,7 @@
|
||||
static int cooked_readtoc (cdrom_drive *d){
|
||||
int i;
|
||||
int tracks;
|
||||
+#ifdef __linux__
|
||||
struct cdrom_tochdr hdr;
|
||||
struct cdrom_tocentry entry;
|
||||
|
||||
@@ -52,6 +53,45 @@
|
||||
d->disc_toc[i].dwStartSector = entry.cdte_addr.lba;
|
||||
|
||||
tracks=hdr.cdth_trk1+1;
|
||||
+#endif
|
||||
+
|
||||
+#ifdef __NetBSD__
|
||||
+ struct ioc_read_toc_entry hdr;
|
||||
+ struct cd_toc_entry entries[MAXTRK + 1]; /* + 1 for leadout */
|
||||
+
|
||||
+ hdr.address_format = CD_LBA_FORMAT;
|
||||
+ hdr.starting_track = 1;
|
||||
+ hdr.data_len = sizeof entries;
|
||||
+ hdr.data = entries;
|
||||
+ memset(entries, 0, sizeof entries);
|
||||
+
|
||||
+ /* get all TOC entries at once */
|
||||
+#ifndef CDIOREADTOCENTRIES
|
||||
+#define CDIOREADTOCENTRIES CDIOREADTOCENTRYS
|
||||
+#endif
|
||||
+ if(ioctl(d->ioctl_fd, CDIOREADTOCENTRIES, &hdr))
|
||||
+ switch(errno){
|
||||
+ case EPERM:
|
||||
+ cderror(d,"102: Permision denied on cdrom (ioctl) device\n");
|
||||
+ return(-102);
|
||||
+ default:
|
||||
+ cderror(d,"004: Unable to read table of contents header\n");
|
||||
+ return(-4);
|
||||
+ }
|
||||
+
|
||||
+ for(i = 0; i < MAXTRK + 1; i++) {
|
||||
+ d->disc_toc[i].bFlags = (entries[i].addr_type << 4) | (entries[i].control & 0x0f);
|
||||
+ d->disc_toc[i].bTrack = entries[i].track;
|
||||
+ d->disc_toc[i].dwStartSector = entries[i].addr.lba;
|
||||
+ if (entries[i].track == 0) {
|
||||
+ cderror(d,"005: Unable to read table of contents entry\n");
|
||||
+ return(-5);
|
||||
+ }
|
||||
+ if (entries[i].track >= 100)
|
||||
+ break; /* leadout */
|
||||
+ }
|
||||
+ tracks = i;
|
||||
+#endif
|
||||
d->cd_extra=FixupTOC(d,tracks);
|
||||
return(--tracks); /* without lead-out */
|
||||
}
|
||||
@@ -60,10 +100,15 @@
|
||||
/* Set operating speed */
|
||||
static int cooked_setspeed(cdrom_drive *d, int speed)
|
||||
{
|
||||
+#ifdef __linux__
|
||||
if(d->ioctl_fd!=-1)
|
||||
return ioctl(d->ioctl_fd, CDROM_SELECT_SPEED, speed);
|
||||
else
|
||||
return 0;
|
||||
+#endif
|
||||
+#ifdef __NetBSD__
|
||||
+ errx(1, "cooked_setspeed: not implemented");
|
||||
+#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -72,6 +117,7 @@
|
||||
*/
|
||||
|
||||
static long cooked_read (cdrom_drive *d, void *p, long begin, long sectors){
|
||||
+#ifdef __linux__
|
||||
int retry_count,err;
|
||||
struct cdrom_read_audio arg;
|
||||
char *buffer=(char *)p;
|
||||
@@ -127,6 +173,10 @@
|
||||
} while (err);
|
||||
|
||||
return(sectors);
|
||||
+#endif
|
||||
+#ifdef __NetBSD__
|
||||
+ errx(1, "cooked_read: not implemented");
|
||||
+#endif
|
||||
}
|
||||
|
||||
/* hook */
|
||||
@@ -191,6 +241,7 @@
|
||||
|
||||
/* set function pointers to use the ioctl routines */
|
||||
int cooked_init_drive (cdrom_drive *d){
|
||||
+#ifdef __linux__
|
||||
int ret;
|
||||
|
||||
switch(d->drive_type){
|
||||
@@ -255,5 +306,9 @@
|
||||
if((ret=verify_read_command(d)))return(ret);
|
||||
d->error_retry=1;
|
||||
return(0);
|
||||
+#endif
|
||||
+#ifdef __NetBSD__
|
||||
+ errx(1, "cooked_init_drive: not implemented");
|
||||
+#endif
|
||||
}
|
||||
|
190
audio/cdparanoia/patches/patch-cf
Normal file
190
audio/cdparanoia/patches/patch-cf
Normal file
|
@ -0,0 +1,190 @@
|
|||
$NetBSD: patch-cf,v 1.1.1.1 2000/01/19 08:03:00 itohy Exp $
|
||||
|
||||
--- interface/scan_devices.c.orig Tue Dec 14 16:30:23 1999
|
||||
+++ interface/scan_devices.c Sat Jan 15 20:09:29 2000
|
||||
@@ -17,6 +17,8 @@
|
||||
#include "common_interface.h"
|
||||
#include "utils.h"
|
||||
|
||||
+#ifdef __linux__
|
||||
+
|
||||
#define MAX_DEV_LEN 20 /* Safe because strings only come from below */
|
||||
/* must be absolute paths! */
|
||||
static char *scsi_cdrom_prefixes[3]={"/dev/scd","/dev/sr",NULL};
|
||||
@@ -28,10 +30,12 @@
|
||||
/* "/dev/aztcd", timeout is too long */
|
||||
"/dev/cm206cd",
|
||||
"/dev/gscd","/dev/optcd",NULL};
|
||||
+#endif
|
||||
|
||||
/* Functions here look for a cdrom drive; full init of a drive type
|
||||
happens in interface.c */
|
||||
|
||||
+#ifdef __linux__
|
||||
cdrom_drive *cdda_find_a_cdrom(int messagedest,char **messages){
|
||||
/* Brute force... */
|
||||
|
||||
@@ -78,6 +82,16 @@
|
||||
}
|
||||
return(NULL);
|
||||
}
|
||||
+#endif /* __linux__ */
|
||||
+
|
||||
+#ifdef __NetBSD__
|
||||
+
|
||||
+cdrom_drive *cdda_find_a_cdrom(int messagedest,char **messages)
|
||||
+{
|
||||
+ errx(1, "cdda_find_a_cdrom: not implemented");
|
||||
+ /* NOTREACHED */
|
||||
+}
|
||||
+#endif /* __NetBSD__ */
|
||||
|
||||
cdrom_drive *cdda_identify(const char *device, int messagedest,char **messages){
|
||||
struct stat st;
|
||||
@@ -143,6 +157,7 @@
|
||||
cdrom_drive *cdda_identify_cooked(const char *dev, int messagedest,
|
||||
char **messages){
|
||||
|
||||
+#ifdef __linux__
|
||||
cdrom_drive *d=NULL;
|
||||
struct stat st;
|
||||
int fd=-1;
|
||||
@@ -270,6 +285,12 @@
|
||||
idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",description);
|
||||
|
||||
return(d);
|
||||
+#endif
|
||||
+
|
||||
+#ifdef __NetBSD__
|
||||
+ /* no kernel support for CD-DA */
|
||||
+ return NULL;
|
||||
+#endif
|
||||
}
|
||||
|
||||
struct sg_id {
|
||||
@@ -289,12 +310,18 @@
|
||||
|
||||
/* Even *this* isn't as simple as it bloody well should be :-P */
|
||||
static int get_scsi_id(int fd, scsiid *id){
|
||||
+#ifdef __linux__
|
||||
struct sg_id argid;
|
||||
+#endif
|
||||
+#ifdef __NetBSD__
|
||||
+ struct scsi_addr argid;
|
||||
+#endif
|
||||
int busarg;
|
||||
|
||||
/* get the host/id/lun */
|
||||
|
||||
if(fd==-1)return(-1);
|
||||
+#ifdef __linux__
|
||||
if(ioctl(fd,SCSI_IOCTL_GET_IDLUN,&argid))return(-1);
|
||||
id->bus=argid.l2; /* for now */
|
||||
id->id=argid.l1&0xff;
|
||||
@@ -302,6 +329,13 @@
|
||||
|
||||
if(ioctl(fd,SCSI_IOCTL_GET_BUS_NUMBER,&busarg)==0)
|
||||
id->bus=busarg;
|
||||
+#endif
|
||||
+#ifdef __NetBSD__
|
||||
+ if(ioctl(fd,SCIOCIDENTIFY,&argid))return(-1);
|
||||
+ id->bus=argid.addr.scsi.scbus;
|
||||
+ id->id=argid.addr.scsi.target;
|
||||
+ id->lun=argid.addr.scsi.lun;
|
||||
+#endif
|
||||
|
||||
return(0);
|
||||
}
|
||||
@@ -410,6 +444,7 @@
|
||||
generic_device);
|
||||
return(NULL);
|
||||
}
|
||||
+#ifdef __linux__
|
||||
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",
|
||||
@@ -421,6 +456,7 @@
|
||||
ioctl_device=temp;
|
||||
}
|
||||
}
|
||||
+#endif
|
||||
}
|
||||
if(ioctl_device){
|
||||
if(stat(ioctl_device,&i_st)){
|
||||
@@ -428,6 +464,7 @@
|
||||
ioctl_device);
|
||||
return(NULL);
|
||||
}
|
||||
+#ifdef __linux__
|
||||
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",
|
||||
@@ -439,6 +476,7 @@
|
||||
ioctl_device=temp;
|
||||
}
|
||||
}
|
||||
+#endif
|
||||
}
|
||||
|
||||
/* we need to resolve any symlinks for the lookup code to work */
|
||||
@@ -455,6 +493,7 @@
|
||||
}
|
||||
|
||||
if(!generic_device || !ioctl_device){
|
||||
+#ifdef __linux__
|
||||
if(generic_device){
|
||||
ioctl_device=scsi_match(generic_device,scsi_cdrom_prefixes,O_RDWR,
|
||||
O_RDONLY|O_NONBLOCK,
|
||||
@@ -468,6 +507,9 @@
|
||||
if(!generic_device)
|
||||
goto cdda_identify_scsi_fail;
|
||||
}
|
||||
+#else
|
||||
+ goto cdda_identify_scsi_fail;
|
||||
+#endif
|
||||
}
|
||||
|
||||
idmessage(messagedest,messages,"\t\tgeneric device: %s",generic_device);
|
||||
@@ -504,6 +546,7 @@
|
||||
|
||||
type=(int)(i_st.st_rdev>>8);
|
||||
|
||||
+#ifdef __linux__
|
||||
if(type==SCSI_CDROM_MAJOR){
|
||||
if (!S_ISBLK(i_st.st_mode)) {
|
||||
idmessage(messagedest,messages,"\t\tSCSI CDROM device %s not a "
|
||||
@@ -515,8 +558,10 @@
|
||||
"major number",ioctl_device);
|
||||
goto cdda_identify_scsi_fail;
|
||||
}
|
||||
+#endif
|
||||
}
|
||||
|
||||
+#ifdef __linux__
|
||||
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 "
|
||||
@@ -528,6 +573,7 @@
|
||||
"major number",generic_device);
|
||||
goto cdda_identify_scsi_fail;
|
||||
}
|
||||
+#endif
|
||||
|
||||
d=calloc(1,sizeof(cdrom_drive));
|
||||
|
||||
@@ -564,6 +610,15 @@
|
||||
|
||||
/* It would seem some TOSHIBA CDROM gets things wrong */
|
||||
|
||||
+#ifndef TYPE_DISK
|
||||
+#define TYPE_DISK 0 /* direct */
|
||||
+#endif
|
||||
+#ifndef TYPE_WORM
|
||||
+#define TYPE_WORM 4 /* write once, read many */
|
||||
+#endif
|
||||
+#ifndef TYPE_ROM
|
||||
+#define TYPE_ROM 5 /* CD-ROM */
|
||||
+#endif
|
||||
if (!strncmp (p + 8, "TOSHIBA", 7) &&
|
||||
!strncmp (p + 16, "CD-ROM", 6) &&
|
||||
p[0] == TYPE_DISK) {
|
187
audio/cdparanoia/patches/patch-cg
Normal file
187
audio/cdparanoia/patches/patch-cg
Normal file
|
@ -0,0 +1,187 @@
|
|||
$NetBSD: patch-cg,v 1.1.1.1 2000/01/19 08:03:00 itohy Exp $
|
||||
|
||||
--- interface/scsi_interface.c.orig Tue Dec 14 13:28:03 1999
|
||||
+++ interface/scsi_interface.c Tue Jan 18 08:33:33 2000
|
||||
@@ -32,6 +32,7 @@
|
||||
#endif
|
||||
|
||||
static int look_for_dougg(cdrom_drive *d){
|
||||
+#ifdef __linux__
|
||||
/* are we using the new SG driver by Doug Gilbert? If so, our memory
|
||||
strategy will be different. */
|
||||
int reserved,table;
|
||||
@@ -78,6 +79,9 @@
|
||||
}
|
||||
|
||||
return(1);
|
||||
+#else
|
||||
+ return(0);
|
||||
+#endif
|
||||
}
|
||||
|
||||
static void find_bloody_big_buff_size(cdrom_drive *d){
|
||||
@@ -142,6 +146,7 @@
|
||||
|
||||
}
|
||||
|
||||
+#ifdef __linux__
|
||||
static void clear_garbage(cdrom_drive *d){
|
||||
fd_set fdset;
|
||||
struct timeval tv;
|
||||
@@ -172,20 +177,28 @@
|
||||
flag=1;
|
||||
}
|
||||
}
|
||||
+#endif
|
||||
|
||||
/* process a complete scsi command. */
|
||||
static int handle_scsi_cmd(cdrom_drive *d,
|
||||
unsigned int cmd_len,
|
||||
unsigned int in_size,
|
||||
unsigned int out_size,
|
||||
- unsigned char bytefill,
|
||||
+ unsigned int bfill,
|
||||
int bytecheck){
|
||||
+ unsigned char bytefill = bfill;
|
||||
int status = 0;
|
||||
+#ifdef __linux__
|
||||
struct sg_header *sg_hd=(struct sg_header *)d->sg;
|
||||
long writebytes=SG_OFF+cmd_len+in_size;
|
||||
+#endif
|
||||
+#ifdef __NetBSD__
|
||||
+ scsireq_t *sreq = (scsireq_t *)d->sg;
|
||||
+#endif
|
||||
|
||||
/* generic scsi device services */
|
||||
|
||||
+#ifdef __linux__
|
||||
/* clear out any possibly preexisting garbage */
|
||||
clear_garbage(d);
|
||||
|
||||
@@ -291,11 +304,53 @@
|
||||
if(errno==0)errno=EIO;
|
||||
return(TR_EREAD);
|
||||
}
|
||||
+#endif /* __linux__ */
|
||||
+
|
||||
+#ifdef __NetBSD__
|
||||
+ if (in_size && out_size) {
|
||||
+ warnx("handle_scsi_cmd: in and out is not supported");
|
||||
+ abort();
|
||||
+ }
|
||||
+ memset(sreq, 0, sizeof(scsireq_t));
|
||||
+ sreq->cmdlen = cmd_len;
|
||||
+ memcpy(sreq->cmd, d->sg_buffer, cmd_len);
|
||||
+ if (in_size) {
|
||||
+ sreq->flags = SCCMD_WRITE;
|
||||
+ sreq->databuf = d->sg_buffer + cmd_len;
|
||||
+ sreq->datalen = out_size;
|
||||
+ }
|
||||
+ if (out_size) {
|
||||
+ sreq->flags = SCCMD_READ;
|
||||
+ sreq->databuf = d->sg_buffer;
|
||||
+ sreq->datalen = out_size;
|
||||
+ if(bytecheck)
|
||||
+ memset(d->sg_buffer, bytefill, out_size);
|
||||
+ }
|
||||
+ sreq->senselen = SENSEBUFLEN;
|
||||
+ sreq->timeout = 10000; /* 10s */
|
||||
|
||||
- if(sg_hd->sense_buffer[0]){
|
||||
+ status = ioctl(d->cdda_fd, SCIOCCOMMAND, (void *) sreq);
|
||||
+ if (status < 0)
|
||||
+ return(TR_ILLEGAL);
|
||||
+#endif
|
||||
+
|
||||
+#ifdef __linux__
|
||||
+ if(sg_hd->sense_buffer[0])
|
||||
+#endif
|
||||
+#ifdef __NetBSD__
|
||||
+ if (sreq->sense[0])
|
||||
+#endif
|
||||
+ {
|
||||
+#ifdef __linux__
|
||||
char key=sg_hd->sense_buffer[2]&0xf;
|
||||
char ASC=sg_hd->sense_buffer[12];
|
||||
char ASCQ=sg_hd->sense_buffer[13];
|
||||
+#endif
|
||||
+#ifdef __NetBSD__
|
||||
+ char key = sreq->sense[2]&0xf;
|
||||
+ char ASC = sreq->sense[12];
|
||||
+ char ASCQ = sreq->sense[13];
|
||||
+#endif
|
||||
switch(key){
|
||||
case 0:
|
||||
if(errno==0)errno=EIO;
|
||||
@@ -333,9 +388,20 @@
|
||||
commands still get through. Perhaps no data comes back even
|
||||
though the target reports success? */
|
||||
|
||||
- if(bytecheck && in_size+cmd_len<out_size){
|
||||
+#ifdef __linux__
|
||||
+ if(bytecheck && in_size+cmd_len<out_size)
|
||||
+#endif
|
||||
+#ifdef __NetBSD__
|
||||
+ if(bytecheck && out_size)
|
||||
+#endif
|
||||
+ {
|
||||
long i,flag=0;
|
||||
+#ifdef __linux__
|
||||
for(i=in_size;i<out_size;i++)
|
||||
+#endif
|
||||
+#ifdef __NetBSD__
|
||||
+ for(i=0;i<out_size;i++)
|
||||
+#endif
|
||||
if(d->sg_buffer[i]!=bytefill){
|
||||
flag=1;
|
||||
break;
|
||||
@@ -840,16 +906,29 @@
|
||||
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;
|
||||
+#endif
|
||||
+#ifdef __NetBSD__
|
||||
+ scsireq_t *sreq=(scsireq_t *)d->sg;
|
||||
+#endif
|
||||
char b[256];
|
||||
|
||||
sprintf(b,"scsi_read error: sector=%ld length=%ld retry=%d\n",
|
||||
begin,sectors,retry_count);
|
||||
cdmessage(d,b);
|
||||
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)(sg_hd->sense_buffer[13])
|
||||
+#endif
|
||||
+#ifdef __NetBSD__
|
||||
+ (int)(sreq->sense[2]&0xf),
|
||||
+ (int)(sreq->sense[12]),
|
||||
+ (int)(sreq->sense[13])
|
||||
+#endif
|
||||
+ );
|
||||
cdmessage(d,b);
|
||||
sprintf(b," Transport error: %s\n",strerror_tr[err]);
|
||||
cdmessage(d,b);
|
||||
@@ -859,9 +938,17 @@
|
||||
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",
|
||||
+#ifdef __linux__
|
||||
(int)(sg_hd->sense_buffer[2]&0xf),
|
||||
(int)(sg_hd->sense_buffer[12]),
|
||||
- (int)(sg_hd->sense_buffer[13]));
|
||||
+ (int)(sg_hd->sense_buffer[13])
|
||||
+#endif
|
||||
+#ifdef __NetBSD__
|
||||
+ (int)(sreq->sense[2]&0xf),
|
||||
+ (int)(sreq->sense[12]),
|
||||
+ (int)(sreq->sense[13])
|
||||
+#endif
|
||||
+ );
|
||||
fprintf(stderr," Transport error: %s\n",strerror_tr[err]);
|
||||
fprintf(stderr," System error: %s\n",strerror(errno));
|
||||
}
|
1
audio/cdparanoia/pkg/COMMENT
Normal file
1
audio/cdparanoia/pkg/COMMENT
Normal file
|
@ -0,0 +1 @@
|
|||
CDDA reading utility with extra data verification features
|
15
audio/cdparanoia/pkg/DESCR
Normal file
15
audio/cdparanoia/pkg/DESCR
Normal file
|
@ -0,0 +1,15 @@
|
|||
Cdparanoia retrieves audio tracks from CDDA capable CDROM drives.
|
||||
The data can be saved to a file or directed to standard output
|
||||
in WAV, AIFF, AIFF-C or raw format. Most ATAPI, SCSI and several
|
||||
proprietary CDROM drive makes are supported; cdparanoia can
|
||||
determine if the target drive is CDDA capable.
|
||||
|
||||
In addition to simple reading, cdparanoia adds extra-robust
|
||||
data verification, synchronization, error handling and scratch
|
||||
reconstruction capability.
|
||||
|
||||
Note on NetBSD pkg:
|
||||
This is only a trial and incomplete.
|
||||
|
||||
Currently, the feature to search for CD-ROM device is
|
||||
not implemented and the -g option is required.
|
3
audio/cdparanoia/pkg/PLIST
Normal file
3
audio/cdparanoia/pkg/PLIST
Normal file
|
@ -0,0 +1,3 @@
|
|||
@comment $NetBSD: PLIST,v 1.1.1.1 2000/01/19 08:03:01 itohy Exp $
|
||||
bin/cdparanoia
|
||||
man/man1/cdparanoia.1
|
Loading…
Reference in a new issue