~ruther/guix-local

51385362f76e2f823ac8d8cf720d06c386504069 — Ludovic Courtès 10 years ago f88282a
graph: %BAG-WITH-ORIGINS-NODE-TYPE includes the origin's guile.

Before that it would include #f for most origins since that the default
value of 'origin-patch-guile'.

* guix/scripts/graph.scm (bag-node-edges): When 'origin-patch-guile'
returns #f, use (default-guile).
* tests/graph.scm ("bag DAG, including origins"): Check for an edge from
O to (default-guile).
2 files changed, 10 insertions(+), 2 deletions(-)

M guix/scripts/graph.scm
M tests/graph.scm
M guix/scripts/graph.scm => guix/scripts/graph.scm +1 -1
@@ 113,7 113,7 @@ Dependencies may include packages, origin, and file names."
           (((labels things . outputs) ...)
            things)))
        ((origin? thing)
         (cons (origin-patch-guile thing)
         (cons (or (origin-patch-guile thing) (default-guile))
               (if (or (pair? (origin-patches thing))
                       (origin-snippet thing))
                   (match (origin-patch-inputs thing)

M tests/graph.scm => tests/graph.scm +9 -1
@@ 150,7 150,8 @@ edges."
      (let-values (((nodes edges) (nodes+edges)))
        (run-with-store %store
          (mlet %store-monad ((o* (lower-object o))
                              (p* (lower-object p)))
                              (p* (lower-object p))
                              (g  (lower-object (default-guile))))
            (return
             (and (find (match-lambda
                          ((file "the-uri") #t)


@@ 160,6 161,13 @@ edges."
                          ((source target)
                           (and (string=? source (derivation-file-name p*))
                                (string=? target o*))))
                        edges)

                  ;; There must also be an edge from O to G.
                  (find (match-lambda
                          ((source target)
                           (and (string=? source o*)
                                (string=? target (derivation-file-name g)))))
                        edges)))))))))

(test-assert "derivation DAG"