commit:     c5e77d623333c44dd5ef82715a11a22ade63ad51
Author:     Andrew Ammerlaan <andrewammerlaan <AT> riseup <DOT> net>
AuthorDate: Wed Jul 29 11:21:50 2020 +0000
Commit:     Andrew Ammerlaan <andrewammerlaan <AT> riseup <DOT> net>
CommitDate: Wed Jul 29 11:21:50 2020 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=c5e77d62

media-tv/droidcam: many fixes to the ebuild

- added missing deps
- bumped to a offical release version
        (jeej there are now releases)
- improved makefile patch
- added gtk use flag, it is now possible to
        only install the cli part of the program
- expanded config check, package now has audio support

Many thanks to @henrikp
See also: https://github.com/gentoo/gentoo/pull/16736

Package-Manager: Portage-3.0.1, Repoman-2.3.23
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> riseup.net>

 media-tv/droidcam/Manifest                         |   2 +-
 media-tv/droidcam/droidcam-1.4.ebuild              | 126 +++++++++++++++++++++
 .../droidcam/droidcam-6.7.7_pre20200506.ebuild     |  74 ------------
 media-tv/droidcam/files/README.gentoo              |   6 +
 .../droidcam/files/droidcam-libjpeg-location.patch |  13 ---
 .../droidcam/files/droidcam-makefile-fixes.patch   |  44 +++++++
 6 files changed, 177 insertions(+), 88 deletions(-)

diff --git a/media-tv/droidcam/Manifest b/media-tv/droidcam/Manifest
index affc279..13a8d36 100644
--- a/media-tv/droidcam/Manifest
+++ b/media-tv/droidcam/Manifest
@@ -1 +1 @@
-DIST droidcam-6.7.7_pre20200506.tar.gz 54514 BLAKE2B 
1a68736bf70b11f216eea9893bc858ea6b859c2d0b6a89d9e5e5c9d7a9dc1a7ed97d6e1cea96ae3c8683d08effa861c59b9576dcf804bbae7a25c368b3fee50b
 SHA512 
e9864cdd311e91fd417ce5d33ec15ce76dd9b4f3fa50eef7dadddee8db2f788ad992dd869b1d27e41df02df1e9a08fec3544e539378808d3fa862ffdecea11a7
+DIST droidcam-1.4.tar.gz 84350 BLAKE2B 
3d627f94aa9d04b3ce9785005b5a3d06895c74254001033c7d881bdc2359e3d34db5668e0df59a9f293014f7cd78e6f4aa07f25cd8a8ed3f54c1658a9406e7d8
 SHA512 
60ca2d15514a03a71e04e0f5e1382a5af4e7244329d4113e8af1dd0adb8a448febc60adf94bbcad8db8de0e0ffd906de1f2427488dc9e27ebe7739c7331ac99d

diff --git a/media-tv/droidcam/droidcam-1.4.ebuild 
b/media-tv/droidcam/droidcam-1.4.ebuild
new file mode 100644
index 0000000..9048b4b
--- /dev/null
+++ b/media-tv/droidcam/droidcam-1.4.ebuild
@@ -0,0 +1,126 @@
+# Copyright 2019-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit desktop eutils linux-mod readme.gentoo-r1 xdg
+
+DESCRIPTION="Use android phone as webcam, using a v4l device driver and app"
+HOMEPAGE="https://www.dev47apps.com/droidcam/linuxx/
+       https://github.com/aramg/droidcam";
+SRC_URI="https://github.com/aramg/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+KEYWORDS="~amd64"
+LICENSE="GPL-2"
+SLOT="0"
+
+IUSE="gtk"
+
+# Requires connection to android phone
+RESTRICT="test"
+
+DEPEND="
+       gtk? (
+               dev-cpp/gtkmm:3.0
+               media-video/ffmpeg
+       )
+       =app-pda/libusbmuxd-1*
+       media-libs/alsa-lib
+"
+
+BDEPEND="
+       media-libs/libjpeg-turbo
+       >=media-libs/speex-1.2.0-r1
+       virtual/pkgconfig
+"
+
+S="${WORKDIR}/${P}/linux"
+
+PATCHES="${FILESDIR}/${PN}-makefile-fixes.patch"
+
+DOCS=( README.md README-DKMS.md )
+DISABLE_AUTOFORMATTING="true"
+DOC_CONTENTS="
+               The default resolution for v4l2loopback-dc[1] is 640x480. You 
can override the
+               value by copying droidcam.conf.default to 
/etc/modprobe.d/droidcam.conf
+               and modifying 'width' and 'height'.
+               [1] https://github.com/aramg/droidcam/issues/56
+"
+
+BUILD_TARGETS="all"
+MODULE_NAMES="v4l2loopback-dc(video:${S}/v4l2loopback:${S}/v4l2loopback)"
+CONFIG_CHECK="VIDEO_DEV ~SND_ALOOP MEDIA_SUPPORT MEDIA_CAMERA_SUPPORT"
+ERROR_SND_ALOOP="CONFIG_SND_ALOOP: missing, required for audio support"
+MODULESD_V4L2LOOPBACK_DC_ENABLED="yes"
+
+src_prepare() {
+       default
+       if ! use gtk ; then
+               sed -i -e '/cflags gtk+/d' Makefile
+       fi
+       linux-mod_pkg_setup
+}
+
+src_configure() {
+       set_arch_to_kernel
+       default
+}
+
+src_compile() {
+       if use gtk ; then
+               emake droidcam
+       fi
+       emake droidcam-cli
+       KERNELRELEASE="${KV_FULL}" linux-mod_src_compile
+}
+
+src_test() {
+       pushd "v4l2loopback"
+       default
+       ./test || die
+       popd
+}
+
+src_install() {
+       if use gtk ; then
+               dobin droidcam
+               newicon -s 32 icon.png droidcam.png
+               newicon -s 48 icon2.png droidcam.png
+               make_desktop_entry "${PN}" "DroidCam Client" "${PN}" AudioVideo
+       fi
+       dobin "${PN}-cli"
+
+       readme.gentoo_create_doc
+
+       # The cli and gui do not auto load the module if unloaded (why not tho?)
+       # so we just put it in modules-load.d to make sure it always works
+       insinto /usr/lib/modules-load.d/
+       doins "${FILESDIR}/v4l2loopback-dc.conf"
+
+       einstalldocs
+       linux-mod_src_install
+}
+
+pkg_postinst() {
+       linux-mod_pkg_postinst
+
+       if use gtk ; then
+               xdg_pkg_postinst
+       fi
+
+       elog ""
+       elog "To use this package, you'll need to download the android app as 
well:"
+       elog "Free version: 
https://play.google.com/store/apps/details?id=com.dev47apps.droidcam";
+       elog "Paid version: 
https://play.google.com/store/apps/details?id=com.dev47apps.droidcamx";
+
+       elog ""
+       optfeature "to connection with USB via ADB instead of over wifi" 
dev-util/android-tools
+}
+
+pkg_postrm() {
+       if use gtk ; then
+               xdg_pkg_postrm
+       fi
+
+       linux-mod_pkg_postrm
+}

