Subject: [PATCH 0/4] Add mangohud (update dear-imgui)

From: John Kehayias <[email-masked]>
Date: Tue, 04 Jan 2022 22:20:46 +0000

Hi Guix,

Here is a short series of patches to add mangohud (a cool Vulkan/OpenGL overlay for things like framerate and hardware display in games). There were a few steps involved that required some tweaks to other packages. Here is the breakdown, corresponding to the forthcoming patches:

1. pciutils-no-zlib: A new hidden package to provide uncompressed hardware info (pci.ids). Mangohud and at least one other package I have read this file directly, which is typically uncompressed, i.e. on Arch. We could later change it in pciutils or have both uncompressed and compressed, or a separate package just for the hardware info. Since this would be a bigger change, I opted for a simple hidden package of the full pciutils (I think programs will need the rest of the package anyway).

2. spdlog: Build with '-fpic'. Since this is compiled as a static library, and upstream implies this is more typical, compile it in a way to be useful to shared libraries as well (needed for mangohud). I checked a random package that uses spdlog and it built fine at least.

3. dear-imgui: Update to 1.81. This not the latest, but most recent of the Debian makefiles we use. The only dependent is Ogre (very out of date) which just uses the source, but needs 1.79. I made the previous one a hidden package and updated Ogre to use that. There were enough build changes that I didn't think an inherit would be very clean. Also added in the static library output (preferred by mangohud). New is many inputs for the backends (optional).

4. mangohud: The new addition. Unbundled libraries to use guix's spdlog, dear-imgui, fixed hardcoded paths. Tested that it builds and works. The only guix lint complaint was about the dear-imgui static input name not matching (also needed dear-imgui for the headers and pkgconfig file).

Okay, that's it! A few changes but I think these are not invasive and were the cleanest on my end to use.

Thanks!
John