summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/nit-picker30
-rwxr-xr-xlib/common-functions39
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"
+}