Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Godot Version 3.5.3 Support? #121

Open
Sam2much96 opened this issue Sep 29, 2023 · 12 comments
Open

Godot Version 3.5.3 Support? #121

Sam2much96 opened this issue Sep 29, 2023 · 12 comments
Labels
RELEASE Tag for new release-related issues

Comments

@Sam2much96
Copy link

Sam2much96 commented Sep 29, 2023

Version 3.5.3 fixes API target requirements for apps published to Google PlayStore. It'll be sweet to get support?

@Calinou Calinou added the RELEASE Tag for new release-related issues label Oct 1, 2023
@Razzlegames
Copy link

Hi all,

@abarichello, Would this be as simple as updating the GODOT_VERSION here?

ARG GODOT_VERSION="4.0.2"

I didn't see another maintained branch for version 3 (just a tag 3.5_stable and an old 3.2 branch)

@Razzlegames
Copy link

Razzlegames commented Oct 14, 2023

I noticed the 3.5.3 version from tux family segfaults on this command:

/usr/bin/bash: line 148: 16 Segmentation fault (core dumped) godot --editor --quit

Also this equivalent line when building the container RUN godot -e -q ${GODOT_TEST_ARGS}

This is after I altered the Dockerfile to use the newest Godot 3.5.3 release

FROM ubuntu:jammy
LABEL author="https://github.com/aBARICHELLO/godot-ci/graphs/contributors"

