Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 Aug 2001 16:15:40 +0300
From:      Peter Pentchev <roam@ringlet.net>
To:        "Eugene L. Vorokov" <vel@bugz.infotecs.ru>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: libmp
Message-ID:  <20010806161540.G2110@ringworld.oblivion.bg>
In-Reply-To: <200108061718.f76HIoT59752@bugz.infotecs.ru>; from vel@bugz.infotecs.ru on Mon, Aug 06, 2001 at 05:18:49PM %2B0000
References:  <20010806153705.B2110@ringworld.oblivion.bg> <200108061718.f76HIoT59752@bugz.infotecs.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Aug 06, 2001 at 05:18:49PM +0000, Eugene L. Vorokov wrote:
> > > Hmm yes, it's there. But the snapshot I installed first doesn't
> > > have it (why ?). When I installed it manually prior to compiling libs,
> > > libmp compiles fine ... Btw, is there any guide of what is the proper
> > > order of compiling things after cvsup ?
> > 
> > Yep, the src/UPDATING file.
> > 
> > What do you mean, the snapshot did not have it?  Did you really
> > CVSup 5.0-current on a machine running an earlier version, or did
> > you install from a pre-built 5.0-current snapshot?  Or are you referring
> > to the CVSup snapshot - in what sense did it "not have it" -
> > there was no src/crypto/openssl/ directory, or there was no
> > src/secure/lib/libcrypto/ directory, or the libcrypto Makefile did
> > not install the OpenSSL header files files under
> > /usr/obj/.../src/i386/usr/include/openssl?
> > 
> > How exactly are you trying to compile things?  What did you do
> > after the CVSup run?  And.. what version are you updating from?
> 
> I first installed the snapshot 5.0-20010618-CURRENT. Then I installed
> cvsup and cvsup'ed src-all collection. When it was completed, I
> tried to recompile the kernel,

Strike one - the kernel needs *at least* config(8) (as you already
know), and it might need updated parts of the build toolchain.
This would certainly fail.  Read src/UPDATING for the proper procedure.

> but config was complaining that it's
> version doesn't match the kernel version, so I compiled and installed
> src/usr.sbin/config, then I configured and compiled kernel, it
> compiled fine.

Strike two - config(8) and the kernel still might need updated parts
of the toolchain (e.g. new assembly syntax).  You are lucky it worked.
Read src/UPDATING.

> Then I rebooted and tried to compile the userland things.
> I was thinking that I must first install new include files, then
> compile and install libs and then executables.

Strike three - you are *almost* correct, but you ought to have first
built the bootstrap tools, then used them to build a couple of other
things, and only then move on to the include files.  The 'buildworld'
target takes care of all that in a very nice way.  Read src/UPDATING :)

> So I did make
> and make install in the src/include directory and tried to do the
> same in the src/lib, but it stopped on libmp.

The src/include directory does not hold all include files at all.
Some of them are spread out in library directories, some of them
are even spread out in program directories.  The 'buildworld' target
takes care of all that in a very nice way.  Read src/UPDATING :)

> At that point I had
> no /usr/include/openssl directory at all, and no libs either.

Right.  The src/include Makefile does not handle src/secure/libcrypto.
The 'buildworld'... oh well ;)

> Then
> I tried to compile src/secure/lib, but make there couldn't be completed
> too, because libcypher, which is compiled first, also was complaining
> about openssl library. I tried to compile src/secure/lib/libssl,
> it compiled successfully, but still it did not properly install all
> nesessary include files to /usr/include/openssl (only a few were
> installed), so I had to manually copy src/secure/lib/libssl/openssl/*
> to /usr/include/openssl/, after which I was able to compile the rest
> in src/secure/lib, the rest in src/secure and then, finally, src/lib.

This sounds like you went to a *lot* of trouble just because you
did not read the src/UPDATING file :)  It is great that it finally
worked, but.. it might have been easier :)

> I think the reason that my initial installation didn't have openssl
> could be that I just forgot to toggle the appropriate flag in the
> sysinstall, but still, IMHO this shouldn't make update process that
> tricky. Generally, I think Makefiles could be constructed to reflect
> those dependencies, no ?

They are; just not the Makefiles in the directories you looked at,
and not in the way you tried to do it.  The 'buildworld' and
'buildkernel' targets were specifically made to handle this kind
of dependencies when updating from a much earlier version of FreeBSD.

> And, why make install in the src/secure/lib/openssl only does this
> (first line wrapped so that mailer won't be confused with too long
> line):
[snip make install output]
> 
> There a lot of other include files it should copy ...

As I mentioned in another email, src/secure/lib/openssl is not really
relevant.  src/secure/lib/libcrypto is much more important.

> Or must I
> compile something else too before I can simply type "make" in
> the src/secure/lib which will work ? And if so, then again, why
> isn't Makefile there written to compile things in a proper order ?

The Makefile in that particular directory is written so as to be
invoked by a higher-order Makefile that knows what dependencies
ought to be satisfied, and what dependencies *have* already been
satisfied.  The Makefile in that particular directory is written
so as to be able to be used when the rest of the tree is not
really present, but only in a limited way.

G'luck,
Peter

-- 
Nostalgia ain't what it used to be.

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




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