dequis / purple-facebook

Facebook protocol plugin for libpurple (moved from jgeboski/purple-facebook)
GNU General Public License v2.0
954 stars 88 forks source link

Plugin is not loading #204

Open jakubsuchybio opened 8 years ago

jakubsuchybio commented 8 years ago

Hi. I downloaded binaries from you wiki: https://github.com/jgeboski/purple-facebook/wiki/Installing-on-Windows And copied them to their locations, started pidgin with debugging (because normally plugin isn't loading) via:

cd "C:\Program Files\Pidgin"
pidgin.exe -d 2>&1 > "%USERPROFILE%\debug.log"

Then I looked into debug.log and there is:

(11:54:32) plugins: probing C:\Program Files (x86)\Pidgin\plugins\libfacebook.dll
(11:54:32) plugins: C:\Program Files (x86)\Pidgin\plugins\libfacebook.dll is not loadable: `C:\Program Files (x86)\Pidgin\plugins\libfacebook.dll': A dynamic link library (DLL) initialization routine failed.

Plugin is not loading in the pidgin. Can I somehow debug it further? Thanks

dequis commented 8 years ago

I tested it and works for me. Try redownloading them, ensure that each file is in the correct directory as mentioned in that wiki page

If that still fails, right click -> properties on each one of those two dlls and post screenshot

jgeboski commented 8 years ago

What version of pidgin are you using? Did you properly install libjson-glib-1.0.dll?

jakubsuchybio commented 8 years ago

Pidgin 2.10.12 (libpurple 2.10.12) libjson-glib-1.0.dll: image

libfacebook.dll: image

Here is how it looks like when files are at correct place with restarted Pidgin: image

dequis commented 8 years ago
cd "C:\Program Files\Pidgin"
pidgin.exe -d 2>&1 > "%USERPROFILE%\debug.log"

That "Program Files" doesn't have (x86), is that okay?

I'm kinda out of ideas. @EionRobb

awatila commented 8 years ago

mine was working but i also started experiencing the above issue

dequis commented 8 years ago

@awatila After upgrading the .dll? Or just, uh, suddenly?

EionRobb commented 8 years ago

@jakubsuchybio I see you've got the steam and skypeweb plugins too, did you install them after facebook (which would have overwritten the json-glib dll with an older version)?

dequis commented 8 years ago

Judging by the filesize in the screenshot, that libjson-glib-1.0.dll is the right one.

EionRobb commented 8 years ago

@dx yeah fair enough, I was just seeing that the timestamps are different

jakubsuchybio commented 8 years ago

That "Program Files" doesn't have (x86) => It was just copy pasted. Ofc I used x86 to run Pidgin :) I also should have stated, that Facebook plugin worked at start (like month ago) with all plugins that you saw. But one day (like 6days ago. I don't rember) my Facebook account disappeard from my accounts in Pidgin and Facebook plugin didn't work. So yeah uh suddenly it stopped working :/ I am programmer... I don't work with C/C++ code, but I did some time ago. Is there a way to debug the Pidgin plugin via debugger or just by debug messages?

7Two1 commented 8 years ago

@jakubsuchybio make sure you don't have another libfacebook.dll in

C:\Users\...\AppData\Roaming\.purple\plugins

I did, and once I removed it, the expected became visible in menu /help/plugin infomation and the plugin signed in

Facebook
    Author: (null)
    Version: 20160203~04f1edd~92885e0456ed~107
    Website: https://github.com/jgeboski/purple-facebook
    ID String: prpl-facebook
    Loadable: Yes
    Loaded: Yes

GL

jakubsuchybio commented 8 years ago

@JackTandy I looked and there was nothing. I did search for it in C:/ and also got nothing else than downloaded one and one in pidgin/plugins/ image

I will try to reinstall pidgin today and load only fb plugin and we will see.

dequis commented 8 years ago

Maybe try unblock here?

That's in the properties dialog of both files. No idea if relevant.

jakubsuchybio commented 8 years ago

Did that. No change. :( So I did complete uninstall via Revo Uninstaller (removes leftover registry and files) and also deleted .purple in AppData/Roaming. Then clean install from pidgin-2.10.12.exe. Then started pidgin, closed pidgin. Then copied libfacebook into /pidgin/plugins and libjson-glib into /pidgin/ and it still doesn't work. I am running out of options guys. This really seems like a problem in the plugin's dlls.

jakubsuchybio commented 8 years ago

Could someone recompile the latest release into Windows binaries and send them to me please?

dequis commented 8 years ago

Here's a workaround since i'm out of ideas. Basically using bitlbee-facebook instead of purple-facebook, and relying on a public server for this. I hope you don't mind.

  1. Add an IRC account, server im.codemonkey.be, port 6697, turn "use ssl" on.
  2. Connect, it will join you to a channel called &bitlbee. If it asks to verify the ssl certificate because pidgin sucks, the fingerprint is 61:c3:92:56:45:c7:b7:e5:db:d0:61:f9:7b:c2:1b:87:a7:e4:e4:76 (crt.sh)
  3. Type account add facebook <your@email> <app-password>. Make a new app password for this.
  4. Type channel set show_users online+,special%,away,offline
  5. Type account facebook on
  6. Use the nick list of that channel as your buddy list.
  7. Type register <password> to create an account in im.codemonkey.be using your current nick as username.
  8. Accounts window, select the irc account, modify, put this password in the password field.

It's a bit weird with the "buddy list" and there are no inline images, but probably better than nothing.

stukev commented 8 years ago

Exact same issue here unfortunately. Tried reinstalling, deleting all leftover files, several times, nothing.

I'm using x64 on Windows 10. @jakubsuchybio are you on win10 too? Might be some oddity related to it.

Edit: From googling around a little it seems this can often happen when a dll is failing to load/find another dll it references. Any ideas how to check which resources libfacebook.dll might be trying to load?

Second Edit: "Depends" seems to find that an unknown dll is missing. I think we are on the right path here but something is off:

MINGW64 /c/Program Files (x86)/Pidgin $ ldd libfacebook.dll ntdll.dll => /c/Windows/SYSTEM32/ntdll.dll (0x7ffb09110000) KERNEL32.DLL => /c/Windows/system32/KERNEL32.DLL (0x7ffb06b00000) KERNELBASE.dll => /c/Windows/system32/KERNELBASE.dll (0x7ffb06380000) apphelp.dll => /c/Windows/system32/apphelp.dll (0x7ffb04290000) ??? => ??? (0x55f50000)

jakubsuchybio commented 8 years ago

Hi, yes I use Win10

EionRobb commented 8 years ago

Can you get a screenshot of Help->Build Information just to check what versions of GTK/Glib are being used

SpartanJ commented 8 years ago

Some issue here, i can't seem to find what's the problem. I'm also using Windows 10. I tried installing it with and without GTK+ ( i've my own GTK+ installation ), but it seems that makes no difference.

pidgin-version

pidgin-version-2

Also i uploaded the debug file: here

Let me know if i can help debugging this issue.

EionRobb commented 8 years ago

@SpartanJ (02:14:54) plugins: C:\Program Files (x86)\Pidgin\plugins\libfacebook.dll is not loadable:C:\Program Files (x86)\Pidgin\plugins\libfacebook.dll': The specified procedure could not be found.` is the key. Looks like you use the skypeweb plugin which has an older json-glib

