summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Black <dragonheart@gentoo.org>2006-12-12 11:14:36 +0000
committerDaniel Black <dragonheart@gentoo.org>2006-12-12 11:14:36 +0000
commit847dc04c2bc8f1a06af6b4116a8e15adfe10d633 (patch)
tree333d0e17e1bfc525ef12d83390efdf7f159369f5 /net-im/twinkle
parentWe now require virtual/init, which will provide (diff)
downloadgentoo-2-847dc04c2bc8f1a06af6b4116a8e15adfe10d633.tar.gz
gentoo-2-847dc04c2bc8f1a06af6b4116a8e15adfe10d633.tar.bz2
gentoo-2-847dc04c2bc8f1a06af6b4116a8e15adfe10d633.zip
upstream memory patch thanks to Zas
(Portage version: 2.1.2_rc3)
Diffstat (limited to 'net-im/twinkle')
-rw-r--r--net-im/twinkle/ChangeLog8
-rw-r--r--net-im/twinkle/files/digest-twinkle-0.9-r23
-rw-r--r--net-im/twinkle/files/twinkle-0.9-memman.patch61
-rw-r--r--net-im/twinkle/twinkle-0.9-r2.ebuild57
4 files changed, 128 insertions, 1 deletions
diff --git a/net-im/twinkle/ChangeLog b/net-im/twinkle/ChangeLog
index eb4749b16470..5928458cbccb 100644
--- a/net-im/twinkle/ChangeLog
+++ b/net-im/twinkle/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for net-im/twinkle
# Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-im/twinkle/ChangeLog,v 1.22 2006/11/03 07:42:05 dragonheart Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-im/twinkle/ChangeLog,v 1.23 2006/12/12 11:14:36 dragonheart Exp $
+
+*twinkle-0.9-r2 (12 Dec 2006)
+
+ 12 Dec 2006; Daniel Black <dragonheart@gentoo.org>
+ +files/twinkle-0.9-memman.patch, +twinkle-0.9-r2.ebuild:
+ upstream memory patch thanks to Zas
*twinkle-0.9-r1 (03 Nov 2006)
diff --git a/net-im/twinkle/files/digest-twinkle-0.9-r2 b/net-im/twinkle/files/digest-twinkle-0.9-r2
new file mode 100644
index 000000000000..0f87aa58bd88
--- /dev/null
+++ b/net-im/twinkle/files/digest-twinkle-0.9-r2
@@ -0,0 +1,3 @@
+MD5 74ef85e9f4570cec10bd23d301f5549e twinkle-0.9.tar.gz 1012524
+RMD160 f6b8b70a9630687cf7f100c9dde888289d97f082 twinkle-0.9.tar.gz 1012524
+SHA256 22f536aaf6a7aa6870c31d03190b206509cfc8b6147c3af7080d6dbfa5a992b6 twinkle-0.9.tar.gz 1012524
diff --git a/net-im/twinkle/files/twinkle-0.9-memman.patch b/net-im/twinkle/files/twinkle-0.9-memman.patch
new file mode 100644
index 000000000000..ccd7dc7b8f97
--- /dev/null
+++ b/net-im/twinkle/files/twinkle-0.9-memman.patch
@@ -0,0 +1,61 @@
+Index: src/audits/memman.cpp
+===================================================================
+--- src/audits/memman.cpp (revision 223)
++++ src/audits/memman.cpp (working copy)
+@@ -114,13 +114,22 @@
+ return;
+ }
+
+- pointer_map.erase(p);
++
+ bool array_mismatch = (is_array != i->second.is_array);
+- mtx_memman.unlock();
+
+ // Check mixing of array new/delete
++ // NOTE: after the pointer has been erased from pointer_map, the
++ // iterator i is invalid.
++ // The mutex mtx_memman should be unlocked before logging to
++ // avoid dead locks.
+ if (array_mismatch) {
+ num_array_mixing++;
++ string allocation_filename = i->second.filename;
++ int allocation_lineno = i->second.lineno;
++ bool allocation_is_array = i->second.is_array;
++ pointer_map.erase(p);
++ mtx_memman.unlock();
++
+ log_file->write_header("t_memman::trc_delete",
+ LOG_MEMORY, LOG_WARNING);
+ log_file->write_raw(filename);
+@@ -130,21 +139,24 @@
+ log_file->write_raw(ptr2str(p));
+ log_file->write_raw(" is deleted ");
+ if (is_array) {
+- log_file->write_raw(" as array (delete []).\n");
++ log_file->write_raw("as array (delete []).\n");
+ } else {
+- log_file->write_raw(" normally (delete).\n");
++ log_file->write_raw("normally (delete).\n");
+ }
+ log_file->write_raw("But it was allocated ");
+- if (i->second.is_array) {
+- log_file->write_raw(" as array (new []) \n");
++ if (allocation_is_array) {
++ log_file->write_raw("as array (new []) \n");
+ } else {
+- log_file->write_raw(" normally (new) \n");
++ log_file->write_raw("normally (new) \n");
+ }
+- log_file->write_raw(i->second.filename);
++ log_file->write_raw(allocation_filename);
+ log_file->write_raw(", line ");
+- log_file->write_raw(i->second.lineno);
++ log_file->write_raw(allocation_lineno);
+ log_file->write_endl();
+ log_file->write_footer();
++ } else {
++ pointer_map.erase(p);
++ mtx_memman.unlock();
+ }
+ }
+
diff --git a/net-im/twinkle/twinkle-0.9-r2.ebuild b/net-im/twinkle/twinkle-0.9-r2.ebuild
new file mode 100644
index 000000000000..59a33ced3984
--- /dev/null
+++ b/net-im/twinkle/twinkle-0.9-r2.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-im/twinkle/twinkle-0.9-r2.ebuild,v 1.1 2006/12/12 11:14:36 dragonheart Exp $
+
+inherit eutils qt3
+
+DESCRIPTION="a soft phone for your VOIP communcations using SIP"
+HOMEPAGE="http://www.twinklephone.com/"
+SRC_URI="http://www.xs4all.nl/~mfnboer/twinkle/download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="arts speex ilbc zrtp"
+
+# Requires libqt-mt actually... Is that *always* built, or do we need to check?
+RDEPEND=">=net-libs/ccrtp-1.5.0
+ >=dev-cpp/commoncpp2-1.4.1
+ $(qt_min_version 3.3.0)
+ arts? ( kde-base/arts )
+ media-libs/libsndfile
+ dev-libs/boost
+ speex? ( media-libs/speex )
+ ilbc? ( dev-libs/ilbc-rfc3951 )
+ zrtp? ( net-libs/libzrtpcpp )"
+
+DEPEND="${RDEPEND}
+ dev-util/pkgconfig"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ epatch "${FILESDIR}"/${PN}-0.4.1-badcflags.patch
+ epatch "${FILESDIR}"/${P}-dtmf.patch
+ epatch "${FILESDIR}"/${P}-invite4xx.patch
+ epatch "${FILESDIR}"/${P}-memman.patch
+}
+
+src_compile() {
+ econf \
+ $(use_with ilbc) \
+ $(use_with arts) \
+ $(use_with zrtp) \
+ $(use_with speex) || die 'Error: conf failed'
+ emake || die "Error: emake failed!"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die
+ dodoc AUTHORS NEWS README THANKS
+ domenu twinkle.desktop
+}
+
+pkg_postinst() {
+ einfo "if you get crashes on startup re-emerge commoncpp2 ccrtp and twinkle"
+ einfo "see http://www.xs4all.nl/~mfnboer/twinkle/faq.html#crash_startup"
+}