From owner-svn-ports-all@freebsd.org Mon Mar 18 15:59:14 2019 Return-Path: Delivered-To: svn-ports-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6B5AE1545142; Mon, 18 Mar 2019 15:59:14 +0000 (UTC) (envelope-from mat@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0B0C48F476; Mon, 18 Mar 2019 15:59:14 +0000 (UTC) (envelope-from mat@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E655B2393A; Mon, 18 Mar 2019 15:59:13 +0000 (UTC) (envelope-from mat@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x2IFxDlI025134; Mon, 18 Mar 2019 15:59:13 GMT (envelope-from mat@FreeBSD.org) Received: (from mat@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x2IFxDZq025133; Mon, 18 Mar 2019 15:59:13 GMT (envelope-from mat@FreeBSD.org) Message-Id: <201903181559.x2IFxDZq025133@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mat set sender to mat@FreeBSD.org using -f From: Mathieu Arnold Date: Mon, 18 Mar 2019 15:59:13 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r496150 - head/Mk/Scripts X-SVN-Group: ports-head X-SVN-Commit-Author: mat X-SVN-Commit-Paths: head/Mk/Scripts X-SVN-Commit-Revision: 496150 X-SVN-Commit-Repository: ports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 0B0C48F476 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_SHORT(-0.96)[-0.959,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Mar 2019 15:59:14 -0000 Author: mat Date: Mon Mar 18 15:59:13 2019 New Revision: 496150 URL: https://svnweb.freebsd.org/changeset/ports/496150 Log: Add a blacklist of ports that other ports must not depend upon. Those ports are meta ports, and are only there to improve the user's experience, in which, if they want, say, python or gcc, they do not have to figure out what version they should be installing, they simply install python or gcc. Reviewed by: antoine Approved by: adamw Differential Revision: https://reviews.freebsd.org/D19562 Modified: head/Mk/Scripts/qa.sh (contents, props changed) Modified: head/Mk/Scripts/qa.sh ============================================================================== --- head/Mk/Scripts/qa.sh Mon Mar 18 15:37:24 2019 (r496149) +++ head/Mk/Scripts/qa.sh Mon Mar 18 15:59:13 2019 (r496150) @@ -925,10 +925,50 @@ license() return 0 } +# This is to prevent adding dependencies to meta ports that are only there to +# improve the end user experience. +depends_blacklist() +{ + local dep rc instead + + rc=0 + + for dep in ${UNIFIED_DEPENDS}; do + origin=$(expr "${dep}" : ".*:\([^@]*\)") + instead="" + + case "$origin" in + lang/python|lang/python2|lang/python3) + # lang/python depends on lang/pythonX, but it's + # ok, it is also in the blacklist. + if [ ${PKGORIGIN} != lang/python ]; then + instead="USES=python:xy with a specific version" + fi + ;; + lang/gcc) + instead="USE_GCC" + ;; + devel/llvm) + instead="a dependency on devel/llvm\${LLVM_DEFAULT}" + ;; + www/py-django) + instead="one of the www/py-djangoXYZ port" + ;; + esac + + if [ -n "${instead}" ]; then + err "$origin should not be depended upon. Instead, use $instead." + rc=1 + fi + done + + return $rc +} + checks="shebang symlinks paths stripped desktopfileutils sharedmimeinfo" checks="$checks suidfiles libtool libperl prefixvar baselibs terminfo" checks="$checks proxydeps sonames perlcore no_arch gemdeps gemfiledeps flavors" -checks="$checks license" +checks="$checks license depends_blacklist" ret=0 cd ${STAGEDIR} || exit 1