summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGustavo Zacarias <gustavoz@gentoo.org>2005-11-22 17:25:00 +0000
committerGustavo Zacarias <gustavoz@gentoo.org>2005-11-22 17:25:00 +0000
commitc7eb341ba8fbe0d02d0107f875f29435456922d1 (patch)
treed6704d3c38a282b2e0a1f885a47233420cbc06cb /net-irc/xchat
parentMarked stable on amd64 and x86 wrt bug #109084. (diff)
downloadhistorical-c7eb341ba8fbe0d02d0107f875f29435456922d1.tar.gz
historical-c7eb341ba8fbe0d02d0107f875f29435456922d1.tar.bz2
historical-c7eb341ba8fbe0d02d0107f875f29435456922d1.zip
Revbump with patch for bug #109744
Package-Manager: portage-2.0.53_rc7
Diffstat (limited to 'net-irc/xchat')
-rw-r--r--net-irc/xchat/ChangeLog8
-rw-r--r--net-irc/xchat/Manifest25
-rw-r--r--net-irc/xchat/files/44_fix_alignment_endianess.dpatch319
-rw-r--r--net-irc/xchat/files/digest-xchat-2.4.5-r11
-rw-r--r--net-irc/xchat/xchat-2.4.5-r1.ebuild87
5 files changed, 428 insertions, 12 deletions
diff --git a/net-irc/xchat/ChangeLog b/net-irc/xchat/ChangeLog
index e93359141dcb..1a1af6b84c57 100644
--- a/net-irc/xchat/ChangeLog
+++ b/net-irc/xchat/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for net-irc/xchat
# Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-irc/xchat/ChangeLog,v 1.182 2005/11/16 18:18:42 gustavoz Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-irc/xchat/ChangeLog,v 1.183 2005/11/22 17:25:00 gustavoz Exp $
+
+*xchat-2.4.5-r1 (22 Nov 2005)
+
+ 22 Nov 2005; Gustavo Zacarias <gustavoz@gentoo.org>
+ +files/44_fix_alignment_endianess.dpatch, +xchat-2.4.5-r1.ebuild:
+ Revbump with patch for bug #109744
16 Nov 2005; Gustavo Zacarias <gustavoz@gentoo.org> xchat-2.4.5.ebuild:
-sparc wrt #109744
diff --git a/net-irc/xchat/Manifest b/net-irc/xchat/Manifest
index 95910c75cc78..82e7c1ce7cfc 100644
--- a/net-irc/xchat/Manifest
+++ b/net-irc/xchat/Manifest
@@ -1,25 +1,28 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
-MD5 f70fee92ab2e258ea7be208d0ddfa4b6 xchat-2.4.3.ebuild 2266
-MD5 35173b2dddf35bc467c4aa72d784a741 xchat-2.4.5.ebuild 2301
-MD5 4634f562e01b219d3bcfb0ae6acb8397 xchat-1.8.11-r1.ebuild 2264
-MD5 9f17701ead780ffcd7c34dc23b28e13b ChangeLog 27172
-MD5 fb5772136a872c08434566d4f0bcdc7f metadata.xml 179
-MD5 95d53db19acfbc8d85a8ac0c8d695133 xchat-2.6.0.ebuild 2261
+MD5 1b1f9b3d26d01239a54afc3c55060044 ChangeLog 27363
+MD5 6354e2efb6f0d1323ad8849be7303575 files/44_fix_alignment_endianess.dpatch 8676
+MD5 e2b99b2d2dfc54ba96e560c0ed8392df files/digest-xchat-1.8.11-r1 65
MD5 21bc6820aa6d0c8722509a74c7fccb3d files/digest-xchat-2.4.3 134
MD5 c5d53c24b3ebfec1f168930213f55fea files/digest-xchat-2.4.5 65
+MD5 c5d53c24b3ebfec1f168930213f55fea files/digest-xchat-2.4.5-r1 65
MD5 02c31b272038e119a3ce2d4a79897f72 files/digest-xchat-2.6.0 64
MD5 a8f607d224408d4a27777d2ffce8beac files/xc1811fixststint.diff 422
+MD5 31de685eff3d16d9466416434c9fd6c3 files/xc208-fixsocks5.diff 688
MD5 17073299c8c2c65062ad2e77cd03b841 files/xc245-fix-te-notify.diff 403
MD5 6bfc06df4986a7fb482525e1dfd8fa21 files/xc260-fix-fetext.diff 1123
-MD5 31de685eff3d16d9466416434c9fd6c3 files/xc208-fixsocks5.diff 688
MD5 ee98eba7f1061680d8d0582a10d72cb7 files/xchat-dccserver-0.5.patch 11776
-MD5 e2b99b2d2dfc54ba96e560c0ed8392df files/digest-xchat-1.8.11-r1 65
+MD5 fb5772136a872c08434566d4f0bcdc7f metadata.xml 179
+MD5 4634f562e01b219d3bcfb0ae6acb8397 xchat-1.8.11-r1.ebuild 2264
+MD5 f70fee92ab2e258ea7be208d0ddfa4b6 xchat-2.4.3.ebuild 2266
+MD5 c10195648896ac34737461914cc96a6e xchat-2.4.5-r1.ebuild 2366
+MD5 35173b2dddf35bc467c4aa72d784a741 xchat-2.4.5.ebuild 2301
+MD5 95d53db19acfbc8d85a8ac0c8d695133 xchat-2.6.0.ebuild 2261
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
-iD8DBQFDe3gTKRy60XGEcJIRAvc1AJ0SXqgZTn+R6wB2DGbYdY6eyFmm+gCdF7cH
-jMwXRd+P2nP9CeiCEgT4biU=
-=E/T3
+iD8DBQFDg1SfKRy60XGEcJIRAlOQAJ9T5W+jf96hjVLQj9diTNjdPEYRlQCggcsm
+UfgAoXvWEuzqYiXv0L+r7P4=
+=1W7H
-----END PGP SIGNATURE-----
diff --git a/net-irc/xchat/files/44_fix_alignment_endianess.dpatch b/net-irc/xchat/files/44_fix_alignment_endianess.dpatch
new file mode 100644
index 000000000000..4e2b3779f617
--- /dev/null
+++ b/net-irc/xchat/files/44_fix_alignment_endianess.dpatch
@@ -0,0 +1,319 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 44_fix_alignment_endianess.dpatch by evo
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Fixed alignment and Endianess issues, doesn't affect x86.
+
+@DPATCH@
+diff -Naur xchat-2.4.5uno/src/common/outbound.c xchat-2.4.5/src/common/outbound.c
+--- xchat-2.4.5uno/src/common/outbound.c 2005-10-01 12:32:53.000000000 +0200
++++ xchat-2.4.5/src/common/outbound.c 2005-09-30 21:52:42.000000000 +0200
+@@ -1498,7 +1498,7 @@
+ k = 0;
+ } else
+ {
+- if (isdigit (buf[i]) && k < (sizeof (numb) - 1))
++ if (isdigit ((unsigned char) buf[i]) && k < (sizeof (numb) - 1))
+ {
+ numb[k] = buf[i];
+ k++;
+@@ -1899,7 +1899,7 @@
+ p = name;
+ while (*p)
+ {
+- hl->buf[len] = toupper (*p);
++ hl->buf[len] = toupper ((unsigned char) *p);
+ len++;
+ p++;
+ }
+@@ -2136,7 +2136,7 @@
+
+ user = find_name (sess, nick);
+
+- if (isdigit (reason[0]) && reason[1] == 0)
++ if (isdigit ((unsigned char) reason[0]) && reason[1] == 0)
+ {
+ ban (sess, tbuf, nick, reason, (user && user->op));
+ reason[0] = 0;
+@@ -3287,9 +3287,9 @@
+ {
+ if (src[0] == '%' || src[0] == '&')
+ {
+- if (isdigit (src[1]))
++ if (isdigit ((unsigned char) src[1]))
+ {
+- if (isdigit (src[2]) && isdigit (src[3]))
++ if (isdigit ((unsigned char) src[2]) && isdigit ((unsigned char) src[3]))
+ {
+ buf[0] = src[1];
+ buf[1] = src[2];
+@@ -3442,8 +3442,8 @@
+ occur++;
+ if ( do_ascii &&
+ j + 3 < len &&
+- (isdigit (cmd[j + 1]) && isdigit (cmd[j + 2]) &&
+- isdigit (cmd[j + 3])))
++ (isdigit ((unsigned char) cmd[j + 1]) && isdigit ((unsigned char) cmd[j + 2]) &&
++ isdigit ((unsigned char) cmd[j + 3])))
+ {
+ tbuf[0] = cmd[j + 1];
+ tbuf[1] = cmd[j + 2];
+diff -Naur xchat-2.4.5uno/src/common/proto-irc.c xchat-2.4.5/src/common/proto-irc.c
+--- xchat-2.4.5uno/src/common/proto-irc.c 2005-10-01 12:32:53.000000000 +0200
++++ xchat-2.4.5/src/common/proto-irc.c 2005-09-30 22:31:11.000000000 +0200
+@@ -761,8 +761,12 @@
+
+ if (len == 4)
+ {
++ guint32 t;
++
++ t = WORDL((guint8)type[0], (guint8)type[1], (guint8)type[2],
++ (guint8)type[3]);
+ /* this should compile to a bunch of: CMP.L, JE ... nice & fast */
+- switch (*((guint32 *)type))
++ switch (t)
+ {
+ case WORDL('J','O','I','N'):
+ {
+@@ -838,8 +842,12 @@
+
+ else if (len >= 5)
+ {
++ guint32 t;
++
++ t = WORDL((guint8)type[0], (guint8)type[1], (guint8)type[2],
++ (guint8)type[3]);
+ /* this should compile to a bunch of: CMP.L, JE ... nice & fast */
+- switch (*((guint32 *)type))
++ switch (t)
+ {
+ case WORDL('I','N','V','I'):
+ if (ignore_check (word[1], IG_INVI))
+@@ -1022,7 +1030,7 @@
+ }
+
+ /* see if the second word is a numeric */
+- if (isdigit (word[2][0]))
++ if (isdigit ((unsigned char) word[2][0]))
+ {
+ text = word_eol[4];
+ if (*text == ':')
+diff -Naur xchat-2.4.5uno/src/common/url.c xchat-2.4.5/src/common/url.c
+--- xchat-2.4.5uno/src/common/url.c 2005-10-01 12:32:53.000000000 +0200
++++ xchat-2.4.5/src/common/url.c 2005-10-01 12:26:33.000000000 +0200
+@@ -124,65 +124,60 @@
+ int
+ url_check_word (char *word, int len)
+ {
+- char *at, *dot;
++#define D(x) (x), ((sizeof (x)) - 1)
++ static const struct {
++ const char *s;
++ int len;
++ }
++ prefix[] = {
++ { D("irc.") },
++ { D("ftp.") },
++ { D("www.") },
++ { D("irc://") },
++ { D("ftp://") },
++ { D("http://") },
++ { D("https://") },
++ { D("file://") },
++ { D("rtsp://") },
++ { D("gopher://") },
++ },
++ suffix[] = {
++ { D(".org") },
++ { D(".net") },
++ { D(".com") },
++ { D(".edu") },
++ { D(".html") },
++ { D(".info") },
++ { D(".name") },
++ };
++#undef D
++ const char *at, *dot;
+ int i, dots;
+- char temp[4];
+- guint32 pre;
+
+- if ((word[0] == '@' || word[0] == '+' || word[0] == '^' || word[0] == '%' || word[0] == '*' ) && word[1] == '#')
++ if (len > 1 && word[1] == '#' && strchr("@+^%*#", word[0]))
+ return WORD_CHANNEL;
+
+ if ((word[0] == '#' || word[0] == '&') && word[1] != '#' && word[1] != 0)
+ return WORD_CHANNEL;
+
+- if (len > 4 && word[4] != '.')
++ for (i = 0; i < G_N_ELEMENTS(prefix); i++)
+ {
+- temp[0] = tolower (word[0]);
+- temp[1] = tolower (word[1]);
+- temp[2] = tolower (word[2]);
+- temp[3] = tolower (word[3]);
+-
+- pre = *((guint32 *)temp);
+-
+- if (CMPL (pre, 'i','r','c','.'))
+- return WORD_URL;
+- if (CMPL (pre, 'f','t','p','.'))
+- return WORD_URL;
+- if (CMPL (pre, 'w','w','w','.'))
+- return WORD_URL;
++ int l;
+
+- if (len > 7 && word[4] == '/' && word[5] == '/')
++ l = prefix[i].len;
++ if (len > l)
+ {
+- if (CMPL (pre, 'i','r','c',':')) /* irc:// */
+- return WORD_URL;
+- if (CMPL (pre, 'f','t','p',':')) /* ftp:// */
+- return WORD_URL;
+- }
++ int j;
+
+- /* check for ABCD://... */
+- if (len > 8 && word[4] == ':' && word[5] == '/' && word[6] == '/')
+- {
+- if (CMPL (pre, 'h','t','t','p')) /* http:// */
+- return WORD_URL;
+- if (CMPL (pre, 'f','i','l','e')) /* file:// */
+- return WORD_URL;
+- if (CMPL (pre, 'r','t','s','p')) /* rtsp:// */
+- return WORD_URL;
+- }
+-
+- /* check for https:// */
+- if (len > 9 && word[5] == ':' && word[6] == '/' && word[7] == '/')
+- {
+- if (CMPL (pre, 'h','t','t','p') && (word[4] == 's' || word[4] == 'S'))
+- return WORD_URL;
+- }
+-
+- /* check for gopher:// */
+- if (len > 10 && word[6] == ':' && word[7] == '/' && word[8] == '/')
+- {
+- if (CMPL (pre, 'g','o','p','h'))
+- if (CMPW (word + 4, 'e','r') || CMPW (word + 4, 'E','R'))
+- return WORD_URL;
++ /* This is pretty much strncasecmp(). */
++ for (j = 0; j < l; j++)
++ {
++ unsigned char c = word[j];
++ if (tolower(c) != prefix[i].s[j])
++ break;
++ }
++ if (j == l)
++ return WORD_URL;
+ }
+ }
+
+@@ -205,7 +200,7 @@
+ {
+ if (word[i] == '.' && i > 1)
+ dots++; /* allow 127.0.0.1:80 */
+- else if (!isdigit (word[i]) && word[i] != ':')
++ else if (!isdigit ((unsigned char) word[i]) && word[i] != ':')
+ {
+ dots = 0;
+ break;
+@@ -216,35 +211,29 @@
+
+ if (len > 5)
+ {
+- /* create a lowercase version of the last 4 letters */
+- temp[0] = tolower (word[len - 4]);
+- temp[1] = tolower (word[len - 3]);
+- temp[2] = tolower (word[len - 2]);
+- temp[3] = tolower (word[len - 1]);
++ for (i = 0; i < G_N_ELEMENTS(suffix); i++)
++ {
++ int l;
+
+- pre = *((guint32 *)temp);
++ l = suffix[i].len;
++ if (len > l)
++ {
++ const unsigned char *p = &word[len - l];
++ int j;
+
+- if (word[len - 5] == '.')
+- {
+- if (CMPL (pre, 'h','t','m','l'))
+- return WORD_HOST;
+- if (CMPL (pre, 'i','n','f','o'))
+- return WORD_HOST;
+- if (CMPL (pre, 'n','a','m','e'))
+- return WORD_HOST;
++ /* This is pretty much strncasecmp(). */
++ for (j = 0; j < l; j++)
++ {
++ if (tolower(p[j]) != suffix[i].s[j])
++ break;
++ }
++ if (j == l)
++ return WORD_HOST;
++ }
+ }
+
+- if (CMPL (pre, '.','o','r','g'))
+- return WORD_HOST;
+- if (CMPL (pre, '.','n','e','t'))
+- return WORD_HOST;
+- if (CMPL (pre, '.','c','o','m'))
+- return WORD_HOST;
+- if (CMPL (pre, '.','e','d','u'))
+- return WORD_HOST;
+-
+ if (word[len - 3] == '.' &&
+- isalpha (word[len - 2]) && isalpha (word[len - 1]))
++ isalpha ((unsigned char) word[len - 2]) && isalpha ((unsigned char) word[len - 1]))
+ return WORD_HOST;
+ }
+
+diff -Naur xchat-2.4.5uno/src/common/util.c xchat-2.4.5/src/common/util.c
+--- xchat-2.4.5uno/src/common/util.c 2005-10-01 12:32:53.000000000 +0200
++++ xchat-2.4.5/src/common/util.c 2005-10-01 11:49:08.000000000 +0200
+@@ -435,8 +435,8 @@
+
+ while (len > 0)
+ {
+- if ((col && isdigit (*text) && nc < 2) ||
+- (col && *text == ',' && isdigit (*(text+1)) && nc < 3))
++ if ((col && isdigit ((unsigned char) *text) && nc < 2) ||
++ (col && *text == ',' && isdigit ((unsigned char) *(text+1)) && nc < 3))
+ {
+ nc++;
+ if (*text == ',')
+@@ -1084,7 +1084,7 @@
+ char *p;
+ domain_t *dom;
+
+- if (!hostname || !*hostname || isdigit (hostname[strlen (hostname) - 1]))
++ if (!hostname || !*hostname || isdigit ((unsigned char) hostname[strlen (hostname) - 1]))
+ return _("Unknown");
+ if ((p = strrchr (hostname, '.')))
+ p++;
+@@ -1156,7 +1156,7 @@
+ if (*src != quote) *buf++ = '\\';
+ }
+ *buf++ = *src;
+- } else if (isspace(*src)) {
++ } else if (isspace((unsigned char) *src)) {
+ if (*argv[argc]) {
+ buf++, argc++;
+ if (argc == argvAlloced) {
+diff -Naur xchat-2.4.5uno/src/fe-gtk/maingui.c xchat-2.4.5/src/fe-gtk/maingui.c
+--- xchat-2.4.5uno/src/fe-gtk/maingui.c 2005-10-01 12:32:53.000000000 +0200
++++ xchat-2.4.5/src/fe-gtk/maingui.c 2005-10-01 11:53:56.000000000 +0200
+@@ -1608,7 +1608,7 @@
+ return;
+
+ sess = current_sess;
+- mode = tolower (flag[0]);
++ mode = tolower ((unsigned char) flag[0]);
+
+ switch (mode)
+ {
diff --git a/net-irc/xchat/files/digest-xchat-2.4.5-r1 b/net-irc/xchat/files/digest-xchat-2.4.5-r1
new file mode 100644
index 000000000000..f968fefcc529
--- /dev/null
+++ b/net-irc/xchat/files/digest-xchat-2.4.5-r1
@@ -0,0 +1 @@
+MD5 9107a92693e6c62ff2008030e698b92b xchat-2.4.5.tar.bz2 1324626
diff --git a/net-irc/xchat/xchat-2.4.5-r1.ebuild b/net-irc/xchat/xchat-2.4.5-r1.ebuild
new file mode 100644
index 000000000000..a7f4b5107494
--- /dev/null
+++ b/net-irc/xchat/xchat-2.4.5-r1.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-irc/xchat/xchat-2.4.5-r1.ebuild,v 1.1 2005/11/22 17:25:00 gustavoz Exp $
+
+inherit flag-o-matic eutils versionator
+
+DESCRIPTION="Graphical IRC client"
+SRC_URI="http://www.xchat.org/files/source/$(get_version_component_range 1-2)/${P}.tar.bz2
+ mirror://sourceforge/${PN}/${P}.tar.bz2"
+HOMEPAGE="http://www.xchat.org/"
+
+LICENSE="GPL-2"
+SLOT="2"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+IUSE="perl tcltk python ssl mmx ipv6 nls xchattext xchatnogtk xchatdccserver"
+
+# Added for to fix a sparc seg fault issue by Jason Wever <weeve@gentoo.org>
+if [ ${ARCH} = "sparc" ]
+then
+ replace-flags "-O[3-9]" "-O2"
+fi
+
+RDEPEND=">=dev-libs/glib-2.0.3
+ !xchatnogtk? ( >=x11-libs/gtk+-2.0.3 )
+ ssl? ( >=dev-libs/openssl-0.9.6d )
+ perl? ( >=dev-lang/perl-5.6.1 )
+ python? ( >=dev-lang/python-2.2 )
+ tcltk? ( dev-lang/tcl )
+ !net-irc/xchat-gnome"
+
+DEPEND="${RDEPEND}
+ >=dev-util/pkgconfig-0.7
+ >=sys-apps/sed-4
+ nls? ( sys-devel/gettext )"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ epatch "${FILESDIR}"/xc245-fix-te-notify.diff
+ epatch "${FILESDIR}"/44_fix_alignment_endianess.dpatch
+
+ use xchatdccserver && epatch "${FILESDIR}"/xchat-dccserver-0.5.patch
+
+ # use libdir/xchat/plugins as the plugin directory
+ if [ $(get_libdir) != "lib" ] ; then
+ sed -i -e 's:${prefix}/lib/xchat:${libdir}/xchat:' \
+ "${S}"/configure{,.in} || die
+ fi
+}
+
+src_compile() {
+ # xchat's configure script uses sys.path to find library path
+ # instead of python-config (#25943)
+ unset PYTHONPATH
+
+ econf \
+ $(use_enable ssl openssl) \
+ $(use_enable perl) \
+ $(use_enable python) \
+ $(use_enable tcltk tcl) \
+ $(use_enable mmx) \
+ $(use_enable ipv6) \
+ $(use_enable nls) \
+ $(use_enable xchattext textfe) \
+ $(use_enable !xchatnogtk gtkfe) \
+ --program-suffix=-2 \
+ || die "Configure failed"
+
+ emake || die "Compile failed"
+}
+
+src_install() {
+ # some magic to create a menu entry for xchat 2
+ sed -i \
+ -e "s:^Exec=xchat$:Exec=xchat-2:" \
+ -e "s:Name=XChat IRC:Name=XChat 2 IRC:" \
+ xchat.desktop
+
+ make DESTDIR="${D}" install || die "Install failed"
+
+ # install plugin development header
+ insinto /usr/include/xchat
+ doins src/common/xchat-plugin.h || die "doins failed"
+
+ dodoc ChangeLog README* || die "dodoc failed"
+}