pidgin/pidgin

69b44723d52c
facebook: Make $.hugePictureUrl.uri optional

Facebook seems to randomly send null in this field sometimes. It's not
very important so it can be made optional.

This includes moving the checksum code (which was previously duplicated)
to a separate function so that there's a single null check.
#
# Makefile.mingw
#
# Description: Makefile for win32 (mingw) version of libpurple
#
PIDGIN_TREE_TOP := ..
include $(PIDGIN_TREE_TOP)/libpurple/win32/global.mak
TARGET = libpurple
ifeq ($(CYRUS_SASL), 1)
NEEDED_DLLS = $(CYRUS_SASL_TOP)/bin/libsasl2-3.dll
CYRUS_SASL_PLUGINS = \
$(CYRUS_SASL_TOP)/lib/sasl2/libanonymous-3.dll \
$(CYRUS_SASL_TOP)/lib/sasl2/libcrammd5-3.dll \
$(CYRUS_SASL_TOP)/lib/sasl2/libdigestmd5-3.dll \
$(CYRUS_SASL_TOP)/lib/sasl2/libplain-3.dll
endif
##
## INCLUDE PATHS
##
INCLUDE_PATHS += \
-I$(PURPLE_TOP) \
-I$(PURPLE_TOP)/win32 \
-I$(PIDGIN_TREE_TOP) \
-I$(GTK_TOP)/include \
-I$(GTK_TOP)/include/glib-2.0 \
-I$(GTK_TOP)/lib/glib-2.0/include \
-I$(JSON_GLIB_TOP)/include/json-glib-1.0 \
-I$(LIBXML2_TOP)/include/libxml2 \
-I$(NSS_TOP)/include/nspr4 \
-I$(NSS_TOP)/include/nss3 \
-I$(GNUTLS_TOP)/include \
$(VV_INCLUDE_PATHS)
LIB_PATHS += -L$(GTK_TOP)/lib \
-L$(JSON_GLIB_TOP)/lib \
-L$(LIBXML2_TOP)/lib \
-L$(NSS_TOP)/lib \
-L$(GNUTLS_TOP)/lib \
$(VV_LIB_PATHS)
##
## SOURCES, OBJECTS
##
ifeq "$(USE_VV)" "1"
VV_SRC = \
media/backend-fs2.c \
media/backend-iface.c \
media/codec.c
else
VV_SRC =
endif
BUILT_SRC = marshallers.c enums.c
C_SRC = \
$(BUILT_SRC) \
account.c \
accounts.c \
accountopt.c \
blistnode.c \
blistnodetypes.c \
buddylist.c \
buddyicon.c \
certificate.c \
ciphers/aescipher.c \
ciphers/descipher.c \
ciphers/des3cipher.c \
ciphers/hmaccipher.c \
ciphers/md4hash.c \
ciphers/md5hash.c \
ciphers/pbkdf2cipher.c \
ciphers/rc4cipher.c \
ciphers/sha1hash.c \
ciphers/sha256hash.c \
cipher.c \
circularbuffer.c \
cmds.c \
connection.c \
conversation.c \
conversationtypes.c \
conversations.c \
core.c \
debug.c \
dnsquery.c \
dnssrv.c \
e2ee.c \
eventloop.c \
http.c \
idle.c \
image.c \
image-store.c \
keyring.c \
log.c \
media/candidate.c \
media/enum-types.c \
mediamanager.c \
media.c \
memorypool.c \
mime.c \
nat-pmp.c \
network.c \
notify.c \
ntlm.c \
plugins.c \
pluginpref.c \
pounce.c \
prefs.c \
presence.c \
proxy.c \
protocol.c \
protocols.c \
request.c \
request-datasheet.c \
roomlist.c \
savedstatuses.c \
server.c \
signals.c \
smiley.c \
smiley-custom.c \
smiley-list.c \
smiley-parser.c \
smiley-theme.c \
sound-theme-loader.c \
sound-theme.c \
sound.c \
sslconn.c \
status.c \
stringref.c \
stun.c \
theme-loader.c \
theme-manager.c \
theme.c \
trie.c \
upnp.c \
util.c \
version.c \
whiteboard.c \
xfer.c \
xmlnode.c \
win32/giowin32.c \
win32/libc_interface.c \
win32/win32dep.c \
$(VV_SRC)
RC_SRC = win32/libpurplerc.rc
ENUM_HEADERS = \
account.h \
cipher.h \
connection.h \
conversation.h \
conversationtypes.h \
roomlist.h \
status.h \
xfer.h
OBJECTS = $(C_SRC:%.c=%.o) $(RC_SRC:%.rc=%.o)
##
## LIBRARIES
##
LIBS = \
-ldnsapi \
-lglib-2.0 \
-lgthread-2.0 \
-lgobject-2.0 \
-lgmodule-2.0 \
-lintl \
-lws2_32 \
-lxml2 \
-ljson-glib-1.0 \
-lnss3 \
-lnspr4 \
-lgnutls \
-lz \
$(VV_LIBS)
include $(PIDGIN_COMMON_RULES)
##
## TARGET DEFINITIONS
##
.PHONY: all install install_shallow clean
all: $(TARGET).dll
$(MAKE_at) $(MAKE) -C $(PURPLE_PROTOS_TOP) -f $(MINGW_MAKEFILE)
$(MAKE_at) $(MAKE) -C $(PURPLE_PLUGINS_TOP) -f $(MINGW_MAKEFILE)
install_shallow: $(PURPLE_INSTALL_DIR) $(TARGET).dll
cp $(TARGET).dll $(PURPLE_INSTALL_DIR)
cp $(NEEDED_DLLS) $(PURPLE_INSTALL_DIR)
ifeq ($(CYRUS_SASL), 1)
mkdir -p $(PURPLE_INSTALL_DIR)/sasl2
cp $(CYRUS_SASL_PLUGINS) $(PURPLE_INSTALL_DIR)/sasl2
endif
install: install_shallow all
$(MAKE_at) $(MAKE) -C $(PURPLE_PROTOS_TOP) -f $(MINGW_MAKEFILE) install
$(MAKE_at) $(MAKE) -C $(PURPLE_PLUGINS_TOP) -f $(MINGW_MAKEFILE) install
./win32/libpurplerc.rc: ./win32/libpurplerc.rc.in $(PIDGIN_TREE_TOP)/VERSION
@echo -e " GEN\t$@"
@sed -e 's/@PURPLE_VERSION@/$(PURPLE_VERSION)/g' \
-e 's/@PURPLE_MAJOR_VERSION@/$(PURPLE_MAJOR_VERSION)/g' \
-e 's/@PURPLE_MINOR_VERSION@/$(PURPLE_MINOR_VERSION)/g' \
-e 's/@PURPLE_MICRO_VERSION@/$(PURPLE_MICRO_VERSION)/g' \
-e 's/@PURPLE_API_VERSION@/$(PURPLE_API_VERSION)/g' \
$@.in > $@
$(OBJECTS): $(PURPLE_CONFIG_H) $(PURPLE_VERSION_H) $(PURPLE_PURPLE_H)
marshallers.h: marshallers.list
@echo -e " GEN\t$@"
@$(GLIB_GENMARSHAL) --prefix=purple_smarshal $< --header > marshallers.h
marshallers.c: marshallers.list marshallers.h
@echo -e " GEN\t$@"
@echo "#include \"marshallers.h\"" > marshallers.c
@$(GLIB_GENMARSHAL) --prefix=purple_smarshal $< --body >> marshallers.c
enums.h: enums.h.in $(ENUM_HEADERS)
@echo -e " GEN\t$@"
@$(GLIB_MKENUMS) --template enums.h.in $(ENUM_HEADERS) > enums.h
enums.c: enums.c.in enums.h $(ENUM_HEADERS)
@echo -e " GEN\t$@"
@$(GLIB_MKENUMS) --template enums.c.in $(ENUM_HEADERS) > enums.c
$(TARGET).dll $(TARGET).dll.a: $(OBJECTS)
$(CC) -shared $(OBJECTS) $(LIB_PATHS) $(LIBS) $(DLL_LD_FLAGS) -Wl,--output-def,$(TARGET).def,--out-implib,$(TARGET).dll.a -o $(TARGET).dll
##
## CLEAN RULES
##
clean:
rm -f $(OBJECTS) $(RC_SRC) $(PURPLE_VERSION_H) $(PURPLE_PURPLE_H) marshallers.h marshallers.c enums.h enums.c
rm -f $(TARGET).dll $(TARGET).dll.a $(TARGET).def
$(MAKE_at) $(MAKE) -C $(PURPLE_PROTOS_TOP) -f $(MINGW_MAKEFILE) clean
$(MAKE_at) $(MAKE) -C $(PURPLE_PLUGINS_TOP) -f $(MINGW_MAKEFILE) clean
include $(PIDGIN_COMMON_TARGETS)