diff --git a/acct-group/motion/metadata.xml b/acct-group/motion/metadata.xml new file mode 100644 index 0000000000000..1152c2457fc95 --- /dev/null +++ b/acct-group/motion/metadata.xml @@ -0,0 +1,12 @@ + + + + + hfern@fernhout.info + Hans Fernhout + + + proxy-maint@gentoo.org + Proxy Maintainers + + diff --git a/acct-group/motion/motion-0.ebuild b/acct-group/motion/motion-0.ebuild new file mode 100644 index 0000000000000..5963111572736 --- /dev/null +++ b/acct-group/motion/motion-0.ebuild @@ -0,0 +1,8 @@ +# Copyright 2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit acct-group + +ACCT_GROUP_ID=395 diff --git a/acct-user/motion/metadata.xml b/acct-user/motion/metadata.xml new file mode 100644 index 0000000000000..1152c2457fc95 --- /dev/null +++ b/acct-user/motion/metadata.xml @@ -0,0 +1,12 @@ + + + + + hfern@fernhout.info + Hans Fernhout + + + proxy-maint@gentoo.org + Proxy Maintainers + + diff --git a/acct-user/motion/motion-0.ebuild b/acct-user/motion/motion-0.ebuild new file mode 100644 index 0000000000000..bb4695efc8969 --- /dev/null +++ b/acct-user/motion/motion-0.ebuild @@ -0,0 +1,12 @@ +# Copyright 2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit acct-user + +DESCRIPTION="added by portage for motion, a software motion detector" +ACCT_USER_ID=395 +ACCT_USER_GROUPS=( motion video ) + +acct-user_add_deps diff --git a/media-video/motion/Manifest b/media-video/motion/Manifest index 00403820c80c0..2ea48fa4c591c 100644 --- a/media-video/motion/Manifest +++ b/media-video/motion/Manifest @@ -1 +1,2 @@ DIST motion-release-4.1.1.tar.gz 447795 BLAKE2B 8c7dfdad89f49ba8ec39689d268b4bc95c6a8bd85d4bd333f66638b2e815b3c59b2e42dd93811601b2ee7870100a0a21eaa789633056f74a5cc9f39f4f92229f SHA512 3b08d464f9243ccfc4b53b16cfc2001d1e0d206bf0295d55d8914914bc14ad0248ce5ac622cb7eb89ed32e1913a9a10add1b56497c4094ba876f7f85d6ad4143 +DIST motion-release-4.3.1.tar.gz 849633 BLAKE2B 33039d9b8b6db0698767892997be958d84a881cc56e8cdc31d8c27242c972e629d328197c92f91c1b71a957d85807877dc602f474d430384b1e27c9213ddc697 SHA512 17033dab055c4f1d9e2912a27d0a5b419d325b0781def98428a6117e38c62201b87199210071ba93d6c4dae514733b749e39cbc1befe6242f157d4583e07dcc6 diff --git a/media-video/motion/files/motion.confd-r4 b/media-video/motion/files/motion.confd-r4 new file mode 100644 index 0000000000000..8a200d14928c2 --- /dev/null +++ b/media-video/motion/files/motion.confd-r4 @@ -0,0 +1,28 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +# +# Motion OpenRC conf.d file +# All settings are optional + +# Set the user and group under which motion will be run +#MOTION_USER="motion" +#MOTION_GROUP="motion" + +#Set motion's config file: +#MOTION_CONFIGFILE="/etc/motion/motion.conf" + +#Set motion's log file. Leave unset for syslog: +#MOTION_LOGFILE="/var/log/motion/motion.log" + +#Set log type: 1-9 for COR, STR, ENC, NET, DBL, EVT, TRK, VID, ALL +#MOTION_LOGTYPE="9" + +#Set log level: 1-9 for EMG, ALR, CRT, ERR, WRN, NTC, INF, DBG, ALL +#MOTION_LOGLEVEL="6" + +#Set a default dir where motion places its output +#MOTION_DIR="/var/lib/motion" + +#Set the umask for the output files, for additonal security +#MOTION_UMASK="007" + diff --git a/media-video/motion/files/motion.initd-r4 b/media-video/motion/files/motion.initd-r4 new file mode 100644 index 0000000000000..30d5e25cb08e2 --- /dev/null +++ b/media-video/motion/files/motion.initd-r4 @@ -0,0 +1,30 @@ +#!/sbin/openrc-run +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +: ${MOTION_USER:="motion"} +: ${MOTION_GROUP:="motion"} + +[ "${MOTION_UMASK}" ] && umask="${MOTION_UMASK}" +[ "${MOTION_CONFIGFILE}" ] && command_args="-c ${MOTION_CONFIGFILE}" +[ "${MOTION_LOGFILE}" ] && command_args="${command_args} -l ${MOTION_LOGFILE}" +[ "${MOTION_LOGTYPE}" ] && command_args="${command_args} -k ${MOTION_LOGTYPE}" +[ "${MOTION_LOGLEVEL}" ] && command_args="${command_args} -d ${MOTION_LOGLEVEL}" + +command=/usr/bin/motion +command_user="${MOTION_USER}:${MOTION_GROUP}" + +start_pre() { + if [ "${MOTION_DIR}" ] ; then + mkdir -p "${MOTION_DIR}" + checkpath -d -o "${MOTION_USER}" "${MOTION_DIR}" + directory="${MOTION_DIR}" + fi + if [ "${MOTION_LOGFILE}" ] ; then + local LOGFILE=${MOTION_LOGFILE##*/} + local LOGDIR=${MOTION_LOGFILE%$LOGFILE} + mkdir -p "${LOGDIR}" + checkpath -d -o "${MOTION_USER}" "${LOGDIR}" + fi +} + diff --git a/media-video/motion/files/motion.service b/media-video/motion/files/motion.service index 559b94b6b29ae..d4755bdb48ea7 100644 --- a/media-video/motion/files/motion.service +++ b/media-video/motion/files/motion.service @@ -8,13 +8,13 @@ Type=simple ExecStart=/usr/bin/motion -n -c /etc/motion/motion.conf StandardError=null -User=motion +#User=motion Group=video #RuntimeDirectory=motion #RuntimeDirectoryMode=0750 -WorkingDirectory=/var/lib/motion +#WorkingDirectory=/var/lib/motion [Install] WantedBy=multi-user.target diff --git a/media-video/motion/files/motion.service-r4 b/media-video/motion/files/motion.service-r4 new file mode 100644 index 0000000000000..1564fb2699c40 --- /dev/null +++ b/media-video/motion/files/motion.service-r4 @@ -0,0 +1,26 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +# +# Motion OpenRC systemd service file + + +[Unit] +Description=Motion detection daemon +After=local-fs.target network.target +Documentation=man:motion(1) + +[Service] +Type=simple +ExecStart=/usr/bin/motion -n -c /etc/motion/motion.conf +StandardError=null + +User=motion +Group=motion + +UMask=007 +WorkingDirectory=-/var/lib/motion + + +[Install] +WantedBy=multi-user.target + diff --git a/media-video/motion/metadata.xml b/media-video/motion/metadata.xml index b1389a2954b4b..301a7616abbe4 100644 --- a/media-video/motion/metadata.xml +++ b/media-video/motion/metadata.xml @@ -1,11 +1,21 @@ + + hfern@fernhout.info + Hans Fernhout + + + proxy-maint@gentoo.org + Proxy Maintainers + media-video@gentoo.org + Add mariadb database support Enables Multi-Media Abstraction Layer (MMAL) decoding support: Available e.g. on the Raspberry Pi. + Add experimental suppport for OpenRC's supervise-daemon process supervision Motion-Project/motion diff --git a/media-video/motion/motion-4.3.1.ebuild b/media-video/motion/motion-4.3.1.ebuild new file mode 100644 index 0000000000000..41e650e61fd36 --- /dev/null +++ b/media-video/motion/motion-4.3.1.ebuild @@ -0,0 +1,104 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools readme.gentoo-r1 systemd + +DESCRIPTION="A software motion detector" +HOMEPAGE="https://motion-project.github.io" +SRC_URI="https://github.com/Motion-Project/${PN}/archive/release-${PV}.tar.gz -> ${PN}-release-${PV}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86" +IUSE="ffmpeg mariadb mmal mysql postgres sqlite supervise-daemon v4l webp" + +RDEPEND=" + acct-group/motion + acct-user/motion + virtual/jpeg:= + ffmpeg? ( media-video/ffmpeg:0= ) + mariadb? ( dev-db/mariadb-connector-c ) + mmal? ( media-libs/raspberrypi-userland ) + mysql? ( dev-db/mysql-connector-c ) + postgres? ( dev-db/postgresql:= ) + sqlite? ( dev-db/sqlite:3 ) + webp? ( media-libs/libwebp:= ) +" +DEPEND="${RDEPEND} + net-libs/libmicrohttpd + v4l? ( + media-libs/libv4l + virtual/os-headers + ) +" + +DISABLE_AUTOFORMATTING="yes" +DOC_CONTENTS=" +You need to setup a configuraton file (/etc/motion/motion.conf) before +running motion for the first time. + +If motion is built with the mysql or mariadb use flags then please make +sure to configure a matching database_type in the config file. + +Motion runs by default under user motion and group motion: +- change this if needed in /etc/conf.d/motion +- or add users who need access to the output files to the motion group + +To install motion as a service, use: +- rc-update add motion default # with OpenRC +- systemctl enable motion.service # with systemd +" + +S="${WORKDIR}"/${PN}-release-${PV} + +src_prepare() { + default + eautoreconf +} + +src_configure() { + econf \ + $(use_with ffmpeg) \ + $(use_with mariadb) \ + $(use_with mmal) \ + $(use_with mysql) \ + $(use_with postgres pgsql) \ + $(use_with sqlite sqlite3) \ + $(use_with v4l v4l2) \ + $(use_with webp) \ + --without-optimizecpu +} + +src_install() { + emake \ + DESTDIR="${D}" \ + docdir=/usr/share/doc/${PF} \ + examplesdir=/usr/share/doc/${PF}/examples \ + install + + # build INITDAD string cwto be added to initd based on use flags, eg + # "depend() { + # use mysql + # } + # + # supervisor=supervise-daemon" + local INITDADJ="" + ( use mysql || use mariadb ) && INITDADJ=" use mysql\n" + use postgres && INITDADJ="${INITDADJ} use postgresql\n" + [ "${#INITDADJ}" -gt 0 ] && INITDADJ="depend() {\n${INITDADJ}}\n" + if use supervise-daemon ; then + INITDADJ="${INITDADJ}\nsupervisor=supervise-daemon\n" + else + INITDADJ="${INITDADJ}\npidfile=/run/\${RC_SVCNAME}.pid\ncommand_background=true\n" + fi + cp "${FILESDIR}/${PN}.initd-r4" "${T}/initd" || die + echo -e ${INITDADJ} >> "${T}/initd" || die + + newinitd "${T}/initd" ${PN} + newconfd "${FILESDIR}/${PN}.confd-r4" ${PN} + systemd_newunit "${FILESDIR}/${PN}.service-r4" "${PN}.service" + readme.gentoo_create_doc + readme.gentoo_print_elog +}