Nikita Karetnikov <nik...@karetnikov.org> skribis: >> The simplest way to do it would be by walking the package DAG: start >> from ‘foo’, accumulate its ‘package-source’, then traverse its inputs, >> etc. Recursion would stop at the implicit inputs (GCC, glibc, >> Coreutils, etc.), though. > >> If you’d like implicit inputs to be taken into account, then you’d have >> to traverse derivations. It’s less convenient because it’s lower-level. > > Is there a function that accepts a package name and returns a list of > implicit inputs?
No, because by definition, those “implicit inputs” are not listed in the package object. Instead, they are added by the build system (see build-system/gnu.scm.) That’s why I suggested using derivations instead: take the output of (package-derivation x y), and traverse it in search of fixed-output derivations. But again, that’s a bit of a sledgehammer, and somewhat inconvenient to do at the moment. Ludo’.