Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Oct 2015 11:02:21 -0700
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        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:  <56140CAD.8080200@FreeBSD.org>
In-Reply-To: <201510060418.t964Innu071170@repo.freebsd.org>
References:  <201510060418.t964Innu071170@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--XVfixN51tK1juSNcbC00taoMtN8KnmrhB
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

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

Perhaps the wrong place to discuss this, but I will anyhow as I don't
think it will change.

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.

[Note that the actual inclusion of src.conf no longer has a
_WITHOUT_SRCCONF=3D check, but that is trivial to fix]

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.

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).

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.=


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.

--=20
Regards,
Bryan Drewery


--XVfixN51tK1juSNcbC00taoMtN8KnmrhB
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQEcBAEBAgAGBQJWFAytAAoJEDXXcbtuRpfPWbEH/ie52EN2C59fjw5L8vtCOfz2
4mPWbGEdz6UkgpOXWVd6K3O+cQa7dvYXMGCj/XQ6kD8/P/udR/8oxnzc5/RU1nBP
uYRFMTlZs0HtzjzMyBmWoi2iKyMa09nB8Av8D94T6UiBnVw3O6K8PuvFHRE9ioEl
CmLGdRGr6LSWYJtiSj79itiUVwmyvi4DRIkVohpfIyF0G2BD/tje70l1AX4W0TRF
F/qpKi2BwOcI5CZVDJoP929cpmDBkezciawmu7sLyiyWkcpJU3eibikJqhsE7LZO
8QQKW4AMBZxGA7ET56u4V4DzR9XubdEBz7iOtc4NAR+A5qmIk0tnm3td3tp78co=
=QPmT
-----END PGP SIGNATURE-----

--XVfixN51tK1juSNcbC00taoMtN8KnmrhB--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?56140CAD.8080200>