Subject: lukemftp problems with bootstrap and regular pkgsrc
To: None <tech-pkg@netbsd.org>
From: Jeremy C. Reed <reed@reedmedia.net>
List: tech-pkg
Date: 03/20/2003 03:00:18
bootstrap-pkgsrc as of a a little while ago failed to build lukemftp and
install it. It continued though and appeared to install everything else
just fine.

This is Turbo Linux 6.0 English Server (Coyote) with Linux 2.2.14-3, GCC
2.95.2, libc.so.5.4.38, libc-2.1.2.so (libc.so.6), and libc-2.0.7.so. (It
is old and it has those libc versions all installed by default).

I don't really use such an old and strange Linux, but I just
installed it yesterday so I could test more pkgsrc under different Linux
environments.

I used pkgsrc to install perl-5.6.1nb7, textutils-2.0, and
fileutils-4.1.11 successfully, because I had the distfiles already
available in my NFS-mounted pkgsrc.

But the Turbo Linux ftp-0.15-1 didn't work with the URL as needed when
trying to build bash2 (as I expected). (I assume that bash2 is newer!).

At the ftp> prompt I typed "quit" a few times, then press CTRL-C many
times.

So to workaround my problem, I did:

  cd ../../net/lukemftp/
  bmake install

It failed with:

gcc -I. -I./.. -I. -I.. -I./../libedit  -I./../libukem -O2   -c ftp.c
ftp.c: In function `initconn':
ftp.c:1601: structure has no member named `sin6_scope_id'
*** Error code 1

This old /usr/include/linux/in6.h (Feb 23 2000) and
/usr/include/netinet/in.h (Dec 17 1999) only defines sin6_family,
sin6_port, sin6_flowinfo, and sin6_addr.

$ bmake -DUSE_INET6=NO show-var VARNAME=USE_INET6
YES

So I hard-coded USE_INET6=NO into my /etc/mk.conf file.

This system does have ipv6 support (but I don't use it currently).

lukemftp maybe should check better before using sin6_scope_id.

I think lukemftp is replaced (renamed) with tnftp. (And the
pkgsrc/net/lukemftp's MASTER_SITES points to a file that no longer exists.
It was moved to "old/".)

Maybe newer tnftp has this improvement.

The lukemftp build got past that ipv6. But died with:

gcc -I. -I./.. -I. -I.. -I./../libedit  -I./../libukem -O2 -L../libedit
-Wl,-R/usr/lib -L/usr/lib -L../libukem -o ftp cmds.o cmdtab.o complete.o
domacro.o fetch.o ftp.o main.o  ruserpass.o util.o -ledit  -lukem
../libedit/libedit.a(term.o): In function `term_move_to_line':
term.o(.text+0x777): undefined reference to `tgoto'
term.o(.text+0x780): undefined reference to `tputs'
term.o(.text+0x7f0): undefined reference to `tgoto'
term.o(.text+0x7f9): undefined reference to `tputs'
term.o(.text+0x822): undefined reference to `tputs'
../libedit/libedit.a(term.o): In function `term_move_to_char':


I think this is ncurses. I added the USE_BUILDLINK2 and the ncurses
buildlink2 to the lukemftp Makefile.

That did not help. This system had old /usr/lib/libncurses.so.1.9.9e which
is also libncurses.so.3.0 (Dec 9 1999), /usr/lib/libncurses.so.2.0 (Dec 28
1999), /usr/lib/libncurses.so.4.0, and /usr/lib/libncurses.so.5.0 ( Dec 28
1999). The RPMs are ncurses-5.0-15 and ncurses3-1.9.9e-9. This TurboLinux
sure is strange to have some many libraries of the same installed!

So I installed libtool-base-1.4.20010614nb13 and ncurses-5.3 (via pkgsrc).
And then lukemftp built fine (I kept the new ncurses buildlink2 though).

Good night!

   Jeremy C. Reed
   http://bsd.reedmedia.net/