diff --git a/pkgar b/pkgar
index d3b5dfc7af711f32ca115bc39d45f77dac4b7b99..0b8522c860af161f72075da4683c3856e1526ea1 160000
--- a/pkgar
+++ b/pkgar
@@ -1 +1 @@
-Subproject commit d3b5dfc7af711f32ca115bc39d45f77dac4b7b99
+Subproject commit 0b8522c860af161f72075da4683c3856e1526ea1
diff --git a/repo.sh b/repo.sh
index c738e234835072d6d1a09bbf617ecac2e0a2b555..8c653bae7715418c61f7082d480661a05435d07b 100755
--- a/repo.sh
+++ b/repo.sh
@@ -58,6 +58,20 @@ do
             echo -e "\033[01;38;5;155mrepo - $recipe up to date\033[0m" >&2
         fi
     fi
+
+    if [ ! -f "recipes/$recipe/stage.pkg" ]
+    then
+        echo -e "\033[01;38;5;155mrepo - packaging $recipe\033[0m" >&2
+        ./cook.sh "$recipe" pkg $DEBUG
+    else
+        TIME_STAGE="$($STAT -c "%Y" recipes/$recipe/stage.tar.gz)"
+        TIME_PKG="$($STAT -c "%Y" recipes/$recipe/stage.pkg)"
+        if [ "$TIME_STAGE" -gt "$TIME_PKG" ]
+        then
+            echo -e "\033[01;38;5;155mrepo - repackaging $recipe\033[0m" >&2
+            ./cook.sh "$recipe" unpkg pkg $DEBUG
+        fi
+    fi
 done
 
 for recipe in $recipes
@@ -67,6 +81,12 @@ do
         echo -e "\033[01;38;5;155mrepo - publishing $recipe\033[0m" >&2
         ./cook.sh $recipe publish
     fi
+
+    if [ "recipes/$recipe/stage.pkg" -nt "$REPO/$recipe.pkg" ]
+    then
+        echo -e "\033[01;38;5;155mrepo - publishing $recipe\033[0m" >&2
+        cp -v "recipes/$recipe/stage.pkg" "$REPO/$recipe.pkg"
+    fi
 done
 
 echo -e "\033[01;38;5;155mrepo - generating repo.toml\033[0m" >&2