umlaeute / v4l2loopback

v4l2-loopback device
GNU General Public License v2.0
3.73k stars 531 forks source link

Possible Missing Dependency? #579

Closed BeoHawk25 closed 8 months ago

BeoHawk25 commented 8 months ago

Missing Dependency

Long time user, first time issue poster. I'm always open to discussion, and I'm always trying to learn something. If I'm way off base, please help me understand why.

There may be a missing dependency for debugedit or 'base-devel'.

In debugging my OBS Studio installation, I was swapping from the v4l2loopback-dkms package to the v4l2loopback-dkms-git package on AUR (0.12.5.r232.g2fa9d6d-1). The build and installation it YAY failed, due to a missing binary (terminal output below). First installing the package for that binary allowed me to complete my installation of v4l2loopback.

I know that debugedit is included in base-devel, but neither is included as a dependency in the makefile (I saw the note about the kernal dependencies). I get that it may not be possible to add as a dependency, but it might be worth adding to the Readme.md to specify that those are expected as part of the development environment for building the package?

My Environment

The Problem:

Steps to reproduce:

  1. Attempted an installation of the current release using YAY:
    
    yay -S v4l2loopback-dkms-git
    AUR Explicit (1): v4l2loopback-dkms-git-0.12.5.r232.g2fa9d6d-1
    Sync Make Dependency (1): help2man-1.49.3-1
    :: PKGBUILD up to date, skipping download: v4l2loopback-dkms-git
    1 v4l2loopback-dkms-git            (Build Files Exist)
    ==> Packages to cleanBuild?
    ==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
    ==> a
    :: Deleting (1/1): /home/hawkins/.cache/yay/v4l2loopback-dkms-git
    HEAD is now at 394829c Fixed source url.
    Skipping repository src/v4l2loopback
    Removing v4l2loopback/
    1 v4l2loopback-dkms-git            (Build Files Exist)
    ==> Diffs to show?
    ==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
    ==> n
    ==> Making package: v4l2loopback-dkms-git 0.12.5.r232.g2fa9d6d-1 (Wed 20 Mar 2024 12:04:50 PM CDT)
    ==> Retrieving sources...
    -> Cloning v4l2loopback git repo...
    Cloning into bare repository '/home/hawkins/.cache/yay/v4l2loopback-dkms-git/v4l2loopback'...
    remote: Enumerating objects: 4151, done.
    remote: Counting objects: 100% (1040/1040), done.
    remote: Compressing objects: 100% (475/475), done.
    remote: Total 4151 (delta 623), reused 829 (delta 565), pack-reused 3111
    Receiving objects: 100% (4151/4151), 1.33 MiB | 4.84 MiB/s, done.
    Resolving deltas: 100% (2484/2484), done.
    ==> WARNING: Skipping verification of source file PGP signatures.
    ==> Validating source files with md5sums...
    v4l2loopback ... Skipped
    :: Remove make dependencies after install? [y/N] n
    :: (1/1) Parsing SRCINFO: v4l2loopback-dkms-git
    resolving dependencies...
    looking for conflicting packages...

Packages (2) perl-locale-gettext-1.07-14 help2man-1.49.3-1

Total Installed Size: 0.47 MiB

:: Proceed with installation? [Y/n] y (2/2) checking keys in keyring [------------------------------------] 100% (2/2) checking package integrity [------------------------------------] 100% (2/2) loading package files [------------------------------------] 100% (2/2) checking for file conflicts [------------------------------------] 100% (2/2) checking available disk space [------------------------------------] 100% :: Running pre-transaction hooks... (1/1) Performing snapper pre snapshots for the following configurations... ==> root: 364 :: Processing package changes... (1/2) installing perl-locale-gettext [------------------------------------] 100% (2/2) installing help2man [------------------------------------] 100% :: Running post-transaction hooks... (1/8) Arming ConditionNeedsUpdate... (2/8) Foreign/AUR package notification dotnet-runtime-3.1-bin 3.1.32.sdk426-1 dotnet-runtime-5.0-bin 5.0.17.sdk408-1 dotnet-sdk-3.1-bin 3.1.32.sdk426-1 dotnet-sdk-5.0-bin 5.0.17.sdk408-1 dotnet-targeting-pack-3.1-bin 3.1.32.sdk426-1 dotnet-targeting-pack-5.0-bin 5.0.17.sdk408-1 git-credential-manager-core 2.4.1-1 khotkeys 5.27.10-1 kpeoplevcard 0.1-2 kquickcharts5 5.115.0-1 krunner5 5.115.0-1 kwin-scripts-forceblur 0.6.1-1.3 plasma5-applets-eventcalendar 76-1.4 skypeforlinux-stable-bin 8.109.0.209-1 wsdd2 1.8.7-1 (3/8) Orphaned package notification... bluez-qt5 5.115.0-1 kactivities-stats5 5.115.0-1 kcmutils5 5.115.0-1 kdesu5 5.115.0-1 kdnssd5 5.115.0-1 kdsoap-qt5 2.2.0-1 kfilemetadata5 5.115.0-1 kholidays5 1:5.115.0-1 kidletime5 5.115.0-1 kirigami-addons5 0.11.0-7 knotifyconfig5 5.115.0-1 kpeoplevcard 0.1-2 kquickcharts5 5.115.0-1 krunner5 5.115.0-1 ktexteditor5 5.115.0-1 ldns 1.8.3-2 libical 3.0.17-2 libkdcraw5 24.02.0-1 libqaccessibilityclient-qt5 0.6.0-1 libxres 1.2.2-1 modemmanager-qt5 5.115.0-1 networkmanager-qt5 5.115.0-1 oxygen-sounds 6.0.2-3 purpose5 5.115.0-3 python-rx 3.2.0-4 qqc2-desktop-style5 5.115.0-1 wayland-protocols 1.33-1 webrtc-audio-processing 0.3.1-4 (4/8) Checking for .pacnew and .pacsave files... .pac* files found: /etc/passwd.pacnew /etc/shells.pacnew /etc/locale.gen.pacnew /etc/pam.d/kde.pacnew /etc/pacman.conf.pacnew /etc/pacman.d/mirrorlist.pacnew Please check and merge (5/8) Warn about old perl modules (6/8) Updating the info directory file... (7/8) Performing snapper post snapshots for the following configurations... ==> root: 365 (8/8) Syncing all file systems... ==> Making package: v4l2loopback-dkms-git 0.12.5.r232.g2fa9d6d-1 (Wed 20 Mar 2024 12:05:01 PM CDT) ==> Checking runtime dependencies... ==> Checking buildtime dependencies... ==> Retrieving sources... -> Updating v4l2loopback git repo... ==> Validating source files with md5sums... v4l2loopback ... Skipped ==> Removing existing $srcdir/ directory... ==> Extracting sources... -> Creating working copy of v4l2loopback git repo... Cloning into 'v4l2loopback'... done. Switched to a new branch 'makepkg' ==> Starting pkgver()... ==> Updated version: v4l2loopback-dkms-git 0.13.1.r1.gcb9e676-1 ==> Sources are ready. ==> ERROR: Cannot find the debugedit binary required for including source files in debug packages. -> error making: v4l2loopback-dkms-git-exit status 15 -> Failed to install the following packages. Manual intervention is required: v4l2loopback-dkms-git - exit status 15


2. I then installed the `debugedit` package:

yay -S debugedit Sync Explicit (1): debugedit-5.0-5 resolving dependencies... looking for conflicting packages...

Packages (1) debugedit-5.0-5

Total Download Size: 0.04 MiB Total Installed Size: 0.10 MiB

