-
Notifications
You must be signed in to change notification settings - Fork 243
Changes for flatpak and other restricted environments (Linux) #2372
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
base: Dev
Are you sure you want to change the base?
Conversation
Flatpak build env doesn't have internet access.
For writing settings.sav and presets.sav
|
Also, here is a compare without renaming |
|
Could I request the label Component: Cosmetics as well? Most of the Python changes are specifically on custom cosmetics code. |
# Conflicts: # Patches.py
|
Okay, I think this is good for review now. I did have Dusk give the Flatpak a try, and seemed to patch models fine, and I've tested custom music. I'm going to upload a version of the Flatpak to the dev channel as well so I can link it here for more testing, though building for yourself should also work. Some testing should also be done with the branch and release build of it in a normal circumstance to make sure behaviour hasn't changed. I tried hard to make sure it wouldn't, but you never know. I was able to cross-compile an AARCH64 version of the Compress executable, but my distro doesn't have packages for 32-bit ARM so someone else will have to get that if it seems necessary. Flathub itself will only create x86_64 and AARCH64 packages. I can also change to the other branch without the renames adding |
accept cwd for run_process
|
Loving the work so far! I've noticed that custom voices aren't working; everything except "Silent" just uses the default voices. |
|
Thanks for the info. I look into it soon. |
|
@Tri4ceKid the new commit should fix the issue. Do you need a new flatpak made, or can you make one yourself to test? |
|
I would appreciate a new flatpak as I'm not yet familiar with the process of making one. |
|
Updated the link in the "ready to review" comment to a new flatpak build on discord. |
Should be local path if possible, otherwise user data
fenhl
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor code style nit, the Python looks good other than that afaict. Would appreciate if someone else could give the GUI code changes a review.
|
I can probably take care of building the compressor for ARM32, just need to figure out how. |
Code style Co-authored-by: Fenhl <[email protected]>
# Conflicts: # Patches.py
Feel free to add the commit with it directly to the PR |
|
8.3 flatpak uploaded to the Discord: https://discord.com/channels/274180765816848384/512048482677424138/1378940108392235179 |
|
|
||
| /* Read archive if it exists*/ | ||
| file = fopen("ARCHIVE.bin", "rb"); | ||
| file = fopen(getArchivePath(), "rb"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
An alternate method to specifying the path to ARCHIVE.bin would be changing the working folder in the python call (see Main.py and Utils.py in PR #2314). This avoids the need to recompile the compressor for all platforms if that becomes a problem.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This would still require changing the source code for the compressor due to needing dmaTable.dat as well. It's also not possible to copy to a user directory on install as a flatpak can be installed globally for the system further making dmaTable.dat a problem.
This PR adds support for running the randomizer in environments where the app directory itself is not writable. My personal motivation behind this was to let the randomizer run in a flatpak environment, however as I worked on this I realized it also helps resolve installing the randomizer in say
/usr/local/binor:\Program Filesas well, although I've only made changes necessary for Linux environments currently. Windows should be handled by someone who actually uses the platform, possibly with an eye to also create a store package.Changes:
local_pathanddata_pathfunctions to make it clear they should only be used for reading files, not writing.package-lock.json. This hasn't been updated since 7.1, but the tool Flatpak provides for downloading node modules as sources prior to entering the build environment works off of this, and if the output from thepackage-lock.jsondoes not exactly match what thepackage.jsonneeds in the build environment, issues arise.settings.savis read and written atXDG_CONFIG_HOMEif the app directory is not writable.XDG_DATA_HOME/Outputif the app directory is not writableARCHIVE.binfile fromXDG_CACHE_HOMEif the app directory is not writable.Flatpak and Flathub
With these changes it is now possible to build a Flatpak for OoTR, so long as it is using this branch as its git source for now. I have created a repository with all the files needed to do so. If you wish to give it a try yourself, you should install Flatpak, the Flathub repository (tutorial for building has you install it user-wide, not sure if issues arise with a globally configured one, but you can have both installed at the same time) and the Flatpak building tools. I found all of these available from my package manager. If further help finding them is needed I can do so.
To build and install the Flatpak in that repository, run
flatpak-builder --force-clean --user --install-deps-from=flathub --repo=repo --install builddir com.ootrandomizer.electrongui.ymlthen to run the Flatpak runflatpak run com.ootrandomizer.electrongui. It is also possible to create a file to share with other users if desired.While that repository has the basics, we should decide if we want to distribute the Flatpak on ootrandomizer.com, or if we should submit the package to Flathub in which case there is still more required work to do. Other adjustments can be made as desired too.