diff --git a/alint.5.scd b/alint.5.scd index 688b25247c9e40b78196cecc43277021be2ce679..80477c87a5fb29606c8901ee9ef4e6614a88474b 100644 --- a/alint.5.scd +++ b/alint.5.scd @@ -82,11 +82,13 @@ Declaring duplicate dependencies is superfluous. The pkgname variable of the APKBUILD has value *foo* but the directory in which the APKBUILD is found is not named *foo* -## makedepend-in-depends +## depends-makedepends-checkdepends-overlap -A package is present in both makedepends and depends which is superfluous since all -depends are installed alongside the makedepends, the package can be removed from -makedepends +A package is present in 2 to 3 of the 3 types of following dependencies: depends, +makedepends and checkdepends. All of them are installed during creation of the package, +please specify only once in the lowest common denominator location. + +## checkdepend-in-depends # TAGS (apkbuild-lint) diff --git a/aports-lint b/aports-lint index 084a327417575c106dd957120ea844796ecbb27b..1f2c827b9a4e403c3c6fa0e2d9f5aa06c4d776b6 100755 --- a/aports-lint +++ b/aports-lint @@ -136,14 +136,30 @@ pkgname_dirname_mismatch() { fi } -makedepend_in_depends() { - [ "$SKIP_MAKEDEPEND_IN_DEPENDS" ] && return 0 - local _mkdeps +depends_makedepends_checkdepends_overlap() { + [ "$SKIP_DEPENDS_MAKEDEPENDS_CHECKDEPENDS_OVERLAP" ] && return 0 + local _mkdeps _ckdeps d _mkdeps="$(echo $makedepends | tr " " "\\n" | sort -u)" + _ckdeps="$(echo $checkdepends | tr " " "\\n" | sort -u)" + [ -z "$_mkdeps" ] && [ -z "$_ckdeps" ] && return 0 for d in $depends; do if printf "%s\\n" "$_mkdeps" | grep -q "^$d$"; then printf "%s:: dependency '%s' is in depends and makedepends\n" "$apkbuild" "$d" fi + + # Don't check against checkdepends if it is empty + [ -z "$checkdepends" ] && continue + if printf "%s\\n" "$_ckdeps" | grep -q "^$d$"; then + printf "%s:: dependency '%s' is in depends and checkdepends\n" "$apkbuild" "$d" + fi + done + + # Don't check against checkdepends if it is empty + [ -z "$checkdepends" ] && return 0 + for d in $makedepends; do + if printf "%s\\n" "$_ckdeps" | grep -q "^$d$"; then + printf "%s:: dependency '%s' is in makedepends and checkdepends\n" "$apkbuild" "$d" + fi done } @@ -176,10 +192,7 @@ for apkbuild; do if [ ! -z "$makedepends" ]; then upper_repo_makedepends & duplicate_makedepends & - fi - - if [ "$makedepends" ] && [ "$depends" ]; then - makedepend_in_depends & + depends_makedepends_checkdepends_overlap & fi if [ ! -z "$checkdepends" ]; then