media-video/mjpg-streamer: Initial ebuild. Fixes bug #260969.
authorAmadeusz Żołnowski <aidecoe@gentoo.org>
Thu, 17 Nov 2011 20:00:39 +0000 (20:00 +0000)
committerAmadeusz Żołnowski <aidecoe@gentoo.org>
Thu, 17 Nov 2011 20:00:39 +0000 (20:00 +0000)
Proxy commit on behalf of Andrzej Pauli <andrzej.pauli@gmail.com>.

Package-Manager: portage-2.1.10.34/cvs/Linux x86_64

media-video/mjpg-streamer/ChangeLog [new file with mode: 0644]
media-video/mjpg-streamer/Manifest [new file with mode: 0644]
media-video/mjpg-streamer/files/0_pre20110522-make-var-instead-of-cmd.patch [new file with mode: 0644]
media-video/mjpg-streamer/files/mjpg-streamer.confd [new file with mode: 0644]
media-video/mjpg-streamer/files/mjpg-streamer.initd [new file with mode: 0644]
media-video/mjpg-streamer/metadata.xml [new file with mode: 0644]
media-video/mjpg-streamer/mjpg-streamer-0_pre20110522.ebuild [new file with mode: 0644]

diff --git a/media-video/mjpg-streamer/ChangeLog b/media-video/mjpg-streamer/ChangeLog
new file mode 100644 (file)
index 0000000..595a319
--- /dev/null
@@ -0,0 +1,13 @@
+# ChangeLog for media-video/mjpg-streamer
+# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/media-video/mjpg-streamer/ChangeLog,v 1.1 2011/11/17 20:00:39 aidecoe Exp $
+
+*mjpg-streamer-0_pre20110522 (17 Nov 2011)
+
+  17 Nov 2011; Amadeusz Żołnowski <aidecoe@gentoo.org>
+  +files/0_pre20110522-make-var-instead-of-cmd.patch,
+  +mjpg-streamer-0_pre20110522.ebuild, +files/mjpg-streamer.confd,
+  +files/mjpg-streamer.initd, +metadata.xml:
+  Proxy commit on behalf of Andrzej Pauli <andrzej.pauli@gmail.com>. Initial
+  ebuild. Fixes bug #260969.
+
diff --git a/media-video/mjpg-streamer/Manifest b/media-video/mjpg-streamer/Manifest
new file mode 100644 (file)
index 0000000..a2a93be
--- /dev/null
@@ -0,0 +1,21 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+AUX 0_pre20110522-make-var-instead-of-cmd.patch 3756 RMD160 433b165268fdd4a9493d1e42e4c23b08f85aac35 SHA1 6631aca53d6b90c5defb48a116ff7a7fae3855bb SHA256 ef7f66e87c6b3b145ad9e5c0a0023b3d4331d0507aca6e69df95a380a421d2eb
+AUX mjpg-streamer.confd 347 RMD160 50b97048e9c5e27e336d4925f179f0cc0b2a974c SHA1 e962d439bfebdff487c7d980088481f431744304 SHA256 37019a36c29ad350ac3348c1665c631d0b4ab5efacc4583662fcbf7d4b920db1
+AUX mjpg-streamer.initd 1369 RMD160 210ef19f88b9b2272c4b529dc048d6c6130d63f7 SHA1 3f6f84458b909a8652a1a14274c8c5a8eab6b6f1 SHA256 460d688cb1a25e5fa9d85fe1453a2ad0b4ad11c827125465a057d995415a171a
+DIST mjpg-streamer-0_pre20110522.tar.bz2 473378 RMD160 78e1d3f526f2037e7ac543e3f2511bde86b509f6 SHA1 7e2b5d2b66ae9afcb8fcd85c6e3c84743bc13639 SHA256 6a3aedb57f4779a53e80a7ac617924ebadd52a2098e088ef4b91dc91ba5a24d6
+EBUILD mjpg-streamer-0_pre20110522.ebuild 1820 RMD160 2f9f5f9b531c4fe49ae7419f2ad36a37b4067b73 SHA1 3024a3774d2917122b3cd656b8066518cbf1daec SHA256 ad3b8940536cbbdd8f1e31b908ad8a852a26aa636eb643ddf3f9cef3bd01f5a6
+MISC ChangeLog 598 RMD160 757d562a1cb3bb43e23329345ec5f8a1c267a280 SHA1 a8fe1dba3a06b5a071addcbf55c9e99749ddfa6b SHA256 35f6b016c1c43712a74775bd8f93dfbd606c1949817811306073ed9c2a6725ba
+MISC metadata.xml 1823 RMD160 4dcdc175ee80e22547ef024d3aa1853f38dd2819 SHA1 1c9d4b8f56c4ff9926889b0999236d2f0a2a2140 SHA256 0f03a0a6a77e3f643e95c5c578cc031b91825088f2de408d8e10d78ef43823c7
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.18 (GNU/Linux)
+
+iQEcBAEBAgAGBQJOxWfsAAoJEPATRTHh2/q1yY8IAKIqRXfT2J84IRMTMxCTF2bM
+5BE85CCN5O5s//nHZNzypQ/X8NU38SuRuzz69TdN5yR0BrY4ouhgxqGZQbOPQB4C
+wB/GcTruRPEYO9reoYIMZvGt34OQEdVz+/quEau7swFgfGDIvxKTvTIMnba2FnFA
+9e05Dwf4LgOSF9SWTovik53pxEAdv8Wwr7ibk8mRnP1ELAYpw1rrk5jqH9g4fPSr
+0HwgusTJ2gWEdFq5VrthHm77+3UjHsYZkzVXDCsKjxHR3mFnmE3yVnQypJDRS02s
+q18KTbfhz0V8aBFh+PSoX56MGr4IlQVc8aSIj1YvpC3X6tY99H1rKGrp2NdlLdk=
+=DAA+
+-----END PGP SIGNATURE-----
diff --git a/media-video/mjpg-streamer/files/0_pre20110522-make-var-instead-of-cmd.patch b/media-video/mjpg-streamer/files/0_pre20110522-make-var-instead-of-cmd.patch
new file mode 100644 (file)
index 0000000..98d89c5
--- /dev/null
@@ -0,0 +1,118 @@
+Index: Makefile
+===================================================================
+--- Makefile   (revision 150)
++++ Makefile   (working copy)
+@@ -63,64 +63,64 @@
+       chmod 755 $(APP_BINARY)
+ 
+ output_autofocus.so: mjpg_streamer.h utils.h
+-      make -C plugins/output_autofocus all
++      $(MAKE) -C plugins/output_autofocus all
+       cp plugins/output_autofocus/output_autofocus.so .
+ 
+ input_testpicture.so: mjpg_streamer.h utils.h
+-      make -C plugins/input_testpicture all
++      $(MAKE) -C plugins/input_testpicture all
+       cp plugins/input_testpicture/input_testpicture.so .
+ 
+ 
+ ifeq ($(USE_LIBV4L2),true)
+ input_uvc.so: mjpg_streamer.h utils.h
+-      make -C plugins/input_uvc USE_LIBV4L2=true all
++      $(MAKE) -C plugins/input_uvc USE_LIBV4L2=true all
+       cp plugins/input_uvc/input_uvc.so .
+ else
+ input_uvc.so: mjpg_streamer.h utils.h
+-      make -C plugins/input_uvc all
++      $(MAKE) -C plugins/input_uvc all
+       cp plugins/input_uvc/input_uvc.so .
+ endif
+ 
+ input_control.so: mjpg_streamer.h utils.h
+-      make -C plugins/input_control all
++      $(MAKE) -C plugins/input_control all
+       cp plugins/input_control/input_control.so .
+ 
+ output_file.so: mjpg_streamer.h utils.h
+-      make -C plugins/output_file all
++      $(MAKE) -C plugins/output_file all
+       cp plugins/output_file/output_file.so .
+ 
+ ifeq ($(WXP_COMPAT),true)
+ output_http.so: mjpg_streamer.h utils.h
+-      make -C plugins/output_http -DWXP_COMPAT all
++      $(MAKE) -C plugins/output_http -DWXP_COMPAT all
+       cp plugins/output_http/output_http.so .
+ else
+ output_http.so: mjpg_streamer.h utils.h
+-      make -C plugins/output_http all
++      $(MAKE) -C plugins/output_http all
+       cp plugins/output_http/output_http.so .
+ endif
+ 
+ output_udp.so: mjpg_streamer.h utils.h
+-      make -C plugins/output_udp all
++      $(MAKE) -C plugins/output_udp all
+       cp plugins/output_udp/output_udp.so .
+ 
+ input_gspcav1.so: mjpg_streamer.h utils.h
+-      make -C plugins/input_gspcav1 all
++      $(MAKE) -C plugins/input_gspcav1 all
+       cp plugins/input_gspcav1/input_gspcav1.so .
+ 
+ input_file.so: mjpg_streamer.h utils.h
+-      make -C plugins/input_file all
++      $(MAKE) -C plugins/input_file all
+       cp plugins/input_file/input_file.so .
+ 
+ output_rtsp.so: mjpg_streamer.h utils.h
+-      make -C plugins/output_rtsp all
++      $(MAKE) -C plugins/output_rtsp all
+       cp plugins/output_rtsp/output_rtsp.so .
+       
+ output_ptp2.so: mjpg_streamer.h utils.h
+-      make -C plugins/input_ptp2 all
++      $(MAKE) -C plugins/input_ptp2 all
+       cp plugins/input_ptp2/input_ptp2.so .   
+ 
+ #input_http.so: mjpg_streamer.h utils.h
+-#     make -C plugins/input_http all
++#     $(MAKE) -C plugins/input_http all
+ #     cp plugins/input_http/input_http.so .
+ 
+ # The viewer plugin requires the SDL library for compilation
+@@ -129,22 +129,22 @@
+ # execute the following command:
+ # make output_viewer.so
+ output_viewer.so: mjpg_streamer.h utils.h
+-      make -C plugins/output_viewer all
++      $(MAKE) -C plugins/output_viewer all
+       cp plugins/output_viewer/output_viewer.so .
+ 
+ # cleanup
+ clean:
+-      make -C plugins/input_uvc $@
+-      make -C plugins/input_testpicture $@
+-      make -C plugins/output_file $@
+-      make -C plugins/output_http $@
+-      make -C plugins/output_udp $@
+-      make -C plugins/output_autofocus $@
+-      make -C plugins/input_gspcav1 $@
+-      make -C plugins/output_viewer $@
+-      make -C plugins/input_control $@
+-      make -C plugins/output_rtsp $@
+-#     make -C plugins/input_http $@
++      $(MAKE) -C plugins/input_uvc $@
++      $(MAKE) -C plugins/input_testpicture $@
++      $(MAKE) -C plugins/output_file $@
++      $(MAKE) -C plugins/output_http $@
++      $(MAKE) -C plugins/output_udp $@
++      $(MAKE) -C plugins/output_autofocus $@
++      $(MAKE) -C plugins/input_gspcav1 $@
++      $(MAKE) -C plugins/output_viewer $@
++      $(MAKE) -C plugins/input_control $@
++      $(MAKE) -C plugins/output_rtsp $@
++#     $(MAKE) -C plugins/input_http $@
+       rm -f *.a *.o $(APP_BINARY) core *~ *.so *.lo
+ 
+ # useful to make a backup "make tgz"
diff --git a/media-video/mjpg-streamer/files/mjpg-streamer.confd b/media-video/mjpg-streamer/files/mjpg-streamer.confd
new file mode 100644 (file)
index 0000000..07a81b0
--- /dev/null
@@ -0,0 +1,21 @@
+# The input plugins and options:
+# uvc
+# testpicture
+# file
+#ex. INPUT_PLUGIN="uvc"
+INPUT_PLUGIN=""
+INPUT_PLUGIN_OPTS=""
+
+# The output plugins and options:
+# autofocus
+# file
+# http
+# udp
+# rtsp
+#ex. OUTPUT_PLUGIN="http"
+OUTPUT_PLUGIN=""
+OUTPUT_PLUGIN_OPTS=""
+
+# Deamon runing as user/group
+MJPG_STREAMER_USER="nobody"
+MJPG_STREAMER_GROUP="video"
diff --git a/media-video/mjpg-streamer/files/mjpg-streamer.initd b/media-video/mjpg-streamer/files/mjpg-streamer.initd
new file mode 100644 (file)
index 0000000..776c203
--- /dev/null
@@ -0,0 +1,48 @@
+#!/sbin/runscript
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-video/mjpg-streamer/files/mjpg-streamer.initd,v 1.1 2011/11/17 20:00:39 aidecoe Exp $
+
+MJPG_STREAMER_PIDFILE="${MJPG_STREAMER_PIDFILE:-/var/run/${SVCNAME}.pid}"
+MY_NAME=${SVCNAME//-/_}
+
+depend() {
+       use logger
+}
+
+checkconfig() {
+       local vars
+
+       [[ ${INPUT_PLUGIN} ]] || vars+=\ INPUT_PLUGIN
+       [[ ${OUTPUT_PLUGIN} ]] || vars+=\ OUTPUT_PLUGIN
+       [[ ${MJPG_STREAMER_USER} ]] || vars+=\ MJPG_STREAMER_USER
+       [[ ${MJPG_STREAMER_GROUP} ]] || vars+=\ MJPG_STREAMER_GROUP
+       vars="${vars# }"
+
+       if [[ ${vars} ]]; then
+               eerror "Required variables in /etc/conf.d/${SVCNAME} are not set:"
+               eerror "  ${vars// /, }"
+               return 1
+       fi
+
+       return 0
+}
+
+start() {
+       checkconfig || return $?
+       ebegin "Starting ${SVCNAME}"
+       start-stop-daemon --start --exec /usr/bin/${MY_NAME} \
+               --user "${MJPG_STREAMER_USER}" \
+               --group "${MJPG_STREAMER_GROUP}" -w 100 -b -m \
+               --pidfile "${MJPG_STREAMER_PIDFILE}" \
+               -- -i "/usr/lib/input_${INPUT_PLUGIN}.so ${INPUT_PLUGIN_OPTS}" \
+               -o "/usr/lib/output_${OUTPUT_PLUGIN}.so ${OUTPUT_PLUGIN_OPTS}"
+       eend $? "Check syslog to see why startup failed."
+}
+
+stop() {
+       ebegin "Stopping ${SVCNAME}"
+       start-stop-daemon --stop --exec /usr/bin/${MY_NAME} \
+               --pidfile "${MJPG_STREAMER_PIDFILE}"
+       eend $?
+}
diff --git a/media-video/mjpg-streamer/metadata.xml b/media-video/mjpg-streamer/metadata.xml
new file mode 100644 (file)
index 0000000..1df45af
--- /dev/null
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+       <maintainer>
+               <email>andrzej.pauli@gmail.com</email>
+               <name>Andrzej Pauli</name>
+               <description>Maintainer.  Assign bugs to him.</description>
+       </maintainer>
+       <maintainer>
+               <email>aidecoe@gentoo.org</email>
+               <name>Amadeusz Żołnowski</name>
+               <description>Proxy maintainer.  CC him on bugs.</description>
+       </maintainer>
+       <longdescription lang="en">
+               MJPG-streamer takes JPGs from Linux-UVC compatible webcams, filesystem or
+               other input plugins and streams them as M-JPEG via HTTP to webbrowsers,
+               VLC and other software.  It is the successor of uvc-streamer, a Linux-UVC
+               streaming application with Pan/Tilt
+       </longdescription>
+       <use>
+               <flag name='input_testpicture'>Plugin for sending compiled in, test
+                       pictures</flag>
+               <flag name='input_control'>Plugin giving ability to control camera
+                       movement (only specific cameras)</flag>
+               <flag name='input_file'>Plugin that watches given directory and send
+                       it's content</flag>
+               <flag name='input_uvc'>Plugin that sends video stream from UVC
+                       compatible camera</flag>
+               <flag name='output_file'>Plugin that saves received content under given
+                       location</flag>
+               <flag name='output_udp'>Plugin receiving content over UDP and storing to
+                       a directory</flag>
+               <flag name='output_http'>Small HTTP server plugin which sends WWW
+                       directory content and streams image content</flag>
+               <flag name='output_autofocus'>Auto focusing plugin</flag>
+               <flag name='output_rtsp'>Plugin which provides a mechanism to take
+                       snapshots with a trigger from a UDP packet</flag>
+               <flag name='www'>Installs WWW content</flag>
+               <flag name='v4l'>Uses <pkg>media-libs/libv4l</pkg> function mapping for
+                       input_uvc plugin</flag>
+       </use>
+</pkgmetadata>
diff --git a/media-video/mjpg-streamer/mjpg-streamer-0_pre20110522.ebuild b/media-video/mjpg-streamer/mjpg-streamer-0_pre20110522.ebuild
new file mode 100644 (file)
index 0000000..157c7fd
--- /dev/null
@@ -0,0 +1,72 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-video/mjpg-streamer/mjpg-streamer-0_pre20110522.ebuild,v 1.1 2011/11/17 20:00:39 aidecoe Exp $
+
+EAPI=4
+
+inherit eutils
+
+DESCRIPTION="MJPG-streamer takes JPGs from Linux-UVC compatible webcams"
+HOMEPAGE="http://sourceforge.net/projects/mjpg-streamer"
+SRC_URI="http://dev.gentoo.org/~aidecoe/distfiles/${CATEGORY}/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~x86 ~amd64"
+
+INPUT_PLUGINS="input_testpicture input_control input_file input_uvc "
+OUTPUT_PLUGINS="output_file output_udp output_http output_autofocus output_rtsp"
+IUSE_PLUGINS="${INPUT_PLUGINS} ${OUTPUT_PLUGINS}"
+IUSE="${IUSE_PLUGINS} www v4l"
+REQUIRED_USE="|| ( ${INPUT_PLUGINS} )
+       || ( ${OUTPUT_PLUGINS} )
+       v4l? ( input_uvc )"
+
+RDEPEND="media-libs/jpeg
+       v4l? ( input_uvc? ( media-libs/libv4l ) )"
+DEPEND="${RDEPEND}
+       input_testpicture? ( media-gfx/imagemagick )"
+
+src_prepare() {
+       epatch "${FILESDIR}/${PV}-make-var-instead-of-cmd.patch"
+
+       local flag switch
+
+       for flag in ${IUSE_PLUGINS}; do
+               use ${flag} && switch='' || switch='#'
+               sed -i \
+                       -e "s|^#*PLUGINS +\?= ${flag}.so|${switch}PLUGINS += ${flag}.so|" \
+                       Makefile
+       done
+}
+
+src_compile() {
+       local v4l=$(use v4l && use input_uvc && echo 'USE_LIBV4L2=true')
+       emake ${v4l}
+}
+
+src_install() {
+       into /usr
+       dobin ${PN//-/_}
+       dolib.so *.so
+
+       if use www ; then
+               insinto /usr/share/${PN}
+               doins -r www
+       fi
+
+       dodoc README TODO
+
+       newinitd "${FILESDIR}"/${PN}.initd ${PN}
+       newconfd "${FILESDIR}"/${PN}.confd ${PN}
+}
+
+pkg_postinst() {
+       elog "Remember to set an input and output plugin for mjpg-streamer."
+
+       if use www ; then
+               echo
+               elog "An example webinterface has been installed into"
+               elog "/usr/share/mjpg-streamer/www for your usage."
+       fi
+}