Re: Bug in make setting wrong MAKESYSPATH

From: Thomas Mueller <mueller6722_at_twc.com>
Date: Tue, 23 May 2017 06:54:43 +0000
> On Sun, May 21, 2017 at 1:54 AM, Thomas Mueller <mueller6722_at_twc.com> wrote:
> > I tried building ports, starting with ports-mgmt/synth, on HEAD (12-current) and ran into difficulties with syntax error in bsd.compiler.mk .

> > With PORTSDIR on another partition, mounted as /BETA1, I got these errors, but not when I null-mounted /BETA1/usr/ports as /usr/ports.

> > I shouldn't have to resort to this kludge, didn't have to in the recent past.

> > This bug shows in both 11.0-STABLE and 12.0-CURRENT.

> > I looked into "man make" and found that make got the wrong path for MAKESYSPATH, setting to /BETA1/usr/share/mk instead of what it should be, /usr/share/mk .

> > Going into /BETA1/usr/ports/archivers/zip (for a short and simple example),
> > make all-depends-list   produced

> > sh: Syntax error: ")" unexpected
> > make: "/BETA1/usr/share/mk/bsd.compiler.mk" line 52: warning: "echo 4.0.0 4.0.0) | awk -F. '{print $1 * 10000 + $2 * 100 + $3;}'" returned non-zero status
> > sh: Syntax error: ")" unexpected
> > make[1]: "/BETA1/usr/share/mk/bsd.compiler.mk" line 52: warning: "echo 4.0.0 4.0.0) | awk -F. '{print $1 * 10000 + $2 * 100 + $3;}'" returned non-zero status
> > /BETA1/usr/ports/ports-mgmt/pkg

> > make -m /usr/share/mk all-depends-list produces
> > /BETA1/usr/ports/ports-mgmt/pkg

> > This looks like a bug that ought to be fixed, though there is a workaround using "make -m /usr/share/mk ..." every time, or presumably, setting
> > MAKESYSPATH=/usr/share/mk
> > in the environment.

> > Should I file a bug report?

> > I could get much more verbose outputs when there are more dependencies, such as in /BETA1/usr/ports/ports-mgmt/synth, or more so,
> > /BETA1/usr/ports/www/seamonkey

> > I also noticed that in newer versions of FreeBSD, /usr/share/mk/bsd.compiler.mk has greatly increased in size (not a bug. except when "make" goes to the wrong MAKESYSPATH.

> > Maybe add in .cshrc and .profile
> > MAKESYSPATH=/usr/share/mk
> ?

> Hi Tom,

> make isn't at fault here as much as there's something else leaking
> bsd.compiler.mk into the ports build. That's not supposed to happen.

> Are you including any bsd.*.mk or src.*.mk files from /etc/make.conf ,
> /etc/src.conf , etc?

> Cheers,
> -Ngie

I looked through /etc/make.conf and /etc/src.conf, and there were no explicit references to any .mk files.

So I don't know what could have brought in /BETA1/usr/share/mk/bsd.compiler.mk .

from Simon J. Gerraty:

> The default value for MAKESYSPATH is ".../share/mk:/usr/share/mk" which
> is geared to building src/, there was some to and fro over that value
> when we first started using bmake, but that's what we settled on.

> Presumably /BETA1/usr/share/mk exists?
> If so, it will be found via .../share/mk if you start somewhere under
> /BETA1/usr/ports
        
> > This bug shows in both 11.0-STABLE and 12.0-CURRENT.

> Not a bug - working as intended, which doesn't mean it is doing what you
> want.

> You can of course set MAKESYSPATH as you wish, but of course
> /usr/share/mk would not be correct for building src/

/BETA1 is a mount point for a partition with an older FreeBSD 11-current (August 2015) installation.

Ports, doc, src11 (src tree for 11-STABLE), and src (src tree for HEAD) have been updated since then.

What if I had a NetBSD installation, or no BSD installation, on the partition where src and ports trees are located?

It seems to me that MAKESYSPATH should match the host building system FreeBSD version.

I also have /pkgsrc and /netbsd-HEAD/usr/src on that same partition mounted at /BETA1, and it didn't seem to have any adverse effect on building NetBSD system or packages.

For FreeBSD, besides setting MAKESYSPATH, I could mount_nullfs /BETA1/usr/ports at /usr/ports, and
/BETA1/usr/src or /BETA1/usr/src11 at /usr/src .

Now I believe the correct syntax for setting MAKESYSPATH in .cshrc and .profile would be
export MAKESYSPATH=/usr/share/mk  # for .profile, or
setenv MAKESYSPATH /usr/share/mk  # for .cshrc

Tom
Received on Tue May 23 2017 - 04:55:02 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:11 UTC