diff --git a/multimedia/motion/Makefile b/multimedia/motion/Makefile index 412b5f90b..eeb49b183 100644 --- a/multimedia/motion/Makefile +++ b/multimedia/motion/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2008-2011 OpenWrt.org +# Copyright (C) 2008-2015 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=motion PKG_VERSION=3.4.0-20141018-$(PKG_SOURCE_VERSION) -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_MAINTAINER:=Roger D PKG_LICENSE:=GPLv2 diff --git a/multimedia/motion/patches/100-musl-compat.patch b/multimedia/motion/patches/100-musl-compat.patch new file mode 100644 index 000000000..b788e2696 --- /dev/null +++ b/multimedia/motion/patches/100-musl-compat.patch @@ -0,0 +1,49 @@ +--- a/motion.c ++++ b/motion.c +@@ -2630,6 +2630,17 @@ int main (int argc, char **argv) + struct sigaction sigchild_action; + setup_signals(&sig_handler_action, &sigchild_action); + ++ /* ++ * Create and a thread attribute for the threads we spawn later on. ++ * PTHREAD_CREATE_DETACHED means to create threads detached, i.e. ++ * their termination cannot be synchronized through 'pthread_join'. ++ */ ++ pthread_attr_init(&thread_attr); ++ pthread_attr_setdetachstate(&thread_attr, PTHREAD_CREATE_DETACHED); ++ ++ /* Create the TLS key for thread number. */ ++ pthread_key_create(&tls_key_threadnr, NULL); ++ + motion_startup(1, argc, argv); + + #ifdef HAVE_FFMPEG +@@ -2648,17 +2659,6 @@ int main (int argc, char **argv) + if (cnt_list[0]->conf.setup_mode) + MOTION_LOG(NTC, TYPE_ALL, NO_ERRNO, "%s: Motion running in setup mode."); + +- /* +- * Create and a thread attribute for the threads we spawn later on. +- * PTHREAD_CREATE_DETACHED means to create threads detached, i.e. +- * their termination cannot be synchronized through 'pthread_join'. +- */ +- pthread_attr_init(&thread_attr); +- pthread_attr_setdetachstate(&thread_attr, PTHREAD_CREATE_DETACHED); +- +- /* Create the TLS key for thread number. */ +- pthread_key_create(&tls_key_threadnr, NULL); +- + do { + if (restart) { + /* +--- a/motion.h ++++ b/motion.h +@@ -84,7 +84,7 @@ + #endif + + /* strerror_r() XSI vs GNU */ +-#if (defined(BSD)) || ((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE) ++#if (defined(BSD)) || ((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE) || (!defined(__GLIBC__)) + #define XSI_STRERROR_R + #endif +