https://github.com/dequis/purple-facebook/wiki#the-plugin-doesnt-load-on-windows

SpartanJ commented 8 years ago

Confirmed! That was the issue! I installed skypeweb AFTER installing manually libfacebook and overrided the libjson-glib dll. Thanks for your help, that was FAST!

rodneyrod commented 8 years ago

I'm getting this very issue on Win7 32bit, manually installed the plugin into Program Files/Pidgin/Plugins as per the instructions on the wiki including the json-lib. I did install other plugins like the Telegram and Skypeweb plugins, but I left the Facebook plugin until last and it just doesn't appear in available account types

If you want the debug logs, what's the process on how to collect them?

hakachukai commented 7 years ago

I am having this same issue in Linux Ubuntu 16.04. How do I further debug this?

I downloaded the source tar ball and built it accord to the instructions. After successful build I copy libfacebook.so to ~/.purple/plugins

I run to pidgin with strace which verifies that it does find the plugin, it just doesn't load it properly. No new plugins appear on the plugin list in pidgin UI.

Strace output:

user@machine:~/.purple/plugins$ strace pidgin 2>&1 | grep libfacebook
access("/home/user/.purple/plugins/libfacebook.so", F_OK) = 0
stat("/home/user/.purple/plugins/libfacebook.so", {st_mode=S_IFREG|0644, st_size=812536, ...}) = 0
open("/home/user/.purple/plugins/libfacebook.so", O_RDONLY|O_CLOEXEC) = 15

Here's the file perms of the plugin:

user@machine:~/.purple/plugins$ ls
total 804K
drwxrwxr-x 2 user user 4.0K Dec 20 10:55 .
drwx------ 6 user user 4.0K Dec 20 11:23 ..
-rw-r--r-- 1 user user 794K Dec 20 10:55 libfacebook.so

Here's the md5sum of the plugin

user@machine:~/.purple/plugins$ md5sum libfacebook.so 
55c124e3460ac03a3b27dbe3f3d3e323  libfacebook.so

Pidgin version:

user@machine:~/.purple/plugins$ pidgin -v
Pidgin 2.10.12 (libpurple 2.10.12)

Plugin version:

user@machine:~/Downloads$ ls *.tar.gz
-rw-rw-r-- 1 user user 447K Dec 20 09:42 purple-facebook-0.9.0-c9b74a765767.tar.gz
dequis commented 7 years ago

No new plugins appear on the plugin list in pidgin UI.

It's not supposed to appear there. It should appear in the list of protocols when adding an account

hakachukai commented 7 years ago

That solved the issue. Thanks for the help :-)

joeandjoe commented 7 years ago

hi, i have installed plugin in linux mint 18.1 and i have only facebook xmpp when adding accounts

strace pidgin 2>&1|grep facebook access("/usr/lib/pidgin/libfacebook.so", F_OK) = 0 stat("/usr/lib/pidgin/libfacebook.so", {st_mode=S_IFREG|0644, st_size=203296, ...}) = 0 open("/usr/lib/pidgin/libfacebook.so", O_RDONLY|O_CLOEXEC) = 11 access("/usr/lib/purple-2/libfacebook.so", F_OK) = 0 stat("/usr/lib/purple-2/libfacebook.so", {st_mode=S_IFREG|0644, st_size=203296, ...}) = 0 open("/usr/lib/purple-2/libfacebook.so", O_RDONLY|O_CLOEXEC) = 11

grumble9684 commented 7 years ago

Same issue here, I have purple-facebook installed but on account creation there is no 'facebook' option, just Facebook XMPP. I'm on elementary 0.41