Follow

📣 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)

@telephant (as in, something like make install. the script only runs on the dev machine.)

@ben

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.

@telephant I think the Arch wiki has a guide for making an Aur package.

@billblake2018

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.

@bionade24

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?

@beedaddy

Pleroma has an API-compatibility layer, so Telephant should work (mostly) fine with it, too.

@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 ^^;

@tux93

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

@tux93

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).

@tux93

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 😄

aur.archlinux.org/cgit/aur.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 (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: invent.kde.org/snippets/807. The approach used is documented here: github.com/flatpak/flatpak-bui

@Jbb

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.

@Jbb

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.

@Jbb

I think I may have actually gotten the basic build process to work:

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.

@Jbb

Can't we access the sources it already checked out for us?

@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 …)

@bkhl @Jbb

Yeah, "go mod vendor" could help. That said, it looks like flatpak already checks out all the dependencies for us, we'd just need to have them in the right location.

@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).

@Jbb

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.

@Jbb

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.

@Jbb

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.

Show more
Show more

@Jbb

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:

aur.archlinux.org/cgit/aur.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?

@lordmortis

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 @easthighNerd

One suggestion: in your Mastodon bio section of your profile, please include the operating systems (Windows, Mac OSX, etc) that your software supports. Thanks!

@telephant It doesn't look like there is a ticket on Debian wnpp.debian.net

I would suggest submitting an RFP so the Debian developer community can see it. https://www.debian.org/devel/wnpp/

@roberthchan la verdad es que cuando lo he intentado, no he sido capaz...

Sign in to participate in the conversation
Mastodon

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!