Subject: pkg/24858: ucblogo doesn't build under Linux and out-of-date
To: None <gnats-bugs@gnats.netbsd.org>
From: None <reed@reedmedia.net>
List: netbsd-bugs
Date: 03/19/2004 22:28:31
>Number:         24858
>Category:       pkg
>Synopsis:       ucblogo doesn't build under Linux and out-of-date
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 20 06:29:00 UTC 2004
>Closed-Date:
>Last-Modified:
>Originator:     
>Release:        Linux something
>Organization:
http://bsd.reedmedia.net/
>Environment:
	
	
>Description:
Newer tarballs are available for lang/ucblogo, like ucblogo-5.1.x
I found one from Debian's server.

Also received:
gcc -g   -I/usr/X11R6/include -Dunix=1  -c parse.c
parse.c:49: error: initializer element is not constant
parse.c:50: error: initializer element is not constant
parse.c:51: error: initializer element is not constant
*** Error code 1

Then after patched (like below) fails due to some curses issues.
I added curses buildlink and USE_BUILDLINK3 but didn't link
anything good enough. So I did PREFER_PKGSRC+= ncurses.
Then it had other issues like:

/scratch/pkgsrc/lang/ucblogo/work.puget/ucblogo-4.6/term.c:100: undefined reference to `tgetstr'
term.o(.text+0x5c):/scratch/pkgsrc/lang/ucblogo/work.puget/ucblogo-4.6/term.c:102: undefined reference to `tputs'
term.o(.text+0xeb): In function `term_init':
/scratch/pkgsrc/lang/ucblogo/work.puget/ucblogo-4.6/term.c:141: undefined reference to `tgetent'
term.o(.text+0xfb):/scratch/pkgsrc/lang/ucblogo/work.puget/ucblogo-4.6/term.c:142: undefined reference to `tgetnum'
...
term.o(.text+0x3fc): In function `lsetcursor':
/scratch/pkgsrc/lang/ucblogo/work.puget/ucblogo-4.6/term.c:246: undefined reference to `tgoto'

The configure script set 
#define HAVE_TERMIO_H 1
But should have set HAVE_TERMCAP_H and/or HAVE_CURSES.

The other problem is that it wants curses.h but that is not buildlinked.
(But all ncurses headers are.)

>How-To-Repeat:
	
>Fix:
Two patches found
http://archives.seul.org/seul/edu/Sep-1999/msg00096.html
http://www.itolab.com/uploads/research/12/ucblogo-linux.patc

Here are my patches (but untested since stopped working on this
due to curses issues):

$NetBSD$

--- parse.c.orig	1998-03-23 17:56:51.000000000 -0800
+++ parse.c
@@ -46,9 +46,9 @@ extern int getch(void);
 #include <disp.h>
 #endif
 
-FILE *readstream = stdin;
-FILE *writestream = stdout;
-FILE *loadstream = stdin;
+FILE *readstream = NULL;
+FILE *writestream = NULL;
+FILE *loadstream = NULL;
 FILE *dribblestream = NULL;
 int input_blocking = 0;
 NODE *deepend_proc_name = NIL;


$NetBSD$

--- main.c.orig	1998-03-08 14:42:44.000000000 -0800
+++ main.c
@@ -124,6 +124,10 @@ void _far _cdecl do_ctrl_c(void) {
 int main(int argc, char *argv[]) {
     NODE *exec_list = NIL;
 
+    readstream = stdin;
+    writestream = stdout;
+    loadstream = stdin;
+
 #ifdef mac
     init_mac_memory();
 #endif
>Release-Note:
>Audit-Trail:
>Unformatted: