News for hackers. Stuff that matters.
Re:Pidgin – A Universal Chat Client by Rooster61 on Friday January 22, 2021 @11:08AM (#25872848)
Considering this is open source (which I'm assuming includes the plugins), wouldn't this be a much better alternative to the native apps on mobile? Curious as to why this hasn't been ported to Android/iOS. I'd much prefer this over apps that need permission to my blood type to function.

Pidgin was great back in the day for convenience, but there is a legitimate argument to be made for privacy here too.

EDIT: It just occurred to me that this would probably work on linux phones. Anyone with a Pinephone or Librem 5 tried this?

Re:Pidgin – A Universal Chat Client by MrAlex94 on Friday January 22, 2021 @11:17AM (#25872945)
Not sure if this has changed, but at least on why it's not on iOS [1]:

> In a nutshell, the Apple Developer Agreement is the biggest "problem" preventing a Pidgin build for iOS devices. We won't quote the exact text here, but the Agreement requires that developers allow Apple to impose additional restrictions on applications above and beyond the application's own license. Among these additional restrictions are the well-known "5-device limit" and a prohibition on redistribution of the application. It is also quite clear from the terms of the Agreement that the developer of an application is not the distributor of the application in the App Store--Apple is.

> The additional restrictions required by Apple directly violate the GPL Pidgin is licensed under (Pidgin is licensed as "GPLv2 or later," and cannot transition to GPLv3 for a number of reasons not suited for this topic). GPLv2 forbids adding restrictions above and beyond those included in the GPL's own text, thus any distribution via Apple's App Store is a direct violation of the GPL. This is the root of the problem.

https://developer.pidgin.im/wiki/WhyNoiOSVersion

Re:Pidgin – A Universal Chat Client by lxgr on Friday January 22, 2021 @11:26AM (#25873035)
> the well-known "5-device limit"

Sorry, but I'm not familiar with this – could you share more please?

Re:Pidgin – A Universal Chat Client by RL_Quine on Friday January 22, 2021 @11:30AM (#25873081)
I can find no information about what limit they’re claiming. You can use a maximum of 5 different Apple ID simultaneously on a device but that’s pretty obscure.
Re:Pidgin – A Universal Chat Client by dijit on Friday January 22, 2021 @11:34AM (#25873128)
it is 5 devices that you can use personally with an Apple ID (so, you as a single person can own 5 devices that can receive things you've paid for on the app store, like music and programs.).

It has subsequently been increased to 10.

Re:Pidgin – A Universal Chat Client by asah on Friday January 22, 2021 @11:29AM (#25873065)
Re:Pidgin – A Universal Chat Client by RL_Quine on Friday January 22, 2021 @11:30AM (#25873085)
Why would that ever be a consideration?
Re:Pidgin – A Universal Chat Client by lsaferite on Friday January 22, 2021 @11:55AM (#25873355)
Distribution restrictions on top of GPL and they don't own the copyright on all the code without a CLA which prevents licensing under something other than GPL for the App Store.
Re:Pidgin – A Universal Chat Client by shoeffner on Friday January 22, 2021 @11:56AM (#25873381)
iPad, iPod, iPhone, MBP, iMac, AppleWatch, ... oh, that's already six devices tied to the same account.

I think the idea is that you don't tie all your friends' devices to your account to share apps etc., but I am just guessing.

Re:Pidgin – A Universal Chat Client by amenod on Friday January 22, 2021 @11:36AM (#25873146)
I believe the GP was just posting the text from Pidgine website, not writing it.

Quick search reveals that up to 5 devices can be tied to the same Apple account: https://discussions.apple.com/thread/8030144

Re:Pidgin – A Universal Chat Client by Nextgrid on Friday January 22, 2021 @11:30AM (#25873084)
I don't understand the logic where releasing something under GPL + a restrictive license is considered worse than releasing under GPL only.

What is lost when they make Pidgin available on the App Store (under the restrictive App Store license) + under GPL (on their website) as opposed to not having an App Store version in the first place and releasing under the GPL only?

I don't see how the presence of a second, more restrictive license invalidates the GPL given that anyone willing to take advantage of something not allowed under the more restrictive license can still do so under GPL?

Re:Pidgin – A Universal Chat Client by rcxdude on Friday January 22, 2021 @11:37AM (#25873150)
The maintainers likely don't own the copyright on the entire codebase, and so likely cannot license it under anything other than the GPL. Incorporating GPL code into an app on the app store is not possible without breaking either the app store's rules or the GPL's rules (most likely the GPL, which would effectively remove the maintainer's rights to distribute that code).
Re:Pidgin – A Universal Chat Client by toast0 on Friday January 22, 2021 @11:37AM (#25873148)
If they don't have the ability to change the license (which it sounds like they might not; most likely some of the code is owned by others?), they can't distribute it under GPL + more restrictive terms, because what would be lost is their license to distribute the code.
Re:Pidgin – A Universal Chat Client by amenod on Friday January 22, 2021 @11:37AM (#25873159)
GPL doesn't allow anyone to put too much restrictions on the software. This is the point - it protects users' interests.
Re:Pidgin – A Universal Chat Client by Nextgrid on Friday January 22, 2021 @04:23PM (#25876524)
But my point is that if the code itself remains under the GPL, how does publishing an alternate version of it "undo" the GPL considering all the rights restricted by the second license would still be available under the GPL?
Re:Pidgin – A Universal Chat Client by __david__ on Friday January 22, 2021 @06:30PM (#25877670)
I think your argument is: sure, I'm distributing over here with way fewer rights than normal, but it's also available over there with all the rights, and it's the exact same stuff and so that's good enough. And I see why you'd think that, it's not completely unreasonable, but it's just not how the license is worded.

It's either GPL with all the rights that entails, or you can't (legally) redistribute it at all.

Now, if you own the copyright you can give out as many parallel licenses as you want. But pidgin & libpurple have been around for 20 or more years and have had many, many contributors, and they have to explicitly give up their copyright or consent to the license change to do what you propose. That's theoretically not impossible, but it's a lot of work.

This is why some projects require you to sign copyright-assignment agreement before they will take your patches—it gives the project more flexibility to change the license in the future.

Re:Pidgin – A Universal Chat Client by faitswulff on Friday January 22, 2021 @11:51AM (#25873306)
I wonder if you could just compile it to webassembly as a progressive web app at this point...
Re:Pidgin – A Universal Chat Client by glitchc on Friday January 22, 2021 @11:29AM (#25873066)
There’s an easy way to fix this. The Pidgin iOS app could be forked into a different licensing model. It also need not be open source, just demonstrate feature parity. Another way is to modularize the core messaging layer under a BSD license, and have the desktop app and iOS app both implement the front-end (and OS specific functionality) under distinct licenses.

There are many ways to skin this cat.

Re:Pidgin – A Universal Chat Client by Macha on Friday January 22, 2021 @11:38AM (#25873170)
libpurple (the actual messaging library) is already modularised, many different people mantain[ed] different modules, it's been used my many third party messaging clients including Adium and multi-IM browser clients from those days like Meebo or imo.

It's not a commercial project with a CLA, it doesn't have a single owner, many of the people who contributed major parts have moved on or would object to a license change from copyleft to permissive, so it's not a matter of "just change" the license. And libpurple is the real meat of the project.

Re:Pidgin – A Universal Chat Client by virtue3 on Friday January 22, 2021 @12:25PM (#25873780)
Meebo was the shit back then. (In browser GAIM, even fb chat, irc, etc).

I followed a few of the developers for a bit as I really wanted to work there. I believed they got aquired into the g+ team (gchat? maybe?).

Re:Pidgin – A Universal Chat Client by andai on Friday January 22, 2021 @11:22AM (#25872992)
With such a commitment to free software, isn't it a bit ironic they ported it to Windows?
Re:Pidgin – A Universal Chat Client by Macha on Friday January 22, 2021 @11:26AM (#25873026)
Anyone can build and run their own software on Windows, so distributing software for Windows is not a GPL violation, whereas distributing iOS apps via the app store runs afoul of the anti-tivo clauses in GPL3
Re:Pidgin – A Universal Chat Client by mywittyname on Friday January 22, 2021 @11:29AM (#25873076)
No, it's not ironic. Windows imposes no such limitation on developers. Microsoft certainly doesn't assume exclusive rights to distribution of every piece of software that can be installed on Windows.
Re:Pidgin – A Universal Chat Client by moistbar on Friday January 22, 2021 @11:26AM (#25873038)
If Windows doesn't impose those restrictions, it makes more sense to port it there than to MacOS.
Re:Pidgin – A Universal Chat Client by sneak on Friday January 22, 2021 @11:17AM (#25872939)
iOS applications aren't allowed to stay awake constantly talking to a bunch of different network services.

For iOS IM to work, a centralized server (and corresponding developer ID) has to send a notification to you, sent first to Apple to be proxied via Apple's push notification service (APNS) to which each iOS device maintains a persistent connection.

This means that some third party service has to know when you get a message (and thus needs to proxy your connections to the IM services, and know your credentials and see your message contents) to be able to know when to send that notification.

This (and Signal now replacing the cryptographically shattered iMessage) is probably the main reason I'm switching to Android; truly decentralized/private notifications aren't really possible on iOS. They have to come from the app developer's own 24/7 online servers, sent from them to you via Apple servers, which means that federated stuff is basically out without providing your login details to the developer (which of course lets them see all your messages). This is also why almost no ActivityPub/fediverse clients can notify you of DMs on iOS either if you run your own instance.

I know there's Background App Refresh now that lets apps wake up periodically to download stuff; I'm not sure if such polling can fire off notifications from the local app. It's probably too much latency for IM, however, due to the fact that Background App Refresh isn't (last I looked) allowed to run continuously (for battery reasons).

Re:Pidgin – A Universal Chat Client by wruza on Friday January 22, 2021 @12:21PM (#25873724)
You don’t have to put an entire message text into APNS notification. Apple (and google GCM, and webpush) notifications only deliver a structured event to the application (which may or may not contain any text), and once the app is activated (if not yet), it has to connect to its own server to get a full representation of what was sent, update vv-status, etc. APNS/GCM are not instant messengers on their own, though may be used as such in simple cases.

the main reason I'm switching to Android

You may be interested in reading this comment then: https://www.reddit.com/r/signal/comments/ap9lin/comment/eg7v...

Likely, iOS version of Signal uses the same “empty ping” technique, so you don’t have to worry about Apple reading your texts, unless you’re concerned with metadata leak. But unless they’re spoofing a websocket with fake packets, it will leak anyway.

Re:Pidgin – A Universal Chat Client by sneak on Friday January 22, 2021 @10:55PM (#25879477)
Sure, but there still needs to be a server somewhere that has the app developer's client certificate, connected to Apple, that knows when you get a DM and can send that zero-content "wake up and check your DMs" packet to your phone via APNS, which means it needs (given current apps permissions models) access to your DMs without you.
Re:Pidgin – A Universal Chat Client by wruza on Saturday January 23, 2021 @04:27AM (#25880912)
There is no need for this “server somewhere”, and APNS can’t have your message, mainly for two reasons:

First, that “server” is Signal server itself. When a message arrives at it, it simply commands Apple to wake up your app, for it to call home, and that’s it. It is preconfigured to do that (and GCM as well).

Second, all Signal messages are end to end encrypted and neither of Apple, Signal, Google, your ISP, any server on the route of it NEVER know its content, because the only mean of decrypting it resides in a memory of your client app. There is basically no way to see the contents before your client receives the message, by design. Even if that were not the case, various IM servers don’t have to send your texts to Apple, only if they want the text to be shown on a notification itself.

The only theoretical concern here may be that Apple can somehow pick the decryption key out of the app’s memory (because ios is a supervisor, obviously). But that can’t be the main reason someone swithces to android, which is a supervisor itself, and where the same issue exists.

Re:Pidgin – A Universal Chat Client by sneak on Saturday January 23, 2021 @11:03AM (#25883186)
We're talking about federated/decentralized protocols that Pidgin serves as the type of client for, in a thread about why we don't see things like Pidgin on iOS.

In a centralized system where the mobile app is made by the same people as the IM server, of course the IM server can send a notification to the app (such as is done in e2e stuff like Signal, or in non-e2e such as Telegram).

That falls apart when you're talking about, say, ActivityPub on an instance you run yourself, or one not operated by the vendor of the IM app. The developer's server can't know when to send you a notification without having some knowledge, from your own e.g. IRC, ActivityPub, or Matrix server, that you have received a new DM.

The Matrix/Element people have addressed this by running one centralized notification service for every single client of the Matrix/Element iOS app.

Re:Pidgin – A Universal Chat Client by wruza on Saturday January 23, 2021 @10:39PM (#25888943)
We're talking about federated/decentralized protocols that Pidgin serves as the type of client for, in a thread about why we don't see things like Pidgin on iOS.

Sorry, I misunderstood that.

Re:Pidgin – A Universal Chat Client by _-___________-_ on Saturday January 23, 2021 @03:52AM (#25880756)
It doesn't need access to the content of the messages.
Re:Pidgin – A Universal Chat Client by sneak on Saturday January 23, 2021 @11:04AM (#25883199)
Sure, but it needs to know that there are new messages. I don't think that's a separate permission on any (e.g.) ActivityPub/XMPP/IRC server implementation today.
Re:Pidgin – A Universal Chat Client by _-___________-_ on Saturday January 30, 2021 @09:35PM (#25975211)
On all XMPP server implementations I've worked with, the push notifications mechanism supports (and usually defaults to) not including any message body in the API call to the push server. Usually it's also possible to leave out the sender name/JID, e.g. with prosody's mod_cloud_notify.
Re:Pidgin – A Universal Chat Client by novok on Friday January 22, 2021 @12:04PM (#25873490)
You can create local notifications any time your app is active, which includes the background. AFAIK signal does empty APNS push to wake and then pulls data with it's own connection and then displays text content with a local notification.

The main reason for the restriction to apple-only for notification services is battery life, and they've been proven right by bad behavior demonstrated on android.

Interestingly, if your a VOIP app you can actually circumvent a lot of the background networking restrictions, but it's still hard to do when you don't have an active call in place. You also have to be an actual VOIP app to get approved with that entitlement. Which wouldn't be hard to get approval for if you made a fork of signal for example, since it does have real VOIP capabilities inside.

Either way the battery life of your device would be worse with your custom VOIP app always keeping a connection open vs. apple's native OS notification system.

Re:Pidgin – A Universal Chat Client by lxgr on Friday January 22, 2021 @12:09PM (#25873574)
> Interestingly, if your a VOIP app you can actually circumvent a lot of the background networking restrictions

These APIs were removed a while ago. As an example, pure SIP clients (without a SIP<->APNs proxy operated by the app developer) are no longer possible for iOS.

Re:Pidgin – A Universal Chat Client by lxgr on Friday January 22, 2021 @12:08PM (#25873548)
> This (and Signal now replacing the cryptographically shattered iMessage) is probably the main reason I'm switching to Android

Android seems to be headed the opposite direction from Apple when it comes to background service execution and network connectivity. I wouldn't be surprised if background network connections are the next thing to go.

> which means that federated stuff is basically out without providing your login details to the developer

It's definitely possible to support federated push, although it's admittedly more work for app/protocol developers: The app developer would have to set up a "push proxy" server that accepts push notifications addressed to a specific iOS device.

It would be nice if Apple was to allow optional sourcing of "anonymous" pushes for such use cases, but that doesn't seem to be in line with their desired level of control.

Re:Pidgin – A Universal Chat Client by richardwhiuk on Friday January 22, 2021 @12:12PM (#25873605)
Android is heading in the same direction with GCM.
Re:Pidgin – A Universal Chat Client by lxgr on Friday January 22, 2021 @03:34PM (#25876029)
Exactly, maybe I was unclear: Apple has been adding more and more background execution modes to iOS over the years, while Google has been steadily removing them from Android (and nudging developers towards GCM instead).
Re:Pidgin – A Universal Chat Client by 0xffff2 on Friday January 22, 2021 @12:48PM (#25874073)
>cryptographically shattered iMessage

Could you expand on this? I did a quick search but I don't see anything relevant that's more recent than 2016.

Re:Pidgin – A Universal Chat Client by maqp on Saturday January 23, 2021 @03:58AM (#25880786)
See my comment from 2019 https://news.ycombinator.com/item?id=21425897

It's still relevant.

Re:Pidgin – A Universal Chat Client by srgpqt on Friday January 22, 2021 @01:16PM (#25874370)
iCloud backups contain iMessage encryption keys so the messages can be decrypted and read by Apple.
Re:Pidgin – A Universal Chat Client by toast0 on Friday January 22, 2021 @11:46AM (#25873260)
Background execution restrictions mean you would not be able to be online except when the app was in the foreground for the most part on iOS; on Android, you have inconsistent access to cpu and network in the background.

You really need push notifications, but AFAIK, push tokens are tied to the app developer; you can't give an random server a token from your app, because they won't be able to push to you.

Re:Pidgin – A Universal Chat Client by virtue3 on Friday January 22, 2021 @12:28PM (#25873820)
Yeah that would be expensive for the pidgin maintainers, if the other message services had a way to do that via oauth or some such that would be different but entirely not in their interests.
Re:Pidgin – A Universal Chat Client by gogopuppygogo on Friday January 22, 2021 @11:19AM (#25872964)
Have you seen the latest review of the Librem 5 from Linus Tech Tips? The phone seems to run Linux apps fine... it doesn’t have working camera drivers a year after release though...

https://youtu.be/BH8DRyKUZDg

So Pidgin (gaim for those of us old enough to remember those days) should run fine without a port.

Re:Pidgin – A Universal Chat Client by eximius on Friday January 22, 2021 @04:14PM (#25876438)
Hell, I still don't have my damn order and I placed it in Oct. 2017. Their last post said early orders would be completed by EOY, but my last email to support they said another two months.

I want to be supportive but holy hell am I frustrated.

Re:Pidgin – A Universal Chat Client by fsflover on Friday January 22, 2021 @11:26AM (#25873040)
> it doesn’t have working camera drivers a year after release though...

The problem is the lack of SoC documentation. There is some progress for the camera though: https://source.puri.sm/Librem5/linux-next/-/issues/44#note_1....

Re:Pidgin – A Universal Chat Client by Rooster61 on Friday January 22, 2021 @12:53PM (#25874138)
> should run fine without a port

Sure. Was saying that this should work out of the box (at least for the most part) on a linux phone. No port necessary.

Re:Pidgin – A Universal Chat Client by dylan-m on Friday January 22, 2021 @02:51PM (#25875527)
Pidgin's libpurple library was a core part of Palm's WebOS. They were really focused on integrating different chat services like that. For Librem 5, they're using Telepathy quite heavily, which is similar but designed more as an OS component (and full of XML).
Re:Pidgin – A Universal Chat Client by mouldysammich on Friday January 22, 2021 @11:22AM (#25872988)
Chatty, from librem uses libpurple, which pidgin is built on, for its sms app so it also supports xmpp, i dont think itd be hard to support the other services libpurple supports, i found it pretty easy to add purple-facebook support
Re:Pidgin – A Universal Chat Client by bratch on Friday January 22, 2021 @11:29AM (#25873067)
It still works great on the Nokia N900!

https://developer.pidgin.im/wiki/UsingPidgin/N900

Re:Pidgin – A Universal Chat Client by anthony_barker on Friday January 22, 2021 @04:39PM (#25876643)
you still use the n900?
Re:Pidgin – A Universal Chat Client by bratch on Friday January 22, 2021 @08:12PM (#25878518)
All day every day since 2009 :)

I've kept an eye on other phones throughout the years, but nothing quite ticks the same boxes (and by far most things aren't even remotely close).

There are some other interesting phones on the horizon (Librem, PinePhone), but then again things like Maemo Leste are ready to breathe new life into the N900, so I might be using it for very long time yet!

Re:Pidgin – A Universal Chat Client by GlTChWhISKY on Friday January 22, 2021 @11:16AM (#25872924)
The simple answer is the developer (Gary) doesnt have the time. The project needs help. Rwgrim on twitch is the lead dev
Re:Pidgin – A Universal Chat Client by Implicated on Friday January 22, 2021 @11:25AM (#25873014)
Re:Pidgin – A Universal Chat Client by seba_dos1 on Saturday January 23, 2021 @09:01AM (#25882261)
Chatty (the default chat app on the Librem 5) reuses parts of Pidgin's code via libpurple.

Also, I've used Pidgin as my main mobile IM client back in the day on the Openmoko Neo Freerunner.

Re:Pidgin – A Universal Chat Client by fattire on Friday January 22, 2021 @11:16AM (#25872925)
For whatever reason I kind of remember Gaim/Adium/Pidgin/libpurple had a run of security issues back in the day too.. I assume that stuff got fixed up by now... but I think at the time that accounted for its decline. Oh, now that I think of it wasn't XMPP (streaming XML) originally invented for Jabber which Pidgin supported?
Re:Pidgin – A Universal Chat Client by mr_gibbins on Friday January 22, 2021 @11:16AM (#25872920)
If it were ported to Android/iOS, it'd need to adhere to the relevant standards from Google/Apple. If it did (and that's a hard task itself, see every other 'Google/Apple blocked my app' thread on HN) then it'd quickly be squashed by the other major competitors.

Can't have a non-monetised, FOSS, universal application available in the app stores! That's like ... that's like COMMUNISM, or something! /s