Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Mar 2001 13:00:59 +0300
From:      Ruslan Ermilov <ru@FreeBSD.ORG>
To:        John Hay <jhay@icomtek.csir.co.za>
Cc:        current@FreeBSD.ORG
Subject:   Re: make release broken in telnetd
Message-ID:  <20010328130059.D79203@sunbay.com>
In-Reply-To: <200103280842.f2S8gA897329@zibbi.icomtek.csir.co.za>; from jhay@icomtek.csir.co.za on Wed, Mar 28, 2001 at 10:42:10AM %2B0200
References:  <200103280842.f2S8gA897329@zibbi.icomtek.csir.co.za>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi!

I don't see how my changes to non-secure Makefiles might affect this.
What I did is disabled building of non-secure, standard libtelnet,
telnet and telnetd if we are also building the secure versions.
I did not touch the secure/ versions in this commit.  Moreover, the
standard versions are still built for ``make release'' (RELEASEDIR).
The problem is certainly elsewhere.

[2 minutes of thinking]

Doh, now I see what happened.  It is another commit that broke this.
Commit to secure/ Makefiles.  Here is part of my original posting to
Mark Murray on secure/ build fixes regarding secure/Makefile.inc:

: TELNETOBJDIR is gone.  `buildworld' already installs libtelnet.a
: in ${WORLDTMP}/usr/lib, and we have LIBRARY_PATH pointing there.
: Doh, this change uncovered another bug: in the standard build
: environment, we built both secure/ and standard versions of
: libtelnet, telnetd and telnet; and standard libtelnet.a was
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
: clobbering secure/ libtelnet.a in ${WORLDTMP}/usr/lib at the
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
: `libraries' stage of `buildworld'.

I have fixed this for normal buildworld/installworld case -- we
do not build and install both secure and non-secure versions of
*telnet*, but the problem still persists for `make release' case
because in we forcibly build and install secure and non-secure
versions, and non-secure libtelnet.a clobbers secure version in
${WORLDTMP}/usr/lib.

The fix is easy -- make libtelnet an "internal static library",
as was discussed with Mark Murray recently, and I have actually
done the first prerequisite step in this direction -- fixed the
net/tn3270 port that depended on this library.

I will commit the changes soon, and will let you know.  Actually,
this brokeness is a good argument in favor of this change!  :-)


On Wed, Mar 28, 2001 at 10:42:10AM +0200, John Hay wrote:
> Hi Ruslan,
> 
> On the 26th you made changes to the Makefiles with this log message:
> 
> ##########
>   Do not build (and install) both secure/ and standard versions
>   of libtelnet, telnetd, and telnet.  This only worked because
>   secure/ was listed late in SUBDIR in Makefile.inc1.
> ##########
> 
> Did you check that "make release" still works with it? Here a "make
> release" bombs out with:
> 
> ###########
> cc -O -pipe  -DLINEMODE -DUSE_TERMIO -DDIAGNOSTICS -DOLD_ENVIRON  -DENV_HACK -DA
> UTHENTICATION -DENCRYPTION  -I/usr/src/secure/libexec/telnetd/../../../crypto/te
> lnet -DINET6 -DNO_IDEA   -I/usr/obj/usr/src/i386/usr/include -c /usr/src/secure/
> libexec/telnetd/../../../crypto/telnet/telnetd/utility.c
> cc -O -pipe  -DLINEMODE -DUSE_TERMIO -DDIAGNOSTICS -DOLD_ENVIRON  -DENV_HACK -DA
> UTHENTICATION -DENCRYPTION  -I/usr/src/secure/libexec/telnetd/../../../crypto/te
> lnet -DINET6 -DNO_IDEA   -I/usr/obj/usr/src/i386/usr/include -c /usr/src/secure/
> libexec/telnetd/../../../crypto/telnet/telnetd/authenc.c
> gzip -cn /usr/src/secure/libexec/telnetd/../../../crypto/telnet/telnetd/telnetd.
> 8 > telnetd.8.gz
> cc -O -pipe  -DLINEMODE -DUSE_TERMIO -DDIAGNOSTICS -DOLD_ENVIRON  -DENV_HACK -DA
> UTHENTICATION -DENCRYPTION  -I/usr/src/secure/libexec/telnetd/../../../crypto/te
> lnet -DINET6 -DNO_IDEA   -I/usr/obj/usr/src/i386/usr/include  -o telnetd global.
> o slc.o state.o sys_term.o telnetd.o termstat.o utility.o authenc.o  -lutil -lte
> rmcap -ltelnet -lcrypto -lcrypt -lmp
> state.o: In function `willoption':
> state.o(.text+0x695): undefined reference to `auth_request'
> state.o(.text+0x69d): undefined reference to `encrypt_send_support'
> state.o(.text+0x705): undefined reference to `auth_request'
> state.o(.text+0x70d): undefined reference to `encrypt_send_support'
> state.o: In function `wontoption':
> state.o(.text+0x88c): undefined reference to `auth_finished'
> state.o(.text+0x926): undefined reference to `auth_finished'
> state.o: In function `suboption':
> state.o(.text+0x13e7): undefined reference to `auth_is'
> state.o(.text+0x1403): undefined reference to `auth_name'
> state.o(.text+0x144b): undefined reference to `encrypt_support'
> state.o(.text+0x1467): undefined reference to `encrypt_is'
> state.o(.text+0x1483): undefined reference to `encrypt_reply'
> state.o(.text+0x149f): undefined reference to `encrypt_start'
> state.o(.text+0x14a9): undefined reference to `encrypt_end'
> state.o(.text+0x14c3): undefined reference to `encrypt_request_start'
> state.o(.text+0x14cd): undefined reference to `encrypt_request_end'
> state.o(.text+0x14e7): undefined reference to `encrypt_enc_keyid'
> ...
> *** Error code 1
> 1 error
> *** Error code 2
> 1 error
> *** Error code 2
> 1 error
> *** Error code 2
> 1 error
> *** Error code 2
> 1 error
> *** Error code 2
> 1 error
> *** Error code 2
> 
> Stop in /usr/src/release.
> ########
> 
> It is because the libtelnet it is trying to link to, does not have the
> crypto stuff. It happens during the "make world" part of the release,
> because /tmp/.world_done does not exist yet. A normal "make world",
> ie. outside of the "make release" environment works fine though.


Cheers,
-- 
Ruslan Ermilov		Oracle Developer/DBA,
ru@sunbay.com		Sunbay Software AG,
ru@FreeBSD.org		FreeBSD committer,
+380.652.512.251	Simferopol, Ukraine

http://www.FreeBSD.org	The Power To Serve
http://www.oracle.com	Enabling The Information Age

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010328130059.D79203>