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
This commit is contained in:
Mathieu Arnold
2019-03-18 15:59:13 +00:00
parent add78b4509
commit a29c880f74

View File

@@ -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