Marc Espie wrote:
Marc, I began to reply, because you've begun insulting me here, but if
you'll let it go, I will let it go here. Can you do that? Just stop
reading here.
On Fri, Oct 07, 2005 at 04:15:59PM -0400, Chuck Robey wrote:
I had put in my own gettext, which installed libintl.so.7.3. The ports
installed, on it's own (and I cou;d see how to override this) a
libintl.so.2.0, but when gmake linked, it added in the 7.3, and gmake
did 2 rotten things: it found the files that my gettext had installed,
and refused to ovewrite them, and then added a @wantlib in the +CONTENTS
file of the gmake package, but (why?) couldn't find the libintl.so.7.3
that the ldconfig found ok.
In other words, the ports really kicked up hell that I'd had the gaul to
put my own files in, and I couldn't get it to lose the idea.
You're not a serious developer, you just tinker with stuff...
You know, I'be been as careful as I could be, never to insult any of
you. You know me very little, but you need to support your argument,
and I guess you need to insult.
- Installing your own gettext is rather dangerous, unless you really
know what you are doing. Especially these days, because we are adding
i18n to the base system.
It's not so terribly dangerous as all that, moreover, nothing i do to my
own system affects your at all. If I take responsibiliity for my own
system, then (as long as it removes none of your control, and I've
already demonstated at least one method to do that, I'm certain that I
didn't pick either the only way or the best way) then this wouldn't
bother your system goals at all.
I spent years doing FreeBSD ports. about 10. Yes, you need to stay
awake, but as long as you don't mind talking care of things, it's not so
bad, not nearly as bad as you are playing it.
- Installing stuff into the same directories the basic ports install
stuff in is a nice recipe for disaster.
OK, then how about a have "local-1"? I would like, if I install some
shared lib in /usr/local-1/lib, to have it not only found, but have it
override (in terms of DEPENDS) any lib in /usr/local, or any
ports-controlled lib. If I agree that I must take all blame for any
problems in such a system, folks in FreeBSD, which runs like that (and
has for years) don't seem to be all that worried.
- If you install basic software like gettext on a variant version,
there will be issues all over the ports tree. what you're describing here
is the *least* of your worries.... stuff that should work won't.
- @wantlib records actual hard set libraries, but they need to be parts
of packages, together with dependencies. It's trivial to cobble together
a package that will record the stuff you install. It's about as difficult
as pkgconfig specs. It's easy to automate. No-one with skill enough has
shown enough interest. Oh yes, and the way it works is documented
in pkg_add(1)/pkg_create(1).
- personally, when I install new software, I simply use the ports
framework. It's trivial to write a skeleton port that builds, packages
and installs stuff. Polishing it to commit quality is a bit harder.
The only point you may have is that, one day, we might move the whole
package stuff from /usr/local to elsewhere, maybe even /usr/pkg.
It's a big change, we're not even really sure it's worth it.
Also, you seem to operate under a strange delusion, that software components
work flawlessly. Having played a lot with various versions of software,
I can tell you it's a myth. Installing a new version of a common dependency
very often results in breakage, some of it quite subtle. The skills of
the people who write those basic components is not that good.
Well, there's another rather negative point about your whole idea:
people who do actually tinker with software don't try to reinvent
the wheel all the time. Unless you're learning the basic ropes, it
pays a lot to start from existing stuff....
like, if you want to use a newer version of gettext, it's ways simpler
to modify the existing port to use the new version. That way, you get
the OpenBSD specific patches, instead of having to re-roll your own.
You seem to have missed one big advantage to the ports tree: it's there,
and it's way more transparent than some other package systems...
It just insists on doing things correctly, and thus it catches lots
of mistakes.