Finally my game @99managers was built as reproducible build on f-droid build server 馃嵕

I think this is the first reproducible godot game on F-Droid and I hope it will help others to make also their games reproducible. It was a lot of work but with help from the awesome F-Droid maintainer linsui it finally worked.

Now my merge request still has to be merged, but once that is done, the game will finally be available also on F-Droid.

#godotengine #fdroid #reproduciblebuilds

@dulvui @99managers

What were the challenges in getting the game reproducible? Shouldn't that be the case out of the box?

@marcel @99managers The main problem was that the game needs to be built from a clean machine or even better a container without any godot cache. Also the game project has to be clean and not have any .godot/ directory or similar that can have some internal caches of uid or imported files.

For a reproducible build my build and the f-droid build have to be exactly the same, bit by bit. So even timestamps of files packed in the apk must exactly match or be stripped.

@marcel @99managers Additionally for F-Droid everything has to be built from source and therefore also the godot engine itself. So I had to build also that with the same flags/parameters etc... but the next days I will try to get it working with the official engine build so that also there the exports match bit by bit.

But on the other hand custom builds of the engine allow to remove not needed features, such as 3D, XR etc to get a smaller (maybe even faster) build.

@marcel @99managers Here the merge request with more details on what went wrong and what finally worked
https://gitlab.com/fdroid/fdroiddata/-/merge_requests/36190
New App: org99managers.futsal_edition (!36190) 路 Merge requests 路 F-Droid / Data 路 GitLab

Please make sure your fdroiddata fork is public and your branch is not protected. See https://docs.gitlab.com/user/project/repository/branches/protected/. We enable fast-forward merges by...

GitLab
@dulvui @99managers Wow, that's pretty involved. Shame there wasn't much info for you to go on. Good work though, hopefully the engine can do better with your findings

@marcel @99managers Thanks! Yeah this was very intensive, but at least now other godot devs, that want to release a reproducible build on F-Droid, have it much easier, and know that it is even possible.

From the engine side, I guess the only part that could be changed is that when exporting the apk files, the zip metadata gets removed. Probably I will open an issue/PR the next weeks.