ExternalLibraries thorns containing tarballs can be very large, in particular if the history of the thorn grows and contains multiple tarballs.
I have just tested storing the source tree instead of the tarball in ExternalLibraries/Boost. This seems to work surprisingly well. For example, boost_1_54_0.tar.gz (the current version) has 66 MByte, while a git repository containing the last five versions of Boost as uncompressed source trees has 75 MByte. Clearly, this is very good.
Other advantages of storing source trees are: - this is what we do for every thorn, so why not for ExternalLibraries (d'oh) - one can easily look at the source code of an external library - no need to untar and later delete the source tree while building - no need to apply patches -- the changes can be made directly in the source tree
In my opinion, this is the way to go. I am currently setting up a new repository of ExternalLibraries/Boost in this way. (Obviously, it is not possible to keep the current repository, since its history is already at 406 MB.)
-erik