diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-12-11-11-36-48.bpo-46045.sfThay.rst b/Misc/NEWS.d/next/Core and Builtins/2021-12-11-11-36-48.bpo-46045.sfThay.rst new file mode 100644 index 00000000000000..97fd1883eb2ab3 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2021-12-11-11-36-48.bpo-46045.sfThay.rst @@ -0,0 +1 @@ +Do not use POSIX semaphores on NetBSD diff --git a/Misc/NEWS.d/next/Library/2022-02-06-12-59-32.bpo-46053.sHFo3S.rst b/Misc/NEWS.d/next/Library/2022-02-06-12-59-32.bpo-46053.sHFo3S.rst new file mode 100644 index 00000000000000..ce375885792e83 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-02-06-12-59-32.bpo-46053.sHFo3S.rst @@ -0,0 +1 @@ +Fix OSS audio support on NetBSD. diff --git a/Modules/ossaudiodev.c b/Modules/ossaudiodev.c index 172a6e42975310..ff8501852e4dde 100644 --- a/Modules/ossaudiodev.c +++ b/Modules/ossaudiodev.c @@ -1219,16 +1219,36 @@ PyInit_ossaudiodev(void) /* Expose all the ioctl numbers for masochists who like to do this stuff directly. */ +#ifdef SNDCTL_COPR_HALT _EXPORT_INT(m, SNDCTL_COPR_HALT); +#endif +#ifdef SNDCTL_COPR_LOAD _EXPORT_INT(m, SNDCTL_COPR_LOAD); +#endif +#ifdef SNDCTL_COPR_RCODE _EXPORT_INT(m, SNDCTL_COPR_RCODE); +#endif +#ifdef SNDCTL_COPR_RCVMSG _EXPORT_INT(m, SNDCTL_COPR_RCVMSG); +#endif +#ifdef SNDCTL_COPR_RDATA _EXPORT_INT(m, SNDCTL_COPR_RDATA); +#endif +#ifdef SNDCTL_COPR_RESET _EXPORT_INT(m, SNDCTL_COPR_RESET); +#endif +#ifdef SNDCTL_COPR_RUN _EXPORT_INT(m, SNDCTL_COPR_RUN); +#endif +#ifdef SNDCTL_COPR_SENDMSG _EXPORT_INT(m, SNDCTL_COPR_SENDMSG); +#endif +#ifdef SNDCTL_COPR_WCODE _EXPORT_INT(m, SNDCTL_COPR_WCODE); +#endif +#ifdef SNDCTL_COPR_WDATA _EXPORT_INT(m, SNDCTL_COPR_WDATA); +#endif #ifdef SNDCTL_DSP_BIND_CHANNEL _EXPORT_INT(m, SNDCTL_DSP_BIND_CHANNEL); #endif @@ -1271,46 +1291,104 @@ PyInit_ossaudiodev(void) _EXPORT_INT(m, SNDCTL_DSP_STEREO); _EXPORT_INT(m, SNDCTL_DSP_SUBDIVIDE); _EXPORT_INT(m, SNDCTL_DSP_SYNC); +#ifdef SNDCTL_FM_4OP_ENABLE _EXPORT_INT(m, SNDCTL_FM_4OP_ENABLE); +#endif +#ifdef SNDCTL_FM_LOAD_INSTR _EXPORT_INT(m, SNDCTL_FM_LOAD_INSTR); +#endif +#ifdef SNDCTL_MIDI_INFO _EXPORT_INT(m, SNDCTL_MIDI_INFO); +#endif +#ifdef SNDCTL_MIDI_MPUCMD _EXPORT_INT(m, SNDCTL_MIDI_MPUCMD); +#endif +#ifdef SNDCTL_MIDI_MPUMODE _EXPORT_INT(m, SNDCTL_MIDI_MPUMODE); +#endif +#ifdef SNDCTL_MIDI_PRETIME _EXPORT_INT(m, SNDCTL_MIDI_PRETIME); +#endif +#ifdef SNDCTL_SEQ_CTRLRATE _EXPORT_INT(m, SNDCTL_SEQ_CTRLRATE); +#endif +#ifdef SNDCTL_SEQ_GETINCOUNT _EXPORT_INT(m, SNDCTL_SEQ_GETINCOUNT); +#endif +#ifdef SNDCTL_SEQ_GETOUTCOUNT _EXPORT_INT(m, SNDCTL_SEQ_GETOUTCOUNT); +#endif #ifdef SNDCTL_SEQ_GETTIME _EXPORT_INT(m, SNDCTL_SEQ_GETTIME); #endif +#ifdef SNDCTL_SEQ_NRMIDIS _EXPORT_INT(m, SNDCTL_SEQ_NRMIDIS); +#endif +#ifdef SNDCTL_SEQ_NRSYNTHS _EXPORT_INT(m, SNDCTL_SEQ_NRSYNTHS); +#endif +#ifdef SNDCTL_SEQ_OUTOFBAND _EXPORT_INT(m, SNDCTL_SEQ_OUTOFBAND); +#endif +#ifdef SNDCTL_SEQ_PANIC _EXPORT_INT(m, SNDCTL_SEQ_PANIC); +#endif +#ifdef SNDCTL_SEQ_PERCMODE _EXPORT_INT(m, SNDCTL_SEQ_PERCMODE); +#endif +#ifdef SNDCTL_SEQ_RESET _EXPORT_INT(m, SNDCTL_SEQ_RESET); +#endif +#ifdef SNDCTL_SEQ_RESETSAMPLES _EXPORT_INT(m, SNDCTL_SEQ_RESETSAMPLES); +#endif +#ifdef SNDCTL_SEQ_SYNC _EXPORT_INT(m, SNDCTL_SEQ_SYNC); +#endif +#ifdef SNDCTL_SEQ_TESTMIDI _EXPORT_INT(m, SNDCTL_SEQ_TESTMIDI); +#endif +#ifdef SNDCTL_SEQ_THRESHOLD _EXPORT_INT(m, SNDCTL_SEQ_THRESHOLD); +#endif #ifdef SNDCTL_SYNTH_CONTROL _EXPORT_INT(m, SNDCTL_SYNTH_CONTROL); #endif #ifdef SNDCTL_SYNTH_ID _EXPORT_INT(m, SNDCTL_SYNTH_ID); #endif +#ifdef SNDCTL_SYNTH_INFO _EXPORT_INT(m, SNDCTL_SYNTH_INFO); +#endif +#ifdef SNDCTL_SYNTH_MEMAVL _EXPORT_INT(m, SNDCTL_SYNTH_MEMAVL); +#endif #ifdef SNDCTL_SYNTH_REMOVESAMPLE _EXPORT_INT(m, SNDCTL_SYNTH_REMOVESAMPLE); #endif +#ifdef SNDCTL_TMR_CONTINUE _EXPORT_INT(m, SNDCTL_TMR_CONTINUE); +#endif +#ifdef SNDCTL_TMR_METRONOME _EXPORT_INT(m, SNDCTL_TMR_METRONOME); +#endif +#ifdef SNDCTL_TMR_SELECT _EXPORT_INT(m, SNDCTL_TMR_SELECT); +#endif +#ifdef SNDCTL_TMR_SOURCE _EXPORT_INT(m, SNDCTL_TMR_SOURCE); +#endif +#ifdef SNDCTL_TMR_START _EXPORT_INT(m, SNDCTL_TMR_START); +#endif +#ifdef SNDCTL_TMR_STOP _EXPORT_INT(m, SNDCTL_TMR_STOP); +#endif +#ifdef SNDCTL_TMR_TEMPO _EXPORT_INT(m, SNDCTL_TMR_TEMPO); +#endif +#ifdef SNDCTL_TMR_TIMEBASE _EXPORT_INT(m, SNDCTL_TMR_TIMEBASE); +#endif return m; } diff --git a/configure b/configure index 26a891ee7fa03a..65495194f4935b 100755 --- a/configure +++ b/configure @@ -12181,6 +12181,14 @@ LIBS=$save_LIBS fi +case $ac_sys_system in #( + NetBSD*) : + OSSAUDIODEV_LIBS="-lossaudio" ;; #( + *) : + OSSAUDIODEV_LIBS="" + ;; +esac + pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBSQLITE3" >&5 @@ -23250,7 +23258,7 @@ fi if test "x$py_cv_module_ossaudiodev" = xyes; then : - + as_fn_append MODULE_BLOCK "MODULE_OSSAUDIODEV_LDFLAGS=$OSSAUDIODEV_LIBS$as_nl" fi if test "$py_cv_module_ossaudiodev" = yes; then diff --git a/configure.ac b/configure.ac index 5c915d1a45cdc2..276718aeeb77a3 100644 --- a/configure.ac +++ b/configure.ac @@ -3553,6 +3553,12 @@ AS_VAR_IF([have_nis], [yes], [ ]) ]) +dnl On NetBSD, when using OSS audio, you need to link against libossaudio +AS_CASE([$ac_sys_system], + [NetBSD*], [OSSAUDIODEV_LIBS="-lossaudio"], + [OSSAUDIODEV_LIBS=""] +) + dnl Check for SQLite library. Use pkg-config if available. PKG_CHECK_MODULES( [LIBSQLITE3], [sqlite3 >= 3.7.15], [], [ @@ -6786,7 +6792,8 @@ PY_STDLIB_MOD([_socket], dnl platform specific extensions PY_STDLIB_MOD([grp], [], [test "$ac_cv_func_getgrgid" = yes -o "$ac_cv_func_getgrgid_r" = yes]) PY_STDLIB_MOD([ossaudiodev], - [], [test "$ac_cv_header_linux_soundcard_h" = yes -o "$ac_cv_header_sys_soundcard_h" = yes]) + [], [test "$ac_cv_header_linux_soundcard_h" = yes -o "$ac_cv_header_sys_soundcard_h" = yes], + [], [$OSSAUDIODEV_LIBS]) PY_STDLIB_MOD([pwd], [], [test "$ac_cv_func_getpwuid" = yes -o "$ac_cv_func_getpwuid_r" = yes]) PY_STDLIB_MOD([resource], [], [test "$ac_cv_header_sys_resource_h" = yes]) PY_STDLIB_MOD([_scproxy], pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy