aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Daudt <kdaudt@alpinelinux.org>2020-09-19 12:12:09 +0000
committerKevin Daudt <kdaudt@alpinelinux.org>2020-09-19 15:38:54 +0000
commit97009644a0c07e29619dcbf6bdab01b76b84435d (patch)
tree0f2a0968b1a0e79307f4c304ea6870c8310a115f
parentc8c6758ed248497c59971d88e5597245ac8b55b5 (diff)
downloadaports-97009644a0c07e29619dcbf6bdab01b76b84435d.tar.gz
aports-97009644a0c07e29619dcbf6bdab01b76b84435d.tar.bz2
aports-97009644a0c07e29619dcbf6bdab01b76b84435d.tar.xz
community/mlt: fix deadlock due to recursive mutex
See: https://gitlab.alpinelinux.org/alpine/aports/-/issues/11838#note_114554 Fixes #11838
-rw-r--r--community/mlt/APKBUILD6
-rw-r--r--community/mlt/mlt-fix-mutex.patch19
2 files changed, 23 insertions, 2 deletions
diff --git a/community/mlt/APKBUILD b/community/mlt/APKBUILD
index 1a5fd0ab02..96e773518f 100644
--- a/community/mlt/APKBUILD
+++ b/community/mlt/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Kevin Daudt <kdaudt@alpinelinux.org>
pkgname=mlt
pkgver=6.22.1
-pkgrel=0
+pkgrel=1
pkgdesc="MLT Multimedia Framework"
url="https://www.mltframework.org/"
arch="all"
@@ -13,6 +13,7 @@ makedepends="python3-dev ffmpeg-dev libsamplerate-dev sox-dev jack-dev
subpackages="$pkgname-dev py3-$pkgname:py3"
source="https://github.com/mltframework/mlt/archive/v$pkgver/mlt-v$pkgver.tar.gz
musl-locale.patch
+ mlt-fix-mutex.patch
"
build() {
@@ -50,4 +51,5 @@ py3() {
}
sha512sums="c620b68d35c90eab650c70768a4ae631dec83ece6dd3fd8e09f9300d837d8e0f3da1b098786188f9c1216800f848dd5db7c9e5fa03e816fba3fbcf3c63324c74 mlt-v6.22.1.tar.gz
-dfa4c192ce6121a3c86141c46a08eaf6cd6bd81c120786bdb1ef564bf7878dcb44031280b34609048409c3d09e8c0e1bd430dae1fe777ef030daf09b1dfd90a3 musl-locale.patch"
+dfa4c192ce6121a3c86141c46a08eaf6cd6bd81c120786bdb1ef564bf7878dcb44031280b34609048409c3d09e8c0e1bd430dae1fe777ef030daf09b1dfd90a3 musl-locale.patch
+44bbd051fb1b1db7e0522dc3112e468734f69688dc451320bc11bbef61b3dde2236e9db0a79203ec94439dcec5d44f2dec4a781655a3350787d03528b98b22bd mlt-fix-mutex.patch"
diff --git a/community/mlt/mlt-fix-mutex.patch b/community/mlt/mlt-fix-mutex.patch
new file mode 100644
index 0000000000..fd1cdb8a20
--- /dev/null
+++ b/community/mlt/mlt-fix-mutex.patch
@@ -0,0 +1,19 @@
+Reason: The mutex is used recursively, but not declared as such
+Upsteam: No
+Url: https://gitlab.alpinelinux.org/alpine/aports/-/issues/11838#note_114555
+diff -ruN mlt-6.22.1/src/framework/mlt_property.c src2/mlt-6.22.1/src/framework/mlt_property.c
+--- mlt-6.22.1/src/framework/mlt_property.c 2020-08-01 20:23:06.000000000 +0200
++++ mlt-6.22.1/src/framework/mlt_property.c 2020-09-18 23:38:45.257937933 +0200
+@@ -90,8 +90,11 @@
+ mlt_property mlt_property_init( )
+ {
+ mlt_property self = calloc( 1, sizeof( *self ) );
+- if ( self )
+- pthread_mutex_init( &self->mutex, NULL );
++ if ( self ) {
++ pthread_mutexattr_t ma;
++ pthread_mutexattr_settype( &ma, PTHREAD_MUTEX_RECURSIVE );
++ pthread_mutex_init( &self->mutex, &ma );
++ }
+ return self;
+ }