Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 30 Sep 2014 13:18:30 -0500
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org, Colin Percival <cperciva@freebsd.org>, dvl@FreeBSD.org
Subject:   Re: svn commit: r369644 - in head: . Mk
Message-ID:  <542AF3F6.1010502@FreeBSD.org>
In-Reply-To: <201409301622.s8UGM5lB082567@svn.freebsd.org>
References:  <201409301622.s8UGM5lB082567@svn.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)
--COre9JdrEa0DwgAhVfqaLHb09IAp19cVh
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

This broke portsnap INDEX and FreshPorts. Please update their
configuration. I've partially reverted for now.

Portsnap needs to decide which release it is using:

"/usr/ports/Mk/bsd.port.mk", line 1209: UNAME_r (10.0-RELEASE) and
OSVERSION (899999) do not agree on major version number.

FreshPorts needs OSVERSION defined for its env:

Error message is: "/usr/local/PORTS-head/Mk/bsd.port.mk", line 1201:
Unable to determine OS version.  Either define OSVERSION, install
/usr/include/sys/param.h or define SRC_BASE.


On 9/30/2014 11:22 AM, Bryan Drewery wrote:
> Author: bdrewery
> Date: Tue Sep 30 16:22:05 2014
> New Revision: 369644
> URL: http://svnweb.freebsd.org/changeset/ports/369644
> QAT: https://qat.redports.org/buildarchive/r369644/
>=20
> Log:
>   If either of OSVERSION or UNAME_r is improperly set when building in =
a
>   jail/chroot, a number of unexpected errors can occur.
>  =20
>     1. autotools fixup may not run when needed. This could be avoided b=
y always
>        running it [PR 177980, 177403].
>     2. Not having UNAME_r set will cause many unknown
>        errors. Many ports use OSREL (derived from UNAME_r) to determine=
 the name
>        of files. This is usually also due to the port build itself usin=
g uname -r
>        to derive filenames or 'built for' messages. [PR 192449, 191943]=
 Without
>        having these sanity checks it is very easy for users to get into=

>        situations where "everything worked" until they touch a certain =
port that
>        reads uname(1) output or OSVERSION. It has always been necessary=
 to define
>        all of the UNAME_ vars and OSVERSION (or have a proper sys/param=
=2Eh
>        present), but many users do not know this.
>  =20
>   Remove the fallback on the kernel for kern.osreldate as it easily get=
s the
>   answer wrong.
>  =20
>   I have added sanity checks to ensure OSVERSION=3D=3DOSREL=3D=3DUNAME_=
r as these are the
>   most critical vars to have set properly.
>  =20
>   Differential Revision:	https://reviews.freebsd.org/D869
>   PR:			177980, 177403, 192449, 191943
>   Reviewed by:		antoine, bapt, gjb
>   With hat:		portmgr
>=20
> Modified:
>   head/CHANGES
>   head/Mk/bsd.port.mk
>=20
> Modified: head/CHANGES
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/CHANGES	Tue Sep 30 16:19:41 2014	(r369643)
> +++ head/CHANGES	Tue Sep 30 16:22:05 2014	(r369644)
> @@ -10,6 +10,36 @@ in the release notes and/or placed into=20
> =20
>  All ports committers are allowed to commit to this file.
> =20
> +20140930:
> +AUTHOR: bdrewery@FreeBSD.org
> +
> +  Building ports in a chroot or jail have always required a particular=

