hoehermann / purple-gowhatsapp

Pidgin/libpurple plug-in for WhatsApp Web.
GNU General Public License v3.0
287 stars 35 forks source link

Cannot build on Slackware #57

Closed dchmelik closed 4 years ago

dchmelik commented 4 years ago

Make fails because of ld leading to many things being redefined earlier: purple-gowhatsapp make error log.

hoehermann commented 4 years ago

I do not even fully understand the error. An example with paths and names stripped:

gwa-to-purple.o: constants.h:44: multiple definition of SYMBOL; gwa-to-purple.o: constants.h:44: first defined here

Dear linker, yes, SYMBOL was defined in that line. Though it mentions the same line twice. I cannot really tell what is supposed to be wrong there. Is it possible your version of cgo (in the golang compiler) does not pick up CFLAGS: -DCGO in purplegwa.go?

Also, it looks like you are building with MSYS. In case you missed it, please notice I now also provide builds for win32.

dchmelik commented 4 years ago

I have gcc-9.3.0-x86_64-2... no idea what cgo it has. Haven't used Windows for a PC in over 10 or 15 years...

hoehermann commented 4 years ago

So which distribution are you using?

dchmelik commented 4 years ago

So which distribution are you using?

Slackware-current GNU/Linux; later probably also FreeBSD-current Unix (then will use the next stable releases.)

hoehermann commented 4 years ago

I just fiddled around with Slackware for an hour and came to the conclusion investigating this is not worth my time. Maybe I have grown too fond of the ease-of-use of Debian-based systems, but I won't spend hours of collecting packages for a base system and compiling stuff myself just to have a graphical UI. Sorry, you are on your own with this one.

dchmelik commented 4 years ago

The Debian way is no automatic graphical user interface (GUI; ) and you have to get more advanced ones, and many programming tools, separately. On Slackware, they're already there (GUI and most tools/libraries.) Simply choose one during installation (or as root run /var/log/setup/setup.xwmconfig ) then (as on Debian) startx (or update runlevel & reboot.)

hoehermann commented 4 years ago

That is precisely what I did. Yet startx fails since it cannot load libnettle.so.6. It looks like I need to know of, collect and install all dependencies manually. I do not want to do so – that is what a package manager should be for.

Allegedly, the Slackware "huge" kernel is compiled without nouveau and does not support my Intel graphics adapter, either. I have no idea, why the fallback to vesa or fbdev is not an option. Apart from that, the Slackware kernel panics in qemu, so I need to use a physical install.

At that point, I gave up. I do not see any point in me trying to familiarize myself with a distribution I probably won't be using afterwards just to investigate a problem which you already can track down on your machine as you have everything setup. It is not like I know anything about Slackware, golang or the cgo mechanics more than you do.

dchmelik commented 4 years ago

Wow; never seen such bad crashes from Slackware (at least in 10+ years)... probably one shouldn't use Slackware-current (rather than stable 14.2 but updated) unless testing (I'm testing.) If it'd compile on 14.2, it'll probably compile on current... but some 14.2 packages are getting old (gcc 4)... so wouldn't necessarily try... I don't even use WhatsApp yet; someone I know does, so I thought I'd try. I'll give this another try as soon as one of my OSes has a stable release or seems they update anything related (libraries, golang, though I don't know much about it yet.) Thanks for going to extra lengths to see if it'd work!

I thought it had nouveau but proprietary nvidia driver is compiled from SlackBuilds.org ... but I haven't used Nvdia (rather than AMD, which has Free/Open drivers) in over a year...

hoehermann commented 4 years ago

Thank you for your considerations. I guess the Intel graphics would probably work if I installed the appropriate binary blob of firmware (I know that procedure from Debian; Ubuntu includes it by default). And the kernel panic in qemu is really weird. It is probably a simple qemu setting or Slackware kernel parameter or idontknowwhat I need to adjust.

It is a unfortunate combination of a series of little issues, I presume. Each on therir own can be easily solved with a little of digging, but I'd rather want to focus on the plug-in itself than compilation issues on this specific platform.

hoehermann commented 4 years ago

@dchmelik As mysteries of not working software entice me more than they should, I gave Slackware another shot today. Previously, I tried to boot the "general" kernel, which is too bare bones to successfully run on my system. In my defence: This is not mentioned on https://docs.slackware.com/slackware:install, but on https://docs.slackware.com/slackware:beginners_guide. I was moderately successful with the "huge" kernel: It boots and I can use the installation.

However, gcc-go won't compile the purple-gowhatsapp dependencies and https://slackbuilds.org/repository/14.2/development/google-go-lang/ fails to install go as go is not installed. I do not really want to investigate any further, but it seems cannot promise I won't. :|

dchmelik commented 4 years ago

No worries... if enticed again, you could try prebuilt (same) SlackOnly: google-go-lang. Years ago people didn't know much about SlackOnly (a Greek guy made it then joined English-speaking forums)... I used SlackOnly packages years... installing requires Slackware's (official/included) pkgtools/installkpg.

Anyway, after Slackware-current added pluggable authentication modules (PAM,) I've been reinstalling (dislike PAM defaults) so now have to recompile BitlBee, and dozens of plugins for it and Pidgin... mostly others before WhatsApp... might be some days/weeks getting through all that...

dchmelik commented 4 years ago

I've now built a libpurple whatsapp that was listed in sbopkg... but when I went to pidgin.im and bitlbee.org, I thought they linked to this repository of yours here... the one in sbopkg doesn't... so I'm not sure which is used more. If yours is the more common one I'll still try building it later...