/usr/bin/nd_rebuildarchive is in neurodebian-dev 0.37.2.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | #!/bin/bash
if [ -z "$1" ]; then
cat << EOT
Script to re-build entire archive from one release for another.
Often usecase -- rebuilding for a new Ubuntu brew every 6 months.
Synopsis
--------
nd_rebuildarchive old_release new_release
e.g.
nd_rebuildarchive natty oneiric
EOT
exit 1
fi
set -eu
old_dist=$1
dist=$2
# some NeuroDebian variables hardcoded in for now
repo_server=neuro.debian.net
repo_user=neurodebian
repo_toppath=www
repo_urlpath=debian
repo_distspath=$repo_toppath/$repo_urlpath/dists
family=nd+ubuntu
list_file="$old_dist-$dist.list"
summary_file="$old_dist-$dist.summary"
[ -e "$list_file" ] || \
ssh -l $repo_user $repo_server cat $repo_distspath/$old_dist/*/source/Sources.gz \
| zgrep -e '^\(Package:\|Directory:\| [a-z0-9]\{32\} [0-9]* \S*.dsc$\)' \
| sed -e 's,.* \([^ ][^ ]*\)$,\1,g' | tr '\n' ' '| sed -e 's,\.dsc,.dsc\n,g' \
> "$list_file"
CMD=
#echo
dist_id=$(nd_querycfg "release backport ids" "$dist")
cat $list_file \
| while read name topdir dscfile; do
echo "I: Forwardporting for $dist_id $dscfile"
[ -e $dscfile ] \
|| dget -d http://$repo_server/$repo_urlpath/$topdir/$dscfile || {
echo -e "E: $dscfile\t\tFAILED to fetch" >> $summary_file
continue
}
# TODO -- we need to strip intermediate versions to avoid this horrible
# ./pool/main/s/stabilitycalc/stabilitycalc_0.1-1~nd11.04+1+nd11.10+1+nd12.04+1+nd12.10+1+nd13.04+1+nd13.10+1+nd14.04+1+nd14.10+1+nd15.04+1.debian.tar.xz
# which should become may be
# ./pool/main/s/stabilitycalc/stabilitycalc_0.1-1~nd11.04+nd15.04+1.debian.tar.xz
bpdscfile=$(/home/neurodebian/neurodebian/tools/backport-dsc \
--target-distribution "$dist" \
--no-maintainer-update \
--version-prefix "+" \
--version-suffix "$dist_id" \
"$dscfile" | tail -n1 | sed -e 's/^.* //g')
echo " I: Building backported dscfile: $bpdscfile"
$CMD sudo nd_build $family $dist $bpdscfile && {
echo -e "I: $bpdscfile\t\tOk" >> $summary_file
} || {
echo -e "E: $bpdscfile\t\tFAILED to build" >> $summary_file
}
done
exit 0
# Then following steps were done manually ATM and here kept as notes
# but version checking should altogether go into nd_backportdsc I guess
# or at least in the logic above
# upload all not yet uploaded
for f in *~nd*.changes; do uf=${f//.changes/.neurodn.upload}; [ -e $uf ] && continue; debsign $f; dput neurodn $f; done
# on the neuro.debian.net side
# filtered out incoming from pkgs with versions in official distribution
for c in *changes; do pkg_ver=`grep '\.deb$' $c | head -1 | sed -e 's,.* \([^_]*\)_\(.*\)_.*,\1 \2,g'`; echo $pkg_ver; done | uniq | while read p v; do uver=$(whohas -D Ubuntu --strict $p | grep "/$dist/" | awk '{print $3;}'); dpkg --compare-versions $v lt "$uver" && echo $c $p $v $uver; done 2>&1 | tee up-to-date-list.txt
# and moved corresponding changelogs away
mv `awk '{print $1,$2;}' up-to-date-list.txt | while read p v; do grep -l "${p}_${v}" *changes; done | sort | uniq` NOT_UPLOADED/
# processed the incoming
/home/neurodebian/reprepro/nd_processincoming.sh
# locally now updated the cows
sudo nd_updatedist nd+ubuntu $dist
# And build which previously failed, most probably due to unsatisfied dependencies
# and possibly failure with outdated versions of 3rd party modules
#grep -v OLD summary.build | grep FAILED | sed -e 's,_\(i386\|amd64\).build.*,,g' | sort | uniq | while read p; do sudo nd_build nd+ubuntu precise $p.dsc; done
grep -v -e OLD -e networkx summary.build | grep FAILED | sed -e 's,_\(i386\|amd64\).build.*,,g' | sort | uniq | while read p; do sudo nd_build nd+ubuntu $dist $p.dsc; done
|