On Thu, 11 Dec 2008 18:15:31 -0600
"Brian Smith" <[email protected]> wrote:
> Mike Meyer wrote:
> > I claim there's only two sane states: either you install all the dev
> > bits for everything you install, or you install none of them. Other
> > developers will disagree, but nobody has ever said you had to be sane
> > to write software.
> I don't know any developers that work that way. The old-fashioned way of
> buliding software (download the source and blindly compile against the
> current versions of whatever is currently installed) is a very poor
> practice. Almost all of the developers I know are very careful to build
> against specific versions of specific packages. That is the only realistic
> way to handle security and compatibility.
It would seem that those developers have given up on any kind of
control of the installed system, replacing it by completely
disconnecting the build environment from the rest of the system. Most
of the developers I know are equally picky about the versions they
build against - the just insist that those version be the ones
installed on the system, so they can build and test against them
without having to worry about some part of the system finding the
wrong version.
That you've disconnected the build environment from the system that
way doesn't really change the spirit of what I said. Since you're
running with two distinct environments on the system, the statement
applies to each environment.
> One consequence of this is that there is no relation between the the
> currently-installed versions of software and the versions against which I am
> building. For example, I want to be able to build against S10u4 headers and
> libraries for SPARC, x86, and x64 on my OS2008.11 x86 system. I have no need
> for OS2008.11 headers on my system because anything I build against the
> S10u4 binaries will work on OS2008.11 because of the ABI guarentee.
The developers I know are more paranoid than you. Rather than trying
to build for a collection of near-identical systems in one
environment, we set up a vm for each one that we can exercise proper
control over.
> Any headers/libraries for any Solaris and OpenSolaris release, for any
> architecture, should be easily installable into under my home directory
> using IPS. And, I should be able to do that while ensuring that no headers
> get installed under /usr. And, I should be able to easily do a "pkg
> image-update" to update my system without disturbing the header files and
> libraries I am building against.
Like I said, two separate environments.
> This seems to imply that all headers and libraries should be separate
> packages, and the installation of any package should not automatically
> install the headers and other development files needed for that package in
> any circumstances.
I don't see that it implies that at all. If the environment isn't a
development environment, you may want that behavior to conserve
resources, but it certainly wouldn't seem to be a requirement. If the
environment is a development environment, you almost certainly want
the development bits for everything you install in it, as otherwise
you risk tools you are building quietly breaking because a library
they use couldn't build some capability based on a missing header
file.
I do see how with multiple environments like you have, it becomes a
bit more important to not install headers for the system version of
packages you build against, as the breakages mentioned above might not
break, but drag things in from system instead. I've seen this kind of
thing produce some really interesting failures.
<mike
--
Mike Meyer <[email protected]> http://www.mired.org/consulting.html
Independent Network/Unix/Perforce consultant, email for more information.
O< ascii ribbon campaign - stop html mail - www.asciiribbon.org
_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss