mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-29 07:42:23 -05:00
561840b4aa
* gnu/packages/patches/acl-hurd-path-max.patch: New file. * gnu-system.am (dist_patch_DATA): Add it.
80 lines
1.6 KiB
Diff
80 lines
1.6 KiB
Diff
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;
|
|
}
|
|
|