Package: jabberd14
Version: 1.6.1.1-3
Severity: serious
Tags: patch

Please see attached the failed build log with g++-4.4.
Also, please see attached a quick and dirty patch to solve this.

-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.21.7-2.fc8xen-ec2-v1.0 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages jabberd14 depends on:
ii  adduser                       3.111      add and remove users and groups
ii  libc6                         2.10.2-2   GNU C Library: Shared libraries
ii  libgcc1                       1:4.4.2-4  GCC support library
ii  libidn11                      1.15-2     GNU Libidn library, implementation
ii  libjabberd2                   1.6.1.1-3  Runtime library for the Jabber/XMP
ii  libmysqlclient16              5.1.41-3   MySQL database client library
ii  libpopt0                      1.15-1     lib for parsing cmdline parameters
ii  libpq5                        8.4.1-1    PostgreSQL C client library
ii  libpth20                      2.0.7-14   The GNU Portable Threads
ii  libstdc++6                    4.4.2-4    The GNU Standard C++ Library v3
ii  lsb-base                      3.2-23     Linux Standard Base 3.2 init scrip
ii  openssl                       0.9.8k-7   Secure Socket Layer (SSL) binary a

jabberd14 recommends no packages.

jabberd14 suggests no packages.

-- no debconf information

-- 
Miguel Landaeta, miguel at miguel.cc
secure email with PGP 0x7D8967E9 available at http://keyserver.pgp.com/
"Faith means not wanting to know what is true." -- Nietzsche

Attachment: jabberd14_1.6.1.1-4_i386.build
Description: Binary data

diff --git a/debian/patches/00list b/debian/patches/00list
index eae1970..a868cc9 100644
--- a/debian/patches/00list
+++ b/debian/patches/00list
@@ -3,3 +3,4 @@ fix_gnutls_api_changes
 fix_dpkg_shlibdeps_warning
 fix_installdir_locales
 fix_getaddrinfo_test
+fix_g++-4.4_ftbfs
diff --git a/debian/patches/fix_g++-4.4_ftbfs.dpatch b/debian/patches/fix_g++-4.4_ftbfs.dpatch
new file mode 100755
index 0000000..05f591b
--- /dev/null
+++ b/debian/patches/fix_g++-4.4_ftbfs.dpatch
@@ -0,0 +1,62 @@
+#! /bin/sh -e
+## fix_g++-4.4_ftbfs.dpatch by Miguel Landaeta <mig...@miguel.cc>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: quick and dirty hack to allow jabberd14 compilation under
+## DP: g++-4.4, a more stricter compiler than previous versions.
+
+
+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
+
+if [ $# -ne 1 ]; then
+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+    exit 1
+fi
+case "$1" in
+   -patch) patch $patch_opts -p1 < $0;;
+   -unpatch) patch $patch_opts -Rp1 < $0;;
+   *)
+      echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+      exit 1;;
+esac
+
+exit 0
+...@dpatch@
+diff --git a/jabberd/lib/xmlnode.cc b/jabberd/lib/xmlnode.cc
+index 28ef9fe..d3aa513 100644
+--- a/jabberd/lib/xmlnode.cc
++++ b/jabberd/lib/xmlnode.cc
+@@ -910,8 +910,8 @@ xmlnode_list_item xmlnode_get_tags(xmlnode context_node, const char *path, xht n
+     }
+ 
+     /* separate this step from the next one, and check for a predicate in this step */
+-    start_predicate = strchr(path, '[');
+-    next_step = strchr(path, '/');
++    start_predicate = strchr((char*)path, '[');
++    next_step = strchr((char*)path, '/');
+     if (start_predicate == NULL && next_step == NULL) {
+ 	this_step = pstrdup(p, path);
+     } else if (start_predicate == NULL || start_predicate > next_step && next_step != NULL) {
+@@ -1833,7 +1833,7 @@ xmlnode xmlnode_select_by_lang(xmlnode_list_item nodes, const char* lang) {
+     if (lang != NULL && strchr(lang, '-') != NULL) {
+ 	snprintf(general_lang, sizeof(general_lang), "%s", lang);
+ 	if (strchr(lang, '-') != NULL) {
+-	    strchr(lang, '-')[0] = 0;
++	    strchr((char*)lang, '-')[0] = 0;
+ 	} else {
+ 	    general_lang[0] = 0;
+ 	}
+diff --git a/jabberd/log.cc b/jabberd/log.cc
+index 230c7d0..9a7bd13 100644
+--- a/jabberd/log.cc
++++ b/jabberd/log.cc
+@@ -86,7 +86,7 @@ static inline int _debug_log_zonefilter(char const* zone) {
+     char *pos, c = '\0';
+     if(zone != NULL && debug__zones != NULL)
+     {
+-	pos = strchr(zone,'.');
++	pos = strchr((char *)zone,'.');
+         if(pos != NULL)
+         {
+             c = *pos;

Reply via email to