Hi everyone! Upstream gamescope[1] have several embedded copies which current packaging changes for system libraries (except reshade patch[2]). But after looking at upstream git commits I believe upstream fully intends to use these dependencies in an embedded way. I am gonna list them with upstream intentions: 1. wlroots, libliftoff, vkroots They added check[3] to discourage use of system libraries for these dependencies. And the commit message states: > Packagers have been overriding our `force_fallback_for` definition, and > replacing our > submodules with their system libraries. > Gamescope regularly takes untagged work, and sometimes has its own > forks/branches of > projects with fixes and features that we need. > We also don't religiously follow wlroots versioning, which does not have a > stable ABI, > which is problematic when people want to mix and match. > Seriously, you should not change this! It is there for a reason, and I am > also tired > of debugging random issues reported across a myriad of distros with differing > random > patches because of this.
Also: wlroots - they are using the 0.18 version with backported optimization from 0.19. And if they don't intend to upgrade in near future gamescope could block wlroots transition in debian. vkroots - maintainer of vkroots does not guarantee any compatibility between versions[4]. For now it's fine but if in the future packageA needs vkroots commit from 2024 and packageB needs the latest commit this will definitely be problematic. 2. reshade I didn't find any upstream comments, but they are using a fork with small changes and don't update it regularly. So if we were to package it, it shouldn't be named reshade, so it doesn't interfere with possible reshade package from the original upstream. And this forked reshade would be only used by gamescope 3. stb They locked stb version in 2023[5] and recently forced it to always use embedded version[6] (which we patched to use dependency instead) 4. glm It was first introduced in 2023[7] and updated to 1.0.1 recently[8]. We don't have 1.0.1 in Debian yet, but gamescope builds and works fine (in my testing) for now. Also it was forced to be embedded just like stb[6] Debian policy[9] states: > Debian packages should not make use of these convenience copies unless the > included package is explicitly intended to be used in this way. I believe that upstream makes it very clear that it's their intention. And embedding these dependencies would be beneficial for users (more stable package) and relationship with upstream (less bug reports to upstream because of forced usage of system libraries). What do you think about it? And if you think it's a good idea I would appreciate some directions on what is the best way to embed git submodules and meson subprojects in the source package. Cheers Ilya [1]: https://github.com/ValveSoftware/gamescope [2]: https://salsa.debian.org/games-team/gamescope/-/blob/debian/3.16.14-1/debian/patches/0006_use_system_wlroots-0.18-headers.patch [3]: https://github.com/ValveSoftware/gamescope/commit/7741cd587fa2274989f3307a3c6f23ab08e98460 [4]: https://github.com/misyltoad/vkroots/issues/4#issuecomment-1453841820 [5]: https://github.com/ValveSoftware/gamescope/commit/bc503b32060e7fa0ad11b7fd70fac2614241af9b [6]: https://github.com/ValveSoftware/gamescope/commit/baae74c4b13676fa76a8b200f21ac78f55079734 [7]: https://github.com/ValveSoftware/gamescope/commit/5ce316fa5723a8a1419217cb1340e4a3a41c0394 [8]: https://github.com/ValveSoftware/gamescope/commit/0fed8f3d69203c5bea20c73eb526574260f4ebd7 [9]: https://www.debian.org/doc/debian-policy/ch-source.html#embedded-code-copies