> Yes please, that would be better. I apologize for the delay. What do you think about the attached patch? I noticed that 'guile-gnome' has two 'doc-url' fields. How can I handle this? (I ignored it for now.) Also, is there a better way to create 'gnu-package-descriptor'? Note that I don't want to use setters. For example, it should be possible to match a list of regexps against a list of fields. But I haven't found a way to do so because some fields are optional and I also don't want to rely on their order. > This code is run by the user’s Guile, which may be older than 2.0.7 > (‘http-get*’ was introduced in 2.0.7), so you can’t rely on it. > What you can do is something along the lines of what (guix build > download) does, but always return a port. Maybe there’s a way to share > code. But how can I return a port with 'http-get'? ('http-fetch*' is a temporary function.) > I’d rather change ‘group-packages’ to ‘read-package-fields’ or something > like that. I changed it to 'group-package-fields' and added some comments. > identity (identity sublst) won't work. If (regexp-exec package-line-rx (first sublst)) returns #t, 'and=>' will call 'identity' with the result of 'regexp-exec'. But it should return 'sublst' instead. I also changed 'gnu-package?'. Please test.