1
0
mirror of https://git.openwrt.org/feed/packages.git synced 2024-06-19 23:28:39 +02:00
openwrt-packages/multimedia/motion/Makefile
Jo-Philipp Wich 926b68c15d motion: fix segmentation fault under musl libc
During startup, motion calls pthread_getspecific() through motion_log()
before pthread_key_create() has been called yet. This works on glibc and
uclibc but segfaults on musl because motion is relying on undefined
behaviour here.

Move the pthread initialization before motion_startup() so that
tls_key_threadnr is initialized when motion_log() is called.

Also enforce the use of strerror_r() on musl by defining XSI_STRERROR_R
on all non-glibc systems because the supposed replacement code is broken
and crashes on musl.

References:
http://www.lavrsen.dk/foswiki/bin/view/Motion/BugReport2015x09x30x203633

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2015-10-08 02:15:28 +02:00

59 lines
1.3 KiB
Makefile

#
# Copyright (C) 2008-2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=motion
PKG_VERSION=3.4.0-20141018-$(PKG_SOURCE_VERSION)
PKG_RELEASE:=2
PKG_MAINTAINER:=Roger D <rogerdammit@gmail.com>
PKG_LICENSE:=GPLv2
PKG_LICENSE_FILES:=COPYING
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/Mr-Dave/motion.git
PKG_SOURCE_VERSION:=9479d910f2149b5558788bb86f97f26522794212
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk
define Package/motion
SECTION:=multimedia
CATEGORY:=Multimedia
DEPENDS:=+libjpeg +libpthread
TITLE:=webcam motion sensing and logging
URL:=http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome
endef
define Package/motion/conffiles
/etc/motion.conf
endef
CONFIGURE_ARGS+= \
--without-optimizecpu \
--without-ffmpeg \
--without-jpeg-mmx \
--without-sdl \
--without-mysql \
--without-pgsql \
--without-sqlite3 \
define Package/motion/install
$(INSTALL_DIR) $(1)/etc
$(CP) $(PKG_BUILD_DIR)/motion-dist.conf $(1)/etc/motion.conf
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/motion $(1)/usr/bin/
endef
$(eval $(call BuildPackage,motion))