Skip site navigation (1)Skip section navigation (2)
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>