Date: Tue, 6 Oct 2015 14:24:24 -0600 From: Warner Losh <imp@bsdimp.com> To: Bryan Drewery <bdrewery@freebsd.org> Cc: Warner Losh <imp@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r288911 - head/share/mk Message-ID: <8D5D1CE5-BC57-464D-9C47-63EFF4C1CF2F@bsdimp.com> In-Reply-To: <56140CAD.8080200@FreeBSD.org> References: <201510060418.t964Innu071170@repo.freebsd.org> <56140CAD.8080200@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--Apple-Mail=_0826EF31-BDA6-4AD7-BE36-5374B309BE59 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 > On Oct 6, 2015, at 12:02 PM, Bryan Drewery <bdrewery@freebsd.org> = wrote: >=20 > On 10/5/2015 9:18 PM, Warner Losh wrote: >> Author: imp >> Date: Tue Oct 6 04:18:48 2015 >> New Revision: 288911 >> URL: https://svnweb.freebsd.org/changeset/base/288911 >>=20 >> Log: >> Previous versions of bsd.own.mk included bsd.compiler.mk >> only when _WITHOUT_SRCCONF wasn't defined. Restore this >> behavior because bsd.ports.mk depends on this in subtle >> ways. The compat include of bsd.compiler.mk should >> be removed in 12 anyway. >>=20 >> PR: 203540 >>=20 >=20 > Perhaps the wrong place to discuss this, but I will anyhow as I don't > think it will change. >=20 > The sys.mk change to include src.conf breaks building ports in a = sub-dir > of src. Meaning, /usr/src/ports/. The MAKESYSPATH with '.../share/mk' > finds /usr/src/share/mk and runs off with all of the src.*.mk stuff = long > before the port Makefile includes bsd.port.mk, from > /usr/src/share/mk/bsd.port.mk, which has a _WITHOUT_SRCCONF=3D guard = set > on it to avoid bsd.own.mk from including src.conf. But because sys.mk > is already included long before this, src.conf is already included and > anything handled in sys.mk has no real way to respect _WITHOUT_SRCCONF > unless it is in the environment Yuck! But the real problem here is MAKESYSPATH of =E2=80=A6/share/mk. That was = a hack until we had something like SRCTOP that we could use for finding the right stuff and for individual builds. So if we can solve that part = of the problem, we can get rid of the default =E2=80=A6/share/mk definition. It = wasn=E2=80=99t anticipated to be something forever, just something for the moment. > [Note that the actual inclusion of src.conf no longer has a > _WITHOUT_SRCCONF=3D check, but that is trivial to fix] That likely got lost in the shuffle. Agreed, it=E2=80=99s easier to add = back in. > Why would anyone build ports in a sub-dir of src? It's convenient for = a > vendor building their own product that needs their own ports tree. = Some > decisions can't easily be changed; if the root of the source code > checkout is already src/, there is no simple way to avoid the problem. We do it too=E2=80=A6 It=E2=80=99s evil, but there you go. > With the META_MODE changes, sjg introduced this /etc/src-env.conf file > that is included from sys.mk early, that can be used for overriding > things like MAKEOBJDIRPREFIX, enabling META_MODE (it needs to be set > extremely early for AUTO_OBJ support, among other things). >=20 > As far as I can tell, the sys.mk change to include src.conf early was > done out of convenience. Meaning, we could remove that and just add > back a .include <src.init.mk> or similar at the top of all src = Makefiles. All src makefiles? Yea, I=E2=80=99d rather hoped to avoid that, though = it is easily scripted. I=E2=80=99d thought of this solution at the time I did the = MAKESYSPATH hack, and rejected it as being too unwieldy. And having that at the top of all the files would still require MAKESYSPATH need to be =E2=80=A6/shar= e/mk to work out. I was rather hoping we could find some good way around doing that. > I would really like to find a solution to this as it is a looming > problem for my work's build approaching in a few months. I figured out = a > hack we can use locally, to set _WITHOUT_SRCCONF=3D, when the current > directory has "ports/" in it. That works for us, but not for other > vendors who don't realize this is coming. Perhaps the scope of people > doing this is not large. One trivial solution would be to only do ports sub-builds with _WITHOUT_SRCCONF defined. But like all good kludges, I imagine there=E2=80=99d be logistical issues with that. Warner --Apple-Mail=_0826EF31-BDA6-4AD7-BE36-5374B309BE59 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQIcBAEBCgAGBQJWFC34AAoJEGwc0Sh9sBEAEkQP/R8z7vjC4m6crEhhO1hQVCCD qHNbIL3qXGrM0IKTqJRTQ4GXLd1ep5394DhCbU3DhqY2GXyHp9HS0+GrIGv/9Kxz IVN821cDZwyPKjnK/nvoXfIfJdKs//GFRhDnX28BEW6CTIrQp9xoQR2DjCMNbsaT Ru+r/VGDyjv+ebT8Qs9fvBUQNO6zRlCuhyy0/BFjLck+JyfV62PSsE901ivMUkxx 33fqw/0VVlsbj4htQU4WV8RbexQwswwuDUxcnd9esz6hgttJ0A37K5tNi8mgr+i6 XOQhKJBwqJ4erJTZODotnaK5DglY3h6JhnPyWpwohixhb7O8YaGOuUB+15ohQrVF bfCPSP/YSNTN4OF/61BR1bqkjlDxgW7DTkYPmHyGs1iANALJal58DHxW4W73walf FZZTuiyxDHppLZp5dt/BLFAaVNe8cXeR98QaVa9WQLVBUF29YCkhNkMjlpPA9e58 5/ivIlcbe2+7cqZF0X4xg5L2mBNsGtfE5SFsMqRqIBxfMbg0jPSDmE6Q5/t2GjrC tWHT1G8shfBcgZTIIGETCOAReQA57kM7j8g1MUXsGAiaJbCinJ9yc4fw+MrxDDQw VOKpHecuS6C7cPfIPRtMsGkyEZzQHLFOVi7A8fJT1WCC1EiqkrwQfDiEWBhF05Hd LRncRi3iy6iFRpHiTpWW =vZzd -----END PGP SIGNATURE----- --Apple-Mail=_0826EF31-BDA6-4AD7-BE36-5374B309BE59--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8D5D1CE5-BC57-464D-9C47-63EFF4C1CF2F>