ghetto-skype icon indicating copy to clipboard operation
ghetto-skype copied to clipboard

Browser not supported

Open jherazob opened this issue 5 years ago • 53 comments

Good morning. Today i was greeted with a message telling me that the browser was no longer supported, which basically breaks the app.

What can be done about this? Change the Electron version? the user agent? No idea. It's a showstopper bug so it needs attention quickly.

jherazob avatar Mar 14 '19 08:03 jherazob

Can confirm it happens here too.

kliment avatar Mar 14 '19 16:03 kliment

Same for linux 64-32 version

maurosh avatar Mar 14 '19 17:03 maurosh

+1

Browser not supported Use Microsoft Edge or Google Chrome to access Skype for Web experience. Alternatively, download Skype on your desktop computer.

microsoft blocked clients not from the " white list of browsers". Need to learn to impersonate google chrome / microsoft edge. Let them think that users use curves and inconvenient browsers.

Bsplesk avatar Mar 15 '19 07:03 Bsplesk

https://github.com/stanfieldr/ghetto-skype/blob/e3d9e42f2d71ef6f1e79b9c5a99ceca10e461fbe/src/main.js#L73

mainWindow.webContents.setUserAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36");

brainscar avatar Mar 15 '19 07:03 brainscar

Just to elaborate, change that string to:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36

It will work again.

Should be located on most Linux machines at:

/opt/ghetto-skype/main.js

brainscar avatar Mar 15 '19 08:03 brainscar

@jherazob @kliment @maurosh @Bsplesk @stanfieldr

Please review and approve pull request.

https://github.com/stanfieldr/ghetto-skype/pull/159

brainscar avatar Mar 15 '19 08:03 brainscar

The file is not at that location, maybe it's packed inside one the those .pak files? What's the correct way to manipulate them?

jherazob avatar Mar 15 '19 08:03 jherazob

@jherazob you would have to compile from source. Change the file beforehand then compile. Sorry I forgot about the compiled versions on other systems.

brainscar avatar Mar 15 '19 08:03 brainscar

@brainscar Thanks. Video/Voice call works. Arch Linux (4.19.17-1-lts x86_64 GNU/Linux);

Bsplesk avatar Mar 15 '19 09:03 Bsplesk

@brainscar Can include in the configuration file? ~/.config/Ghetto\ Skype/settings.json . useragent can be updated.

Bsplesk avatar Mar 15 '19 09:03 Bsplesk

Tried to compile of myself, for debian stable but I stuck on dependencies: libcairo2-dev : Depends: libfontconfig1-dev (>= 2.2.95) but it is not going to be installed

Anyone managed to build the corrected deb file for debian/debian-based system to share? Note that version 1.6 works only on 64bt debian stable systems. For 32bit I used 1.50 version. So, it's better to get some instructions step-by-step to compile of myself each version.

maurosh avatar Mar 15 '19 11:03 maurosh

maurosh just use aptitude.

I need help, It seems I can't find nowhere main.js on Linux Mint. On Arch it's in /opt/ghetto-skype/ but in Mint it isn't there.

mozo78 avatar Mar 17 '19 11:03 mozo78

thanx mojo78, I've installed the missing dependencies fron debian backports but still can't build it due to electron issues. The "main.js" is into the source dir /src and now it's corrected. Just clone or download and compile.

Anyway, i think (and suggest) it's better to read the agent info (ie "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36") from an external file, such as a flatfile, an xml or something. So users can be able to update it manually without the need of a new compilation.

Note that 32bit version is more usefull than 64bit, as there is no official release of skype for linux 32bit. There are people out there using old 32bit systems just for basic communication and ghetto is the only way to use skype.

maurosh avatar Mar 17 '19 14:03 maurosh

I just succeeded compiling it remotely for a friend of mine with an old laptop with Linux Mint 18.3 x86. You have to install node.js 8 in order to compile Ghetto-Skype 1.5.0 without any problems. Versions 10 and 11 aren't available for x86. It fails to compile with the default version 4.

sudo apt-get purge --remove nodejs
sudo apt-get autoremove
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

Check the version with:

node -v

It has to be 8.x.

Edit the main.js file which is located in src/ with the correct values, then compile the package:

npm install
npm run dist
cd dist && ls

Then the package is located in the dist folder and you'll install the patched version of Ghetto-Skype from it. That's all :)

PS. If you try to compile master (1.6.1) be warned that in the package.json file the default package is rpm. You have to change it to deb.

mozo78 avatar Mar 17 '19 15:03 mozo78

Thanx again mozo78, nodejs version 8 worked. Find below the i386 deb v.1.5.1 available for 30 days. Tested and works, video call not tested. Compiled in vanilla debian stretch (v.9.8 -kernel 4.9.0-8-686).

https://ufile.io/4bp7k

Edit: video calls not working in this version. Ghetto-skype v1.6.1 is working if your system uses libc6 >= v2.27 (ubuntu maybe). Debian stretch uses libc6 v2.24. There is a newer libc6 v2.28 in sid repos but I shouldn't use sid packets on stretch.

maurosh avatar Mar 17 '19 17:03 maurosh

