Re: gettext/libiconv and libtool problem
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
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
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
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
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