|
|
#!/usr/bin/gawk -f # # --- ROCK-COPYRIGHT-NOTE-BEGIN --- # # This copyright note is auto-generated by ./scripts/Create-CopyPatch. # Please add additional copyright information _after_ the line containing # the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by # the ./scripts/Create-CopyPatch script. Do not edit this copyright text! # # ROCK Linux: rock-src/scripts/Check-Deps-1 # ROCK Linux is Copyright (C) 1998 - 2006 Clifford Wolf # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. A copy of the GNU General Public # License can be found at Documentation/COPYING. # # Many people helped and are helping developing ROCK Linux. Please # have a look at http://www.rocklinux.org/ and the Documentation/TEAM # file for details. # # --- ROCK-COPYRIGHT-NOTE-END ---
function check_package() { split(pkgline, a); dep=a[2]; if ( ! index(a[2], stagelevel) ) return;
repository = a[4]; package = a[5];
present = present " " package " "; if ( stagelevel < 2 ) return;
depfile = depfile_tpl; gsub("<stagelevel>", stagelevel, depfile); gsub("<repository>", repository, depfile); gsub("<package>", package, depfile);
firstent=1; gsub(" \\[.\\]:" repository "/" package ":[^ ]*", "", errors); while ( (getline depline < depfile) > 0 ) { split(depline, a); if (a[1] != "[DEP]") continue;
for (c=2; a[c] != ""; c++) { if ( a[c] == package ) continue; if ( ! index(present, " " a[c] " ") ) { if (firstent) errors = errors " [" stagelevel "]:" \ repository "/" package ":"; errors = errors ":" a[c]; firstent=0; } } }
close(depfile); }
BEGIN { present=""; errors="";
system("mkdir -p src ; ./scripts/Create-PkgList > src/pkg_list"); depfile_tpl = "package/<repository>/<package>/<package>.cache";
for (stagelevel=0; stagelevel<9; stagelevel++) { while ( (getline pkgline < "src/pkg_list") > 0 ) { check_package(); } close("src/pkg_list"); } system("rm -f src/pkg_list");
if (errors != "") {
print "\nThe following packages have dependencies which"; print "are not solved before stage 9:\n";
print "Stage Package Dependencies";
gsub(" ", "\n", errors); gsub("::", "\t", errors); gsub(":", " ", errors);
print errors | "expand -t30"; } }
|