diff options
Diffstat (limited to 'community/freetalk')
-rw-r--r-- | community/freetalk/ChangeLog | 3 | ||||
-rw-r--r-- | community/freetalk/PKGBUILD | 36 | ||||
-rw-r--r-- | community/freetalk/freetalk-3.2-glibc210.patch | 68 | ||||
-rw-r--r-- | community/freetalk/freetalk.install | 19 |
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 +} + |