Opened 9 years ago

Last modified 3 years ago

#12218 new patch

[PATCH] Windows build unix-style

Reported by: pier11 Owned by: datallah
Milestone: Implementation In Progress Component: winpidgin (gtk)
Version: 2.7.1 Keywords: Windows build unix-style
Cc: nosnilmot, tsmithjohnson


Hi Pidgin team,

I'm submitting patch to make Windows build/installation to be in line with traditional Unix-like ones.

I.e. use auto-tools for build and regular File Hierarchy System layout (FHS) - i.e. /bin /lib /share etc.

The patch doesn't interfere with traditional windows build practice, but adds an alternative.

The need in such build method is to use Pidgin in ecosystem of other open source applications (like Evolution, GIMP, Inkscape) in windows software collections/distributions like windows:mingw:win32 project on OBS (openSUSE Build Service) or TakeoffGW. Those systems are closer to "normal" unix systems, utilize common to unix directory layout and ship with auto-tools. I think it'll be beneficial for Cygwin project as well.

Also resulting libraries contain proper headers and pkg-config files, so it simplifies development of Pidgin plugins.

I've created mingw32-pidgin and mingw64-pidgin pilot packages in my home project on OBS and intend to propose them to windows:mingw:win32 (:win64) projects.

Notes on patch:

  1. Since Windows platform needs -no-undefined symbols when creating dlls, it was required to build for example core libs first (like libpurple and libpidgin) and only then build plugins. For this same reason libpurple had emerged (the same as in existing Windows build).
  1. Libtool is specific beast. For lib (dll) to be installed to /bin directory (a normal Windows practice), the lib should not be a -module and have lib prefix. Hence libpidgin.dll (not pidgin.dll). The rest of namings matches to ones in existing Windows build.
  1. I had to install pidgin plugins to purple-2 directory, since the current windows code doesn't make difference between install directories of pidgin and purple plugins. So just to not alter Pidgin code much initially.

Attachments (1)

pidgin-2.7.1-1.src.patch (45.3 KB) - added by pier11 9 years ago.

Download all attachments as: .zip

Change History (8)

Changed 9 years ago by pier11

comment:1 Changed 9 years ago by rekkanoryo

  • Component changed from unclassified to winpidgin (gtk)
  • Owner changed from rekkanoryo to datallah

comment:2 Changed 9 years ago by datallah

This is something I've thought about doing a few times.

The biggest concern I have is that the patch is very intrusive to the current non-Windows build scripts.

The other problem is that it breaks API/ABI.

comment:3 Changed 9 years ago by datallah

  • Cc nosnilmot added

Stu, you're probably the most knowledgeable about the cross-compilation process, so I figured I'd CC you.

comment:4 Changed 9 years ago by rekkanoryo

  • Milestone set to Patches Needing Review

comment:5 Changed 9 years ago by datallah@…

(In 65b100adddf7a54bb3530ad8b7f9b3f79272a10d):
Create a branch for work to be done on making it possible to build the Windows port using autotools.

These changes started off as a patch from "pier11" that I modified.

Refs #12218

comment:6 Changed 8 years ago by rekkanoryo

  • Milestone changed from Patches Needing Review to Implementation In Progress

I'm moving this to the Implementation In Progress milestone so it doesn't clutter up the Patches Needing Review milestone.

comment:7 Changed 3 years ago by Robby

datallah, could you give an update? Will this be revisited for Pidgin 3 or should this ticket be closed?

Last edited 3 years ago by Robby (previous) (diff)
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!