void-packages icon indicating copy to clipboard operation
void-packages copied to clipboard

godot: update to 4.5.1, adopt

Open zen0bit opened this issue 2 weeks ago • 6 comments

Testing the changes

  • I tested the changes in this PR: yes

Local build testing

  • I built this PR locally for my native architecture, (x64 glibc)

zen0bit avatar Dec 07 '25 15:12 zen0bit

Hi! I’m currently updating Godot as part of the Vulkan stack update in my PR: https://github.com/void-linux/void-packages/pull/56439

Godot isn’t tied to the new glslang version yet, but once glslang is updated we’ll still need to revbump and rebuild Godot. Handling the update in the same flow avoids doing two separate build cycles and keeps everything consistent.

If you’d like, I can add you as a co-author of the Godot update commit and also list you as the package maintainer in my PR, since I don’t plan to maintain the package myself. Just let me know and I’ll update it.

Thanks for working on this!

Rutpiv avatar Dec 08 '25 14:12 Rutpiv

@Rutpiv yes

PS: Thinking if tpz (templates for export for Godot projects) should be also added as package/subpackage

But.. They are expected in "$HOME/.local/share/godot/export_templates/${version}/"

not tried if /usr/share will work 🤔

zen0bit avatar Dec 08 '25 15:12 zen0bit

I’ve only worked with export templates a few times in past projects, and when I needed them, I always installed them directly through the editor. But your idea makes sense, and I think we can support it cleanly in Void.

One option is to create a godot-export-templates subpackage together with a build option that enables or disables downloading the .tpz file. This way, anyone building the package who doesn’t want to download the templates (which are relatively large) can simply disable that option.

Regarding the install path: Godot expects templates under:

$HOME/.local/share/godot/export_templates/${version}/

I ran a quick test on my machine: I downloaded the .tpz, created:

/usr/share/godot/export_templates/${version}/

extracted the contents there, and then created a symlink with:

doas ln -s /usr/share/godot/export_templates ~/.local/share/godot

After that, Godot immediately recognized the templates and I was able to export a project without any issues. So /usr/share works fine, as long as the user creates the symlink.

About automating this: I’m not entirely sure about Void’s policies regarding writing directly to a user’s $HOME from a package template. Technically, it would be possible to create the directory and the symlink automatically, but since the package is installed system-wide (as root) and there may be multiple users on the machine, I’m not sure whether that would be allowed or considered correct. It might be something worth discussing.

If this approach sounds good, we can prototype the subpackage + optional download and include it in the PR. If you have any thoughts on this approach or prefer a different direction, I’m happy to help however I can.

By the way, I’ve added you as a co-author in the Godot commit and set you as the maintainer, as agreed.

Rutpiv avatar Dec 09 '25 02:12 Rutpiv

About automating this: I’m not entirely sure about Void’s policies regarding writing directly to a user’s $HOME from a package template.

That's exactly why I asked..

Maybe just add mention of symlinking to install msg?

zen0bit avatar Dec 09 '25 07:12 zen0bit

That makes sense. I checked the manual and subpackages can indeed have their own INSTALL.msg file:

srcpkgs/<pkgname>/<subpkg>.INSTALL.msg

So we can show the symlink instructions only when installing godot-export-templates, without affecting the main godot package.

Rutpiv avatar Dec 09 '25 13:12 Rutpiv

already did that, not yet in PR...

zen0bit avatar Dec 09 '25 13:12 zen0bit