Package Base Details: droidcam

Git Clone URL: https://aur.archlinux.org/droidcam.git (read-only, click to copy)
Keywords: Android webcam
Submitter: marquicus
Maintainer: CodeXYZ (Levitating, lazerl0rd)
Last Packager: Levitating
Votes: 135
Popularity: 0.82
First Submitted: 2011-06-29 20:31 (UTC)
Last Updated: 2024-01-10 00:25 (UTC)

Pinned Comments

Latest Comments

« First ‹ Previous 1 .. 5 6 7 8 9 10 11 12 13 14 15 .. 37 Next › Last »

invidian commented on 2020-10-07 19:52 (UTC)

@fourier you must install kernel headers for the kernel you have installed in order to use DKMS, for example "linux-headers" if you use "linux" package for your kernel. See https://wiki.archlinux.org/index.php/Dynamic_Kernel_Module_Support#Installation for more details.

fourier commented on 2020-10-07 19:43 (UTC)

Tried to install, but failed with

==> Unable to install module v4l2loopback-dc/1.5 for kernel *: Missing kernel headers.

invidian commented on 2020-10-01 21:55 (UTC)

@klingt.net hmm, I don't know what could be the cause then. This repo contains a Dockerfile which I use to test builds on fresh machines, to make sure all dependencies are included. Maybe try manually cloning the repository and building from there?

klingt.net commented on 2020-10-01 15:48 (UTC)

@invidian

I have the latest available version installed:

$ yay -Qi libjpeg-turbo | grep Version
Version         : 2.0.5-2

invidian commented on 2020-10-01 10:26 (UTC)

@klingt.net maybe you have outdated version of "libjpeg-turbo"? It seems compiler picks the version, which do not have "tjGetErrorStr2" defined, which has been added in 1.5.3+: https://github.com/libjpeg-turbo/libjpeg-turbo/releases/tag/1.5.90.

klingt.net commented on 2020-10-01 06:47 (UTC) (edited on 2020-10-01 06:48 (UTC) by klingt.net)

Building droidcam fails on my machine:

==> Starting build()...
g++ -std=c++11 -x c++ -Wall -fPIC -no-pie src/droidcam-cli.c src/connection.c src/settings.c src/decoder.c src/decoder_snd.c src/decoder_v4l2.c src/av.c src/usb.c -lturbojpeg `pkg-config --libs --cflags libswscale libavutil` -lspeex -lasound -lpthread -lm -lusbmuxd-2.0 -o droidcam-cli
g++ -std=c++11 -x c++ -Wall -fPIC -no-pie src/droidcam.c src/resources.c src/connection.c src/settings.c src/decoder.c src/decoder_snd.c src/decoder_v4l2.c src/av.c src/usb.c `pkg-config --libs --cflags gtk+-3.0` `pkg-config --libs x11` `pkg-config --cflags --libs appindicator3-0.1` -lturbojpeg `pkg-config --libs --cflags libswscale libavutil` -lspeex -lasound -lpthread -lm -lusbmuxd-2.0 -o droidcam
src/droidcam.c: In function ‘void the_callback(GtkWidget*, gpointer)’:
src/droidcam.c:227:63: warning: ‘void gtk_menu_popup(GtkMenu*, GtkWidget*, GtkWidget*, GtkMenuPositionFunc, gpointer, guint, guint32)’ is deprecated: Use '(gtk_menu_popup_at_widget, gtk_menu_popup_at_pointer, gtk_menu_popup_at_rect)' instead [-Wdeprecated-declarations]
  227 |    gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 0, 0);
      |                                                               ^
In file included from /usr/include/gtk-3.0/gtk/gtklabel.h:34,
                 from /usr/include/gtk-3.0/gtk/gtkaccellabel.h:35,
                 from /usr/include/gtk-3.0/gtk/gtk.h:33,
                 from src/droidcam.c:11:
/usr/include/gtk-3.0/gtk/gtkmenu.h:138:9: note: declared here
  138 | void    gtk_menu_popup    (GtkMenu        *menu,
      |         ^~~~~~~~~~~~~~
src/decoder.c: In function ‘int decoder_init()’:
src/decoder.c:111:37: error: ‘TJXOPT_COPYNONE’ was not declared in this scope; did you mean ‘TJXOP_NONE’?
  111 |     jpg_decoder.transform.options = TJXOPT_COPYNONE | TJXOPT_TRIM;
      |                                     ^~~~~~~~~~~~~~~
      |                                     TJXOP_NONE
In file included from src/decoder.c:19:
src/decoder.c: In function ‘void process_frame(JPGFrame*)’:
src/decoder.c:279:61: error: ‘tjGetErrorCode’ was not declared in this scope; did you mean ‘tjGetErrorStr’?
  279 |             errprint("tjDecompressHeader3() failure: %d\n", tjGetErrorCode(jpg_decoder.tj));
      |                                                             ^~~~~~~~~~~~~~
src/common.h:40:39: note: in definition of macro ‘errprint’
   40 | #define errprint(...) fprintf(stderr, __VA_ARGS__)
      |                                       ^~~~~~~~~~~
src/decoder.c:280:30: error: ‘tjGetErrorStr2’ was not declared in this scope; did you mean ‘tjGetErrorStr’?
  280 |             errprint("%s\n", tjGetErrorStr2(jpg_decoder.tj));
      |                              ^~~~~~~~~~~~~~
src/common.h:40:39: note: in definition of macro ‘errprint’
   40 | #define errprint(...) fprintf(stderr, __VA_ARGS__)
      |                                       ^~~~~~~~~~~
src/decoder.c:311:54: error: ‘tjGetErrorCode’ was not declared in this scope; did you mean ‘tjGetErrorStr’?
  311 |         errprint("tjDecompressToYUV2 failure: %d\n", tjGetErrorCode(jpg_decoder.tj));
      |                                                      ^~~~~~~~~~~~~~
src/common.h:40:39: note: in definition of macro ‘errprint’
   40 | #define errprint(...) fprintf(stderr, __VA_ARGS__)
      |                                       ^~~~~~~~~~~
make: *** [Makefile:39: droidcam-cli] Error 1
make: *** Waiting for unfinished jobs....
src/decoder.c: In function ‘int decoder_init()’:
src/decoder.c:111:37: error: ‘TJXOPT_COPYNONE’ was not declared in this scope; did you mean ‘TJXOP_NONE’?
  111 |     jpg_decoder.transform.options = TJXOPT_COPYNONE | TJXOPT_TRIM;
      |                                     ^~~~~~~~~~~~~~~
      |                                     TJXOP_NONE
In file included from src/decoder.c:19:
src/decoder.c: In function ‘void process_frame(JPGFrame*)’:
src/decoder.c:279:61: error: ‘tjGetErrorCode’ was not declared in this scope; did you mean ‘tjGetErrorStr’?
  279 |             errprint("tjDecompressHeader3() failure: %d\n", tjGetErrorCode(jpg_decoder.tj));
      |                                                             ^~~~~~~~~~~~~~
src/common.h:40:39: note: in definition of macro ‘errprint’
   40 | #define errprint(...) fprintf(stderr, __VA_ARGS__)
      |                                       ^~~~~~~~~~~
src/decoder.c:280:30: error: ‘tjGetErrorStr2’ was not declared in this scope; did you mean ‘tjGetErrorStr’?
  280 |             errprint("%s\n", tjGetErrorStr2(jpg_decoder.tj));
      |                              ^~~~~~~~~~~~~~
src/common.h:40:39: note: in definition of macro ‘errprint’
   40 | #define errprint(...) fprintf(stderr, __VA_ARGS__)
      |                                       ^~~~~~~~~~~
src/decoder.c:311:54: error: ‘tjGetErrorCode’ was not declared in this scope; did you mean ‘tjGetErrorStr’?
  311 |         errprint("tjDecompressToYUV2 failure: %d\n", tjGetErrorCode(jpg_decoder.tj));
      |                                                      ^~~~~~~~~~~~~~
src/common.h:40:39: note: in definition of macro ‘errprint’
   40 | #define errprint(...) fprintf(stderr, __VA_ARGS__)
      |                                       ^~~~~~~~~~~
make: *** [Makefile:42: droidcam] Error 1
==> ERROR: A failure occurred in build().
    Aborting...
error making: droidcam (v4l2loopback-dc-dkms)

invidian commented on 2020-09-30 08:17 (UTC)

@pickfire thanks for noticing, you are right. I added "libappindicator-gtk3" as optional dependency now, as we do the same with "gtk3", given that "droidcam-cli" works without both of those packages.

I wonder, perhaps this optional dependencies should be dropped and just added as regular dependencies.

pickfire commented on 2020-09-30 03:15 (UTC) (edited on 2020-09-30 03:15 (UTC) by pickfire)

libappindicator-gtk3 is a dependency, not just make dependency. Otherwise, droidcam

droidcam: error while loading shared libraries: libappindicator3.so.1: cannot open shared object file: No such file or directory

invidian commented on 2020-09-19 12:35 (UTC)

jonseitz I suspect that happens, because you have "." in your PATH, so local "install" script takes precedence over "global" "install" binary. I'll fix that, it seems like a reasonable case.

js3z commented on 2020-09-19 01:26 (UTC)

Ran into an issue installing just now, getting the following error:

==> Starting package_droidcam()...
~/builds/droidcam/src/droidcam-1.3/linux ~/builds/droidcam/src
Invalid parameters: '-Dm755' and 'droidcam'
==> ERROR: A failure occurred in package_droidcam().
    Aborting...

It seems that the issue is that the calls to install ... in the package scripts were referencing the install script in src/droidcam-1.4/linux/, instead of /sbin/install. I was able to get it working by changing the PKGBUILD to:

diff --git a/PKGBUILD b/PKGBUILD
index 5dd52df..61cf9d4 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -54,12 +54,12 @@ package_droidcam() {
   pushd ${pkgbase}-${pkgver}/linux

   # Install droidcam program files
-  install -Dm755 "${pkgbase}" "$pkgdir/usr/bin/${pkgbase}"
-  install -Dm755 "${pkgbase}-cli" "$pkgdir/usr/bin/${pkgbase}-cli"
-  install -Dm644 icon2.png "$pkgdir/usr/share/pixmaps/${pkgbase}.png"
-  install -Dm644 "../../${pkgbase}.desktop" "$pkgdir/usr/share/applications/${pkgbase}.desktop"
-  install -Dm644 "../../${pkgbase}.conf" "${pkgdir}/etc/modules-load.d/${pkgbase}.conf"
-  install -Dm644 README.md "$pkgdir/usr/share/licenses/${pkgbase}/LICENSE"
+  /sbin/install -Dm755 "${pkgbase}" "$pkgdir/usr/bin/${pkgbase}"
+  /sbin/install -Dm755 "${pkgbase}-cli" "$pkgdir/usr/bin/${pkgbase}-cli"
+  /sbin/install -Dm644 icon2.png "$pkgdir/usr/share/pixmaps/${pkgbase}.png"
+  /sbin/install -Dm644 "../../${pkgbase}.desktop" "$pkgdir/usr/share/applications/${pkgbase}.desktop"
+  /sbin/install -Dm644 "../../${pkgbase}.conf" "${pkgdir}/etc/modules-load.d/${pkgbase}.conf"
+  /sbin/install -Dm644 README.md "$pkgdir/usr/share/licenses/${pkgbase}/LICENSE"
 }

 package_v4l2loopback-dc-dkms() {
@@ -68,22 +68,22 @@ package_v4l2loopback-dc-dkms() {
   local install_dir="${pkgdir}/usr/src/${_pkgname}-${pkgver}"

   # Copy dkms.conf
-  install -Dm644 dkms.conf "${install_dir}/dkms.conf"
+  /sbin/install -Dm644 dkms.conf "${install_dir}/dkms.conf"

   # Set name and version
   sed -e "s/@_PKGNAME@/${_pkgname}/" -e "s/@PKGVER@/${pkgver}/" -i "${install_dir}/dkms.conf"

   # Install module loading configuration
-  install -Dm644 "${pkgbase}.modprobe.conf" "$pkgdir/etc/modprobe.d/${pkgbase}.conf"
+  /sbin/install -Dm644 "${pkgbase}.modprobe.conf" "$pkgdir/etc/modprobe.d/${pkgbase}.conf"

   # Install module source
   cd ${pkgbase}-${pkgver}/linux/v4l2loopback

   for d in $(find . -type d); do
-    install -dm755 "${install_dir}/$d"
+    /sbin/install -dm755 "${install_dir}/$d"
   done

   for f in $(find . -type f ! -name '.gitignore'); do
-    install -m644 "$f" "${install_dir}/$f"
+    /sbin/install -m644 "$f" "${install_dir}/$f"
   done
 }

Possibly it's something specific to my system, but dropping this here in case anyone runs into the same.