Skip to content

Instantly share code, notes, and snippets.

@jhkrischel
Created August 15, 2012 03:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jhkrischel/e169ff220eb17f23ddf3 to your computer and use it in GitHub Desktop.
Save jhkrischel/e169ff220eb17f23ddf3 to your computer and use it in GitHub Desktop.
Patch to adium-1.5.3 to try out meanwhile group chat crash fix
# HG changeset patch
# User Jere Krischel <jere@krischel.org>
# Date 1345049742 25200
# Branch adium-1.5.3
# Node ID eaece1d0cf647db299cb64b9add03b4a72c6b9eb
# Parent c9b03688370c2887d956130319c8da537354d373
jere: patch to build 1.5.3 on mountain lion/xcode 4.4.1 + meanwhile group chat invite crash fix
diff --git a/Dependencies/build.sh b/Dependencies/build.sh
--- a/Dependencies/build.sh
+++ b/Dependencies/build.sh
@@ -23,8 +23,8 @@
# Also try /Developer-old, just in case XCode 4 is installed
DEVELOPER=$(xcode-select -print-path)
-# SDK_ROOT="${DEVELOPER}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.6.sdk"
-SDK_ROOT="/Developer/SDKs/MacOSX10.6.sdk/"
+# SDK_ROOT="${DEVELOPER}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk"
+SDK_ROOT="${DEVELOPER}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk"
MIN_OS_VERSION="10.6"
BASE_CFLAGS="-fstack-protector -isysroot $SDK_ROOT \
@@ -186,7 +186,7 @@
# Getting hg's path before we export our own (safer?) path will ensure it works,
# even if it's being managed by MacPorts, Fink, or similar.
HG=`which hg`
-export PATH=$ROOTDIR/build/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$DEVELOPER/usr/bin:$DEVELOPER/usr/sbin
+export PATH=$ROOTDIR/build/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$DEVELOPER/usr/bin:$DEVELOPER/usr/sbin:/opt/local/bin
export PKG_CONFIG="$ROOTDIR/build/bin/pkg-config"
export PKG_CONFIG_PATH="$ROOTDIR/build/lib/pkgconfig:/usr/lib/pkgconfig"
diff --git a/Dependencies/patches/Meanwhile-srvc_place.c.diff b/Dependencies/patches/Meanwhile-srvc_place.c.diff
new file mode 100644
--- /dev/null
+++ b/Dependencies/patches/Meanwhile-srvc_place.c.diff
@@ -0,0 +1,35 @@
+--- src/srvc_place.c 2005-11-21 10:30:46.000000000 -0800
++++ src/srvc_place.c 2012-08-15 09:07:37.000000000 -0700
+@@ -165,6 +165,7 @@
+ guint16 login_type;
+ guint32 unknown_a;
+ guint32 unknown_b;
++ char *extraname;
+ };
+
+
+@@ -189,6 +190,7 @@
+ mwIdBlock_clear(&p->idb);
+ g_free(p->login_id);
+ g_free(p->name);
++ g_free(p->extraname);
+ g_free(p);
+ }
+
+@@ -394,6 +396,8 @@
+ guint16_get(b, &pm->login_type);
+ guint32_get(b, &pm->unknown_a);
+ guint32_get(b, &pm->unknown_b);
++ //TODO: Since the Notes upgrade, an extra name string is sent to recv_SECTION_LIST(). It might be sent here,
++ // but since we're only parsing one user, it probably doesn't matter here.
+
+ PUT_MEMBER(place, pm);
+ if(srvc->handler && srvc->handler->peerJoined)
+@@ -544,6 +548,7 @@
+ guint16_get(b, &m->login_type);
+ guint32_get(b, &m->unknown_a);
+ guint32_get(b, &m->unknown_b);
++ mwString_get(b, &m->extraname); //new in Notes upgrade, the name appears again at the end now
+
+ PUT_MEMBER(place, m);
+ }
diff --git a/Dependencies/phases/build_dependencies.sh b/Dependencies/phases/build_dependencies.sh
--- a/Dependencies/phases/build_dependencies.sh
+++ b/Dependencies/phases/build_dependencies.sh
@@ -140,7 +140,10 @@
# The provided libtool ignores our Universal Binary-makin' flags
fwdpatch "$ROOTDIR/patches/Meanwhile-ltmain.sh.diff" -p0 || true
-
+
+ # Let's hope this fixes the sametime group chat invite crash
+ fwdpatch "$ROOTDIR/patches/Meanwhile-srvc_place.c.diff" -p0 || true
+
if needsconfigure $@; then
(
# Delete 'libtool' if it exists, so that we'll generate a new one
@@ -173,7 +176,8 @@
revpatch "$ROOTDIR/patches/Meanwhile-st_list.c.diff" -p0
revpatch "$ROOTDIR/patches/Meanwhile-common.c.diff" -p0
revpatch "$ROOTDIR/patches/Meanwhile-srvc_ft.c.diff" -p0
-
+ revpatch "$ROOTDIR/patches/Meanwhile-srvc_place.c.diff" -p0
+
quiet popd
}
diff --git a/Dependencies/phases/build_purple.sh b/Dependencies/phases/build_purple.sh
--- a/Dependencies/phases/build_purple.sh
+++ b/Dependencies/phases/build_purple.sh
@@ -115,6 +115,12 @@
status "Building and installing libpurple"
log make -j $NUMBER_OF_CORES
+ perl -pi -e 's/libpurple.0.dylib/libpurple.0.10.5.dylib/g' libpurple/*.la
+ perl -pi -e 's/libpurple.0.dylib/libpurple.0.10.5.dylib/g' libpurple/.libs/*.lai
+ cd libpurple/.libs
+ mv libpurple.0.dylib libpurple.0.10.5.dylib
+ ln -fs libpurple.0.10.5.dylib libpurple.dylib
+ cd ../../
log make install
status "Copying internal libpurple headers"
@jhkrischel
Copy link
Author

Note: this patch includes an update to the SDK to support Mountain Lion, an addition of /opt/local/bin to PATH to get glibtoolize, some changes to deal with odd file names coming out of the libpurple build, and a workaround for freedesktop.org being down for pkgconfig.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment