diff options
author | ben <ben@pkgsrc.org> | 2006-09-03 17:13:30 +0000 |
---|---|---|
committer | ben <ben@pkgsrc.org> | 2006-09-03 17:13:30 +0000 |
commit | e4134c0fdd8d67e8c8789caa7c7d47b9753c1899 (patch) | |
tree | 21bcb325c2011a178509c8c9a4197d42ead3c8a2 /audio/cdparanoia | |
parent | 3b22836adc0c20c1a29a046d188bec9409a60385 (diff) | |
download | pkgsrc-e4134c0fdd8d67e8c8789caa7c7d47b9753c1899.tar.gz |
Fix build on Mac OS X and bump pkgrevision.
This is based on the work found at:
http://strangehours.livejournal.com/9698.html
Tested on i386 Mac OS X 10.4.7 and i386 NetBSD 3.0.
TODO: manual device selection in Mac OS X.
Diffstat (limited to 'audio/cdparanoia')
-rw-r--r-- | audio/cdparanoia/Makefile | 6 | ||||
-rw-r--r-- | audio/cdparanoia/distinfo | 31 | ||||
-rw-r--r-- | audio/cdparanoia/patches/patch-aa | 32 | ||||
-rw-r--r-- | audio/cdparanoia/patches/patch-ab | 14 | ||||
-rw-r--r-- | audio/cdparanoia/patches/patch-ac | 49 | ||||
-rw-r--r-- | audio/cdparanoia/patches/patch-ad | 25 | ||||
-rw-r--r-- | audio/cdparanoia/patches/patch-ae | 77 | ||||
-rw-r--r-- | audio/cdparanoia/patches/patch-ca | 15 | ||||
-rw-r--r-- | audio/cdparanoia/patches/patch-cb | 4 | ||||
-rw-r--r-- | audio/cdparanoia/patches/patch-cc | 55 | ||||
-rw-r--r-- | audio/cdparanoia/patches/patch-cd | 29 | ||||
-rw-r--r-- | audio/cdparanoia/patches/patch-cf | 73 | ||||
-rw-r--r-- | audio/cdparanoia/patches/patch-ch | 34 | ||||
-rw-r--r-- | audio/cdparanoia/patches/patch-ci | 31 | ||||
-rw-r--r-- | audio/cdparanoia/patches/patch-cj | 15 | ||||
-rw-r--r-- | audio/cdparanoia/patches/patch-ck | 36 | ||||
-rw-r--r-- | audio/cdparanoia/patches/patch-cl | 13 | ||||
-rw-r--r-- | audio/cdparanoia/patches/patch-cm | 14 | ||||
-rw-r--r-- | audio/cdparanoia/patches/patch-cn | 272 |
19 files changed, 710 insertions, 115 deletions
diff --git a/audio/cdparanoia/Makefile b/audio/cdparanoia/Makefile index 2dedf458078..c3a5612f130 100644 --- a/audio/cdparanoia/Makefile +++ b/audio/cdparanoia/Makefile @@ -1,9 +1,9 @@ -# $NetBSD: Makefile,v 1.22 2006/03/07 06:29:03 joerg Exp $ +# $NetBSD: Makefile,v 1.23 2006/09/03 17:13:30 ben Exp $ # DISTNAME= cdparanoia-III-alpha9.8 PKGNAME= cdparanoia-3.0.9.8 -PKGREVISION= 5 +PKGREVISION= 6 CATEGORIES= audio MASTER_SITES= http://www.xiph.org/paranoia/download/ EXTRACT_SUFX= .src.tgz @@ -12,7 +12,7 @@ MAINTAINER= kim@tac.nyc.ny.us HOMEPAGE= http://www.xiph.org/paranoia/ COMMENT= CDDA reading utility with extra data verification features -ONLY_FOR_PLATFORM= FreeBSD-*-* NetBSD-*-* Linux-*-* DragonFly-*-* +ONLY_FOR_PLATFORM= FreeBSD-*-* NetBSD-*-* Linux-*-* DragonFly-*-* Darwin-*-* PKG_INSTALLATION_TYPES= overwrite pkgviews diff --git a/audio/cdparanoia/distinfo b/audio/cdparanoia/distinfo index 88d7ba5648e..2ef80c9bcc8 100644 --- a/audio/cdparanoia/distinfo +++ b/audio/cdparanoia/distinfo @@ -1,20 +1,25 @@ -$NetBSD: distinfo,v 1.14 2006/05/14 21:31:01 minskim Exp $ +$NetBSD: distinfo,v 1.15 2006/09/03 17:13:30 ben Exp $ SHA1 (cdparanoia-III-alpha9.8.src.tgz) = 04cc33a7d22d6255f6239e3e74195506b3bdde06 RMD160 (cdparanoia-III-alpha9.8.src.tgz) = d9225165f83b5386c58db263d6918a7006df1481 Size (cdparanoia-III-alpha9.8.src.tgz) = 116591 bytes -SHA1 (patch-aa) = 31b37e9fb7be1cb16249bcd6a8561ab64c2fbf39 -SHA1 (patch-ab) = 69d2996b7089cb87ce4e3de969da795ae041e720 -SHA1 (patch-ac) = 7de8b30c5b5ed2e82090115897d7c98e61776214 -SHA1 (patch-ad) = 45cb1d2d402f5769447507c8da24e289396021e7 -SHA1 (patch-ae) = ea4cbc4a13f36ba4da39bd9a944d4123f132b86e +SHA1 (patch-aa) = 29fd5767b37360fe804013bb171fc7e5f4d8311f +SHA1 (patch-ab) = d4dad2ef444cd82bbe6201f7cbdcc42d1f28cc6e +SHA1 (patch-ac) = 3d2221af8d9280c77ad0f08836cbc6f2b311d61f +SHA1 (patch-ad) = 9a1ea1b98b5f3810e1ccae57beb8c68b5e189716 +SHA1 (patch-ae) = 6ba166c2ac73b9c03a1944989c6ffbe655d80c71 SHA1 (patch-ba) = 51151796493c946e5bdafbd22005136ea7f27a09 -SHA1 (patch-ca) = cf29a467bd37bc642edd81f8a6aa76cfb0c15344 -SHA1 (patch-cb) = 2123635be4d7765419d62958365a6df621471439 -SHA1 (patch-cc) = 311f8e45a9c3bc86cdb106730295f28a856ae2ab -SHA1 (patch-cd) = 81a35822f89b4f674f03cbcbd5831cac96c3aa92 +SHA1 (patch-ca) = 9c35254c09a96b622cac44198443f66f7bc0e428 +SHA1 (patch-cb) = c19ee04017b836842bb0f2d2c77e8f35aad0f9bb +SHA1 (patch-cc) = 9398e31db2e0c4cca19a95aa7b22cdb928869429 +SHA1 (patch-cd) = 81d31fb55db0f982959395cdecc3da826bf23bfb SHA1 (patch-ce) = 282e3169cc26ab11924c66a312d77d7c1f59f242 -SHA1 (patch-cf) = 3ccf5e52737cb449dbead92c582646d0ebe24500 +SHA1 (patch-cf) = 650de2a80235e42acd5670a06bd1e5bcf346100d SHA1 (patch-cg) = b9786ee81dcb7bd2f6572a20f424dd5291a8720d -SHA1 (patch-ch) = d28ec06a56499ff96491edc49d462f43c41d15fe -SHA1 (patch-ci) = 7d041cabce0a8935fd1807766a93eb72e7c9c717 +SHA1 (patch-ch) = 8d16dd8c80e8f1ee35ccc299ba927d685adde01c +SHA1 (patch-ci) = 60db1d1d2e8ec9c6d446543762218b22c597d986 +SHA1 (patch-cj) = e2420e2ccadd2d6ea30d6bf48af9c141dc395afc +SHA1 (patch-ck) = 0232f8f42d98b49043f55cd6aaf1f50ab38fadfb +SHA1 (patch-cl) = f511570233524feac434db160e51099316618058 +SHA1 (patch-cm) = 18001a6cf96dd6bfde8e1208be56a40fac9aa0d5 +SHA1 (patch-cn) = b79db0b24a042a5801b47e6db5e20cbf07a53475 diff --git a/audio/cdparanoia/patches/patch-aa b/audio/cdparanoia/patches/patch-aa index 6a47f2edbf5..0779e82a0f4 100644 --- a/audio/cdparanoia/patches/patch-aa +++ b/audio/cdparanoia/patches/patch-aa @@ -1,8 +1,26 @@ -$NetBSD: patch-aa,v 1.3 2001/06/25 12:17:55 simonb Exp $ +$NetBSD: patch-aa,v 1.4 2006/09/03 17:13:30 ben Exp $ ---- configure.in.orig Mon Aug 16 08:29:43 1999 -+++ configure.in Mon Jun 25 21:15:58 2001 -@@ -20,6 +20,12 @@ +--- configure.in.orig 2000-03-25 23:33:22.000000000 -0800 ++++ configure.in +@@ -12,6 +12,17 @@ AC_PROG_RANLIB + AC_CHECK_PROG(AR,ar,ar) + AC_CHECK_PROG(INSTALL,install,install) + ++case $host in ++*-*-darwin*) ++ EXTRA_OBJS=osx_interface.o ++ EXTRA_LIBS=-framework CoreFoundation -framework IOKit ++ ;; ++*) ++ EXTRA_OBJS=cooked_interface.o scsi_interface.o ++ EXTRA_LIBS= ++ ;; ++esac ++ + if test -z "$GCC"; then + DEBUG="-g" + OPT="-O" +@@ -20,6 +31,12 @@ else i?86-*-linux*) DEBUG="-g -Wall -fsigned-char" OPT="-O20 -ffast-math -fsigned-char -finline-functions";; @@ -15,7 +33,7 @@ $NetBSD: patch-aa,v 1.3 2001/06/25 12:17:55 simonb Exp $ *) DEBUG="-g -Wall -fsigned-char" OPT="-O20 -fsigned-char";; -@@ -28,7 +34,10 @@ +@@ -28,7 +45,10 @@ fi AC_HEADER_STDC @@ -27,7 +45,7 @@ $NetBSD: patch-aa,v 1.3 2001/06/25 12:17:55 simonb Exp $ TYPESIZES="" -@@ -62,15 +71,25 @@ +@@ -62,15 +82,27 @@ fi AC_CHECK_HEADERS(linux/sbpcd.h, SBPCD_H="-DSBPCD_H='1' ") AC_CHECK_HEADERS(linux/ucdrom.h, UCDROM_H="-DUCDROM_H='1' ") @@ -51,5 +69,7 @@ $NetBSD: patch-aa,v 1.3 2001/06/25 12:17:55 simonb Exp $ AC_SUBST(DEBUG) AC_SUBST(CC) +AC_SUBST(LIBUTIL) ++AC_SUBST(EXTRA_OBJS) ++AC_SUBST(EXTRA_LIBS) AC_OUTPUT(Makefile interface/Makefile paranoia/Makefile) diff --git a/audio/cdparanoia/patches/patch-ab b/audio/cdparanoia/patches/patch-ab index 7c737a12b5e..66f3a1e590f 100644 --- a/audio/cdparanoia/patches/patch-ab +++ b/audio/cdparanoia/patches/patch-ab @@ -1,9 +1,9 @@ -$NetBSD: patch-ab,v 1.5 2006/03/07 06:29:03 joerg Exp $ +$NetBSD: patch-ab,v 1.6 2006/09/03 17:13:30 ben Exp $ -Note tht VERSION is *not* used for the libtool versioning. +Note that VERSION is *not* used for the libtool versioning. ---- Makefile.in.orig Wed Mar 28 07:46:58 2001 -+++ Makefile.in Sun Mar 3 23:08:01 2002 +--- Makefile.in.orig 2001-03-27 14:46:58.000000000 -0800 ++++ Makefile.in @@ -3,12 +3,12 @@ # DO NOT EDIT BELOW! ########################################################## # (unless, of course, you know what you are doing :) ########################## @@ -19,7 +19,7 @@ Note tht VERSION is *not* used for the libtool versioning. OPT=@OPT@ $(FLAGS) DEBUG=@DEBUG@ $(FLAGS) CC=@CC@ -@@ -27,29 +27,29 @@ +@@ -27,29 +27,29 @@ PWD = $(shell pwd) OFILES = main.o report.o header.o buffering_write.o @@ -38,7 +38,7 @@ Note tht VERSION is *not* used for the libtool versioning. +STLIBDEP = interface/libcdda_interface.a paranoia/libcdda_paranoia.a +SHLIBDEP = interface/libcdda_interface.la paranoia/libcdda_paranoia.la -+SHLIBS = $(SHLIBDEP) @LIBUTIL@ -lm ++SHLIBS = $(SHLIBDEP) @LIBUTIL@ @EXTRA_LIBS@ -lm -all: + @@ -63,7 +63,7 @@ Note tht VERSION is *not* used for the libtool versioning. test: cd interface && $(MAKE) all -@@ -65,31 +65,20 @@ +@@ -65,31 +65,20 @@ slib: install: $(INSTALL) -d -m 0755 $(BINDIR) diff --git a/audio/cdparanoia/patches/patch-ac b/audio/cdparanoia/patches/patch-ac index 982c1d04c4f..3ab390884e8 100644 --- a/audio/cdparanoia/patches/patch-ac +++ b/audio/cdparanoia/patches/patch-ac @@ -1,8 +1,25 @@ -$NetBSD: patch-ac,v 1.5 2004/03/20 11:23:51 wiz Exp $ +$NetBSD: patch-ac,v 1.6 2006/09/03 17:13:30 ben Exp $ ---- configure.orig Sat Apr 15 17:13:01 2000 +--- configure.orig 2000-04-15 08:13:01.000000000 -0700 +++ configure -@@ -893,6 +893,12 @@ else +@@ -884,6 +884,16 @@ else + echo "$ac_t""no" 1>&6 + fi + ++case $host in ++*-*-darwin*) ++ EXTRA_OBJS=osx_interface.o ++ EXTRA_LIBS="-framework CoreFoundation -framework IOKit" ++ ;; ++*) ++ EXTRA_OBJS="cooked_interface.o scsi_interface.o" ++ EXTRA_LIBS= ++ ;; ++esac + + if test -z "$GCC"; then + DEBUG="-g" +@@ -893,6 +903,12 @@ else i?86-*-linux*) DEBUG="-g -Wall -fsigned-char" OPT="-O20 -ffast-math -fsigned-char -finline-functions";; @@ -15,7 +32,7 @@ $NetBSD: patch-ac,v 1.5 2004/03/20 11:23:51 wiz Exp $ *) DEBUG="-g -Wall -fsigned-char" OPT="-O20 -fsigned-char";; -@@ -1084,7 +1090,6 @@ EOF +@@ -1084,7 +1100,6 @@ EOF fi @@ -23,7 +40,7 @@ $NetBSD: patch-ac,v 1.5 2004/03/20 11:23:51 wiz Exp $ TYPESIZES="" -@@ -1476,6 +1481,143 @@ else +@@ -1476,6 +1491,143 @@ else fi done @@ -167,7 +184,27 @@ $NetBSD: patch-ac,v 1.5 2004/03/20 11:23:51 wiz Exp $ echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 echo "configure:1482: checking whether ${MAKE-make} sets \${MAKE}" >&5 -@@ -1744,9 +1886,12 @@ s%@CPP@%$CPP%g +@@ -1686,6 +1838,10 @@ for ac_option + do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ++ : Avoid regenerating within pkgsrc ++ exit 0 ++ : Avoid regenerating within pkgsrc ++ exit 0 + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) +@@ -1736,6 +1892,8 @@ s%@host_alias@%$host_alias%g + s%@host_cpu@%$host_cpu%g + s%@host_vendor@%$host_vendor%g + s%@host_os@%$host_os%g ++s%@EXTRA_OBJS@%$EXTRA_OBJS%g ++s%@EXTRA_LIBS@%$EXTRA_LIBS%g + s%@CC@%$CC%g + s%@RANLIB@%$RANLIB%g + s%@AR@%$AR%g +@@ -1744,9 +1902,12 @@ s%@CPP@%$CPP%g s%@SET_MAKE@%$SET_MAKE%g s%@SBPCD_H@%$SBPCD_H%g s%@UCDROM_H@%$UCDROM_H%g diff --git a/audio/cdparanoia/patches/patch-ad b/audio/cdparanoia/patches/patch-ad index dd2498e55d5..12ee25d654b 100644 --- a/audio/cdparanoia/patches/patch-ad +++ b/audio/cdparanoia/patches/patch-ad @@ -1,8 +1,8 @@ -$NetBSD: patch-ad,v 1.3 2002/03/04 14:45:13 itohy Exp $ +$NetBSD: patch-ad,v 1.4 2006/09/03 17:13:30 ben Exp $ ---- utils.h.orig Thu Apr 20 07:41:04 2000 -+++ utils.h Sun Mar 3 23:24:19 2002 -@@ -1,5 +1,16 @@ +--- utils.h.orig 2000-04-19 15:41:04.000000000 -0700 ++++ utils.h +@@ -1,5 +1,20 @@ #include <stdlib.h> +#ifdef __linux__ #include <endian.h> @@ -16,27 +16,42 @@ $NetBSD: patch-ad,v 1.3 2002/03/04 14:45:13 itohy Exp $ +#include <machine/bswap.h> +#endif +#endif ++#if defined(__APPLE__) && defined(__MACH__) ++#include <stdint.h> ++#include <machine/endian.h> ++#endif #include <stdio.h> #include <errno.h> #include <string.h> -@@ -19,15 +30,23 @@ +@@ -19,15 +34,34 @@ static inline int bigendianp(void){ } static inline int32_t swap32(int32_t x){ +#ifdef __NetBSD__ + return bswap32(x); +#else ++#if defined(__APPLE__) && defined(__MACH__) ++ return((((uint32_t)x & 0x000000ffU) << 24) | ++ (((uint32_t)x & 0x0000ff00U) << 8) | ++ (((uint32_t)x & 0x00ff0000U) >> 8) | ++ (((uint32_t)x & 0xff000000U) >> 24)); ++#else return((((u_int32_t)x & 0x000000ffU) << 24) | (((u_int32_t)x & 0x0000ff00U) << 8) | (((u_int32_t)x & 0x00ff0000U) >> 8) | (((u_int32_t)x & 0xff000000U) >> 24)); +#endif ++#endif } static inline int16_t swap16(int16_t x){ +#ifdef __NetBSD__ + return bswap16(x); +#else ++#if defined(__APPLE__) && defined(__MACH__) ++ return((((uint16_t)x & 0x00ffU) << 8) | ++ (((uint16_t)x & 0xff00U) >> 8)); ++#endif return((((u_int16_t)x & 0x00ffU) << 8) | (((u_int16_t)x & 0xff00U) >> 8)); +#endif diff --git a/audio/cdparanoia/patches/patch-ae b/audio/cdparanoia/patches/patch-ae index 8e23995f263..cdb0681cd3e 100644 --- a/audio/cdparanoia/patches/patch-ae +++ b/audio/cdparanoia/patches/patch-ae @@ -1,7 +1,7 @@ -$NetBSD: patch-ae,v 1.4 2002/03/04 14:45:13 itohy Exp $ +$NetBSD: patch-ae,v 1.5 2006/09/03 17:13:30 ben Exp $ ---- main.c.orig Mon Mar 26 12:44:50 2001 -+++ main.c Mon Mar 4 23:05:48 2002 +--- main.c.orig 2001-03-25 19:44:50.000000000 -0800 ++++ main.c @@ -49,12 +49,18 @@ #include <unistd.h> #include <string.h> @@ -21,7 +21,7 @@ $NetBSD: patch-ae,v 1.4 2002/03/04 14:45:13 itohy Exp $ #include "interface/cdda_interface.h" #include "paranoia/cdda_paranoia.h" #include "utils.h" -@@ -231,6 +237,7 @@ +@@ -231,6 +237,7 @@ VERSION"\n" " cdparanoia [options] <span> [outfile]\n\n" "OPTIONS:\n" @@ -29,7 +29,19 @@ $NetBSD: patch-ae,v 1.4 2002/03/04 14:45:13 itohy Exp $ " -v --verbose : extra verbose operation\n" " -q --quiet : quiet operation\n" " -e --stderr-progress : force output of progress information to\n" -@@ -276,6 +283,50 @@ +@@ -256,9 +263,11 @@ VERSION"\n" + " to n sectors\n" + " -o --force-search-overlap <n> : force minimum overlap search during\n" + " verification to n sectors\n" ++#if !(defined(__APPLE__) && defined(__MACH__)) + " -d --force-cdrom-device <dev> : use specified device; disallow \n" + " autosense\n" + " -g --force-generic-device <dev> : use specified generic scsi device\n" ++#endif + " -S --force-read-speed <n> : read from device at specified speed\n" + " -t --toc-offset <n> : Add <n> sectors to the values reported\n" + " when addressing tracks. May be negative\n" +@@ -276,6 +285,52 @@ VERSION"\n" " -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" @@ -57,8 +69,10 @@ $NetBSD: patch-ae,v 1.4 2002/03/04 14:45:13 itohy Exp $ +" -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" ++#if !(defined(__APPLE__) && defined(__MACH__)) +" -d <dev> : use specified device; disallow autosense\n" +" -g <dev> : use specified generic scsi device\n" ++#endif +" -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" @@ -80,7 +94,7 @@ $NetBSD: patch-ae,v 1.4 2002/03/04 14:45:13 itohy Exp $ "OUTPUT SMILIES:\n" " :-) Normal operation, low/no jitter\n" -@@ -376,7 +427,7 @@ +@@ -376,7 +431,7 @@ static void callback(long inpos, int fun int graph=30; char buffer[256]; static long c_sector=0,v_sector=0; @@ -89,7 +103,7 @@ $NetBSD: patch-ae,v 1.4 2002/03/04 14:45:13 itohy Exp $ static int last=0; static long lasttime=0; long sector,osector=0; -@@ -587,6 +638,7 @@ +@@ -587,6 +642,7 @@ static void callback(long inpos, int fun const char *optstring = "escCn:o:O:d:g:S:prRwafvqVQhZz::YXWBi:Tt:"; @@ -97,7 +111,7 @@ $NetBSD: patch-ae,v 1.4 2002/03/04 14:45:13 itohy Exp $ struct option options [] = { {"stderr-progress",no_argument,NULL,'e'}, {"search-for-drive",no_argument,NULL,'s'}, -@@ -621,6 +673,7 @@ +@@ -621,6 +677,7 @@ struct option options [] = { {NULL,0,NULL,0} }; @@ -105,7 +119,7 @@ $NetBSD: patch-ae,v 1.4 2002/03/04 14:45:13 itohy Exp $ long blocking_write(int outf, char *buffer, long num){ long words=0,temp; -@@ -673,7 +726,12 @@ +@@ -673,7 +730,12 @@ int main(int argc,char *argv[]){ atexit(cleanup); @@ -119,11 +133,29 @@ $NetBSD: patch-ae,v 1.4 2002/03/04 14:45:13 itohy Exp $ switch(c){ case 'B': batch=1; -@@ -810,6 +868,27 @@ - report(VERSION); +@@ -690,6 +752,7 @@ int main(int argc,char *argv[]){ + case 'o': + force_cdrom_overlap=atoi(optarg); + break; ++#if !(defined(__APPLE__) && defined(__MACH__)) + case 'd': + if(force_cdrom_device)free(force_cdrom_device); + force_cdrom_device=copystring(optarg); +@@ -698,6 +761,7 @@ int main(int argc,char *argv[]){ + if(force_generic_device)free(force_generic_device); + force_generic_device=copystring(optarg); + break; ++#endif + case 'S': + force_cdrom_speed=atoi(optarg); + break; +@@ -811,6 +875,30 @@ int main(int argc,char *argv[]){ /* Query the cdrom/disc; we may need to override some settings */ -+ + ++#if defined(__APPLE__) && defined(__MACH__) ++ d=cdda_find_a_cdrom(verbose,NULL); ++#else +#ifndef __linux__ /* XXX */ +#ifdef __NetBSD__ + if (!force_generic_device) { @@ -144,6 +176,25 @@ $NetBSD: patch-ae,v 1.4 2002/03/04 14:45:13 itohy Exp $ + 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); + else +@@ -841,6 +929,7 @@ int main(int argc,char *argv[]){ + report(""); + } + } ++#endif /* __APPLE__ && __DARWIN__ */ + + if(!d){ + if(!verbose) +@@ -878,7 +967,9 @@ int main(int argc,char *argv[]){ + "ignoring preset and autosense",force_cdrom_sectors); + report(buffer); + d->nsectors=force_cdrom_sectors; ++#if !(defined(__APPLE__) && defined(__MACH__)) + d->bigbuff=force_cdrom_sectors*CD_FRAMESIZE_RAW; ++#endif + } + } + if(force_cdrom_overlap!=-1){ diff --git a/audio/cdparanoia/patches/patch-ca b/audio/cdparanoia/patches/patch-ca index a43c478341a..98e508d3cc6 100644 --- a/audio/cdparanoia/patches/patch-ca +++ b/audio/cdparanoia/patches/patch-ca @@ -1,10 +1,15 @@ -$NetBSD: patch-ca,v 1.4 2006/03/07 06:29:03 joerg Exp $ +$NetBSD: patch-ca,v 1.5 2006/09/03 17:13:30 ben Exp $ ---- interface/Makefile.in.orig 1999-12-14 04:27:59.000000000 +0000 +--- interface/Makefile.in.orig 1999-12-13 20:27:59.000000000 -0800 +++ interface/Makefile.in -@@ -21,9 +21,7 @@ CPPFLAGS+=-D_REENTRANT - OFILES = scan_devices.o common_interface.o cooked_interface.o interface.o\ - scsi_interface.o smallft.o toc.o test_interface.o +@@ -18,12 +18,10 @@ RANLIB=@RANLIB@ + LIBS = -lm + CPPFLAGS+=-D_REENTRANT + +-OFILES = scan_devices.o common_interface.o cooked_interface.o interface.o\ +- scsi_interface.o smallft.o toc.o test_interface.o ++OFILES = scan_devices.o common_interface.o interface.o\ ++ smallft.o toc.o test_interface.o @EXTRA_OBJS@ -export VERSION - diff --git a/audio/cdparanoia/patches/patch-cb b/audio/cdparanoia/patches/patch-cb index 90d5c02d17d..cd2612c35a0 100644 --- a/audio/cdparanoia/patches/patch-cb +++ b/audio/cdparanoia/patches/patch-cb @@ -1,6 +1,6 @@ -$NetBSD: patch-cb,v 1.4 2006/03/07 06:29:03 joerg Exp $ +$NetBSD: patch-cb,v 1.5 2006/09/03 17:13:30 ben Exp $ ---- interface/low_interface.h.orig 2001-03-26 16:12:11.000000000 +1000 +--- interface/low_interface.h.orig 2001-03-25 22:12:11.000000000 -0800 +++ interface/low_interface.h @@ -25,6 +25,7 @@ #include <sys/time.h> diff --git a/audio/cdparanoia/patches/patch-cc b/audio/cdparanoia/patches/patch-cc index f1288c88112..318cdf0048b 100644 --- a/audio/cdparanoia/patches/patch-cc +++ b/audio/cdparanoia/patches/patch-cc @@ -1,8 +1,8 @@ -$NetBSD: patch-cc,v 1.5 2006/03/07 06:29:03 joerg Exp $ +$NetBSD: patch-cc,v 1.6 2006/09/03 17:13:30 ben Exp $ ---- interface/utils.h.orig 2000-04-19 16:41:04.000000000 -0600 +--- interface/utils.h.orig 2000-04-19 15:41:04.000000000 -0700 +++ interface/utils.h -@@ -1,4 +1,18 @@ +@@ -1,4 +1,23 @@ +#ifdef __linux__ #include <endian.h> +#endif @@ -18,38 +18,71 @@ $NetBSD: patch-cc,v 1.5 2006/03/07 06:29:03 joerg Exp $ +#elif defined(__FreeBSD__) || defined(__DragonFly__) +#include <machine/endian.h> +#endif ++#if defined(__APPLE__) && defined(__MACH__) ++#include <stdint.h> ++#include <machine/endian.h> ++#define STDERR_FILENO 2 ++#endif #include <stdio.h> #include <errno.h> #include <string.h> -@@ -112,6 +126,7 @@ static void cderror(cdrom_drive *d,const +@@ -14,15 +33,27 @@ static inline int bigendianp(void){ + } + + static inline int32_t swap32(int32_t x){ ++#if defined(__APPLE__) && defined(__MACH__) ++ return((((uint32_t)x & 0x000000ffU) << 24) | ++ (((uint32_t)x & 0x0000ff00U) << 8) | ++ (((uint32_t)x & 0x00ff0000U) >> 8) | ++ (((uint32_t)x & 0xff000000U) >> 24)); ++#else + return((((u_int32_t)x & 0x000000ffU) << 24) | + (((u_int32_t)x & 0x0000ff00U) << 8) | + (((u_int32_t)x & 0x00ff0000U) >> 8) | + (((u_int32_t)x & 0xff000000U) >> 24)); ++#endif + } + + static inline int16_t swap16(int16_t x){ ++#if defined(__APPLE__) && defined(__MACH__) ++ return((((uint16_t)x & 0x00ffU) << 8) | ++ (((uint16_t)x & 0xff00U) >> 8)); ++#else + return((((u_int16_t)x & 0x00ffU) << 8) | + (((u_int16_t)x & 0xff00U) >> 8)); ++#endif + } + + #if BYTE_ORDER == LITTLE_ENDIAN +@@ -112,6 +143,7 @@ static void cderror(cdrom_drive *d,const break; case CDDA_MESSAGE_FORGETIT: default: -+ ; ++ break; } } } -@@ -127,6 +142,7 @@ static void cdmessage(cdrom_drive *d,con +@@ -127,6 +159,7 @@ static void cdmessage(cdrom_drive *d,con break; case CDDA_MESSAGE_FORGETIT: default: -+ ; ++ break; } } } -@@ -169,6 +185,7 @@ static void idperror(int messagedest,cha +@@ -169,6 +202,7 @@ static void idperror(int messagedest,cha break; case CDDA_MESSAGE_FORGETIT: default: -+ ; ++ break; } } if(malloced)free(buffer); -@@ -205,6 +222,7 @@ static void idmessage(int messagedest,ch +@@ -205,6 +239,7 @@ static void idmessage(int messagedest,ch break; case CDDA_MESSAGE_FORGETIT: default: -+ ; ++ break; } } if(malloced)free(buffer); diff --git a/audio/cdparanoia/patches/patch-cd b/audio/cdparanoia/patches/patch-cd index 696f6d66f95..2299a1283a9 100644 --- a/audio/cdparanoia/patches/patch-cd +++ b/audio/cdparanoia/patches/patch-cd @@ -1,8 +1,19 @@ -$NetBSD: patch-cd,v 1.3 2006/03/07 06:29:03 joerg Exp $ +$NetBSD: patch-cd,v 1.4 2006/09/03 17:13:30 ben Exp $ ---- interface/common_interface.c.orig 2000-04-20 08:41:04.000000000 +1000 +--- interface/common_interface.c.orig 2000-04-19 15:41:04.000000000 -0700 +++ interface/common_interface.c -@@ -13,19 +13,28 @@ +@@ -9,23 +9,39 @@ + ******************************************************************/ + + #include <math.h> ++#if defined(__APPLE__) && defined(__MACH__) ++#include <sys/syslimits.h> ++#include <assert.h> ++#include <stdlib.h> ++#include <paths.h> ++#include <fcntl.h> ++#endif + #include "low_interface.h" #include "utils.h" #include "smallft.h" @@ -31,7 +42,7 @@ $NetBSD: patch-cd,v 1.3 2006/03/07 06:29:03 joerg Exp $ /* 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 +55,7 @@ char *atapi_drive_info(int fd){ +@@ -46,6 +62,7 @@ char *atapi_drive_info(int fd){ free(id); return(ret); } @@ -39,7 +50,7 @@ $NetBSD: patch-cd,v 1.3 2006/03/07 06:29:03 joerg Exp $ int data_bigendianp(cdrom_drive *d){ float lsb_votes=0; -@@ -171,7 +181,9 @@ int data_bigendianp(cdrom_drive *d){ +@@ -171,9 +188,12 @@ int data_bigendianp(cdrom_drive *d){ knows the leasoud/leadin size. */ int FixupTOC(cdrom_drive *d,int tracks){ @@ -48,8 +59,11 @@ $NetBSD: patch-cd,v 1.3 2006/03/07 06:29:03 joerg Exp $ +#endif int j; ++#if !(defined(__APPLE__) && defined(__MACH__)) /* First off, make sure the 'starting sector' is >=0 */ -@@ -208,14 +220,26 @@ int FixupTOC(cdrom_drive *d,int tracks){ + + for(j=0;j<tracks;j++){ +@@ -208,14 +228,26 @@ 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. */ @@ -77,7 +91,7 @@ $NetBSD: patch-cd,v 1.3 2006/03/07 06:29:03 joerg Exp $ /* This is an odd little piece of code --Monty */ -@@ -223,14 +247,15 @@ int FixupTOC(cdrom_drive *d,int tracks){ +@@ -223,14 +255,16 @@ int FixupTOC(cdrom_drive *d,int tracks){ /* 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)) { @@ -92,6 +106,7 @@ $NetBSD: patch-cd,v 1.3 2006/03/07 06:29:03 joerg Exp $ } } +#endif ++#endif return 0; } diff --git a/audio/cdparanoia/patches/patch-cf b/audio/cdparanoia/patches/patch-cf index 7bdde5052d1..5aba4a64f1f 100644 --- a/audio/cdparanoia/patches/patch-cf +++ b/audio/cdparanoia/patches/patch-cf @@ -1,6 +1,6 @@ -$NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ +$NetBSD: patch-cf,v 1.7 2006/09/03 17:13:30 ben Exp $ ---- interface/scan_devices.c.orig 2001-03-26 15:44:01.000000000 +1000 +--- interface/scan_devices.c.orig 2001-03-25 21:44:01.000000000 -0800 +++ interface/scan_devices.c @@ -19,6 +19,8 @@ #include "common_interface.h" @@ -11,7 +11,7 @@ $NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ #define MAX_DEV_LEN 20 /* Safe because strings only come from below */ /* must be absolute paths! */ static char *scsi_cdrom_prefixes[]={ -@@ -49,10 +51,18 @@ static char *cdrom_devices[]={ +@@ -49,11 +51,24 @@ static char *cdrom_devices[]={ "/dev/cm206cd", "/dev/gscd", "/dev/optcd",NULL}; @@ -26,11 +26,17 @@ $NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ /* Functions here look for a cdrom drive; full init of a drive type happens in interface.c */ -+#if defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__) ++#if defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__) || (defined(__APPLE__) && defined(__MACH__)) cdrom_drive *cdda_find_a_cdrom(int messagedest,char **messages){ ++#if defined(__APPLE__) && defined(__MACH__) ++ cdrom_drive *d = calloc(1, sizeof(cdrom_drive)); ++ d->interface = OSX_IOKIT; ++ return d; ++#else /* Brute force... */ -@@ -75,10 +85,12 @@ cdrom_drive *cdda_find_a_cdrom(int messa + int i=0; +@@ -75,10 +90,12 @@ cdrom_drive *cdda_find_a_cdrom(int messa if((d=cdda_identify(buffer,messagedest,messages))) return(d); idmessage(messagedest,messages,"",NULL); @@ -43,12 +49,14 @@ $NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ } }else{ /* Name. Go for it. */ -@@ -98,6 +110,16 @@ cdrom_drive *cdda_find_a_cdrom(int messa +@@ -97,8 +114,20 @@ cdrom_drive *cdda_find_a_cdrom(int messa + temp->pw_name); } return(NULL); ++#endif } +#endif /* __linux__ */ -+ + +#ifdef __NetBSD__ + +cdrom_drive *cdda_find_a_cdrom(int messagedest,char **messages) @@ -57,10 +65,12 @@ $NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ + /* NOTREACHED */ +} +#endif /* __NetBSD__ */ - ++ ++#if !(defined(__APPLE__) && defined(__MACH__)) cdrom_drive *cdda_identify(const char *device, int messagedest,char **messages){ struct stat st; -@@ -117,8 +139,14 @@ cdrom_drive *cdda_identify(const char *d + cdrom_drive *d=NULL; +@@ -117,8 +146,14 @@ cdrom_drive *cdda_identify(const char *d } #endif @@ -75,7 +85,7 @@ $NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ #ifdef CDDA_TEST if(!d)d=cdda_identify_test(device,messagedest,messages); -@@ -146,6 +174,7 @@ char *test_resolve_symlink(const char *f +@@ -146,6 +181,7 @@ char *test_resolve_symlink(const char *f cdrom_drive *cdda_identify_cooked(const char *dev, int messagedest, char **messages){ @@ -83,7 +93,7 @@ $NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ cdrom_drive *d=NULL; struct stat st; int fd=-1; -@@ -273,8 +302,60 @@ cdrom_drive *cdda_identify_cooked(const +@@ -273,8 +309,60 @@ cdrom_drive *cdda_identify_cooked(const idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",description); return(d); @@ -144,7 +154,7 @@ $NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ struct sg_id { long l1; /* target | lun << 8 | channel << 16 | low_ino << 24 */ long l2; /* Unique id */ -@@ -289,12 +370,18 @@ typedef struct scsiid{ +@@ -289,12 +377,18 @@ typedef struct scsiid{ /* Even *this* isn't as simple as it bloody well should be :-P */ /* SG has an easy interface, but SCSI overall does not */ static int get_scsi_id(int fd, scsiid *id){ @@ -163,7 +173,7 @@ $NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ if(ioctl(fd,SCSI_IOCTL_GET_IDLUN,&argid))return(-1); id->bus=argid.l2; /* for now */ id->id=argid.l1&0xff; -@@ -302,6 +389,13 @@ static int get_scsi_id(int fd, scsiid *i +@@ -302,6 +396,13 @@ static int get_scsi_id(int fd, scsiid *i if(ioctl(fd,SCSI_IOCTL_GET_BUS_NUMBER,&busarg)==0) id->bus=busarg; @@ -177,7 +187,7 @@ $NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ return(0); } -@@ -390,6 +484,7 @@ matchfail: +@@ -390,6 +491,7 @@ matchfail: if(dev!=-1)close(dev); return(NULL); } @@ -185,7 +195,7 @@ $NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ void strscat(char *a,char *b,int n){ int i; -@@ -401,6 +496,7 @@ void strscat(char *a,char *b,int n){ +@@ -401,6 +503,7 @@ void strscat(char *a,char *b,int n){ strcat(a," "); } @@ -193,7 +203,7 @@ $NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ /* 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, -@@ -430,7 +526,9 @@ static int verify_SG_version(cdrom_drive +@@ -430,7 +533,9 @@ static int verify_SG_version(cdrom_drive idmessage(messagedest,messages,buffer,""); return(major); } @@ -203,7 +213,7 @@ $NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ cdrom_drive *cdda_identify_scsi(const char *generic_device, const char *ioctl_device, int messagedest, char **messages){ -@@ -460,6 +558,7 @@ cdrom_drive *cdda_identify_scsi(const ch +@@ -460,6 +565,7 @@ cdrom_drive *cdda_identify_scsi(const ch generic_device); return(NULL); } @@ -211,7 +221,7 @@ $NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ 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", -@@ -471,6 +570,7 @@ cdrom_drive *cdda_identify_scsi(const ch +@@ -471,6 +577,7 @@ cdrom_drive *cdda_identify_scsi(const ch ioctl_device=temp; } } @@ -219,7 +229,7 @@ $NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ } if(ioctl_device){ if(stat(ioctl_device,&i_st)){ -@@ -478,6 +578,7 @@ cdrom_drive *cdda_identify_scsi(const ch +@@ -478,6 +585,7 @@ cdrom_drive *cdda_identify_scsi(const ch ioctl_device); return(NULL); } @@ -227,7 +237,7 @@ $NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ 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", -@@ -489,6 +590,7 @@ cdrom_drive *cdda_identify_scsi(const ch +@@ -489,6 +597,7 @@ cdrom_drive *cdda_identify_scsi(const ch ioctl_device=temp; } } @@ -235,7 +245,7 @@ $NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ } /* we need to resolve any symlinks for the lookup code to work */ -@@ -505,6 +607,7 @@ cdrom_drive *cdda_identify_scsi(const ch +@@ -505,6 +614,7 @@ cdrom_drive *cdda_identify_scsi(const ch } if(!generic_device || !ioctl_device){ @@ -243,7 +253,7 @@ $NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ if(generic_device){ ioctl_device= scsi_match(generic_device,scsi_cdrom_prefixes, -@@ -520,6 +623,12 @@ cdrom_drive *cdda_identify_scsi(const ch +@@ -520,6 +630,12 @@ cdrom_drive *cdda_identify_scsi(const ch if(!generic_device) goto cdda_identify_scsi_fail; } @@ -256,7 +266,7 @@ $NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ } idmessage(messagedest,messages,"\t\tgeneric device: %s",generic_device); -@@ -556,6 +665,7 @@ cdrom_drive *cdda_identify_scsi(const ch +@@ -556,6 +672,7 @@ cdrom_drive *cdda_identify_scsi(const ch type=(int)(i_st.st_rdev>>8); @@ -264,7 +274,7 @@ $NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ if(type==SCSI_CDROM_MAJOR){ if (!S_ISBLK(i_st.st_mode)) { idmessage(messagedest,messages,"\t\tSCSI CDROM device %s not a " -@@ -567,8 +677,10 @@ cdrom_drive *cdda_identify_scsi(const ch +@@ -567,8 +684,10 @@ cdrom_drive *cdda_identify_scsi(const ch "major number",ioctl_device); goto cdda_identify_scsi_fail; } @@ -275,7 +285,7 @@ $NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ 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 " -@@ -580,6 +692,7 @@ cdrom_drive *cdda_identify_scsi(const ch +@@ -580,6 +699,7 @@ cdrom_drive *cdda_identify_scsi(const ch "major number",generic_device); goto cdda_identify_scsi_fail; } @@ -283,7 +293,7 @@ $NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ d=calloc(1,sizeof(cdrom_drive)); -@@ -590,6 +703,7 @@ cdrom_drive *cdda_identify_scsi(const ch +@@ -590,6 +710,7 @@ cdrom_drive *cdda_identify_scsi(const ch d->bigendianp=-1; /* We don't know yet... */ d->nsectors=-1; @@ -291,7 +301,7 @@ $NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ version=verify_SG_version(d,messagedest,messages); switch(version){ case -1:case 0:case 1: -@@ -599,6 +713,9 @@ cdrom_drive *cdda_identify_scsi(const ch +@@ -599,6 +720,9 @@ cdrom_drive *cdda_identify_scsi(const ch d->interface=GENERIC_SCSI; break; } @@ -301,7 +311,7 @@ $NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ /* malloc our big buffer for scsi commands */ d->sg=malloc(MAX_BIG_BUFF_SIZE); -@@ -617,7 +734,16 @@ cdrom_drive *cdda_identify_scsi(const ch +@@ -617,7 +741,16 @@ cdrom_drive *cdda_identify_scsi(const ch /* It would seem some TOSHIBA CDROMs gets things wrong */ @@ -319,7 +329,7 @@ $NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ !strncmp (p + 16, "CD-ROM", 6) && p[0] == TYPE_DISK) { p[0] = TYPE_ROM; -@@ -653,6 +779,88 @@ cdda_identify_scsi_fail: +@@ -653,6 +786,88 @@ cdda_identify_scsi_fail: if(g_fd!=-1)close(g_fd); return(NULL); } @@ -408,3 +418,8 @@ $NetBSD: patch-cf,v 1.6 2006/03/07 06:29:03 joerg Exp $ #ifdef CDDA_TEST +@@ -702,3 +917,4 @@ cdrom_drive *cdda_identify_test(const ch + } + + #endif ++#endif /* __APPLE__ && __MACH__ */ diff --git a/audio/cdparanoia/patches/patch-ch b/audio/cdparanoia/patches/patch-ch index f7216564559..99bb152ae68 100644 --- a/audio/cdparanoia/patches/patch-ch +++ b/audio/cdparanoia/patches/patch-ch @@ -1,8 +1,16 @@ -$NetBSD: patch-ch,v 1.2 2006/03/07 06:29:04 joerg Exp $ +$NetBSD: patch-ch,v 1.3 2006/09/03 17:13:30 ben Exp $ ---- interface/cdda_interface.h.orig 2001-03-24 12:15:46.000000000 +1100 +--- interface/cdda_interface.h.orig 2001-03-23 17:15:46.000000000 -0800 +++ interface/cdda_interface.h -@@ -21,6 +21,11 @@ +@@ -18,9 +18,19 @@ + #endif + #define CD_FRAMESAMPLES (CD_FRAMESIZE_RAW / 4) + ++#if defined(__APPLE__) && defined(__MACH__) ++#include <IOKit/IOKitLib.h> ++#include <IOKit/storage/IOCDTypes.h> ++#endif ++ #include <sys/types.h> #include <signal.h> @@ -14,7 +22,15 @@ $NetBSD: patch-ch,v 1.2 2006/03/07 06:29:04 joerg Exp $ #define MAXTRK 100 typedef struct TOC { /* structure of table of contents */ -@@ -47,13 +50,19 @@ typedef struct cdrom_drive{ +@@ -33,6 +43,7 @@ typedef struct TOC { /* structure of tab + #define GENERIC_SCSI 0 + #define COOKED_IOCTL 1 + #define TEST_INTERFACE 2 ++#define OSX_IOKIT 3 + + #define CDDA_MESSAGE_FORGETIT 0 + #define CDDA_MESSAGE_PRINTIT 1 +@@ -47,13 +58,27 @@ typedef struct cdrom_drive{ int opened; /* This struct may just represent a candidate for opening */ char *cdda_device_name; @@ -31,12 +47,20 @@ $NetBSD: patch-ch,v 1.2 2006/03/07 06:29:04 joerg Exp $ + union ccb *ccb; +#endif + ++#if defined(__APPLE__) && defined(__MACH__) ++ io_object_t io; ++ int fd; ++ char *dev; ++ CDTOC *raw_toc; ++ int descriptor_count; ++#endif ++ + int ioctl_fd; + char *drive_model; int interface; int bigendianp; int nsectors; -@@ -83,9 +94,13 @@ typedef struct cdrom_drive{ +@@ -83,9 +108,13 @@ typedef struct cdrom_drive{ int is_mmc; /* SCSI command buffer and offset pointers */ diff --git a/audio/cdparanoia/patches/patch-ci b/audio/cdparanoia/patches/patch-ci index bc36f8635d0..2aeef343992 100644 --- a/audio/cdparanoia/patches/patch-ci +++ b/audio/cdparanoia/patches/patch-ci @@ -1,18 +1,22 @@ -$NetBSD: patch-ci,v 1.3 2006/05/14 21:31:01 minskim Exp $ +$NetBSD: patch-ci,v 1.4 2006/09/03 17:13:30 ben Exp $ ---- interface/interface.c.orig 2000-04-19 22:41:04.000000000 +0000 +--- interface/interface.c.orig 2000-04-19 15:41:04.000000000 -0700 +++ interface/interface.c -@@ -30,12 +30,25 @@ int cdda_close(cdrom_drive *d){ +@@ -30,12 +30,29 @@ int cdda_close(cdrom_drive *d){ _clean_messages(d); if(d->cdda_device_name)free(d->cdda_device_name); +#if !defined(__FreeBSD__) && !defined(__DragonFly__) ++#if defined(__APPLE__) && defined(__MACH__) ++ if(d->fd != -1) close(d->fd); ++#else if(d->ioctl_device_name)free(d->ioctl_device_name); 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); - ++#endif +#else + if(d->drive_model) + free(d->drive_model); @@ -29,3 +33,24 @@ $NetBSD: patch-ci,v 1.3 2006/05/14 21:31:01 minskim Exp $ free(d); } return(0); +@@ -47,6 +64,12 @@ int cdda_open(cdrom_drive *d){ + if(d->opened)return(0); + + switch(d->interface){ ++#if defined(__APPLE__) && defined(__MACH__) ++ case OSX_IOKIT: ++ if((ret=osx_open_device(d))) ++ return ret; ++ break; ++#else + case GENERIC_SCSI: + if((ret=scsi_init_drive(d))) + return(ret); +@@ -61,6 +84,7 @@ int cdda_open(cdrom_drive *d){ + return(ret); + break; + #endif ++#endif + default: + cderror(d,"100: Interface not supported\n"); + return(-100); diff --git a/audio/cdparanoia/patches/patch-cj b/audio/cdparanoia/patches/patch-cj new file mode 100644 index 00000000000..b4b649b22bc --- /dev/null +++ b/audio/cdparanoia/patches/patch-cj @@ -0,0 +1,15 @@ +$NetBSD: patch-cj,v 1.1 2006/09/03 17:13:30 ben Exp $ + +--- interface/common_interface.h.orig 1999-08-15 14:52:42.000000000 -0700 ++++ interface/common_interface.h +@@ -9,8 +9,10 @@ + + #include "low_interface.h" + ++#if !(defined(__APPLE__) && defined(__MACH__)) + extern int ioctl_ping_cdrom(int fd); + extern char *atapi_drive_info(int fd); ++#endif + extern int data_bigendianp(cdrom_drive *d); + extern int FixupTOC(cdrom_drive *d,int tracks); + diff --git a/audio/cdparanoia/patches/patch-ck b/audio/cdparanoia/patches/patch-ck new file mode 100644 index 00000000000..759fe9c3e8d --- /dev/null +++ b/audio/cdparanoia/patches/patch-ck @@ -0,0 +1,36 @@ +$NetBSD: patch-ck,v 1.1 2006/09/03 17:13:30 ben Exp $ + +--- /dev/null 2006-09-03 08:46:15.000000000 -0700 ++++ interface/osx_interface.h 2006-09-03 08:49:13.000000000 -0700 +@@ -0,0 +1,31 @@ ++/****************************************************************** ++ * CopyPolicy: GNU Public License 2 applies ++ * Copyright (C) 1998 Monty xiphmont@mit.edu ++ * ++ ******************************************************************/ ++ ++#ifndef _cdda_osx_interface_h_ ++#define _cdda_osx_interface_h_ ++ ++#include <CoreFoundation/CFBase.h> ++#include <CoreFoundation/CFString.h> ++#include <CoreFoundation/CFNumber.h> ++#include <IOKit/IOBSD.h> ++#include <IOKit/storage/IOMedia.h> ++#include <IOKit/storage/IOCDMedia.h> ++#include <IOKit/storage/IOCDMediaBSDClient.h> ++#include "cdda_interface.h" ++ ++char *osx_bsd_device_for_media(io_object_t media); ++int osx_enumerate_devices(cdrom_drive *d, ++ int (*device_found)(cdrom_drive *, io_object_t, void *), ++ void *data); ++io_object_t osx_default_device(cdrom_drive *d); ++int osx_read_toc(cdrom_drive *d); ++int osx_open_device(cdrom_drive *d); ++int osx_open_device_orig(cdrom_drive *d, io_object_t io); ++int osx_set_speed(cdrom_drive *d, int speed); ++int osx_enable_cdda(cdrom_drive *d, int enable); ++long osx_read_audio(cdrom_drive *d, void *buf, long begin, long sectors); ++ ++#endif diff --git a/audio/cdparanoia/patches/patch-cl b/audio/cdparanoia/patches/patch-cl new file mode 100644 index 00000000000..8aaf32787ee --- /dev/null +++ b/audio/cdparanoia/patches/patch-cl @@ -0,0 +1,13 @@ +$NetBSD: patch-cl,v 1.1 2006/09/03 17:13:30 ben Exp $ + +--- configure.sub.orig 2006-09-03 08:31:08.000000000 -0700 ++++ configure.sub +@@ -641,7 +641,7 @@ case $os in + | -hiux* | -386bsd* | -netbsd* | -freebsd* | -riscix* \ + | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ +- | -udi* | -eabi* | -lites* ) ++ | -udi* | -eabi* | -lites* | -darwin* ) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -sunos5*) diff --git a/audio/cdparanoia/patches/patch-cm b/audio/cdparanoia/patches/patch-cm new file mode 100644 index 00000000000..1cc39fb91ed --- /dev/null +++ b/audio/cdparanoia/patches/patch-cm @@ -0,0 +1,14 @@ +$NetBSD: patch-cm,v 1.1 2006/09/03 17:13:30 ben Exp $ + +--- configure.guess.orig 1999-08-15 14:52:30.000000000 -0700 ++++ configure.guess +@@ -459,6 +459,9 @@ EOF + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit 0 ;; ++ *:Darwin:*:*) ++ echo `uname -p`-apple-darwin${UNAME_RELEASE} ++ exit 0 ;; + esac + + #echo '(No uname command or uname output not recognized.)' 1>&2 diff --git a/audio/cdparanoia/patches/patch-cn b/audio/cdparanoia/patches/patch-cn new file mode 100644 index 00000000000..3b0d482aad3 --- /dev/null +++ b/audio/cdparanoia/patches/patch-cn @@ -0,0 +1,272 @@ +$NetBSD: patch-cn,v 1.1 2006/09/03 17:13:30 ben Exp $ + +--- /dev/null 2006-09-03 09:28:05.000000000 -0700 ++++ interface/osx_interface.c 2006-09-03 09:35:39.000000000 -0700 +@@ -0,0 +1,267 @@ ++/****************************************************************** ++ * CopyPolicy: GNU Public License 2 applies ++ * Copyright (C) 1998 Monty xiphmont@mit.edu ++ ******************************************************************/ ++ ++#include <math.h> ++#include <assert.h> ++#include <stdlib.h> ++#include <paths.h> ++#include <fcntl.h> ++#include <sys/syslimits.h> ++ ++#include "osx_interface.h" ++#include "utils.h" ++ ++char *osx_bsd_device_for_media(io_object_t media) ++{ ++ char buf[PATH_MAX]; ++ size_t dev_path_length; ++ CFTypeRef str_bsd_path; ++ char *result; ++ ++ str_bsd_path = IORegistryEntryCreateCFProperty(media, ++ CFSTR(kIOBSDNameKey), kCFAllocatorDefault, 0); ++ ++ if(str_bsd_path == NULL) { ++ return NULL; ++ } ++ ++ snprintf(buf, sizeof(buf), "%s%c", _PATH_DEV, 'r' ); ++ dev_path_length = strlen(buf); ++ ++ if (CFStringGetCString(str_bsd_path, ++ buf + dev_path_length, ++ sizeof(buf) - dev_path_length, ++ kCFStringEncodingASCII)) { ++ result = strdup(buf); ++ } else { ++ result = NULL; ++ } ++ CFRelease(str_bsd_path); ++ return result; ++} ++ ++int osx_enumerate_devices(cdrom_drive *d, ++ int (*device_found)(cdrom_drive *, io_object_t, void *), ++ void *data) ++{ ++ kern_return_t ret; ++ mach_port_t port; ++ int drives = 0; ++ CFMutableDictionaryRef classes_to_match; ++ kern_return_t kern_result; ++ io_iterator_t media_iterator; ++ io_object_t next_media; ++ ++ /* get port for IOKit communication */ ++ if ((ret = IOMasterPort(MACH_PORT_NULL, &port)) != KERN_SUCCESS) { ++ cderror(d,"099: IOMasterPort fail\n"); ++ return -1; ++ } ++ ++ classes_to_match = IOServiceMatching(kIOCDMediaClass); ++ if(classes_to_match == NULL) { ++ cderror(d,"099: IOServiceMatching: NULL\n"); ++ return -1; ++ } ++ ++ CFDictionarySetValue(classes_to_match, CFSTR(kIOMediaEjectableKey), ++ kCFBooleanTrue); ++ ++ kern_result = IOServiceGetMatchingServices(port, classes_to_match, ++ &media_iterator); ++ if (kern_result != KERN_SUCCESS) { ++ cderror(d,"099: IOServiceGetMatchingServices fail\n"); ++ return -1; ++ } ++ ++ while (1) { ++ drives++; ++ next_media = IOIteratorNext(media_iterator); ++ if (next_media == 0) { ++ break; ++ } ++ ++ if (!device_found(d, next_media, data)) ++ break; ++ IOObjectRelease(next_media); ++ } ++ if (next_media) IOObjectRelease(next_media); ++ IOObjectRelease(media_iterator); ++ ++ return drives; ++} ++ ++static int find_first_device(cdrom_drive *d, io_object_t io, void *data) ++{ ++ io_object_t *dev = (io_object_t *)data; ++ *dev = io; ++ IOObjectRetain(io); ++ return 0; ++} ++ ++io_object_t osx_default_device(cdrom_drive *d) ++{ ++ io_object_t io; ++ osx_enumerate_devices(d, find_first_device, (void *)&io); ++ return io; ++} ++ ++int osx_read_toc(cdrom_drive *d) ++{ ++ kern_return_t ret; ++ char *devname; ++ CFRange range; ++ CFIndex buf_len; ++ int leadout; ++ CFMutableDictionaryRef properties; ++ CFDataRef data; ++ int i; ++ ++ devname = strrchr(d->dev, '/'); ++ ++ if (devname != NULL) { ++ devname++; ++ } else { ++ devname = d->dev; ++ } ++ ++ if (*devname == 'r') devname++; ++ ++ /* create a CF dictionary containing the TOC */ ++ ret = IORegistryEntryCreateCFProperties(d->io, &properties, ++ kCFAllocatorDefault, kNilOptions); ++ ++ if( ret != KERN_SUCCESS) { ++ cderror(d, "099: IORegistryEntryCreateCFProperties fail\n"); ++ return -1; ++ } ++ ++ /* get the TOC from the dictionary */ ++ data = (CFDataRef)CFDictionaryGetValue(properties, ++ CFSTR(kIOCDMediaTOCKey)); ++ if(data == NULL) { ++ cderror(d, "099: CFDictionaryGetValue fail\n"); ++ return -1; ++ } ++ ++ buf_len = CFDataGetLength(data) + 1; ++ range = CFRangeMake(0, buf_len); ++ ++ d->raw_toc = (CDTOC *)malloc(buf_len); ++ if (d->raw_toc == NULL) { ++ cderror(d, "099: toc malloc fail\n"); ++ CFRelease(properties); ++ return -1; ++ } ++ CFDataGetBytes(data, range, (u_char *)d->raw_toc); ++ ++ CFRelease(properties); ++ ++ d->descriptor_count = CDTOCGetDescriptorCount(d->raw_toc); ++ d->tracks = 0; ++ ++ for (i = 0; i < d->descriptor_count; i++) { ++ int track_num = d->raw_toc->descriptors[i].point; ++ CDMSF msf = d->raw_toc->descriptors[i].p; ++ int start_sector = CDConvertMSFToLBA(msf); ++ if (track_num == 0xa2) { ++ leadout = i; ++ } ++ fprintf(stderr, ++ "track_num = %d start sector %d msf: %d,%d,%d\n", ++ track_num, start_sector, ++ msf.minute, msf.second, msf.frame); ++ if (track_num > 99 || track_num < 1) { ++ // e.g.: ++ // track_num = 160 start sector 4350 msf: 1,0,0 ++ // track_num = 161 start sector 67350 msf: 15,0,0 ++ // track_num = 162 start sector 330645 msf: 73,30,45 ++ ++ continue; ++ // XXX don't know what happens here. tracks 0xa0, 0xa1, 0xa2 (leadout) ++ } ++ d->disc_toc[d->tracks].bTrack = track_num; ++ d->disc_toc[d->tracks].bFlags = (d->raw_toc->descriptors[i].adr << 4) | ++ d->raw_toc->descriptors[i].control; ++ d->disc_toc[d->tracks].dwStartSector = start_sector; ++ d->tracks++; ++ } ++ d->disc_toc[d->tracks].bTrack = 0xaa; ++ d->disc_toc[d->tracks].bFlags = (d->raw_toc->descriptors[i].adr << 4) | ++ d->raw_toc->descriptors[leadout].control; ++ d->disc_toc[d->tracks].dwStartSector = CDConvertMSFToLBA( ++ d->raw_toc->descriptors[leadout].p); ++ ++ return 0; ++} ++ ++int osx_open_device_orig(cdrom_drive *d, io_object_t io) ++{ ++ if (io == NULL) { ++ d->io = osx_default_device(d); ++ } else { ++ IOObjectRetain(io); ++ d->io = io; ++ } ++ d->dev = osx_bsd_device_for_media(d->io); ++ if (!d->dev) { ++ IOObjectRelease(d->io); ++ return -1; ++ } ++ ++ d->fd = open(d->dev, O_RDONLY | O_NONBLOCK, 0); ++ d->enable_cdda = osx_enable_cdda; ++ d->read_toc = osx_read_toc; ++ d->read_audio = osx_read_audio; ++ d->set_speed = osx_set_speed; ++ ++ if (d->fd == -1) { ++ free(d->dev); ++ IOObjectRelease(d->io); ++ return -1; ++ } ++ ++ osx_read_toc(d); ++ ++ d->nsectors = 32; ++ d->opened = 1; ++ return 0; ++} ++ ++int osx_open_device(cdrom_drive *d) ++{ ++ osx_open_device_orig(d, NULL); ++} ++ ++int osx_set_speed(cdrom_drive *d, int speed) ++{ ++ return 0; ++} ++ ++int osx_enable_cdda(cdrom_drive *d, int enable) ++{ ++ return 0; ++} ++ ++long osx_read_audio(cdrom_drive *d, void *buf, long begin, long sectors) ++{ ++ dk_cd_read_t cd_read; ++ ++ // fprintf(stderr, "read_audio %p, %d, %d\n", buf, begin, sectors); ++ ++ memset(&cd_read, 0, sizeof(cd_read)); ++ ++ cd_read.offset = begin * kCDSectorSizeCDDA; ++ cd_read.sectorArea = kCDSectorAreaUser; ++ cd_read.sectorType = kCDSectorTypeCDDA; ++ ++ cd_read.buffer = buf; ++ cd_read.bufferLength = kCDSectorSizeCDDA * sectors; ++ ++ if( ioctl(d->fd, DKIOCCDREAD, &cd_read) == -1) { ++ return 0; ++ } ++ return cd_read.bufferLength / kCDSectorSizeCDDA; ++} |