davidgfnet / whatsapp-purple

WhatsApp protocol implementation for libpurple (pidgin)
856 stars 211 forks source link

Cannot compile on Windows #260

Open Lexoka opened 9 years ago

Lexoka commented 9 years ago

Hi,

Update: I changed the title upon noticing that the DLL wasn't working for the simple reason that it's not a real DLL. Thus the issue is mainly one of compilation.

I've had no trouble installing this plugin on Linux, but I can't seem to figure it out for Windows. I tried copying libwhatsapp.dll into Program Files (x86)\Pidgin\plugins but when I launch Pidgin and try to add a contact, no whatsapp option appears. In the Tools → Plugins menu, there's no whatsapp plugin either.

I tried the installer.nsi script but compilation fails with the following error:

*File: "deps/.dll" -> no files found. Usage: File [/nonfatal] [/a]([/r] [/x filespec [...]] filespec [...] | /oname=outfile one_file_only) Error in script "E:\Downloads\whatsapp-purple-master\win32\installer.nsi" on line 94 -- aborting creation process**

I'm not sure what that means but it suggests missing DLLs, so I tried to recompile the whole thing, without much success:

mingw32-make.exe Makefile.mingw yields the following output:

process_begin: CreateProcess(NULL, pkg-config --variable=plugindir purple, ...) failed. process_begin: CreateProcess(NULL, pkg-config --variable=datarootdir purple, ...) failed. mingw32-make.exe: Nothing to be done for 'Makefile.mingw'.

Should I also have the sources for Pidgin?

I noticed a link to download an easy installer ( https://gosell.it/product/whatsapp-for-pidgin-20 ) but it's currently dead. Plus, when I checked it out a couple of days ago, it was behind a paywall, which seems odd for an open-source project.

Am I doing something wrong? I don't really have any experience with Windows development so I may have missed something very obvious.

Thanks!

gnottgen commented 9 years ago

Same problems. So i ran pidgin --debug. Message: (14:20:27) plugins: probing c:\Program Files (x86)\Pidgin\plugins\libwhatsapp.dll (14:20:27) plugins: c:\Program Files (x86)\Pidgin\plugins\libwhatsapp.dll is not loadable: 'c:\Program Files (x86)\Pidgin\plugins\libwhatsapp.dll': %1 is not a valid Win32 application.

Seems to be the same as in issue https://github.com/davidgfnet/whatsapp-purple/issues/229 (see also my comment https://github.com/davidgfnet/whatsapp-purple/issues/229#issuecomment-98693390 there)

Lexoka commented 9 years ago

You're right, I get the same error message when I run pidgin with the --debug option.

I've just noticed that the DLL is 18 bytes, so that was to be expected. It would be nice to have a convenient way to download the real DLL, or more detailed instructions to compile the project correctly.

nathandh commented 9 years ago

If you are compiling under a Windows environment, the resulting libwhatsapp.dll should be about 1.75MB. I've successfully compiled this on both Linux and Windows environment and can say that it compiled fine. Though some customization of the Makefile may be necessary depending on your setup. On my Windows setup, I changed the Makefile.mingw file to ensure all the correct libraries (such as FreeImage) were linking correctly based on my specific setup.

In general, compiling from Windows is more complicated, but definitely doable. If it helps anyone, here (http://pastebin.com/13yuA6kx) is my adjusted Makefile.mingw file. I compiled the latest 0.8.2 with MinGW under Windows 8.1 x64 just again today to test it. Key things: 1) make sure PIDGIN_DEV_ROOT is defined correctly for your setup, 2) adjust FREEIMG* paths to your specific library locations on your computer.

1ay1 commented 9 years ago

i am not able to compile it really

dequis commented 9 years ago

i am not able to compile it really

So... buy it? It's just $1 or so.

I'm not even sure why this ticket is still open, if the whole point of this is not paying davidgf one dollar and you seem to be asking him for help on that.

1ay1 commented 9 years ago

i bought it lol, 1$ wasnt the thing, thing was Paypal wasnt accepting my debit card.