:: Proceed with installation? [Y/n] y :: Retrieving packages... debugedit-5.0-5-x86_64 43.5 KiB 239 KiB/s 00:00 [------------------------------------] 100% (1/1) checking keys in keyring [------------------------------------] 100% (1/1) checking package integrity [------------------------------------] 100% (1/1) loading package files [------------------------------------] 100% (1/1) checking for file conflicts [------------------------------------] 100% (1/1) checking available disk space [------------------------------------] 100% :: Running pre-transaction hooks... (1/1) Performing snapper pre snapshots for the following configurations... ==> root: 366 :: Processing package changes... (1/1) installing debugedit [------------------------------------] 100% :: Running post-transaction hooks... (1/6) Arming ConditionNeedsUpdate... (2/6) Foreign/AUR package notification dotnet-runtime-3.1-bin 3.1.32.sdk426-1 dotnet-runtime-5.0-bin 5.0.17.sdk408-1 dotnet-sdk-3.1-bin 3.1.32.sdk426-1 dotnet-sdk-5.0-bin 5.0.17.sdk408-1 dotnet-targeting-pack-3.1-bin 3.1.32.sdk426-1 dotnet-targeting-pack-5.0-bin 5.0.17.sdk408-1 git-credential-manager-core 2.4.1-1 khotkeys 5.27.10-1 kpeoplevcard 0.1-2 kquickcharts5 5.115.0-1 krunner5 5.115.0-1 kwin-scripts-forceblur 0.6.1-1.3 plasma5-applets-eventcalendar 76-1.4 skypeforlinux-stable-bin 8.109.0.209-1 wsdd2 1.8.7-1 (3/6) Orphaned package notification... bluez-qt5 5.115.0-1 help2man 1.49.3-1 kactivities-stats5 5.115.0-1 kcmutils5 5.115.0-1 kdesu5 5.115.0-1 kdnssd5 5.115.0-1 kdsoap-qt5 2.2.0-1 kfilemetadata5 5.115.0-1 kholidays5 1:5.115.0-1 kidletime5 5.115.0-1 kirigami-addons5 0.11.0-7 knotifyconfig5 5.115.0-1 kpeoplevcard 0.1-2 kquickcharts5 5.115.0-1 krunner5 5.115.0-1 ktexteditor5 5.115.0-1 ldns 1.8.3-2 libical 3.0.17-2 libkdcraw5 24.02.0-1 libqaccessibilityclient-qt5 0.6.0-1 libxres 1.2.2-1 modemmanager-qt5 5.115.0-1 networkmanager-qt5 5.115.0-1 oxygen-sounds 6.0.2-3 purpose5 5.115.0-3 python-rx 3.2.0-4 qqc2-desktop-style5 5.115.0-1 wayland-protocols 1.33-1 webrtc-audio-processing 0.3.1-4 (4/6) Checking for .pacnew and .pacsave files... .pac* files found: /etc/passwd.pacnew /etc/shells.pacnew /etc/locale.gen.pacnew /etc/pam.d/kde.pacnew /etc/pacman.conf.pacnew /etc/pacman.d/mirrorlist.pacnew Please check and merge (5/6) Performing snapper post snapshots for the following configurations... ==> root: 367 (6/6) Syncing all file systems...


3. 'v4l2loopback' then installed cleanly:

