## 38_hurd.patch by ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: Fix FTBFS on Hurd because of MAXPATHLEN Index: nss/nss/cmd/shlibsign/shlibsign.c =================================================================== --- nss.orig/nss/cmd/shlibsign/shlibsign.c +++ nss/nss/cmd/shlibsign/shlibsign.c @@ -1260,7 +1260,6 @@ main(int argc, char **argv) #ifdef USES_LINKS int ret; struct stat stat_buf; - char link_buf[MAXPATHLEN + 1]; char *link_file = NULL; #endif @@ -1511,10 +1510,22 @@ main(int argc, char **argv) } if (S_ISLNK(stat_buf.st_mode)) { char *dirpath, *dirend; - ret = readlink(input_file, link_buf, sizeof(link_buf) - 1); - if (ret < 0) { - perror(input_file); - goto cleanup; + char *link_buf = NULL; + size_t size = 64; + while (1) { + link_buf = realloc(link_buf, size); + if (!link_buf) { + perror(input_file); + goto cleanup; + } + ret = readlink(input_file, link_buf, size - 1); + if (ret < 0) { + perror(input_file); + goto cleanup; + } + if (ret < size - 1) + break; + size *= 2; } link_buf[ret] = 0; link_file = mkoutput(input_file); Index: nss/nss/lib/freebl/unix_rand.c =================================================================== --- nss.orig/nss/lib/freebl/unix_rand.c +++ nss/nss/lib/freebl/unix_rand.c @@ -756,6 +756,10 @@ RNG_FileForRNG(const char *fileName) #define _POSIX_PTHREAD_SEMANTICS #include +#ifndef PATH_MAX +#define PATH_MAX 1024 +#endif + PRBool ReadFileOK(char *dir, char *file) {