hm..., I think you are suggesting something in the lines of:

```
extensions = ['tar.gz', 'tar.xz', 'tar.bz2', 'tgz', 'txz', 'tbz2', 'tb2', 'gtgz', 'zip', 'tar']
for ext in extensions:
    TEMPLATE_CONSTANTS.append(
        ('SOURCE_%s' % ext.replace('.','_').upper(), '%(name)s-%(version)s.' + ext, "Source .%s tarball" % ext))
    TEMPLATE_CONSTANTS.append(
        ('SOURCELOWER_%s' % ext.replace('.','_').upper(), '%(namelower)s-%(version)s.' + ext, "Source .%s tarball with lowercase name" % ext))
```

In general, let's favor all shorts of code reductions (and this one brings nice generality in, too) yet,
I am pondering over the readability aspect of the instances above (no perfect world, we can agree...).

It seems `gtgz` is only used by OpenFOAM, and we could now handle `zip` & `tar`, too;
So, would we like the latest code rendering, perhaps with some trimming over line width?

Finally, I'd suggest we may add in the mix: `tar.Z`, `tar.z`, `cpio`, `cpio.gz`, `cpio.bz2`, `tar.lzma`, `lzma`, `gz`, `bz2`
ref. http://mail-index.netbsd.org/tech-pkg/2010/09/05/msg005927.html
Even though handling them might prove a bit more involved in real life...

This grew larger task than started, I certainly cannot go in this direction before 1.9 merge window, 
so let's merge this in as-is and fork another issue, about the subject?