This patch is needed to make Python understand it can build the OSS plugin.
Some OSS ioctls are not supported on Solaris, so they are commented out.
--- Python-2.7.3/Modules/ossaudiodev.c-orig 2012-12-20 12:26:23.028233427 -0600
+++ Python-2.7.3/Modules/ossaudiodev.c 2012-12-20 12:26:33.130986175 -0600
@@ -1044,6 +1044,7 @@ initossaudiodev(void)
_EXPORT_INT(m, SOUND_MIXER_MONITOR);
#endif
+#ifndef __sun
/* Expose all the ioctl numbers for masochists who like to do this
stuff directly. */
_EXPORT_INT(m, SNDCTL_COPR_HALT);
@@ -1056,6 +1057,7 @@ initossaudiodev(void)
_EXPORT_INT(m, SNDCTL_COPR_SENDMSG);
_EXPORT_INT(m, SNDCTL_COPR_WCODE);
_EXPORT_INT(m, SNDCTL_COPR_WDATA);
+#endif
#ifdef SNDCTL_DSP_BIND_CHANNEL
_EXPORT_INT(m, SNDCTL_DSP_BIND_CHANNEL);
#endif
@@ -1077,8 +1079,12 @@ initossaudiodev(void)
_EXPORT_INT(m, SNDCTL_DSP_GETSPDIF);
#endif
_EXPORT_INT(m, SNDCTL_DSP_GETTRIGGER);
+#ifdef SNDCTL_DSP_MAPINBUF
_EXPORT_INT(m, SNDCTL_DSP_MAPINBUF);
+#endif
+#ifdef SNDCTL_DSP_MAPOUTBUF
_EXPORT_INT(m, SNDCTL_DSP_MAPOUTBUF);
+#endif
_EXPORT_INT(m, SNDCTL_DSP_NONBLOCK);
_EXPORT_INT(m, SNDCTL_DSP_POST);
#ifdef SNDCTL_DSP_PROFILE
@@ -1098,6 +1104,7 @@ initossaudiodev(void)
_EXPORT_INT(m, SNDCTL_DSP_STEREO);
_EXPORT_INT(m, SNDCTL_DSP_SUBDIVIDE);
_EXPORT_INT(m, SNDCTL_DSP_SYNC);
+#ifndef __sun
_EXPORT_INT(m, SNDCTL_FM_4OP_ENABLE);
_EXPORT_INT(m, SNDCTL_FM_LOAD_INSTR);
_EXPORT_INT(m, SNDCTL_MIDI_INFO);
@@ -1139,4 +1146,5 @@ initossaudiodev(void)
_EXPORT_INT(m, SNDCTL_TMR_STOP);
_EXPORT_INT(m, SNDCTL_TMR_TEMPO);
_EXPORT_INT(m, SNDCTL_TMR_TIMEBASE);
+#endif
}
--- Python-2.7.6/setup.py.~5~ 2014-05-14 13:37:59.287142508 -0700
+++ Python-2.7.6/setup.py 2014-05-14 13:40:01.472280298 -0700
@@ -1632,8 +1632,8 @@
else:
missing.append('linuxaudiodev')
- if (host_platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6',
- 'freebsd7', 'freebsd8')
+ if (host_platform in ('sunos5', 'linux2', 'freebsd4', 'freebsd5',
+ 'freebsd6', 'freebsd7', 'freebsd8')
or host_platform.startswith("gnukfreebsd")):
exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) )
else: