Re: automake issue in virtuoso: "library has 'libwi_odbc_la' as canonical name (possible typo)"
On Tue, Aug 14, 2018 at 11:13:02PM +0500, Andrey Rahmatullin wrote: > The actual error is > > libsrc/Makefile.am:22: error: required directory libsrc/zlib does not exist This is from manual autoreconf -fisv, the package build log says instead configure.ac:2891: error: required file 'libsrc/zlib/Makefile.in' not found but that isn't really different. -- WBR, wRAR signature.asc Description: PGP signature
Re: automake issue in virtuoso: "library has 'libwi_odbc_la' as canonical name (possible typo)"
On Tue, Aug 14, 2018 at 10:54:24PM +0500, Andrey Rahmatullin wrote: > > > > > > libsrc/Wi/Makefile.am:544: library has 'libwi_base_la' as canonical > > > > > > name (possible typo) > > > > > This is correct, there is a var named libwi_base_la_cflags which > > > > > seems to > > > > > be a generic var so it should be renamed to something not looking like > > > > > foo_cflags automake var. > > > > > > > > That's why I did s/cflags/CFLAGS/. > > > Ah, I was assuming the vars are case insensitive so the original name is > > > problematic. > > > > I assumed that Makefile variables are case sensitive and so Makefile.am > > variables are. I've never seen lower case spelling in those cases. > This is correct. > And lowercase is correct as, again, those are not meant to be automake > vars. > I don't know why automake warns about a foo_cflags var, calling it a > foo_CFLAGS var, but then I don't know if that build log was before or > after your s/cflags/CFLAGS/ etc. change. As it mentions line 544, which > originally sets a libwi_base_la_ldlags var, I suspect the latter. Indeed, the package without that patch only outputs libsrc/Wi/Makefile.am:292: warning: variable 'libwi_odbc_la_SOURCES' is defined but no program or libsrc/Wi/Makefile.am:292: library has 'libwi_odbc_la' as canonical name (possible typo) This is not the first time you are asking about autotools problems caused by the code you wrote so please be more clear in the future. Also, it's a warning. I was expecting that such things should not fail the build prosess and they indeed don't. Not to mention such warnings are also reported to several other files before that (and in the original email you've included only a truncated output log). The actual error is libsrc/Makefile.am:22: error: required directory libsrc/zlib does not exist -- WBR, wRAR signature.asc Description: PGP signature
Re: automake issue in virtuoso: "library has 'libwi_odbc_la' as canonical name (possible typo)"
On Tue, Aug 14, 2018 at 07:37:31PM +0200, Andreas Tille wrote: > > > > > libsrc/Wi/Makefile.am:544: library has 'libwi_base_la' as canonical > > > > > name (possible typo) > > > > This is correct, there is a var named libwi_base_la_cflags which seems > > > > to > > > > be a generic var so it should be renamed to something not looking like > > > > foo_cflags automake var. > > > > > > That's why I did s/cflags/CFLAGS/. > > Ah, I was assuming the vars are case insensitive so the original name is > > problematic. > > I assumed that Makefile variables are case sensitive and so Makefile.am > variables are. I've never seen lower case spelling in those cases. This is correct. And lowercase is correct as, again, those are not meant to be automake vars. I don't know why automake warns about a foo_cflags var, calling it a foo_CFLAGS var, but then I don't know if that build log was before or after your s/cflags/CFLAGS/ etc. change. As it mentions line 544, which originally sets a libwi_base_la_ldlags var, I suspect the latter. > > Do you have the same error without that change? Because the > > canonical names of automake target vars are foo_CFLAGS. > > Automake was warning about typos No, it was warning about setting vars for targets that are not defined. Please read the messages more carefully. It says "possible typo" but it really has no idea. It also says "possible". > and from what I can see these are simply typos. The only typos I see are _LDLAGS instead of _LDFLAGS, and I wouldn't fix those as they were there from the beginning. And the warnings don't talk about them but about the library/program names, which your patches don't change. > > So you've enabled building IODBC_LIBS? Why? It is disabled by the > > upstream. > > It's a conditional variable (further above in Makefile.am). I see no > point in uncommenting it since it can be enabled or disabled via flags. It's a var which is not used by the upstream, yet you patched the file to use it. I suppose the upstream did not want to use it whatever the flags. > When enabling it the automake bug goes away Because you are now using the dead code unused by the upstream... > and thus I assumed that > would just have been a regression from some upstream change. You could look at the upstream change history, which I did before writing my suggestions. All of this is unchanged since the first commit 13 or so years ago. > > And you made a libwi_base.la which is not what was intended. As I said, > > libwi_base_la_cflags is a generic var meant to be included in other vars. > > And are you sure you need to fix those "LDLAGS" if it was that way in the > > upstream code? > > May be I misunderstood your hint. What less invasive / more upstream > intended patch would you suggest? If the dead code causes problems, remove dead code. If an inappropriately named var causes problems, rename it. But only if it really causes problems. -- WBR, wRAR signature.asc Description: PGP signature
Re: automake issue in virtuoso: "library has 'libwi_odbc_la' as canonical name (possible typo)"
Hi Andrey, On Tue, Aug 14, 2018 at 08:47:11PM +0500, Andrey Rahmatullin wrote: > On Tue, Aug 14, 2018 at 05:33:01PM +0200, Andreas Tille wrote: > > > On Tue, Aug 14, 2018 at 04:21:10PM +0200, Andreas Tille wrote: > > > > libsrc/Wi/Makefile.am:544: library has 'libwi_base_la' as canonical > > > > name (possible typo) > > > This is correct, there is a var named libwi_base_la_cflags which seems to > > > be a generic var so it should be renamed to something not looking like > > > foo_cflags automake var. > > > > That's why I did s/cflags/CFLAGS/. > Ah, I was assuming the vars are case insensitive so the original name is > problematic. I assumed that Makefile variables are case sensitive and so Makefile.am variables are. I've never seen lower case spelling in those cases. > Do you have the same error without that change? Because the > canonical names of automake target vars are foo_CFLAGS. Automake was warning about typos and from what I can see these are simply typos. > > > > libsrc/Wi/Makefile.am:574: warning: variable 'libwi_odbc_la_LDFLAGS' is > > > > defined but no program or > > > > libsrc/Wi/Makefile.am:574: library has 'libwi_odbc_la' as canonical > > > > name (possible typo) > > > This is because that library is indeed not defined. > > > > > > > I searched the web for > > > >"library has" + "as canonical name (possible typo)" > > > Well, the error messages say "no program or library has that name" which > > > is correct: > > > > > > noinst_LTLIBRARIES = libwi.la libwic.la > > > > > > So this is just dead code. > > > > OK, I think I fixed this specifiv Makefile.am[1]. > So you've enabled building IODBC_LIBS? Why? It is disabled by the > upstream. It's a conditional variable (further above in Makefile.am). I see no point in uncommenting it since it can be enabled or disabled via flags. When enabling it the automake bug goes away and thus I assumed that would just have been a regression from some upstream change. > And you made a libwi_base.la which is not what was intended. As I said, > libwi_base_la_cflags is a generic var meant to be included in other vars. > And are you sure you need to fix those "LDLAGS" if it was that way in the > upstream code? May be I misunderstood your hint. What less invasive / more upstream intended patch would you suggest? Kind regards Andreas. -- http://fam-tille.de
Re: automake issue in virtuoso: "library has 'libwi_odbc_la' as canonical name (possible typo)"
On Tue, Aug 14, 2018 at 05:33:01PM +0200, Andreas Tille wrote: > > On Tue, Aug 14, 2018 at 04:21:10PM +0200, Andreas Tille wrote: > > > libsrc/Wi/Makefile.am:544: library has 'libwi_base_la' as canonical name > > > (possible typo) > > This is correct, there is a var named libwi_base_la_cflags which seems to > > be a generic var so it should be renamed to something not looking like > > foo_cflags automake var. > > That's why I did s/cflags/CFLAGS/. Ah, I was assuming the vars are case insensitive so the original name is problematic. Do you have the same error without that change? Because the canonical names of automake target vars are foo_CFLAGS. > > > libsrc/Wi/Makefile.am:574: warning: variable 'libwi_odbc_la_LDFLAGS' is > > > defined but no program or > > > libsrc/Wi/Makefile.am:574: library has 'libwi_odbc_la' as canonical name > > > (possible typo) > > This is because that library is indeed not defined. > > > > > I searched the web for > > >"library has" + "as canonical name (possible typo)" > > Well, the error messages say "no program or library has that name" which > > is correct: > > > > noinst_LTLIBRARIES = libwi.la libwic.la > > > > So this is just dead code. > > OK, I think I fixed this specifiv Makefile.am[1]. So you've enabled building IODBC_LIBS? Why? It is disabled by the upstream. And you made a libwi_base.la which is not what was intended. As I said, libwi_base_la_cflags is a generic var meant to be included in other vars. And are you sure you need to fix those "LDLAGS" if it was that way in the upstream code? -- WBR, wRAR signature.asc Description: PGP signature
Re: automake issue in virtuoso: "library has 'libwi_odbc_la' as canonical name (possible typo)"
Hi Andrey, On Tue, Aug 14, 2018 at 07:47:51PM +0500, Andrey Rahmatullin wrote: > On Tue, Aug 14, 2018 at 04:21:10PM +0200, Andreas Tille wrote: > > libsrc/Wi/Makefile.am:544: library has 'libwi_base_la' as canonical name > > (possible typo) > This is correct, there is a var named libwi_base_la_cflags which seems to > be a generic var so it should be renamed to something not looking like > foo_cflags automake var. That's why I did s/cflags/CFLAGS/. > > libsrc/Wi/Makefile.am:574: warning: variable 'libwi_odbc_la_LDFLAGS' is > > defined but no program or > > libsrc/Wi/Makefile.am:574: library has 'libwi_odbc_la' as canonical name > > (possible typo) > This is because that library is indeed not defined. > > > I searched the web for > >"library has" + "as canonical name (possible typo)" > Well, the error messages say "no program or library has that name" which > is correct: > > noinst_LTLIBRARIES = libwi.la libwic.la > > So this is just dead code. OK, I think I fixed this specifiv Makefile.am[1]. I learned that there are more issues of this kind in other Makefile.am. Hope to be able to deal with this thanks to you hints. Kind regards Andreas. [1] https://salsa.debian.org/science-team/virtuoso-opensource/commit/2a88abfb3bde303be1984090f08c34483abfcebe -- http://fam-tille.de
Re: automake issue in virtuoso: "library has 'libwi_odbc_la' as canonical name (possible typo)"
On Tue, Aug 14, 2018 at 04:21:10PM +0200, Andreas Tille wrote: > libsrc/Wi/Makefile.am:544: library has 'libwi_base_la' as canonical name > (possible typo) This is correct, there is a var named libwi_base_la_cflags which seems to be a generic var so it should be renamed to something not looking like foo_cflags automake var. > libsrc/Wi/Makefile.am:574: warning: variable 'libwi_odbc_la_LDFLAGS' is > defined but no program or > libsrc/Wi/Makefile.am:574: library has 'libwi_odbc_la' as canonical name > (possible typo) This is because that library is indeed not defined. > I searched the web for >"library has" + "as canonical name (possible typo)" Well, the error messages say "no program or library has that name" which is correct: noinst_LTLIBRARIES = libwi.la libwic.la So this is just dead code. -- WBR, wRAR signature.asc Description: PGP signature
automake issue in virtuoso: "library has 'libwi_odbc_la' as canonical name (possible typo)"
Hi, I've commited the latest free version of virtuoso to Debian Science git[1]. Unfortunately automake fails. I even tried inside build chroot: /build/virtuoso-opensource-7.2.4.2+dfsg# ./autogen.sh Checking build environment ... Using aclocal (GNU automake) 1.16.1 Using autoconf (GNU Autoconf) 2.69 Using autoheader (GNU Autoconf) 2.69 Using automake (GNU automake) 1.16.1 Using libtoolize (GNU libtool) 2.4.6 Using bison (GNU Bison) 3.0.4 Using flex 2.6.4 Using GNU Awk 4.1.4, API: 1.1 (GNU MPFR 4.0.1, GNU MP 6.1.2) Using GNU gperf 3.1 Using OpenSSL 1.1.0h 27 Mar 2018 Generating build scripts ... Running libtoolize ... libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'binsrc/config'. libtoolize: copying file 'binsrc/config/ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'binsrc/config'. libtoolize: copying file 'binsrc/config/libtool.m4' libtoolize: copying file 'binsrc/config/ltoptions.m4' libtoolize: copying file 'binsrc/config/ltsugar.m4' libtoolize: copying file 'binsrc/config/ltversion.m4' libtoolize: copying file 'binsrc/config/lt~obsolete.m4' Running aclocal ... Running autoheader ... Running automake ... ** ERROR ** libsrc/Wi/Makefile.am:544: library has 'libwi_base_la' as canonical name (possible typo) libsrc/Wi/Makefile.am:574: warning: variable 'libwi_odbc_la_LDFLAGS' is defined but no program or libsrc/Wi/Makefile.am:574: library has 'libwi_odbc_la' as canonical name (possible typo) Bootstrap script aborting (see autogen.log for details) ... I searched the web for "library has" + "as canonical name (possible typo)" which basically advised to seek for typos and I even fixed several of those[2] but either that's not in all cases the solution or it is something else behind this error. I admit I'm also a bit suspicious about adding -static flag to _la libraries. Any hint what might be wrong here? Kind regards Andreas. [1] https://salsa.debian.org/science-team/virtuoso-opensource [2] https://salsa.debian.org/science-team/virtuoso-opensource/blob/master/debian/patches/fix_makefile.am.patch -- http://fam-tille.de