diff options
author | Hans Fernhout <hfern@fernhout.info> | 2020-06-04 10:09:24 +0300 |
---|---|---|
committer | Joonas Niilola <juippis@gentoo.org> | 2020-06-04 10:14:12 +0300 |
commit | 58c1002e91e59ca9edba1a4781f3024b0dbdf99e (patch) | |
tree | e78f9bfa6d503ce1676adbecc943948a36689a21 /media-video/motion | |
parent | acct-user/motion: new GLEP-81 package (diff) | |
download | gentoo-58c1002e91e59ca9edba1a4781f3024b0dbdf99e.tar.gz gentoo-58c1002e91e59ca9edba1a4781f3024b0dbdf99e.tar.bz2 gentoo-58c1002e91e59ca9edba1a4781f3024b0dbdf99e.zip |
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@fernhout.info>
Signed-off-by: Joonas Niilola <juippis@gentoo.org>
Diffstat (limited to 'media-video/motion')
-rw-r--r-- | media-video/motion/Manifest | 1 | ||||
-rw-r--r-- | media-video/motion/files/motion.confd-r4 | 28 | ||||
-rw-r--r-- | media-video/motion/files/motion.initd-r4 | 30 | ||||
-rw-r--r-- | media-video/motion/files/motion.service | 4 | ||||
-rw-r--r-- | media-video/motion/files/motion.service-r4 | 26 | ||||
-rw-r--r-- | media-video/motion/metadata.xml | 10 | ||||
-rw-r--r-- | media-video/motion/motion-4.3.1.ebuild | 104 |
7 files changed, 201 insertions, 2 deletions
diff --git a/media-video/motion/Manifest b/media-video/motion/Manifest index 00403820c80c..2ea48fa4c591 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 000000000000..8a200d14928c --- /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 000000000000..30d5e25cb08e --- /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 559b94b6b29a..d4755bdb48ea 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 000000000000..1564fb2699c4 --- /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 b1389a2954b4..301a7616abbe 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>hfern@fernhout.info</email> + <name>Hans Fernhout</name> + </maintainer> + <maintainer type="project"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> <maintainer type="project"> <email>media-video@gentoo.org</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 000000000000..41e650e61fd3 --- /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 +} |