summaryrefslogtreecommitdiffstats
path: root/package/motion
diff options
context:
space:
mode:
Diffstat (limited to 'package/motion')
-rw-r--r--package/motion/0001-Fix-pthread_setname_np-detection.patch50
-rw-r--r--package/motion/0001-configure.ac-use-given-CFLAGS-LIBS-for-mysqlclient-l.patch31
-rw-r--r--package/motion/0002-Check-for-pthread_getname_np.patch66
-rw-r--r--package/motion/0002-Rename-base64_encode.patch116
-rw-r--r--package/motion/motion.hash3
-rw-r--r--package/motion/motion.mk22
6 files changed, 121 insertions, 167 deletions
diff --git a/package/motion/0001-Fix-pthread_setname_np-detection.patch b/package/motion/0001-Fix-pthread_setname_np-detection.patch
new file mode 100644
index 0000000000..dc14232c2b
--- /dev/null
+++ b/package/motion/0001-Fix-pthread_setname_np-detection.patch
@@ -0,0 +1,50 @@
+From 505be2201377fa347a34b6cb4164c856b55e7484 Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Thu, 23 Nov 2017 22:47:39 +0100
+Subject: [PATCH] Fix pthread_setname_np detection
+
+Commit 6617c6f2c8aad041d3428bea11206fd2e61763b1 replaced
+AC_LINK_IFELSE with AC_COMPILE_IFELSE. This has broken the
+pthread_setname_np detection as compilation will always succeed even if
+pthread_setname_np is not available (if the function is not found, a
+simple warning will be displayed in config.log).
+
+The correct fix is to put back AC_LINK_IFELSE with -pthread in LIBS
+otherwise compilation will fail on toolchain without pthread_setname_np.
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+---
+ configure.ac | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 1792b65..21efd2a 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -128,17 +128,20 @@ fi
+ if test x$THREADS = xyes; then
+ TEMP_LIBS="$TEMP_LIBS -pthread"
+ TEMP_CFLAGS="${TEMP_CFLAGS} -D_THREAD_SAFE"
+-fi
+
+ ##############################################################################
+ ### Check for pthread_setname_np (nonstandard GNU extension)
+ ##############################################################################
+-AC_MSG_CHECKING([for pthread_setname_np])
+-AC_COMPILE_IFELSE(
++ AC_MSG_CHECKING([for pthread_setname_np])
++ HOLD_LIBS="$LIBS"
++ LIBS="$TEMP_LIBS"
++ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([#include <pthread.h>], [pthread_setname_np(pthread_self(), "name")])],
+ [AC_DEFINE([HAVE_PTHREAD_SETNAME_NP], [1], [Define if you have pthread_setname_np function.])
+ AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])] )
++ LIBS="$HOLD_LIBS"
++fi
+
+ ##############################################################################
+ ### Check for JPG
+--
+2.14.1
+
diff --git a/package/motion/0001-configure.ac-use-given-CFLAGS-LIBS-for-mysqlclient-l.patch b/package/motion/0001-configure.ac-use-given-CFLAGS-LIBS-for-mysqlclient-l.patch
deleted file mode 100644
index 4211fe67bd..0000000000
--- a/package/motion/0001-configure.ac-use-given-CFLAGS-LIBS-for-mysqlclient-l.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 5a1081d36bf2861ffc882354c583a0eb6b0ee3d5 Mon Sep 17 00:00:00 2001
-From: Peter Seiderer <ps.report@gmx.net>
-Date: Tue, 25 Oct 2016 21:27:41 +0200
-Subject: [PATCH] configure.ac: use given CFLAGS/LIBS for mysqlclient library
- check
-
-Needed for static linking of mysql with enabled libz.
-
-Signed-off-by: Peter Seiderer <ps.report@gmx.net>
----
- configure.ac | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 5782fd6..aa5d9dd 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -618,8 +618,8 @@ else
- #LDFLAGS="-L$MYSQL_LIBDIR"
- saved_CFLAGS=$CFLAGS
- saved_LIBS=$LIBS
-- CFLAGS="-I$MYSQL_INCDIR"
-- LIBS="-L$MYSQL_LIBDIR"
-+ CFLAGS="-I$MYSQL_INCDIR $CFLAGS"
-+ LIBS="-L$MYSQL_LIBDIR $LIBS"
- AC_CHECK_LIB(mysqlclient,mysql_init,[
- TEMP_LIBS="$TEMP_LIBS -L$MYSQL_LIBDIR -lmysqlclient -lz"
- TEMP_CFLAGS="$TEMP_CFLAGS -I$MYSQL_INCDIR"
---
-2.8.1
-
diff --git a/package/motion/0002-Check-for-pthread_getname_np.patch b/package/motion/0002-Check-for-pthread_getname_np.patch
new file mode 100644
index 0000000000..c6b5d6aa74
--- /dev/null
+++ b/package/motion/0002-Check-for-pthread_getname_np.patch
@@ -0,0 +1,66 @@
+From 4067b793689f740e86b2f070c63cc72860347ab5 Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Thu, 23 Nov 2017 22:53:03 +0100
+Subject: [PATCH] Check for pthread_getname_np
+
+On some toolchains (like musl), pthread_setname_np is available but not
+pthread_getname_np so add this check in configure.ac
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+---
+ configure.ac | 11 +++++++++++
+ logger.c | 2 +-
+ motion.c | 2 +-
+ 3 files changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 21efd2a..06b2990 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -140,6 +140,17 @@ if test x$THREADS = xyes; then
+ [AC_DEFINE([HAVE_PTHREAD_SETNAME_NP], [1], [Define if you have pthread_setname_np function.])
+ AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])] )
++
++##############################################################################
++### Check for pthread_getname_np (nonstandard GNU extension)
++##############################################################################
++ AC_MSG_CHECKING([for pthread_getname_np])
++ AC_LINK_IFELSE(
++ [AC_LANG_PROGRAM([#include <pthread.h>], [pthread_getname_np(pthread_self(), NULL, 0)])],
++ [AC_DEFINE([HAVE_PTHREAD_GETNAME_NP], [1], [Define if you have pthread_getname_np function.])
++ AC_MSG_RESULT([yes])],
++ [AC_MSG_RESULT([no])] )
++
+ LIBS="$HOLD_LIBS"
+ fi
+
+diff --git a/logger.c b/logger.c
+index 01ea5a5..fd80d77 100644
+--- a/logger.c
++++ b/logger.c
+@@ -207,7 +207,7 @@ void motion_log(int level, unsigned int type, int errno_flag, const char *fmt, .
+ errno_save = errno;
+
+ char threadname[32] = "unknown";
+-#if ((!defined(BSD) && HAVE_PTHREAD_SETNAME_NP) || defined(__APPLE__))
++#if ((!defined(BSD) && HAVE_PTHREAD_GETNAME_NP) || defined(__APPLE__))
+ pthread_getname_np(pthread_self(), threadname, sizeof(threadname));
+ #endif
+
+diff --git a/motion.c b/motion.c
+index 8570896..985d4b2 100644
+--- a/motion.c
++++ b/motion.c
+@@ -3772,7 +3772,7 @@ void util_threadname_set(const char *abbr, int threadnbr, const char *threadname
+
+ void util_threadname_get(char *threadname){
+
+-#if ((!defined(BSD) && HAVE_PTHREAD_SETNAME_NP) || defined(__APPLE__))
++#if ((!defined(BSD) && HAVE_PTHREAD_GETNAME_NP) || defined(__APPLE__))
+ char currname[16];
+ pthread_getname_np(pthread_self(), currname, sizeof(currname));
+ snprintf(threadname, sizeof(currname), "%s",currname);
+--
+2.14.1
+
diff --git a/package/motion/0002-Rename-base64_encode.patch b/package/motion/0002-Rename-base64_encode.patch
deleted file mode 100644
index 8b06309252..0000000000
--- a/package/motion/0002-Rename-base64_encode.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From 0da5428bdfe67eb17ee03f22f68e66b044abdf70 Mon Sep 17 00:00:00 2001
-From: Fabrice Fontaine <fabrice.fontaine@orange.com>
-Date: Sun, 30 Oct 2016 19:30:46 +0100
-Subject: [PATCH] Rename base64_encode
-
-base64_encode is already defined in gnutls so rename it as
-motion_base64_encode to prevent a definition clash when linking
-statically with gnutls
-
-Fixes:
- - http://autobuild.buildroot.org/results/592672b8826f4c731c50d29725da964d876573c4
-
-Applied upstream:
- - https://github.com/Motion-Project/motion/commit/cc3c25527d4bada0fe98a734fa2df29f8d6cf1ad
-
-Signed-off-by: Fabrice Fontaine <fabrice.fontaine@orange.com>
----
- netcam.c | 4 ++--
- netcam_wget.c | 4 ++--
- netcam_wget.h | 2 +-
- stream.c | 4 ++--
- webhttpd.c | 4 ++--
- 5 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/netcam.c b/netcam.c
-index a9df33a..38d4ca3 100644
---- a/netcam.c
-+++ b/netcam.c
-@@ -2019,7 +2019,7 @@ static int netcam_http_build_url(netcam_context_ptr netcam, struct url_t *url)
- else
- ptr = url->userpass;
-
-- /* base64_encode needs up to 3 additional chars. */
-+ /* motion_base64_encode needs up to 3 additional chars. */
- if (ptr) {
- userpass = mymalloc(strlen(ptr) + 3);
- strcpy(userpass, ptr);
-@@ -2045,7 +2045,7 @@ static int netcam_http_build_url(netcam_context_ptr netcam, struct url_t *url)
- /* Allocate space for the base64-encoded string. */
- encuserpass = mymalloc(BASE64_LENGTH(strlen(userpass)) + 1);
- /* Fill in the value. */
-- base64_encode(userpass, encuserpass, strlen(userpass));
-+ motion_base64_encode(userpass, encuserpass, strlen(userpass));
- /* Now create the last part (authorization) of the request. */
- request_pass = mymalloc(strlen(connect_auth_req) +
- strlen(encuserpass) + 1);
-diff --git a/netcam_wget.c b/netcam_wget.c
-index 4491760..f5c1dc2 100644
---- a/netcam_wget.c
-+++ b/netcam_wget.c
-@@ -210,13 +210,13 @@ int skip_lws(const char *string)
-
-
- /**
-- * base64_encode
-+ * motion_base64_encode
- *
- * Encode the string S of length LENGTH to base64 format and place it
- * to STORE. STORE will be 0-terminated, and must point to a writable
- * buffer of at least 1+BASE64_LENGTH(length) bytes.
- */
--void base64_encode(const char *s, char *store, int length)
-+void motion_base64_encode(const char *s, char *store, int length)
- {
- /* Conversion table. */
- static const char tbl[64] = {
-diff --git a/netcam_wget.h b/netcam_wget.h
-index 9a091bf..e9b02b5 100644
---- a/netcam_wget.h
-+++ b/netcam_wget.h
-@@ -72,7 +72,7 @@ int rbuf_read_bufferful(netcam_context_ptr);
- /* How many bytes it will take to store LEN bytes in base64. */
- #define BASE64_LENGTH(len) (4 * (((len) + 2) / 3))
-
--void base64_encode(const char *, char *, int);
-+void motion_base64_encode(const char *, char *, int);
- char *strdupdelim(const char *, const char *);
- int http_process_type(const char *, void *);
-
-diff --git a/stream.c b/stream.c
-index 04e67ee..ca201ac 100644
---- a/stream.c
-+++ b/stream.c
-@@ -211,10 +211,10 @@ static void* handle_basic_auth(void* param)
-
- authentication = mymalloc(BASE64_LENGTH(auth_size) + 1);
- userpass = mymalloc(auth_size + 4);
-- /* base64_encode can read 3 bytes after the end of the string, initialize it. */
-+ /* motion_base64_encode can read 3 bytes after the end of the string, initialize it. */
- memset(userpass, 0, auth_size + 4);
- strcpy(userpass, p->conf->stream_authentication);
-- base64_encode(userpass, authentication, auth_size);
-+ motion_base64_encode(userpass, authentication, auth_size);
- free(userpass);
-
- if (strcmp(auth, authentication)) {
-diff --git a/webhttpd.c b/webhttpd.c
-index 6df2d11..36e8beb 100644
---- a/webhttpd.c
-+++ b/webhttpd.c
-@@ -2616,10 +2616,10 @@ void httpd_run(struct context **cnt)
-
- authentication = mymalloc(BASE64_LENGTH(auth_size) + 1);
- userpass = mymalloc(auth_size + 4);
-- /* base64_encode can read 3 bytes after the end of the string, initialize it */
-+ /* motion_base64_encode can read 3 bytes after the end of the string, initialize it */
- memset(userpass, 0, auth_size + 4);
- strcpy(userpass, cnt[0]->conf.webcontrol_authentication);
-- base64_encode(userpass, authentication, auth_size);
-+ motion_base64_encode(userpass, authentication, auth_size);
- free(userpass);
- }
-
---
-2.5.0
-
diff --git a/package/motion/motion.hash b/package/motion/motion.hash
index e8591179ed..40cb66b7e5 100644
--- a/package/motion/motion.hash
+++ b/package/motion/motion.hash
@@ -1,2 +1,3 @@
# Locally computed:
-sha256 2f67669a09ce0481ecd987028dae1c5cb135dfdc3c254c06ab7c9ca0c6c183f0 motion-release-4.0.1.tar.gz
+sha256 277029c80df0d37deefbbea6d15c66a9067d9166fe8f76eb5f90aa6e97aa9741 motion-release-4.1.tar.gz
+sha256 91df39d1816bfb17a4dda2d3d2c83b1f6f2d38d53e53e41e8f97ad5ac46a0cad COPYING
diff --git a/package/motion/motion.mk b/package/motion/motion.mk
index ce64a9328b..dfbb70d64b 100644
--- a/package/motion/motion.mk
+++ b/package/motion/motion.mk
@@ -4,17 +4,15 @@
#
################################################################################
-MOTION_VERSION = release-4.0.1
+MOTION_VERSION = release-4.1
MOTION_SITE = $(call github,Motion-Project,motion,$(MOTION_VERSION))
MOTION_LICENSE = GPL-2.0
MOTION_LICENSE_FILES = COPYING
MOTION_DEPENDENCIES = host-pkgconf jpeg
-# From git and patched configure.ac
+# From git
MOTION_AUTORECONF = YES
-# motion does not use any specific function of jpeg-turbo, so just relies on
-# jpeg selection
-MOTION_CONF_OPTS += --without-jpeg-turbo --without-optimizecpu
+MOTION_CONF_OPTS += --without-optimizecpu
ifeq ($(BR2_PACKAGE_FFMPEG_SWSCALE),y)
MOTION_DEPENDENCIES += ffmpeg
@@ -29,10 +27,6 @@ MOTION_CONF_OPTS += \
--with-mysql \
--with-mysql-include=$(STAGING_DIR)/usr/include/mysql \
--with-mysql-lib=$(STAGING_DIR)/usr/lib
-# static link of mysql needs -lz
-ifeq ($(BR2_STATIC_LIBS)$(BR2_PACKAGE_ZLIB),yy)
-MOTION_CONF_ENV += LIBS="-lz"
-endif
else
MOTION_CONF_OPTS += --without-mysql
endif
@@ -47,16 +41,6 @@ else
MOTION_CONF_OPTS += --without-pgsql
endif
-ifeq ($(BR2_PACKAGE_SDL),y)
-MOTION_DEPENDENCIES += sdl
-MOTION_CONF_OPTS += --with-sdl=$(STAGING_DIR)/usr
-# overwrite ac_cv_path_CONFIG_SDL in case sdl development is
-# installed on the host
-MOTION_CONF_ENV += ac_cv_path_CONFIG_SDL=$(STAGING_DIR)/usr/bin/sdl-config
-else
-MOTION_CONF_OPTS += --without-sdl
-endif
-
ifeq ($(BR2_PACKAGE_SQLITE),y)
MOTION_DEPENDENCIES += sqlite
MOTION_CONF_OPTS += --with-sqlite3
OpenPOWER on IntegriCloud