File twinkle-ucommon.diff of Package twinkle

Index: twinkle-1.4.2/configure.in
===================================================================
--- twinkle-1.4.2.orig/configure.in	2009-02-24 20:49:20.000000000 +0100
+++ twinkle-1.4.2/configure.in	2011-09-27 12:33:39.787913055 +0200
@@ -47,7 +47,7 @@ AC_CHECK_HEADERS([linux/errqueue.h],[],[
 
 # Check version of the Common C++ library.
 # This also sets the cc++2 include directory in CXXFLAGS
-OST_CCXX2_VERSION(1.6.0,,exit)
+#OST_CCXX2_VERSION(1.6.0,,exit)
 
 # Temporarily add some default directories to PKG_CONFIG_PATH such that
 # the user will not be burdened with setting PKG_CONFIG_PATH
@@ -66,7 +66,9 @@ fi
 
 export PKG_CONFIG_PATH
 
-PKG_CHECK_MODULES(CCRTP, libccrtp1 >= 1.6.0)
+PKG_CHECK_MODULES(CCRTP, libccrtp >= 2.0.0)
+PKG_CHECK_MODULES(UCOMMON, ucommon >= 5.0.0)
+CCRTP_LIBS="$CCRTP_LIBS $UCOMMON_LIBS"
 
 PKG_CHECK_MODULES(XML2, libxml-2.0)
 # AC_CHECK_HEADER(libxml/tree.h, [],
@@ -136,7 +138,7 @@ done
 #echo "INCLUDEPATH += `$CCGNU2_CONFIG --includes`" | sed -e s/-I//g > $QT_INCL_PRO
 # libccrtp1(ccrtp) depend from libccgnu2(commoncpp2) and
 # should include above flags !
-echo "INCLUDEPATH += `$PKG_CONFIG --cflags-only-I libccrtp1`" | sed -e s/-I//g >> $QT_INCL_PRO
+echo "INCLUDEPATH += `$PKG_CONFIG --cflags-only-I libccrtp`" | sed -e s/-I//g >> $QT_INCL_PRO
 echo "INCLUDEPATH += `$PKG_CONFIG --cflags-only-I libxml-2.0`" | sed -e s/-I//g >> $QT_INCL_PRO
 
 # get libraries specified on command line
@@ -144,6 +146,7 @@ echo $LDFLAGS | xargs echo LIBS += >> $Q
 
 echo "LIBS += `$CCGNU2_CONFIG --stdlibs`" >> $QT_INCL_PRO
 echo "LIBS += $CCRTP_LIBS" >> $QT_INCL_PRO
+echo "LIBS += $UCOMMON_LIBS" >> $QT_INCL_PRO
 echo "LIBS += $XML2_LIBS" >> $QT_INCL_PRO
 
 # Check if KDE is available
@@ -264,7 +267,7 @@ fi
 # Check if zrtp is available
 if test "x$ac_cv_zrtp" = "xyes"
 then
-	PKG_CHECK_MODULES(ZRTP, libzrtpcpp >= 1.3.0)
+	PKG_CHECK_MODULES(ZRTP, libzrtpcpp >= 2.0.0)
 	AC_CHECK_LIB(zrtpcpp, main, [
 		AC_CHECK_HEADER(libzrtpcpp/ZrtpQueue.h, [],
 			[AC_MSG_ERROR([zrtp header files missing])])
Index: twinkle-1.4.2/src/audio/audio_decoder.h
===================================================================
--- twinkle-1.4.2.orig/src/audio/audio_decoder.h	2009-01-03 17:53:58.000000000 +0100
+++ twinkle-1.4.2/src/audio/audio_decoder.h	2011-09-27 12:33:39.790913085 +0200
@@ -21,7 +21,6 @@
 #ifndef _AUDIO_DECODER_H
 #define _AUDIO_DECODER_H
 
-#include <cc++/config.h>
 #include "twinkle_config.h"
 #include "audio_codecs.h"
 #include "user.h"
Index: twinkle-1.4.2/src/audio/audio_encoder.h
===================================================================
--- twinkle-1.4.2.orig/src/audio/audio_encoder.h	2009-01-03 17:53:58.000000000 +0100
+++ twinkle-1.4.2/src/audio/audio_encoder.h	2011-09-27 12:33:39.790913085 +0200
@@ -21,7 +21,6 @@
 #ifndef _AUDIO_ENCODER_H
 #define _AUDIO_ENCODER_H
 
-#include <cc++/config.h>
 #include "twinkle_config.h"
 #include "audio_codecs.h"
 #include "user.h"
Index: twinkle-1.4.2/src/audio/audio_rx.cpp
===================================================================
--- twinkle-1.4.2.orig/src/audio/audio_rx.cpp	2009-01-31 13:05:53.000000000 +0100
+++ twinkle-1.4.2/src/audio/audio_rx.cpp	2011-09-27 12:33:39.791913095 +0200
@@ -22,7 +22,6 @@
 #include <cstdlib>
 #include <sys/types.h>
 #include <sys/time.h>
-#include <cc++/config.h>
 
 #include "audio_rx.h"
 #include "log.h"
Index: twinkle-1.4.2/src/audio/dtmf_player.h
===================================================================
--- twinkle-1.4.2.orig/src/audio/dtmf_player.h	2009-01-03 17:53:58.000000000 +0100
+++ twinkle-1.4.2/src/audio/dtmf_player.h	2011-09-27 12:33:39.791913095 +0200
@@ -21,7 +21,6 @@
 #ifndef _DTMF_PLAYER_H
 #define _DTMF_PLAYER_H
 
-#include <cc++/config.h>
 #include "twinkle_config.h"
 #include "audio_encoder.h"
 #include "freq_gen.h"
Index: twinkle-1.4.2/src/audio/freq_gen.h
===================================================================
--- twinkle-1.4.2.orig/src/audio/freq_gen.h	2009-01-03 17:53:58.000000000 +0100
+++ twinkle-1.4.2/src/audio/freq_gen.h	2011-09-27 12:33:39.791913095 +0200
@@ -26,7 +26,7 @@
 #define _FREQ_GEN_H
 
 #include <vector>
-#include <cc++/config.h>
+#include <commoncpp/config.h>
 
 using namespace std;
 
Index: twinkle-1.4.2/src/audio/tone_gen.h
===================================================================
--- twinkle-1.4.2.orig/src/audio/tone_gen.h	2009-01-03 17:53:58.000000000 +0100
+++ twinkle-1.4.2/src/audio/tone_gen.h	2011-09-27 12:33:39.792913104 +0200
@@ -21,7 +21,6 @@
 
 #include <string>
 #include <fstream>
-#include <cc++/config.h>
 #include <sndfile.h>
 #include "sys_settings.h"
 #include "threads/mutex.h"
Index: twinkle-1.4.2/src/call_script.h
===================================================================
--- twinkle-1.4.2.orig/src/call_script.h	2009-01-03 17:54:01.000000000 +0100
+++ twinkle-1.4.2/src/call_script.h	2011-09-27 12:33:39.792913104 +0200
@@ -65,7 +65,6 @@
 
 #include <vector>
 #include <string>
-#include <cc++/config.h>
 #include "user.h"
 #include "parser/request.h"
 
Index: twinkle-1.4.2/src/log.cpp
===================================================================
--- twinkle-1.4.2.orig/src/log.cpp	2009-01-18 15:35:28.000000000 +0100
+++ twinkle-1.4.2/src/log.cpp	2011-09-27 12:33:39.792913104 +0200
@@ -40,6 +40,7 @@ void *main_logview(void *arg) {
 		// TODO: handle situation where log file was zapped.
 		if (ui) ui->cb_log_updated(false);
 	}
+	return NULL;
 }
 
 bool t_log::move_current_to_old(void) {
@@ -161,7 +162,7 @@ void t_log::write_header(const string &f
 
 	gettimeofday(&t, NULL);
 	date = t.tv_sec;
-	localtime_r(&date, &tm);
+	::localtime_r(&date, &tm);
 
 	*log_stream << "+++ ";
 	*log_stream << tm.tm_mday;
Index: twinkle-1.4.2/src/mwi/mwi_dialog.cpp
===================================================================
--- twinkle-1.4.2.orig/src/mwi/mwi_dialog.cpp	2009-01-03 17:54:03.000000000 +0100
+++ twinkle-1.4.2/src/mwi/mwi_dialog.cpp	2011-09-27 12:33:39.793913113 +0200
@@ -32,4 +32,5 @@ t_mwi_dialog::t_mwi_dialog(t_phone_user
 t_mwi_dialog *t_mwi_dialog::copy(void) {
 	// Copy is not needed.
 	assert(false);
+	return NULL;
 }
Index: twinkle-1.4.2/src/mwi/simple_msg_sum_body.h
===================================================================
--- twinkle-1.4.2.orig/src/mwi/simple_msg_sum_body.h	2009-01-03 17:53:57.000000000 +0100
+++ twinkle-1.4.2/src/mwi/simple_msg_sum_body.h	2011-09-27 12:33:39.793913113 +0200
@@ -26,7 +26,6 @@
 
 #include <string>
 #include <map>
-#include <cc++/config.h>
 #include "parser/sip_body.h"
 #include "sockets/url.h"
 
Index: twinkle-1.4.2/src/parser/definitions.cpp
===================================================================
--- twinkle-1.4.2.orig/src/parser/definitions.cpp	2009-01-03 17:54:07.000000000 +0100
+++ twinkle-1.4.2/src/parser/definitions.cpp	2011-09-27 12:33:39.793913113 +0200
@@ -38,6 +38,7 @@ string method2str(const t_method &m, con
 	case METHOD_UNKNOWN:	return unknown;
 	default:		assert(false);
 	}
+	return unknown;
 }
 
 t_method str2method(const string &s) {
Index: twinkle-1.4.2/src/parser/request.cpp
===================================================================
--- twinkle-1.4.2.orig/src/parser/request.cpp	2009-01-18 15:06:11.000000000 +0100
+++ twinkle-1.4.2/src/parser/request.cpp	2011-09-27 12:33:39.794913123 +0200
@@ -23,9 +23,11 @@
 #include "milenage.h"
 #include "audits/memman.h"
 #include <sstream>
-#include <cc++/digest.h>
+#include <ucommon/secure.h>
 
-using namespace ost;
+using namespace UCOMMON_NAMESPACE;
+
+// using namespace ost;
 
 // AKAv1-MD5 algorithm specific helpers
 
@@ -148,10 +150,10 @@ int b64_dec(const u8 * src, u8 * dst, in
 // authentication with AKAv1-MD5 algorithm (RFC 3310)
 
 bool t_request::authorize_akav1_md5(const t_digest_challenge &dchlg,
-	const string &username, const string &passwd, uint8 *op, uint8 *amf,
+	const std::string &username, const std::string &passwd, uint8 *op, uint8 *amf,
 	unsigned long nc,
-	const string &cnonce, const string &qop, string &resp, 
-	string &fail_reason) const
+	const std::string &cnonce, const std::string &qop, std::string &resp, 
+	std::string &fail_reason) const
 {
 	u8 nonce64[B64_DEC_SZ(dchlg.nonce.size())];
 	int len = b64_dec((const u8 *)dchlg.nonce.c_str(), nonce64, dchlg.nonce.size());
@@ -183,7 +185,7 @@ bool t_request::authorize_akav1_md5(cons
 	for (i=0; i < AKA_SQNLEN; i++)
     	sqn[i] = sqnxoraka[i] ^ ak[i];
 	
-	string res_str = string((char *)res, AKA_RESLEN);
+	std::string res_str = std::string((char *)res, AKA_RESLEN);
 	
 	return authorize_md5(dchlg, username, res_str, nc, cnonce, qop, 
 			resp, fail_reason);
@@ -192,11 +194,11 @@ bool t_request::authorize_akav1_md5(cons
 // authentication with MD5 algorithm
 
 bool t_request::authorize_md5(const t_digest_challenge &dchlg,
-	const string &username, const string &passwd, unsigned long nc,
-	const string &cnonce, const string &qop, string &resp, 
-	string &fail_reason) const
+	const std::string &username, const std::string &passwd, unsigned long nc,
+	const std::string &cnonce, const std::string &qop, std::string &resp, 
+	std::string &fail_reason) const
 {
-	string A1, A2;
+	std::string A1, A2;
 	// RFC 2617 3.2.2.2
 	A1 = username + ":" + dchlg.realm + ":" + passwd;
 
@@ -207,60 +209,51 @@ bool t_request::authorize_md5(const t_di
 		A2 = method2str(method, unknown_method) + ":" + uri.encode();
 		A2 += ":";
 		if (body) {
-			MD5Digest MD5body;
-			MD5body << body->encode();
-			ostringstream os;
-			os << MD5body;
-			A2 += os.str();
+			digest_t MD5body = "md5";
+			MD5body.puts(body->encode().c_str());
+			A2 += std::string(MD5body.c_str());
 		} else {
-			MD5Digest MD5body;
-			MD5body << "";
-			ostringstream os;
-			os << MD5body;
-			A2 += os.str();
+			digest_t MD5body = "md5";
+			MD5body.puts("");
+			A2 += std::string(MD5body.c_str());
 		}
 	}
-
 	// RFC 2716 3.2.2.1
 	// Caculate digest
-	MD5Digest MD5A1;
-	MD5Digest MD5A2;
-	ostringstream HA1;
-	ostringstream HA2;
-
-	MD5A1 << A1;
-	MD5A2 << A2;
-	HA1 << MD5A1;
-	HA2 << MD5A2;
+	digest_t MD5A1 = "md5";
+	digest_t MD5A2 = "md5";
+
+	MD5A1.puts(A1.c_str());
+	MD5A2.puts(A2.c_str());
 
-	string x;
+	std::string x;
 
 	if (cmp_nocase(qop, QOP_AUTH) == 0 || cmp_nocase(qop, QOP_AUTH_INT) == 0) {
-		x = HA1.str() + ":";
+	        x = std::string(MD5A1.c_str());
+		x += ":";
 		x += dchlg.nonce + ":";
 		x += int2str(nc, "%08x") + ":";
 		x += cnonce + ":";
 		x += qop + ":";
-		x += HA2.str();
+		x += std::string(MD5A2.c_str());
 	} else {
-		x = HA1.str() + ":";
+                x = std::string(MD5A1.c_str());
+		x += ":";
 		x += dchlg.nonce + ":";
-		x += HA2.str();
+		x += std::string(MD5A2.c_str());
 	}
 
-	MD5Digest digest;
-	digest << x;
-	ostringstream dresp;
-	dresp << digest;
+	digest_t digest = "md5";
+	digest.puts(x.c_str());
 
-	resp = dresp.str();
+	resp = std::string(digest.c_str());
 
 	return true;
 }
 
 bool t_request::authorize(const t_challenge &chlg, t_user *user_config,
-	const string &username, const string &passwd, unsigned long nc,
-	const string &cnonce, t_credentials &cr, string &fail_reason) const
+	const std::string &username, const std::string &passwd, unsigned long nc,
+	const std::string &cnonce, t_credentials &cr, std::string &fail_reason) const
 {
 	// Only Digest authentication is supported
 	if (cmp_nocase(chlg.auth_scheme, AUTH_DIGEST) != 0) {
@@ -271,17 +264,17 @@ bool t_request::authorize(const t_challe
 
 	const t_digest_challenge &dchlg = chlg.digest_challenge;
 	
-	string qop = "";
+	std::string qop = "";
 
 	// Determine QOP
 	// If both auth and auth-int are supported by the server, then
 	// choose auth to avoid problems with SIP ALGs. A SIP ALG rewrites
 	// the body of a message, thereby breaking auth-int authentication.
 	if (!dchlg.qop_options.empty()) {
-		const list<string>::const_iterator i = find(
+		const list<std::string>::const_iterator i = find(
 			dchlg.qop_options.begin(), dchlg.qop_options.end(),
 			QOP_AUTH_INT);
-		const list<string>::const_iterator j = find(
+		const list<std::string>::const_iterator j = find(
 			dchlg.qop_options.begin(), dchlg.qop_options.end(),
 			QOP_AUTH);
 		if (j != dchlg.qop_options.end())
@@ -297,7 +290,7 @@ bool t_request::authorize(const t_challe
 	}
 
 	bool ret = false;
-	string resp;
+	std::string resp;
 
 	if (cmp_nocase(dchlg.algorithm, ALG_MD5) == 0) {
 		ret = authorize_md5(dchlg, username, passwd, nc, cnonce, 
@@ -359,15 +352,15 @@ t_request::t_request(const t_method m) :
 	method = m;
 }
 
-void t_request::set_method(const string &s) {
+void t_request::set_method(const std::string &s) {
 	method = str2method(s);
 	if (method == METHOD_UNKNOWN) {
 		unknown_method = s;
 	}
 }
 
-string t_request::encode(bool add_content_length) {
-	string s;
+std::string t_request::encode(bool add_content_length) {
+	std::string s;
 
 	s = method2str(method, unknown_method) + ' ' + uri.encode();
 	s += " SIP/";
@@ -377,9 +370,9 @@ string t_request::encode(bool add_conten
 	return s;
 }
 
-list<string> t_request::encode_env(void) {
-	string s;
-	list<string> l = t_sip_message::encode_env();
+list<std::string> t_request::encode_env(void) {
+	std::string s;
+	list<std::string> l = t_sip_message::encode_env();
 	
 	s = "SIPREQUEST_METHOD=";
 	s += method2str(method, unknown_method);
@@ -431,7 +424,7 @@ void t_request::set_route(const t_url &t
         }
 }
 
-t_response *t_request::create_response(int code, string reason) const
+t_response *t_request::create_response(int code, std::string reason) const
 {
 	t_response *r;
 
@@ -458,7 +451,7 @@ t_response *t_request::create_response(i
 	return r;
 }
 
-bool t_request::is_valid(bool &fatal, string &reason) const {
+bool t_request::is_valid(bool &fatal, std::string &reason) const {
 	if (!t_sip_message::is_valid(fatal, reason)) return false;
 
 	fatal = false;
@@ -702,8 +695,8 @@ void t_request::set_destination(const t_
 }
 
 bool t_request::www_authorize(const t_challenge &chlg, t_user *user_config, 
-	       const string &username, const string &passwd, unsigned long nc,
-	       const string &cnonce, t_credentials &cr, string &fail_reason)
+	       const std::string &username, const std::string &passwd, unsigned long nc,
+	       const std::string &cnonce, t_credentials &cr, std::string &fail_reason)
 {
 	if (!authorize(chlg, user_config, username, passwd, nc, cnonce, cr, fail_reason)) {
 		return false;
@@ -715,8 +708,8 @@ bool t_request::www_authorize(const t_ch
 }
 
 bool t_request::proxy_authorize(const t_challenge &chlg, t_user *user_config,
-	       const string &username, const string &passwd, unsigned long nc,
-	       const string &cnonce, t_credentials &cr, string &fail_reason)
+	       const std::string &username, const std::string &passwd, unsigned long nc,
+	       const std::string &cnonce, t_credentials &cr, std::string &fail_reason)
 {
 	if (!authorize(chlg, user_config, username, passwd, nc, cnonce, cr, fail_reason)) {
 		return false;
Index: twinkle-1.4.2/src/parser/sip_body.h
===================================================================
--- twinkle-1.4.2.orig/src/parser/sip_body.h	2009-01-03 17:54:00.000000000 +0100
+++ twinkle-1.4.2/src/parser/sip_body.h	2011-09-27 12:33:39.794913123 +0200
@@ -20,7 +20,7 @@
 #ifndef _H_SIP_BODY
 #define _H_SIP_BODY
 
-#include <cc++/config.h>
+#include <commoncpp/config.h>
 #include <string>
 #include <libxml/tree.h>
 
Index: twinkle-1.4.2/src/presence/presence_dialog.cpp
===================================================================
--- twinkle-1.4.2.orig/src/presence/presence_dialog.cpp	2009-01-03 17:54:07.000000000 +0100
+++ twinkle-1.4.2/src/presence/presence_dialog.cpp	2011-09-27 12:33:39.849913648 +0200
@@ -32,4 +32,5 @@ t_presence_dialog::t_presence_dialog(t_p
 t_presence_dialog *t_presence_dialog::copy(void) {
 	// Copy is not needed.
 	assert(false);
+	return NULL;
 }
Index: twinkle-1.4.2/src/sdp/sdp.cpp
===================================================================
--- twinkle-1.4.2.orig/src/sdp/sdp.cpp	2009-01-03 17:54:03.000000000 +0100
+++ twinkle-1.4.2/src/sdp/sdp.cpp	2011-09-27 12:33:39.850913659 +0200
@@ -37,6 +37,7 @@ string sdp_ntwk_type2str(t_sdp_ntwk_type
 	default:
 		assert(false);
 	}
+	return "";
 }
 
 t_sdp_ntwk_type str2sdp_ntwk_type(string s) {
@@ -53,6 +54,7 @@ string sdp_addr_type2str(t_sdp_addr_type
 	default:
 		assert(false);
 	}
+	return "";
 }
 
 t_sdp_addr_type str2sdp_addr_type(string s) {
@@ -69,6 +71,7 @@ string sdp_transport2str(t_sdp_transport
 	default:
 		assert(false);
 	}
+	return "";
 }
 
 t_sdp_transport str2sdp_transport(string s) {
@@ -92,6 +95,7 @@ string sdp_media_type2str(t_sdp_media_ty
 	default:
 		assert(false);
 	}
+	return "";
 }
 
 string get_rtpmap(unsigned format, t_audio_codec codec) {
@@ -153,6 +157,7 @@ string sdp_media_direction2str(t_sdp_med
 	default:
 		assert(false);
 	}
+	return "";
 }
 
 ///////////////////////////////////
Index: twinkle-1.4.2/src/sequence_number.h
===================================================================
--- twinkle-1.4.2.orig/src/sequence_number.h	2009-01-03 17:53:58.000000000 +0100
+++ twinkle-1.4.2/src/sequence_number.h	2011-09-27 12:33:39.850913659 +0200
@@ -24,7 +24,6 @@
 #ifndef _SEQUENCE_NUMBER_H
 #define _SEQUENCE_NUMBER_H
 
-#include <cc++/config.h>
 
 /**
  * Sequence numbers.
Index: twinkle-1.4.2/src/sys_settings.cpp
===================================================================
--- twinkle-1.4.2.orig/src/sys_settings.cpp	2009-02-11 22:46:13.000000000 +0100
+++ twinkle-1.4.2/src/sys_settings.cpp	2011-09-27 12:33:39.851913671 +0200
@@ -1064,7 +1064,7 @@ string t_sys_settings::about(bool html)
 	if (html) s += "<BR>";
 	s += "\n";
 
-	s += "* GNU CommonC++ - http://www.gnu.org/software/commoncpp";
+	s += "* GNU uCommon C++ - http://www.gnutelephony.org/index.php/Category:Software";
 	if (html) s += "<BR><BR>";
 	s += "\n\n";
 	
Index: twinkle-1.4.2/src/timekeeper.cpp
===================================================================
--- twinkle-1.4.2.orig/src/timekeeper.cpp	2009-01-18 15:45:26.000000000 +0100
+++ twinkle-1.4.2/src/timekeeper.cpp	2011-09-27 12:33:39.851913671 +0200
@@ -782,4 +782,5 @@ void *timekeeper_sigwait(void *arg) {
 		if (sigwait(&sigset, &sig) == EINTR) continue;
 		evq_timekeeper->interrupt();
 	}
+	return NULL;
 }
Index: twinkle-1.4.2/src/user.cpp
===================================================================
--- twinkle-1.4.2.orig/src/user.cpp	2009-02-24 21:33:16.000000000 +0100
+++ twinkle-1.4.2/src/user.cpp	2011-09-27 12:33:39.852913682 +0200
@@ -225,6 +225,7 @@ string t_user::bit_rate_type2str(t_bit_r
 	default:
 		assert(false);
 	}
+	return "";
 }
 
 t_dtmf_transport t_user::str2dtmf_transport(const string &s) const {
@@ -244,6 +245,7 @@ string t_user::dtmf_transport2str(t_dtmf
 	default:
 		assert(false);
 	}
+	return "";
 }
 
 t_g726_packing t_user::str2g726_packing(const string &s) const {
@@ -259,6 +261,7 @@ string t_user::g726_packing2str(t_g726_p
 	default:
 		assert(false);
 	}
+	return "";
 }
 
 t_sip_transport t_user::str2sip_transport(const string &s) const {
@@ -276,6 +279,7 @@ string t_user::sip_transport2str(t_sip_t
 	default:
 		assert(false);
 	}
+	return "";
 }
 
 string t_user::expand_filename(const string &filename) {
Index: twinkle-1.4.2/src/user.h
===================================================================
--- twinkle-1.4.2.orig/src/user.h	2009-02-18 22:14:52.000000000 +0100
+++ twinkle-1.4.2/src/user.h	2011-09-27 12:33:39.853913692 +0200
@@ -25,7 +25,6 @@
 
 #include <string>
 #include <list>
-#include <cc++/config.h>
 #include "protocol.h"
 #include "sys_settings.h"
 #include "audio/audio_codecs.h"
Index: twinkle-1.4.2/src/util.h
===================================================================
--- twinkle-1.4.2.orig/src/util.h	2009-01-18 16:01:53.000000000 +0100
+++ twinkle-1.4.2/src/util.h	2011-09-27 12:33:39.853913692 +0200
@@ -26,7 +26,7 @@
 
 #include <vector>
 #include <string>
-#include <cc++/config.h>
+#include <commoncpp/config.h>
 
 using namespace std;
 
Index: twinkle-1.4.2/src/gui/twinkle.pro
===================================================================
--- twinkle-1.4.2.orig/src/gui/twinkle.pro	2009-02-25 21:14:55.000000000 +0100
+++ twinkle-1.4.2/src/gui/twinkle.pro	2011-09-27 12:33:51.309024215 +0200
@@ -3,7 +3,7 @@ LANGUAGE	= C++
 
 CONFIG	+= qt warn_on release thread
 
-LIBS	+= ../libtwinkle.a ../parser/libsipparser.a ../sdp/libsdpparser.a ../sockets/libsocket.a ../threads/libthread.a ../audio/libaudio.a ../audits/libaudits.a ../stun/libstun.a ../mwi/libmwi.a ../im/libim.a ../patterns/libpatterns.a ../presence/libpresence.a ../utils/libutils.a -lsndfile -lmagic -lncurses -lreadline
+LIBS	+= ../libtwinkle.a ../parser/libsipparser.a ../sdp/libsdpparser.a ../sockets/libsocket.a ../threads/libthread.a ../audio/libaudio.a ../audits/libaudits.a ../stun/libstun.a ../mwi/libmwi.a ../im/libim.a ../patterns/libpatterns.a ../presence/libpresence.a ../utils/libutils.a -lsndfile -lmagic -lncurses -lreadline -lkio
 
 DEFINES	+= QT_NO_STL
 
openSUSE Build Service is sponsored by