Re: gettext/libiconv and libtool problem

2010-03-13 Thread Charles Wilson
On 3/13/2010 1:36 AM, Roger While wrote:

 gettext supplies libintl.la.
 That file requires libiconv.la.

That is what would be supported by a 'build-depends:' tag -- which is
exactly how that is handled by more powerful package management systems
like rpm, deb, apt, and even ebuild.

The original design of setup.exe was supposed to support this, but it
never has been fleshed out.  From setup CVS, inilex.ll:

...
Binary:   return BINARYPACKAGE;
Build-Depends:return BUILDDEPENDS;  
Build-Depends-Indep:  return BUILDDEPENDS;  
Standards-Version:return STANDARDSVERSION;
Format:   return FORMAT;
Directory:return DIRECTORY;
Files:return FILES;
category:|Section:  return CATEGORY;
Priority: return PRIORITY;
requires: return REQUIRES;   
Depends:  return DEPENDS;
Pre-Depends:  return PREDEPENDS;
Recommends:   return RECOMMENDS;
Suggests: return SUGGESTS;
Conflicts:return CONFLICTS;
Replaces: return REPLACES;
Provides: return PROVIDES;
...

Note that there are a lot of other interesting items, such as Conflicts,
Replaces, Provides...none of which have any actual 'meat' associated
with them.

 It is not clear to me how one could check for this situation in configure.

You can't -- it is a meta operation, and /should/ be handled by the
package management system.

On linux, the -src.rpm (or .deb) would have a build-depends on the
various -devel packages that you would need.  It's a shortcoming of
setup.exe that we can't do that.

The solution is (a) to add that support to setup.exe, and (b) start
moving the build-depends information for individual packages into their
setup.hint files (currently, build-depends are usually -- but not always
-- documented in /usr/share/doc/Cygwin/pkg.README

The solution is NOT to overload the runtime requires: field, blurring
the distinction between actual requirements -- without which the app
will refuse to launch at all -- and these other scenarios which are of
interest only to developers (users don't run configure).

I'm sure cgf would entertain some refinements to the setup.hint
documentation.

--
Chuck

--
Problem reports:   http://cygwin.com/problems.html
FAQ:   http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple



gettext/libiconv and libtool problem

2010-03-12 Thread Roger While

Charles Wilson wrote

Roger While wrote:

 gettext has a requirement on libiconv2.
 libiconv2 contains only the cygiconv dll and nothing else.

 OK. So we have a typical (libtooled) autoconf/automake configure which has
 a AM_GNU_GETTEXT([external]).

 Fine, the configure proceeds and produces something like -

 checking for GNU gettext in libc... no
 checking for iconv... no, consider installing GNU libiconv
 checking for GNU gettext in libintl... yes
 checking whether to use NLS... yes
 checking where the gettext function comes from... external libintl
 checking how to link with libintl... -lintl

 etc.
 Also fine.

 We then do the make which blows up with -

 libtool: link: cannot find the library `/usr/lib/libiconv.la' or
 unhandled argument
 `/usr/lib/libiconv.la'

This means that the libiconv development files are a *build-time*
dependency of whatever you're compiling.  They are not *run-time*
dependencies of any of the binaries in the gettext package.

gettext.exe works just fine, without libiconv.la
ditto ngettext.exe
ditto ditto envsubst.exe

The cygwin setup.hint requires: flag is used to represent *run-time*
dependencies, not stuff that would probably be nice to have installed
along with package A, IF you are using package A in /this/ particular
way, and then later run all this other stuff while compiling package C.

The gettext binaries run without error.  They may, perhaps, leave traces
in configure scripts -- such that when you run that configure script,
and then later run make, which runs gcc, which runs ld, you may find
that at THAT time, you'd need libiconv.la.

No way is that a run-time requirement of the original gettext binaries.

--
Chuck


Well, that's not how I interpret the instructions for setup.hint at
http://cygwin.com/setup.html
Quote -
The requires line indicates the packages that this package relies on. If 
your package is dependent on a file provided by another package that other 
package should be included here. The requires field may be missing or empty 
if your package truly does not require any other package.

End-quote.

Note that dependent on a file.

gettext supplies libintl.la.
That file requires libiconv.la.

Note that the configure is using the standard documented way of testing
the usability of gettext -
AM_GNU_GETTEXT([external])
and then testing the (libtool) variable LTLIBINTL for a non-empty string
(It isn't; it contains -lintl).

It is not clear to me how one could check for this situation in configure.

Roger






--
Problem reports:   http://cygwin.com/problems.html
FAQ:   http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple



gettext/libiconv and libtool problem

2010-03-11 Thread Roger While


gettext has a requirement on libiconv2.
libiconv2 contains only the cygiconv dll and nothing else.

OK. So we have a typical (libtooled) autoconf/automake configure which has
a AM_GNU_GETTEXT([external]).

Fine, the configure proceeds and produces something like -

checking for GNU gettext in libc... no
checking for iconv... no, consider installing GNU libiconv
checking for GNU gettext in libintl... yes
checking whether to use NLS... yes
checking where the gettext function comes from... external libintl
checking how to link with libintl... -lintl

etc.
Also fine.

We then do the make which blows up with -

libtool: link: cannot find the library `/usr/lib/libiconv.la' or unhandled 
argument

`/usr/lib/libiconv.la'

It looks to me as though libiconv2 should be supplying libiconv.la
as the gettext libintl.la has these lines -

# Libraries that this one depends upon.
dependency_libs=' -L/usr/lib /usr/lib/libiconv.la'

In fact I wonder whether or not gettext should require libiconv
instead of/as well as libiconv2.

Roger


--
Problem reports:   http://cygwin.com/problems.html
FAQ:   http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple



Re: gettext/libiconv and libtool problem

2010-03-11 Thread Larry Hall (Cygwin)

On 3/11/2010 12:29 PM, Roger While wrote:


gettext has a requirement on libiconv2.
libiconv2 contains only the cygiconv dll and nothing else.

OK. So we have a typical (libtooled) autoconf/automake configure which has
a AM_GNU_GETTEXT([external]).

Fine, the configure proceeds and produces something like -

checking for GNU gettext in libc... no
checking for iconv... no, consider installing GNU libiconv
checking for GNU gettext in libintl... yes
checking whether to use NLS... yes
checking where the gettext function comes from... external libintl
checking how to link with libintl... -lintl

etc.
Also fine.

We then do the make which blows up with -

libtool: link: cannot find the library `/usr/lib/libiconv.la' or
unhandled argument
`/usr/lib/libiconv.la'

It looks to me as though libiconv2 should be supplying libiconv.la
as the gettext libintl.la has these lines -

# Libraries that this one depends upon.
dependency_libs=' -L/usr/lib /usr/lib/libiconv.la'

In fact I wonder whether or not gettext should require libiconv
instead of/as well as libiconv2.


You must be missing 'libiconv' then:

http://cygwin.com/cgi-bin2/package-grep.cgi?grep=libiconv.la

--
Larry Hall  http://www.rfk.com
RFK Partners, Inc.  (508) 893-9779 - RFK Office
216 Dalton Rd.  (508) 893-9889 - FAX
Holliston, MA 01746

_

A: Yes.
 Q: Are you sure?
 A: Because it reverses the logical flow of conversation.
 Q: Why is top posting annoying in email?

--
Problem reports:   http://cygwin.com/problems.html
FAQ:   http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple



Re: gettext/libiconv and libtool problem

2010-03-11 Thread Charles Wilson
Roger While wrote:
 
 gettext has a requirement on libiconv2.
 libiconv2 contains only the cygiconv dll and nothing else.
 
 OK. So we have a typical (libtooled) autoconf/automake configure which has
 a AM_GNU_GETTEXT([external]).
 
 Fine, the configure proceeds and produces something like -
 
 checking for GNU gettext in libc... no
 checking for iconv... no, consider installing GNU libiconv
 checking for GNU gettext in libintl... yes
 checking whether to use NLS... yes
 checking where the gettext function comes from... external libintl
 checking how to link with libintl... -lintl
 
 etc.
 Also fine.
 
 We then do the make which blows up with -
 
 libtool: link: cannot find the library `/usr/lib/libiconv.la' or
 unhandled argument
 `/usr/lib/libiconv.la'

This means that the libiconv development files are a *build-time*
dependency of whatever you're compiling.  They are not *run-time*
dependencies of any of the binaries in the gettext package.

gettext.exe works just fine, without libiconv.la
ditto ngettext.exe
ditto ditto envsubst.exe

The cygwin setup.hint requires: flag is used to represent *run-time*
dependencies, not stuff that would probably be nice to have installed
along with package A, IF you are using package A in /this/ particular
way, and then later run all this other stuff while compiling package C.

The gettext binaries run without error.  They may, perhaps, leave traces
in configure scripts -- such that when you run that configure script,
and then later run make, which runs gcc, which runs ld, you may find
that at THAT time, you'd need libiconv.la.

No way is that a run-time requirement of the original gettext binaries.

--
Chuck

--
Problem reports:   http://cygwin.com/problems.html
FAQ:   http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple