diff options
-rw-r--r-- | gnu-system.am | 1 | ||||
-rw-r--r-- | gnu/packages/acl.scm | 4 | ||||
-rw-r--r-- | gnu/packages/patches/acl-hurd-path-max.patch | 80 |
3 files changed, 84 insertions, 1 deletions
diff --git a/gnu-system.am b/gnu-system.am index ab4308139d..6d0cb263c5 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -383,6 +383,7 @@ dist_patch_DATA = \ gnu/packages/patches/abiword-pass-no-undefined-to-linker.patch \ gnu/packages/patches/abiword-use-proper-png-api.patch \ gnu/packages/patches/abiword-wmf-version-lookup-fix.patch \ + gnu/packages/patches/acl-hurd-path-max.patch \ gnu/packages/patches/aegis-constness-error.patch \ gnu/packages/patches/aegis-perl-tempdir1.patch \ gnu/packages/patches/aegis-perl-tempdir2.patch \ diff --git a/gnu/packages/acl.scm b/gnu/packages/acl.scm index 49a2c3c2ab..784186b670 100644 --- a/gnu/packages/acl.scm +++ b/gnu/packages/acl.scm @@ -26,6 +26,7 @@ #:use-module (gnu packages perl) #:use-module (guix packages) #:use-module (guix download) + #:use-module (gnu packages) #:use-module (guix build-system gnu)) (define-public acl @@ -39,7 +40,8 @@ version ".src.tar.gz")) (sha256 (base32 - "08qd9s3wfhv0ajswsylnfwr5h0d7j9d4rgip855nrh400nxp940p")))) + "08qd9s3wfhv0ajswsylnfwr5h0d7j9d4rgip855nrh400nxp940p")) + (patches (list (search-patch "acl-hurd-path-max.patch"))))) (build-system gnu-build-system) (arguments `(#:tests? #f ; FIXME: Investigate test suite failures 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; + } + |