yay -S v4l2loopback-dkms-git AUR Explicit (1): v4l2loopback-dkms-git-0.12.5.r232.g2fa9d6d-1 :: PKGBUILD up to date, skipping download: v4l2loopback-dkms-git 1 v4l2loopback-dkms-git (Build Files Exist) ==> Packages to cleanBuild? ==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4) ==> a :: Deleting (1/1): /home/hawkins/.cache/yay/v4l2loopback-dkms-git HEAD is now at 394829c Fixed source url. Skipping repository src/v4l2loopback Removing v4l2loopback/ 1 v4l2loopback-dkms-git (Build Files Exist) ==> Diffs to show? ==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4) ==> n ==> Making package: v4l2loopback-dkms-git 0.12.5.r232.g2fa9d6d-1 (Wed 20 Mar 2024 12:10:12 PM CDT) ==> Retrieving sources... -> Cloning v4l2loopback git repo... Cloning into bare repository '/home/hawkins/.cache/yay/v4l2loopback-dkms-git/v4l2loopback'... remote: Enumerating objects: 4151, done. remote: Counting objects: 100% (1040/1040), done. remote: Compressing objects: 100% (477/477), done. remote: Total 4151 (delta 623), reused 825 (delta 563), pack-reused 3111 Receiving objects: 100% (4151/4151), 1.33 MiB | 4.91 MiB/s, done. Resolving deltas: 100% (2484/2484), done. ==> WARNING: Skipping verification of source file PGP signatures. ==> Validating source files with md5sums... v4l2loopback ... Skipped :: (1/1) Parsing SRCINFO: v4l2loopback-dkms-git ==> Making package: v4l2loopback-dkms-git 0.12.5.r232.g2fa9d6d-1 (Wed 20 Mar 2024 12:10:14 PM CDT) ==> Checking runtime dependencies... ==> Checking buildtime dependencies... ==> Retrieving sources... -> Updating v4l2loopback git repo... ==> Validating source files with md5sums... v4l2loopback ... Skipped ==> Removing existing $srcdir/ directory... ==> Extracting sources... -> Creating working copy of v4l2loopback git repo... Cloning into 'v4l2loopback'... done. Switched to a new branch 'makepkg' ==> Starting pkgver()... ==> Updated version: v4l2loopback-dkms-git 0.13.1.r1.gcb9e676-1 ==> Sources are ready. ==> Making package: v4l2loopback-dkms-git 0.13.1.r1.gcb9e676-1 (Wed 20 Mar 2024 12:10:18 PM CDT) ==> Checking runtime dependencies... ==> Checking buildtime dependencies... ==> WARNING: Using existing $srcdir/ tree ==> Starting pkgver()... ==> Entering fakeroot environment... ==> Starting package()... 'COPYING' -> '/home/hawkins/.cache/yay/v4l2loopback-dkms-git/pkg/v4l2loopback-dkms-git/usr/share/licenses/v4l2loopback/COPYING'

++++++ To sign the module, you must set KBUILD_SIGN_KEY/KBUILD_SIGN_CERT to point to the signing key/certificate! ++++++ For your convenience, we try to read these variables as 'mok_signing_key' resp. 'mok_certificate' from /etc/dkms/framework.conf

++++++ If your certificate requires a password, pass it via the KBUILD_SIGN_PIN env-var! ++++++ E.g. using 'export KBUILD_SIGN_PIN; read -s -p "Passphrase for signing key : " KBUILD_SIGN_PIN; sudo --preserve-env=KBUILD_SIGN_PIN make sign'

