Opened 8 years ago

Closed 3 years ago

Last modified 10 days ago

#14678 closed task

Get Pidgin 3.0.0 building under win32 again

Reported by: tomkiewicz Owned by: datallah
Milestone: Component: winpidgin (gtk)
Version: Keywords: win32
Cc:

Description (last modified by tomkiewicz)

Recently Pidgin win32 build was broken, mostly because of new dependencies. We should:

I have managed to go through dependency hell, with great help from LowJoel. There is mine step-by-step way to compile and run newest pidgin:

######
# Setting up build environment
######

- prepare build environment as in developer.pidgin.im/wiki/BuildingWinPidgin
  Pidgin 2.8.0 should build without any problems. 2.10.0 probably won't. At
  least it didn't for me.
- install packages
  from http://software.opensuse.org
  to win32-dev/mingw
  - mingw32-libwebkitgtk-1.6.1-1.4.noarch
  - mingw32-libwebkitgtk-devel-1.6.1-1.4.noarch
  - mingw32-libwebkitgtk-lang-1.6.1-1.4.noarch (optional)
  - mingw32-libsoup-2.36.0-1.4.noarch
  - mingw32-libsoup-devel-2.36.0-1.4.noarch
  - mingw32-zlib-1.2.5-6.9.noarch
  - mingw32-zlib-devel-1.2.5-6.9.noarch
- update GTK+ to 2.24
  remove win32-dev/gtk_2_0-2.14
  from http://www.gtk.org/download/win32.php
  to win32-dev/gtk_2_0-2.24
  - gtk+-dev_2.24.0-1_win32
  - gettext-runtime-dev_0.18.1.1-2_win32
  - glib-dev_2.28.1-1_win32
  - gdk-pixbuf-dev_2.22.1-1_win32
  - cairo-dev_1.10.2-1_win32
  - atk-dev_1.32.0-1_win32
  - pango-dev_1.28.3-1_win32
