pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pkg_create fails for math/octave



On Wed, Mar 05, 2014 at 15:37:13 -0800, Iain Morgan wrote:
> Hello,
> 
> With the 2013Q4 pkgsrc snapshot on SLES 11, pkg_create fails for
> math/octave.
> 
> There seem to be two issues:
> 
>       - The PLIST file refers to charset.alias which does not exist.
>       - There is a discrepency in the directory structure generated
>         from the PLIST and the actual directory structure.
> 
> The only occurence of charset.alias under the work directory is:
> 
>       ./work/octave-3.6.4/libgnu/charset.alias
> 
> It is, indeed, missing from under work/.destdir, but I'm not sure why.
> 
> The discrepancy in the directory structure is in the name of a single
> directory in the path: x86_64-unknown-linux vs.
> x86_64-unknown-linux-gnu.
> 
> /u/imorgan/work/math/octave/work/.tools/bin/mkdir -p 
> /u/imorgan/work/math/octave/work/.destdir/u/imorgan/pkg/s
> hare/octave/site/m 
> /u/imorgan/work/math/octave/work/.destdir/u/imorgan/pkg/share/octave/site/api-v48+/m
>  /u/imo
> rgan/work/math/octave/work/.destdir/u/imorgan/pkg/share/octave/3.6.4/site/m 
> /u/imorgan/work/math/octave/work/.
> destdir/u/imorgan/pkg/lib/octave/site/oct/x86_64-unknown-linux-gnu 
> /u/imorgan/work/math/octave/work/.destdir/u
> /imorgan/pkg/lib/octave/site/oct/api-v48+/x86_64-unknown-linux-gnu 
> /u/imorgan/work/math/octave/work/.destdir/u
> /imorgan/pkg/lib/octave/3.6.4/site/oct/x86_64-unknown-linux-gnu 
> /u/imorgan/work/math/octave/work/.destdir/u/im
> organ/pkg/libexec/octave/site/exec/x86_64-unknown-linux-gnu 
> /u/imorgan/work/math/octave/work/.destdir/u/imorga
> n/pkg/libexec/octave/api-v48+/site/exec/x86_64-unknown-linux-gnu 
> /u/imorgan/work/math/octave/work/.destdir/u/i
> morgan/pkg/libexec/octave/3.6.4/site/exec/x86_64-unknown-linux-gnu
>  /u/imorgan/work/math/octave/work/.tools/bin/mkdir -p 
> '/u/imorgan/work/math/octave/work/.destdir/u/imorgan/pkg
> /include/octave-3.6.4/octave'
>  /usr/bin/install -c -o imorgan -g cstaff -m 644 config.h 
> '/u/imorgan/work/math/octave/work/.destdir/u/imorgan
> /pkg/include/octave-3.6.4/octave'
>  /u/imorgan/work/math/octave/work/.tools/bin/mkdir -p 
> '/u/imorgan/work/math/octave/work/.destdir/u/imorgan/pkg
> /share/octave/3.6.4/etc'
>  /usr/bin/install -c -o imorgan -g cstaff -m 644 NEWS 
> '/u/imorgan/work/math/octave/work/.destdir/u/imorgan/pkg
> /share/octave/3.6.4/etc'
> make[3]: Leaving directory 
> `/nobackupnfs2/imorgan/pkgsrc/2013Q4/workdir/math/octave/work/octave-3.6.4'
> make[2]: Leaving directory 
> `/nobackupnfs2/imorgan/pkgsrc/2013Q4/workdir/math/octave/work/octave-3.6.4'
> make[1]: Leaving directory 
> `/nobackupnfs2/imorgan/pkgsrc/2013Q4/workdir/math/octave/work/octave-3.6.4'
> => Automatic manual page handling
> pkg_create: can't stat 
> `/u/imorgan/work/math/octave/work/.destdir/u/imorgan/pkg/lib/charset.alias'
> pkg_create: can't stat 
> `/u/imorgan/work/math/octave/work/.destdir/u/imorgan/pkg/lib/octave/3.6.4/oct/x86_64-un
> known-linux/PKG_ADD'
> pkg_create: can't stat 
> `/u/imorgan/work/math/octave/work/.destdir/u/imorgan/pkg/lib/octave/3.6.4/oct/x86_64-un
> known-linux/__contourc__.oct'
> ...
> 
> % ls work/.destdir/u/imorgan/pkg/lib/octave/3.6.4/oct/
> x86_64-unknown-linux-gnu
> 
> Any recommendations on how/where to fix these issues?
> 
> Thanks,
> 
> -- 
> Iain Morgan

Hello,

I finally got some time to look into this issue in a little more detail.

To clarify the directory mismatch issue, the output from build-aux/config.guess
in the source distribution does not match MACHINE_GNU_PLATFORM;
build-aux/config.guess has a trailing -gnu. I tried using :S to modify
the variable, but that only cuased mk/plist/plist.subst.awk to ignore
teh variable.

The other issue is due to the conditional inclusion of charset.alias,
whereas the PLIST file unconditionally includes it. From
lbgnu/Makefile.in, 

        if test $(GLIBC21) = no; then \
          case '$(host_os)' in \
            darwin[56]*) \
              need_charset_alias=true ;; \
            darwin* | cygwin* | mingw* | pw32* | cegcc*) \
              need_charset_alias=false ;; \
            *) \
              need_charset_alias=true ;; \
          esac ; \
        else \
          need_charset_alias=false ; \
        fi ; \
        if $$need_charset_alias; then \
          $(mkinstalldirs) $(DESTDIR)$(libdir) ; \
        fi ; \
        if test -f $(charset_alias); then \
          sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \
          $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
          rm -f $(charset_tmp) ; \
        else \
          if $$need_charset_alias; then \
            sed -f ref-add.sed charset.alias > $(charset_tmp) ; \
            $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
            rm -f $(charset_tmp) ; \
          fi ; \
        fi

To avoid having to duplicate part of this logic for the PLIST file, it
might be best to uncoditionally set need_charset_alias.

-- 
Iain Morgan


Home | Main Index | Thread Index | Old Index