Closed akien-mga closed 8 years ago
The package with the export templates wouldn't be a package for a specific architecture, it'd be arch independent, or multi arch. How do they package other things, like wine, or something like Android, that cross compiles to arm and has arm libraries? The idea is that you use the host tools on the host system (that has to match the distro's architecture), but the output can be for any architecture that the engine supports to export to..
On Fri, Feb 20, 2015 at 12:57 PM, Akien notifications@github.com wrote:
I am trying to package Godot for a Linux distribution (Mageia), and there is one aspect that bothers me in the export feature: for the Linux and Windows templates, if you don't have all four export templates (32/64bit, release/debug), you can't export your game, even if you were only planning to use e.g. the 64_release template.
In my example, is the 32_release template really needed to export to 64bit, or is it just an overzealous test that locks down the export feature?
My main concern with this is that I can't package the Godot tools for 32bit systems, since I can't provide 64bit templates on such systems (32bit distros don't have 64bit package repositories). On the other hand, I'd like to package my 64bit Godot with the 64bit Linux export template, and make the 32bit export template optional, for 64bit users that don't enable 32bit repositories on Mageia.
— Reply to this email directly or view it on GitHub https://github.com/okamstudio/godot/issues/1404.
The package with the export templates wouldn't be a package for a specific architecture, it'd be arch independent, or multi arch.
The problem here is that when packaging the export templates, they are built on a buildsystem that matches the target architecture, i.e. the export templates package that will be available in 32bit repos can only contain 32bit templates, since I can't cross compile to 64bit on a 32bit system.
On the other hand, on a 64bit system I have access to both the 64bit repos (where I have the 64bit Godot engine and export templates) and the 32bit repos (where I have the32bit Godot engine that I won't install since I have the 64bit version, and the 32bit export templates that I need).
Note that I'm intent on building the templates myself, since providing third-party binaries that we don't build ourselves (even for open source stuff) would be against Mageia's licensing policy. So my initial plan would be to have:
That's still less than what most game developers would need, but my aim is more to provide a Godot that works out of the box on Mageia, and let the developers install the additional export templates themselves using your binary package (then it's no longer Mageia's concern). But at least they would be able to experiment with the engine and test games on their own Linux system.
The idea is that you use the host tools on the host system (that has to match the distro's architecture), but the output can be for any architecture that the engine supports to export to..
That's good to know. I wondered whether Godot on a 32bit system could create 64bit binaries, I'm glad to see that it can. But as stated above, I can't provide the 64bit export templates on 32bit systems :-/
How do they package other things, like wine, or something like Android, that cross compiles to arm and has arm libraries?
For wine, the buildsystem creates a "wine" package for the 32bit repos, and a "wine64" package for the 64bit repos. Most 64bit users would still install "wine" from the 32bit repos that are available to them, since "wine64" is more experimental and can't run 32bit Windows applications (i.e. 99% of Windows apps). For android, I don't really know. I think we only provide the SDK, Mageia does not support the arm platform yet.
If you are familiar with RPM packaging, here's how it would look like: http://hastebin.com/xasubaxoni.apache
Edit: It's a WIP and I'm using a /usr/bin/godot script that ensures that symbolic links are created in ~/.godot/templates to point to /usr/libexec/godot/linux_*, to circumvent #1026.
The %bits variable is initialised to 32 or 64 depending on the buildsystem's architecture, and then generates the corresponding packages.
Fixed by #2292 \o/
I am trying to package Godot for a Linux distribution (Mageia), and there is one aspect that bothers me in the export feature: for the Linux and Windows templates, if you don't have all four export templates (32/64bit, release/debug), you can't export your game, even if you were only planning to use e.g. the 64_release template.
In my example, is the 32_release template really needed to export to 64bit, or is it just an overzealous test that locks down the export feature?
My main concern with this is that I can't package the Godot tools for 32bit systems, since I can't provide 64bit templates on such systems (32bit distros don't have 64bit package repositories). On the other hand, I'd like to package my 64bit Godot with the 64bit Linux export template, and make the 32bit export template optional, for 64bit users that don't enable 32bit repositories on Mageia.