- move
  - win32-dev/mingw/include/webkit-1.0/* to win32-dev/mingw/include
  - win32-dev/mingw/include/libsoup-2.4/* to win32-dev/mingw/include
  - win32-dev/gtk_2_0-2.24/include/gdk-pixbuf-2.0/*
    to win32-dev/gtk_2_0-2.24/include

######
# Build Pidgin
######

- apply the pidgin-win32-fix patch
- make -f Makefile.mingw install
- manually copy dlls to Pidgin folder:
  - from win32-dev folder:
    - libwebkitgtk-1.0-0.dll
    - libjavascriptcoregtk-1.0-0.dll
    - libenchant.dll
  - from mingw32-pthreads-2.8.0-14.37.noarch
    - pthreadGC2.dll
  - from mingw32-libstdc++-4.6.1-3.3.noarch
    - libstdc++-6.dll
  - from mingw32-atk-2.2.0-1.1.noarch
    - libatk-1.0-0.dll
  - from mingw32-libgeoclue-0.12.0-12.45.noarch
    - libgeoclue-0.dll
  - from mingw32-dbus-1-glib-0.92-3.37.noarch
    - libdbus-glib-1-2.dll
  - from mingw32-dbus-1-1.4.0-7.2.noarch
    - libdbus-1-3.dll
  - from mingw32-libgstinterfaces-0.10.32-5.43.noarch
    - libgstapp-0.10-0.dll
    - libgstinterfaces-0.10-0.dll
    - libgstpbutils-0.10-0.dll
    - libgstvideo-0.10-0.dll
  - from mingw32-libgstreamer-0.10.35-1.4.noarch:
    - libgstbase-0.10-0.dll
    - libgstreamer-0.10-0.dll
  - from mingw32-libintl-0.18.1.1-13.22.noarch
    - libintl-8.dll
  - from mingw32-libjpeg-8c-2.38.noarch
    - libjpeg-8.dll
  - from mingw32-libpng-1.5.5-1.3.noarch
    - libpng15-15.dll
  - from mingw32-libsoup-2.36.0-1.5.noarch
    - libsoup-2.4-1.dll
  - from mingw32-libxslt-1.1.26-8.28.noarch
    - libxslt-1.dll
  - from mingw32-libxml2-2.7.8-7.29.noarch
    - libxml2-2.dll
  - from mingw32-libgcc-4.6.1-3.3.noarch
    - libgcc_s_sjlj-1.dll
- "make -f Makefile.mingw installers" should work too

######
# Running Pidgin
######
- download some theme from www.adiumxtras.com, i.e. Modern Bubbling
- extract it to .purple/themes
- move Contents folder to purple/conversation, you will get Info.plist under
  .purple\themes\Modern Bubbling.AdiumMessageStyle\purple\conversation\
  \Contents\Info.plist
- edit Info.plist and remove doctype
- select your theme in preferences

Attachments (7)

pidgin-win32-fix.patch (10.2 KB) - added by tomkiewicz 8 years ago.
Make Pidgin win32 build working again
pidgin-win32-fix-2.patch (6.5 KB) - added by tomkiewicz 8 years ago.
Without Adium themes plugin.
pidgin-20130723.patch (644 bytes) - added by lameventanas 6 years ago.
winpidgin-debug.patch (1.5 KB) - added by tomkiewicz 6 years ago.
log.txt (126.6 KB) - added by lameventanas 6 years ago.
Build log
build-20130804.txt (126.6 KB) - added by lameventanas 6 years ago.
Build log for 34270:3ee9b2690519
install-log.txt (21.3 KB) - added by lameventanas 6 years ago.

Download all attachments as: .zip

Change History (35)

Changed 8 years ago by tomkiewicz

Make Pidgin win32 build working again

comment:1 Changed 8 years ago by tomkiewicz

Of course, this requires some more work. Especially, manual copying of dlls after Pidgin installation is not the best solution ;). But at this stage, it won't block me from fixing #343 ;].

comment:2 Changed 8 years ago by tomkiewicz

  • Description modified (diff)

comment:3 Changed 8 years ago by tomkiewicz

  • Description modified (diff)

comment:4 Changed 8 years ago by QuLogic

  • edit Info.plist and remove doctype

Is this necessary? We can't be asking users to edit this file every time they get a new theme.

Also, you can remove the changes to build the Adium themes plugin. It won't be necessary soon.

comment:5 follow-up: Changed 8 years ago by datallah

I'm actually in the process of working on this.

I'm working on a solution that will automatically figure out and download the dependencies using the script referenced here here.

If everything is set up correctly, you can run something like download-mingw-rpm.py --deps mingw32-gtk2-devel and it'll download gtk2-devel along with all the dependencies. Similarly, you can run download-mingw-rpm.py --deps mingw32-libwebkitgtk-devel.

Setting up the runtime stuff can be accomplished similarly.

Changed 8 years ago by tomkiewicz

Without Adium themes plugin.

comment:6 in reply to: ↑ 5 Changed 8 years ago by ljfisher

Any update on automating getting the windows build dependencies using the download-mingw-rpm script?

comment:7 Changed 7 years ago by tomkiewicz

  • Milestone set to 3.0.0

comment:8 Changed 6 years ago by QuLogic

Ticket #12890 has been marked as a duplicate of this ticket.

comment:9 Changed 6 years ago by QuLogic

Ticket #14547 has been marked as a duplicate of this ticket.

comment:10 Changed 6 years ago by tomkiewicz

3.0.0 works now on win32, but I don't know what to do with these "duplicate" tickets.

comment:11 Changed 6 years ago by lameventanas

I tried to build pidgin 3.0.0 on win32 following the instructions in https://developer.pidgin.im/wiki/BuildingWinPidgin/3.0.0 as closely as possible. I came across so many problems on the way, but at the end could obtain a win32 binary.

But my build doesn't work, when I run pidgin it complains about a missing libgstinterfaces-0.10-0.dll. After copying the dll, I still get this error:

/cygdrive/c/Program Files (x86)/Pidgin$./pidgin
Loaded exchndl.dll
 Setting exchndl.dll LogFile to C:\cygwin\tmp\pidgin.RPT
 Setting exchndl.dll DebugInfoDir to C:\Program Files (x86)\Pidgin\pidgin-3.0.0devel-dbgsym
GTK+ path found: C:\Program Files (x86)\GTK2-Runtime\bin
Setting locale: LANG=en
Looking for Perl... not found.
Looking for MIT Kerberos... not found.
Error loading pidgin.dll.
Error: (126) The specified module could not be found.

This probably means that GTK+ can't be found.

Some developer should really check the instructions in https://developer.pidgin.im/wiki/BuildingWinPidgin/3.0.0, and I mean start from scratch following the instructions there.

comment:12 follow-up: Changed 6 years ago by tomkiewicz

Could you try building an offline installer and using it?

comment:13 in reply to: ↑ 12 Changed 6 years ago by lameventanas

Replying to tomkiewicz:

Could you try building an offline installer and using it?

Yes, I built the offline installer, but I get the same error with it.

Changed 6 years ago by lameventanas

comment:14 Changed 6 years ago by lameventanas

I checked out the code from 2013-07-23, changeset 34265:e6de87604147. It builds out of the box in Linux, but in Windows I had to make some changes. See pidgin-20130723.patch. Even then, the final build can't find GTK, same error as in ticket:14678#comment:11

Changed 6 years ago by tomkiewicz

comment:15 follow-up: Changed 6 years ago by tomkiewicz

Could you try the patch above and provide the console output? It adds some debug messages, that may help debugging it.

Did you tried running it directly from Windows (not via Cygwin)?

comment:16 in reply to: ↑ 15 Changed 6 years ago by lameventanas

Replying to tomkiewicz:

Could you try the patch above and provide the console output? It adds some debug messages, that may help debugging it.

Did you tried running it directly from Windows (not via Cygwin)?

Yes, I get the same result running it directly.

By the way, this is Windows 7 64 bit, but (I think) most libraries and programs are 32 bits.

I applied your patch and added some debug messages of my own:

Before returning from dll_prep() -> wprintf(L" dll_prep: %s\n", path); In WinMain?() before LoadLibraryW(pidgin_dir) -> wprintf(L" pidgin_dir: %s\n", pidgin_dir);

This is the output:

Loaded exchndl.dll
 Setting exchndl.dll LogFile to C:\Users\user\AppData\Local\Temp\pidgin.RPT
 Setting exchndl.dll DebugInfoDir to C:\Program Files (x86)\Pidgin\pidgin-3.0.0d
evel-dbgsym
GTK: dll_prep(C:\Program Files (x86)\Pidgin)
GTK: common_dll_prep(C:\Program Files (x86)\Pidgin\Gtk\bin)
GTK: Checking C:\Program Files (x86)\Pidgin\Gtk\bin
GTK: not found
GTK: searching in PATH [C:\Perl64\site\bin;C:\Perl64\bin;C:\MinGW\bin;C:\mingw2\
bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\
WindowsPowerShell\v1.0\;C:\Windows\System32\Windows System Resource Manager\bin;
C:\Windows\idmu\common;C:\Program Files (x86)\GTK2-Runtime\bin]
GTK: Checking C:\Perl64\site\bin
GTK: not found
GTK: Checking C:\Perl64\bin
GTK: not found
GTK: Checking C:\MinGW\bin
GTK: not found
GTK: Checking C:\mingw2\bin
GTK: not found
GTK: Checking C:\Windows\system32
GTK: not found
GTK: Checking C:\Windows
GTK: not found
GTK: Checking C:\Windows\System32\Wbem
GTK: not found
GTK: Checking C:\Windows\System32\WindowsPowerShell\v1.0\
GTK: not found
GTK: Checking C:\Windows\System32\Windows System Resource Manager\bin
GTK: not found
GTK: Checking C:\Windows\idmu\common
GTK: not found
GTK: Checking C:\Program Files (x86)\GTK2-Runtime\bin
GTK: found
GTK+ path found: C:\Program Files (x86)\GTK2-Runtime\bin
** dll_prep: C:\Program Files (x86)\Pidgin\Gtk\bin
Setting locale: LANG=en
Looking for Perl... not found.
Looking for MIT Kerberos... not found.
** pidgin_dir: C:\Program Files (x86)\Pidgin\pidgin.dll
Error loading pidgin.dll.
Error: (126) The specified module could not be found.

This probably means that GTK+ can't be found.

comment:17 follow-up: Changed 6 years ago by tomkiewicz

What's the contents of "C:\Program Files (x86)\Pidgin\Gtk\bin"? Is there a file called libgtk-win32-2.0-0.dll? Offline installer should extract [1] to "Pidgin\Gtk".

[1] https://dl.dropboxusercontent.com/u/5448886/pidgin-win32/gtk-runtime-2.24.14.0.zip

Last edited 6 years ago by tomkiewicz (previous) (diff)

comment:18 in reply to: ↑ 17 Changed 6 years ago by lameventanas

Replying to tomkiewicz:

What's the contents of "C:\Program Files (x86)\Pidgin\Gtk\bin"? Is there a file called libgtk-win32-2.0-0.dll? Offline installer should extract [1] to "Pidgin\Gtk".

[1] https://dl.dropboxusercontent.com/u/5448886/pidgin-win32/gtk-runtime-2.24.14.0.zip

There is no C:\Program Files (x86)\Pidgin\Gtk, even though I ran the offline installer with the GTK option enabled. The offline installer is 56 Mb.

After I extract your zip file in that path, pidgin runs normally.

So right now the installer is missing libgstinterfaces-0.10-0.dll and the GTK runtime.

comment:19 follow-up: Changed 6 years ago by tomkiewicz

Are there any warnings when building? Please provide the build log for the offline installer.

make -f Makefile.mingw installer_offline &> log

Changed 6 years ago by lameventanas

Build log

comment:20 in reply to: ↑ 19 Changed 6 years ago by lameventanas

Replying to tomkiewicz:

Are there any warnings when building? Please provide the build log for the offline installer.

make -f Makefile.mingw installer_offline &> log

The build log is attached as log.txt. I couldn't identify any suspicious warning.

comment:21 follow-up: Changed 6 years ago by tomkiewicz

Could you check, if the file devel_root/pidgin/win32/nsis/gtk-runtime-2.24.14.0.zip exists in your tree (after building installer) and is 36175801 bytes long?

If not - I've commited some debug prints to generation script.

If yes - could you check my build? https://dl.dropboxusercontent.com/u/5448886/pidgin-debug/pidgin-3.0.0devel-offline.exe

Changed 6 years ago by lameventanas

Build log for 34270:3ee9b2690519

comment:22 in reply to: ↑ 21 Changed 6 years ago by lameventanas

Replying to tomkiewicz:

Could you check, if the file devel_root/pidgin/win32/nsis/gtk-runtime-2.24.14.0.zip exists in your tree (after building installer) and is 36175801 bytes long?

Yes, it exists and the size matches.

If not - I've commited some debug prints to generation script.

Ok, I checked out your latest commit, the output of the build process is in the attached build-20130804.txt.

If yes - could you check my build? https://dl.dropboxusercontent.com/u/5448886/pidgin-debug/pidgin-3.0.0devel-offline.exe

Your build works, GTK is included in that installer.

comment:23 Changed 6 years ago by tomkiewicz

OK, I think I found the root cause.

Did you installed the nsisunz plugin for NSIS?

If no - please install it and try again.

If yes - that means, it's incompatible with NSIS 3.0 (log says, that's your version). Please install NSIS 2.x and try again.

comment:24 Changed 6 years ago by tomkiewicz

Please, give us some feedback, when you try above hints.

Changed 6 years ago by lameventanas

comment:25 Changed 6 years ago by lameventanas

Replying to tomkiewicz:

Please, give us some feedback, when you try above hints.

Before I was using NSIS 3.x, so perhaps nsisunz is not compatible with that version. Now I tried NSIS 2.46. I built a new installer, and it looks like GTK was included but not extracted in the right location.

This time I noticed the installer showing this message: Extract: gtk.zip... (long pause)

And if I go to the temporary directory indicated in the log file, I can find gtk.zip in there (but not extracted, just the zip file). I have no idea where it is extracting it.

See install-log.txt for the full output.

Last edited 6 years ago by lameventanas (previous) (diff)

comment:26 Changed 3 years ago by salinasv

  • Status changed from new to pending

It looks like pidgin 3.0 can be build on windows new. I'm setting it to pending to wait for someone to confirm that they are not able to do so.

comment:27 Changed 3 years ago by trac-robot

  • Status changed from pending to closed

This ticket was closed automatically by the system. It was previously set to a Pending status and hasn't been updated within 14 days.

comment:28 Changed 10 days ago by Robby

  • Milestone 3.0.0 deleted
Note: See TracTickets for help on using tickets.
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!