stdlib/fedora.gl: Try to cache dependencies
[goals.git] / stdlib / fedora.gl
index bbc80d9..cb518bc 100644 (file)
@@ -145,9 +145,15 @@ pure function fedora-source-dependencies (pkg) returning strings = @{
     # list of binary packages they build, so work this out in advance.
     declare -A bin2src
     for p in %fedora-source-packages; do
-        for b in $(rpmspec -q --provides %fedora-dir/$p/%fedora-branch/$p.spec 2>/dev/null | awk '{print $1}'); do
-            bin2src[$b]=$p
-        done
+        p_specfile=%fedora-dir/$p/%fedora-branch/$p.spec
+        p_depcache=%fedora-dir/$p/%fedora-branch/.depcache
+        if ! test -f $p_depcache || test $p_specfile -nt $p_depcache; then
+            rm -f $p_depcache
+            for b in $(rpmspec -q --provides $p_specfile 2>/dev/null | awk '{print $1}'); do
+                echo "bin2src['$b']='$p'" >> $p_depcache
+            done
+        fi
+        source $p_depcache
     done
 
     for b in $(rpmspec -q --buildrequires $specfile 2>/dev/null |