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

Linux flatpack/AppImage other rpm/.deb #7

Open
Dracks opened this issue Dec 7, 2023 · 14 comments
Open

Linux flatpack/AppImage other rpm/.deb #7

Dracks opened this issue Dec 7, 2023 · 14 comments
Assignees

Comments

@Dracks
Copy link

Dracks commented Dec 7, 2023

To continue the discussion opened in my P/R: #6

Will be nice to have some flatpack, appimage or similar, since I've got a linux as a personal laptop, I will try to investigate and generate.

The only issue I see is how to work with the external data, since should not be anymore relative to the executable and should be in the user directory or some global/system directory. But first things first, create some packed app for linux.

Note: I cannot assign it to me :(

@codeflorist
Copy link
Collaborator

I assigned you the issue!

All external data (meaning the data, music, save and campaign directories as well as duneconfig.cfg) can already reside in the personal data directory ~/.local/share/dunedynasty. So that should already work out of the box.

The folders music (external music packs) and campaign (custom campaigns) might be a bit problematic though, since they include required ini- and cfg-files. So these folders must be copied over to the personal data directory.

It would be the best option to retain the functionality to have everything in the same folder as the executable. This way file-handling would be consistant on all platforms, the music and campaign folders can simply be used as-is, and portable mode (e.g. on a USB-stick) would be possible just as on the other platforms.

@Dracks
Copy link
Author

Dracks commented Apr 9, 2024

Hey, I just had some advance (sorry, I didn't had a lot of time to move it), but I see that cmake is not checking for the library enet, and then when compiles is crashing, (I will try to add that to the flathub) but I think will be nice to have it in the cmake

@codeflorist
Copy link
Collaborator

hey @Dracks,

thanks for the great work! i've just pushed a commit, that makes cmake check for the ENET, MAD and FLUIDSYNTH libraries.

MAD (package libmad0-dev) is required for mp3-playback and FLUIDSYNTH (packages libfluidsynth-dev and fluidsynth) for soundfont-based MIDI playback. both are required for the full functionality of Dune Dynasty.

publishing to flathub is definitely a good idea! i'll look into it, once your pull request is merged.

@Dracks
Copy link
Author

Dracks commented Apr 15, 2024

hey, one thing, what should be the name to be used in the flatpak?

@codeflorist
Copy link
Collaborator

hey, one thing, what should be the name to be used in the flatpak?

Does it have to be a special format? Or just the app name? "Dune Dynasty" i'd say then.

@Dracks
Copy link
Author

Dracks commented Apr 16, 2024

Does it have to be a special format? Or just the app name? "Dune Dynasty" i'd say then.

Sorry, name was not correct, it was the id, is this ID:
https://github.com/gameflorist/dunedynasty/pull/14/files#diff-c1ccd431d3ba4694ebb86aa70c6bac63933495f3a54a38ee2fc0770101efac3aR1

I think we can use com.github.dunedynasty too, but not sure.

@codeflorist
Copy link
Collaborator

Ah, ok. According to the docs it should be the reverse-DNS of a domain controlled by the project with the trailing section representing the specific project.

I've just created https://gameflorist.github.io (just a redirect to https://github.com/gameflorist).

So i think the appropriate ID would be "io.github.gameflorist.dunedynasty".

@Dracks
Copy link
Author

Dracks commented Oct 19, 2024

Hey,

I know I'm not super active, sorry a lot of side projects, what I saw is that usually flatpak scripts are put in a diferent github repositori, Is it fine that I create it and when I've got some poc working you fork it, and then we set yours as principal?

Another thing, flatpak works as some kind of container, which makes the accessing the data a lot more tricky.

Jaume

@codeflorist
Copy link
Collaborator

Hey Jaume,

No worries at all, take your time!

Regarding the repository: I could also create the repo and add you as a collaborator. What name would you suggest? gameflorist/dunedynasty-flatpak?

@Dracks
Copy link
Author

Dracks commented Oct 19, 2024

yeah, that should work...

But it will take a lot of time, I'm trying to pack another app, because I wish to have it on steamdeck, and is been a nightmare. At lease for a person that doesn't know almost anything about flatpak :(

Still, I think I'm close to get it runing in the other one, and with that, should be easy to get it here.

@Dracks
Copy link
Author

Dracks commented Oct 20, 2024

Hey, I get it building,

But I don't get the data, currently, I've got this:

[dracks@frame-work-fedora flatpak_dunedynasty]$ flatpak run com.gameflorist.dunedynasty
Dune data directory: .
Personal data directory: /home/dracks/.var/app/com.gameflorist.dunedynasty/config/dunedynasty/
--------------------------
ERROR LOADING DATA FILE

Did you copy the Dune2 1.07eu data files into the data directory
./data ?

[dracks@frame-work-fedora flatpak_dunedynasty]$ ls /home/dracks/.var/app/com.gameflorist.dunedynasty/config/dunedynasty/
data
[dracks@frame-work-fedora flatpak_dunedynasty]$ ls /home/dracks/.var/app/com.gameflorist.dunedynasty/config/dunedynasty/data/
ATRE.PAK  ENGLISH.PAK   FINALE.PAK  GERMAN.PAK  INTRO.PAK     MENTAT.PAK  ORDOS.PAK     SOUND.PAK
DUNE.PAK  FILELIST.TXT  FRENCH.PAK  HARK.PAK    INTROVOC.PAK  MERC.PAK    SCENARIO.PAK  VOC.PAK

I've also have a copy of the data in ~/.config/dunedynasty/data and ~/.local/share/dunedynasty And of course I added the permissions to access this folders.

This are the permissions:
image

If you create a repo, I will upload my current stuff (also, I added an action to generate the flatpak)

Will be nice, if when there is no contents, we show a window telling exactly what's missing. (If you guide me, I can modify the code, I know a little bit of C and C++)

Dracks

@codeflorist
Copy link
Collaborator

Very cool! 😊👍

I've just created https://github.com/gameflorist/dunedynasty-flatpak and added you as a collaborator.

Regarding location for data:

I've also have a copy of the data in ~/.config/dunedynasty/data and ~/.local/share/dunedynasty

Try ~/.local/share/dunedynasty/data. That should work.

Will be nice, if when there is no contents, we show a window telling exactly what's missing. (If you guide me, I can modify the code, I know a little bit of C and C++)

Currently the following message is displayed:

Did you copy the Dune2 1.07eu data files into the data directory
./data ?

Would it suffice to change this to something like this?

Did you copy the Dune2 1.07eu data files into the data directory?
The data directory can be placed in one of the following locations:
./data
~/.local/share/dunedynasty/data

@Dracks
Copy link
Author

Dracks commented Oct 21, 2024

Thanks,

I just pushed my changes, I just realise I've got some issues with permissions and files I think. The other project that I was trying to get with flatpak (which is working), has some issues with the configuration, is not saving the file, any time that I restart the project, starts without a config.

I was thinking to ask in the flatpak forum, (If I don't see any solution next month, I will put it there)

If you have some time and wishes to test something, there is an action in the workflow of the flatpak repo, to build and generate a flatpak bundle (you can try if you wish/have linux)

@Dracks
Copy link
Author

Dracks commented Dec 31, 2024

Hey,

the other day fighting with an issue with waterfox, I discovered the flag -persist of flatpak, not sure, but maybe this can fix the problem.

I will need to check when I've got time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants