Re: Bundling libtool

2001-03-29 Thread Drazen Kacar

Dan Harkless wrote:
 Drazen Kacar [EMAIL PROTECTED] writes:

   What was their response?
  
  Nothing.
 
 Perhaps you'd get one if you made a more official bug report.

Perhaps. But one of the best ways to piss off users is to claim "not a bug"
for something that is a pretty obvious bug, or, even worse, a design flaw.
That's the point where I draw the line. I don't see why I would want to
get another response like that. There is a chance that it would be
recognized as a bug, but the whole thing looks like an arbitrary decision of
clergy based on the phase of the moon or whatever and I really don't want
to waste time on that.

  That might work, but I don't see why libtool is being used in the
  first place if I need to remove it entirely. Because most users don't
  care?
 
 No, because it does the right thing for most users.

I don't know what you consider to be the right thing. Most users are not
able to tell if the resulting executables and libraries are in accordance
with the platform specifications. Therefore most users can only say if it
works for them or not. But that statement implies "at this point in time,"
which is rarely explicitely qualified, so you might have missed that point.

And most users are not able to tell whether the binaries they have now
would work in a year or if they would have problems with upgrading to the
new version or whatever.

I don't understand why you keep bringing "most users" in discussion. You
could have used "most platforms" or "most compilers" or "the most common
combinations" or anything else which doesn't require conducting poll.
Why the fixation on "most users" who "don't care about the standards?" Or
was it "arbitrary standards?"

It doesn't. It's a response to your statement that my statement
was a pretty massive hyperbole.
   
   You didn't qualify your statement to say that it didn't apply to the
   usage of libtool that we're discussing here.  As stated, it's
   massive hyperbole.  Even qualified it'd be massive hyperbole.  It's
   ridiculous to say that libtool gives you _0_ benefit just because it
   makes the wrong decision in
  ^^^
   certain circumstances.
  
  You didn't qualify the term "you." If it applies to me personally,
  then it's pretty much accurate. The last time I let libtool do linking
  on its own was when I didn't know what it would produce.
 
 Your original statement was a general one, not just applying to you
 personally.

Yes, it was. I'm doing what I'm doing in spite of libtool because I want
to have a system which doesn't suck. "Doesn't suck" means that I want
executables and libraries to be built correctly (as the platform
documentation recommends) and somewhat optimized. I want to have it that
way, because I want my utilities and libraries to:

a) work always
b) upgrade easily and in a predictable way

Libtool does not produce libraries which conform to (this) platform's
recommendations. Therefore I cannot trust it to produce something which
won't cause me problems in the future. The platform in question uses ELF
objects, so the possible fixes in the already existing objects are very
limited (unlike AIX, where you can change the run-path in the existing
executable, for example).

Libtool does what it does by design, not because of some bugs. I listed
some existing bugs as well, because they can illustrate design decisions.
Which are pretty simple: you shall let libtool manage all your libraries
and libtool shall do it in accordance with its own rules and not
necessarily according to the platform rules.

I can understand why this approach was taken in libtool's design, but the
results are simply not satisfactory and one can have various difficulties
with the libraries at arbitrary points in the future. Because of design.

That's why libtool is not trustworthy. What follows is that libtool should
be avoided if possible. I don't think this is a ridiculous position and
I'm not sure why you're qualifying it as such. Perhaps I stumbled upon
some taboo?

What follows next is pretty simple: if some tool should be avoided, it
gives you zero benefit.

  There's a small problem with that. If there are no archives installed
  on a system (but only shared objects), your solution will not produce
  the best results.
 
 Care to elaborate on that (if you haven't already done so in a later
 mail)?

If I understand your idea correctly, you want to link with the archive
version (libcrypto.a) at configure time. If the archive version does not
exist anywhere on the system and only the shared library exists, your
configure check will fail and you won't end up using SSL, although it's
available.

  Maybe. I think you'd end up with the same amount of work with or
  without libtool if you want to be foolproof. The added benefit of
  using libtool would be zero if that's the case. But I can't prove it
  unless you try it, so go ahead.
 
 Who said anything about being foolproof??  No software is completely
 foolproof, my friend.  I 

Re: Bundling libtool

2001-03-28 Thread Dan Harkless


Hrvoje Niksic [EMAIL PROTECTED] writes:
 "Dan Harkless" [EMAIL PROTECTED] writes:
   Libtool is not the be-all end-all answer to our linking problems,
   even if we wish it were.  Maybe these things are easier to achieve
   with libtool than without it, but it doesn't come without a cost.
  
  Is autoconf the be-all end-all answer to our (non-shared-library)
  portability problems?  Does it come without a cost?
 
 The point is that we should weigh the costs and the benefits.
 Autoconf comes with a *lot* of benefits.  Automake on the other hand
 has a few benefit, but the cost is IMO unacceptable.  I haven't yet
 decided about libtool, but on a first glance it seems that its
 benefits are very dubious at best.
 
 If it were only up to me, I would give libtool a few years to mature
 before using it on my project.  I'm just not confident in the thing.
 This was not the case with Autoconf when I started using it.

All the arguments against libtool so far have focused on things it does
wrong when building libraries.  I haven't seen any data leading me to
believe it's incapable of doing the simpler job we're using it for, of
linking to shared libraries.

  libtool may not be perfect, but it sure seems to me that an
  imperfect but usually correctly-functioning libtool is better than
  having --with-ssl simply fail unless you do a bunch of manual
  LDFLAGS/LIBS environment variable voodoo that's different on each
  platform.
 
 It might be better to simply improve our configure platform support
 than to suffer with libtool bug workarounds.

I remain to be convinced that any such workarounds will be necessary.  And I
still don't think it makes sense to reinvent the wheel in every package's
configure script, if libtool does a decent job of linking your package to
shared libraries in the majority of cases.

---
Dan Harkless| To help prevent SPAM contamination,
GNU Wget co-maintainer  | please do not mention this email
http://sunsite.dk/wget/ | address in Usenet posts -- thank you.



Re: Bundling libtool

2001-03-28 Thread Dan Harkless


Drazen Kacar [EMAIL PROTECTED] writes:
   But keep in mind that it's not a catch-all solution and don't
   promote it as such.
  
  I don't believe anyone's been doing that.
 
 I'm sorry. I must have misinterpreted your "I'm now totally convinced."

Yes you did.  I wasn't saying "I'm now totally convinced that libtool is the
all-singing all-dancing solution to all of life's problems."  I was saying
"I'm now totally convinced that utilizing libtool rather than reinventing
the cross-platform-linking-to-shared-libraries wheel is a good approach."

   If it doesn't work on some platform, people will send patches. Another
   reason not to use complicated build tools unless really necessary is that
   you limit the user base which can send patches.
  
  Huh?
 
 Could you estimate a percentage of Unix users who can write portable sh
 scripts? Portable meaning it would be suitable for inclusion in autoconf
 results, ie. configure scripts. Or libtool scripts.

So how does using libtool make it harder for people to send patches than if
we implemented the linking-to-shared-library stuff in configure.in?  They
have the same portable sh script requirement.

In fact, I'd say it's easier for people to send patches if libtool is a
separate modular piece doing just what it does, vs. putting all that
complication into configure.in.

---
Dan Harkless| To help prevent SPAM contamination,
GNU Wget co-maintainer  | please do not mention this email
http://sunsite.dk/wget/ | address in Usenet posts -- thank you.



Re: Bundling libtool

2001-03-27 Thread Hrvoje Niksic

"Dan Harkless" [EMAIL PROTECTED] writes:

 Jan Prikryl [EMAIL PROTECTED] writes:
   Yup.  It's not the default for OpenSSL, though.  It installs in
   /usr/local/ssl/lib by default.  As `configure --help' tells you:
  
  Well, as a "normal" user I would expect the configure script will be
  able to cope with the fact that OpenSSL has been installed in a more
  or less "standard" system path.
 
 I started to implement this, but had problems because you can't set
 LDFLAGS to have a particular library path and run AC_CHECK_LIB, then
 change LDFLAGS and re-run AC_CHECK_LIB.  configure caches the
 results of the first check and re-uses them for the second check

Is it the standard configure caching mechanism, the "(cached)" thing?
I think that can be turned off.

   [...]
   checking for RSA_new in -lcrypto... no
   checking for SSL_new in -lssl... no
 
   WARNING: Failed to link with OpenSSL libraries in /usr/local/ssl/lib.
  Wget will be built without support for https://... URLs.

Maybe we should even abort the build at this point.  If the user said
`--with-ssl', he probably meant it.