FSF has its principles, and I understand them. But this is not really a problem for a DVCS, right?
- Official repo can be in a FSF-approved place. Pushes happen to over there.
- Mirror can be on Github.
- Pull requests can be manually imported from Github into the FSF-approved place.
- I would not attempt to automate sync from Github onto the other place, just from the other place onto Github. With full automation, I predict race conditions, as well as unnecessary (and occasionally failing) merges.
- We can swap roles of Github and 'the other place' as necessary, the adjustment of config files per-developer is minimal.