pkgsrc-Users archive

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

Re: pkgsrc bootstraping issuse with CVS from 02 December 2021 on UnixWare ./bootstrap --full --prefer-pkgsrc=yes



Am 03.12.2021 um 14:53 schrieb Boyd Lynn Gerber:
Hello,

I did the following.
./bootstrap --full --prefer-pkgsrc=yes >> bstrp.log 2>&1

It bootstraps till it strats doing an install.

It stops ...
===> Installing packages
===> running: (cd /home/build/pkgsrc/pkgtools/bootstrap-mk-files &&
/home/build/pkgsrc/bootstrap/work/bin/bmake  MAKE_JOBS=1
PKG_COMPRESSION=none -DPKG_PRESERVE PKGSRC_KEEP_BIN_PKGS=no
MAKECONF=/home/build/pkgsrc/bootstrap/work/mk.conf install)
===> Installing dependencies for bootstrap-mk-files-20180901
=>  Tool dependency coreutils>=5.2.1: NOT found
=>  Verifying reinstall for ../../sysutils/coreutils
ERROR:  [depends.mk] Installed package digest-20211023 has an
ERROR:      object format ``ELF'' which differs from ``a.out''.  Please
ERROR:      update the digest-20211023 package to a.out.

There may be a cyclic dependency between bootstrapping and coreutils.
At the point where bootstrap is failing, bmake has already been made,
and there is also a mk.conf, so you have the ingredients for querying
the configuration of the pkgsrc installation.

I'd try this:

    cd /home/build/pkgsrc/sysutils/coreutils && \
    /home/build/pkgsrc/bootstrap/work/bin/bmake \
        MAKECONF=/home/build/pkgsrc/bootstrap/work/mk.conf \
        show-all

If I read the code correctly, "bmake show-all" does not depend on any
tool definitions, it just needs a working printf(1).  So it should work
on any platform, even during bootstrap.

Another idea is:

* coreutils includes uname
* OBJECT_FMT probably depends on the output of uname
* mk/tools/tools.UnixWare.mk does not define TOOLS_PLATFORM.uname

You can try to define TOOLS_PLATFORM.uname, maybe that already helps.

I am not sure what to make of this message.

I want everything to use ELF.

This error message looks like a bug in determining the object file format.

As a first step to find out the details, you can run "bmake show-all"
and search the output for "a.out".  For me on NetBSD, the output only
contains OBJECT_FMT=ELF a few times, but a.out does not occur anywhere.

The error message comes from [depends.mk], but mk/depends/depends.mk
doesn't contain the error message.  This is because the package format
details are factored out to mk/pkgformat/pkg/depends.mk.  The code over
there mentions OBJECT_FMT as well, so that's a good hint.  I suspect
that running "bmake -v OBJECT_FMT" outputs "a.out" for you, but it
shouldn't.

Maybe it helps to just "grep -wr OBJECT_FMT mk/".

If that didn't help, you can run "bmake -dA -v OBJECT_FMT", which
outputs several thousand lines, but for me only 23 of them contain the
word OBJECT_FMT.

From the above steps, you will probably get enough insights to narrow
down where OBJECT_FMT=a.out comes from.

Roland


Home | Main Index | Thread Index | Old Index