Here's my attempt at making substitute-related logging a little easier to grok.

I added newlines to split up output and visually separate multiple substitutions. Since the download size is unknown, we can't use a progress bar, but I made the output more consistent with the progress bar behavior. I also shortened the hash after it's been repeated in full twice (once for the store and once for the download URL).

Current behavior:

found valid signature for '/gnu/store/ayad3km6vzv70777icacgx0jzlyfsr8z-python2-pyicu-1.8', from 'http://hydra.gnu.org/nar/ayad3km6vzv70777icacgx0jzlyfsr8z-python2-pyicu-1.8'
downloading `/gnu/store/ayad3km6vzv70777icacgx0jzlyfsr8z-python2-pyicu-1.8' (0.8 MiB installed)...
http://hydra.gnu.org/nar/ayad3km6vzv70777icacgx0jzlyfsr8z-python2-pyicu-1.8    220KiB transferred (127KiB/s)
found valid signature for '/gnu/store/8q38qgmly775c17wp9frkq88j38blh67-python2-simplejson-3.3.0', from 'http://hydra.gnu.org/nar/8q38qgmly775c17wp9frkq88j38blh67-python2-simplejson-3.3.0'
downloading `/gnu/store/8q38qgmly775c17wp9frkq88j38blh67-python2-simplejson-3.3.0' (0.4 MiB installed)...
http://hydra.gnu.org/nar/8q38qgmly775c17wp9frkq88j38blh67-python2-simplejson-3.3.0    78KiB transferred (149KiB/s)

Patched behavior:

Found valid signature for /gnu/store/sin6c3n1440f8kza0k4hdms38fbb4dv0-boost-1.58.0
From http://hydra.gnu.org/nar/sin6c3n1440f8kza0k4hdms38fbb4dv0-boost-1.58.0
Downloading sin6c3…boost-1.58.0 (110.6MiB installed)...
 sin6c3…boost-1.58.0                      911KiB/s 00:00:11 | 9.4MiB transferred

Found valid signature for /gnu/store/svznj538ppnginrnqnrqxn6dsxq6rhg5-aspell-0.60.6.1
From http://hydra.gnu.org/nar/svznj538ppnginrnqnrqxn6dsxq6rhg5-aspell-0.60.6.1
Downloading svznj5…aspell-0.60.6.1 (3.5MiB installed)...
 svznj5…aspell-0.60.6.1                    92KiB/s 00:00:09 | 836KiB transferred

-Steve