nice: Success scp -qp mirror.ftp-master.debian.org:/srv/mirrors/debian-ports/dists/unstable/main/binary-hurd-i386/Packages.xz Packages-main.xz xz -d < Packages-main.xz | sed 's/:any//g' > Packages-main rm -f Packages-main.xz scp -qp mirror.ftp-master.debian.org:/srv/mirrors/debian-ports/dists/unreleased/main/binary-hurd-i386/Packages.xz Packages-main-unreleased.xz xz -d < Packages-main-unreleased.xz | sed 's/:any//g' > Packages-main-unreleased rm -f Packages-main-unreleased.xz wget -q -O - http://incoming.ports.debian.org/buildd/dists/sid/main/binary-hurd-i386/Packages.xz | xz -d | sed 's/:any//g' > incomingPackages grep-dctrl -FArchitecture hurd-i386 incomingPackages | sed 's/:any//g' > Packages-incoming grep-aptavail -X -n -FArchitecture -sPackage hurd-i386 Packages-main Packages-main-unreleased Packages-hand Packages-incoming | grep -v ^$ > hurd-packages ( \ N=$(wc -l < hurd-packages) ; \ for i in $(seq 0 $(( N / (5000 - 1) ))) ; do \ < hurd-packages tail -n +$((i * 5000 + 1)) | head -n 5000 | tr '\n' , | sed -e s/,$// > hurd-packagesN ; \ cat Packages* | dose-debcheck --failures --explain --checkonly "`cat hurd-packagesN`" --quiet 2> /dev/null ; \ done \ ) | sed -e 's/gnupg:hurd-i386 (> 2) | gnupg2/gnupg2/' -e 's/gnupg (> 2) | gnupg2/gnupg2/' -e 's/gnupg (>= 2) | gnupg2/gnupg2/' > uninstallable.txt rm -f hurd-packagesN ./uninstallable < uninstallable.txt > uninstallable-source.dot ssh -C -o ControlMaster=auto -o ControlPath=$HOME/.ssh/master/%r@%h:%p -o ControlPersist=300 buildd.debian.org /usr/local/bin/wanna-build -d sid --api=1 -A hurd-i386 --list=bd-uninstallable | sed -e 's/gnupg:hurd-i386 (> 2) | gnupg2/gnupg2/' -e 's/gnupg (> 2) | gnupg2/gnupg2/' -e 's/gnupg (>= 2) | gnupg2/gnupg2/' | head -n -1 > bd-uninstallable.txt ./bd-uninstallable < bd-uninstallable.txt 2> /dev/null > bd-uninstallable.dot grep -v -- '->' bd-uninstallable.dot > bd-uninstallable-only.dot ssh -C -o ControlMaster=auto -o ControlPath=$HOME/.ssh/master/%r@%h:%p -o ControlPersist=300 buildd.debian.org /usr/local/bin/wanna-build -d sid --api=1 -A hurd-i386 --list=needs-build | head -n -1 > needs-build.txt ./wb < needs-build.txt 2> /dev/null > needs-build.lst ( for i in $(sort < needs-build.lst) ; do echo "\"$i\" [fillcolor=burlywood,fontcolor=black,style=filled,shape=ellipse]" ; done ) > needs-build.dot ssh -C -o ControlMaster=auto -o ControlPath=$HOME/.ssh/master/%r@%h:%p -o ControlPersist=300 buildd.debian.org /usr/local/bin/wanna-build -d sid --api=1 -A hurd-i386 --list=building | head -n -1 > building.txt ./wb < building.txt 2> /dev/null > building.lst ( for i in $(sort < building.lst) ; do echo "\"$i\" [fillcolor=palegreen,fontcolor=black,style=filled,shape=ellipse]" ; done ) > building.dot ssh -C -o ControlMaster=auto -o ControlPath=$HOME/.ssh/master/%r@%h:%p -o ControlPersist=300 buildd.debian.org /usr/local/bin/wanna-build -d sid --api=1 -A hurd-i386 --list=built | head -n -1 > built.txt ./wb < built.txt 2> /dev/null > built.lst ( for i in $(sort < built.lst) ; do echo "\"$i\" [fillcolor=green,fontcolor=black,style=filled,shape=ellipse]" ; done ) > built.dot ssh -C -o ControlMaster=auto -o ControlPath=$HOME/.ssh/master/%r@%h:%p -o ControlPersist=300 buildd.debian.org /usr/local/bin/wanna-build -d sid --api=1 -A hurd-i386 --list=uploaded | head -n -1 > uploaded.txt ./wb < uploaded.txt 2> /dev/null > uploaded.lst ( for i in $(sort < uploaded.lst) ; do echo "\"$i\" [fillcolor=green,fontcolor=black,style=filled,shape=ellipse]" ; done ) > uploaded.dot ssh -C -o ControlMaster=auto -o ControlPath=$HOME/.ssh/master/%r@%h:%p -o ControlPersist=300 buildd.debian.org /usr/local/bin/wanna-build -d sid --api=1 -A hurd-i386 --list=auto-not-for-us | head -n -1 > auto-not-for-us.txt ./wb < auto-not-for-us.txt 2> /dev/null > auto-not-for-us.lst ( for i in $(sort < auto-not-for-us.lst) ; do echo "\"$i\" [fillcolor=black,fontcolor=white,style=filled,shape=ellipse]" ; done ) > auto-not-for-us.dot ssh -C -o ControlMaster=auto -o ControlPath=$HOME/.ssh/master/%r@%h:%p -o ControlPersist=300 buildd.debian.org /usr/local/bin/wanna-build -d sid --api=1 -A hurd-i386 --list=not-for-us | head -n -1 > not-for-us.txt ./wb < not-for-us.txt 2> /dev/null > not-for-us.lst ( for i in $(sort < not-for-us.lst) ; do echo "\"$i\" [fillcolor=black,fontcolor=white,style=filled,shape=ellipse]" ; done ) > not-for-us.dot ssh -C -o ControlMaster=auto -o ControlPath=$HOME/.ssh/master/%r@%h:%p -o ControlPersist=300 buildd.debian.org /usr/local/bin/wanna-build -d sid --api=1 -A hurd-i386 --list=dep-wait | head -n -1 > dep-wait.txt ./wb < dep-wait.txt 2> /dev/null > dep-wait.lst ( for i in $(sort < dep-wait.lst) ; do echo "\"$i\" [fillcolor=lightgrey,fontcolor=black,style=filled,shape=ellipse]" ; done ) > dep-wait.dot ssh -C -o ControlMaster=auto -o ControlPath=$HOME/.ssh/master/%r@%h:%p -o ControlPersist=300 buildd.debian.org /usr/local/bin/wanna-build -d sid --api=1 -A hurd-i386 --list=build-attempted | head -n -1 > build-attempted.txt ./wb < build-attempted.txt 2> /dev/null > build-attempted.lst ( for i in $(sort < build-attempted.lst) ; do echo "\"$i\" [fillcolor=OrangeRed,fontcolor=black,style=filled,shape=ellipse]" ; done ) > build-attempted.dot ssh -C -o ControlMaster=auto -o ControlPath=$HOME/.ssh/master/%r@%h:%p -o ControlPersist=300 buildd.debian.org /usr/local/bin/wanna-build -d sid --api=1 -A hurd-i386 --list=failed | head -n -1 > failed.txt ./wb < failed.txt 2> /dev/null > failed.lst ( for i in $(sort < failed.lst) ; do echo "\"$i\" [fillcolor=red,fontcolor=black,style=filled,shape=ellipse]" ; done ) > failed.dot ( \ echo "strict digraph deps {" ; \ echo "\""$(LANG=C date)"\" -> \"Needs-Build\"" ; \ cat uninstallable-source.dot bd-uninstallable-only.dot needs-build.dot building.dot built.dot uploaded.dot auto-not-for-us.dot not-for-us.dot dep-wait.dot build-attempted.dot failed.dot tail.dot ; \ echo "}" \ ) > graph-uninstallable.dot twopi -Nshape=polygon -T fig -o graph-uninstallable.fig graph-uninstallable.dot ./dep-wait-src < dep-wait.txt 2> /dev/null > dep-wait-src.lst sed -n -e 's/ - \([^ ]*\).*/\1/p' bd-uninstallable.txt | sed -e 's/hurd-i386://' | sed -e 's/:hurd-i386//' > bd-uninstallable-src.txt grep '^[^ ]' bd-uninstallable.txt | cut -d / -f 2 | cut -d _ -f 1 | grep -v '^Total .*$' > bd-uninstallable.lst scp -qp mirror.ftp-master.debian.org:/srv/mirrors/debian/dists/unstable/main/source/Sources.xz Sources-main.xz xz -d Sources-main.xz grep-aptavail -sPackage,Source,Provides "" Packages-main Packages-main-unreleased > myPackages ssh -C -o ControlMaster=auto -o ControlPath=$HOME/.ssh/master/%r@%h:%p -o ControlPersist=300 buildd.debian.org /usr/local/bin/wanna-build -d sid --api=1 -A hurd-i386 --list=all | head -n -1 > all.txt ./wb < all.txt 2> /dev/null > all.lst ( \ # for each needed package i, show the source \ for i in $(cat dep-wait-src.lst bd-uninstallable-src.txt | sort -u) ; \ do \ src=$(grep-aptavail -r -n -FBinary -sPackage "\(^\| \)$i\(,\|$\)" mySources | head -n1 | grep -v net-tools) ; \ provider=$(echo $i | sed -e 's/\(librust-.*\)+[^+]*-dev/\1-dev/' | sed -e 's/\(librust-.*\)\(-[0-9.]*\)-dev/\1-dev/') ; \ if [ -z "$src" -a "$i" != "$provider" ]; \ then \ src=$(grep-aptavail -r -n -FBinary -sPackage "\(^\| \)$provider\(,\|$\)" mySources | head -n1 | grep -v net-tools) ; \ if [ -n "$src" ]; \ then \ # found it, explicit all the path so that we know the name of the virtual package \ if grep -q "^$src$" dep-wait.lst build-attempted.lst failed.lst auto-not-for-us.lst not-for-us.lst bd-uninstallable.lst ; \ then \ # that source has troubles too, show the dependency \ echo "\"$src\" [ shape=ellipse ]" ; \ echo "\"$src\" -> \"$provider\" [ style=dotted ]" ; \ echo "\"$provider\" -> \"$i\" [ style=dashed ]" ; \ else \ if ! grep -q "^$src$" all.lst && [ "$(grep-aptavail -r -n -sArchitecture -FPackage "^$src$" mySources | head -n 1)" != all ] ; \ then \ echo "\"$src\" [ shape = ellipse, fillcolor=black,fontcolor=white ]" ; \ echo "\"$src\" -> \"$provides\" [ style=dotted ]" ; \ echo "\"$provides\" -> \"$i\" [ style=dashed ]" ; \ fi \ fi ; \ fi ; \ fi; \ if [ -z "$src" ]; \ then \ # no source, try to find a package that Provides it \ provides=$(grep-aptavail -r -n -FProvides -sPackage "\(^\| \)$i\(,\|$\)" myPackages 2> /dev/null | head -n 1) \ src=$(grep-aptavail -r -n -FBinary -sPackage "\(^\| \)$provides\(,\|$\)" mySources | head -n1) ; \ if [ -n "$provides" -a -n "$src" ] ; \ then \ # got it, print the whole path \ if grep -q "^$src$" bd-uninstallable.lst dep-wait.lst build-attempted.lst failed.lst building.lst needs-build.lst built.lst uploaded.lst auto-not-for-us.lst not-for-us.lst ; \ then \ echo "\"$src\" [ shape = ellipse ]" ; \ echo "\"$src\" -> \"$provides\" [ style=solid ]" ; \ echo "\"$provides\" -> \"$i\" [ style=solid ]" ; \ else \ if ! grep -q "^$src$" all.lst && [ "$(grep-aptavail -r -n -sArchitecture -FPackage "^$src$" mySources | head -n 1)" != all ] ; \ then \ echo "\"$src\" [ shape = ellipse, fillcolor=black,fontcolor=white ]" ; \ echo "\"$src\" -> \"$provides\" [ style=solid ]" ; \ echo "\"$provides\" -> \"$i\" [ style=solid ]" ; \ fi \ fi \ else \ # else we don't know how to build the build-dep !! \ echo "\"$i\" [fillcolor=magenta,fontcolor=black,style=filled]" ; \ fi \ else \ # show which package should be able to provide it \ echo "\"$src\" [ shape = ellipse ]" ; \ if ! grep -q "^$src$" all.lst && [ "$(grep-aptavail -r -n -sArchitecture -FPackage "^$src$" mySources | head -n 1)" != all ] ; \ then \ echo "\"$src\" [ fillcolor=black,fontcolor=white ]" ; \ fi ; \ echo "\"$src\" -> \"$i\" [ style=solid ]" ; \ fi \ done \ ) > dep-wait-src.dot ./dep-wait < dep-wait.txt 2> /dev/null > dep-wait-all.dot < dep-wait-all.dot grep -- '->' | cut -d ' ' -f 1,3 | tr -d '"' | ( \ while read bin src ; \ do \ grep-aptavail -X -n -FPackage -sBuild-Depends $src mySources | tr , '\n' | grep -v '|' | grep -v 'debhelper-compat' | grep -v 'gettext' | grep -ve '! *hurd-i386' | sed -e 's/<[^>]*>//g' | sed -e 's/([^)]*)//g' | sed -e '/\[[^]]*hurd-i386[^]]*\]/s/\[[^]]*\]//g' | grep -v '\[[^!]*\]' | sed -e 's/\[[^]]*\]//g' | grep -q $bin || echo "\"$bin\" -> \"$src\" [ color=magenta ]" ; \ done \ ) > dep-wait-bogus.dot # For each (potentially) failing package i, guess all problematic dependencies ( for i in $(grep -v '^glibc$' < dep-wait.lst | sort) ; \ do \ # look at build-deps of i \ for j in $(grep-aptavail -X -n -FPackage -sBuild-Depends $i mySources | head -n 1 | tr , '\n' | grep -v '|' | grep -v 'debhelper-compat' | grep -v 'gettext' | grep -ve '! *hurd-i386' | sed -e 's/<[^>]*>//g' | sed -e 's/([^)]*)//g' | sed -e '/\[[^]]*hurd-i386[^]]*\]/s/\[[^]]*\]//g' | grep -v '\[[^!]*\]' | sed -e 's/\[[^]]*\]//g' ) ; \ do \ # for each of them (j), find the corresponding source package src \ src=$(grep-aptavail -r -n -FBinary -sPackage "\(^\| \)$j\(,\|$\)" mySources | head -n1 | grep -v net-tools) ; \ provider=$(echo $j | sed -e 's/\(librust-.*\)+[^+]*-dev/\1-dev/' | sed -e 's/\(librust-.*\)\(-[0-9.]*\)-dev/\1-dev/') ; \ if [ -z "$src" -a "$j" != "$provider" ]; \ then \ src=$(grep-aptavail -r -n -FBinary -sPackage "\(^\| \)$provider\(,\|$\)" mySources | head -n1 | grep -v net-tools) ; \ if [ -n "$src" ]; \ then \ # found it, explicit all the path so that we know the name of the virtual package \ if grep -q "^$src$" dep-wait.lst build-attempted.lst failed.lst auto-not-for-us.lst not-for-us.lst bd-uninstallable.lst ; \ then \ # that source has troubles too, show the dependency \ echo "\"$src\" [ shape=ellipse ]" ; \ echo "\"$src\" -> \"$provider\" [ style=dotted ]" ; \ echo "\"$provider\" -> \"$j\" [ style=dashed ]" ; \ echo "\"$j\" -> \"$i\" [ style=dashed ]" ; \ else \ if ! grep -q "^$src$" all.lst && [ "$(grep-aptavail -r -n -sArchitecture -FPackage "^$src$" mySources | head -n 1)" != all ] ; \ then \ echo "\"$src\" [ shape = ellipse, fillcolor=black,fontcolor=white ]" ; \ echo "\"$src\" -> \"$provides\" [ style=dotted ]" ; \ echo "\"$provides\" -> \"$i\" [ style=dashed ]" ; \ fi \ fi ; \ fi ; \ fi; \ if [ -z "$src" ]; \ then \ # if no source package seems available, look for a package that Provides it \ provides=$(grep-aptavail -r -n -FProvides -sPackage "\(^\| \)$j\(,\|$\)" myPackages 2> /dev/null | head -n 1) \ src=$(grep-aptavail -r -n -FBinary -sPackage "\(^\| \)$provides\(,\|$\)" mySources | head -n1) ; \ if [ -n "$src" ]; \ then \ # found it, explicit all the path so that we know the name of the virtual package \ if grep -q "^$src$" dep-wait.lst build-attempted.lst failed.lst auto-not-for-us.lst not-for-us.lst bd-uninstallable.lst ; \ then \ # that source has troubles too, show the dependency \ echo "\"$src\" [ shape=ellipse ]" ; \ echo "\"$src\" -> \"$provides\" [ style=dotted ]" ; \ echo "\"$provides\" -> \"$j\" [ style=dashed ]" ; \ echo "\"$j\" -> \"$i\" [ style=dashed ]" ; \ else \ if ! grep -q "^$src$" all.lst && [ "$(grep-aptavail -r -n -sArchitecture -FPackage "^$src$" mySources | head -n 1)" != all ] ; \ then \ echo "\"$src\" [ shape = ellipse, fillcolor=black,fontcolor=white ]" ; \ echo "\"$src\" -> \"$provides\" [ style=dotted ]" ; \ echo "\"$provides\" -> \"$i\" [ style=dashed ]" ; \ fi \ fi ; \ else \ # else we don't know how to build the build-dep !! \ echo "\"$j\" [fillcolor=magenta,fontcolor=black,style=filled]" ; \ echo "\"$j\" -> \"$i\" [ style=dashed ]" ; \ fi ; \ else \ # found a source that provides the package \ if grep -q "^$src$" dep-wait.lst build-attempted.lst failed.lst auto-not-for-us.lst not-for-us.lst bd-uninstallable.lst && [ "$i" != "$src" ] ; \ then \ # that source has troubles too, show the dependency \ # Pb: doesn't mean the binary package can't be installed... \ echo "\"$src\" [ shape = ellipse ]" ; \ echo "\"$src\" -> \"$i\" [ style=dashed ]" ; \ else \ if ! grep -q "^$src$" all.lst && [ "$(grep-aptavail -r -n -sArchitecture -FPackage "^$src$" mySources | head -n 1)" != all ] ; \ then \ # Unknown package \ echo "\"$src\" [ shape = ellipse ]" ; \ echo "\"$src\" [ fillcolor=black,fontcolor=white ]" ; \ echo "\"$src\" -> \"$i\" [ style=dashed ]" ; \ fi ; \ fi; \ fi ; \ done ; \ done ) > dep-wait-deps.dot # For each (potentially) failing package i, guess all problematic dependencies ( for i in $(grep -v '^glibc$' < build-attempted.lst | sort) ; \ do \ # look at build-deps of i \ for j in $(grep-aptavail -X -n -FPackage -sBuild-Depends $i mySources | head -n 1 | tr , '\n' | grep -v '|' | grep -v 'debhelper-compat' | grep -v 'gettext' | grep -ve '! *hurd-i386' | sed -e 's/<[^>]*>//g' | sed -e 's/([^)]*)//g' | sed -e '/\[[^]]*hurd-i386[^]]*\]/s/\[[^]]*\]//g' | grep -v '\[[^!]*\]' | sed -e 's/\[[^]]*\]//g' ) ; \ do \ # for each of them (j), find the corresponding source package src \ src=$(grep-aptavail -r -n -FBinary -sPackage "\(^\| \)$j\(,\|$\)" mySources | head -n1 | grep -v net-tools) ; \ provider=$(echo $j | sed -e 's/\(librust-.*\)+[^+]*-dev/\1-dev/' | sed -e 's/\(librust-.*\)\(-[0-9.]*\)-dev/\1-dev/') ; \ if [ -z "$src" -a "$j" != "$provider" ]; \ then \ src=$(grep-aptavail -r -n -FBinary -sPackage "\(^\| \)$provider\(,\|$\)" mySources | head -n1 | grep -v net-tools) ; \ if [ -n "$src" ]; \ then \ # found it, explicit all the path so that we know the name of the virtual package \ if grep -q "^$src$" dep-wait.lst build-attempted.lst failed.lst auto-not-for-us.lst not-for-us.lst bd-uninstallable.lst ; \ then \ # that source has troubles too, show the dependency \ echo "\"$src\" [ shape=ellipse ]" ; \ echo "\"$src\" -> \"$provider\" [ style=dotted ]" ; \ echo "\"$provider\" -> \"$j\" [ style=dashed ]" ; \ echo "\"$j\" -> \"$i\" [ style=dashed ]" ; \ else \ if ! grep -q "^$src$" all.lst && [ "$(grep-aptavail -r -n -sArchitecture -FPackage "^$src$" mySources | head -n 1)" != all ] ; \ then \ echo "\"$src\" [ shape = ellipse, fillcolor=black,fontcolor=white ]" ; \ echo "\"$src\" -> \"$provides\" [ style=dotted ]" ; \ echo "\"$provides\" -> \"$i\" [ style=dashed ]" ; \ fi \ fi ; \ fi ; \ fi; \ if [ -z "$src" ]; \ then \ # if no source package seems available, look for a package that Provides it \ provides=$(grep-aptavail -r -n -FProvides -sPackage "\(^\| \)$j\(,\|$\)" myPackages 2> /dev/null | head -n 1) \ src=$(grep-aptavail -r -n -FBinary -sPackage "\(^\| \)$provides\(,\|$\)" mySources | head -n1) ; \ if [ -n "$src" ]; \ then \ # found it, explicit all the path so that we know the name of the virtual package \ if grep -q "^$src$" dep-wait.lst build-attempted.lst failed.lst auto-not-for-us.lst not-for-us.lst bd-uninstallable.lst ; \ then \ # that source has troubles too, show the dependency \ echo "\"$src\" [ shape=ellipse ]" ; \ echo "\"$src\" -> \"$provides\" [ style=dotted ]" ; \ echo "\"$provides\" -> \"$j\" [ style=dashed ]" ; \ echo "\"$j\" -> \"$i\" [ style=dashed ]" ; \ else \ if ! grep -q "^$src$" all.lst && [ "$(grep-aptavail -r -n -sArchitecture -FPackage "^$src$" mySources | head -n 1)" != all ] ; \ then \ echo "\"$src\" [ shape = ellipse, fillcolor=black,fontcolor=white ]" ; \ echo "\"$src\" -> \"$provides\" [ style=dotted ]" ; \ echo "\"$provides\" -> \"$i\" [ style=dashed ]" ; \ fi \ fi ; \ else \ # else we don't know how to build the build-dep !! \ echo "\"$j\" [fillcolor=magenta,fontcolor=black,style=filled]" ; \ echo "\"$j\" -> \"$i\" [ style=dashed ]" ; \ fi ; \ else \ # found a source that provides the package \ if grep -q "^$src$" dep-wait.lst build-attempted.lst failed.lst auto-not-for-us.lst not-for-us.lst bd-uninstallable.lst && [ "$i" != "$src" ] ; \ then \ # that source has troubles too, show the dependency \ # Pb: doesn't mean the binary package can't be installed... \ echo "\"$src\" [ shape = ellipse ]" ; \ echo "\"$src\" -> \"$i\" [ style=dashed ]" ; \ else \ if ! grep -q "^$src$" all.lst && [ "$(grep-aptavail -r -n -sArchitecture -FPackage "^$src$" mySources | head -n 1)" != all ] ; \ then \ # Unknown package \ echo "\"$src\" [ shape = ellipse ]" ; \ echo "\"$src\" [ fillcolor=black,fontcolor=white ]" ; \ echo "\"$src\" -> \"$i\" [ style=dashed ]" ; \ fi ; \ fi; \ fi ; \ done ; \ done ) > build-attempted-deps.dot # For each (potentially) failing package i, guess all problematic dependencies ( for i in $(grep -v '^glibc$' < failed.lst | sort) ; \ do \ # look at build-deps of i \ for j in $(grep-aptavail -X -n -FPackage -sBuild-Depends $i mySources | head -n 1 | tr , '\n' | grep -v '|' | grep -v 'debhelper-compat' | grep -v 'gettext' | grep -ve '! *hurd-i386' | sed -e 's/<[^>]*>//g' | sed -e 's/([^)]*)//g' | sed -e '/\[[^]]*hurd-i386[^]]*\]/s/\[[^]]*\]//g' | grep -v '\[[^!]*\]' | sed -e 's/\[[^]]*\]//g' ) ; \ do \ # for each of them (j), find the corresponding source package src \ src=$(grep-aptavail -r -n -FBinary -sPackage "\(^\| \)$j\(,\|$\)" mySources | head -n1 | grep -v net-tools) ; \ provider=$(echo $j | sed -e 's/\(librust-.*\)+[^+]*-dev/\1-dev/' | sed -e 's/\(librust-.*\)\(-[0-9.]*\)-dev/\1-dev/') ; \ if [ -z "$src" -a "$j" != "$provider" ]; \ then \ src=$(grep-aptavail -r -n -FBinary -sPackage "\(^\| \)$provider\(,\|$\)" mySources | head -n1 | grep -v net-tools) ; \ if [ -n "$src" ]; \ then \ # found it, explicit all the path so that we know the name of the virtual package \ if grep -q "^$src$" dep-wait.lst build-attempted.lst failed.lst auto-not-for-us.lst not-for-us.lst bd-uninstallable.lst ; \ then \ # that source has troubles too, show the dependency \ echo "\"$src\" [ shape=ellipse ]" ; \ echo "\"$src\" -> \"$provider\" [ style=dotted ]" ; \ echo "\"$provider\" -> \"$j\" [ style=dashed ]" ; \ echo "\"$j\" -> \"$i\" [ style=dashed ]" ; \ else \ if ! grep -q "^$src$" all.lst && [ "$(grep-aptavail -r -n -sArchitecture -FPackage "^$src$" mySources | head -n 1)" != all ] ; \ then \ echo "\"$src\" [ shape = ellipse, fillcolor=black,fontcolor=white ]" ; \ echo "\"$src\" -> \"$provides\" [ style=dotted ]" ; \ echo "\"$provides\" -> \"$i\" [ style=dashed ]" ; \ fi \ fi ; \ fi ; \ fi; \ if [ -z "$src" ]; \ then \ # if no source package seems available, look for a package that Provides it \ provides=$(grep-aptavail -r -n -FProvides -sPackage "\(^\| \)$j\(,\|$\)" myPackages 2> /dev/null | head -n 1) \ src=$(grep-aptavail -r -n -FBinary -sPackage "\(^\| \)$provides\(,\|$\)" mySources | head -n1) ; \ if [ -n "$src" ]; \ then \ # found it, explicit all the path so that we know the name of the virtual package \ if grep -q "^$src$" dep-wait.lst build-attempted.lst failed.lst auto-not-for-us.lst not-for-us.lst bd-uninstallable.lst ; \ then \ # that source has troubles too, show the dependency \ echo "\"$src\" [ shape=ellipse ]" ; \ echo "\"$src\" -> \"$provides\" [ style=dotted ]" ; \ echo "\"$provides\" -> \"$j\" [ style=dashed ]" ; \ echo "\"$j\" -> \"$i\" [ style=dashed ]" ; \ else \ if ! grep -q "^$src$" all.lst && [ "$(grep-aptavail -r -n -sArchitecture -FPackage "^$src$" mySources | head -n 1)" != all ] ; \ then \ echo "\"$src\" [ shape = ellipse, fillcolor=black,fontcolor=white ]" ; \ echo "\"$src\" -> \"$provides\" [ style=dotted ]" ; \ echo "\"$provides\" -> \"$i\" [ style=dashed ]" ; \ fi \ fi ; \ else \ # else we don't know how to build the build-dep !! \ echo "\"$j\" [fillcolor=magenta,fontcolor=black,style=filled]" ; \ echo "\"$j\" -> \"$i\" [ style=dashed ]" ; \ fi ; \ else \ # found a source that provides the package \ if grep -q "^$src$" dep-wait.lst build-attempted.lst failed.lst auto-not-for-us.lst not-for-us.lst bd-uninstallable.lst && [ "$i" != "$src" ] ; \ then \ # that source has troubles too, show the dependency \ # Pb: doesn't mean the binary package can't be installed... \ echo "\"$src\" [ shape = ellipse ]" ; \ echo "\"$src\" -> \"$i\" [ style=dashed ]" ; \ else \ if ! grep -q "^$src$" all.lst && [ "$(grep-aptavail -r -n -sArchitecture -FPackage "^$src$" mySources | head -n 1)" != all ] ; \ then \ # Unknown package \ echo "\"$src\" [ shape = ellipse ]" ; \ echo "\"$src\" [ fillcolor=black,fontcolor=white ]" ; \ echo "\"$src\" -> \"$i\" [ style=dashed ]" ; \ fi ; \ fi; \ fi ; \ done ; \ done ) > failed-deps.dot bash: ligne 9 : [: « ) » attendue au lieu de ( bash: ligne 9 : [: « ) » attendue au lieu de (