Open bayazidbh opened 1 year ago
Oh that's a very interesting edge-case you found!
When my module tries to dereference the installed flatpak it uses the remote to get the full ref. Since the remote doesn't seem to "exist" anymore it fails to get the full ref, and thus fails to uninstall the package...
Is there a way for them to be whitelisted somehow?
Ideally, a sub-module where you can provide a link to the flatpak that would, say, automatically download the file to /tmp
(since remote .flatpak installation doesn't work yet) and install it would be great.
But in the meanwhile, a whitelist or just skipping manually installed out-of-repo .flatpak apps would be great since, while I'm fine with grabbing rustdesk another way, not all distro have xwaylandvideobridge yet and that's a very useful app that makes wayland more useable for certain people.
Unfortunately, installing out-of-tree is not possible right now.
I'm currently working on improving the way flatpak installations are handled.
You can try using the postInitCommand hook.
I implemented out-of-tree ref support.
If you want to take advantage of it, switch to the "dev" branch.
Testing. Did I made a mistake or is there something wrong with the repo name reading?
$ systemctl --user status manage-user-flatpaks.service
× manage-user-flatpaks.service
Loaded: loaded (/home/fenglengshun/.config/systemd/user/manage-user-flatpaks.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2023-08-04 09:49:09 WIB; 49s ago
Process: 89980 ExecStart=/nix/store/7r8b5a9lnhj3lzhykglqpgrlp2ypwd57-setup-flatpaks (code=exited, status=1/FAILURE)
Main PID: 89980 (code=exited, status=1/FAILURE)
CPU: 305ms
Aug 04 09:48:58 neon-laptop 7r8b5a9lnhj3lzhykglqpgrlp2ypwd57-setup-flatpaks[89980]: No remotes have been found. Adding them now.
Aug 04 09:48:58 neon-laptop 7r8b5a9lnhj3lzhykglqpgrlp2ypwd57-setup-flatpaks[89980]: Adding remote flathub with URL https://dl.flathub.org/repo/flathub.flatpakrepo
Aug 04 09:48:58 neon-laptop flatpak[90014]: user: Added remote flathub to https://dl.flathub.org/repo/
Aug 04 09:49:03 neon-laptop 7r8b5a9lnhj3lzhykglqpgrlp2ypwd57-setup-flatpaks[89980]: Adding remote launcher-moe with URL https://gol.launcher.moe/gol.launcher.moe.flatpakrepo
Aug 04 09:49:05 neon-laptop flatpak[90084]: user: Added remote launcher-moe to https://gol.launcher.moe/repo/
Aug 04 09:49:07 neon-laptop 7r8b5a9lnhj3lzhykglqpgrlp2ypwd57-setup-flatpaks[90135]: F: An error was encountered searching remote ‘flathub’ for ‘flathub:’: 'flathub:' is not a valid name: Name can't contain :
Aug 04 09:49:09 neon-laptop 7r8b5a9lnhj3lzhykglqpgrlp2ypwd57-setup-flatpaks[90135]: F: An error was encountered searching remote ‘launcher-moe’ for ‘flathub:’: 'flathub:' is not a valid name: Name can't contain :
Aug 04 09:49:09 neon-laptop 7r8b5a9lnhj3lzhykglqpgrlp2ypwd57-setup-flatpaks[90135]: error: No remote refs found for ‘flathub:’
Aug 04 09:49:09 neon-laptop systemd[1401]: manage-user-flatpaks.service: Main process exited, code=exited, status=1/FAILURE
Aug 04 09:49:09 neon-laptop systemd[1401]: manage-user-flatpaks.service: Failed with result 'exit-code'.
```nix { config, pkgs, ... }: { services.flatpak = { remotes = { "flathub" = "https://dl.flathub.org/repo/flathub.flatpakrepo"; "launcher-moe" = "https://gol.launcher.moe/gol.launcher.moe.flatpakrepo"; }; packages = [ "flathub:app/com.github.tchx84.Flatseal/x86_64/stable" "flathub:app/com.steamgriddb.SGDBoop/x86_64/stable" "flathub:app/com.stremio.Stremio/x86_64/stable" "flathub:app/com.usebottles.bottles/x86_64/stable" "flathub:app/com.wps.Office/x86_64/stable" "flathub:app/io.github.Foldex.AdwSteamGtk/x86_64/stable" "flathub:app/io.github.aandrew_me.ytdn/x86_64/stable" "flathub:app/io.wavebox.Wavebox/x86_64/stable" "flathub:app/net.codeindustry.MasterPDFEditor/x86_64/stable" "flathub:app/net.cozic.joplin_desktop/x86_64/stable" "flathub:app/org.upscayl.Upscayl/x86_64/stable" "flathub:app/org.videolan.VLC/x86_64/stable" "launcher-moe:app/moe.launcher.the-honkers-railway-launcher/x86_64/master" "launcher-moe:app/moe.launcher.an-anime-borb-launcher/x86_64/master" "launcher-moe:app/moe.launcher.an-anime-game-launcher/x86_64/master" "launcher-moe:app/moe.launcher.honkers-launcher/x86_64/master" "flathub:runtime/org.freedesktop.Platform.VulkanLayer.gamescope/x86_64/22.08" "flathub:runtime/org.freedesktop.Platform.VulkanLayer.MangoHud/x86_64/22.08" ":${./xwaylandvideobridge.flatpak}" ]; }; } ```
I pushed an update, try again
Seems to work fine now, from my testing. Out of curiosity, does it work with a direct link to the .flatpak file? Would be useful with rustdesk-nightly. Also, what if we have an out-of-tree flatpak installed, and then activated the service? Not touching this anymore for today since I had a scare with HM yesterday and I have a presentation tomorrow...
Hi, can you confirm that this update works on your end?
I don't think there's been a new update in the dev branch? For the one from 5 days ago, as stated above, I've tested it and it seems fine.
Though I've been too busy to test beyond the same exact configuration as you have (.flatpak file in the same folder as the flatpak.nix config). Haven't tested flakes building from the git remote delete, and haven't tested hotlinking to the .flatpak file download directly as well.
Hi again.
I will close this issue (for now) to tidy up the issue tracker.
Feel free to reopen this issue when something goes wrong.
Cheers.
I just read this bit in the docs:
# out-of-tree flatpaks can be installed like this (note: they can't be a URL because flatpak doesn't like that)
[ ":${./foobar.flatpak}" "flathub:/root/testflatpak.flatpakref" ]
My plan for this is to preInitCommand
to download the flatpak file with wget -P ${config.xdg.cacheHome}/flatpak/ -O ...
. Will have to test it, but I think it could be defined a sub-options like how override is now a sub-options of its own (another one which I had planned to just do through preInit/postInit sub-options).
My plan for this is to
preInitCommand
to download the flatpak file withwget -P ${config.xdg.cacheHome}/flatpak/ -O ...
This should work.
I don't really like the idea of creating another option just for out-of-repo packages, maybe I will implement automatic downloading.
I noticed an app I temporarily install wasn't uninstalled, and was curious as to what the issue is:
So on the roadmap, having a sub-module to handle out-of-repo installs would be great, but for now a an auto-skip in the case of a 'remote' not being listed on the
flatpak remotes
would be good enough.