diff options
Diffstat (limited to 'makefu')
-rw-r--r-- | makefu/2configs/hw/droidcam.nix | 7 | ||||
-rw-r--r-- | makefu/5pkgs/droidcam/default.nix | 55 | ||||
-rw-r--r-- | makefu/5pkgs/v4l2loopback-dc/default.nix | 36 |
3 files changed, 98 insertions, 0 deletions
diff --git a/makefu/2configs/hw/droidcam.nix b/makefu/2configs/hw/droidcam.nix new file mode 100644 index 000000000..c638123bb --- /dev/null +++ b/makefu/2configs/hw/droidcam.nix @@ -0,0 +1,7 @@ +{ pkgs, config, ... }: +{ + boot.extraModprobeConfig = "options v4l2loopback_dc width=640 height=480"; + boot.extraModulePackages = [ + (pkgs.callPackage ../../5pkgs/v4l2loopback-dc { kernel = config.boot.kernelPackages.kernel; }) + ]; +} diff --git a/makefu/5pkgs/droidcam/default.nix b/makefu/5pkgs/droidcam/default.nix new file mode 100644 index 000000000..d30fb01a6 --- /dev/null +++ b/makefu/5pkgs/droidcam/default.nix @@ -0,0 +1,55 @@ +{ stdenv, fetchFromGitHub +, pkg-config +, alsaLib +, libjpeg_turbo +, ffmpeg +, libusbmuxd +, speex +, gtk3 +, libappindicator-gtk3 +}: + +stdenv.mkDerivation rec { + pname = "droidcam"; + version = "1.6"; + + src = fetchFromGitHub { + owner = "aramg"; + repo = "droidcam"; + rev = "v${version}"; + sha256 = "1d9qpnmqa3pfwsrpjnxdz76ipk4w37bbxyrazchh4vslnfc886fx"; + }; + + sourceRoot = "source/linux"; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + alsaLib + libjpeg_turbo + ffmpeg + libusbmuxd + speex + gtk3 + libappindicator-gtk3 + ]; + + buildPhase = '' + runHook preBuild + make JPEG_DIR="" JPEG_INCLUDE="" JPEG_LIB="" JPEG="$(pkg-config --libs --cflags libturbojpeg)" + ''; + installPhase = '' + runHook preInstall + install -Dm755 "droidcam" "$out/bin/droidcam" + install -Dm755 "droidcam-cli" "$out/bin/droidcam-cli" + install -Dm644 icon2.png "$out/share/pixmaps/droidcam.png" + install -Dm644 README.md "$out/share/licenses/droidcam/LICENSE" + ''; + + meta = with stdenv.lib; { + description = "A kernel module to create V4L2 loopback devices"; + homepage = "https://github.com/aramg/droidcam"; + license = licenses.gpl2; + maintainers = [ maintainers.makefu ]; + platforms = platforms.linux; + }; +} diff --git a/makefu/5pkgs/v4l2loopback-dc/default.nix b/makefu/5pkgs/v4l2loopback-dc/default.nix new file mode 100644 index 000000000..2bb9d3d0b --- /dev/null +++ b/makefu/5pkgs/v4l2loopback-dc/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchFromGitHub, kernel, kmod }: + +stdenv.mkDerivation rec { + name = "v4l2loopback-dc-${version}-${kernel.version}"; + version = "1.6"; + + src = fetchFromGitHub { + owner = "aramg"; + repo = "droidcam"; + rev = "v${version}"; + sha256 = "1d9qpnmqa3pfwsrpjnxdz76ipk4w37bbxyrazchh4vslnfc886fx"; + }; + + sourceRoot = "source/linux/v4l2loopback"; + + buildTargets = "v4l2loopback-dc"; + hardeningDisable = [ "pic" ]; + + nativeBuildInputs = kernel.moduleBuildDependencies; + buildInputs = [ kmod ]; + + + makeFlags = [ + "KERNELRELEASE=${kernel.modDirVersion}" + "KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" + "INSTALL_MOD_PATH=$(out)" + ]; + + meta = with stdenv.lib; { + description = "A kernel module to create V4L2 loopback devices"; + homepage = "https://github.com/aramg/droidcam"; + license = licenses.gpl2; + maintainers = [ maintainers.makefu ]; + platforms = platforms.linux; + }; +} |