[Bug 1552767] Review Request: godot - Multi-platform 2D and 3D game engine with a feature-rich editor

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.redhat.com/show_bug.cgi?id=1552767



--- Comment #5 from Neal Gompa <ngompa13@xxxxxxxxx> ---
(In reply to Rémi Verschelde from comment #4)
> (In reply to Neal Gompa from comment #3)
> > Spec review notes:
> > 
> > > %if 0%{?mageia}
> > > BuildRequires:  appstream-util
> > > %else
> > > BuildRequires:  libappstream-glib
> > > %endif
> > 
> > This could be simplified to "BuildRequires: %{_bindir}/appstream-util"
> > 
> > "dnf install /usr/bin/appstream-util" works on both Fedora and Mageia, so I
> > would think this should work in your spec.
> 
> Sure, will do.
> 
> > > # Git commit slightly newer than 2.87
> > > # Can be unbundled if bullet 2.88+ is available
> > > Provides:       bundled(bullet) = 2.87
> > 
> > If you know the Git commit, could you put that in the Provides versioning?
> > 
> > Something like the following:
> > 
> > Provides: bundled(bullet) = 2.87+git<commitdate>.<shorthash>
> 
> Is the `+git<commitdate>.<shorthash>` standard enough? I wouldn't want
> scripts relying on parsing `bundled()` provides to break due to invalid NEVR
> expressions.
> 
> How about simply specifying the commit
> (d05ad4b821ba867dfd01f1e5f22c4d9d1bda6869) in a comment instead?
> 

You can do that too, if you'd prefer. We don't actually have any tooling for
processing bundled() Provides. It's mainly observed by humans when checking for
security issues.

> > > # Has some modifications for IPv6 support, upstream enet is unresponsive
> > > # Should not be unbundled.
> > > Provides:       bundled(enet) = 1.3.13
> > 
> > I checked into this, it seems like upstream seems to want a mailing list
> > discussion first[1]? I'm not entirely sure what this means, but it'd be nice
> > if IPv6 support was in upstream enet (there are three pull requests for
> > it...)
> > 
> > [1]: https://github.com/lsalzman/enet/issues/78
> 
> We had very lengthy discussions before deciding to vendor and modify enet
> [0].
> 
> The upstream maintainer is very uncooperative (and now, completely
> inactive), so all projects using enet have ended up forking it for their own
> usage. There is as of yet no "main" fork to use as upstream, and we
> eventually wrote our own Godot socket interface to enet, which allows for a
> much better integration than if we were using the pristine code.
> 
> So currently unbundling enet is not possible, and not desired.
> 
> [0]: https://github.com/godotengine/godot/issues/6992
> 

This is reasonable, though someone really should try to revive it properly so
forking ad infinitum goes away...

> > > # Upstream commit from 2016, newer than 1.0.0.27 which is last tag
> > > # Could be unbundled if packaged.
> > > # Godot upstream will soon deprecate this "libsimplewebm" module.
> > > Provides:       bundled(libwebm)
> > 
> > As you're an upstream developer, I would suggest that libmatroska would be a
> > better alternative to libwebm (libmatroska can parse webm containers too,
> > since they are a subset of mkv). But if you're deprecating it...
> 
> We're going to replace most audio and video plugins (apart from vorbis) by
> pluggable libraries using the GDNative interface, so that all users can
> simply pick the plugins they need without having to bundle all the world.
> 

OK.

> > > # Could be unbundled if packaged.
> > > Provides:       bundled(nanosvg)
> > 
> > If this[2] is the nanosvg in question, I can see why it's bundled instead of
> > packaged.
> > 
> > Could you indicate what commit is packaged in nanosvg? You can do something
> > like the following:
> > 
> > Provides: bundled(nanosvg) = 0-0.git<commitdate>.<shorthash>
> > 
> > [2]: https://github.com/memononen/nanosvg
> 
> That's this nanosvg yeah, so far it's not package in distros that I know of.
> I haven't actually looked into packaging it yet, but it's a header-only
> library meant to be vendored by design.
> 
> The bundled commit is 9a74da4db5ac74083e444010d75114658581b9c7. Same
> question as above regarding putting it as the bundled() version, can we
> consider that format standard? The Bundled Software policy [1] is not really
> explicit.
> 
> [1]: https://fedoraproject.org/wiki/Bundled_Software_policy
> 

As I said earlier, it's mainly for humans to analyze, so there's no "standard"
aside from using a valid RPM version-release.

Since nothing is supposed to require bundled() Provides, it should be fine to
use that too..

> > > # Could be unbundled if packaged.
> > > Provides:       bundled(squish) = 1.15
> > 
> > Is there any reason it couldn't be packaged? It looks like libsquish is
> > fairly active and releases often enough.
> 
> Not that I know of, just needs someone to package it :)
> 
> As long as Godot is the only user of this dependency, and we already
> provided bundled sources, I have little incentive to package it myself. But
> if it were, it's already easy to unbundle with the `builtin_squish=no`
> argument.
> 
> The Bundled Software policy [1] doesn't explicitly require packaging
> thirdparty libraries to unbundle them, but only to use those libraries which
> are already available. Still, I'm a packager and like clean things, so I
> might end up packaging libsquish and thus unbundling it somewhere down the
> road.
> 
> > > # Can't be unbundled out-of-the-box as it uses experimental APIs available
> > > # only to static linking. They're not critical features though and could
> > > # maybe be patched away to link against a shared zstd.
> > Provides:       bundled(zstd) = 1.3.3
> > 
> > Have you talked to upstream[3] about stabilizing the APIs used by Godot so
> > that it can use a dynamically linked libzstd?
> > 
> > [3]: https://github.com/facebook/zstd
> 
> No, it's actually a Godot bug to be using experimental APIs in the first
> place (just opened [2] about it). The contributor who integrated zstd likely
> did not pay attention to this (those APIs are available when linking
> statically), I found out that it doesn't build against system shared
> libraries quite recently. AFAIK there's no reason that the stable APIs
> wouldn't suffice.
> 
> [2]: https://github.com/godotengine/godot/issues/17374

Good to know.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are always notified about changes to this product and component
_______________________________________________
package-review mailing list -- package-review@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to package-review-leave@xxxxxxxxxxxxxxxxxxxxxxx




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite Conditions]     [KDE Users]

  Powered by Linux