diff options
Diffstat (limited to 'gnu/packages/patches/acl-hurd-path-max.patch')
-rw-r--r-- | gnu/packages/patches/acl-hurd-path-max.patch | 80 |
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; + } + |