Secretchronicles / TSC

An open source two-dimensional platform game.
https://secretchronicles.org/
GNU General Public License v3.0
205 stars 49 forks source link

TSC AppImage package for amd64/arm64/s390x #708

Open xet7 opened 1 year ago

xet7 commented 1 year ago

Hi, I will be adding TSC .deb packages for those newer distros, where required dependencies exists. I will update this issue when there is progress, and after updates close this issue.

Someone today 2023-07-04 at Libera.Chat IRC channel secretchronicles asked about this error at Debian 12 amd64:

At IRC:

someone: when i run command tsc to start the game in /usr/share/tsc where the game is installed, the terminal give this ? i run Debian 12 x64 furbot: Title: $ tscNo joysticks availableCEGUI::InvalidRequestException in function void someone: this happens when i click Options from the game menu and then it crash with that message

Error:

$ tsc
No joysticks available
CEGUI::InvalidRequestException in function 'void CEGUI::Editbox::setValidationString(const CEGUI::String&)' (./cegui/src/widgets/Editbox.cpp:161) : Unable to set validation string on Editbox 'game_spinner_camera_hor_speed/__auto_editbox__' because it does not currently have a RegexMatcher validator.
Uncought exception. You might want to file a bug; see <https://secretchronicles.org/>.
terminate called after throwing an instance of 'CEGUI::InvalidRequestException'
  what():  CEGUI::InvalidRequestException in function 'void CEGUI::Editbox::setValidationString(const CEGUI::String&)' (./cegui/src/widgets/Editbox.cpp:161) : Unable to set validation string on Editbox 'game_spinner_camera_hor_speed/__auto_editbox__' because it does not currently have a RegexMatcher validator.
Avbruten (SIGABRT) (memory print created)
knarrff commented 10 months ago

cegui refactored Editbox somewhen early 2022 and Debian 12 ships with a cegui git-version of 2022-06, which includes these changes, but the current Debian (11) TSC package is older and cannot have been built against those changes, effectively leading to a version incompatibility. Maybe (I did not check) all that is needed is a rebuild using current Debian12.

However, then I read in INSTALL.md:

TSC needs CEGUI version 0.7.x.

while the debian package has as dependency:

libcegui-mk2-0.8.7

So I am unsure what is true.

xet7 commented 10 months ago

@knarrff

For Debian 12, try does this work. I did build it at 2023-07-17. I did not yet have time to add it to TSC website.

https://ftp.secretchronicles.org/releases/TSC-2.1.0-bookworm-amd64.deb

xet7 commented 10 months ago

For any others, that are not yet at website, those are also here:

https://ftp.secretchronicles.org/releases/

I try to build packages for newer distros, when I have some time.

knarrff commented 10 months ago

@knarrff

For Debian 12, try does this work. I did build it at 2023-07-17. I did not yet have time to add it to TSC website.

https://ftp.secretchronicles.org/releases/TSC-2.1.0-bookworm-amd64.deb

Unfortunately, no. Starting the game and opening the options menu leads still to:

$ tsc
No joysticks available
CEGUI::InvalidRequestException in function 'void CEGUI::Editbox::setValidationString(const CEGUI::String&)' (./cegui/src/widgets/Editbox.cpp:161) : Unable to set validation string on Editbox 'game_spinner_camera_hor_speed/__auto_editbox__' because it does not currently have a RegexMatcher validator.
Uncought exception. You might want to file a bug; see <https://secretchronicles.org/>.
terminate called after throwing an instance of 'CEGUI::InvalidRequestException'
  what():  CEGUI::InvalidRequestException in function 'void CEGUI::Editbox::setValidationString(const CEGUI::String&)' (./cegui/src/widgets/Editbox.cpp:161) : Unable to set validation string on Editbox 'game_spinner_camera_hor_speed/__auto_editbox__' because it does not currently have a RegexMatcher validator.
Aborted

I think the reason is that the version of cegui in Debian is too old, despite the package name. See also https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1038463

xet7 commented 10 months ago

@knarrff

I think solution to this is for me to try to create AppImage, that works at most distros.

knarrff commented 10 months ago

Maybe. On the other hand,

@knarrff I think solution to this is for me to try to create AppImage, that works at most distros.

Honestly: as a Debian user I would have much preferred a native Debian package, as in: TSC being shipped officially with Debian. I find AppImages (or any of such solutions) rather inelegant, but have to confess that they have their benefits.

xet7 commented 10 months ago

@knarrff

It is a lot of work to create separate .deb package for every release of every distro, as can be seen in amount of different .deb packages here:

https://secretchronicles.org/en/download/

And some dependencies are not available at some distros.

I do not know how to get some package shipped officially with Debian, or with any other distro.

ghost commented 10 months ago

Is it possible to create a flatpak?

xet7 commented 10 months ago

@nattkorp

Depends does someone help with creating flatpak, there is incomplete PR at https://github.com/Secretchronicles/TSC/pull/675