summaryrefslogtreecommitdiff
path: root/community/freetalk
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2013-07-19 01:10:32 -0700
committerroot <root@rshg054.dnsready.net>2013-07-19 01:10:32 -0700
commit8fbc0076a4827ddc6af92e0b9daa4c4c31450808 (patch)
tree03fd0e2921ebd53228d9a93e32ed3976b636cbea /community/freetalk
parente445a313723389ba9ee1fded025c567dae5b21ea (diff)
Fri Jul 19 01:09:18 PDT 2013
Diffstat (limited to 'community/freetalk')
-rw-r--r--community/freetalk/ChangeLog3
-rw-r--r--community/freetalk/PKGBUILD36
-rw-r--r--community/freetalk/freetalk-3.2-glibc210.patch68
-rw-r--r--community/freetalk/freetalk.install19
4 files changed, 126 insertions, 0 deletions
diff --git a/community/freetalk/ChangeLog b/community/freetalk/ChangeLog
new file mode 100644
index 000000000..d22a5592c
--- /dev/null
+++ b/community/freetalk/ChangeLog
@@ -0,0 +1,3 @@
+2007-07-02 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/freetalk/PKGBUILD b/community/freetalk/PKGBUILD
new file mode 100644
index 000000000..3eadd052b
--- /dev/null
+++ b/community/freetalk/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 92552 2013-06-08 11:18:48Z bpiotrowski $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=freetalk
+pkgver=3.2
+pkgrel=6
+pkgdesc="A console based Jabber client"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/freetalk"
+license=('GPL')
+depends=('loudmouth' 'guile1.8')
+install=freetalk.install
+source=(http://savannah.gnu.org/download/freetalk/freetalk-$pkgver.tar.gz
+ freetalk-3.2-glibc210.patch)
+md5sums=('ab09bd07dde158551f151d281b14642c'
+ '0da1d0a0f606d2b279fe676a80a3eb32')
+
+prepare(){
+ cd $pkgname-$pkgver
+ patch -Np1 -i ../freetalk-3.2-glibc210.patch
+}
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --disable-rpath \
+ GUILE=/usr/bin/guile1.8 \
+ GUILE_CONFIG=/usr/bin/guile-config1.8
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+ rm "$pkgdir/usr/share/info/dir"
+}
diff --git a/community/freetalk/freetalk-3.2-glibc210.patch b/community/freetalk/freetalk-3.2-glibc210.patch
new file mode 100644
index 000000000..3bdd0dc69
--- /dev/null
+++ b/community/freetalk/freetalk-3.2-glibc210.patch
@@ -0,0 +1,68 @@
+diff -urNp freetalk-3.2.orig/src/callbacks.cc freetalk-3.2/src/callbacks.cc
+--- freetalk-3.2.orig/src/callbacks.cc 2009-02-25 01:31:29.826691032 +0530
++++ freetalk-3.2/src/callbacks.cc 2009-02-25 02:56:04.323962193 +0530
+@@ -1,7 +1,7 @@
+ /*
+ callbacks.c: Callback functions
+
+- Copyright (c) 2005, 2006, 2007 Freetalk Core Team
++ Copyright (c) 2005, 2006, 2007, 2009 Freetalk Core Team
+ This file is part of GNU Freetalk.
+
+ Freetalk is free software; you can redistribute it and/or modify
+@@ -20,6 +20,7 @@
+ */
+
+ #include <stdio.h>
++#include <string>
+ #include <string.h>
+ #include <stdlib.h>
+ #include <glib.h>
+@@ -116,8 +117,9 @@ ft_msg_msg_handler (LmMessageHandler *ha
+ LmMessage *msg, gpointer user_data)
+ {
+ LmMessageNode *root, *body, *x;
+- const char *from, *msg_str, *type;
++ const char *msg_str, *type;
+ char *ts = NULL;
++ std::string from;
+
+ root = lm_message_get_node (msg);
+ body = lm_message_node_get_child (root, "body");
+@@ -152,11 +154,12 @@ ft_msg_msg_handler (LmMessageHandler *ha
+ set_hook_return (0);
+ /* TBD : make the below stripping of /Resource configurable */
+ if (1) {
+- if (strchr (from, '/'))
+- *strchr (from, '/') = '\0';
++ const size_t pos = from.find("/");
++ if (pos != std::string::npos)
++ from.replace(pos, from.size() - pos, "");
+ }
+ {
+- FtRosterItem *item = ft_roster_lookup (from);
++ FtRosterItem *item = ft_roster_lookup (from.c_str());
+ char *nickname;
+
+ if (!item)
+@@ -166,17 +169,17 @@ ft_msg_msg_handler (LmMessageHandler *ha
+
+ scm_run_hook (ex_message_receive_hook,
+ scm_list_n (ts ? scm_from_locale_string (ts) : scm_from_locale_string (""),
+- scm_from_locale_string (from),
++ scm_from_locale_string (from.c_str()),
+ nickname ? scm_from_locale_string (nickname) : scm_from_locale_string (""),
+ scm_from_locale_string (msg_str),
+ SCM_UNDEFINED));
+ }
+ if (ts) g_free (ts);
+
+- if (get_hook_return () == 1)
++ if (get_hook_return () == 1)
+ return LM_HANDLER_RESULT_REMOVE_MESSAGE;
+
+- PRINTF ("%s: %s", from, msg_str);
++ PRINTF ("%s: %s", from.c_str(), msg_str);
+ } else {
+ /* This logic should be looked into : FIXME */
+ ft_send_file_message_data (msg);
diff --git a/community/freetalk/freetalk.install b/community/freetalk/freetalk.install
new file mode 100644
index 000000000..480dbf2be
--- /dev/null
+++ b/community/freetalk/freetalk.install
@@ -0,0 +1,19 @@
+info_dir=/usr/share/info
+info_files=(freetalk)
+
+post_install() {
+ for f in ${info_files[@]}; do
+ install-info ${info_dir}/$f.info ${info_dir}/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for f in ${info_files[@]}; do
+ install-info --delete ${info_dir}/$f.info ${info_dir}/dir 2> /dev/null
+ done
+}
+