diff --git a/.gitignore b/.gitignore
index 738b1f4c00c7a74b4ced3602bdb3f9a38cb37c1b..d591df4c25a4dd2c78a1c40a13628e800e7e067a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
 repos
 jails
+logs
diff --git a/makepackage b/makepackage
index bab56d7ab47224d18d403e9461d5fa5b883139d7..346ddb8358ebe1e7777e7ea89ad6bf15bd635c7a 100644
--- a/makepackage
+++ b/makepackage
@@ -46,31 +46,34 @@ REPOSITORY=$PWD/repos/$CODENAME
 HELPERS=$PWD/helpers
 if ! [ -d repos/ ]
 then
-mkdir -p repos/$CODENAME/conf repos/$CODENAME/incoming
-cat << EOF > repos/$CODENAME/conf/distributions
+for REPO in $(git branch|sed 's/.* //;/master/d')
+do
+mkdir -p repos/$REPO/conf repos/$REPO/incoming
+cat << EOF > repos/$REPO/conf/distributions
 Origin: Trisquel
 Label: Trisquel
-Suite: $CODENAME
+Suite: $REPO
 Version: 42
-Codename: $CODENAME
+Codename: $REPO
 Architectures: i386 amd64 source
 Components: main
 UDebComponents: main
 DebIndices: Packages Release . .gz .bz2
 UDebIndices: Packages . .gz .bz2
 DscIndices: Sources Release .gz .bz2
-Log: $CODENAME.log
+Log: $REPO.log
 Description: Trisquel GNU/Linux packages for the $UPSTREAM based release
 EOF
 
 if gpg -K | grep -q $GPGKEY
 then
-    echo "SignWith: $GPGKEY" >> repos/$CODENAME/conf/distributions
+    echo "SignWith: $GPGKEY" >> repos/$REPO/conf/distributions
 fi
 
-cd repos/$CODENAME
+cd repos/$REPO
 reprepro -v export
 cd ../..
