* 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;
 | |
|  }
 | |
|  
 |