make -C utils V4L2LOOPBACK_SNAPSHOT_VERSION=0.13.1-1-gcb9e676 make[1]: Entering directory '/home/hawkins/.cache/yay/v4l2loopback-dkms-git/src/v4l2loopback/utils' cc -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/home/hawkins/.cache/yay/v4l2loopback-dkms-git/src=/usr/src/debug/v4l2loopback-dkms-git -flto=auto -I.. -DSNAPSHOT_VERSION='"0.13.1-1-gcb9e676"'-c -o v4l2loopback-ctl.o v4l2loopback-ctl.c cc -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-z,pack-relative-relocs -flto=auto v4l2loopback-ctl.o -o v4l2loopback-ctl make[1]: Leaving directory '/home/hawkins/.cache/yay/v4l2loopback-dkms-git/src/v4l2loopback/utils' install -p -m 755 -d "/home/hawkins/.cache/yay/v4l2loopback-dkms-git/pkg/v4l2loopback-dkms-git/usr/bin" install -p -m 755 utils/v4l2loopback-ctl "/home/hawkins/.cache/yay/v4l2loopback-dkms-git/pkg/v4l2loopback-dkms-git/usr/bin" help2man -N --name "control v4l2 loopback devices" \ --no-discard-stderr --help-option=-h --version-option=-v \ utils/v4l2loopback-ctl > man/v4l2loopback-ctl.1 install -p -m 755 -d "/home/hawkins/.cache/yay/v4l2loopback-dkms-git/pkg/v4l2loopback-dkms-git/usr/share/man/man1" install -m 644 man/v4l2loopback-ctl.1 "/home/hawkins/.cache/yay/v4l2loopback-dkms-git/pkg/v4l2loopback-dkms-git/usr/share/man/man1" ==> Tidying install... -> Removing libtool files... -> Purging unwanted files... -> Removing static library files... -> Stripping unneeded symbols from binaries and libraries... -> Compressing man and info pages... ==> Checking for packaging issues... ==> WARNING: Package contains reference to $srcdir usr/src/v4l2loopback-0.13.1.r1.gcb9e676/utils/v4l2loopback-ctl.o ==> Creating package "v4l2loopback-dkms-git"... -> Generating .PKGINFO file... -> Generating .BUILDINFO file... -> Generating .MTREE file... -> Compressing package... ==> Creating package "v4l2loopback-dkms-git-debug"... -> Generating .PKGINFO file... -> Generating .BUILDINFO file... -> Generating .MTREE file... -> Compressing package... ==> Leaving fakeroot environment. ==> Finished making: v4l2loopback-dkms-git 0.13.1.r1.gcb9e676-1 (Wed 20 Mar 2024 12:10:22 PM CDT) ==> Cleaning up... loading packages... resolving dependencies... looking for conflicting packages...

Packages (2) v4l2loopback-dkms-git-0.13.1.r1.gcb9e676-1 v4l2loopback-dkms-git-debug-0.13.1.r1.gcb9e676-1

Total Installed Size: 0.78 MiB

