Package Details: looking-glass-module-dkms-git 2:B7.r649.g9469c087-1

Git Clone URL: https://aur.archlinux.org/looking-glass-git.git (read-only, click to copy)
Package Base: looking-glass-git
Description: A kernel module that implements a basic interface to the IVSHMEM device for when using LookingGlass in VM->VM mode
Upstream URL: https://looking-glass.io/
Licenses: GPL-2.0-or-later
Conflicts: looking-glass-module-dkms
Provides: looking-glass-module-dkms
Submitter: Omar007
Maintainer: Omar007
Last Packager: Omar007
Votes: 18
Popularity: 1.55
First Submitted: 2017-12-14 09:38 (UTC)
Last Updated: 2026-08-11 23:05 (UTC)

Pinned Comments

Omar007 commented on 2025-08-08 12:31 (UTC) (edited on 2025-08-08 12:34 (UTC) by Omar007)

If you encounter any issues building a package from this PKGBUILD and/or running the resulting binaries:

DO NOT CONTACT UPSTREAM!!!

This PKGBUILD is not supported nor provided by upstream!

Only leave messages here on the AUR!

Latest Comments

1 2 3 4 5 6 .. 9 Next › Last »

Technetium1 commented on 2026-08-16 15:29 (UTC)

Requires fuse3 since this commit

Omar007 commented on 2026-08-11 23:04 (UTC)

@bbaovanc & @GrabbenD; the idea behind putting the submodules in the PKGBUILD is to allow native handling of the sources and to allow for reuse without needing to redownload. In that sense it's not that different from putting a file in the sources=(..) array VS. downloading it inside prepare() {..}. This is especially nice if you perform your builds in a clean chroot.
If you want to know more, see https://wiki.archlinux.org/title/VCS_package_guidelines

bbaovanc commented on 2026-08-11 12:41 (UTC)

Well, I assumed that using makepkg to clone all the submodules was intentional so I kept it that way

GrabbenD commented on 2026-08-11 12:19 (UTC)

@bbaovanc Before seeing your replay I hacked together a different workaround:

Didn't dig deeper into this but I suspect the: git submodule set-url -- "repos/${module}" "${srcdir}/${module}" logic might not even be needed with: git submodule update --init --recursive

Maintainers who are more familiar with this project probably know better though

$ git diff PKGBUILD
diff --git a/PKGBUILD b/PKGBUILD
index d1992cd..e6012fa 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -7,7 +7,7 @@ pkgname=("${_pkgname}-git"
          "${_pkgname}-host-git"
          "obs-plugin-${_pkgname}-git")
 epoch=2
-pkgver=B7.r238.gc8edf1ea
+pkgver=B7.r590.gd20904e3
 pkgrel=1
 pkgdesc="An extremely low latency KVMFR (KVM FrameRelay) implementation for guests with VGA PCI Passthrough"
 url="https://looking-glass.io/"
