diff --git a/abuild.in b/abuild.in index e8422204fcb036765372b5317056510299589cc4..8e575e716275f75d16a25981151e4f7b497c290a 100755 --- a/abuild.in +++ b/abuild.in @@ -1705,20 +1705,25 @@ scan_symlink_targets() { # check if python3 site packages are installed and depend on a compatible version scan_python3_dependency() { local controldir="$2" datadir="$3" - local site_pkg_dirs - if site_pkg_dirs="$(find "$datadir"/usr/lib/ -type d -regex '.*python3\.[0-9]\+/site-packages' -mindepth 2 -maxdepth 2 2>/dev/null)"; then - local pyver_count="$(echo "$site_pkg_dirs" | wc -l)" - if [ "$pyver_count" -gt 1 ]; then + local dir_count=0 + local site_pkg_dir + for site_pkg_dir in "$datadir"/usr/lib/python3*/site-packages; do + if ! [ -d "$site_pkg_dir" ]; then + # empty iteration + continue + fi + dir_count=$((dir_count + 1)) + if [ "$dir_count" -gt 1 ]; then error "package contains python3 modules for conflicting python3 versions" - exit 1 + return 1 fi - local pyver="${site_pkg_dirs##*usr/lib/python}" + local pyver="${site_pkg_dir##*usr/lib/python}" pyver="${pyver%%/*}" if [ -n "$pyver" ]; then echo "python3~$pyver" \ >> "$controldir"/.python3-needs fi - fi + done } #find pkg-config dependencies