+done
 fi
 
 disablescripts(){
@@ -129,6 +132,8 @@ EOF
     [ $UPSTREAM != hardy -a $UPSTREAM != lucid -a $UPSTREAM != maverick ] &&  echo "force-unsafe-io" > $CHROOT/etc/dpkg/dpkg.cfg.d/02apt-speedup
     $C apt-get update
     [ $UPSTREAM != hardy ] && $C apt-get --force-yes -y install eatmydata
+    $C apt-get --force-yes -y install sysv-rc dpkg sysvinit-utils upstart
+    disablescripts
     $C apt-get --force-yes -y dist-upgrade
     $C apt-get --force-yes -y install devscripts build-essential liburi-perl python-setuptools pkgbinarymangler wget rpl aptitude quilt fakeroot ccache
     $C apt-get clean
@@ -165,6 +170,12 @@ mount -t proc none /proc
 export DEBIAN_FRONTEND=noninteractive
 export LANG=C
 apt-get update
+apt-get --force-yes -y install sysv-rc dpkg sysvinit-utils upstart
+for i in /usr/sbin/invoke-rc.d /sbin/start /sbin/start-stop-daemon
+do
+    mv \$i \$i.real
+    cp /bin/true \$i
+done
 apt-get --force-yes -y dist-upgrade
 umount /proc
 EOF
@@ -187,6 +198,7 @@ tmpumount(){
   exit 1
 }
 tmpmount(){
+  mount|grep tmpfs|grep jails -q && return
   [ $MEM -lt 16000000 ] && return
   echo $PACKAGE | grep -q "linux" && return
   grep jails/$UPSTREAM-$ARCH/tmp /proc/mounts -q && tmpumount
diff --git a/makepending b/makepending
index 7386cd8b2a904efba8b41113de9c382d39fd0f16..40f111905831a14bc661750007f5e693bbae50ae 100644
--- a/makepending
+++ b/makepending
@@ -20,6 +20,16 @@
 #
 #    This script compares two Sources.gz files, and reports available updates
 
+if [ $(git status -s | wc -l) != 0 ]
+then
+    echo You have uncommited git changes, stopping
+    exit 1
+fi
+
+PAIRS="robur-hardy taranis-lucid dagda-natty brigantia-oneiric toutatis-precise"
+CODENAMES="robur taranis dagda brigantia toutatis"
+UPSTREAMS="hardy lucid natty oneiric precise"
+
 [ 1$1 = 1"test" ] && TEST=echo
 
 WD=$PWD
@@ -41,19 +51,11 @@ wget $MIRROR/dists/$DIST/$COMPONENT/source/Sources.gz -q -O - | zcat | egrep dsc
 echo " Done" >&2
 }
 
-listsweets (){
-DIST=$1
-echo -n Downloading Sources.gz from $MIRROR >&2
-wget $MIRROR/Sources.gz -q -O - | zcat | egrep dsc$ | cut -d" " -f 4|sed 's/\.dsc//'
-echo " Done" >&2
-}
-
-
 update(){
 
 MIRROR="http://archive.ubuntu.com/ubuntu"
 
-for i in hardy lucid maverick natty oneiric
+for i in $UPSTREAMS
 do
     listmirror $i main >> $i
     listmirror $i-updates main >> $i
@@ -63,40 +65,16 @@ do
     listmirror $i-security universe >> $i
 done
 
-#MIRROR="http://download.sugarlabs.org/packages/SweetsDistribution:/0.94/Ubuntu-11.04/"
-
-#listsweets >> sweets-natty
-
-MIRROR="ftp://archive.trisquel.info/trisquel"
-
-for i in main extras
-do
-    listmirror robur $i >> robur
-    listmirror robur-updates $i >> robur
-    listmirror robur-security $i >> robur
-done
-
-for i in taranis slaine dagda brigantia
+for i in  $CODENAMES
 do
+    MIRROR="http://archive.trisquel.info/trisquel"
     listmirror $i main >> $i
     listmirror $i-updates main >> $i
     listmirror $i-security main >> $i
-done
 
-MIRROR="http://devel.trisquel.info/trisquel/hardy"
-listmirror hardy main >> robur
-#MIRROR="http://devel.trisquel.info/trisquel/jaunty"
-#listmirror jaunty main >> dwyn
-#MIRROR="http://devel.trisquel.info/trisquel/karmic"
-#listmirror karmic main >> awen
-MIRROR="http://devel.trisquel.info/trisquel/lucid"
-listmirror lucid main >> taranis
-MIRROR="http://devel.trisquel.info/trisquel/maverick"
-listmirror maverick main >> slaine
-MIRROR="http://devel.trisquel.info/trisquel/natty"
-listmirror natty main >> dagda
-MIRROR="http://devel.trisquel.info/trisquel/oneiric"
-listmirror oneiric main >> brigantia
+    MIRROR="http://devel.trisquel.info/trisquel/$i"
+    listmirror $i main >> $i
+done
 
 }
 
@@ -142,9 +120,12 @@ then
         continue
     fi
 
-    echo Running makepackage $package $UPSTREAM at $(date)
-    echo Running makepackage $package $UPSTREAM at $(date) $LOGS/$package-$UPSTREAM-$(date +%Y%m%d).log 1>&2
-    $TEST sh $WD/makepackage $package $UPSTREAM > $LOGS/$package-$UPSTREAM-$(date +%Y%m%d).log && echo -n Done! || echo -n FAILED!
+    $TEST git --git-dir=$WD/.git checkout $DISTRO
+    $TEST git --git-dir=$WD/.git merge master
+    echo Upgrading $current at $DISTRO with ${UPSTREAM}_$upstream 1>&2
+    echo Running makepackage $package $DISTRO at $(date) $LOGS/$DISTRO-$package-$(date +%Y%m%d).log
+    echo Running makepackage $package $DISTRO at $(date) $LOGS/$DISTRO-$package-$(date +%Y%m%d).log 1>&2
+    $TEST sh $WD/makepackage $package $DISTRO > $LOGS/$DISTRO-$package-$(date +%Y%m%d).log && echo -n Done! || echo -n FAILED!
     echo " ($(date))"
     echo
 fi
@@ -153,35 +134,13 @@ done
 
 update
 
-DISTRO="robur"
-UPSTREAM="hardy"
-PACKAGES=$(ls -1 $WD/helpers/$UPSTREAM/make-* | sed 's:^.*/::; s:make-::')
-check >> $FILE
-
-DISTRO="taranis"
-UPSTREAM="lucid"
-PACKAGES=$(ls -1 $WD/helpers/$UPSTREAM/make-* | sed 's:^.*/::; s:make-::')
-check >> $FILE
-
-DISTRO="slaine"
-UPSTREAM="maverick"
-PACKAGES=$(ls -1 $WD/helpers/$UPSTREAM/make-* | sed 's:^.*/::; s:make-::')
-check >> $FILE
-
-DISTRO="dagda"
-UPSTREAM="natty"
-PACKAGES=$(ls -1 $WD/helpers/$UPSTREAM/make-* | sed 's:^.*/::; s:make-::')
-check >> $FILE
-
-DISTRO="brigantia"
-UPSTREAM="oneiric"
-PACKAGES=$(ls -1 $WD/helpers/$UPSTREAM/make-* | sed 's:^.*/::; s:make-::')
+for pair in $PAIRS
+do
+DISTRO=${pair/-*/}
+UPSTREAM=${pair/*-/}
+PACKAGES=$(git --git-dir=/home/systems/devel/.git ls-tree -r --name-only $DISTRO|grep helpers/make-|sed 's/.*make-//')
 check >> $FILE
-
-#DISTRO="dagda"
-#UPSTREAM="sweets-natty"
-#PACKAGES=$(ls -1 $WD/helpers/$UPSTREAM/make-* | sed 's:^.*/::; s:make-::')
-#check >> $FILE
+done
 
 report () {
 #address=trisquel-devel@listas.trisquel.info