> +  environment be setup. This was not clear though and the ports framew=
ork
> +  did not enforce it. These requirements are:
> +    1. Either a SRC_BASE/sys/sys/param.h, or /usr/include/sys/param.h =
be
> +       present with the __FreeBSD_version_ number of the target system=
,
> +       or OSVERSION be set in the environment. Lack of these would fal=
lback
> +       on kern.osreldate before, which is no longer the case.
> +    2. UNAME_r,UNAME_v,UNAME_s all must be set for the target system.
> +
> +  Not having these values in sync will now cause the build to error un=
til it is
> +  resolved.
> +
> +  Setting these in the environment can be done via your own wrapper sc=
ripts,
> +  or /etc/login.conf (along with cap_mkdb /etc/login.conf) or
> +  via /etc/make.conf using appropriate values. Note that OSVERSION is =
redundant
> +  if a proper param.h is in the environment:
> +
> +    OSVERSION+=3D     1100036
> +    UNAME_ENV+=3D     OSVERSION=3D${OSVERSION}
> +    UNAME_ENV+=3D     UNAME_s=3DFreeBSD
> +    UNAME_ENV+=3D     UNAME_r=3D11.0-CURRENT
> +    UNAME_ENV+=3D     UNAME_v=3D"${UNAME_s} ${UNAME_r}"
> +    .MAKEFLAGS:     ${UNAME_ENV}
> +    MAKE_ENV+=3D      ${UNAME_ENV}
> +    CONFIGURE_ENV+=3D ${UNAME_ENV}
> +    SCRIPTS_ENV+=3D   ${UNAME_ENV}
> +
>  20140922:
>  AUTHOR: bapt@FreeBSD.org
> =20
>=20
> Modified: head/Mk/bsd.port.mk
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/Mk/bsd.port.mk	Tue Sep 30 16:19:41 2014	(r369643)
> +++ head/Mk/bsd.port.mk	Tue Sep 30 16:22:05 2014	(r369644)
> @@ -1186,10 +1186,10 @@ ARCH!=3D	${UNAME} -p
>  OPSYS!=3D	${UNAME} -s
>  .endif
> =20
> +UNAMER!=3D${UNAME} -r
> +
>  # Get the operating system revision
> -.if !defined(OSREL)
> -OSREL!=3D	${UNAME} -r | ${SED} -e 's/[-(].*//'
> -.endif
> +OSREL?=3D	${UNAMER:C/-.*//}
> =20
>  # Get __FreeBSD_version
>  .if !defined(OSVERSION)
> @@ -1198,10 +1198,19 @@ OSVERSION!=3D	${AWK} '/^\#define[[:blank:]
>  .elif exists(${SRC_BASE}/sys/sys/param.h)
>  OSVERSION!=3D	${AWK} '/^\#define[[:blank:]]__FreeBSD_version/ {print $=
$3}' < ${SRC_BASE}/sys/sys/param.h
>  .else
> -OSVERSION!=3D	${SYSCTL} -n kern.osreldate
> +.error Unable to determine OS version.  Either define OSVERSION, insta=
ll /usr/include/sys/param.h or define SRC_BASE.
>  .endif
>  .endif
> =20
> +# Convert OSVERSION to major release number
> +_OSVERSION_MAJOR=3D	${OSVERSION:C/([0-9]?[0-9])([0-9][0-9])[0-9]{3}/\1=
/}
> +# Sanity checks for chroot/jail building.
> +.if ${_OSVERSION_MAJOR} !=3D ${UNAMER:R}
> +.error UNAME_r (${UNAMER}) and OSVERSION (${OSVERSION}) do not agree o=
n major version number.
> +.elif ${_OSVERSION_MAJOR} !=3D ${OSREL:R}
> +.error OSREL (${OSREL}) and OSVERSION (${OSVERSION}) do not agree on m=
ajor version number.
> +.endif
> +
>  # Enable new xorg for FreeBSD versions after Radeon KMS was imported u=
nless
>  # WITHOUT_NEW_XORG is set.
>  .if (${OSVERSION} >=3D 902510 && ${OSVERSION} < 1000000) || ${OSVERSIO=
N} >=3D 1000704
>=20


--=20
Regards,
Bryan Drewery


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

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (MingW32)

iQEcBAEBAgAGBQJUKvP3AAoJEDXXcbtuRpfPRmcIALKeXZZpoDdMukHcaZWcs3Kv
hGfqzHIPHH7BDz+QDv3q6es1yRwfAglc+/6Cb/gJR0aDapCntCQj0eQ0/ivelM62
M4VfElFzturHVR9lUZW/aTAIea0+Kbtft/NueHQvMnsm6qONoE9Bdqpe0N6Cysz5
+ogo1Aaktu8oRtwzt1eNBKC5lMABqkLqc1TZbyuUX1/hO0Aujtb3W6J3VAi+ye5I
If7yccDyPzVq24bCW3JtNJEJ9NtEqtTegD73dF0AUEjSMmgTrJaR1eRHvPtvQg0L
DBXZ6v1qkb3Qh2vdoHlGd8VeY2FZ6c8sB2QXRRjMi2ZLx/HsQXU04alb9XQ4c3A=
=G2k1
-----END PGP SIGNATURE-----

--COre9JdrEa0DwgAhVfqaLHb09IAp19cVh--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?542AF3F6.1010502>