Subject: pkg/35548: lang/inform broken except on linux
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <dholland@eecs.harvard.edu>
List: pkgsrc-bugs
Date: 02/04/2007 23:30:01
>Number:         35548
>Category:       pkg
>Synopsis:       lang/inform broken except on linux
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Feb 04 23:30:00 +0000 2007
>Originator:     David A. Holland <dholland@eecs.harvard.edu>
>Release:        NetBSD 4.99.9 (-20070130), pkgsrc 20070130
>Organization:
>Environment:
System: NetBSD tanaqui 4.99.9 NetBSD 4.99.9 (TANAQUI) #8: Tue Jan 30 17:29:55 EST 2007 dholland@tanaqui:/usr/src/sys/arch/i386/compile/TANAQUI i386
Architecture: i386
Machine: i386
>Description:

lang/inform can't compile anything because it's trying to wedge a
search path that doesn't fit into a 128-byte string.

% inform -x house01.inf
Inform 6.31 for Unix (10th Feb 2006)
line 94: Fatal error: Couldn't open source file "/usr/pkg/share/inform/6.31/modParser.h"
%

The path /usr/pkg/share/inform/6.31/modules, which holds Parser.h, has
been truncated.

(house01.inf is from the inform distribution, but anything nontrivial
will exhibit the same behavior)

>How-To-Repeat:
as above.
>Fix:

Add this patch. It sets the path buffer size to 1024 for the UNIX,
UNIX64, and OSX configurations. (This is already set for the LINUX
configuration, which is doubtless how it was able to end up broken on
NetBSD. Don't ask me why there's a special configuration for Linux.)

--- src/header.h.dist	2007-02-04 18:15:15.000000000 -0500
+++ src/header.h	2007-02-04 18:17:15.000000000 -0500
@@ -342,6 +342,7 @@
 #define FN_SEP '/'
 /* 5 */
 #define Temporary_Directory "/tmp"
+#define PATHLEN 1024
 #define INCLUDE_TASK_ID
 #define _POSIX_C_SOURCE 199506L
 #define _XOPEN_SOURCE 500
@@ -403,6 +404,7 @@
 #define FN_SEP '/'
 /* 5 */
 #define Temporary_Directory "/tmp"
+#define PATHLEN 1024
 #define INCLUDE_TASK_ID
 #ifdef MAIN_INFORM_FILE
 static int32 unique_task_id(void)
@@ -424,6 +426,7 @@
 #define FN_SEP '/'
 /* 5 */
 #define Temporary_Directory "/tmp"
+#define PATHLEN 1024
 #define INCLUDE_TASK_ID
 #ifdef MAIN_INFORM_FILE
 static int32 unique_task_id(void)