@@ -15,7 +15,8 @@ arch=('x86_64')
 license=('GPL-2.0-or-later')
 makedepends=('binutils' 'cmake' 'fontconfig' 'git' 'libegl' 'libpipewire'
              'libpulse' 'libsamplerate' 'libxi' 'libxpresent' 'libxss'
-             'obs-studio' 'spice-protocol' 'wayland-protocols')
+             'obs-studio' 'spice-protocol' 'wayland-protocols'
+             'clang' 'llvm' 'pahole')
 source=("${_pkgname}::git+https://github.com/gnif/LookingGlass.git"
         "LGMP::git+https://github.com/gnif/LGMP.git"
         "PureSpice::git+https://github.com/gnif/PureSpice.git"
@@ -39,15 +40,20 @@ pkgver() {
 }

 prepare() {
+  set -x
+
        cd "${srcdir}/${_pkgname}"
-       git submodule init
-       for module in LGMP PureSpice cimgui wayland-protocols nanosvg; do
+       git submodule update --init --recursive
+
+       for module in LGMP PureSpice wayland-protocols nanosvg; do
                git submodule set-url -- "repos/${module}" "${srcdir}/${module}"
        done
+       git submodule set-url -- "repos/gui/cimgui" "${srcdir}/cimgui"
+
        git -c protocol.file.allow=always submodule update

-       cd "repos/cimgui"
-       git submodule init
+       cd "repos/gui/cimgui"
+       git submodule update --init --recursive
        git submodule set-url -- imgui "${srcdir}/imgui"
        git -c protocol.file.allow=always submodule update
 }

bbaovanc commented on 2026-08-11 07:49 (UTC)

@GrabbenD Yes, it's failing for me too. I was able to get it to build by making these changes:

diff --git a/PKGBUILD b/PKGBUILD
index d1992cd..373dc6b 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -7,7 +7,7 @@ pkgname=("${_pkgname}-git"
          "${_pkgname}-host-git"
          "obs-plugin-${_pkgname}-git")
 epoch=2
-pkgver=B7.r238.gc8edf1ea
+pkgver=B7.r591.g77b66119
 pkgrel=1
 pkgdesc="An extremely low latency KVMFR (KVM FrameRelay) implementation for guests with VGA PCI Passthrough"
 url="https://looking-glass.io/"
@@ -18,12 +18,20 @@ makedepends=('binutils' 'cmake' 'fontconfig' 'git' 'libegl' 'libpipewire'
              'obs-studio' 'spice-protocol' 'wayland-protocols')
 source=("${_pkgname}::git+https://github.com/gnif/LookingGlass.git"
         "LGMP::git+https://github.com/gnif/LGMP.git"
+        "relacy::git+https://github.com/dvyukov/relacy.git"
         "PureSpice::git+https://github.com/gnif/PureSpice.git"
+        "ADL::git+https://github.com/gnif/ADL.git"
         "cimgui::git+https://github.com/cimgui/cimgui.git"
         "imgui::git+https://github.com/ocornut/imgui.git"
+        "cimplot::git+https://github.com/cimgui/cimplot.git"
+        "implot::git+https://github.com/epezent/implot.git"
         "wayland-protocols::git+https://gitlab.freedesktop.org/wayland/wayland-protocols.git"
         "nanosvg::git+https://github.com/memononen/nanosvg.git")
 sha512sums=('SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
             'SKIP'
             'SKIP'
             'SKIP'
@@ -41,15 +49,32 @@ pkgver() {
 prepare() {
    cd "${srcdir}/${_pkgname}"
    git submodule init
-   for module in LGMP PureSpice cimgui wayland-protocols nanosvg; do
+   for module in LGMP PureSpice wayland-protocols nanosvg; do
        git submodule set-url -- "repos/${module}" "${srcdir}/${module}"
    done
+   for module in cimgui cimplot; do
+       git submodule set-url -- "repos/gui/${module}" "${srcdir}/${module}"
+   done
    git -c protocol.file.allow=always submodule update

-   cd "repos/cimgui"
+   src_looking_glass="${srcdir}/looking-glass"
+
+   cd "${src_looking_glass}/repos/gui/cimgui"
    git submodule init
    git submodule set-url -- imgui "${srcdir}/imgui"
    git -c protocol.file.allow=always submodule update
+   cd "${src_looking_glass}/repos/LGMP"
+   git submodule init
+   git submodule set-url -- relacy "${srcdir}/relacy"
+   git -c protocol.file.allow=always submodule update
+   cd "${src_looking_glass}/repos/PureSpice"
+   git submodule init
+   git submodule set-url -- test/ADL "${srcdir}/ADL"
+   git -c protocol.file.allow=always submodule update
+   cd "${src_looking_glass}/repos/gui/cimplot"
+   git submodule init
+   git submodule set-url -- implot "${srcdir}/implot"
+   git -c protocol.file.allow=always submodule update
 }

 build() {

GrabbenD commented on 2026-08-10 18:12 (UTC) (edited on 2026-08-10 18:19 (UTC) by GrabbenD)

Is the build failing for anyone else? Using set -x I've tracked it back to: for module in LGMP PureSpice cimgui wayland-protocols nanosvg; do

Error:

+ git submodule set-url -- repos/cimgui /home/user/game/Repository/Pacman/looking-glass-git/src/cimgui
fatal: no submodule mapping found in .gitmodules for path 'repos/cimgui'

Command:

$ PACMAN=paru makepkg --syncdeps --install --force --cleanbuild --clean --skipinteg --nocheck

Omar007 commented on 2026-05-28 20:43 (UTC)

@hasardeur; no worries, I would prefer hearing about a potential issue and see if we can reproduce or pinpoint it rather than not hearing anything at all and finding out later it was reproducibly broken.

hasardeur commented on 2026-05-28 18:58 (UTC)

@Omar007 It fails even in chroot (using: extra-x86_64-build) - BUT only on one machine. All, meaning three others, of its identical twins build correctly. It must be something on that machine. When posting the error, it did not occur to me to test by replicating on a twin.

Obviously, there is no error connected to this package. Sorry to bother you - mea culpa.

Omar007 commented on 2026-05-26 18:44 (UTC) (edited on 2026-05-26 18:45 (UTC) by Omar007)

@hasardeur; I recently updated the patches being applied and removed those that can't be reproduced on any Arch system (any chroot, container or even bare-metal system build I have tried does not have this problem).

What system/distro are you on? Are you using any custom (makepkg/paru/...) flags? Can you reproduce it with/in a clean chroot?

hasardeur commented on 2026-05-26 16:00 (UTC) (edited on 2026-05-26 16:11 (UTC) by hasardeur)

GCC 16.1.1 appears to diagnose maybe-uninitialized warnings more aggressively than previous versions. My build fails like this:

-- The C compiler identification is GNU 16.1.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Performing Test COMPILER_SUPPORTS_MARCH_X86_64_V2
-- Performing Test COMPILER_SUPPORTS_MARCH_X86_64_V2 - Success
-- BFD libs: /usr/lib/libbfd.so
-- Found BFD: /usr/lib/libbfd.so
-- BFD libs: /usr/lib/libbfd.so
-- Found PkgConfig: /usr/bin/pkg-config (found version "2.5.1")
-- Checking for modules 'gio-2.0;gio-unix-2.0;libpipewire-0.3;libspa-0.2'
--   Found gio-2.0, version 2.88.1
--   Found gio-unix-2.0, version 2.88.1
--   Found libpipewire-0.3, version 1.6.5
--   Found libspa-0.2, version 0.2
-- The following features have been enabled:

 * ENABLE_BACKTRACE, Backtrace support.
 * USE_XCB, XCB/XSHM capture backend.
 * USE_PIPEWIRE, Pipewire Screencast capture backend.

-- The following features have been disabled:

 * OPTIMIZE_FOR_NATIVE, Optimized for x86-64-v2
 * ENABLE_ASAN, AddressSanitizer support.
 * ENABLE_UBSAN, UndefinedBehaviorSanitizer support.

-- Configuring done (0.3s)
-- Generating done (0.0s)
-- Build files have been written to: /home/hasardeur/.cache/paru/clone/looking-glass-git/src/looking-glass/host/build

**----- output omitted for brevity ------**

[ 75%] Building C object platform/Linux/capture/pipewire/CMakeFiles/capture_pipewire.dir/src/pipewire.c.o
[ 77%] Linking C static library libcapture_XCB.a
[ 77%] Built target capture_XCB
In file included from /usr/lib/glib-2.0/include/glibconfig.h:9,
                 from /usr/include/glib-2.0/glib/gtypes.h:34,
                 from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from /home/hasardeur/.cache/paru/clone/looking-glass-git/src/looking-glass/host/platform/Linux/capture/pipewire/src/portal.c:27:
In function ‘glib_autoptr_clear_GVariant’,
    inlined from ‘glib_autoptr_cleanup_GVariant’ at /usr/include/glib-2.0/glib/glib-autocleanups.h:96:1,
    inlined from ‘portal_createScreenCastSession’ at /home/hasardeur/.cache/paru/clone/looking-glass-git/src/looking-glass/host/platform/Linux/capture/pipewire/src/portal.c:201:23:
/usr/include/glib-2.0/glib/glib-autocleanups.h:96:1: error: ‘response’ may be used uninitialized [-Werror=maybe-uninitialized]
   96 | G_DEFINE_AUTOPTR_CLEANUP_FUNC(GVariant, g_variant_unref)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated due to -Wfatal-errors.
cc1: all warnings being treated as errors
make[2]: *** [platform/Linux/capture/pipewire/CMakeFiles/capture_pipewire.dir/build.make:93: platform/Linux/capture/pipewire/CMakeFiles/capture_pipewire.dir/src/portal.c.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:549: platform/Linux/capture/pipewire/CMakeFiles/capture_pipewire.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
==> ERROR: A failure occurred in build().
    Aborting...
error: failed to build 'looking-glass-git-2:B7.r190.g7f31ecf5-1'

A possible fix would be to alter the PKGBUILD like this:

build() {
    cd "${srcdir}/${_pkgname}"
    for b in {client,host,obs}/build; do
        mkdir "${b}"
        pushd "${b}"
        cmake \
            -DCMAKE_INSTALL_PREFIX=/usr \
            -DCMAKE_C_FLAGS="-Wno-error=maybe-uninitialized" \
            -DCMAKE_CXX_FLAGS="-Wno-error=maybe-uninitialized" \
            ..
        make
        popd
    done
}