Eric Bavier <ericbav...@openmailbox.org> writes: > On 2016-08-11 09:43, Vincent Legoll wrote: >> Hello, >> >>>> I'm trying to understand which package(s) depends on some other >>>> package, >>>> kind of the reverse of what guix graph does (I think). >>> >>> I think that `guix refresh --list-dependent foo` is what you are >>> asking >>> for, or at least it's close. We use it to learn what will need to be >>> rebuilt when upgrading foo. >> >> Not really what I want to know: >> >> # guix refresh --list-dependent inkscape >> Building the following 5 packages would ensure 10 dependent packages >> are rebuilt: frescobaldi-2.19.0 solfege-3.22.2 simple-scan-3.19.91 >> termite-11 hydra-20150407.4c0e3e4 >> >> None of those are installed, but inkscape is pulled in by something >> which I want to know >> >> Is there no other way to get that information ? > > Something like (mildly tested): > > (use-modules (guix packages) > (gnu packages) > (gnu packages inkscape) > (srfi srfi-1) > (srfi srfi-26)) > > (fold-packages > (lambda (package _) > (when (any (cut eq? <> inkscape) > (map second (package-direct-inputs package))) > (format #t "~a depends on inkscape~%" > (package-full-name package)))) > #t) > > which, when run, results in: > "dblatex-0.3.5 depends on inkscape"
The 'guix graph' command has the ability to print out references, but my understanding is that because these are the references which result from Nix's scan of the output store path, these references will only be runtime dependencies (see '(guix) Invoking guix graph' in the manual). The 'guix gc' command has the ability to print out 'referrers', which might also be useful. See '(guix) Invoking guix gc' for details. This will show you components that refer to the specified store path. I also hear that the Nix daemon can be configured to maintain a database of derivers, which would let you find out which derivation generated a given store path. I don't know if Guix enables this by default. If it's enabled, then you could potentially investigate the derivation which generated a store path (e.g., to see if the derivation references inkscape), but I don't know of any automated tools for investigating that stuff today. -- Chris
signature.asc
Description: PGP signature