commit:     58c1002e91e59ca9edba1a4781f3024b0dbdf99e
Author:     Hans Fernhout <hfern <AT> fernhout <DOT> info>
AuthorDate: Thu Jun  4 07:09:24 2020 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Thu Jun  4 07:14:12 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=58c1002e

media-video/motion: version bump to 4.3.1

Summary of changes:
- support new version 4.3.1
- EAPI6 to EAPI7
- GLEP81 support: user and group management via dedicated packages
- untangled support for mariadb and mysql
- remove libav
- confd support for commandline options, umask and work dir
- initd checkpre function to check existence of work dir and log dir
- support for OpenRC's supervise-daemon via a local use flag
- added myself as proxy-maintainer

Closes: https://bugs.gentoo.org/665930
Closes: https://bugs.gentoo.org/673410
Closes: https://bugs.gentoo.org/717312
Signed-off-by: Johannes Willem Fernhout <hfern <AT> fernhout.info>
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 media-video/motion/Manifest                        |   1 +
 media-video/motion/files/motion.confd-r4           |  28 ++++++
 media-video/motion/files/motion.initd-r4           |  30 ++++++
 media-video/motion/files/motion.service            |   4 +-
 .../files/{motion.service => motion.service-r4}    |  14 ++-
 media-video/motion/metadata.xml                    |  10 ++
 media-video/motion/motion-4.3.1.ebuild             | 104 +++++++++++++++++++++
 7 files changed, 185 insertions(+), 6 deletions(-)

diff --git a/media-video/motion/Manifest b/media-video/motion/Manifest
index 00403820c80..2ea48fa4c59 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 00000000000..8a200d14928
--- /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 00000000000..30d5e25cb08
--- /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 559b94b6b29..d4755bdb48e 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 
b/media-video/motion/files/motion.service-r4
similarity index 56%
copy from media-video/motion/files/motion.service
copy to media-video/motion/files/motion.service-r4
index 559b94b6b29..1564fb2699c 100644
--- a/media-video/motion/files/motion.service
+++ b/media-video/motion/files/motion.service-r4
@@ -1,3 +1,9 @@
+# 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
@@ -9,12 +15,12 @@ ExecStart=/usr/bin/motion -n -c /etc/motion/motion.conf
 StandardError=null
 
 User=motion
-Group=video
+Group=motion
 
-#RuntimeDirectory=motion
-#RuntimeDirectoryMode=0750
+UMask=007
+WorkingDirectory=-/var/lib/motion
 
-WorkingDirectory=/var/lib/motion
 
 [Install]
 WantedBy=multi-user.target
+

diff --git a/media-video/motion/metadata.xml b/media-video/motion/metadata.xml
index b1389a2954b..301a7616abb 100644
--- a/media-video/motion/metadata.xml
+++ b/media-video/motion/metadata.xml
@@ -1,11 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
 <pkgmetadata>
+       <maintainer type="person">
+               <email>[email protected]</email>
+               <name>Hans Fernhout</name>
+       </maintainer>
+       <maintainer type="project">
+               <email>[email protected]</email>
+               <name>Proxy Maintainers</name>
+       </maintainer>
        <maintainer type="project">
                <email>[email protected]</email>
        </maintainer>
        <use>
+               <flag name="mariadb">Add mariadb database support</flag>
                <flag name="mmal">Enables Multi-Media Abstraction Layer (MMAL) 
decoding support: Available e.g. on the Raspberry Pi.</flag>
+               <flag name="supervise-daemon">Add experimental suppport for 
OpenRC's supervise-daemon process supervision</flag>
        </use>
        <upstream>
                <remote-id type="github">Motion-Project/motion</remote-id>

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 00000000000..41e650e61fd
--- /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
+}

Reply via email to