ferium
ferium copied to clipboard
Publish to major package managers
We would ideally want to publish to the most common package managers so that updating to the latest version is easy and convenient. These are the ones I have in mind;
- [x] GitHub Releases
- [x] Crates
- [x] AUR: Normal, GUI File Dialogue, From Source, From Source GUI File Dialogue
- [x] Scoop
- [x] Pacstall
- [ ] Homebrew Homebrew/homebrew-core#106034
- [ ] Chocolatey
- [ ] Debian or APT
Preferably, these packages would use the existing Releases builds rather than compile their builds separately. Their packages should also be updated automatically in the Actions workflow.
There's a good alternative to Chocolatey on Windows: https://scoop.sh
It actually manages packages instead of just running the installer, like choco
and winget
.
yeah, scoop is great too. Although chocolatey is the most well known(scoop is just behind)
It seems that Scoop is meant more for developer tools? Well it seems much easier to upload to anyways so I'll do both
https://gist.github.com/KyleUltimate/3e20b14ecbf6a5512912f8dc3addc4b7 This is my implementation of ferium in scoop. It's really easy to implement. This should not even require action changing, the auto update should be done by scoop (currently there is no hash checking because I'm lazy to check hash for windows)
I will add it later, it should also automatically update sha256sums too.
Ok now it also auto updates the hash too!
Also, do you consider ferium
fitting this?
https://github.com/ScoopInstaller/Scoop/wiki/Criteria-for-including-apps-in-the-main-bucket
I think it does. Therefore
https://github.com/ScoopInstaller/Main/pull/3558
Also, do you consider ferium fitting this?
I wasn't actually sure, I mean it isn't 'reasonably well-known' or a 'developer tool' right?
Oh and looking at the autoupdate, would the releases now need .sha256
files? Or is that some sort of shortcut?
I believe it's a shortcut! Although I'm not sure bout that
Wait hmm no. It's an direct file. We still need to upload the sha256sum to github release too
https://github.com/theRookieCoder/ferium/pull/50 Done, haven't actually tested that tho. It's a very simple one, it should just work
https://github.com/Calinou/scoop-games/pull/616 Up!(This is the official game repository) Installation step.
-
scoop bucket add games
-
scoop install ferium
And it also auto upgrades! My pull request is 3.27.0, but it auto upgrades to 3.28.0!
This is great, thank you so much! Also where did you get the screenshot from, I can't find a Scoop index website with Ferium in it
https://scoop.sh/#/apps?q=ferium
You can create packages for multiple distros(Debian+Debian-based, Arch, basically all of the RPM distros...) and automatically make repositories for them via https://build.opensuse.org.
You can use https://build.opensuse.org/package/show/home:ImperatorStorm/minizip-git as an example if needed, and via a beta automatically trigger an OBS rebuild on commit.
Another AUR release!
https://aur.archlinux.org/packages/ferium-git
This is ferium-git
, which automatically compiles from source!
The package version will always be "outdated", but the actual package won't...
In short words, it auto upgrades and doesn't require any changes to ferium itself
How does it know when it should recompile, does it infer that from the tags/commits?
Well the thing with git packages is that the upgrading is done on the user side.
When the user decides to build(or upgrades) the package, it automatically pulls from the latest commit.
But the upstream package version will never get upgraded. eg.
The left version continuous.r1621.g41a49c488-1
is what you see on AUR
But the right Installed: continuous.r1940.g6613ff329-1
is the version you actually get
Ah I see, and now from-source builds don't need the CurseForge API key environment variable anymore so perfect timing!
Actually, you don't need to state that it require the rust toolchain since it has cargo in makedepends(which automatically configures the rust toolchain for you, and you can choose to uninstall makedepends after your installation but that's normally not recommended although it would function)
I just wanted to warn the user that it will install additional stuff that might be quite large because the Rust toolchain is over 5gb I think
hmm, I can't get just build-linux
to work, but I could get just build-linux-nogui
to build? it seems like build-linux
will also build for windows but I don't have the windows toolchain so it doesn't work.
Currently I'm tweeking the -git
package to automatically build the nogui
version if you don't have gtk3
installed, and build the normal one if you do have one installed.
But I'm running into this problem...
Is this the same problem that this issue has?
https://github.com/theRookieCoder/ferium/issues/69
Looks like it, cargo
doesn't auto-install toolchains that aren't for the host OS, you'd need to install them manually.
Fixed in https://github.com/theRookieCoder/ferium/pull/71 once it gets merged.
https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=ferium-git Yep after the latest commit, this now works!
why keep it as a single package, rather than split it like the binary packages?
Because that's what people normally do for source packages, enable features if your computer has that functionality. But for binary packages, it's not the normal thing to do Also another reason, I don't know how to download only a single source :rofl:
Nah, people split packages into cli and gui versions commonly, see citra-git
and dolphin-emu-git
.
Also, changing build depending on whether a certain package is available breaks reproducible builds.
Rewrote the ferium-git
PKGBUILD
:
https://gist.github.com/ImperatorStorm/bbe40ed329f5706740b54c4e9bec0933
Unrelated, but
gtk
optdepends should begtk3
, asgtk
refers to a gtk1 aur package (https://aur.archlinux.org/packages/gtk)
oh, my apologies.
https://aur.archlinux.org/packages/ferium-git
https://aur.archlinux.org/packages/ferium-gui-git
And the ferium-gui-bin
dependencies is set to gtk3
!
Thanks so much for your help, I still need to learn a lot about AUR packaging!
I opened a PR for NixOS/Nixpkgs: https://github.com/NixOS/nixpkgs/pull/173201