aboutsummaryrefslogtreecommitdiffstats
path: root/testing/motion
diff options
context:
space:
mode:
authorGP Orcullo <kinsamanka@gmail.com>2017-08-31 17:14:32 +0800
committerTimo Teräs <timo.teras@iki.fi>2017-09-06 07:10:38 +0000
commit66ff8434575d6f12b1d7ca893d22df1a55ff84e3 (patch)
tree1e7f38b1bbb17e594c24103ec0906b23dea2de15 /testing/motion
parent1e776e60847dfb253fc3e76286e40384ad9d8d96 (diff)
downloadaports-66ff8434575d6f12b1d7ca893d22df1a55ff84e3.tar.bz2
aports-66ff8434575d6f12b1d7ca893d22df1a55ff84e3.tar.xz
testing/motion: Updated to version 4.0.1 with ffmpeg
- updated to the latest release - re-enabled ffmpeg support - switched to openrc init - used /var/lib/motion for storage - disabled cpu optimization
Diffstat (limited to 'testing/motion')
-rw-r--r--testing/motion/APKBUILD54
-rw-r--r--testing/motion/get_current_dir_name.patch46
-rw-r--r--testing/motion/motion-dist.conf.in.patch184
-rw-r--r--testing/motion/motion.confd22
-rw-r--r--testing/motion/motion.initd44
-rw-r--r--testing/motion/motion.pre-install2
-rw-r--r--testing/motion/pthread.patch23
-rw-r--r--testing/motion/pthread_key_create.patch53
-rw-r--r--testing/motion/strerror_r.patch11
9 files changed, 144 insertions, 295 deletions
diff --git a/testing/motion/APKBUILD b/testing/motion/APKBUILD
index 691531faea..6bdf1902cd 100644
--- a/testing/motion/APKBUILD
+++ b/testing/motion/APKBUILD
@@ -2,28 +2,29 @@
# Contributor: Mika Havela <mika.havela@gmail.com>
# Maintainer: Mika Havela <mika.havela@gmail.com>
pkgname=motion
-pkgver=3.2.12
-pkgrel=3
+pkgver=4.0.1
+pkgrel=0
pkgdesc="Detect if a significant part of the picture has changed (e.g. from a webcam)."
-url="http://www.lavrsen.dk/foswiki/bin/view/Motion/WebHome"
+url="https://motion-project.github.io"
arch="all"
+options="!check"
license="GPL2"
pkgusers="motion"
pkggroups="motion"
-depends="jpeg v4l-utils" # Add ffmpeg (when motion is patched/fixed for this)
+depends="jpeg v4l-utils ffmpeg"
depends_dev=""
-makedepends="$depends_dev bash jpeg-dev v4l-utils-dev linux-headers" # Add ffmpeg-dev (when motion is patched/fixed for this)
+makedepends="$depends_dev autoconf automake bash jpeg-dev v4l-utils-dev linux-headers ffmpeg-dev"
install="$pkgname.pre-install"
subpackages="$pkgname-doc"
-source="http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
+source="$pkgname-$pkgver.tar.gz::https://github.com/Motion-Project/$pkgname/archive/release-$pkgver.tar.gz
motion.confd
motion.initd
motion-dist.conf.in.patch
- pthread_key_create.patch
- get_current_dir_name.patch
+ pthread.patch
+ strerror_r.patch
"
-_builddir="$srcdir"/$pkgname-$pkgver
+_builddir="$srcdir"/$pkgname-release-$pkgver
prepare() {
local i
cd "$_builddir"
@@ -37,11 +38,14 @@ prepare() {
build() {
cd "$_builddir"
+ autoreconf -fiv
./configure \
+ --without-pgsql \
+ --without-mysql \
+ --without-sqlite3 \
--prefix=/usr \
- --sysconfdir=/etc/motion \
- --without-ffmpeg \
-
+ --sysconfdir=/etc \
+ --without-optimizecpu
make || return 1
}
@@ -50,27 +54,15 @@ package() {
cd "$_builddir"
make DESTDIR="$pkgdir" install || return 1
install -d -o "$pkgusers" -g "$pkggroups" "$pkgdir"/var/run/motion
- install -d -o "$pkgusers" -g "$pkggroups" "$pkgdir"/home/motion/motion_captures # Default config is configured to store captures here
+ install -d -o "$pkgusers" -g "$pkggroups" "$pkgdir"/var/lib/motion # Default config is configured to store captures here
install -Dm644 "$srcdir"/"$pkgname".confd "$pkgdir"/etc/conf.d/"$pkgname"
install -Dm755 "$srcdir"/"$pkgname".initd "$pkgdir"/etc/init.d/"$pkgname"
install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
}
-md5sums="1ba0065ed50509aaffb171594c689f46 motion-3.2.12.tar.gz
-c444bfd48ac8d6272d5191836ceb544a motion.confd
-3acfe162df3fec28c88c1688e7385189 motion.initd
-2ee4fa214987e7643025732f016e9296 motion-dist.conf.in.patch
-1eca97b280069ad0f1d5cb9946145907 pthread_key_create.patch
-bd58201a2d4724457b668fb65f7b17c3 get_current_dir_name.patch"
-sha256sums="a597f8d7ec0bf3c5fb62722c4eead59717fe01c2ae0d256c642027cea74b2f0a motion-3.2.12.tar.gz
-a89d6b9b070d9447694a3acb9c20768bf232ff37d45728aee7f972f5a0a2b855 motion.confd
-f65843332b1d342058fcb96f139d2334105a009af10692f4dd619d4ccf63eb85 motion.initd
-f164f1c290734378823559bb3f643316f8da8eb61d6fe720761ad4f369a6a074 motion-dist.conf.in.patch
-7658950a54363b8aa8090c508f3864f2e15af9def10bdc96f18cdac7cb141ef0 pthread_key_create.patch
-8cdf811aa274f08c02bd0b3e67548d337f1472d1a9c041c129deeb15ab74fa7d get_current_dir_name.patch"
-sha512sums="d44620f8865420da71ff1dc1e1d8ba8e5465b395f2cf3b2cc9a91d3d415694b26376a9f8e3a1b78ffd0efde22d9e0338daa77237aed38c060dc3577af4c0864c motion-3.2.12.tar.gz
-37821907f3b974675be2584460f499e83c3745ee70fa4674e82186fa9f9c04346e3d4a83a0eb3133bdb33ecee169bf590f6d3eda45ef54958f8babdce446ea08 motion.confd
-a589e56929a5091c1e398f81b9f1744f393006b429a27e5b7227326e3afc4dd792e30486d66f608208eec18e7062e14f673493aafd55a5fed9d33d160bc723a0 motion.initd
-f45fb8f95b7b336b72acf04b29f30413fae1d247d3ad430c36862475ce3148e210d3feb390dc898a369470da20c16c2d26fd018dcb9a7cfe1e4e9c95a46d0f75 motion-dist.conf.in.patch
-17da7b1d2c15b5f95246e8c8f88ff82c090110a950f41d02c55840265d46b8838511602f4da489c16b0e31a1b346345a208994b529064771a37e436ad49650e9 pthread_key_create.patch
-c1d11dd378673f85db290a1d181b7aa454baac7d6ed77a46cdc24cc83c1fc708bafbd76d851767256b797dae4d2032efecbd6e66ffe532b8fda61d2d920b7d58 get_current_dir_name.patch"
+sha512sums="6ccde3890e6af56f28208321987dd1b9d62a55bbe7cbc3ab5600263602e6e8f47589392c2f3a3a6cb54f927ee76aea94d0e83f26ce8e4047890c891b6c2f8976 motion-4.0.1.tar.gz
+8a67b5b0360924e58ba3136a737ce73bb43201a49b2b6e2c632426561b830f6ab55cbbeaa89be7f1683aa8fd322b4f31b9f560e67a93eaceb964c9f56ceef363 motion.confd
+be30f19595dba27f2d0ca8133c93e134161781935a152bd1701e581410039e37742acd11987c38e6e64f495b1fd2b0a74a8c61ae0e6e211a475fca7994172501 motion.initd
+2ac312c7bdd6a487b875a0b39c69a9e61a8d0767f6834be3598242d2f607e823920ad379c5bf10afe2d90de25a1ab03b6d745f18ba952181dad5a154b761388f motion-dist.conf.in.patch
+aab20c38dc57f5ad5f4a4a96220a69589208138401b42c181ab0cb8aa8238d5441b50af40c7bc481729cc74247aa3d2923633b06957817bbaa9282c9d6a24b8d pthread.patch
+a94ea4512c1b53fce38791a7773d01021092009afdac68552aad72749f7b9a18804a78adcf00f2810753f37b40617c5f4111711338369b28d2ddd63b268a0782 strerror_r.patch"
diff --git a/testing/motion/get_current_dir_name.patch b/testing/motion/get_current_dir_name.patch
deleted file mode 100644
index d7e3816c2f..0000000000
--- a/testing/motion/get_current_dir_name.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-The check for get_current_dir_name appears to be broken. you need
-set _GNU_SOURCE for it.
-
-But that triggered other issue with broken ifdefs so we simply avoid
-using get_current_dir_name alltogether.
-
---- ./conf.c.orig
-+++ ./conf.c
-@@ -32,16 +32,6 @@
- #include "video.h"
- #endif /* BSD */
-
--#ifndef HAVE_GET_CURRENT_DIR_NAME
--char *get_current_dir_name(void)
--{
-- char *buf = malloc(MAXPATHLEN);
-- getwd(buf);
-- return buf;
--}
--#endif
--
--
- #define stripnewline(x) {if ((x)[strlen(x)-1]=='\n') (x)[strlen(x) - 1] = 0;}
-
-
-@@ -1645,18 +1635,17 @@
- }
-
- if (!fp) { /* Commandline didn't work, try current dir */
-- char *path = NULL;
-+ char path[PATH_MAX];
- if (cnt[0]->conf_filename[0])
- motion_log(-1, 1, "Configfile %s not found - trying defaults.", filename);
-
-- if ((path = get_current_dir_name()) == NULL) {
-+ if (getcwd(path, PATH_MAX) == NULL) {
- motion_log(LOG_ERR, 1, "Error get_current_dir_name");
- exit(-1);
- }
-
- snprintf(filename, PATH_MAX, "%s/motion.conf", path);
- fp = fopen (filename, "r");
-- free(path);
- }
-
- if (!fp) { /* specified file does not exist... try default file */
diff --git a/testing/motion/motion-dist.conf.in.patch b/testing/motion/motion-dist.conf.in.patch
index 9d6d82da61..0fddba9b8b 100644
--- a/testing/motion/motion-dist.conf.in.patch
+++ b/testing/motion/motion-dist.conf.in.patch
@@ -1,124 +1,43 @@
---- motion-3.2.12/motion-dist.conf.in
+--- motion-4.0.1/motion-dist.conf.in
+++ ./motion-dist.conf.in
@@ -1,6 +1,6 @@
# Rename this distribution example file to motion.conf
#
-# This config file was generated by @PACKAGE_NAME@ @PACKAGE_VERSION@
-+# This config file was generated by motion 3.2.12
-
-
++# This config file was generated by motion 4.0.1
+
+
############################################################
-@@ -237,57 +237,6 @@
-
-
- ############################################################
--# FFMPEG related options
--# Film (mpeg) file output, and deinterlacing of the video input
--# The options movie_filename and timelapse_filename are also used
--# by the ffmpeg feature
--############################################################
--
--# Use ffmpeg to encode mpeg movies in realtime (default: off)
--ffmpeg_cap_new on
--
--# Use ffmpeg to make movies with only the pixels moving
--# object (ghost images) (default: off)
--ffmpeg_cap_motion off
--
--# Use ffmpeg to encode a timelapse movie
--# Default value 0 = off - else save frame every Nth second
--ffmpeg_timelapse 0
--
--# The file rollover mode of the timelapse video
--# Valid values: hourly, daily (default), weekly-sunday, weekly-monday, monthly, manual
--ffmpeg_timelapse_mode daily
--
--# Bitrate to be used by the ffmpeg encoder (default: 400000)
--# This option is ignored if ffmpeg_variable_bitrate is not 0 (disabled)
--ffmpeg_bps 500000
--
--# Enables and defines variable bitrate for the ffmpeg encoder.
--# ffmpeg_bps is ignored if variable bitrate is enabled.
--# Valid values: 0 (default) = fixed bitrate defined by ffmpeg_bps,
--# or the range 2 - 31 where 2 means best quality and 31 is worst.
--ffmpeg_variable_bitrate 0
--
--# Codec to used by ffmpeg for the video compression.
--# Timelapse mpegs are always made in mpeg1 format independent from this option.
--# Supported formats are: mpeg1 (ffmpeg-0.4.8 only), mpeg4 (default), and msmpeg4.
--# mpeg1 - gives you files with extension .mpg
--# mpeg4 or msmpeg4 - gives you files with extension .avi
--# msmpeg4 is recommended for use with Windows Media Player because
--# it requires no installation of codec on the Windows client.
--# swf - gives you a flash film with extension .swf
--# flv - gives you a flash video with extension .flv
--# ffv1 - FF video codec 1 for Lossless Encoding ( experimental )
--# mov - QuickTime ( testing )
--ffmpeg_video_codec mpeg4
--
--# Use ffmpeg to deinterlace video. Necessary if you use an analog camera
--# and see horizontal combing on moving objects in video or pictures.
--# (default: off)
--ffmpeg_deinterlace off
--
--
--############################################################
- # Snapshots (Traditional Periodic Webcam File Output)
- ############################################################
-
-@@ -356,7 +305,7 @@
-
+@@ -447,7 +447,7 @@
+
# Target base directory for pictures and films
# Recommended to use absolute path. (Default: current working directory)
--target_dir /usr/local/apache2/htdocs/cam1
-+target_dir /home/motion/motion_captures
-
+-#target_dir /tmp/motion
++target_dir /var/lib/motion
+
# File path for snapshots (jpeg or ppm) relative to target_dir
# Default: %v-%Y%m%d%H%M%S-snapshot
-@@ -376,22 +325,7 @@
- # convention for preview shots. See motion guide for details
- jpeg_filename %v-%Y%m%d%H%M%S-%q
-
--# File path for motion triggered ffmpeg films (mpeg) relative to target_dir
--# Default: %v-%Y%m%d%H%M%S
--# Default value is equivalent to legacy oldlayout option
--# For Motion 3.0 compatible mode choose: %Y/%m/%d/%H%M%S
--# File extension .mpg or .avi is automatically added so do not include this
--# This option was previously called ffmpeg_filename
--movie_filename %v-%Y%m%d%H%M%S
-
--# File path for timelapse mpegs relative to target_dir
--# Default: %Y%m%d-timelapse
--# Default value is near equivalent to legacy oldlayout option
--# For Motion 3.0 compatible mode choose: %Y/%m/%d-timelapse
--# File extension .mpg is automatically added so do not include this
--timelapse_filename %Y%m%d-timelapse
--
--
- ############################################################
- # Live Webcam Server
- ############################################################
-@@ -540,69 +474,6 @@
- # It depends on the driver, some drivers don't detect a lost camera at all
- # Some hang the motion thread. Some even hang the PC! (default: none)
+@@ -666,70 +666,6 @@
+ # It depends on the driver, some drivers dosn't detect a lost camera at all
+ # Some hangs the motion thread. Some even hangs the PC! (default: none)
; on_camera_lost value
-
--############################################################
--# Common Options For MySQL and PostgreSQL database features.
--# Options require the MySQL/PostgreSQL options to be active also.
--############################################################
+-#####################################################################
+-# Common Options for database features.
+-# Options require database options to be active also.
+-#####################################################################
-
--# Log to the database when creating motion triggered image file (default: on)
--sql_log_image on
+-# Log to the database when creating motion triggered picture file (default: on)
+-; sql_log_picture on
-
-# Log to the database when creating a snapshot image file (default: on)
--sql_log_snapshot on
+-; sql_log_snapshot on
-
--# Log to the database when creating motion triggered mpeg file (default: off)
--sql_log_mpeg off
+-# Log to the database when creating motion triggered movie file (default: off)
+-; sql_log_movie off
-
--# Log to the database when creating timelapse mpeg file (default: off)
--sql_log_timelapse off
+-# Log to the database when creating timelapse movies file (default: off)
+-; sql_log_timelapse off
-
-# SQL query string that is sent to the database
-# Use same conversion specifiers has for text features
@@ -126,45 +45,46 @@
-# %n = the number representing the file_type
-# %f = filename with full path
-# Default value:
+-# Create tables :
+-##
+-# Mysql
+-# CREATE TABLE security (camera int, filename char(80) not null, frame int, file_type int, time_stamp timestamp(14), event_time_stamp timestamp(14));
+-#
+-# Postgresql
+-# CREATE TABLE security (camera int, filename char(80) not null, frame int, file_type int, time_stamp timestamp without time zone, event_time_stamp timestamp without time zone);
+-#
-# insert into security(camera, filename, frame, file_type, time_stamp, text_event) values('%t', '%f', '%q', '%n', '%Y-%m-%d %T', '%C')
--sql_query insert into security(camera, filename, frame, file_type, time_stamp, event_time_stamp) values('%t', '%f', '%q', '%n', '%Y-%m-%d %T', '%C')
+-; sql_query insert into security(camera, filename, frame, file_type, time_stamp, event_time_stamp) values('%t', '%f', '%q', '%n', '%Y-%m-%d %T', '%C')
-
-
-############################################################
--# Database Options For MySQL
+-# Database Options
-############################################################
-
--# Mysql database to log to (default: not defined)
--; mysql_db value
--
--# The host on which the database is located (default: localhost)
--; mysql_host value
--
--# User account name for MySQL database (default: not defined)
--; mysql_user value
+-# database type : mysql, postgresql, sqlite3 (default : not defined)
+-; database_type value
-
--# User password for MySQL database (default: not defined)
--; mysql_password value
+-# database to log to (default: not defined)
+-# for sqlite3, the full path and name for the database.
+-; database_dbname value
-
+-# The host on which the database is located (default: localhost)
+-; database_host value
-
--############################################################
--# Database Options For PostgreSQL
--############################################################
--
--# PostgreSQL database to log to (default: not defined)
--; pgsql_db value
+-# User account name for database (default: not defined)
+-; database_user value
-
--# The host on which the database is located (default: localhost)
--; pgsql_host value
+-# User password for database (default: not defined)
+-; database_password value
-
--# User account name for PostgreSQL database (default: not defined)
--; pgsql_user value
+-# Port on which the database is located
+-# mysql 3306 , postgresql 5432 (default: not defined)
+-; database_port value
-
--# User password for PostgreSQL database (default: not defined)
--; pgsql_password value
+-# Database wait time in milliseconds for locked database to
+-# be unlocked before returning database locked error (default 0)
+-; database_busy_timeout 0
-
--# Port on which the PostgreSQL database is located (default: 5432)
--; pgsql_port 5432
-
-
+
+
############################################################
diff --git a/testing/motion/motion.confd b/testing/motion/motion.confd
index ff24e5c814..dfff31beb4 100644
--- a/testing/motion/motion.confd
+++ b/testing/motion/motion.confd
@@ -1,17 +1,9 @@
-# /etc/conf.d/motion
-## -c Full path and filename of config file. E.g. /home/kurt/motion.conf.
-## Default is /usr/local/etc unless specified differently when building
-## Motion. Many RPMs and debian packages will most likely use /etc or
-## /etc/motion as default.
-##
-## -n Run in non-daemon mode.
-##
-## -s Run in setup mode. Also forces non-daemon mode
-##
-## -d level Run in debug mode, level 1-9.
-##
-##
-## See the motion(1) manpage for more info.
+# Set the user and group under which motion will be run
+MOTION_USER="motion"
+MOTION_GROUP="video"
-MOTION_OPTS="-c /etc/motion/motion-dist.conf"
+# Set the the directory for storing the pidfile
+MOTION_RUN_DIR="/var/run/motion"
+# Set the the working directory for storing images/videos
+MOTION_LIB_DIR="/var/lib/motion"
diff --git a/testing/motion/motion.initd b/testing/motion/motion.initd
index 78493c3d44..b475576487 100644
--- a/testing/motion/motion.initd
+++ b/testing/motion/motion.initd
@@ -1,27 +1,37 @@
-#!/sbin/runscript
-# Copyright 1999-2004 Gentoo Foundation
+#!/sbin/openrc-run
+# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/rsync/files/rsyncd.init.d,v 1.5 2007/02/23 11:33:59 uberlord Exp $
-description="motion daemon"
-user="motion"
-command="/usr/bin/motion"
-pidfile="/var/run/${RC_SVCNAME}/${RC_SVCNAME}.pid"
+extra_started_commands="reload"
+
+checkconfig() {
+ export MOTION_RUN_DIR="${MOTION_RUN_DIR:-/var/run/motion}"
+ checkpath -d -m 750 -o "${MOTION_USER:-motion}:${MOTION_GROUP:-video}" "${MOTION_RUN_DIR}"
+ export MOTION_LIB_DIR="${MOTION_LIB_DIR:-/var/lib/motion}"
+ checkpath -d -m 750 -o "${MOTION_USER:-motion}:${MOTION_GROUP:-video}" "${MOTION_LIB_DIR}"
+ return 0
+}
start() {
- ebegin "Starting ${RC_SVCNAME}"
- start-stop-daemon --start \
- --exec ${command} \
- --user ${user} \
- --pidfile ${pidfile} \
- -- ${MOTION_OPTS}
+ checkconfig || return 1
+
+ ebegin "Starting motion detection"
+ start-stop-daemon --start -u "${MOTION_USER}" -g "${MOTION_GROUP}" -d "${MOTION_LIB_DIR}" --quiet --exec /usr/bin/motion -- -b -p "${MOTION_RUN_DIR}/motion.pid"
eend $?
}
stop() {
- ebegin "Stopping ${RC_SVCNAME}"
- start-stop-daemon --stop \
- --exec ${command} \
- --pidfile ${pidfile}
+ checkconfig || return 1
+
+ ebegin "Stopping motion detection"
+ start-stop-daemon --stop --quiet --exec /usr/bin/motion --pidfile "${MOTION_RUN_DIR}/motion.pid"
+ eend $?
+}
+
+reload() {
+ checkconfig || return 1
+
+ ebegin "Reloading motion detection configuration"
+ start-stop-daemon --stop --signal HUP --exec /usr/bin/motion --pidfile "${MOTION_RUN_DIR}/motion.pid"
eend $?
}
diff --git a/testing/motion/motion.pre-install b/testing/motion/motion.pre-install
index de22bc1913..f18364eafe 100644
--- a/testing/motion/motion.pre-install
+++ b/testing/motion/motion.pre-install
@@ -1,7 +1,7 @@
#!/bin/sh
addgroup -S motion 2>/dev/null
-adduser -S -D -h /home/motion -s /bin/false -G motion -g motion motion 2>/dev/null
+adduser -S -D -h /var/lib/motion -s /bin/false -G motion -g motion motion 2>/dev/null
addgroup motion video 2>/dev/null
exit 0
diff --git a/testing/motion/pthread.patch b/testing/motion/pthread.patch
new file mode 100644
index 0000000000..570849729b
--- /dev/null
+++ b/testing/motion/pthread.patch
@@ -0,0 +1,23 @@
+configure doesn't generate proper pthread support
+
+--- motion-4.0.1/configure.ac
++++ ./configure.ac
+@@ -188,7 +188,8 @@
+ pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
+ [PTHREAD_LIB=yes])
+
+-if test x$PTHREAD_LIB != xyes; then
++# this test should fail but it doesn't on alpine
++if test x$PTHREAD_LIB = xyes; then
+
+ if test "${FreeBSD}" != ""; then
+ TEMP_LIBS="$TEMP_LIBS -pthread"
+@@ -213,7 +214,7 @@
+ CFLAGS="$TEMP_CFLAGS"
+ LIBS="$TEMP_LIBS"
+ AC_LINK_IFELSE(
+- [AC_LANG_PROGRAM([[#include <pthread.h>]], [[ pthread_setname_np(pthread_self(), "name")]])],
++ [AC_LANG_PROGRAM([[#include <pthread.h>]], [[ pthread_getname_np(pthread_self(), "name", 0)]])],
+ [AC_DEFINE([[HAVE_PTHREAD_SETNAME_NP]], [[1]], [Define if you have pthread_setname_np function.])
+ AC_MSG_RESULT([[yes]])],
+ [AC_MSG_RESULT([[no]])] )
diff --git a/testing/motion/pthread_key_create.patch b/testing/motion/pthread_key_create.patch
deleted file mode 100644
index afedce75b5..0000000000
--- a/testing/motion/pthread_key_create.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-make sure we create the tls key before we access in any way.
-
-we also fix the check for broken glibc strerror_r
-
---- ./motion.c.orig
-+++ ./motion.c
-@@ -2267,6 +2267,9 @@
- struct sigaction sigchild_action;
- setup_signals(&sig_handler_action, &sigchild_action);
-
-+ /* Create the TLS key for thread number. */
-+ pthread_key_create(&tls_key_threadnr, NULL);
-+
- motion_startup(1, argc, argv);
-
- #ifdef HAVE_FFMPEG
-@@ -2290,9 +2293,6 @@
- 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) {
- /* Handle the restart situation. Currently the approach is to
-@@ -2745,9 +2745,6 @@
- {
- int errno_save, n;
- char buf[1024];
--#if (!defined(BSD)) && (!(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE)
-- char msg_buf[100];
--#endif
- va_list ap;
- int threadnr;
-
-@@ -2780,12 +2778,13 @@
- * version of strerror_r, which doesn't actually put the message into
- * my buffer :-(. I have put in a 'hack' to get around this.
- */
--#if (defined(BSD))
-- strerror_r(errno_save, buf + n, sizeof(buf) - n); /* 2 for the ': ' */
--#elif (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE
-+#if !defined(__GLIBC__) || ((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! defined(_GNU_SOURCE))
- strerror_r(errno_save, buf + n, sizeof(buf) - n);
- #else
-+ {
-+ char msg_buf[100];
- strncat(buf, strerror_r(errno_save, msg_buf, sizeof(msg_buf)), 1024 - strlen(buf));
-+ }
- #endif
- }
- /* If 'level' is not negative, send the message to the syslog */
diff --git a/testing/motion/strerror_r.patch b/testing/motion/strerror_r.patch
new file mode 100644
index 0000000000..bbe625ecb7
--- /dev/null
+++ b/testing/motion/strerror_r.patch
@@ -0,0 +1,11 @@
+--- motion-4.0.1/motion.h
++++ ./motion.h
+@@ -88,7 +88,7 @@
+ #endif
+
+ /* strerror_r() XSI vs GNU */
+-#if (defined(BSD)) || ((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE)
++#if !defined(__GLIBC__) || (defined(BSD)) || ((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE)
+ #define XSI_STRERROR_R
+ #endif
+