USER root
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
    ca-certificates \
    git \
    git-lfs \
    unzip \
    wget \
    zip \
    adb \
    openjdk-11-jdk-headless \
    rsync \
    && rm -rf /var/lib/apt/lists/*

ARG GODOT_VERSION="3.5.3"
ARG RELEASE_NAME="stable"
ARG SUBDIR=""
ARG GODOT_TEST_ARGS=""
ARG GODOT_PLATFORM="linux_server.64"

RUN wget https://downloads.tuxfamily.org/godotengine/${GODOT_VERSION}${SUBDIR}/Godot_v${GODOT_VERSION}-${RELEASE_NAME}_${GODOT_PLATFORM}.zip \
    && wget https://downloads.tuxfamily.org/godotengine/${GODOT_VERSION}${SUBDIR}/Godot_v${GODOT_VERSION}-${RELEASE_NAME}_export_templates.tpz \
    && mkdir ~/.cache \
    && mkdir -p ~/.config/godot \
    && mkdir -p ~/.local/share/godot/templates/${GODOT_VERSION}.${RELEASE_NAME} \
    && ln -s ~/.local/share/godot/templates ~/.local/share/godot/export_templates \
    && unzip Godot_v${GODOT_VERSION}-${RELEASE_NAME}_${GODOT_PLATFORM}.zip \
    && mv Godot_v${GODOT_VERSION}-${RELEASE_NAME}_${GODOT_PLATFORM} /usr/local/bin/godot \
    && unzip Godot_v${GODOT_VERSION}-${RELEASE_NAME}_export_templates.tpz \
    && mv templates/* ~/.local/share/godot/templates/${GODOT_VERSION}.${RELEASE_NAME} \
    && rm -f Godot_v${GODOT_VERSION}-${RELEASE_NAME}_export_templates.tpz Godot_v${GODOT_VERSION}-${RELEASE_NAME}_${GODOT_PLATFORM}.zip

ADD getbutler.sh /opt/butler/getbutler.sh
RUN bash /opt/butler/getbutler.sh
RUN /opt/butler/bin/butler -V

ENV PATH="/opt/butler/bin:${PATH}"

# Download and setup android-sdk
ENV ANDROID_HOME="/usr/lib/android-sdk"
RUN wget https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip \
    && unzip commandlinetools-linux-*_latest.zip -d cmdline-tools \
    && mv cmdline-tools $ANDROID_HOME/ \
    && rm -f commandlinetools-linux-*_latest.zip

ENV PATH="${ANDROID_HOME}/cmdline-tools/cmdline-tools/bin:${PATH}"

RUN yes | sdkmanager --licenses \
    && sdkmanager "platform-tools" "build-tools;33.0.2" "platforms;android-33" "cmdline-tools;latest" "cmake;3.22.1" "ndk;25.2.9519653"

# Adding android keystore and settings
RUN keytool -keyalg RSA -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999 \
    && mv debug.keystore /root/debug.keystore

RUN godot -e -q ${GODOT_TEST_ARGS}
RUN echo 'export/android/android_sdk_path = "/usr/lib/android-sdk"' >> ~/.config/godot/editor_settings-4.tres
RUN echo 'export/android/debug_keystore = "/root/debug.keystore"' >> ~/.config/godot/editor_settings-4.tres
RUN echo 'export/android/debug_keystore_user = "androiddebugkey"' >> ~/.config/godot/editor_settings-4.tres
RUN echo 'export/android/debug_keystore_pass = "android"' >> ~/.config/godot/editor_settings-4.tres
RUN echo 'export/android/force_system_user = false' >> ~/.config/godot/editor_settings-4.tres
RUN echo 'export/android/timestamping_authority_url = ""' >> ~/.config/godot/editor_settings-4.tres
RUN echo 'export/android/shutdown_adb_on_exit = true' >> ~/.config/godot/editor_settings-4.tres

@Razzlegames
Copy link

Hey all, I verified this does look like it's an issue with the 3.5.3 build (at least on tux family). It segfaults after any command line run. E.g:

../../../Godot_v3.5.3-stable_linux_server.64 --quit --editor
   at: _load (core/io/resource_loader.cpp:270)
ERROR: res://Levels/TestFirstLevel/mainPocLevel.tscn:3 - Parse Error: [ext_resource] referenced nonexistent resource at: res://Prefabs/Decorations/Parallax/Jungle/JungleAmbienceLoader.tscn
   at: poll (scene/resources/resource_format_text.cpp:412)
ERROR: Failed to load resource 'res://Levels/TestFirstLevel/mainPocLevel.tscn'.
   at: load (core/io/resource_loader.cpp:206)
ERROR: Failed loading resource: res://Levels/TestFirstLevel/mainPocLevel.tscn. Make sure resources have been imported by opening the project in the editor at least once.
   at: _load (core/io/resource_loader.cpp:270)
ERROR: Failed loading scene: res://Levels/TestFirstLevel/mainPocLevel.tscn
   at: start (main/main.cpp:2107)
Segmentation fault

I'm going to file a bug report with the main Godot repo

@Sam2much96
Copy link
Author

Awesome!

@Sam2much96
Copy link
Author

Any updates on this?

@Calinou
Copy link
Collaborator

Calinou commented Mar 24, 2024

Any updates on this?

Given godotengine/godot#85733, we'd need the issue to be fixed and 3.5.4 to be released first for a new 3.x Docker image to be usable.

@Razzlegames
Copy link

Hey all, Sorry I haven't had time to verify the root cause.

If anyone has time a simple case of reproduction and setting up the container (or a local Linux VM etc) to core dump will probably yield the root cause:

https://stackoverflow.com/questions/17965/how-to-generate-a-core-dump-in-linux-on-a-segmentation-fault

Then use addr2line etc

You could also run one of the offending commands with gdb on a debug bin with symbols to find the issue.

@Sam2much96
Copy link
Author

Godot 3.6 beta released yesterday, can we do this?

@Razzlegames
Copy link

Razzlegames commented Aug 4, 2024

@Sam2much96 I have an image you can use ready: https://hub.docker.com/layers/razzlegames/godot-ci/3.5.3_fixed/images/sha256-ab332dc8a2ae8cf9a58e82de6d8f965feac5a210a489c6ebe362d48c42a7139e?context=repo

You can reference it as:
razzlegames/godot-ci:3.5.3_fixed

It works for my pipeline but please let me know your results.

I also made a PR but there's no baseline 3.5 branch.

Can someone with admin permissions please create a 3.5 branch off the 3.5-stable tag?
@Calinou @abarichello etc?

If so I can fix the PR to the correct remote branch.

@Razzlegames
Copy link

Razzlegames commented Aug 4, 2024

FYI: I didn't determine the root cause as the segfault was not reproduceable in the Godot 3.5 branch and it appears the 3.5.3 binaries from official Godot Github work: https://github.com/godotengine/godot/releases/tag/3.5.3-stable

So I went with these (see my PR for details, look only at the Dockerfile: https://github.com/abarichello/godot-ci/pull/147/files#diff-dd2c0eb6ea5cfc6c4bd4eac30934e2d5746747af48fef6da689e85b752f39557).

@Sam2much96
Copy link
Author

Sam2much96 commented Aug 4, 2024

@Razzlegames The Workflow Builds successfully for Linux and Windows, it breaks on Android with this error:

ERROR: Cannot export project with preset "Android" due to configuration errors:
A valid Android SDK path is required in Editor Settings.

I believe it can be fixed with come custom bash scripts on Linux, if the Android SDK templates for 3.5.3 are available in the workflow repository

@Calinou
Copy link
Collaborator

Calinou commented Aug 4, 2024

Can someone with admin permissions please create a 3.5 branch off the 3.5-stable tag?
@Calinou @abarichello etc?

Done: https://github.com/abarichello/godot-ci/tree/3.5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
RELEASE Tag for new release-related issues
Projects
None yet
Development

No branches or pull requests

3 participants