Estimated read time: 2 minutes
So here they go.
First, I needed a list of packages for rebuild:
wget -O test.html 'http://frugalware.org/packages/?op=file&srch=usr%2Flib%2Fpython2.5&arch=i686&ver=current' lynx -dump ./test.html|grep ' [0-9]\+\. \['|sed 's/.*\]\(.*\) .*/\1/' > test.list
Then I used the following cycle:
git checkout -f; for i in $(cat ~/test.list); do echo $i; cd ~/git/python26/source/*/$i || continue; sudo makepkg -t python2 6,current -C; git clean -x -d -f; sed -i 's|python>=2.5|python>=2.6|g' FrugalBuild; bumppkg -t python26,current --rebuild "- rebuilt with python-2.6" || break; repoman -t python26 -k push; done
When a build failed, I fixed it up manually and used the following aliases:
alias pybuild="sudo makepkg -t python26,current -cu" alias pypush="repoman -t python26 -k push" alias pyrec='repoman rec "- rebuilt with python-2.6"'
then removed the already built pkgs from the top of test.list and started the for cycle again.
Once this was done, I did a
git grep 'python>=2.5'
to ensure everything has >=2.6 now (except a few cases where a rebuild was not necessary).
Syncing on x86_64 was like this:
I generated the package order with:
git log --reverse --no-merges --pretty=oneline master ^origin/master|sed 's/.* \(.*\)-[^-]\+-[^-]\+-i686/\1/' > build.list
Then I started a for cycle as well, but now just ignoring the failed builds:
git checkout -f; for i in $(cat ~/build.list); do echo $i; cd ~/git/python26/source/*/$i || continue; sudo makepkg -t python26,current -C; git clean -x -d -f; makepkg -dgu; rm -rf src; if sudo makepkg -t python26,current -cu; then repoman -t python26 -k push; else echo $i >> ~/broken.list; fi; done
fortunately less then 5% of all pkgs failed.
OK, that's all.