GPL sucks, but Mercurial API doesn't any choice