pidgin/pidgin

Merged pidgin/main into default

2017-11-22, Arkadiy Illarionov
4544d21ccd18
Merged pidgin/main into default
--- a/finch/finch.pc.in Fri Nov 17 14:23:40 2017 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-datarootdir=@datarootdir@
-datadir=@datadir@
-sysconfdir=@sysconfdir@
-
-Name: Finch
-Description: Finch is an instant messenger application that uses libpurple for protocol support and ncurses (libgnt) for the UI.
-Version: @VERSION@
-Requires: gnt purple-3
-Cflags: -I${includedir}/finch
-Libs: -L${libdir} -lfinch
--- a/finch/libgnt/autogen.sh Fri Nov 17 14:23:40 2017 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-#!/bin/sh
-
-(libtoolize --version) < /dev/null > /dev/null 2>&1 || {
- echo;
- echo "You must have libtool installed to compile LibGNT";
- echo;
- exit;
-}
-
-(automake --version) < /dev/null > /dev/null 2>&1 || {
- echo;
- echo "You must have automake installed to compile LibGNT";
- echo;
- exit;
-}
-
-(autoconf --version) < /dev/null > /dev/null 2>&1 || {
- echo;
- echo "You must have autoconf installed to compile LibGNT";
- echo;
- exit;
-}
-
-echo "Generating configuration files for LibGNT, please wait...."
-echo;
-
-echo "Running libtoolize, please ignore non-fatal messages...."
-echo n | libtoolize --copy --force || exit;
-
-# Add other directories to this list if people continue to experience
-# brokennesses ... Obviously the real answer is for them to fix it
-# themselves, but for Luke's sake we have this.
-for dir in "/usr/local/share/aclocal" \
- "/opt/gnome-1.4/share/aclocal"
-do
- if test -d $dir ; then
- ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I $dir"
- fi
-done
-
-libtoolize -c -f --automake
-aclocal $ACLOCAL_FLAGS || exit;
-autoheader || exit;
-automake --add-missing --copy;
-autoconf || exit;
-automake || exit;
-./configure $@
-
--- a/finch/libgnt/configure.ac Fri Nov 17 14:23:40 2017 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,297 +0,0 @@
-dnl Process this file with autoconf to produce a configure script.
-AC_PREREQ([2.50])
-
-# UPDATING VERSION NUMBERS FOR RELEASES
-#
-# gnt_micro_version += 1
-#
-# If any functions have been added to libgnt:
-# gnt_micro_version = 0
-# gnt_minor_version += 1
-# gnt_lt_current += 1
-#
-# If backwards compatibility has been broken in libgnt:
-# gnt_micro_version = 0
-# gnt_minor_version = 0
-# gnt_major_version += 1;
-# gnt_lt_current += 1
-#
-# gnt_version_suffix should be similar to one of the following:
-# For beta releases: [beta2]
-# For code under development: [devel]
-# For production releases: []
-#
-# Make sure to update ../../configure.ac with libgnt version changes.
-#
-
-m4_define([gnt_lt_current], [8])
-m4_define([gnt_major_version], [2])
-m4_define([gnt_minor_version], [8])
-m4_define([gnt_micro_version], [0])
-m4_define([gnt_version_suffix], [devel])
-m4_define([gnt_version],
- [gnt_major_version.gnt_minor_version.gnt_micro_version])
-m4_define([gnt_display_version], gnt_version[]m4_ifdef([gnt_version_suffix],[gnt_version_suffix]))
-
-AC_INIT([libgnt], [gnt_display_version], [devel@pidgin.im])
-AC_CANONICAL_SYSTEM
-AM_CONFIG_HEADER(config.h)
-AC_CONFIG_AUX_DIR([.])
-AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
-
-GNT_MAJOR_VERSION=gnt_major_version
-GNT_MINOR_VERSION=gnt_minor_version
-GNT_MICRO_VERSION=gnt_micro_version
-GNT_VERSION=gnt_display_version
-AC_SUBST(GNT_MAJOR_VERSION)
-AC_SUBST(GNT_MINOR_VERSION)
-AC_SUBST(GNT_MICRO_VERSION)
-AC_SUBST(GNT_VERSION)
-
-GNT_LT_VERSION_INFO="gnt_lt_current:gnt_micro_version:gnt_minor_version"
-AC_SUBST(GNT_LT_VERSION_INFO)
-
-AC_PATH_PROG(sedpath, sed)
-
-dnl Storing configure arguments
-AC_DEFINE_UNQUOTED(CONFIG_ARGS, "$ac_configure_args", [configure arguments])
-
-dnl Checks for programs.
-AC_PROG_CC
-AC_DISABLE_STATIC
-AM_PROG_LIBTOOL
-LIBTOOL="$LIBTOOL --silent"
-AC_PROG_INSTALL
-
-dnl we don't use autobreak on cygwin!!
-dnl AC_CYGWIN
-
-dnl Checks for header files.
-AC_HEADER_SYS_WAIT
-AC_CHECK_HEADERS(unistd.h)
-
-dnl Checks for typedefs, structures, and compiler characteristics.
-
-AC_C_BIGENDIAN
-
-dnl Checks for library functions.
-AC_CHECK_FUNCS(strdup)
-
-dnl to prevent the g_stat()/g_unlink() crash,
-dnl (09:50:07) Robot101: LSchiere2: it's easy. +LC_SYS_LARGEFILE somewhere in configure.ac
-AC_SYS_LARGEFILE
-
-if test "x$enable_debug" = "xyes" ; then
- AC_DEFINE(DEBUG, 1, [Define if debugging is enabled.])
-fi
-
-if test "x$enable_deprecated" = "xno"; then
- DEBUG_CFLAGS="$DEBUG_CFLAGS -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED"
-fi
-
-if test "x$GCC" = "xyes"; then
- dnl We enable -Wall later.
- dnl If it's set after the warning CFLAGS in the compiler invocation, it counteracts the -Wno... flags.
- dnl This leads to warnings we don't want.
- CFLAGS=`echo $CFLAGS |$sedpath 's/-Wall//'`
-
- dnl ENABLE WARNINGS SUPPORTED BY THE VERSION OF GCC IN USE
- dnl
- dnl Future Possibilities
- dnl
- dnl Consider adding -Wbad-function-cast.
- dnl This leads to spurious warnings using GPOINTER_TO_INT(), et al. directly on a function call.
- dnl We'd need an intermediate variable.
- dnl
- dnl Consider adding -Wfloat-equal.
- dnl This leads to warnings with Perl.
- dnl Perhaps we could write ugly configure magic and pass -Wno-float-equal down to that subdirectory.
- dnl On the other hand, it's probably actually broken, so maybe the Perl folks should fix that?
- dnl
- dnl Consider removing -Wno-sign-compare (from the -Wextra set) and fixing all those cases.
- dnl This is likely non-trivial.
- dnl
- for newflag in \
- "-Waggregate-return" \
- "-Wcast-align" \
- "-Wdeclaration-after-statement" \
- "-Werror-implicit-function-declaration" \
- "-Wextra -Wno-sign-compare -Wno-unused-parameter" \
- "-Winit-self" \
- "-Wmissing-declarations" \
- "-Wmissing-prototypes" \
- "-Wnested-externs" \
- "-Wpointer-arith" \
- "-Wundef" \
- ; do
- orig_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $newflag"
- AC_MSG_CHECKING(for $newflag option to gcc)
- AC_TRY_COMPILE([], [
- int main() {return 0;}
- ], [
- AC_MSG_RESULT(yes)
- CFLAGS="$orig_CFLAGS"
- DEBUG_CFLAGS="$DEBUG_CFLAGS $newflag"
- ], [
- AC_MSG_RESULT(no)
- CFLAGS="$orig_CFLAGS"
- ])
- done
-
- if test "x$enable_fortify" = "xyes"; then
- AC_MSG_CHECKING(for FORTIFY_SOURCE support)
- AC_TRY_COMPILE([#include <features.h>], [
- int main() {
- #if !(__GNUC_PREREQ (4, 1) \
- || (defined __GNUC_RH_RELEASE__ && __GNUC_PREREQ (4, 0)) \
- || (defined __GNUC_RH_RELEASE__ && __GNUC_PREREQ (3, 4) \
- && __GNUC_MINOR__ == 4 \
- && (__GNUC_PATCHLEVEL__ > 2 \
- || (__GNUC_PATCHLEVEL__ == 2 && __GNUC_RH_RELEASE__ >= 8))))
- #error No FORTIFY_SOURCE support
- #endif
- return 0;
- }
- ], [
- AC_MSG_RESULT(yes)
- DEBUG_CFLAGS="$DEBUG_CFLAGS -D_FORTIFY_SOURCE=2"
- ], [
- AC_MSG_RESULT(no)
- ])
- fi
-
- DEBUG_CFLAGS="-Wall $DEBUG_CFLAGS"
- CFLAGS="-g $CFLAGS"
-fi
-AC_SUBST(CFLAGS)
-
-PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.0.0 gobject-2.0 gmodule-2.0],,
- [
- AC_MSG_ERROR([
-*** GLib 2.0 is required to build LibGNT; please make sure you have the GLib
-*** development headers installed. The latest version of GLib is
-*** always available at http://www.gtk.org/.])
- ])
-AC_SUBST(GLIB_CFLAGS)
-AC_SUBST(GLIB_LIBS)
-
-
-AC_MSG_CHECKING(for me pot o' gold)
-AC_MSG_RESULT(no)
-AC_CHECK_HEADERS(sys/wait.h)
-#AC_CHECK_FUNC(wcwidth, [AC_DEFINE([HAVE_WCWIDTH], [1], [Define to 1 if you have wcwidth function.])])
-#AC_VAR_TIMEZONE_EXTERNALS
-
-GNT_CFLAGS=
-GNT_LIBS=
-AC_ARG_WITH(ncurses-headers, [AC_HELP_STRING([--with-ncurses-headers=DIR],
- [compile finch against the ncurses includes in DIR])],
- [ac_ncurses_includes="$withval"], [ac_ncurses_includes=""])
-AC_CHECK_LIB(ncursesw, initscr, [GNT_LIBS="-lncursesw"], [enable_gnt=no])
-AC_CHECK_LIB(panelw, update_panels, [GNT_LIBS="$GNT_LIBS -lpanelw"], [enable_gnt=no])
-
-# If ncursesw is not found, look for plain old ncurses
-if test "x$enable_gnt" = "xno"; then
- AC_CHECK_LIB(ncurses, initscr, [[GNT_LIBS="-lncurses"] [enable_gnt=yes]], [enable_gnt=no])
- AC_CHECK_LIB(panel, update_panels, [[GNT_LIBS="$GNT_LIBS -lpanel"] [enable_gnt=yes]], [enable_gnt=no])
- AC_DEFINE(NO_WIDECHAR, [1], [Define to 1 if you do not have ncursesw.])
-else
- dnl # Some distros put the headers in ncursesw/, some don't
- found_ncurses_h=no
- for location in $ac_ncurses_includes /usr/include/ncursesw /usr/include
- do
- f="$location/ncurses.h"
- orig_CFLAGS="$CFLAGS"
- orig_CPPFLAGS="$CPPFLAGS"
- CFLAGS="$CFLAGS -I$location"
- CPPFLAGS="$CPPFLAGS -I$location"
- AC_CHECK_HEADER($f,[
- AC_MSG_CHECKING([if $f supports wide characters])
- AC_TRY_COMPILE([
- #define _XOPEN_SOURCE_EXTENDED
- #include <$f>
- ], [
- #ifndef get_wch
- # error get_wch not found!
- #endif
- ], [
- dir=$location
- if test x"$dir" != x"." ; then
- GNT_CFLAGS="-I$dir/"
- else
- GNT_CFLAGS=""
- fi
-
- found_ncurses_h=yes
- CFLAGS="$orig_CFLAGS"
- CPPFLAGS="$orig_CPPFLAGS"
- AC_MSG_RESULT([yes])
- break
- ], [
- CFLAGS="$orig_CFLAGS"
- CPPFLAGS="$orig_CPPFLAGS"
- AC_MSG_RESULT([no])
- ])
- ])
- done
- if test x"$found_ncurses_h" != "xyes"; then
- enable_gnt="no"
- fi
-fi
-AC_SUBST(GNT_CFLAGS)
-AC_SUBST(GNT_LIBS)
-
-if test "x$enable_gnt" = "xno"; then
- AC_MSG_ERROR([
-*** You need ncursesw or ncurses and its header files.])
-fi
-
-dnl Check for Python headers (currently useful only for libgnt)
-dnl (Thanks to XChat)
-AC_PATH_PROG(pythonpath, python)
-if test "_$pythonpath" != _ ; then
- AC_MSG_CHECKING(for Python compile flags)
- PY_PREFIX=`$pythonpath -c 'import sys ; print sys.prefix'`
- PY_EXEC_PREFIX=`$pythonpath -c 'import sys ; print sys.exec_prefix'`
- changequote(<<, >>)dnl
- PY_VERSION=`$pythonpath -c 'import sys ; print sys.version[0:3]'`
- PY_MAJOR=`$pythonpath -c 'import sys ; print sys.version[0:2]'`
- changequote([, ])dnl
- if test -f $PY_PREFIX/include/python$PY_VERSION/Python.h -a "$PY_MAJOR" = "2."; then
- AC_CHECK_LIB(pthread, pthread_create, )
- AC_CHECK_LIB(util, openpty, )
- AC_CHECK_LIB(db, dbopen, )
- PY_LIBS="-lpython$PY_VERSION -L$PY_EXEC_PREFIX/lib/python$PY_VERSION/config"
- PY_CFLAGS="-I$PY_PREFIX/include/python$PY_VERSION"
- AC_DEFINE(USE_PYTHON, [1], [Define if python headers are available.])
- AC_MSG_RESULT(ok)
- else
- AC_MSG_RESULT([Can't find Python.h])
- PY_LIBS=""
- PY_CFLAGS=""
- fi
-fi
-AC_SUBST(PY_CFLAGS)
-AC_SUBST(PY_LIBS)
-
-dnl Check for libxml
-have_libxml=yes
-PKG_CHECK_MODULES(LIBXML, [libxml-2.0], , [
- AC_MSG_RESULT(no)
- have_libxml=no
- ])
-AC_SUBST(LIBXML_CFLAGS)
-AC_SUBST(LIBXML_LIBS)
-
-if test "x$have_libxml" = "xno"; then
- AC_DEFINE(NO_LIBXML, 1, [Do not have libxml2.])
-fi
-
-AM_CONDITIONAL(PURPLE_AVAILABLE, false)
-
-AC_OUTPUT([Makefile
- gnt.pc
- wms/Makefile
- ])
-
--- a/finch/libgnt/gnt.pc.in Fri Nov 17 14:23:40 2017 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-datarootdir=@datarootdir@
-datadir=@datadir@
-sysconfdir=@sysconfdir@
-
-Name: LibGNT
-Description: Glib Ncurses Toolkit is a collection of curses-widgets.
-Version: @VERSION@
-Requires: glib-2.0
-Cflags: -I${includedir}/gnt
-Libs: -L${libdir} -lgnt
--- a/finch/libgnt/meson.build Fri Nov 17 14:23:40 2017 +0300
+++ b/finch/libgnt/meson.build Wed Nov 22 14:33:46 2017 +0300
@@ -76,11 +76,14 @@
link_with : libgnt,
dependencies : [ncurses, glib])
-configure_file(input : 'gnt.pc.in',
- output : 'gnt.pc',
- configuration : pkg_conf,
- install : true,
- install_dir : get_option('libdir') + '/pkgconfig')
+pkgconfig.generate(
+ name : 'LibGNT',
+ description : 'Glib Ncurses Toolkit is a collection of curses-widgets.',
+ version : purple_display_version,
+ filebase : 'gnt',
+ subdirs : 'gnt',
+ libraries : [libgnt],
+ requires : ['glib-2.0'])
if enable_introspection
libgnt_gir = gnome.generate_gir(libgnt,
@@ -94,5 +97,6 @@
endif
subdir('wms')
+subdir('test')
endif # enable_consoleui
--- a/finch/libgnt/test/Makefile Fri Nov 17 14:23:40 2017 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-CC=gcc
-CFLAGS=`pkg-config --cflags gobject-2.0 gmodule-2.0` -g -I../ -DSTANDALONE -I/usr/include/ncursesw/
-LDFLAGS=`pkg-config --libs gobject-2.0 gmodule-2.0 gnt` -pg
-
-EXAMPLES=combo focus tv multiwin keys menu parse
-
-all:
- make examples
-
-clean:
- rm -f $(EXAMPLES) *.so wm
-
-WM: wm
- for i in $(EXAMPLES); do gcc -shared $(CFLAGS) -USTANDALONE $(LDFLAGS) $${i}.c -o $${i}.so ; done
-
-examples: $(EXAMPLES)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/finch/libgnt/test/meson.build Wed Nov 22 14:33:46 2017 +0300
@@ -0,0 +1,13 @@
+foreach prog : ['combo', 'focus', 'tv', 'multiwin', 'keys', 'menu', 'parse']
+ executable(prog,
+ prog + '.c',
+ c_args : '-DSTANDALONE',
+ dependencies : [libgnt_dep, gobject, gmodule],
+ build_by_default : false)
+endforeach
+
+shared_library('wm',
+ 'wm.c',
+ name_prefix : '',
+ dependencies : [libgnt_dep, gobject, gmodule],
+ build_by_default : false)
--- a/finch/meson.build Fri Nov 17 14:23:40 2017 +0300
+++ b/finch/meson.build Wed Nov 22 14:33:46 2017 +0300
@@ -91,11 +91,14 @@
dependencies : [libpurple_dep, libgnt_dep, libfinch_dep],
install : true)
- configure_file(input : 'finch.pc.in',
- output : 'finch.pc',
- configuration : pkg_conf,
- install : true,
- install_dir : get_option('libdir') + '/pkgconfig')
+ pkgconfig.generate(
+ name : 'Finch',
+ description : 'Finch is an instant messenger application that uses libpurple for protocol support and ncurses (libgnt) for the UI.',
+ version : purple_display_version,
+ filebase : 'finch',
+ subdirs : 'finch',
+ libraries : [libfinch],
+ requires : ['gnt', 'purple-3'])
if enable_introspection
introspection_sources = libfinch_headers
--- a/libpurple/data/purple-3-uninstalled.pc.in Fri Nov 17 14:23:40 2017 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-datarootdir=@datarootdir@
-datadir=@datadir@
-sysconfdir=@sysconfdir@
-
-abs_srcdir=@abs_srcdir@
-abs_builddir=@abs_builddir@
-
-abs_top_srcdir=@abs_top_srcdir@
-abs_top_builddir=@abs_top_builddir@
-
-plugindir=${libdir}/purple-@PURPLE_MAJOR_VERSION@
-
-Name: libpurple
-Description: libpurple is a GLib-based instant messenger library.
-Version: @VERSION@
-Requires: glib-2.0
-Cflags: -I${abs_top_srcdir} -I${abs_top_builddir}
-Libs: ${abs_top_builddir}/libpurple/libpurple.la
--- a/libpurple/data/purple-3.pc.in Fri Nov 17 14:23:40 2017 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@/libpurple
-datarootdir=@datarootdir@
-datadir=@datadir@
-sysconfdir=@sysconfdir@
-
-plugindir=${libdir}/purple-@PURPLE_MAJOR_VERSION@
-
-Name: libpurple
-Description: libpurple is a GLib-based instant messenger library.
-Version: @VERSION@
-Requires: glib-2.0@GPLUGIN_REQ@
-Cflags: -I${includedir}
-Libs: -L${libdir} -lpurple
--- a/libpurple/meson.build Fri Nov 17 14:23:40 2017 +0300
+++ b/libpurple/meson.build Wed Nov 22 14:33:46 2017 +0300
@@ -418,11 +418,15 @@
install_headers(purple_mediaheaders,
subdir : 'libpurple/media')
-configure_file(input : 'data/purple-3.pc.in',
- output : 'purple-3.pc',
- configuration : pkg_conf,
- install : true,
- install_dir : get_option('libdir') + '/pkgconfig')
+pkgconfig.generate(
+ name : 'libpurple',
+ description : 'libpurple is a GLib-based instant messenger library.',
+ version : purple_display_version,
+ filebase : 'purple-3',
+ subdirs : 'libpurple',
+ libraries : [libpurple],
+ requires : ['glib-2.0'] + GPLUGIN_REQ,
+ variables : ['plugindir=${libdir}/purple-@0@'.format(purple_major_version)])
if INSTALL_I18N
DESKTOP_FILE = 'purple-url-handler.desktop'
--- a/libpurple/tag.sh Fri Nov 17 14:23:40 2017 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-#!/bin/bash
-# Script to silence win32 and perl build by displaying a neat one-line notice
-# instead of full command contents when executing compilers.
-#
-# Written by Tomek Wasilczyk <tomkiewicz@cpw.pidgin.im>, licensed under GNU GPL
-
-tag=$1
-found=0
-object=""
-file_1=""
-file_2=""
-is_final=0
-for arg in "$@"
-do
- if [ "$found" == 1 ]; then
- object="$arg"
- break
- fi
- if [ "$arg" == "-o" ]; then
- found=1
- fi
- if [ "$tag" == "auto" ] && [ "$arg" == "-shared" ]; then
- tag="CCLD"
- fi
- ext_1=${arg#${arg%??}}
- if [ "${ext_1}" == ".c" ]; then
- file_1="$arg"
- fi
- ext_2=${arg#${arg%???}}
- if [ "${ext_2}" == ".xs" ]; then
- file_2="$arg"
- fi
- ext_3=${arg#${arg%????}}
- if [ "${ext_3}" == ".3pm" ]; then
- file_2="$arg"
- fi
-done
-
-if [ "$tag" == "auto" ]; then
- tag="CC"
-fi
-
-if [ "$object" == "" ] && [ "${file_1}" != "" ]; then
- object="${file_1}"
-fi
-if [ "$object" == "" ] && [ "${file_2}" != "" ]; then
- object="${file_2}"
-fi
-
-shift 1
-if [ "$object" == "" ]; then
- echo "$@" >&2
-else
- echo -e " $tag\t$object" >&2
-fi
-"$@"
--- a/libpurple/win32/global.mak Fri Nov 17 14:23:40 2017 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,154 +0,0 @@
-#
-# global.mak
-#
-# This file should be included by all Makefile.mingw files for project
-# wide definitions (after correctly defining PIDGIN_TREE_TOP).
-#
-
-#include optional $(PIDGIN_TREE_TOP)/local.mak to allow overriding of any definitions
--include $(PIDGIN_TREE_TOP)/local.mak
-
-# TODO: we should do parsing like for PURPLE_VERSION, if we won't drop
-# Makefile.mingw files before 3.0.0 release
-PURPLE_MAJOR_VERSION := 3
-PURPLE_MINOR_VERSION := 0
-PURPLE_MICRO_VERSION := 0
-PURPLE_API_VERSION := 20
-
-# Locations of our various dependencies
-WIN32_DEV_TOP ?= $(PIDGIN_TREE_TOP)/../win32-dev
-ENCHANT_TOP ?= $(WIN32_DEV_TOP)/enchant-1.6
-GNUTLS_TOP ?= $(WIN32_DEV_TOP)/gnutls-3.1
-GTK_TOP ?= $(WIN32_DEV_TOP)/gtk2-2.24
-GTK_BIN ?= $(GTK_TOP)/bin
-JSON_GLIB_TOP ?= $(WIN32_DEV_TOP)/json-glib-0.14
-LIBXML2_TOP ?= $(WIN32_DEV_TOP)/libxml2-2.9.2_daa1
-MEANWHILE_TOP ?= $(WIN32_DEV_TOP)/meanwhile-1.0.2_daa3
-NSS_TOP ?= $(WIN32_DEV_TOP)/nss-3.24-nspr-4.12
-SILC_TOOLKIT ?= $(WIN32_DEV_TOP)/silc-toolkit-1.1.12
-GSTREAMER_TOP ?= $(WIN32_DEV_TOP)/gstreamer-0.10.13
-GCC_SSP_TOP ?= $(shell dirname $(shell which $(CC)))
-CYRUS_SASL_TOP ?= $(WIN32_DEV_TOP)/cyrus-sasl-2.1
-WEBKITGTK_TOP ?= $(WIN32_DEV_TOP)/libwebkitgtk-1.10
-LIBSOUP_TOP ?= $(WIN32_DEV_TOP)/libsoup-2.42
-GETTEXT_TOP ?= $(WIN32_DEV_TOP)/gettext-0.18
-INTLTOOL_TOP ?= $(WIN32_DEV_TOP)/intltool-0.50
-LIBGADU_TOP ?= $(WIN32_DEV_TOP)/libgadu-1.12
-
-# Where we installing this stuff to?
-PIDGIN_INSTALL_DIR := $(PIDGIN_TREE_TOP)/win32-install-dir
-PURPLE_INSTALL_DIR := $(PIDGIN_TREE_TOP)/win32-install-dir
-PIDGIN_INSTALL_PLUGINS_DIR := $(PIDGIN_INSTALL_DIR)/plugins
-PURPLE_INSTALL_PLUGINS_DIR := $(PURPLE_INSTALL_DIR)/plugins
-PURPLE_INSTALL_PO_DIR := $(PURPLE_INSTALL_DIR)/locale
-
-# Important (enough) locations in our source code
-PURPLE_TOP := $(PIDGIN_TREE_TOP)/libpurple
-PURPLE_PLUGINS_TOP := $(PURPLE_TOP)/plugins
-PIDGIN_TOP := $(PIDGIN_TREE_TOP)/pidgin
-PIDGIN_PIXMAPS_TOP := $(PIDGIN_TOP)/pixmaps
-PIDGIN_PLUGINS_TOP := $(PIDGIN_TOP)/plugins
-PURPLE_PO_TOP := $(PIDGIN_TREE_TOP)/po
-PURPLE_PROTOS_TOP := $(PURPLE_TOP)/protocols
-
-# Locations of important (in-tree) build targets
-PIDGIN_CONFIG_H := $(PIDGIN_TREE_TOP)/config.h
-PURPLE_CONFIG_H := $(PIDGIN_TREE_TOP)/config.h
-PIDGIN_REVISION_H := $(PIDGIN_TREE_TOP)/package_revision.h
-PIDGIN_REVISION_RAW_TXT := $(PIDGIN_TREE_TOP)/package_revision_raw.txt
-PURPLE_PURPLE_H := $(PURPLE_TOP)/purple.h
-PURPLE_VERSION_H := $(PURPLE_TOP)/version.h
-PURPLE_DLL := $(PURPLE_TOP)/libpurple.dll
-PIDGIN_DLL := $(PIDGIN_TOP)/pidgin.dll
-PIDGIN_EXE := $(PIDGIN_TOP)/pidgin.exe
-PIDGIN_PORTABLE_EXE := $(PIDGIN_TOP)/pidgin-portable.exe
-
-GCCWARNINGS ?= -Waggregate-return -Wcast-align -Wdeclaration-after-statement -Werror-implicit-function-declaration -Wextra -Wno-sign-compare -Wno-unused-parameter -Winit-self -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wundef
-
-CC_HARDENING_OPTIONS ?= -Wstack-protector -fwrapv -fno-strict-overflow -Wno-missing-field-initializers -Wformat-security -fstack-protector-all --param ssp-buffer-size=1
-LD_HARDENING_OPTIONS ?= -Wl,--dynamicbase -Wl,--nxcompat
-
-TAG := @$(PURPLE_TOP)/tag.sh
-
-# parse the version number from the configure.ac file if it is newer
-#m4_define([purple_major_version], [2])
-#m4_define([purple_minor_version], [0])
-#m4_define([purple_micro_version], [0])
-#m4_define([purple_version_suffix], [devel])
-PIDGIN_VERSION := $(shell \
- if [ ! $(PIDGIN_TREE_TOP)/VERSION -nt $(PIDGIN_TREE_TOP)/configure.ac ]; then \
- awk 'BEGIN {FS="[\\(\\)\\[\\]]"} /^m4_define..purple_(major|minor)_version/ {printf("%s.",$$5);} /^m4_define..purple_micro_version/ {printf("%s",$$5);} /^m4_define..purple_version_suffix/ {printf("%s",$$5); exit}' \
- $(PIDGIN_TREE_TOP)/configure.ac > $(PIDGIN_TREE_TOP)/VERSION; \
- fi; \
- cat $(PIDGIN_TREE_TOP)/VERSION \
-)
-PURPLE_VERSION := $(PIDGIN_VERSION)
-ifdef EXTRAVERSION
-DISPLAY_VERSION := $(PIDGIN_VERSION)-$(EXTRAVERSION)
-else
-DISPLAY_VERSION := $(PIDGIN_VERSION)
-endif
-
-CYRUS_SASL ?= 1
-
-ifeq ($(CYRUS_SASL), 1)
-DEFINES += -DHAVE_CYRUS_SASL
-endif
-
-DEFINES += -DHAVE_CONFIG_H -DWIN32_LEAN_AND_MEAN -DWINVER=0x0501 -D_WIN32_WINNT=0x501
-
-CFLAGS += -O2 -Wall $(GCCWARNINGS) $(CC_HARDENING_OPTIONS) -pipe -mms-bitfields -g
-
-# If not specified, dlls are built with the default base address of 0x10000000.
-# When loaded into a process address space a dll will be rebased if its base
-# address colides with the base address of an existing dll. To avoid rebasing
-# we do the following. Rebasing can slow down the load time of dlls and it
-# also renders debug info useless.
-DLL_LD_FLAGS += -Wl,--enable-auto-image-base -Wl,--enable-auto-import $(LD_HARDENING_OPTIONS) -lssp
-
-# Build programs
-ifeq "$(origin CC)" "default"
- CC := gcc.exe
-endif
-# comment out the next line to make output more verbose
-CC := $(TAG) "auto" $(CC)
-
-GMSGFMT ?= $(GETTEXT_TOP)/bin/msgfmt
-MAKENSIS ?= makensis.exe
-PERL ?= perl
-WINDRES ?= windres
-STRIP ?= strip
-INTLTOOL_MERGE ?= $(INTLTOOL_TOP)/bin/intltool-merge
-MONO_SIGNCODE ?= signcode
-GPG_SIGN ?= gpg
-GLIB_GENMARSHAL ?= $(GTK_BIN)/glib-genmarshal
-GLIB_MKENUMS ?= $(GTK_BIN)/glib-mkenums
-
-PIDGIN_COMMON_RULES := $(PURPLE_TOP)/win32/rules.mak
-PIDGIN_COMMON_TARGETS := $(PURPLE_TOP)/win32/targets.mak
-MINGW_MAKEFILE := Makefile.mingw
-MAKE_at := @
-
-USE_VV ?= 1
-
-ifeq "$(USE_VV)" "1"
-VV_LIBS := \
- -lgstreamer-0.10 \
- -lgstvideo-0.10 \
- -lgstinterfaces-0.10 \
- -lfarstream-0.1
-VV_INCLUDE_PATHS := \
- -I$(GSTREAMER_TOP)/include/gstreamer-0.10 \
- -I$(GSTREAMER_TOP)/include/farstream-0.1 \
- -I$(LIBXML2_TOP)/include/libxml2
-VV_LIB_PATHS := \
- -L$(GSTREAMER_TOP)/lib
-DEFINES += -DUSE_GSTREAMER -DUSE_VV
-else
-VV_LIBS :=
-VV_INCLUDE_PATHS :=
-VV_LIB_PATHS :=
-endif
-
-INSTALL_PIXMAPS ?= 1
-INSTALL_SSL_CERTIFICATES ?= 1
--- a/libpurple/win32/rules.mak Fri Nov 17 14:23:40 2017 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-# Rules on how to make object files from various sources
-
-%.o: %.c
- $(CC) $(CFLAGS) $(DEFINES) $(INCLUDE_PATHS) -o $@ -c $<
-
-%.o: %.rc
- @echo -e " GEN\t$@"
- @$(WINDRES) -I$(PURPLE_TOP) -i $< -o $@
-
-%.desktop: %.desktop.in $(wildcard $(PIDGIN_TREE_TOP)/po/*.po)
- LC_ALL=C $(PERL) $(INTLTOOL_MERGE) -d -u -c $(PIDGIN_TREE_TOP)/po/.intltool-merge-cache $(PIDGIN_TREE_TOP)/po $< $@
-
-%.html.h: %.html
- @echo -e " GEN\t$@"
- @echo "static const char $*_html[] = {" > $@
- @sed -e 's/^[ ]\+//g' -e 's/[ ]\+/ /g' $< | xxd -i | sed -e 's/\(0x[0-9a-f][0-9a-f]\)$$/\1, 0x00/' >> $@
- @echo "};" >> $@
--- a/libpurple/win32/targets.mak Fri Nov 17 14:23:40 2017 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-#
-# targets.mak
-#
-# This file should be included at the end of all Makefile.mingw
-# files for better handling of cross directory dependencies
-#
-
-$(PIDGIN_CONFIG_H): $(PIDGIN_CONFIG_H).mingw $(PIDGIN_TREE_TOP)/configure.ac
- @echo -e " GEN\t$@"
- @sed -e 's/@VERSION@/$(PIDGIN_VERSION)/; s/@DISPLAY_VERSION@/$(DISPLAY_VERSION)/' $@.mingw > $@
-
-$(PURPLE_PURPLE_H): $(PURPLE_PURPLE_H).in
- @echo -e " GEN\t$@"
- @sed -e 's/@PLUGINS_DEFINE@/#define PURPLE_PLUGINS 1/' $@.in > $@
-
-$(PURPLE_VERSION_H): $(PURPLE_VERSION_H).in $(PIDGIN_TREE_TOP)/configure.ac
- @echo -e " GEN\t$@"
- @awk 'BEGIN {FS="[\\(\\)\\[\\]]"} \
- /^m4_define..purple_major_version/ {system("sed -e s/@PURPLE_MAJOR_VERSION@/"$$5"/ $@.in > $@");} \
- /^m4_define..purple_minor_version/ {system("sed -e s/@PURPLE_MINOR_VERSION@/"$$5"/ $@ > $@.tmp && mv $@.tmp $@");} \
- /^m4_define..purple_micro_version/ {system("sed -e s/@PURPLE_MICRO_VERSION@/"$$5"/ $@ > $@.tmp && mv $@.tmp $@"); exit}' $(PIDGIN_TREE_TOP)/configure.ac
-
-$(PIDGIN_REVISION_RAW_TXT):
- @echo -e " GEN\t$@"
- @(hg --cwd $(PIDGIN_TREE_TOP) log -r . -T '{node}') 2>/dev/null >$@ \
- || rm -f $@
-
-$(PIDGIN_REVISION_H): $(PIDGIN_REVISION_RAW_TXT)
- @echo -e " GEN\t$@"
- @if [ -f $< ]; then \
- sed 's/^\(.\{1,\}\)$$/#define REVISION "\1"/' $< > $@; \
- fi
- @[ -f $@ ] || echo "#define REVISION \"unknown\"" > $@
-
-$(PURPLE_DLL) $(PURPLE_DLL).a: $(PURPLE_VERSION_H)
- $(MAKE) -C $(PURPLE_TOP) -f $(MINGW_MAKEFILE) libpurple.dll
-
-$(PIDGIN_DLL) $(PIDGIN_DLL).a:
- $(MAKE_at) $(MAKE) -C $(PIDGIN_TOP) -f $(MINGW_MAKEFILE) pidgin.dll
-
-$(PIDGIN_EXE):
- $(MAKE) -C $(PIDGIN_TOP) -f $(MINGW_MAKEFILE) pidgin.exe
-
-# Installation Directories
-$(PIDGIN_INSTALL_DIR):
- mkdir -p $(PIDGIN_INSTALL_DIR)
-
-$(PIDGIN_INSTALL_PLUGINS_DIR):
- mkdir -p $(PIDGIN_INSTALL_PLUGINS_DIR)
-
-$(PURPLE_INSTALL_PO_DIR):
- mkdir -p $(PURPLE_INSTALL_PO_DIR)
-
-#$(PURPLE_INSTALL_PLUGINS_DIR):
-# mkdir -p $(PURPLE_INSTALL_PLUGINS_DIR)
--- a/meson.build Fri Nov 17 14:23:40 2017 +0300
+++ b/meson.build Wed Nov 22 14:33:46 2017 +0300
@@ -70,7 +70,6 @@
add_project_arguments('-DHAVE_CONFIG_H=1', language : 'c')
conf = configuration_data()
man_conf = configuration_data()
-pkg_conf = configuration_data()
version_conf = configuration_data()
conf.set_quoted('PACKAGE', meson.project_name())
@@ -107,17 +106,8 @@
man_conf.set('VERSION', purple_display_version)
man_conf.set('prefix', get_option('prefix'))
-# This is used for pkg-config files. This probably can be removed and the
-# builtin generator used instead once we drop the Autotools build.
-pkg_conf.set('VERSION', purple_display_version)
-pkg_conf.set('PURPLE_MAJOR_VERSION', purple_major_version)
-pkg_conf.set('prefix', get_option('prefix'))
-pkg_conf.set('exec_prefix', '${prefix}')
-pkg_conf.set('libdir', join_paths('${exec_prefix}', get_option('libdir')))
-pkg_conf.set('includedir', join_paths('${prefix}', get_option('includedir')))
-pkg_conf.set('datarootdir', join_paths('${prefix}', get_option('datadir')))
-pkg_conf.set('datadir', '${datarootdir}')
-pkg_conf.set('sysconfdir', join_paths('${prefix}', get_option('sysconfdir')))
+# Used for pkg-config files.
+pkgconfig = import('pkgconfig')
sedpath = find_program('sed')
@@ -1119,11 +1109,12 @@
if get_option('plugins')
gplugin = dependency('gplugin', version : '>= 0.0.17')
# GPLUGIN_REQ sets pkg-config requirements in the .pc file
- pkg_conf.set('GPLUGIN_REQ', ', gplugin')
+ GPLUGIN_REQ = ['gplugin']
enable_introspection = dependency('gobject-introspection-1.0',
version : '>= 1.30.0', required : false).found()
else
gplugin = []
+ GPLUGIN_REQ = []
enable_introspection = false
endif
--- a/pidgin/data/pidgin-3-uninstalled.pc.in Fri Nov 17 14:23:40 2017 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-datarootdir=@datarootdir@
-datadir=@datadir@
-sysconfdir=@sysconfdir@
-
-abs_srcdir=@abs_srcdir@
-abs_builddir=@abs_builddir@
-
-abs_top_srcdir=@abs_top_srcdir@
-abs_top_builddir=@abs_top_builddir@
-
-plugindir=${libdir}/pidgin
-
-Name: Pidgin
-Description: Pidgin is a GTK3-based instant messenger application.
-Version: @VERSION@
-Requires: gtk+-3.0 webkitgtk-3.0 purple-3
-Cflags: -I${abs_top_srcdir}
--- a/pidgin/data/pidgin-3.pc.in Fri Nov 17 14:23:40 2017 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@/pidgin
-datarootdir=@datarootdir@
-datadir=@datadir@
-sysconfdir=@sysconfdir@
-
-plugindir=${libdir}/pidgin
-
-Name: Pidgin
-Description: Pidgin is a GTK3-based instant messenger application.
-Version: @VERSION@
-Requires: gtk+-3.0 webkitgtk-3.0 purple-3
-Cflags: -I${includedir}
-Libs: -L${libdir} -lpidgin
--- a/pidgin/meson.build Fri Nov 17 14:23:40 2017 +0300
+++ b/pidgin/meson.build Wed Nov 22 14:33:46 2017 +0300
@@ -185,11 +185,15 @@
# pidgin_LDFLAGS += -mwindows
endif
- configure_file(input : 'data/pidgin-3.pc.in',
- output : 'pidgin-3.pc',
- configuration : pkg_conf,
- install : true,
- install_dir : get_option('libdir') + '/pkgconfig')
+ pkgconfig.generate(
+ name : 'Pidgin',
+ description : 'Pidgin is a GTK3-based instant messenger application.',
+ version : purple_display_version,
+ filebase : 'pidgin-3',
+ subdirs : 'pidgin',
+ libraries : [libpidgin],
+ requires : ['gtk+-3.0', 'webkitgtk-3.0', 'purple-3'],
+ variables : ['plugindir=${libdir}/pidgin'])
if INSTALL_I18N
DESKTOP_FILE = 'im.pidgin.Pidgin.desktop'