-
Notifications
You must be signed in to change notification settings - Fork 3
Call for alpha testers #1
Comments
I compiled and ran the plugin with Arch Linux and |
Hm I missed this earlier, sorry; I should be able to test this out later this week. For reference, I'll be using this as a plugin to bitlbee, compiling then running in an Alpine docker container. I presume this can peacefully live alongside the existing signald-based plugin? |
@mooomooo Yes. By design, they do. At least they coexist on my system. :D |
Hm. Not having any experience with cmake, I'm not sure if I'm doing the right thing. I'm getting warnings that are treated as errors and thus not allowing me to build.
Dies with errors (full trace snipped):
|
@mooomooo I have seen this error in purple-gowhatsapp. It is not an issue with this plug-in's code, but rather between glib and the purple library. Please remove |
Hm ok having made that change, it compiles and I now have a |
Well in that case I just take your findings as "does not work with bitlbee". Thank you for your help. :) |
Hello Hermann,
I have downloaded the binaries provided by your buildbot and
successfully got the plugin running. I have noticed the following and
would like to make sure that this is the expected behavior of this early
stage of development.
* The user list is not loaded from the linked account. Instead, a user
has to be added manually (a real blocker for not using this plugin on
a regular basis).
* Users are shown offline even when there is an active chat.
* When my notebook resumes from a suspended state, the following error
message is showing up:
"java.nio.channels.OverlappingFileLockException" and I have to
restart pidgin before re-enabling the account works.
Best regards
Torsten
…On Sun, 2020-07-05 at 15:24 -0700, Hermann Höhne wrote:
@fancypantalons @ttlmax @mooomooo In the past days, I saw you being
active over at libpurple-signald. Care to help me out testing this
project? Compared to libpurple-signald, purple-signal integrates way
more directly with signal-service-java. My gut says, this is cool and
we should focus future development on this one rather than libpurple-
signald. purple-signal eliminates the need for a separately running
service and offers support for Windows. Right now, only linking to an
existing device and single chats are supported. I am interested in
finding out whether is it usable for any of you.
Binaries are provided here:
https://buildbot.hehoe.de/purple-signal/builds/ (.so is targeted
Ubuntu amd64 18.04).
Installation instructions are located here:
https://github.com/hoehermann/purple-signal/blob/master/INSTALL.md
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
Thank you for your response @ttlmax . Good to hear my binary works for you.
I did not implement these for this alpha.
Ugh. That sounds like a nasty one. Thank you for pointing it out. I always power off my machine, next to never I suspend it. I would never have noticed. Now I can investigate. |
I've downloaded the Windows dll, copied it to Pidgin's plugins folder and restarted Pidgin but I can't select Signal as a protocol when I want to add a new account. Using Pidgin 2.14.1 on Windows 10. |
@rvdborgt Thank you for taking the time to try the plug-in. Unfortunately, copying the dll is not enough. The plug-in also needs the jar, the jars coming with signal-cli and a 32bit installation of Java added to the path (so jvm.dll can be loaded automatically). INSTALL.md contains detailed instructions. It is possible for me to enhance the dll in such a way that it actively complains about missing files. Implementing this is tedious, makes the overall code more error-prone and – at best – provides a one-time benefit for each user only. This is why I chose not to include such functionality in the alpha. |
@Mavoy Nice to hear you tried it. During the past weeks, I have been working on some improvements (especially in regard to error handling), but they are not finished yet. Feel free to use the attached binaries to try again. If they do not work, open a Power Shell window in your Pidgin installation directory, execute "pidgin.exe -d > somelogfile.log". Close Pidgin, search the logfile for "signal" and post it along with a couple of lines before and after. Remove all mentions of personal data. Pidgin is 32bit so the plug-in needs a 32bit Java. A recent Java 11 or 13 runtime can be obtained from https://adoptopenjdk.net/releases.html. I should probably supply an installer next. ;) |
Hey @hoehermann, thanks for finding time to work on this! It would be super useful to have Signal support in Pidgin on Windows. I tried to set it up and here are my findings:
|
@konto-andrzeja Thank you for contributing. Every piece of information is valuable. Did you adjust your user's environment variables so |
@hoehermann My bet would be on |
I tried to do the following:
The only additional three files that were requested by Pidgin when trying to load purple-signal were |
Good, very good. Thank you for the input. I now know that I need to look out for dynamic dependencies. I obviously have them installed implicitly in my development environment, but a pristine Windows installation probably won't have them. I found this question, but it looks like I need to fiddle around with the options to link everything statically but not |
@konto-andrzeja I am sorry, I am very sorry. In the end, it turned out to be a caching error in the build bot. The current build now uses the proper configuration. Only direct dependencies are now (correctly) |
It works, awesome! I successfully linked my account and was able to send some messages, then saw them in the mobile app. Since it's 1am everybody is asleep and nobody will answer, so I'll test receiving messages in the coming days. |
It seems that receiving messages doesn't work. I get |
Dang it. Here I was, thinking it was working at least a bit. Receiving messages is working fine for me. In my tests, I use a number which I registered directly. I assume, messages from linked devices are transferred differently. I want to try and get myself a smartphone to run the official client on so I can test it this theory. |
I just checked |
I welcome your offer to help. If you start |
Now it's working. I wonder if it has something to do with the fact that when checking whether Also, after setting up
One thing I'd like to report after chatting with my friend is that those |
It looks like I did not fully understand how signal-cli works internally. Accounts managed by signal-cli and purple-signal should be completely independent as they use different locations (signal-cli uses a file somewhere in %userprofile%, purple-signal uses the Pidgin user's accounts.xml) to store their data (including the keys) in. Apparently, there is still some overlap somewhere. The setup being unreliable is bad. Good you made it work by persistence. :) Nice to hear it is working for you. At least for now. The debug output looks very useful. Thank you for providing it. I cannot do much about the linking being unreliable, but I should be able to display the reason (UserAlreadyExists) in Pidgin rather than the unhelpful "null" error message. :) I can make the messages optional. They are only there to help with debugging. ;) |
As pointed out by github user @konto-andrzeja during alpha testing (#1).
More testing today with the newest version. It seems that my conclusion about
However, when I send or receive messages using the mobile app, Pidgin crashes. Tried to run Tried to use |
Finally got logging to a file working, but still not sure if what I see in those logs is the cause of the crashes. When I send a message to somebody using the mobile app, but I don't have this somebody stored as a contact in Pidgin, it crashes with:
It even crashes when Pidgin was off at the time of sending the message and is started later. In pidgin.RPT I can see this:
When I add this contact manually in Pidgin and send a message from Pidgin (important, without this step it still crashes), then it starts to handle messages from the mobile app. This EDIT: Two more things:
|
Thank you for your tests. None of the problems you describe happen on my system, so it is very useful you tell me about them – without your help, I would never know. :)
The |
Then I guess all the issues pop up only if you also use the mobile app and you link to your existing account instead of registering a new one.
Makes sense, the second time I had the window open since I sent a message. Unfortunately I'm not able to provide more info, unless you have some ideas on how to force Pidgin to provide more logs. The last line in the log file before Pidgin crashes is this
Sure thing, it's awesome that you're doing this at all, take your time and if I can help you in any way, let me know. |
@Michkovy Thank you for pointing out the old version in the instructions. Your assumptions are correct. Though pidgin should start with the PowerShell being open. That is odd. Update: I just noticed that the current signal-cli needs an additional library. I updated the installation instructions. You need to download the x86 build from https://github.com/dennisameling/zkgroup/releases/tag/v0.7.1-test and place it besides the purple-signal.dll and purple_signal.jar. What a mess! On the bright side, the MSVC warned me about dangerous implicit type conversions. One of them regarding 64 bit timestamps in 32 bit applications was actually helpful. The current windows build now crashes less often. :) |
The newest version is a huge improvement, I had a proper conversation using Pidgin, messages from the the mobile app were properly synchronized, looks really promising. Awesome job! I'll use the plugin for some time and check if there are any bugs left. :) |
No change for me with the new builds. I noticed you have a different java from me in the install instructions, where you have openjdk-11. I'm using the Oracle java, could be a difference between the two. Regarding the log, pidgin starts while the powershell is still open, but never fully boots. I can see Pidgin in the task manager, but it only shows the main window once powershell is exited. |
@Michkovy This should be |
@Michkovy I'd like to try it just to see the difference, but I cannot even find Oracle Java 11 for Windows i586/x86/32bit. https://jdk.java.net/java-se-ri/11 features only x64/64bit builds. https://www.java.com/de/download/manual.jsp only offers Java 8. Meanwhile I found out that in PowerShell one needs to prefix the command with an ampersand. So
is working for me. |
Right got logging to work now, thanks for bearing with me on that. Here is the interesting bit, Pidgin trying to connect to signal, stripped my phone number from the first line but that's all I did. I got the full log if you need more.
If I read the second to last line right is it looking for java in the wrong place? My java path is it appears to look at before throwing the error. As for the version, I'm using v8 update 271 build 1.80_271-b09, 32 bit. Your install instructions have the v11 in them. |
Thank you for the reply. Due to recent changes in the signal library, Java 11 is actually the required minimum. Java 8 cannot run it. :( |
I updated the installation instructions regarding support for the new groups on Windows. @pkar70 I just noticed that someone is actually doing what you suggested: The protocol is being reimplemented here. The new and annoying dependency of zkgroups.dll for the V2 groups is a sign they will eventually move away from the current implementation completely. It looks like with my plug-ins (signal and signald), I am basically riding dying horses. I am considering to throw things. It was fun while it lasted, though. |
But I want Windows version of plugin to Pidgin :) |
Linking to a phone, plain text messaging (one on one and groups), receiving attachments from others (not from self) works on Windows. I want to tackle downloading contacts and registration without a phone next. However I doubt if it is sensible to pursue this approach with the new library coming up to replace it anyway. :/ |
Right got it working now, just need contacts on Signal to talk to, I should be able to figure that out myself. |
Not sure I understand, does that mean that For now your plugin is super stable, even though it's alpha with debug messages it doesn't crash and everything works fine (apart from receiving images, but I just check them on my mobile app :)). You basically fixed every issue I mentioned and you did it almost immediately after it was reported. Hopefully people can enjoy effects of your great work a little longer. |
No, not "soon". I am quite confident signal-cli itself will be around as long as Signal is popular. However, using the "under the hood" mechanics of signal-cli as a basis for a Pidgin plug-in will probably become more and more cumbersome. To the end-user, the installation will become more annoying. For the developer, things will get more complicated up to the point where I can only give up and start from scratch. I have no idea how quickly this change will come. Might be months, might be decades. For now, I want to continue development for as long as I have fun doing so. :) |
Thanks for explaining it! Just when I wrote that everything works fine I got the |
Couple of notes from the initial testing in the field. I managed to get a message from a contact of mine, but that was that. Trying to reply Pidgin accepted the messages but it never got send out because my guinea pig contact tells me that she never got it. I usually put my computer in hibernation mode overnight, leaving Pidgin running in the background. The next restart I this message shows up, with my phone as the contact. I assume this is nominal, but it would be great if this could be suppressed somehow. Not all that vital an issue now.
Then I started to get this error the last couple of days Finally I restarted Pidgin right now to see if that fixes the error and I'm getting |
@Michkovy Thank you for your participation. |
Disabling debug messages in the newest version works great! I've been using this plugin a lot and apart from the attachments issue mentioned above there's no significant problems. Today one thing popped up: |
So I can confirm that sending an receiving messages works, when someone writes me first. I tried to save a contact in Pidgin but initiating a conversation gives the following error
and disables the plugin. I've confirmed it's still an issue with the latest files on the server just now. |
@Michkovy Thank you for trying the plug-in. Contacts must start with a plus character (e.g. |
Will try. Just to clarify +Michkovy as a contact name would work? Or does it need to be a number |
Username must be the phone number. If you want to give the buddy a human-readable name, you can use the "alias" field. Thank you for trying. :) |
Just noticed that the plugin breaks when somebody starts a group chat with me in it. It complains about |
@konto-andrzeja You are almost there. You need to open the zkgroup-java-whatever.jar archive (it is a zip archive) in your signal-cli\lib directory. Remove the libzkgroup.so remove the archive. It is best to put the zkgroup.dll there so Java does not get confused. As for future development: With signal-cli 0.8.0, there is another dll needed and I do not know where to get it. Unfortunately, continuing Windows support is unlikely. I'll probably have to ditch the project. :( |
Could you clarify this part, please? When I remove the archive Pidgin won't start, it crashes. Also, should I rename
Sounds like dependency hell all right, but you single-handedly managed to make the plugin perfectly usable, hopefully it stays that way for a while. As long as chatting works many people will be very happy with it. |
@konto-andrzeja Yes, rename libzkgroup_x86.dll to zkgroup.dll. Alternatively, try this jar: zkgroup-java-0.7.0.zip Indeed, the native dependencies are super annoying. I deliberately chose to base purple-signal on libsignal-client-java, because pure Java implementations are cross-platform by default. But nowadays, the Java tag-line is in need of adjustment: „Java – target everything, build once (per platform)“ :| |
Still doesn't work, the same error pops up. I replaced |
I once got desparate and placed a zkgroup.dll and a copy named libzkgroup.dll in virtually every directory involved. Hence I am not perfectly sure where the file needs to be placed. Today, I switched back to the old version and tried to verify my instructions. Instead, I only stumbled upon a |
I did more or less the same and it looks like |
Thank you for your investigation and the feedback. I want to update the installation instructions. The weird looking string ending with |
@fancypantalons @ttlmax @mooomooo In the past days, I saw you being active over at libpurple-signald. Care to help me out testing this project? Compared to libpurple-signald, purple-signal integrates way more directly with signal-service-java. My gut says, this is cool and we should focus future development on this one rather than libpurple-signald. purple-signal eliminates the need for a separately running service and offers support for Windows. Right now, only linking to an existing device and single chats are supported. I am interested in finding out whether is it usable for any of you.
Binaries are provided here: https://buildbot.hehoe.de/purple-signal/builds/ (.so is targeted Ubuntu amd64 18.04).
Installation instructions are located here: https://github.com/hoehermann/purple-signal/blob/master/INSTALL.md
The text was updated successfully, but these errors were encountered: