📣 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 (as in, something like make install. the script only runs on the dev machine.)
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.
@ben
@telephant
No checkinstall for official packages please :)
@telephant I may have build an AUR package...but @fribbledom already did... 😅
@telephant I think the Arch wiki has a guide for making an Aur package.
Arch is already covered: https://aur.archlinux.org/packages/telephant-git/
@telephant That's how easy it is. :^)
@telephant Any reason it can't be ported to the BSDs?
I haven't tried out the Go/Qt bindings on BSD, but I guess it's absolutely doable.
@telephant At least OpenBSD won't work, afaik they don't have Qt support.
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.
@telephant Ooo, how does one package for a distro?
@telephant
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.
@telephant
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 😄
https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=telephant-git
@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 just checked, I have 5.14.1 right now.
I see. Yeah, I think I saw the same issue with 5.14.1.
@telephant Okay, I'll try again once the runtime is updated then.
I think I may have actually gotten the basic build process to work:
https://invent.kde.org/snippets/810
Still struggling wrapping everything up, but maybe you can help there 🙂
@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.
Can't we access the sources it already checked out for us?
@telephant @Jbb https://tip.golang.org/cmd/go/#hdr-Make_vendored_copy_of_dependencies I suspect you need to use this thing somehow.
@telephant @Jbb (I don't actually know Go, I just know this is how it works in Rust and I thought Go will probably have something similar …)
@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:
https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=telephant-git
@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.
@telephant Nice memory usage figures! Wow, it's not electron O_o would it work on macOS too?
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 @telephant There's a tutorial at snapcraft.io on how to create Snaps of apps written in a bunch of different languages, including Go.
Also @popey is very knowledgeable about the process so you might give him a shout.
@telephant
I'll see about getting it snapped up later on today
That would be ❤️
@telephant nice name for a mastodon client 👍👌
@telephant @victorhck vos sabéis como empaquetar verdd
@roberthchan la verdad es que cuando lo he intentado, no he sido capaz...
@telephant You can use OBS to package to many distros:
https://openbuildservice.org/
@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?
@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)