|
@@ -44,7 +44,8 @@ function t3() {
|
|
|
|
|
|
analysis.sh --repo ${MIRROR} --prio required | awk '{print $1}' |
|
|
|
xargs -i analysis.sh --repo ${MIRROR} --pkg {} |
|
|
|
- grep -E "^Depends:|^Pre-Depends" | sed 's/^.*Depends://' | tr ',' '\n' | sed 's/|.*//' | sed 's#(.*)##g' | xargs | tr ' ' '\n' | sort | uniq
|
|
|
+ grep -E "^Depends:|^Pre-Depends" | sed 's/^.*Depends://' |
|
|
|
+ tr ',' '\n' | sed 's/|.*//' | sed 's#(.*)##g' | xargs | tr ' ' '\n' | sort | uniq >/var/tmp/newpkgs.txt1
|
|
|
}
|
|
|
|
|
|
# 查找单个包
|
|
@@ -54,6 +55,63 @@ function t4() {
|
|
|
grep -E "^Depends:|^Pre-Depends" | sed 's/^.*Depends://' | tr ',' '\n' | sed 's/|.*//' | sed 's#(.*)##g' | xargs | tr ' ' '\n' | sort | uniq
|
|
|
}
|
|
|
|
|
|
+pkgdetails_field() {
|
|
|
+ # uniq field mirror Packages values...
|
|
|
+ perl -le '
|
|
|
+$unique = shift @ARGV; $field = lc(shift @ARGV); $mirror = shift @ARGV;
|
|
|
+%fields = map { $_, 0 } @ARGV;
|
|
|
+$prevpkg = "";
|
|
|
+$chksumfield = lc($ENV{DEBOOTSTRAP_CHECKSUM_FIELD}).":";
|
|
|
+while (<STDIN>) {
|
|
|
+ if (/^([^:]*:)\s*(.*)$/) {
|
|
|
+ $f = lc($1); $v = $2;
|
|
|
+ if ($f eq "package:") {
|
|
|
+ $last = 0;
|
|
|
+ $pkg = $v;
|
|
|
+ if ($pkg ne $prevpkg) {
|
|
|
+ print $output if defined $output;
|
|
|
+ if ($unique && defined $output_val) {
|
|
|
+ delete $fields{$output_val};
|
|
|
+ $last = 1 unless keys %fields;
|
|
|
+ }
|
|
|
+ $prevpkg = $pkg;
|
|
|
+ }
|
|
|
+ undef $output;
|
|
|
+ undef $output_val;
|
|
|
+ last if $last;
|
|
|
+ }
|
|
|
+ $ver = $v if ($f eq "version:");
|
|
|
+ $arc = $v if ($f eq "architecture:");
|
|
|
+ $fil = $v if ($f eq "filename:");
|
|
|
+ $chk = $v if ($f eq $chksumfield);
|
|
|
+ $siz = $v if ($f eq "size:");
|
|
|
+ $val = $v if ($f eq $field);
|
|
|
+ } elsif (/^$/) {
|
|
|
+ if (defined $val && defined $fields{$val}) {
|
|
|
+ $output = sprintf "%s %s %s %s %s %s %s",
|
|
|
+ $pkg, $ver, $arc, $mirror, $fil, $chk, $siz;
|
|
|
+ $output_val = $val;
|
|
|
+ }
|
|
|
+ undef $val;
|
|
|
+ }
|
|
|
+}
|
|
|
+print $output if defined $output;
|
|
|
+delete $fields{$output_val} if $unique && defined $output_val;
|
|
|
+for $v (keys %fields) {
|
|
|
+ printf ("%s -\n", $v) if ($unique);
|
|
|
+}
|
|
|
+' "$@"
|
|
|
+}
|
|
|
+
|
|
|
+without() {
|
|
|
+ # usage: without "a b c" "a d" -> "b" "c"
|
|
|
+ (
|
|
|
+ echo "$1" | tr ' ' '\n' | sort | uniq
|
|
|
+ echo "$2" "$2" | tr ' ' '\n'
|
|
|
+ ) | sort | uniq -u | tr '\n' ' '
|
|
|
+ echo
|
|
|
+}
|
|
|
+
|
|
|
resolve_deps() {
|
|
|
MIRROR="/var/tmp/indices/172.29.220.242/mirror/kylin/dists"
|
|
|
|
|
@@ -70,35 +128,40 @@ resolve_deps() {
|
|
|
# done
|
|
|
# done
|
|
|
|
|
|
- for p in ${PKGS}; do
|
|
|
- # echo ${p}
|
|
|
- analysis.sh --repo ${MIRROR} --pkg ${p}
|
|
|
- done | grep -E "^Depends:|^Pre-Depends" | sed 's/^.*Depends://' | tr ',' '\n' | sed 's/|.*//' | sed 's#(.*)##g' | xargs | tr ' ' '\n' | sort | uniq
|
|
|
-
|
|
|
- # TMP=$(echo ${PKGS} | xargs -i analysis.sh --repo ${MIRROR} --pkg {} | grep -E "^Depends:|^Pre-Depends" | sed 's/^.*Depends://' | tr ',' '\n' | sed 's/|.*//' | sed 's#(.*)##g' | xargs | tr ' ' '\n' | sort | uniq)
|
|
|
- # mylog2 "${TMP}"
|
|
|
-
|
|
|
- exit
|
|
|
+ NEWPKGS=$(echo "${PKGS}" | xargs -i analysis.sh --repo ${MIRROR} --pkg {} |
|
|
|
+ grep -E "^Depends:|^Pre-Depends" | sed 's/^.*Depends://' |
|
|
|
+ tr ',' '\n' | sed 's/|.*//' | sed 's#(.*)##g' | xargs | tr ' ' '\n' | sort | uniq)
|
|
|
|
|
|
mylog "newpkgs.txt2" "$(echo ${NEWPKGS} | xargs | tr ' ' '\n')"
|
|
|
+
|
|
|
PKGS=$(echo "$PKGS $NEWPKGS" | tr ' ' '\n' | sort | uniq)
|
|
|
+
|
|
|
local REALPKGS=""
|
|
|
- for s in $SUITE $EXTRA_SUITES; do
|
|
|
- for c in ${COMPONENTS:-$(echo ${USE_COMPONENTS} | tr '|' ' ')}; do
|
|
|
- local path="dists/$s/$c/binary-$ARCH/Packages"
|
|
|
- local pkgdest="${TARGET_DIR}/172.29.220.242/mirror/kylin/dists/v101/main/binary-amd64/Packages"
|
|
|
- REALPKGS="$REALPKGS $(pkgdetails_perl PKGS REAL "$pkgdest" $PKGS | sed -n 's/ .*REAL.*$//p')"
|
|
|
- done
|
|
|
- done
|
|
|
+ # for s in $SUITE $EXTRA_SUITES; do
|
|
|
+ # for c in ${COMPONENTS:-$(echo ${USE_COMPONENTS} | tr '|' ' ')}; do
|
|
|
+ # local path="dists/$s/$c/binary-$ARCH/Packages"
|
|
|
+ # local pkgdest="${TARGET_DIR}/172.29.220.242/mirror/kylin/dists/v101/main/binary-amd64/Packages"
|
|
|
+ # REALPKGS="$REALPKGS $(pkgdetails_perl PKGS REAL "$pkgdest" $PKGS | sed -n 's/ .*REAL.*$//p')"
|
|
|
+ # done
|
|
|
+ # done
|
|
|
+
|
|
|
+ p="${TARGET_DIR}/172.29.220.242/mirror/kylin/dists/v101/main/binary-amd64/Packages"
|
|
|
+ m="REAL"
|
|
|
+ REALPKGS="$REALPKGS $(LC_ALL=C egrep '^$|^Architecture:|^Filename:|^MD5sum:|^Package:|^Priority:|^SHA256:|^Size:|^Version:|^Depends:|^Pre-Depends:' "$p" |
|
|
|
+ pkgdetails_field 1 Package: "$m" $PKGS | sed -n 's/ .*REAL.*$//p')"
|
|
|
mylog "realpkgs.txt2" "$(echo ${REALPKGS} | xargs | tr ' ' '\n')"
|
|
|
+
|
|
|
PKGS="$REALPKGS"
|
|
|
ALLPKGS2=$(echo "$PKGS $ALLPKGS" | tr ' ' '\n' | sort | uniq)
|
|
|
PKGS=$(without "$ALLPKGS2" "$ALLPKGS")
|
|
|
+
|
|
|
ALLPKGS="$ALLPKGS2"
|
|
|
done
|
|
|
echo "$ALLPKGS"
|
|
|
}
|
|
|
|
|
|
+TARGET_DIR="/var/tmp/indices"
|
|
|
+
|
|
|
SHELL_DIR=$(dirname $(readlink -f $0))
|
|
|
|
|
|
PRIO="required"
|