From 5201163ec2b6dacd904bf3c994b2aaf7bef41a51 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Mon, 15 Jul 2019 14:38:28 +0200 Subject: bin/nit-picker,lib/common-functions: separate extract_dependencies_from_package() for external reuse --- bin/nit-picker | 30 +++++------------------------- lib/common-functions | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 25 deletions(-) diff --git a/bin/nit-picker b/bin/nit-picker index 836e5d9..4382389 100755 --- a/bin/nit-picker +++ b/bin/nit-picker @@ -168,28 +168,12 @@ while pgrep -x ii >/dev/null \ ${master_mirror_rsync_command} \ "${master_mirror_rsync_directory}/pool/${parameters}" \ "${tmp_dir}/" - bsdtar -Oxf "${tmp_dir}/${parameters}" '.PKGINFO' \ - | sed -n ' - s/^\(\(make\)\?depend\) = /\1 / - T - p - ' \ - | sed ' - s/\(=\|[<>]=\?\)\([^-]\+\)\(-[^-]\+\)\?$/ \1 \2/ - t - s/$/ >= '"${min_version}"'/ - ' \ - | sed ' - s/:\(\S\+\)$/ \1/ - t - s/ \(\S\+\)$/ 0 \1/ - ' \ - | tr '[:upper:]' '[:lower:]' \ - | sort -u \ - > "${tmp_dir}/pkg-deps" + extract_dependencies_from_package \ + "${tmp_dir}/${parameters}" \ + "${tmp_dir}/pkg-deps" { printf 'SELECT' - printf ' IF(`dependency_types`.`name`="run","depend","makedepend"),' + printf ' `dependency_types`.`name`,' printf '`install_targets`.`name`,' printf '`dependencies`.`version_relation`,' printf '`versions`.`epoch`,' @@ -204,15 +188,11 @@ while pgrep -x ii >/dev/null \ mysql_package_name_query printf '="%s"' \ "${parameters}" - printf ' AND `dependency_types`.`name` IN ("run","make")' + printf ' AND `dependency_types`.`name` IN ("run","make","check")' printf ';\n' } \ | mysql_run_query \ | tr '\t' ' ' \ - | sed ' - /^depend base >= '"${min_version%:*}"' '"${min_version#*:}"'$/d - /^makedepend base-devel >= '"${min_version%:*}"' '"${min_version#*:}"'$/d - ' \ | sort -u \ > "${tmp_dir}/db-deps" if ! diff -q "${tmp_dir}/db-deps" "${tmp_dir}/pkg-deps"; then diff --git a/lib/common-functions b/lib/common-functions index 421fe50..f2f1243 100755 --- a/lib/common-functions +++ b/lib/common-functions @@ -1045,3 +1045,42 @@ update_blocked_packages_count() { mysql_run_query 'unimportant' ) } + +# extract_dependencies_from_package $pkgfile $depfile +# extract make-, run- and check-depends from $pkgfile into $depfile +# format: deptype install_target version_relation epoch version +extract_dependencies_from_package() { + mysql_load_min_and_max_versions + { + bsdtar -Oxf "$1" '.PKGINFO' \ + | sed ' + s/^checkdepend = /check / + t + s/^depend = /run / + t + s/^makedepend = /make / + t + d + ' \ + | sed ' + s/\(=\|[<>]=\?\)\([^-]\+\)\(-[^-]\+\)\?$/ \1 \2/ + t + s/$/ >= '"${min_version}"'/ + ' \ + | sed ' + s/:\(\S\+\)$/ \1/ + t + s/ \(\S\+\)$/ 0 \1/ + ' + # inject base & base-devel + printf ' >= %s\n' \ + "${min_version}" \ + | tr ':' ' ' \ + | sed ' + s/^.*$/run base\0\nmake base-devel\0/ + ' + } \ + | tr '[:upper:]' '[:lower:]' \ + | sort -u \ + > "$2" +} -- cgit v1.2.3-54-g00ecf