:: Proceed with installation? [Y/n] y (2/2) checking keys in keyring [------------------------------------] 100% (2/2) checking package integrity [------------------------------------] 100% (2/2) loading package files [------------------------------------] 100% (2/2) checking for file conflicts [------------------------------------] 100% (2/2) checking available disk space [------------------------------------] 100% :: Running pre-transaction hooks... (1/1) Performing snapper pre snapshots for the following configurations... ==> root: 368 :: Processing package changes... (1/2) installing v4l2loopback-dkms-git [------------------------------------] 100% (2/2) installing v4l2loopback-dkms-git-debug [------------------------------------] 100% :: Running post-transaction hooks... (1/9) Arming ConditionNeedsUpdate... (2/9) Install DKMS modules ==> dkms install --no-depmod v4l2loopback/0.13.1.r1.gcb9e676 -k 6.6.22-1-lts ==> dkms install --no-depmod v4l2loopback/0.13.1.r1.gcb9e676 -k 6.8.1-zen1-1-zen ==> dkms install --no-depmod v4l2loopback/0.13.1.r1.gcb9e676 -k 6.8.1-arch1-1 ==> depmod 6.6.22-1-lts ==> depmod 6.8.1-arch1-1 ==> depmod 6.8.1-zen1-1-zen (3/9) Updating initramfs... :: Building initramfs for linux-lts (6.6.22-1-lts) :: Building fallback initramfs for linux-lts (6.6.22-1-lts) :: Building initramfs for linux (6.8.1-arch1-1) :: Building fallback initramfs for linux (6.8.1-arch1-1) :: Building initramfs for linux-zen (6.8.1-zen1-1-zen) :: Building fallback initramfs for linux-zen (6.8.1-zen1-1-zen) (4/9) Updating linux initcpios... (5/9) Foreign/AUR package notification dotnet-runtime-3.1-bin 3.1.32.sdk426-1 dotnet-runtime-5.0-bin 5.0.17.sdk408-1 dotnet-sdk-3.1-bin 3.1.32.sdk426-1 dotnet-sdk-5.0-bin 5.0.17.sdk408-1 dotnet-targeting-pack-3.1-bin 3.1.32.sdk426-1 dotnet-targeting-pack-5.0-bin 5.0.17.sdk408-1 git-credential-manager-core 2.4.1-1 khotkeys 5.27.10-1 kpeoplevcard 0.1-2 kquickcharts5 5.115.0-1 krunner5 5.115.0-1 kwin-scripts-forceblur 0.6.1-1.3 plasma5-applets-eventcalendar 76-1.4 skypeforlinux-stable-bin 8.109.0.209-1 v4l2loopback-dkms-git 0.13.1.r1.gcb9e676-1 v4l2loopback-dkms-git-debug 0.13.1.r1.gcb9e676-1 wsdd2 1.8.7-1 (6/9) Orphaned package notification... bluez-qt5 5.115.0-1 help2man 1.49.3-1 kactivities-stats5 5.115.0-1 kcmutils5 5.115.0-1 kdesu5 5.115.0-1 kdnssd5 5.115.0-1 kdsoap-qt5 2.2.0-1 kfilemetadata5 5.115.0-1 kholidays5 1:5.115.0-1 kidletime5 5.115.0-1 kirigami-addons5 0.11.0-7 knotifyconfig5 5.115.0-1 kpeoplevcard 0.1-2 kquickcharts5 5.115.0-1 krunner5 5.115.0-1 ktexteditor5 5.115.0-1 ldns 1.8.3-2 libical 3.0.17-2 libkdcraw5 24.02.0-1 libqaccessibilityclient-qt5 0.6.0-1 libxres 1.2.2-1 modemmanager-qt5 5.115.0-1 networkmanager-qt5 5.115.0-1 oxygen-sounds 6.0.2-3 purpose5 5.115.0-3 python-rx 3.2.0-4 qqc2-desktop-style5 5.115.0-1 wayland-protocols 1.33-1 webrtc-audio-processing 0.3.1-4 (7/9) Checking for .pacnew and .pacsave files... .pac* files found: /etc/passwd.pacnew /etc/shells.pacnew /etc/locale.gen.pacnew /etc/pam.d/kde.pacnew /etc/pacman.conf.pacnew /etc/pacman.d/mirrorlist.pacnew Please check and merge (8/9) Performing snapper post snapshots for the following configurations... ==> root: 369 (9/9) Syncing all file systems...



4. OBS Studio is happy, my virtual camera is working again, and the world is once again filled with sunshine and kittens!
umlaeute commented 8 months ago

i cannot reproduce this. e.g. in a fresh Debian docker container i do:

$ apt-get update
$ apt-get install build-essential git linux-headers-amd64
$ git clone https://github.com/umlaeute/v4l2loopback.git
$ cd v4l2loopback

$ ls /lib/modules/
6.1.0-18-amd64
$ make KERNELRELEASE=6.1.0-18-amd64
Building v4l2-loopback driver...
make -C /lib/modules/6.1.0-18-amd64/build M=/root/v4l2loopback KCPPFLAGS="-DSNAPSHOT_VERSION='"0.13.1-1-gcb9e676"'" modules
make[1]: Entering directory '/usr/src/linux-headers-6.1.0-18-amd64'
  CC [M]  /root/v4l2loopback/v4l2loopback.o
  MODPOST /root/v4l2loopback/Module.symvers
  CC [M]  /root/v4l2loopback/v4l2loopback.mod.o
  LD [M]  /root/v4l2loopback/v4l2loopback.ko
  BTF [M] /root/v4l2loopback/v4l2loopback.ko
