Subject: Re: pkg/34971: www/elinks PLIST problem
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: Robert Elz <kre@munnari.OZ.AU>
List: pkgsrc-bugs
Date: 11/03/2006 23:10:02
The following reply was made to PR pkg/34971; it has been noted by GNATS.

From: Robert Elz <kre@munnari.OZ.AU>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: pkg/34971: www/elinks PLIST problem 
Date: Sat, 04 Nov 2006 04:48:44 +0700

     Date:        Fri,  3 Nov 2006 11:45:02 +0000 (UTC)
     From:        Joerg Sonnenberger <joerg@britannica.bec.de>
     Message-ID:  <20061103114502.6188563BAA7@narn.NetBSD.org>
 
   |  The file is not supposed to be created by elinks -- that's the bug. Just
   |  a wild guess -- check whether it is actually using a local version of
   |  gettext/libintl. That would explain the problem.
 
 By "local version" do you mean one included with elinks itself?   If so,
 it might be (see below, maybe you can tell).
 
 Aside from that possibility, I doubt it.   I just tried it again, new
 sandbox, standard NetBSD 3.0 installed in it, my standard set of
 "always have" packages...
 
 digest-20060826     Message digest wrapper utility
 x11-links-0.30      Shadow tree of links to native X11 headers and libraries
 perl-5.8.8nb3       Practical Extraction and Report Language
 p5-MIME-Base64-3.07 Perl5 module for Base64 and Quoted-Printable encodings
 p5-Digest-1.15      Perl5 base class for Digest:: modules
 p5-Digest-SHA1-2.11 Perl5 module for SHA1
 p5-pkgsrc-Dewey-1.0nb1 Perl module to compare pkgsrc Dewey numbers
 pkglint-4.73        Verifier for NetBSD packages and complete pkgsrc tree
 
 which do install /usr/pkg/share/locale (perl I suppose...) but there's
 no locale.alias at that point.   I have no idea why it isn't mentioned,
 but libkver should be there as well (actually, looking back, I do, there
 are complaints about /var/db/pkg not existing, so I guess it failed to
 be registered - that's probably a pkg_comp bug).
 
 Then pkg_comp build www/elinks
 
 That first installs . ..
 
 gmake-3.81          GNU version of 'make' utility
 lua-5.1.1nb1        Powerful light-weight language for extending applications
 
 from binary packages compiled in advance ...
 
 Then elinks itself
 
 elinks-0.11.1nb5    Extended/Enhanced Links
 
 which fails to build a binary package, as by this time, locale.alias has
 appeared.   As best I can tell, the only gettext that can possibly be
 around is the one shipped with NetBSD 3.0.
 
 I just tried this again, and manually installed gmake and lua (well,
 manually via pkg_comp build - which just picked up the binary packages).
 
 No locale.alias after those two (and the standard set that precede them) are
 installed.  No gettext in /usr/pkg/bin or /usr/pkg/sbin, no libintl
 in /usr/pkg/lib (there is no /usr/local or any other such stuff).
 
 Building elinks again, along the way it says ...
 
 checking for __argz_next... no
 checking for iconv... yes
 checking for iconv declaration... 
          extern size_t iconv (iconv_t cd, const char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
 checking for nl_langinfo and CODESET... yes
 checking for LC_MESSAGES... yes
 checking whether NLS is requested... yes
 checking for msgfmt... /usr/bin/msgfmt
 checking for gmsgfmt... /usr/bin/msgfmt
 checking for xgettext... /usr/bin/xgettext
 checking for bison... no
 checking for catalogs to be installed...  be bg ca cs da de el es et fi fr gl hr hu id is it lt nl nb pl pt pt_BR ro ru sk sr sv tr uk
 checking fsplib.h usability... no
 checking fsplib.h presence... no
 checking for fsplib.h... no
 test: 4: unexpected operator
 configure: creating ./config.status
 config.status: creating Makefile.config
 config.status: creating contrib/elinks.spec
 config.status: creating contrib/lua/hooks.lua
 config.status: creating contrib/conv/w3m2links.awk
 config.status: creating doc/man/man1/elinks.1
 config.status: creating src/intl/gettext/ref-add.sed
 config.status: creating src/intl/gettext/ref-del.sed
 config.status: creating config.h
 
 
 So, /usr/bin/msgfmt /usr/bin/xgettext (which both must be NetBSD3.0 standard).
 
 This far through the build, locale.alias still doesn't exist.
 
 Compilation proceeds, we get to (or past)
 
 => Unwrapping files-to-be-installed.
 ===> Installing for elinks-0.11.1nb5
 => Generating pre-install file lists
 
 and locale.alias still doesn't exist.
 
 Then I see, a bit later...
 
 gmake[2]: Leaving directory `/pkg_comp/obj/pkgsrc/www/elinks/default/elinks-0.11.1/src/globhist'
 [MAKE install]   src/intl
 gmake[2]: Entering directory `/pkg_comp/obj/pkgsrc/www/elinks/default/elinks-0.11.1/src/intl'
 [MAKE install]   src/intl/gettext
 gmake[3]: Entering directory `/pkg_comp/obj/pkgsrc/www/elinks/default/elinks-0.11.1/src/intl/gettext'
 /bin/sh config.charset 'i386--netbsdelf' > ../../../src/intl/gettext/charset.alias.new
 mv ../../../src/intl/gettext/charset.alias.new ../../../src/intl/gettext/charset.alias
 gmake[3]: Leaving directory `/pkg_comp/obj/pkgsrc/www/elinks/default/elinks-0.11.1/src/intl/gettext'
 gmake[2]: Leaving directory `/pkg_comp/obj/pkgsrc/www/elinks/default/elinks-0.11.1/src/intl'
 
 And sometime around, or a bit after this, locale.alias
 (in /usr/pkg/share/locale) has appeared.   The exact timing is a bit
 fuzzy as I'm "stopping" the build by just ^S'ing the output being sent
 to the terminal, causing the process to suspend when output fills the
 buffers - and I'm connected on a (sluggish) ssh connection at the minute,
 so there is probably quite a lot more done than it appears, all I can
 really do is guess that the fragment included above is what caused
 locale.alias to appear.
 
 None of the output after the fragment above (until it all fails, after the
 install completes and the binary package build is supposed to happen)
 appears to have anything to do with locales, internationalisation, or
 anything like that (in fact, none of it looks to be doing anything much
 at all, just lots of entering and exiting directories with "Nothing to be
 done for `install'."
 
 It all ends with just about the only other part that isn't "Nothing to be
 done" ...
 
 gmake[3]: Entering directory `/pkg_comp/obj/pkgsrc/www/elinks/default/elinks-0.11.1/src/viewer/text'
 gmake[3]: Nothing to be done for `install'.
 gmake[3]: Leaving directory `/pkg_comp/obj/pkgsrc/www/elinks/default/elinks-0.11.1/src/viewer/text'
 gmake[2]: Leaving directory `/pkg_comp/obj/pkgsrc/www/elinks/default/elinks-0.11.1/src/viewer'
       [CC]   src/vernum.o
       [LD]   src/lib.o
     [LINK]   src/elinks
 lib.o(.text+0x57803): In function `l_tmpname':
 : warning: warning: tempnam() possibly used unsafely, use mkstemp() or mkdtemp()
      [INSTALL]   src/elinks -> /usr/pkg/bin
 gmake[1]: Leaving directory `/pkg_comp/obj/pkgsrc/www/elinks/default/elinks-0.11.1/src'
 => Automatic manual page handling
 => Generating post-install file lists
 => Registering installation for elinks-0.11.1nb5
 elinks-0.11.1nb5 requires installed package lua-5.1.1nb1
 => Checking for missing run-time search paths in elinks-0.11.1nb5
 => Checking for work-directory references in elinks-0.11.1nb5
 => Checking file-check results for elinks-0.11.1nb5
 ERROR: ************************************************************
 ERROR: The following files are in /usr/pkg but not in the PLIST:
 ERROR:         /usr/pkg/share/locale/locale.alias
 *** Error code 1
 
 I hope this helps you, or someone, find out what is going on (and
 incidentally, setting up pkg_comp so you can play in a virgin arena
 and see it for yourself is really very easy...)
 
 kre