Hi,

the build failure results from changed string functions of the newer eglibc 
(which to my knowledge are now iso conformant for c++).

Please find my intended NMU attached.

Cheers, and thanks for maintaining pearpc, 
    Stefan.
diff -u pearpc-0.4.0/debian/changelog pearpc-0.4.0/debian/changelog
--- pearpc-0.4.0/debian/changelog
+++ pearpc-0.4.0/debian/changelog
@@ -1,3 +1,11 @@
+pearpc (0.4.0-3.2) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Added debian/patches/04-eglibc-build.errors.dpatch to fix a FTBFS
+    with the newer/stricter eglibc (Closes: #560441, LP: #495772).
+
+ -- Stefan Potyra <sistp...@ubuntu.com>  Sat, 09 Jan 2010 21:23:14 +0100
+
 pearpc (0.4.0-3.1) unstable; urgency=low
 
   * Non-maintainer upload.
diff -u pearpc-0.4.0/debian/patches/00list pearpc-0.4.0/debian/patches/00list
--- pearpc-0.4.0/debian/patches/00list
+++ pearpc-0.4.0/debian/patches/00list
@@ -1,0 +2 @@
+04-eglibc-build.errors.dpatch
only in patch2:
unchanged:
--- pearpc-0.4.0.orig/debian/patches/04-eglibc-build.errors.dpatch
+++ pearpc-0.4.0/debian/patches/04-eglibc-build.errors.dpatch
@@ -0,0 +1,65 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 04-eglibc-build.errors.dpatch by Stefan Potyra <sistp...@ubuntu.com>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: fix build failures with stricter eglibc string functions.
+
+...@dpatch@
+diff -urNad pearpc-0.4.0~/src/system/file.cc pearpc-0.4.0/src/system/file.cc
+--- pearpc-0.4.0~/src/system/file.cc	2004-08-04 16:22:42.000000000 +0200
++++ pearpc-0.4.0/src/system/file.cc	2010-01-09 21:21:44.000000000 +0100
+@@ -127,9 +127,9 @@
+ int sys_basename(char *result, const char *filename)
+ {
+ // FIXME: use is_path_delim
+-	char *slash1 = strrchr(filename, '/');
+-	char *slash2 = strrchr(filename, '\\');
+-	char *slash=(slash1>slash2) ? slash1 : slash2;
++	const char *slash1 = strrchr(filename, '/');
++	const char *slash2 = strrchr(filename, '\\');
++	const char *slash=(slash1>slash2) ? slash1 : slash2;
+ 	if (slash) {
+ 		int l=strlen(filename);
+ 		strncpy(result, slash+1, l-(slash-filename)-1);
+@@ -143,9 +143,9 @@
+ int sys_dirname(char *result, const char *filename)
+ {
+ // FIXME: use is_path_delim
+-	char *slash1 = strrchr(filename, '/');
+-	char *slash2 = strrchr(filename, '\\');
+-	char *slash = (slash1>slash2) ? slash1 : slash2;
++	const char *slash1 = strrchr(filename, '/');
++	const char *slash2 = strrchr(filename, '\\');
++	const char *slash = (slash1>slash2) ? slash1 : slash2;
+ 	if (slash) {
+ 		strncpy(result, filename, slash-filename);
+ 		result[slash-filename] = 0;
+@@ -264,14 +264,14 @@
+ 	return (k == 0) ? 0 : EINVAL;
+ }
+ 
+-char *sys_filename_suffix(const char *fn)
++const char *sys_filename_suffix(const char *fn)
+ {
+ 	const char *s = NULL;
+ 	while (fn && *fn) {
+ 		if (sys_is_path_delim(*fn)) s = fn+1;
+ 		fn++;
+ 	}
+-	char *p = s ? strrchr(s, '.') : NULL;
++	const char *p = s ? strrchr(s, '.') : NULL;
+ 	return p ? p+1 : NULL;
+ }
+ 
+diff -urNad pearpc-0.4.0~/src/system/file.h pearpc-0.4.0/src/system/file.h
+--- pearpc-0.4.0~/src/system/file.h	2004-08-04 16:22:42.000000000 +0200
++++ pearpc-0.4.0/src/system/file.h	2010-01-09 21:21:44.000000000 +0100
+@@ -138,7 +138,7 @@
+ int		sys_dirname(char *result, const char *filename);
+ int		sys_relname(char *result, const char *filename, const char *cwd);
+ int		sys_common_canonicalize(char *result, const char *in_name, const char *cwd, is_path_delim delim);
+-char *		sys_filename_suffix(const char *fn);
++const char *	sys_filename_suffix(const char *fn);
+ int		sys_tmpfile_fd();
+ 
+ /* system-dependent (implementation in $MYSYSTEM/ *.cc) */

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to