You are welcome :)

mozo78 avatar Mar 17 '19 18:03 mozo78

Also on Mint here, have been managing with a Chromium instance but without notifications. Since i do not desire to recompile it and spread stray dependencies not used for anything else all over my machine just to change the User-Agent i'll just wait for the (hopefully not too far) next release. I also concur that putting the User-Agent somewhere editable is the way to go, with a default one that will be used if that is absent.

jherazob avatar Mar 18 '19 08:03 jherazob

Compiled x86-64 version 1.6.1 as well, tested and working as expected. Video calls not tested. Debian stretch v9.8 - kernel 4.9.0-8-amd64 - node v8.15.1 Find below the deb file available for 30 days:

https://ufile.io/1r1lf

Edit: video calls tested and working.

maurosh avatar Mar 18 '19 12:03 maurosh

I've just tried and it works fine. Without recompilation. sed -i 's/55.0.2883.87/70.0.3538.77/g' /opt/Ghetto\ Skype/resources/app.asar

fa11er avatar Mar 19 '19 06:03 fa11er

I've just tried and it works fine. Without recompilation. sed -i 's/55.0.2883.87/70.0.3538.77/g' /opt/Ghetto\ Skype/resources/app.asar

voice calls not work for me :( i'm trying sed -i 's|"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"|"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121111"|g' /opt/Ghetto\ Skype/resources/app.asar but calls still not work

rootbdfy avatar Mar 19 '19 09:03 rootbdfy

Find below patched, properly compiled and tested in linux installations app..asar files for versions 1.5.1. x86, 1.6.1 x86 and 1.6.1 x86_64. Suppose you have to replace the installed /opt/Ghetto Skype/resources/app.asar with the proper file of the zipfile below. Files are tested but not this method by me. It is possible to work as well in non-linux systems using app.asar file.

Available for 30 days: https://ufile.io/qfcs1

Edit: Video/voice calls working for v1.6.0+. For the x86 version to work properly libc6 >= v2.27 is required by electron. There is no way to bypass this even using appimage. I tried to build an appimage including dependencies but such libs as libc6 couldn't pack into appimage. Video calls working fine on Debian stretch x86-64 using the patched v1.6+ but not on stretch x86. If your system is based on x86 arch, ensure that you have libc6 v2.27 or greater, or use v.1.5+ of ghetto-skype without video/voice calls.

maurosh avatar Mar 19 '19 11:03 maurosh

On Arch calls working fine but not on Mint. I checked the libc6 version and it's 2.27. 1.6.0 x86 don't start at all.

A JavaScript error occurred in the main process Uncaught Exception: Error: libgif.so.7: cannot open shared object file: No such file or directory at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:172:20) at Object.Module._extensions..node (module.js:598:18) at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:186:18) at Module.load (module.js:503:32) at tryModuleLoad (module.js:466:12) at Function.Module._load (module.js:458:3) at Module.require (module.js:513:17) at require (internal/module.js:11:18) at Object.<anonymous> (/opt/Ghetto Skype/resources/app.asar/node_modules/canvas/lib/bindings.js:3:18) at Object.<anonymous> (/opt/Ghetto Skype/resources/app.asar/node_modules/canvas/lib/bindings.js:5:3)

mozo78 avatar Mar 20 '19 20:03 mozo78

Does 1.6.1 run on x86 systems with working calls? I ask before try again remotely on my friend's laptop. I just tried on my Mint x64 and the calls are working with 1.6.1.

mozo78 avatar Mar 20 '19 21:03 mozo78

Yes mozo78, tried 1.6.1 x86 on a "franken-debian" (with updated libc6 v2.28 from sid) and video calls are working as expected. I shouldn't use anyway such experimental system for real. You better check it on a virtual machine with mint x86 before try it on your friend's laptop.

I also tried copying directory /opt/Ghetto Skype on parabola x86 (arch based) and porteus x86 (slackware based), and running "ghetto-skype". It's working on both systems.. Never tried on mint or another ubuntu-based distro.

maurosh avatar Mar 21 '19 09:03 maurosh

Thank you I'll try :)

mozo78 avatar Mar 21 '19 10:03 mozo78

It seems I can't compile the 1.6.1 x86 version. I can compile x86_x64 without problems but x86 fails. Can someone send me a precompiled 1.6.1 x86 with the fix? Thank you in advance.

mozo78 avatar Mar 21 '19 10:03 mozo78

"npm install && npm start" works but not compilation. For now it may be used like that till someone send me 1.6.1 x86.deb :)

mozo78 avatar Mar 21 '19 10:03 mozo78

You can install v1.6.0 x86 and replace /opt/Ghetto Skype/resources/app.asar from the zipfile i've uploaded.

maurosh avatar Mar 21 '19 11:03 maurosh

But 1.6.0 doesn't start at all :(

mozo78 avatar Mar 21 '19 11:03 mozo78

execute the command: sudo dpkg -l | grep libc6 and find out the version of libc6 of your linux distribution. It must be >=2.27 otherwise v1.6+ won't run.

maurosh avatar Mar 21 '19 20:03 maurosh