From owner-freebsd-current@freebsd.org Tue May 23 06:55:02 2017 Return-Path: Delivered-To: freebsd-current@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AE3EED7A9A2 for ; Tue, 23 May 2017 06:55:02 +0000 (UTC) (envelope-from mueller6722@twc.com) Received: from dnvrco-oedge-vip.email.rr.com (dnvrco-outbound-snat.email.rr.com [107.14.73.232]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "dnvrco-oedge-vip.email.rr.com", Issuer "dnvrco-oedge-vip.email.rr.com" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 8D5671735 for ; Tue, 23 May 2017 06:55:01 +0000 (UTC) (envelope-from mueller6722@twc.com) Received: from [74.134.208.22] ([74.134.208.22:11010] helo=localhost) by dnvrco-omsmta03 (envelope-from ) (ecelerity 3.6.9.48312 r(Core:3.6.9.0)) with ESMTP id E3/CD-25473-3CCD3295; Tue, 23 May 2017 06:55:00 +0000 Date: Tue, 23 May 2017 06:54:43 +0000 Message-ID: From: "Thomas Mueller" To: CC: Ngie Cooper , "Simon J. Gerraty" Subject: Re: Bug in make setting wrong MAKESYSPATH References: <4E.66.25473.9D551295@dnvrco-omsmta03> <81057.1495500066@kaos.jnpr.net> X-RR-Connecting-IP: 107.14.64.88:25 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 May 2017 06:55:02 -0000 > On Sun, May 21, 2017 at 1:54 AM, Thomas Mueller 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