summary refs log tree commit diff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r--gnu/packages/patches/acl-hurd-path-max.patch80
1 files changed, 80 insertions, 0 deletions
diff --git a/gnu/packages/patches/acl-hurd-path-max.patch b/gnu/packages/patches/acl-hurd-path-max.patch
new file mode 100644
index 0000000000..89cb3a38d7
--- /dev/null
+++ b/gnu/packages/patches/acl-hurd-path-max.patch
@@ -0,0 +1,80 @@
+http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=636512
+
+From: Svante Signell <srs@kth.se>
+Subject: acl: Fix FTBFS on hurd-i386
+Date: Wed, 03 Aug 2011 19:36:27 +0200
+
+Currently acl does not compile on hurd-i386. The problem is a PATH_MAX
+definition which is not supported on GNU/Hurd.
+
+Index: acl-2.2.52/setfacl/parse.c
+===================================================================
+--- acl-2.2.52/setfacl/parse.c
++++ acl-2.2.52/setfacl/parse.c
+@@ -419,7 +419,13 @@ read_acl_comments(
+ 	  bytes for "# file: ". Not a good solution but for now it is the
+ 	  best I can do without too much impact on the code. [tw]
+ 	*/
++
++#ifdef __GNU__
++	char *linebuf;
++	size_t dummy = 0;
++#else
+ 	char linebuf[(4*PATH_MAX)+9];
++#endif
+ 	char *cp;
+ 	char *p;
+ 	int comments_read = 0;
+@@ -449,9 +455,13 @@ read_acl_comments(
+ 		if (line)
+ 			(*line)++;
+ 
++#ifdef __GNU__
++		if (getline(&linebuf, &dummy, file) == -1)
++			break;
++#else
+ 		if (fgets(linebuf, sizeof(linebuf), file) == NULL)
+ 			break;
+-		
++#endif		
+ 		comments_read = 1;
+ 
+ 		p = strrchr(linebuf, '\0');
+@@ -473,7 +483,12 @@ read_acl_comments(
+ 					goto fail;
+ 				*path_p = (char*)malloc(strlen(cp)+1);
+ 				if (!*path_p)
++				  {
++#ifdef __GNU__
++				    free (linebuf);
++#endif
+ 					return -1;
++				  }
+ 				strcpy(*path_p, cp);
+ 			}
+ 		} else if (strncmp(cp, "owner:", 6) == 0) {
+@@ -522,13 +537,24 @@ read_acl_comments(
+ 		}
+ 	}
+ 	if (ferror(file))
++	  {
++#ifdef __GNU__
++	    free (linebuf);
++#endif
+ 		return -1;
++	  }
++#ifdef __GNU__
++	free (linebuf);
++#endif
+ 	return comments_read;
+ fail:
+ 	if (path_p && *path_p) {
+ 		free(*path_p);
+ 		*path_p = NULL;
+ 	}
++#ifdef __GNU__
++	free (linebuf);
++#endif
+ 	return -EINVAL;
+ }
+