diff --git a/media-tv/droidcam/droidcam-6.7.7_pre20200506.ebuild 
b/media-tv/droidcam/droidcam-6.7.7_pre20200506.ebuild
deleted file mode 100644
index 580c12f..0000000
--- a/media-tv/droidcam/droidcam-6.7.7_pre20200506.ebuild
+++ /dev/null
@@ -1,74 +0,0 @@
-# Copyright 2019-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-COMMIT="98cbf07def9604f92fd74ea2964d483347388909"
-
-inherit desktop linux-mod xdg
-
-DESCRIPTION="Use android phone as webcam, using a v4l device driver and app"
-HOMEPAGE="https://www.dev47apps.com/droidcam/linuxx/
-       https://github.com/aramg/droidcam";
-SRC_URI="https://github.com/aramg/${PN}/archive/${COMMIT}.tar.gz -> 
${P}.tar.gz"
-
-KEYWORDS="~amd64"
-LICENSE="droidcam"
-SLOT="0"
-
-# Requires connection to android phone
-RESTRICT="test"
-
-BDEPEND="media-libs/libjpeg-turbo"
-
-RDEPEND="x11-libs/gtk+:2"
-
-S="${WORKDIR}/${PN}-${COMMIT}/linux"
-
-PATCHES="${FILESDIR}/${PN}-libjpeg-location.patch"
-
-CONFIG_CHECK="VIDEO_DEV"
-MODULE_NAMES="v4l2loopback-dc(video:${S}/v4l2loopback:${S}/v4l2loopback)"
-MODULESD_V4L2LOOPBACK_DC_ENABLED="yes"
-BUILD_TARGETS="all"
-
-src_configure() {
-       set_arch_to_kernel
-       default
-}
-
-src_compile() {
-       default
-       KERNELRELEASE="${KV_FULL}" linux-mod_src_compile
-}
-
-src_test() {
-       pushd "v4l2loopback"
-       default
-       ./test || die
-       popd
-}
-
-src_install() {
-       linux-mod_src_install
-       dobin "${PN}"
-       dobin "${PN}-cli"
-
-       newicon -s 32x32 icon.png ${PN}.png
-       newicon -s 64x64 icon2.png ${PN}.png
-       make_desktop_entry ${PN} "Droidcam" ${PN} 'AudioVideo;Video'
-
-       # The cli and gui do not auto load the module if unloaded (why not tho?)
-       # so we just put it in modules-load.d to make sure it always works
-       insinto /usr/lib/modules-load.d/
-       doins "${FILESDIR}/v4l2loopback-dc.conf"
-}
-
-pkg_postinst() {
-       linux-mod_pkg_postinst
-       xdg_pkg_postinst
-
-       elog "To use this, you'll need to download the android app as well:"
-       elog "Free version: 
https://play.google.com/store/apps/details?id=com.dev47apps.droidcam";
-       elog "Paid version: 
https://play.google.com/store/apps/details?id=com.dev47apps.droidcamx";
-}

