Jan Synáček <jan.syna...@gmail.com> skribis: > On Tue, Jul 19, 2016 at 2:43 PM, Ludovic Courtès <l...@gnu.org> wrote: >> I improved the message along these lines in commit >> 2c2ec261a8d3c37e5147038f47ad24c57cde4134, let me know what you think. >> >> To be more concrete about other improvements, here’s what should be >> feasible (but needs to be discussed to see whether it’s actually >> helpful): >> >> 1. Display the location of the Shepherd service definition: >> >> gnu/services/ssh.scm:160:4: 'ssh-daemon' requires 'networking'… >> >> Trivial to implement, but the downside is that the user doesn’t >> really care about this file. >> >> 2. Same, but also show some sort of a stack trace (but not an actual >> Scheme stack trace) showing where this Shepherd service comes from: >> >> gnu/services/ssh.scm:160:4: 'ssh-daemon' requires 'networking'… >> gnu/services/ssh.scm:117:30: … in extension of service 'shepherd' >> gnu/services/ssh.scm:228:2: … while folding service 'lsh’ >> instantiated here >> >> The problem is that, currently, we’d get the location of the >> (service …) form, which is in the ‘lsh-service’ procedure, in >> gnu/services/ssh.scm. >> >> It may be hard to come up with intelligible messages, and there’s a >> risk that showing too many lines of messages would be >> counterproductive. >> >> Thoughts?
Just to be clear, the message we now have is: service 'ssh-daemon' requires 'networking', which is not provided by any service > From a regular user's point of view, this still misses the point, > which I originally attempted to make. I suggest an error message like > this: > > 'ssh-daemon' requires 'networking', try adding > 'static-networking-service' or 'dhcp-client-service' to system > services > > Or something like that. The point is, make it clear that "requires > networking" means adding at least one service to the operating > system's services and make at least one suggestion. Definitely a step > forward to user friendliness. So I think you’re saying that, in addition to the error message, you’d like suggestions. I like the idea. However, in this specific case, I’m not sure how to achieve it: ‘guix system’ doesn’t know about all the Shepherd services that can possibly exist, so it cannot tell you that the ‘networking’ is provided if you add ‘dhcp-client-service’ or whatnot to your config file. I understand these are not details one cares about as a user, at least at first glance. But this limits what we can do. Thanks, Ludo’.