Re: [opensuse-packaging] Packaging Godot
On Sat, Jul 28, 2018 at 12:03 PM Rémi Verschelde <rverschelde@gmail.com> wrote:
2018-07-28 17:53 GMT+02:00 Neal Gompa <ngompa13@gmail.com>:
On Sat, Jul 28, 2018 at 11:51 AM Max Mitschke <maxmitschke@fastmail.com> wrote:
Howdy,
Can someone advise me on how best to package the Godot game engine?
The game engine includes a fair amount of modified third-party libraries in the source repo. To give an example, the ENET library has been modified to include IPv6 support and for the library to be usable by Godot’s socket implementation. A lot of other small libraries have been modified and clearly marked with "// -- GODOT —“ comments within the code.
Another maintainer for Godot has already begun the process of including some openSUSE libraries. But I believe openSUSE requires that all third-party library code be packaged separately. The current status of the Godot package can be found at the second link which is listed below.
Godot is packaged by one of the developers (Rémi Verschelde) for Fedora and Mageia. You may wish to consider his spec files for guidance on how to package for openSUSE:
Fedora: https://src.fedoraproject.org/rpms/godot/blob/master/f/godot.spec Mageia: http://svnweb.mageia.org/packages/cauldron/godot/current/SPECS/godot.spec?vi...
Indeed, I'm the upstream project manager and also a Linux packager, so I'd suggest this to be the "right" way to package Godot (not that there's only one good way though, but this one should be good).
You can reuse my Fedora/Mageia spec fully or in part, as far as I'm concerned it's public domain (strictly speaking I believe the Fedora one would be MIT-licensed by default).
I'll gladly answer questions or review your spec if needed - do note that I'll be AFK for the next 10 days though.
As I was the one that reviewed the Fedora package for merge into the distribution, feel free to ask me as well, given Rémi's leave for the next week or so. :) -- 真実はいつも一つ!/ Always, there's only one truth! -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Neal Gompa:
On Sat, Jul 28, 2018 at 12:03 PM Rémi Verschelde <rverschelde@gmail.com> wrote:
2018-07-28 17:53 GMT+02:00 Neal Gompa <ngompa13@gmail.com>:
On Sat, Jul 28, 2018 at 11:51 AM Max Mitschke <maxmitschke@fastmail.com> wrote:
[...]
Another maintainer for Godot has already begun the process of including some openSUSE libraries. But I believe openSUSE requires that all third-party library code be packaged separately. The current status of the Godot package can be found at the second link which is listed below. [...] Fedora: https://src.fedoraproject.org/rpms/godot/blob/master/f/godot.spec Mageia: http://svnweb.mageia.org/packages/cauldron/godot/current/SPECS/godot.spec?vi...
Indeed, I'm the upstream project manager and also a Linux packager, so I'd suggest this to be the "right" way to package Godot (not that there's only one good way though, but this one should be good).
You can reuse my Fedora/Mageia spec fully or in part, as far as I'm concerned it's public domain (strictly speaking I believe the Fedora one would be MIT-licensed by default). [...] As I was the one that reviewed the Fedora package for merge into the distribution, feel free to ask me as well, given Rémi's leave for the next week or so. :)
Thanks to everybody involved! The current openSUSE spec for Godot (as posted by Max: [1]) takes a similar approach as your Fedora spec by unbundling some vendored third party code. The open question (for openSUSE factory maintainers) remains, whether this is enough in regard to the openSUSE policy to "make every effort to avoid having multiple, separate, upstream projects bundled together in a single package" [2] because we currently only unbundle what is offered by Godot options, not patched by Godot and available in openSUSE. "Make every effort" might indicate, we have to add and maintain all (missing) third party libraries (possibly patched "godotish") and perhaps rewrite the Godot build scripts to work with these new system provided packages. So, hopefully taking "make every effort" literally is not intended and following the Fedora approach is enough and acceptable for Tumbleweed or later Leap inclusion? [1] https://build.opensuse.org/package/show/games:tools/godot [2] https://en.opensuse.org/openSUSE:Packaging_guidelines cunix -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Sunday 2018-07-29 18:15, cunix wrote:
"make every effort to avoid having multiple, separate, upstream projects bundled together in a single package" [2]
"Make every effort" might indicate, we have to add and maintain all (missing) third party libraries (possibly patched "godotish") and perhaps rewrite the Godot build scripts to work with these new system provided packages.
1. the godot modification to the library can easily be "extracted" 2. is small and easy to apply to the original 3. the resulting modified library is still compatible with both original and godot expectations and uses. If one of these three conditions is false, then the amount of work usually turns beyond what is considered acceptable levels - and so using the bundled code becomes acceptable. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Sun, Jul 29, 2018 at 12:29 PM Jan Engelhardt <jengelh@inai.de> wrote:
On Sunday 2018-07-29 18:15, cunix wrote:
"make every effort to avoid having multiple, separate, upstream projects bundled together in a single package" [2]
"Make every effort" might indicate, we have to add and maintain all (missing) third party libraries (possibly patched "godotish") and perhaps rewrite the Godot build scripts to work with these new system provided packages.
1. the godot modification to the library can easily be "extracted" 2. is small and easy to apply to the original 3. the resulting modified library is still compatible with both original and godot expectations and uses.
If one of these three conditions is false, then the amount of work usually turns beyond what is considered acceptable levels - and so using the bundled code becomes acceptable.
This is more or less the test that Rémi uses. My advice would be to also include the Provides: bundled() statements used in the Fedora/Mageia packaging with the comments describing why they are bundled. I know that the bundled() Provides thing pioneered by Fedora was recently proposed to be broadly adopted by openSUSE recently, but in this case, I find it very helpful for identifying what the conditions are for unbundling stuff, and as far as I know, there's no ban on it. -- 真実はいつも一つ!/ Always, there's only one truth! -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Neal Gompa: [...]
This is more or less the test that Rémi uses. My advice would be to also include the Provides: bundled() statements used in the Fedora/Mageia packaging with the comments describing why they are bundled.
Being not an expert in this area, can you or Rémi explain, why the Fedora spec uses the "Provides: bundled()" statements for some libraries that are not unbundled but not for others, for example etc2comp, thekla_atlas and others including the files in the /thirdparty/misc directory? [...] cunix -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
participants (3)
-
cunix
-
Jan Engelhardt
-
Neal Gompa