diff --git a/media-tv/droidcam/files/README.gentoo 
b/media-tv/droidcam/files/README.gentoo
new file mode 100644
index 0000000..6a5bdb4
--- /dev/null
+++ b/media-tv/droidcam/files/README.gentoo
@@ -0,0 +1,6 @@
+The default resolution for v4l2loopback-dc is 640x480. You can override these
+values in /etc/modprobe.d/v4l2loopback-dc.conf 
+and modifying 'width' and 'height'.
+
+See https://github.com/aramg/droidcam/issues/56 on why a fork of v4l2loopback
+is currently being used here.

diff --git a/media-tv/droidcam/files/droidcam-libjpeg-location.patch 
b/media-tv/droidcam/files/droidcam-libjpeg-location.patch
deleted file mode 100644
index 1b1a1e0..0000000
--- a/media-tv/droidcam/files/droidcam-libjpeg-location.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/Makefile b/Makefile
-index 3a37443..2a68b2e 100644
---- a/Makefile
-+++ b/Makefile
-@@ -13,7 +13,7 @@ JPEG_LIB ?= $(JPEG_DIR)/lib`getconf LONG_BIT`
- CC    = -no-pie
- GTK   = `pkg-config --libs --cflags gtk+-2.0` `pkg-config --libs x11`
- LIBS  = `pkg-config --libs --cflags libswscale libavutil`
--JPEG  = -I$(JPEG_INCLUDE) $(JPEG_LIB)/libturbojpeg.a
-+JPEG  = -I/usr/include /usr/lib`getconf LONG_BIT`/libturbojpeg.so
- SRC      = src/connection.c src/decoder.c
- NO_WARN  = -Wno-pointer-to-int-cast -Wno-int-to-pointer-cast
- 

diff --git a/media-tv/droidcam/files/droidcam-makefile-fixes.patch 
b/media-tv/droidcam/files/droidcam-makefile-fixes.patch
new file mode 100644
index 0000000..238898c
--- /dev/null
+++ b/media-tv/droidcam/files/droidcam-makefile-fixes.patch
@@ -0,0 +1,44 @@
+diff --git a/Makefile b/Makefile
+index 97a6e1f..6779293 100644
+--- a/Makefile
++++ b/Makefile
+@@ -6,7 +6,7 @@
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ # Use at your own risk. See README file for more details.
+
+-JPEG_DIR ?= /opt/libjpeg-turbo
++JPEG_DIR ?= /usr
+ JPEG_INCLUDE ?= $(JPEG_DIR)/include
+ JPEG_LIB ?= $(JPEG_DIR)/lib`getconf LONG_BIT`
+
+@@ -15,14 +15,14 @@ CC    = -std=c++11 -x c++ -Wall -fPIC -no-pie
+ GTK   = `pkg-config --libs --cflags gtk+-3.0` `pkg-config --libs x11`
+ LIBAV = `pkg-config --libs --cflags libswscale libavutil`
+ LIBS  =  -lspeex -lasound -lpthread -lm
+-JPEG  = -I$(JPEG_INCLUDE) $(JPEG_LIB)/libturbojpeg.a
++JPEG  = -I$(JPEG_INCLUDE) $(JPEG_LIB)/libturbojpeg.so
+ SRC      = src/connection.c src/settings.c src/decoder*.c src/av.c src/usb.c
+
+ all: droidcam-cli droidcam
+
+ ifeq "$(RELEASE)" "1"
+-LIBAV = /usr/lib/x86_64-linux-gnu/libswscale.a 
/usr/lib/x86_64-linux-gnu/libavutil.a
+-SRC  += /usr/lib/x86_64-linux-gnu/libusbmuxd.a 
/usr/lib/x86_64-linux-gnu/libxml2.a src/libplist-2.0.a
++LIBAV = /usr/lib/x86_64-linux-gnu/libswscale.so 
/usr/lib/x86_64-linux-gnu/libavutil.so
++SRC  += /usr/lib/x86_64-linux-gnu/libusbmuxd.so 
/usr/lib/x86_64-linux-gnu/libxml2.so src/libplist-2.0.so
+ package: clean all
+       zip -x *.png src/ src/* Makefile -r droidcam_`date +%s`.zip ./*
+
+@@ -34,10 +34,10 @@ gresource: .gresource.xml icon2.png
+       glib-compile-resources .gresource.xml --generate-source 
--target=src/resources.c
+
+ droidcam-cli: src/droidcam-cli.c $(SRC)
+-      $(GXX) $(CC) $^ $(JPEG) $(LIBAV) $(LIBS) -o droidcam-cli
++      $(GXX) $(CC) $(LDFLAGS) $(CFLAGS) $^ $(JPEG) $(LIBAV) $(LIBS) -o 
droidcam-cli
+
+ droidcam: src/droidcam.c src/resources.c $(SRC)
+-      $(GXX) $(CC) $^ $(GTK) $(JPEG) $(LIBAV) $(LIBS) -o droidcam
++      $(GXX) $(CC) $(LDFLAGS) $(CFLAGS) $^ $(GTK) $(JPEG) $(LIBAV) $(LIBS) -o 
droidcam
+
+ clean:
+       rm droidcam || true

Reply via email to