Skipping BTF generation for /root/v4l2loopback/v4l2loopback.ko due to unavailability of vmlinux
make[1]: Leaving directory '/usr/src/linux-headers-6.1.0-18-amd64'
make -C utils V4L2LOOPBACK_SNAPSHOT_VERSION=0.13.1-1-gcb9e676
make[1]: Entering directory '/root/v4l2loopback/utils'
cc  -I.. -DSNAPSHOT_VERSION='"0.13.1-1-gcb9e676"'  -c -o v4l2loopback-ctl.o v4l2loopback-ctl.c
cc   v4l2loopback-ctl.o   -o v4l2loopback-ctl
make[1]: Leaving directory '/root/v4l2loopback/utils'

$ debugedit
bash: debugedit: command not found

so i conclude that v4l2loopback does not depend on debugedit.

all in all it seems that this really is a problem with the packaging for your distribution (or with yay in general).

sorry to not be of any help

umlaeute commented 8 months ago

note that i am no expert in arch (and i never even heard of Garuda), but all the docs seem to clearly indicate that in order to use AUR packages, you must have base-devel installed.

quoting https://wiki.archlinux.org/title/Arch_User_Repository#Getting_started:

Getting started

Users can search and download PKGBUILDs from the AUR Web Interface. These PKGBUILDs can be built into installable packages using makepkg, then installed using pacman.

so to conclude: it is outside the scope of v4l2loopback to document generic requirements to get the package manager of an arbitrary distribution up and running.

I would file a bug-report against Garuda, that their installation of yay is incomplete.

umlaeute commented 8 months ago

and just for the fun of it, trying to build the module in a minimal archlinux environment (docker run --rm -ti archlinux):

$ pacman -Sy
$ pacman -S gcc make git linux-headers
$ git clone https://github.com/umlaeute/v4l2loopback
$ cd v4l2loopback
$ ls /lib/modules
6.8.1-arch1-1
$ make KERNELRELEASE=6.8.1-arch1-1
Building v4l2-loopback driver...
make -C /lib/modules/6.8.1-arch1-1/build M=/v4l2loopback KCPPFLAGS="-DSNAPSHOT_VERSION='"0.13.1-1-gcb9e676"'" modules
make[1]: Entering directory '/usr/lib/modules/6.8.1-arch1-1/build'
  CC [M]  /v4l2loopback/v4l2loopback.o
  MODPOST /v4l2loopback/Module.symvers
  CC [M]  /v4l2loopback/v4l2loopback.mod.o
  LD [M]  /v4l2loopback/v4l2loopback.ko
  BTF [M] /v4l2loopback/v4l2loopback.ko
make[1]: Leaving directory '/usr/lib/modules/6.8.1-arch1-1/build'
make -C utils V4L2LOOPBACK_SNAPSHOT_VERSION=0.13.1-1-gcb9e676
make[1]: Entering directory '/v4l2loopback/utils'
cc  -I.. -DSNAPSHOT_VERSION='"0.13.1-1-gcb9e676"'  -c -o v4l2loopback-ctl.o v4l2loopback-ctl.c
cc   v4l2loopback-ctl.o   -o v4l2loopback-ctl
make[1]: Leaving directory '/v4l2loopback/utils'

$ debugedit
bash: debugedit: command not found

$
BeoHawk25 commented 8 months ago

Thanks for taking a look at it!

I'm certainly no Arch expert either, just slightly more adventurous than your average user. Totally get that it is beyond the scope to list another systems dependencies.

Like I mentioned I did figure out what I was missing and did get it running, so it's functional on my end now. It was just odd that this is the first time I've run into an issue looking for anything from the base-devel package.

Also it's very cool to see containers used in debugging this way! I'm familiar with them for deployment environments, very neat application of containers!

umlaeute commented 8 months ago

Totally get that it is beyond the scope to list another systems dependencies.

note that this isn't really about the dependencies of v4l2loopback (which doesn't use debugedit at all). it's about the dependencies of your package manager itself.

in any case, i think this is covered by the last ellipsis in the README:

In order to build (compile,...) anything, you must have a working build-environment (compiler, GNU make,...).