📣 Telephant, a Mastodon client for the desktop is looking for packagers!
Know how to package for Debian/Ubuntu/Mint, Gentoo, OpenSUSE, Void or other distros? Or maybe you are familiar with AppImage, Snap or Flatpak?
We're still looking for packagers to help supporting Telephant on more platforms!
Don't hesitate to say hello if you'd like to help out! ❤️
@telephant someone in the debian IRC channel told me about checkinstall and it's super easy (you just need a script that installs the client)
Sounds great! Should nobody feel like helping out, I will certainly check that out. I'm really hoping to find a few people who sign up for the job, though, as it's a massive time-sink to package and test across half a dozen of distros.
I'm not sure about OpenBSD either (I like to think they used to have Qt5 releases?), but FreeBSD should definitely be possible.
@telephant How does it behave with respect to bandwidth consumption compared to the browser client? The browser client is using 12% of my bandwidth--and that's in competition with some real bandwidth hogs.
@telephant The only disto I could help ist Arch, so… :) btw, telephant is mastodon-only, right? Or does it also support pleroma?
Pleroma has an API-compatibility layer, so Telephant should work (mostly) fine with it, too.
I was actually considering trying my hand at an openSUSE package for it the other day but packaging GO is a pain so I put that on the back burner for if I get /really/ bored ^^;
What issues are you encountering?
Actually it should be a lot easier to package since all you get is one (mostly static) binary. All you'd need is to figure out the package names of the Qt dependencies.
I honestly didn't look too deeply yet, it was mostly "Hey this looks cool, maybe I could…" *goes look at github* "Oh it's GO, maybe later"
As for the binaries: I figure if the goal is to have it included in the distribution the package should build from source and not just wrap a static binary
Yes, you would still build the entire thing locally, but all you get is one binary and an icon. That's all there is to package for Telephant (at the moment, anyway).
The README and PKGBUILD are probably good examples for the build process. It's actually fairly straight forward, should you ever find the time and get /really/ bored 😄
@telephant I already started to write a flatpak manifest a few weeks ago, but temporarily gave up because of Qt Go binding stuff that failed to build (https://invent.kde.org/snippets/808). Running the command it proposes in the error doesn't help for flatpak, iirc it needs write access to the Qt installation. You can find the unfinished flatpak recipe here: https://invent.kde.org/snippets/807. The approach used is documented here: https://github.com/flatpak/flatpak-builder-tools/tree/master/go-get
Oh, that's awesome! ❤️
Can you potentially retry that with the latest Qt 5.14.2? That resolved the build issue for me.
Also note the slightly updated install instructions. You probably don't want to 'go install' telephant, as that may fail. Only get the sources (either git or 'go get -d') and then use 'qtdeploy' to build the app.
@telephant Okay thanks, I'll adapt the recipe. Unfortunately I don't have control over the exact Qt patch release, as that part comes from the KDE Flatpak runtime.
@telephant Cool! now we only need to get it to work without networking (go install instead of go get maybe, not sure), to get rid of the --share=network workaround in the module.
@telephant @Jbb https://tip.golang.org/cmd/go/#hdr-Make_vendored_copy_of_dependencies I suspect you need to use this thing somehow.
@telephant I think they should be in the right location. Maybe this way go get just keeps working without --share=network (Still need to test that).
Oh, in that case we can drop the "go get" / "go install" altogether and only use "qtdeploy".
I just haven't found out where it expects me to put the finished build. Guess I have some reading up to do.
@telephant I'm currently working on that part. It's the same as with any linux distribution, but the prefix is /app for flatpak. The install comands from the PKGBUILD mostly apply for flatpak with this small change.
Updated my snippet once more. Using "go install" for the Qt bindings now, and simply rely on qtdeploy and the existing Telephant sources after that. Almost there by the looks. However it doesn't seem to expect the binary in /app/bin.
@telephant The cleanup /bin part still needs to be removed. It is leftover from when I had a separate module for the qt bindings.
@telephant currently your binary is probably correctly installed, but directly deleted again due to this.
Spot on! Also works when removing the "--share=network" line now! 🙂
The binary weirdly enough crashes on startup, unlike a binary I've built locally with the same commit ID. Already investigating what's going on there, though.
Also, you're right, you definitely shouldn't have to run 'qtsetup' here.
Arch's PKGBUILD may also be helpful, as that pretty much reproducible works:
@telephant That's pretty much what I'm doing already, except for I can't use `go get` in the flatpak because there is no network during the build (on purpose).
@telephant This is awesome! I'm a developer, with knowledge mostly in web technologies; sadly I don't know much about packaging, but let me know if I can help ❤️
@telephant been meaning to figure out packaging for OpenSUSE. Got 6 days off after tomorrow, so it seems like a good time to learn.
Yeah, can be built & run on macOS, too! I don't have a macOS dmg/app-bundle just yet, but we'll get to that 🙂
@telephant I have experience with Flatpak and Appimage. I don't know the application in question though.
@telephant What exactly is Telephant? I use Rebecca on one laptop, and Blue Beaver on the other. Is Telephant anything like either of those two?