From owner-svn-src-head@freebsd.org Tue Feb 28 23:50:56 2017 Return-Path: Delivered-To: svn-src-head@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 6DEF2CF2925; Tue, 28 Feb 2017 23:50:56 +0000 (UTC) (envelope-from linimon@lonesome.com) Received: from mail.soaustin.net (mail.soaustin.net [192.108.105.60]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.soaustin.net", Issuer "StartCom Class 2 IV Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4494C20C; Tue, 28 Feb 2017 23:50:55 +0000 (UTC) (envelope-from linimon@lonesome.com) Received: from lonesome.com (bones.soaustin.net [192.108.105.22]) by mail.soaustin.net (Postfix) with ESMTPSA id EF01016B; Tue, 28 Feb 2017 17:50:54 -0600 (CST) Date: Tue, 28 Feb 2017 17:50:53 -0600 From: Mark Linimon To: Gleb Smirnoff Cc: Benjamin Kaduk , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , Ravi Pokala , "src-committers@freebsd.org" , John Baldwin Subject: Re: svn commit: r314373 - in head: . etc/defaults etc/rc.d lib/libc/regex share/man/man4/man4.i386 share/man/man5 sys/amd64/conf sys/boot/forth sys/compat/svr4 sys/conf sys/dev/streams sys/i386/conf sy... Message-ID: <20170228235053.GB10976@lonesome.com> References: <201702280514.v1S5EhPq060885@repo.freebsd.org> <1969312.3TTRqhLH9r@ralph.baldwin.cx> <20170228193605.GJ1044@FreeBSD.org> <20170228213044.GK1044@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170228213044.GK1044@FreeBSD.org> User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Feb 2017 23:50:56 -0000 On Tue, Feb 28, 2017 at 01:30:44PM -0800, Gleb Smirnoff wrote: > How can I check the __FreeBSD_version in a port Makefile? My understanding > is that there is no standard way for such thing. There are hundreds of examples in port Makefiles. I suppose the PH will need to be updated to include some of them. It is hinted at under "INCLUDE" in https://www.freebsd.org/doc/en/books/porters-handbook/dads-noinstall.html but not made specific. Some quick examples: devel/cloudabi-toolchain/Makefile:.if ${OSVERSION} >= 1100100 devel/cvs-syncmail/Makefile:.if ${OPSYS} == FreeBSD && ${OSVERSION} > 1000000 devel/trio/Makefile.orig:# NB: OSVERSION was not incremented for r308559, so we use the earlier devel/trio/Makefile.orig:# 1200014 as a surrogate for now. devel/trio/Makefile.orig:.if ${OSVERSION} < 1100506 || ( ${OSVERSION} >= 1200000 && ${OSVERSION} < 1200014 ) devel/trio/Makefile.orig:BROKEN_aarch64= needs fixes from r308375, r308487, and/or r308559 devel/trio/Makefile.orig:.endif emulators/i386-wine/Makefile.inc:.if ${OPSYS} != FreeBSD || (!(${OSVERSION} < 1000000) && !(${OSVERSION} >= 1003000 && ${OSVERSION} < 1100000) && !(${OSVERSION} >= 1100121 && ${OSVERSION} < 1200000) && !(${OSVERSION} >= 1200019 && ${OSVERSION} < 1300000)) lang/ruby22/Makefile:.if exists(/usr/sbin/dtrace) && (${OSVERSION} > 1100032) && (${ARCH} == "amd64" || ${ARCH} == "i386") lang/tcc/Makefile:.if ${CC:T:M*clang*} || ${OSVERSION} >= 1000024 sysutils/e2fsprogs/Makefile:.if !empty(PORT_OPTIONS:MNOTESTS) && (${OPSYS} == FreeBSD) && (${OSVERSION} >= 1100000 || ((${ARCH} != i386) && (${ARCH} != amd64))) However, I am kind of shocked that this is not well understood -- especially after I have tried so many times to convince src committers to update FreeBSD_version in case of src changes that affect (e.g. break) ports. These are the kinds of things that ports committers have to use to work around changes in the src tree. Skipping OSVERSION updates makes this work more complicated. mcl