mirror of
https://git.freebsd.org/ports.git
synced 2025-05-21 03:23:10 -04:00
audio/alsa-plugins: Update to version 1.2.7.1
Full changelog: https://github.com/alsa-project/alsa-plugins/tags PR: 262089
This commit is contained in:
parent
38898cf263
commit
6cd91556d4
5 changed files with 263 additions and 72 deletions
|
@ -1,16 +1,7 @@
|
||||||
PORTNAME= alsa-plugins
|
PORTNAME= alsa-plugins
|
||||||
PORTVERSION= 1.2.2
|
PORTVERSION= 1.2.7.1
|
||||||
DISTVERSIONPREFIX= v
|
|
||||||
PORTREVISION= 13
|
|
||||||
CATEGORIES= audio
|
CATEGORIES= audio
|
||||||
MASTER_SITES= GH
|
MASTER_SITES= https://www.alsa-project.org/files/pub/plugins/
|
||||||
|
|
||||||
PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
|
|
||||||
PATCHFILES+= 8a3c0d795fbe.patch:-p1 # rate-lav: Convert to libswresample
|
|
||||||
|
|
||||||
USE_GITHUB= yes
|
|
||||||
GH_ACCOUNT= alsa-project
|
|
||||||
GH_PROJECT= ${PORTNAME}
|
|
||||||
|
|
||||||
MAINTAINER= ports@FreeBSD.org
|
MAINTAINER= ports@FreeBSD.org
|
||||||
COMMENT= ALSA compatibility library plugins
|
COMMENT= ALSA compatibility library plugins
|
||||||
|
@ -20,23 +11,23 @@ LICENSE= LGPL21+
|
||||||
|
|
||||||
LIB_DEPENDS= libasound.so:audio/alsa-lib
|
LIB_DEPENDS= libasound.so:audio/alsa-lib
|
||||||
|
|
||||||
USES= alias autoreconf libtool:keepla localbase pkgconfig tar:bzip2
|
USES= alias libtool:keepla localbase pkgconfig tar:bzip2
|
||||||
USE_LDCONFIG= ${PREFIX}/lib/alsa-lib
|
USE_LDCONFIG= ${PREFIX}/lib/alsa-lib
|
||||||
GNU_CONFIGURE= yes
|
GNU_CONFIGURE= yes
|
||||||
MAKE_ARGS+= RM="${RM}"
|
MAKE_ARGS+= RM="${RM}"
|
||||||
INSTALL_TARGET= install-strip
|
INSTALL_TARGET= install-strip
|
||||||
CPPFLAGS+= -I${.CURDIR}/../alsa-lib/files
|
CPPFLAGS+= -I${.CURDIR}/../alsa-lib/files
|
||||||
|
|
||||||
OPTIONS_DEFAULT= PULSEAUDIO
|
|
||||||
OPTIONS_DEFINE= FFMPEG JACK PULSEAUDIO SAMPLERATE SPEEX
|
OPTIONS_DEFINE= FFMPEG JACK PULSEAUDIO SAMPLERATE SPEEX
|
||||||
|
OPTIONS_DEFAULT= PULSEAUDIO
|
||||||
OPTIONS_SUB= yes
|
OPTIONS_SUB= yes
|
||||||
|
|
||||||
FFMPEG_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg
|
FFMPEG_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg
|
||||||
FFMPEG_CONFIGURE_ENABLE= libav
|
FFMPEG_CONFIGURE_ENABLE= libav
|
||||||
|
|
||||||
|
JACK_IMPLIES= SAMPLERATE
|
||||||
JACK_LIB_DEPENDS= libjack.so:audio/jack
|
JACK_LIB_DEPENDS= libjack.so:audio/jack
|
||||||
JACK_CONFIGURE_ENABLE= jack
|
JACK_CONFIGURE_ENABLE= jack
|
||||||
JACK_IMPLIES= SAMPLERATE
|
|
||||||
|
|
||||||
PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
|
PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
|
||||||
PULSEAUDIO_CONFIGURE_ENABLE= pulseaudio
|
PULSEAUDIO_CONFIGURE_ENABLE= pulseaudio
|
||||||
|
@ -44,12 +35,13 @@ PULSEAUDIO_CONFIGURE_ENABLE= pulseaudio
|
||||||
SAMPLERATE_LIB_DEPENDS= libsamplerate.so:audio/libsamplerate
|
SAMPLERATE_LIB_DEPENDS= libsamplerate.so:audio/libsamplerate
|
||||||
SAMPLERATE_CONFIGURE_ENABLE= samplerate
|
SAMPLERATE_CONFIGURE_ENABLE= samplerate
|
||||||
|
|
||||||
SPEEX_LIB_DEPENDS= libspeex.so:audio/speex libspeexdsp.so:audio/speexdsp
|
SPEEX_LIB_DEPENDS= libspeex.so:audio/speex \
|
||||||
|
libspeexdsp.so:audio/speexdsp
|
||||||
SPEEX_CONFIGURE_ON= --with-speex=lib
|
SPEEX_CONFIGURE_ON= --with-speex=lib
|
||||||
SPEEX_CONFIGURE_OFF= --without-speex
|
SPEEX_CONFIGURE_OFF= --without-speex
|
||||||
|
|
||||||
post-install:
|
post-install:
|
||||||
# sanitize links
|
# sanitize links
|
||||||
cd ${STAGEDIR}${PREFIX}/etc/alsa/conf.d && for i in [0-9][0-9]-*.conf ; do \
|
cd ${STAGEDIR}${PREFIX}/etc/alsa/conf.d && for i in [0-9][0-9]-*.conf ; do \
|
||||||
${LN} -sf ../../../share/alsa/alsa.conf.d/$$i . ; done
|
${LN} -sf ../../../share/alsa/alsa.conf.d/$$i . ; done
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
TIMESTAMP = 1634083456
|
TIMESTAMP = 1695516677
|
||||||
SHA256 (alsa-project-alsa-plugins-v1.2.2_GH0.tar.gz) = 1872622227c474db9db57bf5b6ec91bbef391f9750e9d64d00d05af29f579e1a
|
SHA256 (alsa-plugins-1.2.7.1.tar.bz2) = 8c337814954bb7c167456733a6046142a2931f12eccba3ec2a4ae618a3432511
|
||||||
SIZE (alsa-project-alsa-plugins-v1.2.2_GH0.tar.gz) = 121998
|
SIZE (alsa-plugins-1.2.7.1.tar.bz2) = 408801
|
||||||
SHA256 (8a3c0d795fbe.patch) = 5772b954c166cf3c148872a405b21476039193b06fb2e834c4cc5a855325d8bf
|
|
||||||
SIZE (8a3c0d795fbe.patch) = 6946
|
|
||||||
|
|
219
audio/alsa-plugins/files/patch-configure
Normal file
219
audio/alsa-plugins/files/patch-configure
Normal file
|
@ -0,0 +1,219 @@
|
||||||
|
--- configure.orig 2022-03-17 16:36:30 UTC
|
||||||
|
+++ configure
|
||||||
|
@@ -743,6 +743,9 @@
|
||||||
|
AM_DEFAULT_VERBOSITY
|
||||||
|
AM_DEFAULT_V
|
||||||
|
AM_V
|
||||||
|
+CSCOPE
|
||||||
|
+ETAGS
|
||||||
|
+CTAGS
|
||||||
|
am__untar
|
||||||
|
am__tar
|
||||||
|
AMTAR
|
||||||
|
@@ -785,7 +788,6 @@
|
||||||
|
docdir
|
||||||
|
oldincludedir
|
||||||
|
includedir
|
||||||
|
-runstatedir
|
||||||
|
localstatedir
|
||||||
|
sharedstatedir
|
||||||
|
sysconfdir
|
||||||
|
@@ -909,7 +911,6 @@
|
||||||
|
sysconfdir='${prefix}/etc'
|
||||||
|
sharedstatedir='${prefix}/com'
|
||||||
|
localstatedir='${prefix}/var'
|
||||||
|
-runstatedir='${localstatedir}/run'
|
||||||
|
includedir='${prefix}/include'
|
||||||
|
oldincludedir='/usr/include'
|
||||||
|
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
|
||||||
|
@@ -1162,15 +1163,6 @@
|
||||||
|
| -silent | --silent | --silen | --sile | --sil)
|
||||||
|
silent=yes ;;
|
||||||
|
|
||||||
|
- -runstatedir | --runstatedir | --runstatedi | --runstated \
|
||||||
|
- | --runstate | --runstat | --runsta | --runst | --runs \
|
||||||
|
- | --run | --ru | --r)
|
||||||
|
- ac_prev=runstatedir ;;
|
||||||
|
- -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
|
||||||
|
- | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
|
||||||
|
- | --run=* | --ru=* | --r=*)
|
||||||
|
- runstatedir=$ac_optarg ;;
|
||||||
|
-
|
||||||
|
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
|
||||||
|
ac_prev=sbindir ;;
|
||||||
|
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
|
||||||
|
@@ -1308,7 +1300,7 @@
|
||||||
|
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
|
||||||
|
datadir sysconfdir sharedstatedir localstatedir includedir \
|
||||||
|
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
|
||||||
|
- libdir localedir mandir runstatedir
|
||||||
|
+ libdir localedir mandir
|
||||||
|
do
|
||||||
|
eval ac_val=\$$ac_var
|
||||||
|
# Remove trailing slashes.
|
||||||
|
@@ -1461,7 +1453,6 @@
|
||||||
|
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
|
||||||
|
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
|
||||||
|
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
|
||||||
|
- --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
|
||||||
|
--libdir=DIR object code libraries [EPREFIX/lib]
|
||||||
|
--includedir=DIR C header files [PREFIX/include]
|
||||||
|
--oldincludedir=DIR C header files for non-gcc [/usr/include]
|
||||||
|
@@ -2578,12 +2569,7 @@
|
||||||
|
am_aux_dir=`cd "$ac_aux_dir" && pwd`
|
||||||
|
|
||||||
|
if test x"${MISSING+set}" != xset; then
|
||||||
|
- case $am_aux_dir in
|
||||||
|
- *\ * | *\ *)
|
||||||
|
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
|
||||||
|
- *)
|
||||||
|
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
|
||||||
|
- esac
|
||||||
|
+ MISSING="\${SHELL} '$am_aux_dir/missing'"
|
||||||
|
fi
|
||||||
|
# Use eval to expand $SHELL
|
||||||
|
if eval "$MISSING --is-lightweight"; then
|
||||||
|
@@ -2938,7 +2924,21 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
+# Variables for tags utilities; see am/tags.am
|
||||||
|
+if test -z "$CTAGS"; then
|
||||||
|
+ CTAGS=ctags
|
||||||
|
+fi
|
||||||
|
|
||||||
|
+if test -z "$ETAGS"; then
|
||||||
|
+ ETAGS=etags
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+if test -z "$CSCOPE"; then
|
||||||
|
+ CSCOPE=cscope
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+
|
||||||
|
# POSIX will say in a future version that running "rm -f" with no argument
|
||||||
|
# is OK; and we want to be able to make that assumption in our Makefile
|
||||||
|
# recipes. So use an aggressive probe to check that the usage we want is
|
||||||
|
@@ -9015,7 +9015,7 @@
|
||||||
|
hardcode_minus_L=no
|
||||||
|
hardcode_shlibpath_var=unsupported
|
||||||
|
inherit_rpath=no
|
||||||
|
- link_all_deplibs=unknown
|
||||||
|
+ link_all_deplibs=no
|
||||||
|
module_cmds=
|
||||||
|
module_expsym_cmds=
|
||||||
|
old_archive_from_new_cmds=
|
||||||
|
@@ -9314,7 +9314,7 @@
|
||||||
|
wlarc=
|
||||||
|
else
|
||||||
|
archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
|
||||||
|
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
|
||||||
|
+ archive_expsym_cmds='echo "{ global:" > $lib-ver~ sed -e "s|$|;|" < $export_symbols >> $lib-ver~ echo "local: *; };" >> $lib-ver~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$lib-ver -o $lib'
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
@@ -9333,7 +9333,7 @@
|
||||||
|
_LT_EOF
|
||||||
|
elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
|
||||||
|
archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
|
||||||
|
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
|
||||||
|
+ archive_expsym_cmds='echo "{ global:" > $lib-ver~ sed -e "s|$|;|" < $export_symbols >> $lib-ver~ echo "local: *; };" >> $lib-ver~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$lib-ver -o $lib'
|
||||||
|
else
|
||||||
|
ld_shlibs=no
|
||||||
|
fi
|
||||||
|
@@ -9362,7 +9362,7 @@
|
||||||
|
if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
|
||||||
|
hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
|
||||||
|
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
|
||||||
|
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
|
||||||
|
+ archive_expsym_cmds='echo "{ global:" > $lib-ver~ sed -e "s|$|;|" < $export_symbols >> $lib-ver~ echo "local: *; };" >> $lib-ver~$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$lib-ver -o $lib'
|
||||||
|
else
|
||||||
|
ld_shlibs=no
|
||||||
|
fi
|
||||||
|
@@ -9380,7 +9380,7 @@
|
||||||
|
*)
|
||||||
|
if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
|
||||||
|
archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
|
||||||
|
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
|
||||||
|
+ archive_expsym_cmds='echo "{ global:" > $lib-ver~ sed -e "s|$|;|" < $export_symbols >> $lib-ver~ echo "local: *; };" >> $lib-ver~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$lib-ver -o $lib'
|
||||||
|
else
|
||||||
|
ld_shlibs=no
|
||||||
|
fi
|
||||||
|
@@ -10028,7 +10028,7 @@
|
||||||
|
hardcode_direct_absolute=yes
|
||||||
|
if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
|
||||||
|
archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
|
||||||
|
- archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
|
||||||
|
+ archive_expsym_cmds='echo "{ global:" > $lib-ver~ sed -e "s|$|;|" < $export_symbols >> $lib-ver~ echo "local: *; };" >> $lib-ver~$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-version-script,$lib-ver'
|
||||||
|
hardcode_libdir_flag_spec='$wl-rpath,$libdir'
|
||||||
|
export_dynamic_flag_spec='$wl-E'
|
||||||
|
else
|
||||||
|
@@ -10877,7 +10877,7 @@
|
||||||
|
version_type=freebsd-$objformat
|
||||||
|
case $version_type in
|
||||||
|
freebsd-elf*)
|
||||||
|
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
|
||||||
|
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major'
|
||||||
|
soname_spec='$libname$release$shared_ext$major'
|
||||||
|
need_version=no
|
||||||
|
need_lib_prefix=no
|
||||||
|
@@ -11094,9 +11094,6 @@
|
||||||
|
# before this can be enabled.
|
||||||
|
hardcode_into_libs=yes
|
||||||
|
|
||||||
|
- # Add ABI-specific directories to the system library path.
|
||||||
|
- sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
|
||||||
|
-
|
||||||
|
# Ideally, we could use ldconfig to report *all* directores which are
|
||||||
|
# searched for libraries, however this is still not possible. Aside from not
|
||||||
|
# being certain /sbin/ldconfig is available, command
|
||||||
|
@@ -11105,7 +11102,7 @@
|
||||||
|
# appending ld.so.conf contents (and includes) to the search path.
|
||||||
|
if test -f /etc/ld.so.conf; then
|
||||||
|
lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
|
||||||
|
- sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
|
||||||
|
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# We used to test for /lib/ld.so.1 and disable shared libraries on
|
||||||
|
@@ -12012,7 +12009,7 @@
|
||||||
|
old_striplib=
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
|
||||||
|
$as_echo_n "checking whether stripping libraries is possible... " >&6; }
|
||||||
|
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
|
||||||
|
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "strip" >/dev/null; then
|
||||||
|
test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
|
||||||
|
test -z "$striplib" && striplib="$STRIP --strip-unneeded"
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||||
|
@@ -13293,21 +13290,22 @@
|
||||||
|
HAVE_SPEEXDSP="yes"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
- if test "$HAVE_SPEEXDSP" = "yes"; then
|
||||||
|
- HAVE_SPEEXDSP_TRUE=
|
||||||
|
- HAVE_SPEEXDSP_FALSE='#'
|
||||||
|
-else
|
||||||
|
- HAVE_SPEEXDSP_TRUE='#'
|
||||||
|
- HAVE_SPEEXDSP_FALSE=
|
||||||
|
-fi
|
||||||
|
|
||||||
|
|
||||||
|
-
|
||||||
|
# Check whether --with-speex was given.
|
||||||
|
if test "${with_speex+set}" = set; then :
|
||||||
|
withval=$with_speex; PPH=$withval
|
||||||
|
else
|
||||||
|
PPH="lib"
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+ if test "$HAVE_SPEEXDSP" = "yes"; then
|
||||||
|
+ HAVE_SPEEXDSP_TRUE=
|
||||||
|
+ HAVE_SPEEXDSP_FALSE='#'
|
||||||
|
+else
|
||||||
|
+ HAVE_SPEEXDSP_TRUE='#'
|
||||||
|
+ HAVE_SPEEXDSP_FALSE=
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
--- configure.ac.orig 2020-02-19 09:35:42 UTC
|
|
||||||
+++ configure.ac
|
|
||||||
@@ -145,12 +145,13 @@ AC_ARG_ENABLE([speexdsp],
|
|
||||||
if test "x$enable_speexdsp" != "xno"; then
|
|
||||||
PKG_CHECK_MODULES(speexdsp, [speexdsp >= 1.2rc2], [HAVE_SPEEXDSP="yes"], [HAVE_SPEEXDSP=""])
|
|
||||||
fi
|
|
||||||
-AM_CONDITIONAL(HAVE_SPEEXDSP, test "$HAVE_SPEEXDSP" = "yes")
|
|
||||||
|
|
||||||
AC_ARG_WITH([speex],
|
|
||||||
AS_HELP_STRING([--with-speex={builtin|lib|no}],
|
|
||||||
[build speex resampler (built-in code, link with external lib, or no build)]),
|
|
||||||
[PPH=$withval], [PPH="lib"])
|
|
||||||
+
|
|
||||||
+AM_CONDITIONAL(HAVE_SPEEXDSP, test "$HAVE_SPEEXDSP" = "yes")
|
|
||||||
|
|
||||||
USE_LIBSPEEX=""
|
|
||||||
if test "$PPH" = "lib"; then
|
|
|
@ -1,8 +1,7 @@
|
||||||
based on https://github.com/dankamongmen/libdank/blob/master/libdank/compat-FreeBSD.c
|
based on https://github.com/dankamongmen/libdank/blob/master/libdank/compat-FreeBSD.c
|
||||||
|
--- ./usb_stream/pcm_usb_stream.c.orig 2022-03-17 16:51:58 UTC
|
||||||
--- usb_stream/pcm_usb_stream.c.orig 2016-03-31 13:11:29 UTC
|
+++ ./usb_stream/pcm_usb_stream.c
|
||||||
+++ usb_stream/pcm_usb_stream.c
|
@@ -78,6 +78,69 @@
|
||||||
@@ -79,6 +79,69 @@ typedef struct {
|
|
||||||
static struct user_usb_stream *uus;
|
static struct user_usb_stream *uus;
|
||||||
static pthread_mutex_t uus_mutex = PTHREAD_MUTEX_INITIALIZER;
|
static pthread_mutex_t uus_mutex = PTHREAD_MUTEX_INITIALIZER;
|
||||||
|
|
||||||
|
@ -19,8 +18,8 @@ based on https://github.com/dankamongmen/libdank/blob/master/libdank/compat-Free
|
||||||
+ * notice, this list of conditions and the following disclaimer in the
|
+ * notice, this list of conditions and the following disclaimer in the
|
||||||
+ * documentation and/or other materials provided with the distribution.
|
+ * documentation and/or other materials provided with the distribution.
|
||||||
+ * * Neither the name of Nick Black nor the names of other contributors may
|
+ * * Neither the name of Nick Black nor the names of other contributors may
|
||||||
+ * be used to endorse or promote products derived from this software
|
+ * be used to endorse or promote products derived from this software
|
||||||
+ * without specific prior written permission.
|
+ * without specific prior written permission.
|
||||||
+ *
|
+ *
|
||||||
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||||
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
@ -41,38 +40,38 @@ based on https://github.com/dankamongmen/libdank/blob/master/libdank/compat-Free
|
||||||
+// mremap(2)), resulting in undefined behavior, despite realloc(3) semantics.
|
+// mremap(2)), resulting in undefined behavior, despite realloc(3) semantics.
|
||||||
+// Similarly, oldlen and newlen must be non-zero (and page-aligned).
|
+// Similarly, oldlen and newlen must be non-zero (and page-aligned).
|
||||||
+void *mremap_compat(int fd,void *oldaddr,size_t oldlen,
|
+void *mremap_compat(int fd,void *oldaddr,size_t oldlen,
|
||||||
+ size_t newlen,int prot,int flags){
|
+ size_t newlen,int prot,int flags){
|
||||||
+ void *ret;
|
+ void *ret;
|
||||||
+
|
+
|
||||||
+ // From mmap(2) on freebsd 6.3: A successful FIXED mmap deletes any
|
+ // From mmap(2) on freebsd 6.3: A successful FIXED mmap deletes any
|
||||||
+ // previous mapping in the allocated address range. This means:
|
+ // previous mapping in the allocated address range. This means:
|
||||||
+ // remapping over a current map will blow it away (unless FIXED isn't
|
+ // remapping over a current map will blow it away (unless FIXED isn't
|
||||||
+ // provided, in which case it can't overlap an old mapping. See bug
|
+ // provided, in which case it can't overlap an old mapping. See bug
|
||||||
+ // 733 for extensive discussion of this issue for Linux and FreeBSD).
|
+ // 733 for extensive discussion of this issue for Linux and FreeBSD).
|
||||||
+ if((ret = mmap((char *)oldaddr + oldlen,newlen - oldlen,prot,flags,fd,oldlen)) == MAP_FAILED){
|
+ if((ret = mmap((char *)oldaddr + oldlen,newlen - oldlen,prot,flags,fd,oldlen)) == MAP_FAILED){
|
||||||
+ // We couldn't get the memory whatsoever (or we were a fresh
|
+ // We couldn't get the memory whatsoever (or we were a fresh
|
||||||
+ // allocation that succeeded). Return the immediate result...
|
+ // allocation that succeeded). Return the immediate result...
|
||||||
+ return ret;
|
+ return ret;
|
||||||
+ } // ret != MAP_FAILED. Did we squash?
|
+ } // ret != MAP_FAILED. Did we squash?
|
||||||
+ if(ret != (char *)oldaddr + oldlen){
|
+ if(ret != (char *)oldaddr + oldlen){
|
||||||
+ // We got the memory, but not where we wanted it. Copy over the
|
+ // We got the memory, but not where we wanted it. Copy over the
|
||||||
+ // old map, and then free it up...
|
+ // old map, and then free it up...
|
||||||
+ munmap(ret,newlen - oldlen);
|
+ munmap(ret,newlen - oldlen);
|
||||||
+ if((ret = mmap(NULL,newlen,prot,flags,fd,0)) == MAP_FAILED){
|
+ if((ret = mmap(NULL,newlen,prot,flags,fd,0)) == MAP_FAILED){
|
||||||
+ return ret;
|
+ return ret;
|
||||||
+ }
|
+ }
|
||||||
+ memcpy(ret,oldaddr,oldlen);
|
+ memcpy(ret,oldaddr,oldlen);
|
||||||
+ munmap(oldaddr,oldlen); // Free the old mapping
|
+ munmap(oldaddr,oldlen); // Free the old mapping
|
||||||
+ return ret;
|
+ return ret;
|
||||||
+ } // We successfully squashed. Return a pointer to the first buf.
|
+ } // We successfully squashed. Return a pointer to the first buf.
|
||||||
+ return oldaddr;
|
+ return oldaddr;
|
||||||
+}
|
+}
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
static struct user_usb_stream *get_uus(const char *card)
|
static struct user_usb_stream *get_uus(int card)
|
||||||
{
|
{
|
||||||
pthread_mutex_lock(&uus_mutex);
|
pthread_mutex_lock(&uus_mutex);
|
||||||
@@ -219,7 +282,11 @@ static int snd_pcm_us_prepare(snd_pcm_io
|
@@ -218,7 +281,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue